mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-26 18:04:20 +00:00
1 line
No EOL
36 KiB
Text
Generated
1 line
No EOL
36 KiB
Text
Generated
{"version":3,"sources":["webpack:///./routes/ottimizzazioneLineare.js","webpack:///./components/old/todo.css","webpack:///./components/OttimizzazioneLineare/Styles.less","webpack:///./components/old/plus.css","webpack:///./components/OttimizzazioneLineare/Unfeasible.js","webpack:///./components/old/timer.js","webpack:///./components/old/timer.less","webpack:///./components/Latex.js","webpack:///./components/OttimizzazioneLineare/Max.js","webpack:///./components/old/minus.js","webpack:///./components/OttimizzazioneLineare/Unbounded.js","webpack:///./components/OttimizzazioneLineare/Min.js","webpack:///./components/old/plus.js","webpack:///./components/old/todo.js","webpack:///./components/old/minus.css","webpack:///./components/Latex.css","webpack:///./contexts/LatexDefaultInline.js","webpack:///./components/Image.js"],"names":["r","String","raw","OttimizzazioneLineare","render","title","href","to","class","src","inline","Component","module","exports","props","style","unfeasible","children","Timer","state","Date","now","timer","componentDidMount","this","setInterval","setState","componentWillUnmount","clearInterval","dateTo","className","parts","milliseconds","seconds","minutes","hours","days","timeLeft","Math","floor","expired","unknown","count","text","remaining","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","undefined","alt","latex","max","Minus","minus","unbounded","min","Plus","plus","Todo","todo","createContext","target"],"mappings":"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","file":"route-ottimizzazioneLineare.chunk.0d083.js","sourcesContent":["import {Component} from 'preact'\nimport Split from \"../components/old/split\";\nimport Latex from \"../components/Latex\";\nimport Panel from \"../components/old/panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/old/todo\";\nimport Minus from \"../components/old/minus\";\nimport Plus from \"../components/old/plus\";\nimport Code from \"../components/old/code\";\nimport Timer from \"../components/old/timer\";\nimport Image from \"../components/Image\";\nimport Unfeasible from \"../components/OttimizzazioneLineare/Unfeasible\";\nimport Unbounded from \"../components/OttimizzazioneLineare/Unbounded\";\nimport Min from \"../components/OttimizzazioneLineare/Min\";\nimport Max from \"../components/OttimizzazioneLineare/Max\";\n\nconst r = String.raw;\n\nexport default class OttimizzazioneLineare extends Component {\n render() {\n return (\n <div>\n <h1>Ottimizzazione lineare intera</h1>\n <Split title={\"Unimore\"}>\n <Panel title={\"Videolezioni su YouTube\"}>\n <p>\n Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!\n </p>\n <p>\n <b><a href={\"https://www.youtube.com/playlist?list=PLh93e8qjTszffkHNn-19CqUOhHFbhBlBh\"}>Guardate i video qui!</a></b>\n </p>\n </Panel>\n <Panel title={\"Prossimi appelli\"}>\n <ol>\n <li><Timer to={\"2020-06-08\"}/></li>\n <li><Timer to={\"2020-06-25\"}/></li>\n <li><Timer to={\"2020-07-14\"}/></li>\n </ol>\n </Panel>\n </Split>\n <Split title={\"Le basi\"}>\n <Panel title={\"Funzione obiettivo\"}>\n <p>\n La funzione obiettivo è la funzione con valore noto sconosciuto:\n </p>\n <p>\n <Latex>{r`z = C_1 \\cdot x_1 + C_2 \\cdot x_2 + C_n \\cdot x_n`}</Latex>\n </p>\n </Panel>\n <Panel title={\"Gradiente\"}>\n <p>\n Funzione della funzione obiettivo che indica la direzione del suo aumento più veloce.\n </p>\n <p>\n <Latex>{r`\\nabla f = \\frac{\\delta f}{\\delta x_1} e_1 + \\frac{\\delta f}{\\delta x_2} e_2 + \\frac{\\delta f}{\\delta x_n} e_n`}</Latex>\n </p>\n <p>\n <Latex>{r`e_i`}</Latex> è la direzione della coordinata i-esima.\n </p>\n <Example>\n Se <Latex>{r`n = 3`}</Latex>, allora:\n <ul>\n <li><Latex>{r`e_1 = (1, 0, 0)`}</Latex></li>\n <li><Latex>{r`e_2 = (0, 1, 0)`}</Latex></li>\n <li><Latex>{r`e_3 = (0, 0, 1)`}</Latex></li>\n </ul>\n </Example>\n <Example>\n Se la funzione obiettivo è <Latex>z = 2w + 3x + 4y</Latex>, il suo gradiente è <Latex>{r`\\nabla z = (2, 3, 4)`}</Latex>.\n </Example>\n </Panel>\n </Split>\n <Split title={\"Forme di un sistema\"}>\n <Panel title={\"Forma standard\"}>\n <ul>\n <li><Minus>Solo equazioni</Minus></li>\n <li><Minus>Tutte le variabili maggiori di zero</Minus></li>\n </ul>\n </Panel>\n <Panel title={\"Forma canonica\"}>\n <ul>\n <li><Plus>Equazioni e disequazioni</Plus></li>\n <li><Minus>Tutte le variabili maggiori di zero</Minus></li>\n </ul>\n </Panel>\n <Panel title={\"Forma generale\"}>\n <ul>\n <li><Plus>Equazioni e disequazioni</Plus></li>\n <li><Plus>Variabili con qualsiasi valore</Plus></li>\n </ul>\n </Panel>\n </Split>\n <Split title={\"Equivalenza di forma\"}>\n <Panel title={\"Da standard a generale\"}>\n <p>\n Convertiamo ogni equazione <Latex>{r`=`}</Latex> in due disequazioni <Latex>{r`\\leq`}</Latex> e <Latex>{r`\\geq`}</Latex>,\n </p>\n <Example>Why would you ever do that?!</Example>\n </Panel>\n <Panel title={\"Da canonica a standard\"}>\n <p>\n Convertiamo le disequazioni in equazioni aggiungendo una variabile slack.\n </p>\n <Example>\n <Latex>{r`a \\leq 3`}</Latex> diventa <Latex>{r`a + s_1 = 3`}</Latex>.\n </Example>\n </Panel>\n <Panel title={\"Da generale a canonica\"}>\n <p>\n Sostituiamo le variabili potenzialmente negative (unconstrained) <Latex>{r`x_j`}</Latex> con due variabili <Latex>{r`x_j^+`}</Latex> e <Latex>{r`x_j^-`}</Latex>.\n </p>\n <Example>\n <Latex>{r`a \\in \\mathbb{Z}`}</Latex> diventa <Latex>{r`a^+ \\in \\mathbb{N}`}</Latex> e <Latex>{r`-a^- \\in \\mathbb{N}`}</Latex>.\n </Example>\n </Panel>\n </Split>\n <Split title={\"La forma standard\"}>\n <Panel title={\"Funzione obiettivo\"}>\n <p>\n La funzione da minimizzare/massimizzare, tipicamente indicata con una <Latex>{r`z`}</Latex> al termine noto.\n </p>\n </Panel>\n <Panel title={\"Vincoli\"}>\n <p>\n Le funzioni del sistema che non sono quella obiettivo.\n </p>\n </Panel>\n <Panel title={\"Tableu\"}>\n <p>\n Un modo per rappresentare sistemi in forma standard, anche noto come <b>matrice equivalente completa</b> del sistema.\n </p>\n <Example>\n Il sistema:<br/><br/>\n <Latex>{r`\n \\begin{cases}\n 2000A + 1000B = z\\\\\n 1A \\leq 3\\\\\n 1B \\leq 3\\\\\n 2A + 2B \\leq 7\n \\end{cases}\n `}</Latex><br/><br/>\n Diventa in forma di tableau:<br/><br/>\n <table class={\"right\"}>\n <thead>\n <tr>\n <th><abbr title={\"Termine noto\"}>TN</abbr></th>\n <th><Latex>x_1</Latex></th>\n <th><Latex>x_2</Latex></th>\n <th><Latex>s_1</Latex></th>\n <th><Latex>s_2</Latex></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><Latex>z</Latex></td>\n <td><Latex>2000</Latex></td>\n <td><Latex>1000</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>0</Latex></td>\n </tr>\n <tr>\n <td><Latex>3</Latex></td>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n </tr>\n <tr>\n <td><Latex>3</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n </tr>\n <tr>\n <td><Latex>7</Latex></td>\n <td><Latex>2</Latex></td>\n <td><Latex>2</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>0</Latex></td>\n </tr>\n </tbody>\n </table>\n </Example>\n </Panel>\n <Panel title={\"Variabili di base\"}>\n <p>\n Variabili che hanno tutti 0 e un 1 nella loro colonna del tableu.\n </p>\n <p>\n La loro controparte sono le <i>variabili fuori base</i>.\n </p>\n <p>\n Un sistema lineare è risolto quando tutte le variabili originali (<Latex>x_n</Latex>) sono nella base.\n </p>\n </Panel>\n </Split>\n <Split title={\"Simplex\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un algoritmo per <Min>minimizzare</Min>/<Max>massimizzare</Max> efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan.\n </p>\n <Example>\n E' spiegato in modo semplice <a href={\"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf\"}>qui</a>, e ci sono dei codici sorgenti di esempio <a href={\"https://www.cs.cmu.edu/~15451-f17/handouts/simplexcodes/\"}>qui</a>.\n </Example>\n </Panel>\n <Panel title={\"I passi\"}>\n <ol>\n <li>Trasforma il sistema in <b>forma standard</b>.</li>\n <li>Trova tante variabili <b>linearmente indipendenti</b> quante siano le righe: esse saranno la <i>base iniziale</i>.</li>\n <li>Finchè ci sono variabili con coefficienti <Min>positivi</Min>/<Max>negativi</Max> nella funzione obiettivo:\n <ol>\n <li>\n <b>Scegli</b> la prima variabile con coefficiente <Min>positivo</Min>/<Max>negativo</Max> nella funzione obiettivo: essa è la <i>variabile entrante</i>.\n <Example>Si potrebbe scegliere qualsiasi variabile, ma scegliendo sempre la prima possibile (<i>Regola di Bland</i>) ci si assicura che l'algoritmo termini.</Example>\n </li>\n <li>Trova la variabile di base (detta <i>variabile uscente</i>) tramite il rapporto <Latex>{r`\\frac{termine\\ noto}{coeff.\\ variabile\\ entrante}`}</Latex>: scegli la variabile con il <b>rapporto minore</b>, assicurandoti che esso sia <b>positivo</b>. Se tutti i rapporti sono negativi, allora il problema è <b><Unbounded/></b>.</li>\n <li><b>Riscrivi</b> tutte le funzioni del sistema in termini della variabile entrante.</li>\n </ol>\n </li>\n <li>I <b>termini noti dei vincoli</b> sono le coordinate del risultato, mentre il <b>termine noto della funzione obiettivo</b> è il valore <Min>minimizzato</Min>/<Max>massimizzato</Max>.</li>\n </ol>\n </Panel>\n <Panel title={\"Sotto forma di tableau\"}>\n <p>\n Se il problema è rappresentato in forma di tableau, allora esso è risolvibile applicando l'algoritmo di Gauss-Jordan, in aggiunta tenendo conto delle regole per la selezione delle variabili entranti e uscenti.\n </p>\n </Panel>\n </Split>\n <Split>\n <Panel title={\"Soluzioni di base degenerata\"}>\n <p>\n Una soluzione con almeno una variabile di valore <Latex>0</Latex>, dovuta a uno o più <b>vincoli ridondanti</b>.\n </p>\n <p>\n Senza <b>Regola di Bland</b> e in presenza di vincoli ridondanti si rischia di trovarsi a fare pivot infiniti.\n </p>\n </Panel>\n <Panel title={\"Esempio\"}>\n <Example>\n Ho risolto il problema 3 del file <a href={\"https://dolly.fim.unimore.it/2019/mod/resource/view.php?id=2716\"}><code>Ex_LP_testo</code></a> con il Simplex:\n <p>\n <Image src={\"https://i.imgur.com/1r405Mb.jpg\"}/>\n </p>\n </Example>\n </Panel>\n </Split>\n <Split title={\"Metodo delle due fasi\"}>\n <Panel title={\"Metodo delle due fasi\"}>\n <p>\n Un estensione del Simplex per permettere la risoluzione di problemi la cui origine non è una soluzione ammissibile.\n </p>\n <p>\n Prevede l'introduzione di un <i>problema ausiliario</i>, le cui variabili sono dette <i>artificiali</i> e sono solitamente rappresentate come <Latex>{r`y_n`}</Latex>.\n </p>\n <Example>\n E' spiegato in modo semplice <a href={\"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf\"}>qui</a>.\n </Example>\n </Panel>\n <Panel title={\"Procedimento\"}>\n <ol>\n <li>Crea un nuovo tableau, <b>aggiungendo variabili artificiali</b> in modo da avere una base ammissibile.</li>\n <li>Sostituisci la vecchia funzione obiettivo con una nuova che <b>minimizzi la somma</b> di tutte le variabili artificiali.</li>\n <li><u>Fase 1</u>: <b>Risolvi</b> il nuovo problema con il metodo Simplex.</li>\n <li>Se il Simplex termina con ancora <b>variabili artificiali nella base</b>, allora il problema è <b><Unfeasible/></b>.</li>\n <li>Una volta che le variabili artificiali sono fuori base, <b>elimina</b> le loro colonne e la nuova funzione obiettivo.<br/></li>\n <li>Riporta il tableau in forma base compiendo operazioni per <b>azzerare i coefficienti</b> delle variabili di base nella funzione obiettivo.</li>\n <li><u>Fase 2</u>: <b>Risolvi</b> il tableau con il metodo Simplex.</li>\n </ol>\n </Panel>\n </Split>\n <Split title={\"Dualità\"}>\n <Panel title={\"Rilassamento\"}>\n <p>\n Una versione semplificata di un problema nella quale si <b>ignorano</b> uno o più vincoli.\n </p>\n </Panel>\n <Panel title={\"Rilassamento di Lagrange\"}>\n <p>\n Un rilassamento che permette di misurare <b>di quanto i vincoli vengono violati</b>.\n </p>\n <p>\n I vincoli vengono aggiunti alla funzione obiettivo assieme a un moltiplicatore, solitamente rappresentato con <Latex>{r`u_n`}</Latex>.\n </p>\n <Example>\n <p>\n Il sistema:\n </p>\n <Latex inline={false}>{r`\n \\begin{cases}\n z = 3 x_1 + 5 x_2\\\\\n 2 x_1 + 3 x_2 \\geq 12\\\\\n - x_1 + 3 x_2 \\geq 3\\\\\n x_1 \\geq 0\\\\\n x_2 \\geq 0\n \\end{cases}\n `}</Latex>\n <p>\n diventa:\n </p>\n <Latex inline={false}>{r`\n \\begin{cases}\n z_{LR} = 3 x_1 + 5 x_2 + u_1 ( 12 - 2 x_1 - 3 x_2 ) + u_2 ( 3 + x_1 - 3 x_2 )\\\\\n x_1 \\geq 0\\\\\n x_2 \\geq 0\n \\end{cases}\n `}</Latex>\n </Example>\n </Panel>\n <Panel title={\"Duale\"}>\n <p>\n Il sistema che <b><Min>massimizza</Min>/<Max>minimizza</Max> i moltiplicatori di rilassamento</b> di un qualsiasi sistema, detto <i>primale</i>.\n </p>\n <p>\n Si dimostra che la sua soluzione (se esiste) è <b>uguale</b> alla soluzione del problema primale.\n </p>\n </Panel>\n <Panel title={\"In termini matriciali\"}>\n <p>\n Possiamo <b>trasporre</b> il tableau e sostituire le variabili <Latex>{r`x_n`}</Latex> con variabili <Latex>{r`u_n`}</Latex> per ottenere il sistema duale!\n </p>\n <p>\n I maggiori e minori dei vincoli diventeranno maggiori e minori delle variabili e viceversa.\n </p>\n </Panel>\n <Panel title={\"Feasibility del duale\"}>\n <ul>\n <li>Se un problema ha una <b>soluzione finita</b>, allora anche il suo duale la avrà.</li>\n <li>Se un problema è <b><Unfeasible/></b>, allora il suo duale potrà essere <Unfeasible/> oppure <Unbounded/>.</li>\n <li>Se un problema è <b><Unbounded/></b>, allora il suo duale sarà certamente <Unfeasible/>.</li>\n </ul>\n </Panel>\n </Split>\n <Split>\n <Panel title={\"Lemma di Farkas\"}>\n <p>\n <Todo>TODO: una complicata dimostrazione per dire varie cose. Probabilmente si riesce a saltare se non si dà l'orale...</Todo>\n </p>\n </Panel>\n <Panel title={\"Dualità forte\"}>\n <p>\n Il teorema che dimostra l'equivalenza tra primale e duale.\n </p>\n <p>\n <Todo>TODO: Anche qui c'è una lunga dimostrazione...</Todo>\n </p>\n </Panel>\n <Panel title={\"Dualità debole\"}>\n <p>\n Il teorema che dimostra che il valore della funzione obiettivo del duale (di un qualsiasi tableau) è sempre <Min>minore o uguale</Min>/<Max>maggiore o uguale</Max> alla soluzione del corrispettivo primale.\n </p>\n <p>\n <Todo>TODO: Dimostrazione cortina, ma sembra complicata.</Todo>\n </p>\n </Panel>\n </Split>\n </div>\n )\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"unbounded\":\"unbounded__25UN8\",\"unfeasible\":\"unfeasible__2MuIF\",\"min\":\"min__3lPpn\",\"max\":\"max__1hxKl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"plus\":\"plus__2u13i\"};","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <span class={style.unfeasible}>{props.children ? props.children : \"unfeasible\"}</span>\r\n );\r\n}\r\n","import {Component} from 'preact'\nimport style from \"./timer.less\"\n\n\nexport default class Timer extends Component {\n constructor() {\n super();\n this.state = {\n \"now\": Date.now()\n };\n this.timer = null;\n }\n\n componentDidMount() {\n this.timer = setInterval(() => {\n this.setState({\"now\": Date.now()})\n }, 1000)\n }\n\n componentWillUnmount() {\n if(this.timer !== null) {\n clearInterval(this.timer)\n }\n }\n\n render() {\n let dateTo = \"Unknown date\";\n let className = style.timer;\n\n let parts = {\n milliseconds: \"?\",\n seconds: \"?\",\n minutes: \"?\",\n hours: \"?\",\n days: \"?\",\n };\n\n if(this.props.to) {\n dateTo = new Date(this.props.to);\n let timeLeft = dateTo - this.state.now;\n\n if(timeLeft > 0) {\n parts = {\n milliseconds: timeLeft % 1000,\n seconds: Math.floor(timeLeft / 1000) % 60,\n minutes: Math.floor(timeLeft / 60000) % 60,\n hours: Math.floor(timeLeft / 3600000) % 24,\n days: Math.floor(timeLeft / 86400000),\n };\n }\n\n else {\n parts = {\n milliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n };\n\n className += \" \" + style.expired;\n }\n }\n else {\n className += \" \" + style.unknown;\n }\n\n return (\n <div class={className} title={dateTo}>\n <div class={style.days + \" \" + style.count}>\n {parts.days}\n </div>\n <div className={style.days + \" \" + style.text}>\n giorni\n </div>\n <div class={style.hours + \" \" + style.count}>\n {parts.hours}\n </div>\n <div className={style.hours + \" \" + style.text}>\n ore\n </div>\n <div class={style.minutes + \" \" + style.count}>\n {parts.minutes}\n </div>\n <div className={style.minutes + \" \" + style.text}>\n minuti\n </div>\n <div class={style.seconds + \" \" + style.count}>\n {parts.seconds}\n </div>\n <div class={style.seconds + \" \" + style.text}>\n secondi\n </div>\n <div class={style.remaining}>\n rimasti\n </div>\n </div>\n )\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"timer\":\"timer__K0K_h\",\"days\":\"days__vN3tf\",\"hours\":\"hours__3v0KX\",\"minutes\":\"minutes__vkYk7\",\"seconds\":\"seconds__3gJ99\",\"count\":\"count__1VV4k\",\"text\":\"text__khS4i\",\"remaining\":\"remaining__zUECg\",\"unknown\":\"unknown__af307\",\"expired\":\"expired__1rtHB\"};","import style from './Latex.css';\nimport {useContext} from \"preact/hooks\";\nimport LatexRenderColor from \"../contexts/LatexRenderColor\";\nimport LatexDefaultInline from \"../contexts/LatexDefaultInline\";\n\nexport default function(props) {\n\t// black, blue, brown, cyan, darkgray, gray, green, lightgray, lime, magenta, olive, orange, pink, purple, red, teal, violet, white, yellow\n\tlet renderColor = useContext(LatexRenderColor);\n\tlet defaultInline = useContext(LatexDefaultInline);\n\n\tlet is_inline;\n\tif(props.inline === undefined) {\n\t\tis_inline = defaultInline;\n\t}\n\telse {\n\t\tis_inline = props.inline;\n\t}\n\n\tlet inline = is_inline ? `\\\\inline` : \"\";\n\tlet equation = `${inline} {\\\\color{${renderColor}} ${props.children} }`;\n\n\treturn (\n\t\t<img src={`https://latex.codecogs.com/svg.latex?${equation}`}\n\t\t\t alt={props.children}\n\t\t\t title={props.children}\n\t\t\t class={style.latex}\n\t\t/>\n\t);\n}\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <span class={style.max}>{props.children ? props.children : \"max\"}</span>\r\n );\r\n}\r\n","import style from \"./minus.css\";\nimport { Component } from 'preact';\n\nexport default class Minus extends Component {\n\trender() {\n\t\treturn <span class={style.minus}>{this.props.children}</span>;\n\t}\n}\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <span class={style.unbounded}>{props.children ? props.children : \"unbounded\"}</span>\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <span class={style.min}>{props.children ? props.children : \"min\"}</span>\r\n );\r\n}\r\n","import style from \"./plus.css\";\nimport { Component } from 'preact';\n\nexport default class Plus extends Component {\n\trender() {\n\t\treturn <span class={style.plus}>{this.props.children}</span>;\n\t}\n}\n","import style from \"./todo.css\";\nimport { Component } from 'preact';\n\nexport default class Todo extends Component {\n\trender() {\n\t\treturn <span class={style.todo}>{this.props.children}</span>;\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"minus\":\"minus__2EaF0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n","export default function(props) {\r\n return (\r\n <a href={props.src} title={props.alt} target={\"_blank\"}><img src={props.src} alt={props.alt}/></a>\r\n )\r\n}\r\n"],"sourceRoot":""} |