{"version":3,"file":"scripts.e60baec60ec735bc.js","mappings":"aAIA,wBACA,WACAA,yBACAA,YAAkBC,8HAElBD,uBAA6BC,8GAC7BD,gBAAsBC,kFACtBD,YAAgBC,iOAEhBD,6BACAE,mDAA2DC,oFAC3D,gBAAoC,oCAAoD,CACxFC,uXACAC,4BACAA,gZACAA,0JAEAD,kDACAA,uEACAA,mFA2BA,QAzBAE,GACA,uBACA,uBACA,2BACA,uBACA,0BACA,oBACA,oBACA,mBACA,sBACA,uBACA,8BACA,mBACA,yBACA,oCACA,uBACA,sBACA,uBACA,+BACA,+BACA,sBACA,0BACA,kBAEAC,mCACAC,IAAkBA,WAAiBA,IACnC,qDACAJ,YACAA,iBACA,MAoBA,GAjBAA,kBACAA,wBAIA,oHACAA,sBACAA,gBAGA,8DACAA,UACAA,eACAA,eACAA,uBAGA,iCACAF,iCACAE,UACAA,kBACAA,wBACAA,eACA,6BAMAK,6BACAA,MACAL,aAAuBM,OACvBC,iCACAP,uBAwBA,GArBA,0DACAA,aAAqBH,eACrBG,uBAGA,uBACAA,aAAuBQ,wBACvBR,uBAGA,iCACAA,aAAuBQ,uBACvBR,uBAEA,uBACAA,uBAEA,wBACAA,wBAGAF,oCACA,4DACAW,SACAT,QACAA,cACAA,kBAIAA,yBACAA,+EAEAA,uBAEAA,0GAEA,mDACAA,kBACAA,iBACA,YACAA,WAGA,wBACAA,oBACA,wBACAA,kBACA,YACAA,4BACAA,8CAEAA,yEACAA,mBAEA,OAA2BU,yBAK3B,OAJAC,SACAX,4DAGAA,WACAF,mBAFA,CAAiBc,kFAEjBZ,gCACAA,wCAEAA,CACA,EACAJ,wBACA,sBACA,SACA,8BACA,+EACA,EACAA,wBAEAiB,cACAC,cACA,aAAmBV,KACnB,sCACA,wBACA,gBACA,qBAEA,EACAR,iCAEA,mFACA,sBACA,cACA,GACA,SAEA,QACA,GACA,aACA,EACA,EAEA,KACA,EACA,MAEA,QAEA,eACA,GACA,OACA,GACA,OACA,EACA,CACA,CAaA,EAEAmB,uCAEA,uBACA,yBAEAC,GADAC,0BACAC,yIACAD,sDACAA,0BACAA,qGACAA,wBACAA,mBAEA,sBAAmCb,0BAAwB,G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ACAA,qBACApB,YACAF,4BAEAA,2BACAE,8BACAA,YACA,GAGAA,qCACA,8DACAA,2BACA4B,sCAEA,4EA8BA,GA7BAC,IACAA,sBAMA,OALAT,eACApB,aACAA,sCACA4B,4BACA5B,+BACAA,yCACAA,qHAA0I8B,oMAC1IV,kCACAX,8DACAT,kBACAA,0BACA,EACAA,sBACAA,iCACA,IAEAA,4BACA,EACA,GACAA,iCACA6B,6BAKA7B,YAEAA,gCACA,uCACAL,iCACAc,6BAGA,EChiBA,kBAEAsB,KADA,CAAiB5B,UAAYR,0BAAmCqC,wCAEhE,CACA,IACAvB,uDAGA,CAFA,MACAX,mCACA,WCGAmC,KACA,+DACA,iDACAA,sDACA,CDPA,CCOCtD,gBAED,gBACA,YAAoBQ,WAAkBA,KACtC,WACA+C,8BACAA,kBACA,6BACAC,iCAEA,CAiBA,iBACA,mCAEA,2BAA2ChD,IAASA,cAEpD,QACA,CAEA,gBACA,6DACA,sCAEA,wBArBA,gBACA,KACA,qCACA,oDAEA,GADA,oDACA,0CACA,qFACA,CAcAiD,uCACAC,SACA,QACA,kBACA,oBACAC,SAEA,CACAA,QACAC,aAEA,EAGA,4JACA,CAEA,OAAoBC,YA8BpBC,WACAC,SA5BA,CACAC,aACAC,UACAC,gBACAC,OACAC,aACAC,gBACAC,eACAC,uBACAC,UACAC,YACAC,cACAC,YACAC,eACAC,UACAC,cACAC,eACAC,eACAC,gBACAC,UAUAC,YA9BA,aACA,OACAnB,aACAC,UACAC,gBACAC,OACAC,aACAC,gBACAC,eACAC,uBACAC,UACAC,YACAC,cACAC,YACAC,eACAC,UACAC,cACAC,eACAC,eACAC,gBACAC,SAEA,EASAE,eAPA,cACAtB,oBACA,GAWA,gBACAuB,aACAC,uBACAC,wBACAC,GACA,YACA,WACA,WACA,aACA,aAGAC,cACA,WACA,EAgBAC,+CAEA,cAEA,iCAEA,iBADAvF,mBACA,IAEA,kBACA,wGAGA,EACA,EACA,CAEA,qBAmBAwF,aACAC,mCA8BAC,KACAC,sBACAC,uBACAC,+BAkGA,mBACA,eAEA,SACA,SAMA,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3D,UAGAG,EADA,cACA,YAEAH,EAIA,OACAC,YACAC,SACAF,OACAG,OACAuD,SACAzD,YACAC,MACAF,SAEA,CAEA,EAEAI,6BACA,IAGAJ,EAHAqC,iCAEA,KAGA,OACArC,EADAwC,EACA3J,uFAEAiH,yCAGA,CACAG,YACAC,SACAF,OAGA,EAEA4D,CACA,CAprBA,GAsrBAC,EA74BA,CACAC,mBA64BAC,EAn+BA,gBACAC,cACAC,QACA,OACAC,sBACA,OACAC,GADAA,eACAD,gBACAF,iBACA5E,CACA,EACAgF,oBACA,sBACA,GAEA,QACA,EAq9BAC,UAKAC,GACAC,2BACAC,4CACAC,oGACAC,4DACAC,+CACAC,qDACAjD,6EACAkD,wdAUAC,uFACAC,UACAC,QACAC,+CAGAC,4FACAlF,eAEAsE,wCACAA,uEACAA,8EACAA,iCACAA,sDACAA,2DACAA,uEACAA,2HAAuIJ,qDACvII,uWACAA,0CACAA,oLACAA,kFAA0GJ,wBAC1GA,gCAAgCA,mEAA0DA,yCAC1FA,oGACAE,WACAE,yEAKAA,cAA6BA,GAK7BA,WAA0BA,UAC1BS,6IAIAC,sIAKAV,qFAA6GJ,gCAAgCA,6BAAyBA,mEAA+DA,yCACrOA,oGACAE,WACAE,iFAAyGJ,gCAAgCA,6BAAyBA,mEAA+DA,yCACjOA,oGACAE,WAKAE,gBAA+BA,UAC/BO,qJACmEX,6NACnEY,wEACAH,iCACAF,SAEAU,yFAAsGjB,+DAA4EA,2EAMlL,OACAkB,qDACAC,+CACAC,MACAhD,+JAMAO,qDACA0C,gEACAC,uEACAC,sCACAC,UACAC,kEAGAC,iNACAC,gLAGArB,2CACAsB,2BACAC,MACA/F,mFACAgG,iCAIAC,qDACAA,iFAEAA,wDACAA,0BACAA,qEACAA,mFACAA,6FACAA,6FACAA,yDACAA,yCACAA,wJACAA,0FACAA,2FACAA,0FACAA,+DACAA,+CACAA,uEACAA,wGACAA,4DACAA,0GAKAA,cAA8BA,GAK9BA,gBAAgCA,UAChCC,QACArE,iBACAsE,wEACAC,qBACAC,mBAEAC,IACAzE,cACAsE,oEACAC,mBACAC,kBAEAxD,uEACA0C,kFAMAU,WAA2BA,UAC3Bb,mDACAmB,4FACAjB,uEACAkB,oFACAT,mDACA/F,oOAEAiG,6EAKAA,cAA8BA,OAC9BH,0BAAuC,gBACvC9F,mDAA6DkE,kBAAqB,kBAElF,QACAuC,QACAC,UAGAC,MACAC,sBACAH,YACAC,YACAG,GAz9BA,iBACA,OACA,SAKA,QAFAC,KAEAC,KACA,MACAD,MAGAC,MACAC,KAGA,UACA,EA68BA,eACA,SACA9C,yBACAA,wBACAA,kCAA8B,YAC9BA,uBACAA,uCAA8B,YAC9BA,uBACAA,iBAAmB,SACnB,CAMA,eACA,IACA7K,EACA4N,EAFAC,KAGA/M,WAEA,QAAgBd,IAAOA,IACvB4N,kBAEAjL,mBACAiL,sBAGAC,cAGA,QACA,CAMA,kBACA,cACArO,eACAA,sCACAA,mBACAA,sDACAA,sCACAA,oCACA,OACA4N,gBACAC,iBAGA7N,uBACAsO,oBACAA,qBACQtO,mBACRsO,eAGAA,SADAtO,oBACA6N,SAEAA,OAIA7N,sBACA,CASAuO,oBAEA,OADA,SACAC,MACA,EAMAD,0BAEA,OADA,SACAE,eACA,EAMA,kBAEA,yBACA,0DACAzO,mCACAA,yBACAA,WACA,EAMAuH,8BACA,IAcAmH,YAdAC,OAgBA,SAdA,QACA9D,WAGA,QACA+D,MAGA5O,wBACA6O,0BAKAA,GACA,4GACA,4BACAA,4BACAhE,WACA,EAIA,IAKA,+BACAgE,4BAEAH,QACA7D,UAGA,SAIA,6BACAgE,6BACAC,kBAEA,sBACAA,kBACAA,qBAEAjE,UAGA,SAIA,+BACAgE,4BACAhE,UACA,SAIA,gCACAgE,4BACAhE,UACA,SAIA,gCACAgE,4BACAhE,UACA,SAIA,2BACAgE,4BACAhE,UACA,SAIA,mCACAgE,4BACAH,uCACA7D,UACA,SAIA,6BAIA,IAHAgE,4BACAvN,iBAEAd,IAAsBA,IAAOA,IAC7BkO,0DAGA7D,UACA,SAIA,6BACAgE,4BACAhE,UACA,SAIA,iCACAgE,4BAEA7O,2BACAA,0BACAsH,YACAJ,gBAIA,SAIA,8BACA2H,4BACAhE,UACA,SAIA,iCACAgE,4BACAhE,UACA,SA2BA,GAtBAkE,IAEA/O,6DACA,WACA,UACAgP,aACAC,SAEAN,oDAGA,iBAFAM,mBAEAA,OACAC,gBAEA,GAEAA,cACAH,qBAEA,CAhBA,GAmBAH,oCACAE,gBAEAK,yBACAL,kBACAA,qBAEAjE,UAGAsE,sBACAN,4BACA,SAIA,6BACAA,6BACAC,kBAEA,iBACAA,kBACAA,qBAEAjE,UAGA,SAGA,MACA,gDAEA,wBACAuE,iBACA,MAEA,oBAKA,QACA,EAEA7H,qBACA,gBACAjG,WAEA,QAAkBd,IAAOA,IAGzB,OAFAkO,OAEAA,QACA,gBACA,WACA,cAEAA,YACA1O,mCACA,MAGA,YASA,IAPA0O,UACAzG,UACArB,UAGAyI,kBAEAC,IAA0BA,IAAQA,IAClCZ,sBACA1O,kDAMA,IAFAqP,iBAEAC,IAA0BA,IAAQA,IAIlC,IAHAC,aACAb,qBAEA7L,IAA4BA,WAAgBA,IAC5C6L,wBACA1O,6CAIA,MAGA,iBAEAA,sBACA,MAGA,WAIA,IAFAqP,iBAEAC,IAA0BA,IAAQA,IAClCtP,+BAQA,QACA,EAMAuH,iCACA,gBAEA,QACAsD,WAGA,QACAnB,WAGA,QACAC,MAGA,UAGAQ,EACAqF,IAFA9E,IAIA,sBACA,qCAEA,cACA,kEACA+E,qDACA/E,iHAOA,8DACAA,4GAIA,gEACAA,qFAGA,QAOA,GANA8E,IACAtF,MAGAsF,OAEAxP,yGACA,4BACA6O,4BACAhE,WACA,EAIA,IAKA,gCACAgE,4BACAhE,UACA,SAIA,gCACAgE,4BACAnF,WACAC,gBACAmF,kBAEA,kCACAA,aACAA,gBAEAjE,UAGA,SAIA,6BACAgE,4BAEA,kBACAH,4CAGA7D,UACA,SAIA,kDACAgE,4BACAC,gBAEA,iBACAJ,2CACA7D,WACYiE,qCACZA,aACAA,gBAEAjE,UAGA,SAIA,qCACAgE,4BACAH,0CACA7D,UACA,SAIA,iCACAgE,4BACAhE,UACA,SAIA,2BACAgE,4BACAhE,UACA,SAIA,4BACAgE,4BACAH,0CACA7D,UACA,SAIA,oCACAgE,4BACAhE,UACA,SAIA,qCACAgE,4BACAhE,UACA,SA2BA,GAtBAkE,IAEA/O,8DACA,WACA,UACAgP,aACAC,SAEAS,qDAGA,iBAFAT,mBAEAA,OACAC,gBAEA,GAEAA,cACAH,qBAEA,CAhBA,GAmBAL,qCACAG,4BAEA,wBAEA3E,mBAGAsF,MACAV,kBAEA,iBACAA,aACAA,gBAEAjE,UAGA,SAGA,MACA,gDAEA,wBACAuE,iBACA,MAEA,oBAKA,QACA,EA74DA,kBACAO,oBACAC,SAEA,CA24DAC,UACAvJ,YACAwJ,eACA,OACAlC,SACAC,SAEA,KAGAU,CACA,CApkBA,GAskBAwB,sBACAC,GAtwDA,mBACA,MACA,MAEA,IACAC,uDAGA,CAFA,MACA,WACA,CAEA,oFACA,YAIAC,iBACA5I,EAiBA,iBACAzB,WAKAA,SADAC,WACAoK,MAEAxJ,cAKA,YADAwJ,YACA9G,aAEA,8BACA+G,EACA7I,EAGA4I,qBACM,kBACNC,EACA7I,EAGA4I,qBAEAA,GAEA,CA/CAE,OAGA,IACA9I,kCAGA,CAFA,MACA,WACA,CAEA,QACA,EA6uDA+I,YAKAC,cACA,cACAtQ,kBACA,CAEA,kBAEA,8BACA,8BAEA,2BACA,kCAEA,iBACA8G,KACAyJ,KAMA,OAFAA,2BAEAzI,EAIA,4FAHA,8CAIA,EAEAP,yBACA,0CACA,EAEAA,mBACA,QACA,EAEAA,4BACA,8BACA,wEAIA,0BACA,EAEAA,gBACA,4CACA,EAEAA,uBACA,kBAEA,aADAwB,8BACA,oBACA,EAEAxB,uBACA,wBACA,EAEAA,uBACA,oGACA,EAEAA,wBACA,sBACA,EAEAA,sBACA,qCACA,kDACA,EAEAA,uBACA,0BACA,EAEAA,0BACA,yBAEA,OADAiJ,iDACAC,cACA,EAGAlJ,qBACA,8BACA,EAEAA,iBACA,sBACA,EAEAA,uBACA,0BACA,EAEAA,gBACA,wCACA,EAEAA,kBACA,wBACA,EAEAA,uBAGA,WAFAD,oDAGA,SAGA,4BAEA,WACA+G,qBAGAA,cAEA,EAEA9G,wBAGA,WAFAD,oDAGA,SAGA,qCAEA,WACA+G,qBAGAA,+BAEA,EAEA9G,mBACA,QACA,EAEAmJ,CACA,CA9IA,GAqJAC,cACA,cAEA,kBAGA,4BACA,QACA,EAEApJ,iBACA,QACA,EAEAA,uBACA,QACA,EAEAA,kBACA,QACA,EAEAA,mBACA,QACA,EAEAA,mBACA,QACA,EAEAA,uBACA,UACA,EAEAA,wBACA,UACA,EAEAA,gBACA,QACA,EAEAqJ,CACA,CA3CA,GAiDAC,cACA,aACA7Q,YACA,CAEA,kBAEA,+BACA,8BACAqL,8BACAA,wEAA0E,sBAC1E,EAMA9D,gCACA,QACAuJ,IAEA,gCACAA,eAEA,GAEAC,WADAD,QAEU9Q,6BAGV,WACAA,eACAA,gBAGA+Q,CACA,EAQAxJ,0BACA,QACAyJ,MAGA,wBACA,uCACA,EAEAC,CACA,CAtDA,GAwDAC,MACAC,MACAC,MACAC,sBACAC,cAiVA/C,KACAgD,EA7UA,WACA,cACAvR,mBACAA,oDACAA,oCACAA,mCACAA,yBACAA,mBACA,CAMAuR,sBAEA,OADA,SACAC,QACA,EAMAD,4BAEA,OADA,SACAE,cACA,EAMA,kBAEA,kCACA,QACA7C,MAGA,IACApO,EACA8O,EACAzM,EACAwM,EACAqC,EACAnC,EACAoC,EACA1J,EACA2J,EACAlD,EACA3F,EACAC,EACAR,EACAqJ,EACA1J,EACAmB,EACAD,GACAyI,EACAC,GAnBA1D,KAoBA/M,YAEA,QAAkBd,KAAOA,IAGzB,GAFAkO,OAEA1O,yGAGA,KAFA+R,6DAEA,wGACA1D,eAKA,eACA,YAEA,SAGA,SAEAA,sBACA,SAGA,cAEAA,2HACA,SAGA,WAEAA,+CACA,SAGA,YAOA,IALApG,KAEA0J,KACAtC,kBAEAC,IAA0BA,IAAQA,IAClCqC,iEACA1J,UACAC,mBAQA,IAJAD,6BACA2J,KACAvC,iBAEAC,IAA0BA,IAAQA,KAKlC,IAHAqC,KACAD,GAFAnC,qBAEA5H,OAEA9E,IAA4BA,IAAQA,IACpC8O,mDACA1J,UACAC,mBAIA0J,6BAGAvD,4BACA,SAGA,iBAEAuD,uBACAvD,+BACA,SAGA,WAQA,IANAtF,YACAC,UACAR,UACA6G,iBACAuC,KAEAtC,IAA0BA,IAAQA,IAElChG,GADAnB,cACAmB,QACAD,UACAwI,KAEA1J,SACA2J,4BAEAtJ,EACAL,8CACAA,wCAEAA,uFACAA,8DAGAA,kBACAf,YACAD,SAIA0K,MAIAA,0BACAD,kCAGAvD,6BACA,SAGA,WAGAA,8BACA,SAGA,gBAEAA,uDACA,SAGA,WAIA,IAFAuD,6CAEApR,8BAEAoR,UADAlD,UACA7D,0CAGAwD,kCACA,SAGA,QAEA,qDAEA,uBAEA,YADAe,kBAGA,oBAMA,QACA,EAMA7H,4BACA7C,mBACA,IACAlE,EACAkO,EACAqD,EAHA1D,KAIA/M,WAEA,QAAkBd,IAAOA,IAGzB,GAFAkO,OAEA1O,yGAGA,KAFA+R,4DAEA,8FACA1D,cAKA,eACA,aAsDA,WAEAA,kBACA,MAnDA,WAEAA,kBACA,MAGA,WAEAA,uDACA,MAGA,YAEAA,kCACA,MAGA,aAEAA,0CACA,MAGA,SAEAA,sCACA,MAGA,eAEAA,sBACA,MAGA,SAEAA,UACA,MAGA,UAEAA,uCACA,MASA,QAEA,oDAEA,uBAEA,YADAe,iBAGA,mBAMA,QACA,EAEAmC,CACA,CA1UA,GA8UAxG,MACA2F,MACAE,MACAK,MACAe,WACAC,GAlrEA,eACA7G,0BACAgE,uNAEA,EA+qEA7C,YACApH,yBACAC,4BACArB,sBAKA,kBAEA,0BACA,kEAGA,sBACA,+GAWA,GARA,uBACAmO,IACA9G,QAGAA,QAAkB+G,kBAClBF,MAEAC,GACA,IACArH,EADAvG,cAGA,IACAuG,YAGA,CAFA,MAAQ7J,GACR,WACA,CAEA,kBACA,MAEA,MACA,IACAoK,cACA+G,6BAGA9D,cAGA,CAFA,MAAYrN,GACZoR,GACA,CAGA,qBACAA,gBACA,EAOA,IALA9N,uBAIA8G,aACAP,qBACA,QA6BA,OA5BAsH,2BACA,kBACAE,IACAC,sBACAhO,8BACA,KACA,YAGA,sBACAoK,SACAA,cAKA,KAFA2D,GAGA1O,GAEA,EACA,EAAW,GAEX,QAEA,OACAA,IAGA,CAGA,IACA,iBAEA,qBACAwO,6BAGAZ,YASA,CARA,MAAMvQ,GAGN,GAFAA,yEAEAoK,SACA,oEAGA,OACA,CACA,CAgSA,OA1RA+G,mCACA,wBACA/M,eACA+M,CACA,EAEAA,iBACAA,cAKAA,iBAGA,QAFAxD,OAEA4D,sCAAwEC,IAAaA,IACrF7P,kBAGA,IAKA8P,EALAC,uBAAsCC,WACtCzO,0BACA0O,aACAC,gBAGAlQ,sBAoIA,GAlIAmQ,eACAL,KACAK,iCACA,WACA,2CAGA,eAEA,2CAIA5O,oBAFA6O,EAEA,WACA,8CAAuFC,IAAeA,IACtGrQ,kBAGA,+BAEA,eACAoP,mBAGAA,CACA,EAEAkB,WAIA,gBAEA,mDACA,+DAGA/O,WACAA,gCAEAA,yBAGA+O,UAEA,kBACA/O,aACAA,2BAEAA,uBAEgB,qBAChBA,cACAA,4BAEAA,0BAMA+O,gBAEA/O,oCAEA,IAIA4O,YACA,WACA,kCAEAI,cACA,WAEAxO,gBACA,8CAAqFyO,IAAeA,IACpGxQ,kBAGA,+BAEA,eACAoP,gBAGAA,CACA,CACA,EAEA,wBACAmB,KAGAR,YACA,CA1BA,GA6BAI,aACA,WACA,mCAEAM,cACA,WAEApO,gBACA,8CAAqFqO,IAAeA,IACpG1Q,kBAGA,gCAEA,eACAoP,gBAGAA,CACA,CACA,EAEA,yBACAqB,KAGAV,aACA,CA1BA,GA8BAI,cACA,4BAEAJ,yBACAI,uBAEA7N,GACAA,IAEA,EAGAwN,IACAC,gBAGAP,eACA,EACA,EAMAA,2BA6CA,UA5CAmB,aACA,cAGA,OAFApB,KAEAxD,QACA,YAEA,iCAAgG6E,aAEhGpB,aADAoB,QACArB,GAGA,gCAA+FsB,aAG/F,cAFAA,WAEkFC,aAElFtB,aADAsB,QACAvB,GAIA,MAGA,WAEAC,wBACA,MAGA,QAEAA,oGAEAA,8DACAA,oBACA,GACczD,UACdyD,yBAIA,EAEAuB,SAAyEC,aACzEL,GAEA,EAMAnB,4BAEA,0BACA,8EAGA,sBACA,2HAGA/G,QAAkB+G,kBAClBF,MAEA,IACA,uBAEA,qBACAE,6BAGAZ,kBASA,CARA,MAAMvQ,GAGN,GAFAA,yEAEAoK,SACA,oEAGA,OACA,CACA,EAMA+G,WACAA,iBACAA,cACAA,kBACAA,UACAA,cACAA,eACAA,aACAA,UACAA,CAIA","names":["this","c","ua","n","r","ignore","pats","VV","i","av","ios","parseFloat","s","v","f","releases_per_year","e","v1","v2","window","ll","op","l","vs","required","$bu_","b","required_min","bb","check_show","document","$buo_show","module","burl","ta","t","msg","msgmore","bnever","custom_text","tar","div","style2","args","data","k","busprintf","style","updatebutton","hm","ignorebutton","Math","$buo","insecure","global","descriptor","Object","_unsupportedIterableToArray","it","done","value","exports","defaults$5","defaults","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","silent","smartLists","smartypants","tokenizer","walkTokens","xhtml","getDefaults","changeDefaults","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","unescapeTest","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","protocol","domain","suffLen","currChar","helpers","unescape$1","target","key","obj","defaults$4","rtrim","rtrim$1","splitCells","cells","tableRow","escaped","curr","split","_escape","title","text","type","raw","href","_proto","codeBlockStyle","node","matchIndentInNode","length","join","indentCodeCompensation","lang","trimmed","depth","header","align","item","space","bcurr","bnext","addBack","loose","istask","ischecked","endMatch","bull","isordered","list","ordered","start","items","itemMatch","next","indexOf","task","checked","pre","cap","tag","inLink","inRawBlock","level","str","findClosingBracket","linkLen","link","outputLink","prevChar","match","rDelim","rLength","lLength","delimTotal","midDelimTotal","endReg","maskedSrc","hasNonSpaceChars","hasSpaceCharsOnBothEnds","tokens","prevCapZero","Tokenizer","noopTest","exec","edit","regex","opt","replace","val","getRegex","merge$1","block$1","newline","code","fences","hr","heading","blockquote","html","def","nptable","table","lheading","_paragraph","paragraph","escape","autolink","url","reflink","nolink","reflinkSearch","emStrong","lDelim","rDelimAst","rDelimUnd","br","del","punctuation","inline$1","strong","middle","endAst","endUnd","em","_extended_email","_backpedal","block","inline","Tokenizer$1","defaults$3","repeatString","result","count","pattern","ch","out","rules","Lexer","lex","inlineTokens","token","_this","top","src","lastToken","cutSrc","tempSrc","tempStart","startIndex","lastParagraphClipped","console","l2","j","row","keepPrevChar","links","_this2","protoProps","staticProps","_createClass","get","defaults$2","cleanUrl","prot","base","relativeBase","resolveUrl","escape$1","Renderer_1","_code","flags","content","Renderer","TextRenderer_1","TextRenderer","Slugger_1","occurenceAccumulator","slug","options","Slugger","Renderer$1","TextRenderer$1","Slugger$1","defaults$1","unescape","Parser","parse","parseInline","l3","cell","body","itemBody","checkbox","ret","merge","checkSanitizeDeprecation","callback","marked","err","pending","setTimeout","_len","_key","hasExtensions","opts","concat","renderers","childTokens","pack","prevRenderer","_key2","ext","_loop","_key3","_loop2","_key4","_loop3","_step2","_step3","_step4","_iterator","_step"],"sourceRoot":"webpack:///","sources":["node_modules\\browser-update\\update.npm.full.js","node_modules\\@fluxys\\common\\browser-update\\check-browser-outdated.js","node_modules\\marked\\lib\\marked.js"],"sourcesContent":["//(c)2019, MIT Style License \r\n//it is recommended to directly link to this file because we update the detection code\r\n\"use strict\";\r\n\r\nvar $bu_= new function() {\r\n var s=this;\r\n this.version=\"3.3.44npm\";\r\n this.vsakt = {c:\"106\",f:\"105\",s:\"15.6\",e:\"106\",i:\"12\",ios:\"15.6\",samsung:\"17.0.7\",o:\"89\",e_a:\"104\",o_a:\"70\",y:\"22.7.0\",v:\"5.4\",uc:\"13.4.0\"};\r\n //severely insecure below(!) this version, insecure means remote code execution that is actively being exploited\r\n this.vsinsecure_below = {c:\"100.0.5195.102\",f:\"100.3\",s:\"11.1.1\",e:16,i:11,ios:\"12.3\",samsung:12.0,o:62,o_a:52,y:\"20\",v:\"2.7\",uc:\"13.1\"};\r\n this.vsdefault = {c:-3,f:-3,s:-1,e:17,i:11,ios:10,samsung:9.9,o:-3,o_a:-3,y:20.4,v:2.6,uc:13.0,a:535};\r\n this.names={c:\"Chrome\",f:'Firefox',s:'Safari',e:\"Edge\",i:'Internet Explorer',ios:\"iOS\",samsung:\"Samsung Internet\",o:'Opera',o_a:'Opera', e_a:\"Edge\", y:\"Yandex Browser\",v:\"Vivaldi\",uc:\"UC Browser\",a:\"Android Browser\",x:\"Other\",silk:\"Silk\"};\r\n\r\n this.get_browser = function(ua) {\r\n var n,ua=(ua||navigator.userAgent).replace(\"_\",\".\"),r={n:\"x\",v:0,t:\"other browser\",age_years:undefined,no_device_update:false,available:s.vsakt};\r\n function ignore(reason,pattern){if (new RegExp(pattern,\"i\").test(ua)) return reason;return false}\r\n r.other=ignore(\"bot\",\"Pagespeed|pingdom|Preview|ktxn|dynatrace|Ruxit|PhantomJS|Headless|Lighthouse|bot|spider|archiver|transcoder|crawl|checker|monitoring|prerender|screenshot|python-|php|uptime|validator|fetcher|facebook|slurp|google|yahoo|node|mail.ru|github|cloudflare|addthis|thumb|proxy|feed|fetch|favicon|link|http|scrape|seo|page|search console|AOLBuild|Teoma|Expeditor\")||\r\n ignore(\"TV\",\"SMART-TV|SmartTV\") ||\r\n ignore(\"niche browser\",\"motorola edge|Comodo.Dragon|OculusBrowser|Falkon|Brave|Classic Browser|Dorado|LBBROWSER|Focus|waterfox|Firefox/56.2|Firefox/56.3|Whale|MIDP|k-meleon|sparrow|wii|Chromium|Puffin|Opera Mini|maxthon|maxton|dolfin|dolphin|seamonkey|opera mini|netfront|moblin|maemo|arora|kazehakase|epiphany|konqueror|rekonq|symbian|webos|PaleMoon|Basilisk|QupZilla|Otter|Midori|qutebrowser|slimjet\") ||\r\n ignore(\"mobile without upgrade path or landing page\",\"OPR/44.12.2246|cros|kindle|tizen|silk|blackberry|bb10|RIM|PlayBook|meego|nokia|ucweb|ZuneWP7|537.85.10\");\r\n// ignore(\"android(chrome) web view\",\"; wv\");\r\n r.embedded=/\"QtWebEngine|Teams|Electron/i.test(ua);\r\n r.mobile=(/iphone|ipod|ipad|android|mobile|phone|ios|iemobile/i.test(ua));\r\n r.discontinued=(/netscape|greenbrowser|camino|flot|fennec|galeon|coolnovo/i.test(ua));\r\n\r\n var pats=[\r\n [\"CriOS.VV\",\"c\",'ios'],\r\n [\"FxiOS.VV\",\"f\",'ios'],\r\n [\"Trident.*rv:VV\",\"i\",'i'],\r\n [\"Trident.VV\",\"i\",'i'],\r\n [\"UCBrowser.VV\",\"uc\",'c'],\r\n [\"MSIE.VV\",\"i\",'i'],\r\n [\"Edge.VV\",\"e\",'e'],\r\n [\"Edg.VV\",\"e\",'c'],\r\n [\"EdgA.VV\",\"e_a\",'c'],\r\n [\"Vivaldi.VV\",\"v\",'c'],\r\n [\"Android.*OPR.VV\",\"o_a\",'c'],\r\n [\"OPR.VV\",\"o\",'c'],\r\n [\"YaBrowser.VV\",\"y\",'c'],\r\n [\"SamsungBrowser.VV\",\"samsung\",'c'],\r\n [\"Silk.VV\",\"silk\",'c'],\r\n [\"Chrome.VV\",\"c\",'c'],\r\n [\"Firefox.VV\",\"f\",'f'],\r\n [\" OS.VV.*Safari\",\"ios\",'ios'],\r\n [\"Version.VV.*Safari\",\"s\",'s'],\r\n [\"Safari.VV\",\"s\",'s'],\r\n [\"Opera.*Version.VV\",\"o\"],\r\n [\"Opera.VV\",\"o\"]\r\n ];\r\n var VV=\"(\\\\d+\\\\.?\\\\d+\\\\.?\\\\d*\\\\.?\\\\d*)\";\r\n for (var i=0; i < pats.length; i++) {\r\n if (ua.match(new RegExp(pats[i][0].replace(\"VV\",VV),\"i\"))) {\r\n r.n=pats[i][1];\r\n r.engine=pats[i][2];\r\n break;\r\n } \r\n }\r\n r.fullv=RegExp.$1;\r\n r.v=parseFloat(r.fullv);\r\n\r\n // Special treatment of some systems\r\n //do not notify old systems since there is no up-to-date browser available\r\n if (/windows.nt.5|windows.nt.4|windows.nt.6.0|windows.95|windows.98|os x 10.2|os x 10.3|os x 10.4|os x 10.5/i.test(ua)) {\r\n r.no_device_update=true;\r\n r.available={}\r\n }\r\n //Safari on iOS 13 in Desktop mode\r\n if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) {\r\n r.n=\"ios\";\r\n r.engine='ios';\r\n r.fullv=r.v=13;\r\n r.no_device_update=true;//For now, never show a message, TODO!\r\n }\r\n //iOS\r\n if (/iphone|ipod|ipad|ios/i.test(ua)) {\r\n ua.match(new RegExp(\"OS.\"+VV,\"i\"));\r\n r.n=\"ios\";\r\n r.fullv=RegExp.$1;\r\n r.v=parseFloat(r.fullv);\r\n r.engine='ios';\r\n var av=s.available_ios(ua,r.v);\r\n /*\r\n var newmap={10:\"10.3.4\",11:\"12.4.3\",12:\"12.4.3\",13:s.vsakt[\"ios\"]};\r\n if (av in newmap)\r\n av=newmap[av];\r\n */\r\n if (av < 12 && Math.round(r.v)===11)// all devices with ios 11 support ios 12\r\n av=12\r\n r.available = {\"ios\": av};\r\n if (parseFloat(r.available.ios)<11)\r\n r.no_device_update=true;\r\n }\r\n //winxp/vista/2003\r\n if (/windows.nt.5.1|windows.nt.5.2|windows.nt.6.0/i.test(ua)) {\r\n r.available={\"c\":49.9,\"f\":52.9}\r\n r.no_device_update=true;\r\n }\r\n //old mac\r\n if (/os x 10.6/i.test(ua)) {\r\n r.available = {\"s\": \"5.1.10\", \"c\": 49.9, \"f\": 48}\r\n r.no_device_update=true;\r\n }\r\n\r\n if (/os x 10.7|os x 10.8/i.test(ua)) {\r\n r.available = {\"s\": \"6.2.8\", \"c\": 49.9, \"f\": 48}\r\n r.no_device_update=true;\r\n }\r\n if (/os x 10.9/i.test(ua))\r\n r.available.s=\"9.1.3\"\r\n\r\n if (/os x 10.10/i.test(ua))\r\n r.available.s=\"10.1.2\"\r\n\r\n //check for android stock browser\r\n if (ua.indexOf('Android')>-1 && r.n===\"s\") {\r\n var v=parseInt((/WebKit\\/([0-9]+)/i.exec(ua) || 0)[1],10) || 2000;\r\n if (v <= 534) {\r\n r.n=\"a\";\r\n r.fullv=r.v=v;\r\n r.is_insecure=true;\r\n }\r\n }\r\n\r\n r.t=s.names[r.n]+\" \"+r.v;\r\n r.is_supported=r.is_latest= !s.vsakt[r.n] ? undefined : s.less(r.fullv,s.vsakt[r.n])<=0;\r\n \r\n r.vmaj=Math.round(r.v);\r\n\r\n r.is_insecure= r.is_insecure|| !s.vsinsecure_below[r.n] ? undefined : s.less(r.fullv,s.vsinsecure_below[r.n])===1;\r\n \r\n if ((r.n===\"f\" && (r.vmaj===102)) || (r.n===\"i\" && r.vmaj===11)) {\r\n r.is_supported=true;\r\n r.is_insecure=false;\r\n if (r.n===\"f\")\r\n r.esr=true;\r\n }\r\n \r\n if (r.n===\"ios\" && r.v>10.3)\r\n r.is_supported=true;\r\n if (r.n===\"a\" || r.n===\"x\")\r\n r.t=s.names[r.n];\r\n if (r.n===\"e\") {\r\n r.t = s.names[r.n] + \" \" + r.vmaj;\r\n r.is_supported = s.less(r.fullv, \"18.15063\") != 1\r\n }\r\n if (r.n in [\"c\",\"f\",\"o\",\"e\"] && s.less(r.fullv,parseFloat(s.vsakt[r.n])-1)<=0)\r\n r.is_supported=true; //mark also the version before the current version as supported to make the transitions smoother\r\n\r\n var releases_per_year={'f':7,'c':8,'o':8,'i':1,'e':1,'s':1}//,'v':1}\r\n if (releases_per_year[r.n]) {\r\n r.age_years=Math.round(((s.vsakt[r.n]-r.v)/releases_per_year[r.n])*10)/10 || 0\r\n }\r\n var engines={e:\"Edge.VV\",c:\"Chrome.VV\",f:\"Firefox.VV\",s:\"Version.VV\",i:\"MSIE.VV\",\"ios\":\" OS.VV\"}\r\n if (r.engine) {\r\n ua.match(new RegExp(engines[r.engine].replace(\"VV\",VV),\"i\"))\r\n r.engine_version=parseFloat(RegExp.$1)\r\n } \r\n return r\r\n}\r\nthis.semver = function(vstr) {\r\n if (vstr instanceof Array)\r\n return vstr\r\n var x = (vstr+(\".0.0.0\")).split('.')\r\n return [parseInt(x[0]) || 0, parseInt(x[1]) || 0, parseInt(x[2]) || 0, parseInt(x[3]) || 0]\r\n}\r\nthis.less= function(v1,v2) {\r\n //semantic version comparison: returns 1 if v1v2\r\n v1=s.semver(v1)\r\n v2=s.semver(v2)\r\n for (var i=0; ;i++) {\r\n if (i>=v1.length) return i>=v2.length ? 0 : 1;\r\n if (i>=v2.length) return -1;\r\n var diff = v2[i]-v1[i]\r\n if (diff) return diff>0 ? 1 : -1;\r\n }\r\n}\r\nthis.available_ios=function(ua,v) {\r\n //https://support.apple.com/de-de/guide/iphone/iphe3fa5df43/ios\r\n var h = Math.max(window.screen.height, window.screen.width),pr = window.devicePixelRatio\r\n if (/ipad/i.test(ua)) {\r\n if (h == 1024 && pr == 2) // iPad 3 (iOS 9), 4, 5, Mini 2, Mini 3, Mini 4, Air, Air 2, Pro 9.7\r\n return 10//? only ipad 4 has ios 10, all other can have ios 11\r\n if (h == 1112)// iPad Pro 10.5\r\n return 15;\r\n if (h == 1366)//iPad Pro 12.9, Pro 12.9 (2nd Gen)\r\n return 15\r\n if (h == 1024 && v < 6)\r\n return 5 // iPad\r\n return 9 // iPad 2, iPad Mini\r\n }\r\n if (pr == 1)// 1/3G/3GS\r\n return 6//for 3GS\r\n if (pr == 3)\r\n return 15\r\n if (h == 812)// X\r\n return 15\r\n if ((h == 736 || h == 667))// && pr == 3)// 6+/6s+/7+ and 8+ or // 6+/6s+/7+ and 8+ in zoom mode + // 6/6s/7 and 8\r\n return 15//slightly wrong as latest version for iphone 6 is 12\r\n if (h == 568) // 5/5C/5s/SE or 6/6s/7 and 8 in zoom mode\r\n return 10\r\n if (h == 480) // i4/4s\r\n return 7\r\n return 6\r\n}\r\n/*\r\nthis.sub= function(v,minus) {\r\n //semantic version subtraction\r\n v=s.semver(v)\r\n minus=s.semver(minus)\r\n for (var i=0; ;i++) {\r\n if (i>=v.length||i>minus.length) break;\r\n v[i]-=v[minus];\r\n }\r\n return v.join('.')\r\n}\r\n*/\r\n}\r\n\r\nwindow.$bu_getBrowser=$bu_.get_browser;\r\n\r\nvar $buo = function(op,test) {\r\nvar n = window.navigator,b;\r\nop=window._buorgres=op||{};\r\nvar ll = op.l||(n.languages ? n.languages[0] : null) || n.language || n.browserLanguage || n.userLanguage||document.documentElement.getAttribute(\"lang\")||\"en\";\r\nop.llfull=ll.replace(\"_\",\"-\").toLowerCase().substr(0,5);\r\nop.ll=op.llfull.substr(0,2);\r\nop.domain=op.domain!==undefined?op.domain:(/file:/.test(location.href)?\"https:\":\"\")+\"//browser-update.org\";\r\nop.apiver=op.api||op.c||-1;\r\nop.jsv=$bu_.version;\r\n\r\nvar required_min=(op.apiver<2018&&{i:10,f:11,o:21,s:8,c:30})||{};\r\n\r\nvar vs=op.notify||op.vs||{};//legacy config: maximum version to notify\r\nif (vs.e!==0)\r\n vs.e=vs.e||vs.i;\r\nvs.i=vs.i||vs.e;\r\nvar required=op.required||{};//minimum browser versions needed\r\nif (required.e!==0)\r\n required.e=required.e||required.i;\r\nif (!required.i) {\r\n required.i=required.e;\r\n $bu_.vsakt.i=$bu_.vsakt.e;\r\n}\r\n\r\nfor (b in $bu_.vsdefault) {\r\n if (vs[b]) {//legacy style config: browsers to notify\r\n if ($bu_.less(vs[b],0)>=0) // required <= 0\r\n required[b]= parseFloat($bu_.vsakt[b])+parseFloat(vs[b])+0.01\r\n else\r\n required[b] = parseFloat(vs[b]) + 0.01\r\n }\r\n if (!(b in required) || required[b]==null)\r\n required[b]=$bu_.vsdefault[b]\r\n if ($bu_.less(required[b],0)>=0) // case for required <= 0 --> relative to latest version\r\n required[b]=parseFloat($bu_.vsakt[b])+parseFloat(required[b]) // TODO: make it work for string version\r\n if (required_min[b] && $bu_.less(required[b],required_min[b])===1) // required < required_min\r\n required[b]=required_min[b]\r\n}\r\nrequired.ios=required.ios||required.s;\r\n\r\nif (required.i<79 && required.i>65)\r\n required.i=required.i-60\r\nif (required.e<79 && required.e>65)\r\n required.e=required.e-60\r\nop.required=required;\r\nop.reminder=op.reminder<0.1 ? 0 : op.reminder||(24*7);\r\nop.reminderClosed=op.reminderClosed<1 ? 0 : op.reminderClosed||(24*7);\r\nop.onshow = op.onshow||function(o){};\r\nop.onclick = op.onclick||function(o){};\r\nop.onclose = op.onclose||function(o){};\r\nop.pageurl = op.pageurl || location.hostname || \"x\";\r\nop.newwindow=(op.newwindow!==false);\r\n\r\nop.test=test||op.test||(location.hash===\"#test-bu\")||false;\r\nop.ignorecookie=op.ignorecookie||location.hash===\"#ignorecookie-bu\";\r\n\r\nop.reasons=[];\r\nop.hide_reasons=[];\r\nfunction check_show(op) {\r\n var bb=op.browser=$bu_.get_browser(op.override_ua);\r\n op.is_below_required = required[bb.n] && $bu_.less(bb.fullv,required[bb.n])===1; //bb.fullv0)\r\n return false\r\n if (op.reasons.length>0)\r\n return true\r\n return false\r\n }\r\n\r\nop.notified=check_show(op);\r\n\r\nop.already_shown=document.cookie.indexOf(\"browserupdateorg=pause\")>-1 && !op.ignorecookie;\r\n\r\nif (!op.test && (!op.notified || op.already_shown))\r\n return;\r\n\r\nop.setCookie=function(hours) { //sets a cookie that the user has already seen the notification, closed it or permanently wants to hide it. No information on the user is stored.\r\n document.cookie = 'browserupdateorg=pause; expires='+(new Date(new Date().getTime()+3600000*hours)).toGMTString()+'; path=/; SameSite=Lax'+(/https:/.test(location.href)?'; Secure':'')\r\n}\r\n\r\nif (op.already_shown && (op.ignorecookie || op.test))\r\n op.setCookie(-10)// remove old cookies if in test mode\r\n\r\nif (op.reminder>0)\r\n op.setCookie(op.reminder);\r\n\r\nif (op.nomessage) {\r\n op.onshow(op);\r\n return;\r\n}\r\n\r\n$buo_show();\r\n};\r\n\r\n\r\nif( typeof( module ) !== 'undefined' ) {\r\n module.exports = $buo;\r\n}\r\n\r\n\r\n\r\n\"use strict\";\r\nvar $buo_show = function () {\r\n var op = window._buorgres;\r\n var bb = $bu_getBrowser();\r\n var burl = op.burl || (\"http\" + (/MSIE/i.test(navigator.userAgent) ? \"\" : \"s\") + \"://browser-update.org/\");\r\n if (!op.url) {\r\n op.url = burl + ((op.l && (op.l + \"/\")) || \"\") + \"update-browser.html\" + (op.test ? \"?force_outdated=true\" : \"\") + \"#\" + op.jsv + \":\" + op.pageurl;\r\n }\r\n op.url_permanent_hide=op.url_permanent_hide || (burl + \"block-ignore-browser-update-warning.html\");\r\n /*\r\n if (Math.random()*1000<1 && !op.test && !op.betatest) {\r\n var i = new Image();\r\n var txt=op[\"text_\"+ll]||op.text||\"\";\r\n var extra=encodeURIComponent(\"frac=\"+frac+\"&txt=\"+txt+\"&apiver=\"+op.apiver);\r\n i.src=\"https://browser-update.org/cnt?what=noti&from=\"+bb.n+\"&fromv=\"+bb.v + \"&ref=\"+ escape(op.pageurl) + \"&jsv=\"+op.jsv+\"&tv=\"+op.style+\"&extra=\"+extra;\r\n }\r\n */\r\n function busprintf() {\r\n var args = arguments;\r\n var data = args[0];\r\n for (var k = 1; k < args.length; ++k) {\r\n data = data.replace(/%s/, args[k]);\r\n }\r\n return data;\r\n }\r\n\r\n\r\nvar t = {}, ta;\r\nt.en= {'msg': 'Your web browser ({brow_name}) is out of date.', 'msgmore': 'Update your browser for more security, speed and the best experience on this site.', 'bupdate': 'Update browser', 'bignore': 'Ignore','remind': 'You will be reminded in {days} days.','bnever': 'Never show again'}\r\nt.ar= {'msg': 'متصفح الإنترنت الخاص بك ({brow_name}) غير مُحدّث.','msgmore': 'قم بتحديث المتصفح الخاص بك لمزيد من الأمان والسرعة ولأفضل تجربة على هذا الموقع.','bupdate': 'تحديث المتصفح','bignore': 'تجاهل', 'remind': 'سيتم تذكيرك في غضون {days} أيام.', 'bnever': 'لا تظهر مرة أخرى'}\r\nt.bg= {'msg': 'Вашият уеб браузър ({brow_name}) е остарял.','msgmore': 'Актуализирайте браузъра си за повече сигурност, бързина и най-доброто изживяване на този сайт.','bupdate': 'Актуализиране на браузъра','bignore': 'игнорирай', 'remind': 'Ще ви бъде напомнено след {days} дни.', 'bnever': 'Никога повече да не се показва'}\r\nt.ca= {'msg': 'El teu navegador ({brow_name}) està desactualitzat.','msgmore': 'Actualitzeu el vostre navegador per obtenir més seguretat, velocitat i una millor experiència en aquest lloc.','bupdate': 'Actualitza el navegador','bignore': 'Ignorar', 'remind': 'T\\'ho recordarem d\\'aquí a {days} dies.', 'bnever': 'No ho tornis a mostrar'}\r\nt.cs= {'msg': 'Váš prohlížeč ({brow_name}) je zastaralý.','msgmore': 'Aktualizujte prohlížeč pro lepší zabezpečení, rychlost a nejlepší zážitek z tohoto webu.','bupdate': 'Aktualizovat prohlížeč','bignore': 'Ignorovat', 'remind': 'Znovu budete upozorněni za {days} dnů.', 'bnever': 'Již nezobrazovat'}\r\nt.cy= {'msg': 'Mae eich porwr gwe ({brow_name}) angen ei ddiweddaru.','msgmore': 'Diweddarwch eich porwr i gael mwy o ddiogelwch, cyflymder a\\'r profiad gorau ar y safle hwn.','bupdate': 'Diweddaru porwr','bignore': 'Anwybyddu', 'remind': 'Byddwn yn eich atgoffa mewn {days} diwrnod.', 'bnever': 'Peidiwch â dangos eto'}\r\nt.da= {'msg': 'Din web browser ({brow_name}) er forældet','msgmore': 'Opdater din browser for mere sikkerhed, hastighed og den bedste oplevelse på denne side.','bupdate': 'Opdater browser','bignore': 'Ignorer', 'remind': 'Du vil blive påmindet om {days} dage.', 'bnever': 'Vis aldrig igen'}\r\nt.de= {'msg': 'Ihr Webbrowser ({brow_name}) ist veraltet.','msgmore': 'Aktualisieren Sie Ihren Browser für mehr Sicherheit, Geschwindigkeit und den besten Komfort auf dieser Seite.','bupdate': 'Browser aktualisieren','bignore': 'Ignorieren', 'remind': 'Sie werden in {days} Tagen wieder erinnert.', 'bnever': 'Nie wieder anzeigen'}\r\nt.el= {'msg': 'Το πρόγραμμα περιήγησής σας ({brow_name}) είναι απαρχαιωμένο.','msgmore': 'Ενημερώστε το πρόγραμμα περιήγησής σας για περισσότερη ασφάλεια, ταχύτητα και την καλύτερη εμπειρία σ\\' αυτόν τον ιστότοπο.','bupdate': 'Ενημερώστε το πρόγραμμα περιήγησης','bignore': 'Αγνοήστε', 'remind': 'Θα σας το υπενθυμίσουμε σε {days} ημέρες.', 'bnever': 'Να μην εμφανιστεί ξανά'}\r\nt.es= {'msg': 'Su navegador web ({brow_name}) está desactualizado.','msgmore': 'Actualice su navegador para obtener más seguridad, velocidad y para disfrutar de la mejor experiencia en este sitio.','bupdate': 'Actualizar navegador','bignore': 'Ignorar', 'remind': 'Se le recordará en {days} días.', 'bnever': 'No mostrar de nuevo'}\r\nt.et= {'msg': 'Teie veebilehitseja ({brow_name}) on vananenud.','msgmore': 'Veebilehitseja uuendamisega kaasneb nii parem turvalisus, kiirus kui ka kasutusmugavus.','bupdate': 'Uuenda veebilehitsejat','bignore': 'Eira', 'remind': 'Uus meeldetuletus {days} päeva pärast.', 'bnever': 'Ära kunagi enam näita'}\r\nt.fa= {'msg': 'مرورگر شما ({brow_name}) قدیمی است.','msgmore': 'برای ایمنی، سرعت و تجربه بهتر مرورگر خود را به‌روز کنید.','bupdate': 'به‌روزرسانی مرورگر','bignore': 'نادیده گرفتن', 'remind': 'به شما تا {days} روز دیگر دوباره یاد‌آوری خواهد شد.', 'bnever': 'هرگز نمایش نده'}\r\nt.fi= {'msg': 'Selaimesi ({brow_name}) on vanhentunut.','msgmore': 'Päivitä selaimesi saadaksesi tietoturvapäivityksiä, nopeutta sekä parhaan käyttökokemuksen sivustolla.','bupdate': 'Päivitä selain','bignore': 'Ohita', 'remind': 'Saat uuden muistutuksen {days} päivän päästä.', 'bnever': 'Älä näytä uudestaan'}\r\nt.fr= {'msg': 'Votre navigateur Web ({brow_name}) n\\'est pas à jour.','msgmore': 'Mettez à jour votre navigateur pour plus de sécurité et de rapidité et une meilleure expérience sur ce site.','bupdate': 'Mettre à jour le navigateur','bignore': 'Ignorer', 'remind': 'Vous serez rappelé dans {days} jours.', 'bnever': 'Ne plus afficher'}\r\nt.gl= {'msg': 'Tá an líonléitheoir agat ({brow_name}) as dáta.','msgmore': 'Actualiza o teu navegador para obter máis seguridade, rapidez e mellor experiencia neste sitio.','bupdate': 'Actualizar navegador web','bignore': 'Ignorar', 'remind': 'Lembraralle en {days} días.', 'bnever': 'Non volver mostrar máis'}\r\nt.he= {'msg': 'דפדפן ({brow_name}) שלך אינו מעודכן.','msgmore': 'עדכן/י את הדפדפן שלך לשיפור האבטחה והמהירות וכדי ליהנות מהחוויה הטובה ביותר באתר זה.','bupdate': 'עדכן דפדפן','bignore': 'התעלם', 'remind': 'תקבל/י תזכורת בעוד {days} ימים.', 'bnever': 'אל תציג שוב'}\r\nt.hi= {'msg': 'आपका वेब ब्राउज़र ({brow_name}) पुराना है।','msgmore': 'इस साइट पर अधिक सुरक्षा, गति और सर्वोत्तम अनुभव करने के लिए अपने ब्राउज़र को अपडेट करें ।','bupdate': 'ब्राउज़र अपडेट करें','bignore': 'नजरअंदाज करें', 'remind': 'आपको {days} दिनों में याद दिलाया जाएगा।', 'bnever': 'फिर कभी मत दिखाना'}\r\nt.hu= {'msg': 'Az Ön webböngészője ({brow_name}) elavult.','msgmore': 'Frissítse böngészőjét a nagyobb biztonság, sebesség és élmény érdekében!','bupdate': 'Böngésző frissítése','bignore': 'Mellőzés', 'remind': 'Újra emlékeztetünk {days} napon belül.', 'bnever': 'Ne mutassa többet'}\r\nt.id= {'msg': 'Peramban web ({brow_name}) Anda sudah usang.','msgmore': 'Perbarui peramban Anda untuk pengalaman terbaik, lebih aman, dan cepat di situs ini.','bupdate': 'Perbarui peramban','bignore': 'Abaikan', 'remind': 'Anda akan diingatkan kembali dalam {days} hari.', 'bnever': 'Jangan pernah tampilkan lagi'}\r\nt.it= {'msg': 'Il tuo browser ({brow_name}) non è aggiornato.','msgmore': 'Aggiorna il browser per una maggiore sicurezza, velocità e la migliore esperienza su questo sito.','bupdate': 'Aggiorna browser','bignore': 'Ignora', 'remind': 'Riceverai un promemoria tra {days} giorni.', 'bnever': 'Non mostrare di nuovo'}\r\nt.ja= {'msg': 'お使いのブラウザ({brow_name})は最新版ではありません。','msgmore': 'セキュリティ、スピード、そしてこのサイトでの最良の体験のためにお使いのブラウザを更新してください。','bupdate': 'ブラウザを更新する','bignore': '無視する', 'remind': '{days} 日後にもう一度お知らせします。', 'bnever': '次回から表示しない'}\r\nt.ko= {'msg': '귀하의 웹 브라우저({brow_name})는 오래되었습니다.','msgmore': '이 사이트에서 보안, 속도와 최상의 경험을 얻으려면 브라우저를 업데이트하십시오.','bupdate': '브라우저 업데이트하기','bignore': '무시하기', 'remind': '{days}일 후에 알려 드립니다.', 'bnever': '다시 표시하지 않기'}\r\nt.lt= {'msg': 'Jūsų naršyklė ({brow_name}) yra pasenusi.','msgmore': 'Atsinaujinkite savo naršyklę norėdami gauti daugiau saugumo, greičio ir pačių geriausių patirčių šioje svetainėje.','bupdate': 'Atnaujinti naršyklę','bignore': 'Nepaisyti', 'remind': 'Jums bus priminta po {days} dienų.', 'bnever': 'Daugiau niekada nerodyti'}\r\nt.lv= {'msg': 'Jūsu pārlūkprogramma ({brow_name}) ir novecojusi.','msgmore': 'Atjaunojiet savu pārlūkprogrammu lielākai drošībai, ātrumam un labākai pieredzei ar šo vietni.','bupdate': 'Atjaunināt pārlūkprogrammu','bignore': 'Ignorēt', 'remind': 'Jums tiks parādīts atgādinājums pēc {days} dienām.', 'bnever': 'Vairs nerādīt'}\r\nt.ms= {'msg': 'Pelayar web anda ({brow_name}) sudah lapuk.','msgmore': 'Kemas kini pelayar anda untuk lebih keselamatan, kelajuan dan pengalaman terbaik di laman web ini.','bupdate': 'Kemas kini pelayar','bignore': 'Abaikan', 'remind': 'Anda akan diingatkan dalam {days} hari.', 'bnever': 'Jangan tunjukkan lagi'}\r\nt.nl= {'msg': 'Uw webbrowser ({brow_name}) is verouderd.','msgmore': 'Update uw browser voor meer veiligheid, snelheid en om deze site optimaal te kunnen gebruiken.','bupdate': 'Browser updaten','bignore': 'Negeren', 'remind': 'We zullen u er in {days} dagen aan herinneren.', 'bnever': 'Nooit meer tonen'}\r\nt.no=t.nn=t.nb= {'msg': 'Nettleseren din ({brow_name}) er utdatert.','msgmore': 'Oppdater nettleseren din for økt sikkerhet, hastighet og den beste opplevelsen på dette nettstedet.','bupdate': 'Oppdater nettleser','bignore': 'Ignorer', 'remind': 'Du vil få en påminnelse om {days} dager.', 'bnever': 'Aldri vis igjen'}\r\nt.pl= {'msg': 'Twoja przeglądarka ({brow_name}) jest nieaktualna.','msgmore': 'Zaktualizuj przeglądarkę, by korzystać z tej strony bezpieczniej, szybciej i po prostu sprawniej.','bupdate': 'Aktualizuj przeglądarkę','bignore': 'Ignoruj', 'remind': 'Przypomnimy o tym za {days} dni.', 'bnever': 'Nie pokazuj więcej'}\r\nt.pt= {'msg': 'Seu navegador da web ({brow_name}) está desatualizado.','msgmore': 'Atualize seu navegador para ter mais segurança e velocidade, além da melhor experiência neste site.','bupdate': 'Atualizar navegador','bignore': 'Ignorar', 'remind': 'Você será relembrado em {days} dias.', 'bnever': 'Não mostrar novamente'}\r\nt.ro= {'msg': 'Browserul tău ({brow_name}) nu este actualizat.','msgmore': 'Actualizează browserul pentru o mai mare siguranță, viteză și cea mai bună experiență pe acest site.','bupdate': 'Actualizează browser','bignore': 'Ignoră', 'remind': 'Ți se va reaminti peste {days} zile.', 'bnever': 'Nu mai arăta'}\r\nt.ru= {'msg': 'Ваш браузер ({brow_name}) устарел.','msgmore': 'Обновите ваш браузер для повышения уровня безопасности, скорости и комфорта использования этого сайта.','bupdate': 'Обновить браузер','bignore': 'Игнорировать', 'remind': 'Вы получите напоминание через {days} дней.', 'bnever': 'Больше не показывать '}\r\nt.sk= {'msg': 'Váš internetový prehliadač ({brow_name}) je zastaraný.','msgmore': 'Pre väčšiu bezpečnosť, rýchlosť a lepšiu skúsenosť s touto stránkou si aktualizujte svoj prehliadač.','bupdate': 'Aktualizovať prehliadač','bignore': 'Ignorovať', 'remind': 'Bude vám to pripomenuté o {days} dní.', 'bnever': 'Už nikdy viac neukazovať'}\r\nt.sl= {'msg': 'Vaš spletni brskalnik ({brow_name}) je zastarel.','msgmore': 'Posodobite svoj brskalnik za dodatno varnost, hitrost in najboljšo izkušnjo na tem spletnem mestu.','bupdate': 'Posodobi brskalnik','bignore': 'Prezri', 'remind': 'Opomnik boste prejeli čez toliko dni: {days}.', 'bnever': 'Ne prikaži več'}\r\nt.sq= {'msg': 'Shfletuesi juaj ({brow_name}) është i vjetruar.','msgmore': 'Përditësoni shfletuesin tuaj për më tepër siguri, shpejtësi dhe për më të mirin e funksionimeve në këtë sajt.','bupdate': 'Përditëso shfletuesin','bignore': 'Shpërfille', 'remind': 'Do t’ju rikujtohet pas {days} ditësh.', 'bnever': 'Mos e shfaq kurrë më'}\r\nt.sr= {'msg': 'Vaš pretraživač ({brow_name}) je zastareo.','msgmore': 'Ima poznate sigurnosne probleme i najverovatnije neće prikazati sve funkcionalnisti ovog i drugih sajtova.','bupdate': 'Nadogradi pretraživač','bignore': 'Ignorisi', 'remind': 'Zaboravićete za {days} dana.', 'bnever': 'Ne prikazuj opet'}\r\nt.sv= {'msg': 'Din webbläsare ({brow_name}) är föråldrad. ','msgmore': 'Uppdatera din webbläsare för mer säkerhet, hastighet och den bästa upplevelsen på den här sajten. ','bupdate': 'Uppdatera webbläsaren','bignore': 'Ignorera', 'remind': 'Du får en påminnelse om {days} dagar.', 'bnever': 'Visa aldrig igen'}\r\nt.th= {'msg': 'เว็บเบราว์เซอร์ของคุณ ({brow_name}) ล้าสมัยแล้ว','msgmore': 'อัปเดทเบราว์เซอร์เพื่อเพิ่มความปลอดภัย, ความเร็ว และประสบการณ์ที่ดีที่สุดบนเว็บไซต์นี้','bupdate': 'อัปเดทเบราว์เซอร์','bignore': 'ข้าม', 'remind': 'คุณจะได้รับการแจ้งเตือนใน {days} วัน', 'bnever': 'ไม่ต้องแสดงอีก'}\r\nt.tr= {'msg': 'Web tarayıcınız ({brow_name}) güncel değil.','msgmore': 'Daha fazla güvenlik ve hız ile bu sitede en iyi deneyim için tarayıcınızı güncelleyin.','bupdate': 'Tarayıcıyı güncelle','bignore': 'Yok say', 'remind': '{days} gün sonra bir hatırlatma alacaksınız.', 'bnever': 'Bir daha gösterme'}\r\nt.uk= {'msg': 'Ваш браузер ({brow_name}) застарілий.','msgmore': 'Оновіть свій браузер для більшої безпеки, швидкості та повноцінної роботи цього сайту.','bupdate': 'Оновити браузер','bignore': 'Пропустити', 'remind': 'Ви отримаєте нагадування через {days} днів.', 'bnever': 'Більше не показувати'}\r\nt.uz= {'msg': 'Sizning ({brow_name}) veb-brauzeringiz eskirgan','msgmore': 'Xavfsizlik, tezkorlik va ushbu sayt imkoniyatlaridan to`liq foydalanish uchun brauzeringizni yangilang.','bupdate': 'Brauzeringizni yangilang','bignore': 'E’tibor bermaslik', 'remind': 'Sizga {days} kundan so`ng eslatammiz.', 'bnever': 'Hech qachon qayta ko\\'rsatmang'}\r\nt.vi= {'msg': 'Trình duyệt web của bạn ({brow_name}) đã lỗi thời.','msgmore': 'Cập nhật trình duyệt của bạn để có thêm bảo mật, tốc độ và trải nghiệm tốt nhất trên trang web này.','bupdate': 'Cập nhật trình duyệt','bignore': 'Bỏ qua', 'remind': 'Bạn sẽ được nhắc nhở sau {days} ngày.', 'bnever': 'Không bao giờ hiển thị lại'}\r\nt.zh= {'msg': '您的网页浏览器({brow_name})已过期。','msgmore': '更新您的浏览器,以便在该网站上获得更安全、更快速和最好的体验。','bupdate': '更新浏览器','bignore': '忽略', 'remind': '会在{days}天后提醒您。', 'bnever': '不再显示'}\r\nt[\"zh-tw\"]= t[\"zh-hans-cn\"] ={'msg': '您的網路瀏覽器({brow_name})已過舊。','msgmore': '更新您的瀏覽器以獲得更佳的安全性、速度以及在此網站的最佳體驗。','bupdate': '更新瀏覽器','bignore': '忽略', 'remind': '您將在 {days} 天後收到提醒。', 'bnever': '不要再顯示'}\r\n\r\nvar custom_text = op[\"text_for_\" + bb.n + \"_in_\" + op.ll] || op[\"text_for_\" + bb.n] || op[\"text_\" + op.llfull] || op[\"text_in_\" + op.ll] || op[\"text_\" + op.ll] || op.text\r\nt = ta = t[op.llfull] || t[op.ll] || t.en;\r\nif (custom_text) {\r\n if (typeof custom_text === 'string')\r\n t=ta=custom_text;\r\n else {\r\n for (var i in custom_text) {\r\n ta[i] = custom_text[i]\r\n }\r\n }\r\n}\r\nif (ta.msg)\r\n t = '' + t.msg + ' ' + t.msgmore + ' ' + t.bupdate + ' ' + t.bignore + ''\r\n\r\nvar tar = \"\";\r\nif (op.newwindow)\r\n tar = ' target=\"_blank\" rel=\"noopener\"';\r\n\r\nvar div = op.div = document.createElement(\"div\");\r\ndiv.id = div.className= \"buorg\";\r\n\r\nvar style = '';\r\nvar style2 = '';\r\nif (ta.msg && (op.ll==\"ar\"||op.ll==\"he\"||op.ll==\"fa\"))\r\n style2+='';\r\nif (!ta.msg && t.indexOf && t.indexOf(\"%s\") !== -1) {//legacy style\r\n t = busprintf(t, bb.t, ' id=\"buorgul\" href=\"' + op.url + '\"' + tar);\r\n\r\n style += '';\r\n div.innerHTML = '
' + t + '
' + style;\r\n op.addmargin = true;\r\n}\r\nelse {\r\n if (op.style === \"bottom\") {\r\n style2 += '';\r\n }\r\n else if (op.style === \"corner\") {\r\n style2 += '';\r\n }\r\n else {\r\n op.addmargin = true;\r\n }\r\n t = t.replace(\"{brow_name}\", bb.t).replace(\"{up_but}\", ' id=\"buorgul\" href=\"' + op.url + '\"' + tar).replace(\"{ignore_but}\", ' id=\"buorgig\" role=\"button\" tabindex=\"0\"');\r\n div.innerHTML = '
' + t + '
' + style + style2;\r\n}\r\n\r\nop.text = t;\r\nif (op.container) {\r\n op.container.appendChild(div);\r\n op.addmargin = false;\r\n}\r\nelse\r\n document.body.insertBefore(div, document.body.firstChild);\r\n\r\nvar updatebutton=document.getElementById(\"buorgul\");\r\nif (updatebutton) {\r\n updatebutton.onclick = function (e) {\r\n div.onclick = null;\r\n op.onclick(op);\r\n if (op.noclose)\r\n return\r\n op.setCookie(op.reminderClosed);\r\n if (!op.noclose) {\r\n div.style.display = \"none\";\r\n if (op.addmargin && op.shift_page_down !== false)\r\n hm.style.marginTop = op.bodymt;\r\n }\r\n };\r\n}\r\nif (!custom_text) {//make whole bar clickable except if custom text is set\r\n div.style.cursor=\"pointer\";\r\n div.onclick = function () {\r\n if (op.newwindow)\r\n window.open(op.url, \"_blank\");\r\n else\r\n window.location.href = op.url;\r\n op.setCookie(op.reminderClosed);\r\n op.onclick(op);\r\n };\r\n}\r\n\r\nif (op.addmargin && op.shift_page_down !== false) {\r\n var hm = document.getElementsByTagName(\"html\")[0] || document.body;\r\n op.bodymt = hm.style.marginTop;\r\n hm.style.marginTop = (div.clientHeight) + \"px\";\r\n}\r\nvar ignorebutton = document.getElementById(\"buorga\") || document.getElementById(\"buorgig\");\r\nif (ignorebutton) {\r\n ignorebutton.onclick = function (e) {\r\n div.onclick = null;\r\n op.onclose(op);\r\n if (op.addmargin && op.shift_page_down !== false)\r\n hm.style.marginTop = op.bodymt;\r\n op.setCookie(op.reminderClosed);\r\n if (!op.no_permanent_hide && ta.bnever && ta.remind) {\r\n op.div.innerHTML = '
' + (op.reminderClosed > 24 ? ta.remind.replace(\"{days}\", Math.round(op.reminderClosed/24)):\"\") + ' ' + ta.bnever + '
' + style + style2;\r\n div.className = \"buorg buorg-fadeout\";\r\n document.getElementById(\"buorgpermanent\").onclick = function (e) {\r\n op.setCookie(24 * 365);\r\n op.div.style.display = \"none\";\r\n }\r\n op.div.style.opacity = 0;\r\n op.div.style.visibility = \"hidden\";\r\n return false;\r\n }\r\n op.div.style.display = \"none\";\r\n return false;\r\n }\r\n if (op.noclose || op.reminderClosed==0) {\r\n ignorebutton.parentNode.removeChild(ignorebutton)\r\n }\r\n}\r\n\r\n\r\nop.onshow(op);\r\n\r\nif (op.test && !op.dont_show_debuginfo) {\r\n var e = document.createElement(\"script\");\r\n e.src = op.domain + \"/update.test.js\";\r\n document.body.appendChild(e);\r\n}\r\n\r\n};\r\n\r\n\r\n","function $buo_f() {\n var $buoop = { required: { e: -3, f: -3, o: -3, s: -1, c: -3 }, insecure: true, unsupported: true, api: 2021.03 };\n $buo($buoop);\n}\ntry {\n document.addEventListener('DOMContentLoaded', $buo_f, false);\n} catch (e) {\n window.attachEvent('onload', $buo_f);\n}\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2021, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.marked = factory());\n}(this, (function () { 'use strict';\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var defaults$5 = {exports: {}};\n\n function getDefaults$1() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n }\n\n function changeDefaults$1(newDefaults) {\n defaults$5.exports.defaults = newDefaults;\n }\n\n defaults$5.exports = {\n defaults: getDefaults$1(),\n getDefaults: getDefaults$1,\n changeDefaults: changeDefaults$1\n };\n\n /**\n * Helpers\n */\n var escapeTest = /[&<>\"']/;\n var escapeReplace = /[&<>\"']/g;\n var escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\n var escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n var escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n var getEscapeReplacement = function getEscapeReplacement(ch) {\n return escapeReplacements[ch];\n };\n\n function escape$2(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n }\n\n var unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\n function unescape$1(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, function (_, n) {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\n }\n\n return '';\n });\n }\n\n var caret = /(^|[^\\[])\\^/g;\n\n function edit$1(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n var obj = {\n replace: function replace(name, val) {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: function getRegex() {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n }\n\n var nonWordAndColonTest = /[^\\w:]/g;\n var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n\n function cleanUrl$1(sanitize, base, href) {\n if (sanitize) {\n var prot;\n\n try {\n prot = decodeURIComponent(unescape$1(href)).replace(nonWordAndColonTest, '').toLowerCase();\n } catch (e) {\n return null;\n }\n\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n\n return href;\n }\n\n var baseUrls = {};\n var justDomain = /^[^:]+:\\/*[^/]*$/;\n var protocol = /^([^:]+:)[\\s\\S]*$/;\n var domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\n function resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim$1(base, '/', true);\n }\n }\n\n base = baseUrls[' ' + base];\n var relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n }\n\n var noopTest$1 = {\n exec: function noopTest() {}\n };\n\n function merge$2(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n }\n\n function splitCells$1(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n var escaped = false,\n curr = offset;\n\n while (--curr >= 0 && str[curr] === '\\\\') {\n escaped = !escaped;\n }\n\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n var i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) {\n cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n\n return cells;\n } // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n // /c*$/ is vulnerable to REDOS.\n // invert: Remove suffix of non-c chars instead. Default falsey.\n\n\n function rtrim$1(str, c, invert) {\n var l = str.length;\n\n if (l === 0) {\n return '';\n } // Length of suffix matching the invert condition.\n\n\n var suffLen = 0; // Step left until we fail to match the invert condition.\n\n while (suffLen < l) {\n var currChar = str.charAt(l - suffLen - 1);\n\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n }\n\n function findClosingBracket$1(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n var l = str.length;\n var level = 0,\n i = 0;\n\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n\n if (level < 0) {\n return i;\n }\n }\n }\n\n return -1;\n }\n\n function checkSanitizeDeprecation$1(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n } // copied from https://stackoverflow.com/a/5450113/806777\n\n\n function repeatString$1(pattern, count) {\n if (count < 1) {\n return '';\n }\n\n var result = '';\n\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n\n count >>= 1;\n pattern += pattern;\n }\n\n return result + pattern;\n }\n\n var helpers = {\n escape: escape$2,\n unescape: unescape$1,\n edit: edit$1,\n cleanUrl: cleanUrl$1,\n resolveUrl: resolveUrl,\n noopTest: noopTest$1,\n merge: merge$2,\n splitCells: splitCells$1,\n rtrim: rtrim$1,\n findClosingBracket: findClosingBracket$1,\n checkSanitizeDeprecation: checkSanitizeDeprecation$1,\n repeatString: repeatString$1\n };\n\n var defaults$4 = defaults$5.exports.defaults;\n var rtrim = helpers.rtrim,\n splitCells = helpers.splitCells,\n _escape = helpers.escape,\n findClosingBracket = helpers.findClosingBracket;\n\n function outputLink(cap, link, raw) {\n var href = link.href;\n var title = link.title ? _escape(link.title) : null;\n var text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n return {\n type: 'link',\n raw: raw,\n href: href,\n title: title,\n text: text\n };\n } else {\n return {\n type: 'image',\n raw: raw,\n href: href,\n title: title,\n text: _escape(text)\n };\n }\n }\n\n function indentCodeCompensation(raw, text) {\n var matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n var indentToCode = matchIndentToCode[1];\n return text.split('\\n').map(function (node) {\n var matchIndentInNode = node.match(/^\\s+/);\n\n if (matchIndentInNode === null) {\n return node;\n }\n\n var indentInNode = matchIndentInNode[0];\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n }).join('\\n');\n }\n /**\n * Tokenizer\n */\n\n\n var Tokenizer_1 = /*#__PURE__*/function () {\n function Tokenizer(options) {\n this.options = options || defaults$4;\n }\n\n var _proto = Tokenizer.prototype;\n\n _proto.space = function space(src) {\n var cap = this.rules.block.newline.exec(src);\n\n if (cap) {\n if (cap[0].length > 1) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n\n return {\n raw: '\\n'\n };\n }\n };\n\n _proto.code = function code(src) {\n var cap = this.rules.block.code.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic ? rtrim(text, '\\n') : text\n };\n }\n };\n\n _proto.fences = function fences(src) {\n var cap = this.rules.block.fences.exec(src);\n\n if (cap) {\n var raw = cap[0];\n var text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw: raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: text\n };\n }\n };\n\n _proto.heading = function heading(src) {\n var cap = this.rules.block.heading.exec(src);\n\n if (cap) {\n var text = cap[2].trim(); // remove trailing #s\n\n if (/#$/.test(text)) {\n var trimmed = rtrim(text, '#');\n\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text\n };\n }\n };\n\n _proto.nptable = function nptable(src) {\n var cap = this.rules.block.nptable.exec(src);\n\n if (cap) {\n var item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : [],\n raw: cap[0]\n };\n\n if (item.header.length === item.align.length) {\n var l = item.align.length;\n var i;\n\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.cells.length;\n\n for (i = 0; i < l; i++) {\n item.cells[i] = splitCells(item.cells[i], item.header.length);\n }\n\n return item;\n }\n }\n };\n\n _proto.hr = function hr(src) {\n var cap = this.rules.block.hr.exec(src);\n\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n };\n\n _proto.blockquote = function blockquote(src) {\n var cap = this.rules.block.blockquote.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ *> ?/gm, '');\n return {\n type: 'blockquote',\n raw: cap[0],\n text: text\n };\n }\n };\n\n _proto.list = function list(src) {\n var cap = this.rules.block.list.exec(src);\n\n if (cap) {\n var raw = cap[0];\n var bull = cap[2];\n var isordered = bull.length > 1;\n var list = {\n type: 'list',\n raw: raw,\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n }; // Get each top-level item.\n\n var itemMatch = cap[0].match(this.rules.block.item);\n var next = false,\n item,\n space,\n bcurr,\n bnext,\n addBack,\n loose,\n istask,\n ischecked,\n endMatch;\n var l = itemMatch.length;\n bcurr = this.rules.block.listItemStart.exec(itemMatch[0]);\n\n for (var i = 0; i < l; i++) {\n item = itemMatch[i];\n raw = item;\n\n if (!this.options.pedantic) {\n // Determine if current item contains the end of the list\n endMatch = item.match(new RegExp('\\\\n\\\\s*\\\\n {0,' + (bcurr[0].length - 1) + '}\\\\S'));\n\n if (endMatch) {\n addBack = item.length - endMatch.index + itemMatch.slice(i + 1).join('\\n').length;\n list.raw = list.raw.substring(0, list.raw.length - addBack);\n item = item.substring(0, endMatch.index);\n raw = item;\n l = i + 1;\n }\n } // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n\n\n if (i !== l - 1) {\n bnext = this.rules.block.listItemStart.exec(itemMatch[i + 1]);\n\n if (!this.options.pedantic ? bnext[1].length >= bcurr[0].length || bnext[1].length > 3 : bnext[1].length > bcurr[1].length) {\n // nested list or continuation\n itemMatch.splice(i, 2, itemMatch[i] + (!this.options.pedantic && bnext[1].length < bcurr[0].length && !itemMatch[i].match(/\\n$/) ? '' : '\\n') + itemMatch[i + 1]);\n i--;\n l--;\n continue;\n } else if ( // different bullet style\n !this.options.pedantic || this.options.smartLists ? bnext[2][bnext[2].length - 1] !== bull[bull.length - 1] : isordered === (bnext[2].length === 1)) {\n addBack = itemMatch.slice(i + 1).join('\\n').length;\n list.raw = list.raw.substring(0, list.raw.length - addBack);\n i = l - 1;\n }\n\n bcurr = bnext;\n } // Remove the list item's bullet\n // so it is seen as the next token.\n\n\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+[.)]) ?/, ''); // Outdent whatever the\n // list item contains. Hacky.\n\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, '');\n } // trim item newlines at end\n\n\n item = rtrim(item, '\\n');\n\n if (i !== l - 1) {\n raw = raw + '\\n';\n } // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n\n\n loose = next || /\\n\\n(?!\\s*$)/.test(raw);\n\n if (i !== l - 1) {\n next = raw.slice(-2) === '\\n\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n list.loose = true;\n } // Check for task list items\n\n\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: istask,\n checked: ischecked,\n loose: loose,\n text: item\n });\n }\n\n return list;\n }\n };\n\n _proto.html = function html(src) {\n var cap = this.rules.block.html.exec(src);\n\n if (cap) {\n return {\n type: this.options.sanitize ? 'paragraph' : 'html',\n raw: cap[0],\n pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]\n };\n }\n };\n\n _proto.def = function def(src) {\n var cap = this.rules.block.def.exec(src);\n\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n var tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag: tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n };\n\n _proto.table = function table(src) {\n var cap = this.rules.block.table.exec(src);\n\n if (cap) {\n var item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n var l = item.align.length;\n var i;\n\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.cells.length;\n\n for (i = 0; i < l; i++) {\n item.cells[i] = splitCells(item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''), item.header.length);\n }\n\n return item;\n }\n }\n };\n\n _proto.lheading = function lheading(src) {\n var cap = this.rules.block.lheading.exec(src);\n\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1]\n };\n }\n };\n\n _proto.paragraph = function paragraph(src) {\n var cap = this.rules.block.paragraph.exec(src);\n\n if (cap) {\n return {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n' ? cap[1].slice(0, -1) : cap[1]\n };\n }\n };\n\n _proto.text = function text(src) {\n var cap = this.rules.block.text.exec(src);\n\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0]\n };\n }\n };\n\n _proto.escape = function escape(src) {\n var cap = this.rules.inline.escape.exec(src);\n\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: _escape(cap[1])\n };\n }\n };\n\n _proto.tag = function tag(src, inLink, inRawBlock) {\n var cap = this.rules.inline.tag.exec(src);\n\n if (cap) {\n if (!inLink && /^/i.test(cap[0])) {\n inLink = false;\n }\n\n if (!inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n inRawBlock = true;\n } else if (inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize ? 'text' : 'html',\n raw: cap[0],\n inLink: inLink,\n inRawBlock: inRawBlock,\n text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]\n };\n }\n };\n\n _proto.link = function link(src) {\n var cap = this.rules.inline.link.exec(src);\n\n if (cap) {\n var trimmedUrl = cap[2].trim();\n\n if (!this.options.pedantic && /^$/.test(trimmedUrl)) {\n return;\n } // ending angle bracket cannot be escaped\n\n\n var rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n var lastParenIndex = findClosingBracket(cap[2], '()');\n\n if (lastParenIndex > -1) {\n var start = cap[0].indexOf('!') === 0 ? 5 : 4;\n var linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n\n var href = cap[2];\n var title = '';\n\n if (this.options.pedantic) {\n // split pedantic href and title\n var link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n\n if (/^$/.test(trimmedUrl)) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0]);\n }\n };\n\n _proto.reflink = function reflink(src, links) {\n var cap;\n\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n var link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n\n if (!link || !link.href) {\n var text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text: text\n };\n }\n\n return outputLink(cap, link, cap[0]);\n }\n };\n\n _proto.emStrong = function emStrong(src, maskedSrc, prevChar) {\n if (prevChar === void 0) {\n prevChar = '';\n }\n\n var match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return; // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n\n if (match[3] && prevChar.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08C7\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\u9FFC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7BF\\uA7C2-\\uA7CA\\uA7F5-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82C[\\uDC00-\\uDD1E\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDD\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/)) return;\n var nextChar = match[1] || match[2] || '';\n\n if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {\n var lLength = match[0].length - 1;\n var rDelim,\n rLength,\n delimTotal = lLength,\n midDelimTotal = 0;\n var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0; // Clip maskedSrc to same section of string as src (move to lexer?)\n\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) {\n // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); // Create `em` if smallest delimiter has odd char count. *a***\n\n if (Math.min(lLength, rLength) % 2) {\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: src.slice(1, lLength + match.index + rLength)\n };\n } // Create 'strong' if smallest delimiter has even char count. **a***\n\n\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: src.slice(2, lLength + match.index + rLength - 1)\n };\n }\n }\n };\n\n _proto.codespan = function codespan(src) {\n var cap = this.rules.inline.code.exec(src);\n\n if (cap) {\n var text = cap[2].replace(/\\n/g, ' ');\n var hasNonSpaceChars = /[^ ]/.test(text);\n var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n\n text = _escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text: text\n };\n }\n };\n\n _proto.br = function br(src) {\n var cap = this.rules.inline.br.exec(src);\n\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n };\n\n _proto.del = function del(src) {\n var cap = this.rules.inline.del.exec(src);\n\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2]\n };\n }\n };\n\n _proto.autolink = function autolink(src, mangle) {\n var cap = this.rules.inline.autolink.exec(src);\n\n if (cap) {\n var text, href;\n\n if (cap[2] === '@') {\n text = _escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = _escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.url = function url(src, mangle) {\n var cap;\n\n if (cap = this.rules.inline.url.exec(src)) {\n var text, href;\n\n if (cap[2] === '@') {\n text = _escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n var prevCapZero;\n\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n\n text = _escape(cap[0]);\n\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.inlineText = function inlineText(src, inRawBlock, smartypants) {\n var cap = this.rules.inline.text.exec(src);\n\n if (cap) {\n var text;\n\n if (inRawBlock) {\n text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0];\n } else {\n text = _escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n\n return {\n type: 'text',\n raw: cap[0],\n text: text\n };\n }\n };\n\n return Tokenizer;\n }();\n\n var noopTest = helpers.noopTest,\n edit = helpers.edit,\n merge$1 = helpers.merge;\n /**\n * Block-Level Grammar\n */\n\n var block$1 = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?! {0,3}bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n nptable: noopTest,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n };\n block$1._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\n block$1._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\n block$1.def = edit(block$1.def).replace('label', block$1._label).replace('title', block$1._title).getRegex();\n block$1.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\n block$1.item = /^( *)(bull) ?[^\\n]*(?:\\n(?! *bull ?)[^\\n]*)*/;\n block$1.item = edit(block$1.item, 'gm').replace(/bull/g, block$1.bullet).getRegex();\n block$1.listItemStart = edit(/^( *)(bull) */).replace('bull', block$1.bullet).getRegex();\n block$1.list = edit(block$1.list).replace(/bull/g, block$1.bullet).replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))').replace('def', '\\\\n+(?=' + block$1.def.source + ')').getRegex();\n block$1._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';\n block$1._comment = /|$)/;\n block$1.html = edit(block$1.html, 'i').replace('comment', block$1._comment).replace('tag', block$1._tag).replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\n block$1.paragraph = edit(block$1._paragraph).replace('hr', block$1.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block$1._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n block$1.blockquote = edit(block$1.blockquote).replace('paragraph', block$1.paragraph).getRegex();\n /**\n * Normal Block Grammar\n */\n\n block$1.normal = merge$1({}, block$1);\n /**\n * GFM Block Grammar\n */\n\n block$1.gfm = merge$1({}, block$1.normal, {\n nptable: '^ *([^|\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}([-:]+ *\\\\|[-| :]*)' // Align\n + '(?:\\\\n((?:(?!\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)',\n // Cells\n table: '^ *\\\\|(.+)\\\\n' // Header\n + ' {0,3}\\\\|?( *[-:]+[-| :]*)' // Align\n + '(?:\\\\n *((?:(?!\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n\n });\n block$1.gfm.nptable = edit(block$1.gfm.nptable).replace('hr', block$1.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block$1._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n block$1.gfm.table = edit(block$1.gfm.table).replace('hr', block$1.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block$1._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n /**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\n block$1.pedantic = merge$1({}, block$1.normal, {\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)' + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))').replace('comment', block$1._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b').getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n paragraph: edit(block$1.normal._paragraph).replace('hr', block$1.hr).replace('heading', ' *#{1,6} *[^\\n]').replace('lheading', block$1.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()\n });\n /**\n * Inline-Level Grammar\n */\n\n var inline$1 = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment' + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^',\n // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip other delimiter (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /\\_\\_[^_*]*?\\*[^_*]*?\\_\\_|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /\\*\\*[^_*]*?\\_[^_*]*?\\*\\*|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\n inline$1.punctuation = edit(inline$1.punctuation).replace(/punctuation/g, inline$1._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, \n\n inline$1.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\n inline$1.escapedEmSt = /\\\\\\*|\\\\_/g;\n inline$1._comment = edit(block$1._comment).replace('(?:-->|$)', '-->').getRegex();\n inline$1.emStrong.lDelim = edit(inline$1.emStrong.lDelim).replace(/punct/g, inline$1._punctuation).getRegex();\n inline$1.emStrong.rDelimAst = edit(inline$1.emStrong.rDelimAst, 'g').replace(/punct/g, inline$1._punctuation).getRegex();\n inline$1.emStrong.rDelimUnd = edit(inline$1.emStrong.rDelimUnd, 'g').replace(/punct/g, inline$1._punctuation).getRegex();\n inline$1._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n inline$1._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\n inline$1._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\n inline$1.autolink = edit(inline$1.autolink).replace('scheme', inline$1._scheme).replace('email', inline$1._email).getRegex();\n inline$1._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n inline$1.tag = edit(inline$1.tag).replace('comment', inline$1._comment).replace('attribute', inline$1._attribute).getRegex();\n inline$1._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\n inline$1._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\n inline$1._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n inline$1.link = edit(inline$1.link).replace('label', inline$1._label).replace('href', inline$1._href).replace('title', inline$1._title).getRegex();\n inline$1.reflink = edit(inline$1.reflink).replace('label', inline$1._label).getRegex();\n inline$1.reflinkSearch = edit(inline$1.reflinkSearch, 'g').replace('reflink', inline$1.reflink).replace('nolink', inline$1.nolink).getRegex();\n /**\n * Normal Inline Grammar\n */\n\n inline$1.normal = merge$1({}, inline$1);\n /**\n * Pedantic Inline Grammar\n */\n\n inline$1.pedantic = merge$1({}, inline$1.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace('label', inline$1._label).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace('label', inline$1._label).getRegex()\n });\n /**\n * GFM Inline Grammar\n */\n\n inline$1.gfm = merge$1({}, inline$1.normal, {\n escape: edit(inline$1.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n\n out += '&#' + ch + ';';\n }\n\n return out;\n }\n /**\n * Block Lexer\n */\n\n\n var Lexer_1 = /*#__PURE__*/function () {\n function Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults$3;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer$1();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n var rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n\n\n /**\n * Static Lex Method\n */\n Lexer.lex = function lex(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n ;\n\n Lexer.lexInline = function lexInline(src, options) {\n var lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n ;\n\n var _proto = Lexer.prototype;\n\n _proto.lex = function lex(src) {\n src = src.replace(/\\r\\n|\\r/g, '\\n').replace(/\\t/g, ' ');\n this.blockTokens(src, this.tokens, true);\n this.inline(this.tokens);\n return this.tokens;\n }\n /**\n * Lexing\n */\n ;\n\n _proto.blockTokens = function blockTokens(src, tokens, top) {\n var _this = this;\n\n if (tokens === void 0) {\n tokens = [];\n }\n\n if (top === void 0) {\n top = true;\n }\n\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n\n var token, i, l, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(function (extTokenizer) {\n if (token = extTokenizer.call(_this, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // newline\n\n\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n\n if (token.type) {\n tokens.push(token);\n }\n\n continue;\n } // code\n\n\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.\n\n if (lastToken && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // fences\n\n\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // heading\n\n\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // table no leading pipe (gfm)\n\n\n if (token = this.tokenizer.nptable(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // hr\n\n\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // blockquote\n\n\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n token.tokens = this.blockTokens(token.text, [], top);\n tokens.push(token);\n continue;\n } // list\n\n\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n l = token.items.length;\n\n for (i = 0; i < l; i++) {\n token.items[i].tokens = this.blockTokens(token.items[i].text, [], false);\n }\n\n tokens.push(token);\n continue;\n } // html\n\n\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // def\n\n\n if (top && (token = this.tokenizer.def(src))) {\n src = src.substring(token.raw.length);\n\n if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n\n continue;\n } // table (gfm)\n\n\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // lheading\n\n\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startBlock) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this.options.extensions.startBlock.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call(this, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n } else {\n tokens.push(token);\n }\n\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n } // text\n\n\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n };\n\n _proto.inline = function inline(tokens) {\n var i, j, k, l2, row, token;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n switch (token.type) {\n case 'paragraph':\n case 'text':\n case 'heading':\n {\n token.tokens = [];\n this.inlineTokens(token.text, token.tokens);\n break;\n }\n\n case 'table':\n {\n token.tokens = {\n header: [],\n cells: []\n }; // header\n\n l2 = token.header.length;\n\n for (j = 0; j < l2; j++) {\n token.tokens.header[j] = [];\n this.inlineTokens(token.header[j], token.tokens.header[j]);\n } // cells\n\n\n l2 = token.cells.length;\n\n for (j = 0; j < l2; j++) {\n row = token.cells[j];\n token.tokens.cells[j] = [];\n\n for (k = 0; k < row.length; k++) {\n token.tokens.cells[j][k] = [];\n this.inlineTokens(row[k], token.tokens.cells[j][k]);\n }\n }\n\n break;\n }\n\n case 'blockquote':\n {\n this.inline(token.tokens);\n break;\n }\n\n case 'list':\n {\n l2 = token.items.length;\n\n for (j = 0; j < l2; j++) {\n this.inline(token.items[j].tokens);\n }\n\n break;\n }\n }\n }\n\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n ;\n\n _proto.inlineTokens = function inlineTokens(src, tokens, inLink, inRawBlock) {\n var _this2 = this;\n\n if (tokens === void 0) {\n tokens = [];\n }\n\n if (inLink === void 0) {\n inLink = false;\n }\n\n if (inRawBlock === void 0) {\n inRawBlock = false;\n }\n\n var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong\n\n var maskedSrc = src;\n var match;\n var keepPrevChar, prevChar; // Mask out reflinks\n\n if (this.tokens.links) {\n var links = Object.keys(this.tokens.links);\n\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n } // Mask out other blocks\n\n\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n } // Mask out escaped em & strong delimiters\n\n\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n\n keepPrevChar = false; // extensions\n\n if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(function (extTokenizer) {\n if (token = extTokenizer.call(_this2, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // escape\n\n\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // tag\n\n\n if (token = this.tokenizer.tag(src, inLink, inRawBlock)) {\n src = src.substring(token.raw.length);\n inLink = token.inLink;\n inRawBlock = token.inRawBlock;\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // link\n\n\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n\n if (token.type === 'link') {\n token.tokens = this.inlineTokens(token.text, [], true, inRawBlock);\n }\n\n tokens.push(token);\n continue;\n } // reflink, nolink\n\n\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (token.type === 'link') {\n token.tokens = this.inlineTokens(token.text, [], true, inRawBlock);\n tokens.push(token);\n } else if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // em & strong\n\n\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n token.tokens = this.inlineTokens(token.text, [], inLink, inRawBlock);\n tokens.push(token);\n continue;\n } // code\n\n\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // br\n\n\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // del (gfm)\n\n\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n token.tokens = this.inlineTokens(token.text, [], inLink, inRawBlock);\n tokens.push(token);\n continue;\n } // autolink\n\n\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // url (gfm)\n\n\n if (!inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startInline) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this2.options.extensions.startInline.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call(this, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (token = this.tokenizer.inlineText(cutSrc, inRawBlock, smartypants)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.slice(-1) !== '_') {\n // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n };\n\n _createClass(Lexer, null, [{\n key: \"rules\",\n get: function get() {\n return {\n block: block,\n inline: inline\n };\n }\n }]);\n\n return Lexer;\n }();\n\n var defaults$2 = defaults$5.exports.defaults;\n var cleanUrl = helpers.cleanUrl,\n escape$1 = helpers.escape;\n /**\n * Renderer\n */\n\n var Renderer_1 = /*#__PURE__*/function () {\n function Renderer(options) {\n this.options = options || defaults$2;\n }\n\n var _proto = Renderer.prototype;\n\n _proto.code = function code(_code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n\n if (this.options.highlight) {\n var out = this.options.highlight(_code, lang);\n\n if (out != null && out !== _code) {\n escaped = true;\n _code = out;\n }\n }\n\n _code = _code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
' + (escaped ? _code : escape$1(_code, true)) + '
\\n';\n }\n\n return '
' + (escaped ? _code : escape$1(_code, true)) + '
\\n';\n };\n\n _proto.blockquote = function blockquote(quote) {\n return '
\\n' + quote + '
\\n';\n };\n\n _proto.html = function html(_html) {\n return _html;\n };\n\n _proto.heading = function heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '' + text + '\\n';\n } // ignore IDs\n\n\n return '' + text + '\\n';\n };\n\n _proto.hr = function hr() {\n return this.options.xhtml ? '
\\n' : '
\\n';\n };\n\n _proto.list = function list(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = ordered && start !== 1 ? ' start=\"' + start + '\"' : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n };\n\n _proto.listitem = function listitem(text) {\n return '
  • ' + text + '
  • \\n';\n };\n\n _proto.checkbox = function checkbox(checked) {\n return ' ';\n };\n\n _proto.paragraph = function paragraph(text) {\n return '

    ' + text + '

    \\n';\n };\n\n _proto.table = function table(header, body) {\n if (body) body = '' + body + '';\n return '\\n' + '\\n' + header + '\\n' + body + '
    \\n';\n };\n\n _proto.tablerow = function tablerow(content) {\n return '\\n' + content + '\\n';\n };\n\n _proto.tablecell = function tablecell(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align ? '<' + type + ' align=\"' + flags.align + '\">' : '<' + type + '>';\n return tag + content + '\\n';\n } // span level renderer\n ;\n\n _proto.strong = function strong(text) {\n return '' + text + '';\n };\n\n _proto.em = function em(text) {\n return '' + text + '';\n };\n\n _proto.codespan = function codespan(text) {\n return '' + text + '';\n };\n\n _proto.br = function br() {\n return this.options.xhtml ? '
    ' : '
    ';\n };\n\n _proto.del = function del(text) {\n return '' + text + '';\n };\n\n _proto.link = function link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = '
    ';\n return out;\n };\n\n _proto.image = function image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = '\"'' : '>';\n return out;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n return Renderer;\n }();\n\n /**\n * TextRenderer\n * returns only the textual part of the token\n */\n\n var TextRenderer_1 = /*#__PURE__*/function () {\n function TextRenderer() {}\n\n var _proto = TextRenderer.prototype;\n\n // no need for block level renderers\n _proto.strong = function strong(text) {\n return text;\n };\n\n _proto.em = function em(text) {\n return text;\n };\n\n _proto.codespan = function codespan(text) {\n return text;\n };\n\n _proto.del = function del(text) {\n return text;\n };\n\n _proto.html = function html(text) {\n return text;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n _proto.link = function link(href, title, text) {\n return '' + text;\n };\n\n _proto.image = function image(href, title, text) {\n return '' + text;\n };\n\n _proto.br = function br() {\n return '';\n };\n\n return TextRenderer;\n }();\n\n /**\n * Slugger generates header id\n */\n\n var Slugger_1 = /*#__PURE__*/function () {\n function Slugger() {\n this.seen = {};\n }\n\n var _proto = Slugger.prototype;\n\n _proto.serialize = function serialize(value) {\n return value.toLowerCase().trim() // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '') // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '').replace(/\\s/g, '-');\n }\n /**\n * Finds the next safe (unique) slug to use\n */\n ;\n\n _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {\n var slug = originalSlug;\n var occurenceAccumulator = 0;\n\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n\n return slug;\n }\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n ;\n\n _proto.slug = function slug(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n };\n\n return Slugger;\n }();\n\n var Renderer$1 = Renderer_1;\n var TextRenderer$1 = TextRenderer_1;\n var Slugger$1 = Slugger_1;\n var defaults$1 = defaults$5.exports.defaults;\n var unescape = helpers.unescape;\n /**\n * Parsing & Compiling\n */\n\n var Parser_1 = /*#__PURE__*/function () {\n function Parser(options) {\n this.options = options || defaults$1;\n this.options.renderer = this.options.renderer || new Renderer$1();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer$1();\n this.slugger = new Slugger$1();\n }\n /**\n * Static Parse Method\n */\n\n\n Parser.parse = function parse(tokens, options) {\n var parser = new Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n ;\n\n Parser.parseInline = function parseInline(tokens, options) {\n var parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n ;\n\n var _proto = Parser.prototype;\n\n _proto.parse = function parse(tokens, top) {\n if (top === void 0) {\n top = true;\n }\n\n var out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call(this, token);\n\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space':\n {\n continue;\n }\n\n case 'hr':\n {\n out += this.renderer.hr();\n continue;\n }\n\n case 'heading':\n {\n out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape(this.parseInline(token.tokens, this.textRenderer)), this.slugger);\n continue;\n }\n\n case 'code':\n {\n out += this.renderer.code(token.text, token.lang, token.escaped);\n continue;\n }\n\n case 'table':\n {\n header = ''; // header\n\n cell = '';\n l2 = token.header.length;\n\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(this.parseInline(token.tokens.header[j]), {\n header: true,\n align: token.align[j]\n });\n }\n\n header += this.renderer.tablerow(cell);\n body = '';\n l2 = token.cells.length;\n\n for (j = 0; j < l2; j++) {\n row = token.tokens.cells[j];\n cell = '';\n l3 = row.length;\n\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k]), {\n header: false,\n align: token.align[k]\n });\n }\n\n body += this.renderer.tablerow(cell);\n }\n\n out += this.renderer.table(header, body);\n continue;\n }\n\n case 'blockquote':\n {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n\n case 'list':\n {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n body = '';\n\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n itemBody = '';\n\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'text') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n\n case 'html':\n {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n\n case 'paragraph':\n {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n\n case 'text':\n {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n ;\n\n _proto.parseInline = function parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n var out = '',\n i,\n token,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call(this, token);\n\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape':\n {\n out += renderer.text(token.text);\n break;\n }\n\n case 'html':\n {\n out += renderer.html(token.text);\n break;\n }\n\n case 'link':\n {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'image':\n {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n\n case 'strong':\n {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'em':\n {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'codespan':\n {\n out += renderer.codespan(token.text);\n break;\n }\n\n case 'br':\n {\n out += renderer.br();\n break;\n }\n\n case 'del':\n {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'text':\n {\n out += renderer.text(token.text);\n break;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n };\n\n return Parser;\n }();\n\n var Lexer = Lexer_1;\n var Parser = Parser_1;\n var Tokenizer = Tokenizer_1;\n var Renderer = Renderer_1;\n var TextRenderer = TextRenderer_1;\n var Slugger = Slugger_1;\n var merge = helpers.merge,\n checkSanitizeDeprecation = helpers.checkSanitizeDeprecation,\n escape = helpers.escape;\n var getDefaults = defaults$5.exports.getDefaults,\n changeDefaults = defaults$5.exports.changeDefaults,\n defaults = defaults$5.exports.defaults;\n /**\n * Marked\n */\n\n function marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n var highlight = opt.highlight;\n var tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n var done = function done(err) {\n var out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n return err ? callback(err) : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n if (!tokens.length) return done();\n var pending = 0;\n marked.walkTokens(tokens, function (token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(function () {\n highlight(token.text, token.lang, function (err, code) {\n if (err) {\n return done(err);\n }\n\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n var _tokens = Lexer.lex(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(_tokens, opt.walkTokens);\n }\n\n return Parser.parse(_tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return '

    An error occurred:

    ' + escape(e.message + '', true) + '
    ';\n }\n\n throw e;\n }\n }\n /**\n * Options\n */\n\n\n marked.options = marked.setOptions = function (opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n };\n\n marked.getDefaults = getDefaults;\n marked.defaults = defaults;\n /**\n * Use Extension\n */\n\n marked.use = function () {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var opts = merge.apply(void 0, [{}].concat(args));\n var extensions = marked.defaults.extensions || {\n renderers: {},\n childTokens: {}\n };\n var hasExtensions;\n args.forEach(function (pack) {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach(function (ext) {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n\n if (ext.renderer) {\n // Renderer extensions\n var prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var ret = ext.renderer.apply(this, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n\n if (ext.tokenizer) {\n // Tokenizer Extensions\n if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n\n if (ext.start) {\n // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n\n if (ext.childTokens) {\n // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n } // ==-- Parse \"overwrite\" extensions --== //\n\n\n if (pack.renderer) {\n (function () {\n var renderer = marked.defaults.renderer || new Renderer();\n\n var _loop = function _loop(prop) {\n var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false\n\n renderer[prop] = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var ret = pack.renderer[prop].apply(renderer, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.renderer) {\n _loop(prop);\n }\n\n opts.renderer = renderer;\n })();\n }\n\n if (pack.tokenizer) {\n (function () {\n var tokenizer = marked.defaults.tokenizer || new Tokenizer();\n\n var _loop2 = function _loop2(prop) {\n var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false\n\n tokenizer[prop] = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var ret = pack.tokenizer[prop].apply(tokenizer, args);\n\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.tokenizer) {\n _loop2(prop);\n }\n\n opts.tokenizer = tokenizer;\n })();\n } // ==-- Parse WalkTokens extensions --== //\n\n\n if (pack.walkTokens) {\n var walkTokens = marked.defaults.walkTokens;\n\n opts.walkTokens = function (token) {\n pack.walkTokens.call(_this, token);\n\n if (walkTokens) {\n walkTokens(token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n };\n /**\n * Run callback for every token\n */\n\n\n marked.walkTokens = function (tokens, callback) {\n var _loop3 = function _loop3() {\n var token = _step.value;\n callback(token);\n\n switch (token.type) {\n case 'table':\n {\n for (var _iterator2 = _createForOfIteratorHelperLoose(token.tokens.header), _step2; !(_step2 = _iterator2()).done;) {\n var cell = _step2.value;\n marked.walkTokens(cell, callback);\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(token.tokens.cells), _step3; !(_step3 = _iterator3()).done;) {\n var row = _step3.value;\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {\n var _cell = _step4.value;\n marked.walkTokens(_cell, callback);\n }\n }\n\n break;\n }\n\n case 'list':\n {\n marked.walkTokens(token.items, callback);\n break;\n }\n\n default:\n {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {\n // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n };\n\n for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {\n _loop3();\n }\n };\n /**\n * Parse Inline\n */\n\n\n marked.parseInline = function (src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n var tokens = Lexer.lexInline(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return '

    An error occurred:

    ' + escape(e.message + '', true) + '
    ';\n }\n\n throw e;\n }\n };\n /**\n * Expose\n */\n\n\n marked.Parser = Parser;\n marked.parser = Parser.parse;\n marked.Renderer = Renderer;\n marked.TextRenderer = TextRenderer;\n marked.Lexer = Lexer;\n marked.lexer = Lexer.lex;\n marked.Tokenizer = Tokenizer;\n marked.Slugger = Slugger;\n marked.parse = marked;\n var marked_1 = marked;\n\n return marked_1;\n\n})));\n"],"x_google_ignoreList":[]}