-

+

+ + + + + +{ + "fontFamily": "lg", + "majorVersion": 2, + "minorVersion": 0, + "fontURL": "", + "copyright": "", + "license": "", + "licenseURL": "", + "description": "Font generated by IcoMoon.", + "version": "Version 2.0", + "fontId": "lg", + "psName": "lg", + "subFamily": "Regular", + "fullName": "lg" +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/js/1.js b/js/1.js new file mode 100644 index 00000000..33e25545 --- /dev/null +++ b/js/1.js @@ -0,0 +1,2 @@ +(globalThis.webpackChunksakurairo_scripts=globalThis.webpackChunksakurairo_scripts||[]).push([[1],{8249:e=>{e.exports=function(e){return{name:"Tagger Script",contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},"self"]}],relevance:10},{className:"keyword",begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:"variable",begin:/%[_a-zA-Z0-9:]+%/},{className:"symbol",begin:/\\[\\nt$%,()]/},{className:"symbol",begin:/\\u[a-fA-F0-9]{4}/}]}}},8196:e=>{e.exports=function(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}},9691:e=>{e.exports=function(e){const n=e.regex,a=/[a-zA-Z_][a-zA-Z0-9_]*/,t={className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl",aliases:["tk"],keywords:["after","append","apply","array","auto_execok","auto_import","auto_load","auto_mkindex","auto_mkindex_old","auto_qualify","auto_reset","bgerror","binary","break","catch","cd","chan","clock","close","concat","continue","dde","dict","encoding","eof","error","eval","exec","exit","expr","fblocked","fconfigure","fcopy","file","fileevent","filename","flush","for","foreach","format","gets","glob","global","history","http","if","incr","info","interp","join","lappend|10","lassign|10","lindex|10","linsert|10","list","llength|10","load","lrange|10","lrepeat|10","lreplace|10","lreverse|10","lsearch|10","lset|10","lsort|10","mathfunc","mathop","memory","msgcat","namespace","open","package","parray","pid","pkg::create","pkg_mkIndex","platform","platform::shell","proc","puts","pwd","read","refchan","regexp","registry","regsub|10","rename","return","safe","scan","seek","set","socket","source","split","string","subst","switch","tcl_endOfWord","tcl_findLibrary","tcl_startOfNextWord","tcl_startOfPreviousWord","tcl_wordBreakAfter","tcl_wordBreakBefore","tcltest","tclvars","tell","time","tm","trace","unknown","unload","unset","update","uplevel","upvar","variable","vwait","while"],contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{begin:n.concat(/\$/,n.optional(/::/),a,"(::",a,")*")},{begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[t]}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},t]}}},2123:e=>{e.exports=function(e){const n=["bool","byte","i16","i32","i64","double","string","binary"];return{name:"Thrift",keywords:{keyword:["namespace","const","typedef","struct","enum","service","exception","void","oneway","set","list","map","required","optional"],type:n,literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",keywords:{type:[...n,"set","list","map"]},end:">",contains:["self"]}]}}},9841:e=>{e.exports=function(e){const n={className:"number",begin:"[1-9][0-9]*",relevance:0},a={className:"symbol",begin:":[^\\]]+"};return{name:"TP",keywords:{keyword:["ABORT","ACC","ADJUST","AND","AP_LD","BREAK","CALL","CNT","COL","CONDITION","CONFIG","DA","DB","DIV","DETECT","ELSE","END","ENDFOR","ERR_NUM","ERROR_PROG","FINE","FOR","GP","GUARD","INC","IF","JMP","LINEAR_MAX_SPEED","LOCK","MOD","MONITOR","OFFSET","Offset","OR","OVERRIDE","PAUSE","PREG","PTH","RT_LD","RUN","SELECT","SKIP","Skip","TA","TB","TO","TOOL_OFFSET","Tool_Offset","UF","UT","UFRAME_NUM","UTOOL_NUM","UNLOCK","WAIT","X","Y","Z","W","P","R","STRLEN","SUBSTR","FINDSTR","VOFFSET","PROG","ATTR","MN","POS"],literal:["ON","OFF","max_speed","LPOS","JPOS","ENABLE","DISABLE","START","STOP","RESET"]},contains:[{className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",n,a]},{className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",n,e.QUOTE_STRING_MODE,a]},{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT("//","[;$]"),e.COMMENT("!","[;$]"),e.COMMENT("--eg:","$"),e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},e.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}},5114:e=>{e.exports=function(e){const n=e.regex,a=["attribute","block","constant","country_timezones","cycle","date","dump","html_classes","include","max","min","parent","random","range","source","template_from_string"];let t=["apply","autoescape","block","cache","deprecated","do","embed","extends","filter","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with"];t=t.concat(t.map((e=>`end${e}`)));const s={scope:"string",variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},r={scope:"number",match:/\d+/},i={begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[s,r]},o={beginKeywords:a.join(" "),keywords:{name:a},relevance:0,contains:[i]},l={match:/\|(?=[A-Za-z_]+:?)/,beginScope:"punctuation",relevance:0,contains:[{match:/[A-Za-z_]+:?/,keywords:["abs","batch","capitalize","column","convert_encoding","country_name","currency_name","currency_symbol","data_uri","date","date_modify","default","escape","filter","first","format","format_currency","format_date","format_datetime","format_number","format_time","html_to_markdown","inky_to_html","inline_css","join","json_encode","keys","language_name","last","length","locale_name","lower","map","markdown","markdown_to_html","merge","nl2br","number_format","raw","reduce","replace","reverse","round","slice","slug","sort","spaceless","split","striptags","timezone_name","title","trim","u|0","upper","url_encode"]}]},c=(e,{relevance:a})=>({beginScope:{1:"template-tag",3:"name"},relevance:a||2,endScope:"template-tag",begin:[/\{%/,/\s*/,n.either(...e)],end:/%\}/,keywords:"in",contains:[l,o,s,r]}),d=c(t,{relevance:2}),m=c([/[a-z_]+/],{relevance:1});return{name:"Twig",aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#\}/),d,m,{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:["self",l,o,s,r]}]}}},7421:e=>{const n="[A-Za-z$_][0-9A-Za-z$_]*",a=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],t=["true","false","null","undefined","NaN","Infinity"],s=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],r=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],i=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],o=["arguments","this","super","console","window","document","localStorage","module","global"],l=[].concat(i,s,r);function c(e){const c=e.regex,d=n,m="<>",p="",u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,t=e.input[a];if("<"===t||","===t)return void n.ignoreMatch();let s;">"===t&&(((e,{after:n})=>{const a="",I={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,c.lookahead(D)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[k]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:b,exports:{PARAMS_CONTAINS:x,CLASS_REFERENCE:A},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,w,$,_,A,{className:"attr",begin:d+c.lookahead(":"),relevance:0},I,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[$,e.REGEXP_MODE,{className:"function",begin:D,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:b,contains:x}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:m,end:p},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},M,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[k,e.inherit(e.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},R,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[k]},T,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},O,C,{match:/\$[(.]/}]}}e.exports=function(e){const s=c(e),r=["any","void","number","boolean","string","object","never","enum"],i={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[s.exports.CLASS_REFERENCE]},d={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[s.exports.CLASS_REFERENCE]},m={$pattern:n,keyword:a.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]),literal:t,built_in:l.concat(r),"variable.language":o},p={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},u=(e,n,a)=>{const t=e.contains.findIndex((e=>e.label===n));if(-1===t)throw new Error("can not find mode to replace");e.contains.splice(t,1,a)};return Object.assign(s.keywords,m),s.exports.PARAMS_CONTAINS.push(p),s.contains=s.contains.concat([p,i,d]),u(s,"shebang",e.SHEBANG()),u(s,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),s.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(s,{name:"TypeScript",aliases:["ts","tsx"]}),s}},3151:e=>{e.exports=function(e){return{name:"Vala",keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface namespace",end:/\{/,excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"^#",end:"$"}]}}},2139:e=>{e.exports=function(e){const n=e.regex,a=/\d{1,2}\/\d{1,2}\/\d{4}/,t=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,i={className:"literal",variants:[{begin:n.concat(/# */,n.either(t,a),/ *#/)},{begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,s,/ *#/)},{begin:n.concat(/# */,n.either(t,a),/ +/,n.either(s,r),/ *#/)}]},o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i,{className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{className:"label",begin:/^\w+:/},o,l,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[l]}]}}},402:e=>{e.exports=function(e){return{name:"VBScript in HTML",subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}},7780:e=>{e.exports=function(e){const n=e.regex,a=["lcase","month","vartype","instrrev","ubound","setlocale","getobject","rgb","getref","string","weekdayname","rnd","dateadd","monthname","now","day","minute","isarray","cbool","round","formatcurrency","conversions","csng","timevalue","second","year","space","abs","clng","timeserial","fixs","len","asc","isempty","maths","dateserial","atn","timer","isobject","filter","weekday","datevalue","ccur","isdate","instr","datediff","formatdatetime","replace","isnull","right","sgn","array","snumeric","log","cdbl","hex","chr","lbound","msgbox","ucase","getlocale","cos","cdate","cbyte","rtrim","join","hour","oct","typename","trim","strcomp","int","createobject","loadpicture","tan","formatnumber","mid","split","cint","sin","datepart","ltrim","sqr","time","derived","eval","date","formatpercent","exp","inputbox","left","ascw","chrw","regexp","cstr","err"];return{name:"VBScript",aliases:["vbs"],case_insensitive:!0,keywords:{keyword:["call","class","const","dim","do","loop","erase","execute","executeglobal","exit","for","each","next","function","if","then","else","on","error","option","explicit","new","private","property","let","get","public","randomize","redim","rem","select","case","set","stop","sub","while","wend","with","end","to","elseif","is","or","xor","and","not","class_initialize","class_terminate","default","preserve","in","me","byval","byref","step","resume","goto"],built_in:["server","response","request","scriptengine","scriptenginebuildversion","scriptengineminorversion","scriptenginemajorversion"],literal:["true","false","null","nothing","empty"]},illegal:"//",contains:[{begin:n.concat(n.either(...a),"\\s*\\("),relevance:0,keywords:{built_in:a}},e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}},7384:e=>{e.exports=function(e){const n=e.regex,a=["begin_keywords","celldefine","default_nettype","default_decay_time","default_trireg_strength","define","delay_mode_distributed","delay_mode_path","delay_mode_unit","delay_mode_zero","else","elsif","end_keywords","endcelldefine","endif","ifdef","ifndef","include","line","nounconnected_drive","pragma","resetall","timescale","unconnected_drive","undef","undefineall"];return{name:"Verilog",aliases:["v","sv","svh"],case_insensitive:!1,keywords:{$pattern:/\$?[\w]+(\$[\w]+)*/,keyword:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf|0","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate|5","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],literal:["null"],built_in:["$finish","$stop","$exit","$fatal","$error","$warning","$info","$realtime","$time","$printtimescale","$bitstoreal","$bitstoshortreal","$itor","$signed","$cast","$bits","$stime","$timeformat","$realtobits","$shortrealtobits","$rtoi","$unsigned","$asserton","$assertkill","$assertpasson","$assertfailon","$assertnonvacuouson","$assertoff","$assertcontrol","$assertpassoff","$assertfailoff","$assertvacuousoff","$isunbounded","$sampled","$fell","$changed","$past_gclk","$fell_gclk","$changed_gclk","$rising_gclk","$steady_gclk","$coverage_control","$coverage_get","$coverage_save","$set_coverage_db_name","$rose","$stable","$past","$rose_gclk","$stable_gclk","$future_gclk","$falling_gclk","$changing_gclk","$display","$coverage_get_max","$coverage_merge","$get_coverage","$load_coverage_db","$typename","$unpacked_dimensions","$left","$low","$increment","$clog2","$ln","$log10","$exp","$sqrt","$pow","$floor","$ceil","$sin","$cos","$tan","$countbits","$onehot","$isunknown","$fatal","$warning","$dimensions","$right","$high","$size","$asin","$acos","$atan","$atan2","$hypot","$sinh","$cosh","$tanh","$asinh","$acosh","$atanh","$countones","$onehot0","$error","$info","$random","$dist_chi_square","$dist_erlang","$dist_exponential","$dist_normal","$dist_poisson","$dist_t","$dist_uniform","$q_initialize","$q_remove","$q_exam","$async$and$array","$async$nand$array","$async$or$array","$async$nor$array","$sync$and$array","$sync$nand$array","$sync$or$array","$sync$nor$array","$q_add","$q_full","$psprintf","$async$and$plane","$async$nand$plane","$async$or$plane","$async$nor$plane","$sync$and$plane","$sync$nand$plane","$sync$or$plane","$sync$nor$plane","$system","$display","$displayb","$displayh","$displayo","$strobe","$strobeb","$strobeh","$strobeo","$write","$readmemb","$readmemh","$writememh","$value$plusargs","$dumpvars","$dumpon","$dumplimit","$dumpports","$dumpportson","$dumpportslimit","$writeb","$writeh","$writeo","$monitor","$monitorb","$monitorh","$monitoro","$writememb","$dumpfile","$dumpoff","$dumpall","$dumpflush","$dumpportsoff","$dumpportsall","$dumpportsflush","$fclose","$fdisplay","$fdisplayb","$fdisplayh","$fdisplayo","$fstrobe","$fstrobeb","$fstrobeh","$fstrobeo","$swrite","$swriteb","$swriteh","$swriteo","$fscanf","$fread","$fseek","$fflush","$feof","$fopen","$fwrite","$fwriteb","$fwriteh","$fwriteo","$fmonitor","$fmonitorb","$fmonitorh","$fmonitoro","$sformat","$sformatf","$fgetc","$ungetc","$fgets","$sscanf","$rewind","$ftell","$ferror"]},contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{scope:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\b[0-9][0-9_]*/,relevance:0}]},{scope:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{scope:"variable.constant",match:n.concat(/`/,n.either("__FILE__","__LINE__"))},{scope:"meta",begin:n.concat(/`/,n.either(...a)),end:/$|\/\/|\/\*/,returnEnd:!0,keywords:a}]}}},6034:e=>{e.exports=function(e){return{name:"VHDL",case_insensitive:!0,keywords:{keyword:["abs","access","after","alias","all","and","architecture","array","assert","assume","assume_guarantee","attribute","begin","block","body","buffer","bus","case","component","configuration","constant","context","cover","disconnect","downto","default","else","elsif","end","entity","exit","fairness","file","for","force","function","generate","generic","group","guarded","if","impure","in","inertial","inout","is","label","library","linkage","literal","loop","map","mod","nand","new","next","nor","not","null","of","on","open","or","others","out","package","parameter","port","postponed","procedure","process","property","protected","pure","range","record","register","reject","release","rem","report","restrict","restrict_guarantee","return","rol","ror","select","sequence","severity","shared","signal","sla","sll","sra","srl","strong","subtype","then","to","transport","type","unaffected","units","until","use","variable","view","vmode","vprop","vunit","wait","when","while","with","xnor","xor"],built_in:["boolean","bit","character","integer","time","delay_length","natural","positive","string","bit_vector","file_open_kind","file_open_status","std_logic","std_logic_vector","unsigned","signed","boolean_vector","integer_vector","std_ulogic","std_ulogic_vector","unresolved_unsigned","u_unsigned","unresolved_signed","u_signed","real_vector","time_vector"],literal:["false","true","note","warning","error","failure","line","text","side","width"]},illegal:/\{/,contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)",relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]}}},4846:e=>{e.exports=function(e){return{name:"Vim Script",keywords:{$pattern:/[!#@\w]+/,keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp"},illegal:/;/,contains:[e.NUMBER_MODE,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]+/},{begin:[/\b(?:function|function!)/,/\s+/,e.IDENT_RE],className:{1:"keyword",3:"title"},end:"$",relevance:0,contains:[{className:"params",begin:"\\(",end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]}}},3666:e=>{e.exports=function(e){e.regex;const n=e.COMMENT(/\(;/,/;\)/);return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]},contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},{className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}}},8635:e=>{e.exports=function(e){const n=e.regex,a=/[a-zA-Z]\w*/,t=["as","break","class","construct","continue","else","for","foreign","if","import","in","is","return","static","var","while"],s=["true","false","null"],r=["this","super"],i=["-","~",/\*/,"%",/\.\.\./,/\.\./,/\+/,"<<",">>",">=","<=","<",">",/\^/,/!=/,/!/,/\bis\b/,"==","&&","&",/\|\|/,/\|/,/\?:/,"="],o={relevance:0,match:n.concat(/\b(?!(if|while|for|else|super)\b)/,a,/(?=\s*[({])/),className:"title.function"},l={match:n.concat(n.either(n.concat(/\b(?!(if|while|for|else|super)\b)/,a),n.either(...i)),/(?=\s*\([^)]+\)\s*\{)/),className:"title.function",starts:{contains:[{begin:/\(/,end:/\)/,contains:[{relevance:0,scope:"params",match:a}]}]}},c={variants:[{match:[/class\s+/,a,/\s+is\s+/,a]},{match:[/class\s+/,a]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:t},d={relevance:0,match:n.either(...i),className:"operator"},m={className:"property",begin:n.concat(/\./,n.lookahead(a)),end:a,excludeBegin:!0,relevance:0},p={relevance:0,match:n.concat(/\b_/,a),scope:"variable"},u={relevance:0,match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:"title.class",keywords:{_:["Bool","Class","Fiber","Fn","List","Map","Null","Num","Object","Range","Sequence","String","System"]}},b=e.C_NUMBER_MODE,g={match:[a,/\s*/,/=/,/\s*/,/\(/,a,/\)\s*\{/],scope:{1:"title.function",3:"operator",6:"params"}},f=e.COMMENT(/\/\*\*/,/\*\//,{contains:[{match:/@[a-z]+/,scope:"doctag"},"self"]}),_={scope:"subst",begin:/%\(/,end:/\)/,contains:[b,u,o,p,d]},h={scope:"string",begin:/"/,end:/"/,contains:[_,{scope:"char.escape",variants:[{match:/\\\\|\\["0%abefnrtv]/},{match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]};_.contains.push(h);const y=[...t,...r,...s],v={relevance:0,match:n.concat("\\b(?!",y.join("|"),"\\b)",/[a-zA-Z_]\w*(?:[?!]|\b)/),className:"variable"};return{name:"Wren",keywords:{keyword:t,"variable.language":r,literal:s},contains:[{scope:"comment",variants:[{begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:s},contains:[],end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]},b,h,{className:"string",begin:/"""/,end:/"""/},f,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,c,g,l,o,d,p,m,v]}}}}]); +//# sourceMappingURL=1.js.map \ No newline at end of file diff --git a/js/1.js.map b/js/1.js.map new file mode 100644 index 00000000..705eb061 --- /dev/null +++ b/js/1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1.js","mappings":"4GAuDAA,EAAOC,QAjDP,SAAsBC,GAqCpB,MAAO,CACLC,KAAM,gBACNC,SAAU,CAtCC,CACXC,UAAW,UACXC,MAAO,WACPC,IAAK,KACLH,SAAU,CAAC,CACTE,MAAO,UACN,CACDA,MAAO,KACPC,IAAK,KACLH,SAAU,CAAC,CACTE,MAAO,UACN,UAELE,UAAW,IAGI,CACfH,UAAW,UACXC,MAAO,yBAGQ,CACfD,UAAW,WACXC,MAAO,oBAQe,CACtBD,UAAW,SACXC,MAAO,iBAPuB,CAC9BD,UAAW,SACXC,MAAO,yB,SCmBXN,EAAOC,QA9CP,SAAaC,GACX,MAAO,CACLC,KAAM,yBACNM,kBAAkB,EAClBL,SAAU,CACRF,EAAKQ,kBAEL,CACEL,UAAW,OACXM,SAAU,CACR,CACEL,MAAO,wBAET,CACEA,MAAO,qBAKb,CACEA,MAAO,OACPC,IAAK,aACLK,YAAa,OACbJ,UAAW,GAGb,CACEH,UAAW,SACXC,MAAO,YAGT,CACED,UAAW,SACXM,SAAU,CACR,CACEL,MAAO,OAET,CACEA,MAAO,iB,SCkJnBN,EAAOC,QAzLP,SAAaC,GACX,MAAMW,EAAQX,EAAKW,MACbC,EAAY,yBAEZC,EAAS,CACbV,UAAW,SACXM,SAAU,CAACT,EAAKc,mBAAoBd,EAAKe,gBA4H3C,MAAO,CACLd,KAAM,MACNe,QAAS,CAAC,MACVC,SA5He,CACf,QACA,SACA,QACA,QACA,cACA,cACA,YACA,eACA,mBACA,eACA,aACA,UACA,SACA,QACA,QACA,KACA,OACA,QACA,QACA,SACA,WACA,MACA,OACA,WACA,MACA,QACA,OACA,OACA,OACA,OACA,WACA,aACA,QACA,OACA,YACA,WACA,QACA,MACA,UACA,SACA,OACA,OACA,SACA,UACA,OACA,KACA,OACA,OACA,SACA,OACA,aACA,aACA,YACA,aACA,OACA,aACA,OACA,YACA,aACA,cACA,cACA,aACA,UACA,WACA,WACA,SACA,SACA,SACA,YACA,OACA,UACA,SACA,MACA,cACA,cACA,WACA,kBACA,OACA,OACA,MACA,OACA,UACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,OACA,MACA,SACA,SACA,QACA,SACA,QACA,SACA,gBACA,kBACA,sBACA,0BACA,qBACA,sBACA,UACA,UACA,OACA,OACA,KACA,QACA,UACA,SACA,QACA,SACA,UACA,QACA,WACA,QACA,SAOAf,SAAU,CACRF,EAAKkB,QAAQ,YAAa,KAC1BlB,EAAKkB,QAAQ,YAAa,KAC1B,CACEC,cAAe,OACfd,IAAK,QACLe,YAAY,EACZlB,SAAU,CACR,CACEC,UAAW,QACXC,MAAO,kDACPC,IAAK,eACLgB,gBAAgB,EAChBD,YAAY,KAIlB,CACEjB,UAAW,WACXM,SAAU,CACR,CACEL,MAAOO,EAAMW,OACX,KACAX,EAAMY,SAAS,MACfX,EACA,MACAA,EACA,OAGJ,CACER,MAAO,2CACPC,IAAK,MACLH,SAAU,CACRW,MAKR,CACEV,UAAW,SACXD,SAAU,CAACF,EAAKwB,kBAChBf,SAAU,CACRT,EAAKyB,QAAQzB,EAAK0B,kBAAmB,CAACC,QAAS,SAGnDd,M,SCjHNf,EAAOC,QAlEP,SAAgBC,GACd,MAAM4B,EAAQ,CACZ,OACA,OACA,MACA,MACA,MACA,SACA,SACA,UAkBF,MAAO,CACL3B,KAAM,SACNgB,SAAU,CACRY,QAnBa,CACf,YACA,QACA,UACA,SACA,OACA,UACA,YACA,OACA,SACA,MACA,OACA,MACA,WACA,YAMEC,KAAMF,EACNG,QAAS,cAEX7B,SAAU,CACRF,EAAK0B,kBACL1B,EAAKgC,YACLhC,EAAKiC,oBACLjC,EAAKkC,qBACL,CACE/B,UAAW,QACXgB,cAAe,gCACfd,IAAK,KACLsB,QAAS,KACTzB,SAAU,CACRF,EAAKyB,QAAQzB,EAAKmC,WAAY,CAE5BC,OAAQ,CACNf,gBAAgB,EAChBD,YAAY,OAKpB,CACEhB,MAAO,yBACPa,SAAU,CACRa,KAAM,IAAIF,EAAO,MAAO,OAAQ,QAElCvB,IAAK,IACLH,SAAU,CAAE,a,SCsGpBJ,EAAOC,QApKP,SAAYC,GACV,MAAMqC,EAAO,CACXlC,UAAW,SACXC,MAAO,cACPE,UAAW,GAEPgC,EAAU,CACdnC,UAAW,SACXC,MAAO,YA4GT,MAAO,CACLH,KAAM,KACNgB,SAAU,CACRY,QAtFa,CACf,QACA,MACA,SACA,MACA,QACA,QACA,OACA,MACA,MACA,YACA,SACA,KACA,KACA,MACA,SACA,OACA,MACA,SACA,UACA,aACA,OACA,MACA,KACA,QACA,MACA,KACA,MACA,mBACA,OACA,MACA,UACA,SACA,SACA,KACA,WACA,QACA,OACA,MACA,QACA,MACA,SACA,OACA,OACA,KACA,KACA,KACA,cACA,cACA,KACA,KACA,aACA,YACA,SACA,OACA,IACA,IACA,IACA,IACA,IACA,IACA,SACA,SACA,UACA,UACA,OACA,OACA,KACA,OAmBEE,QAjBa,CACf,KACA,MACA,YACA,OACA,OACA,SACA,UACA,QACA,OACA,UASA7B,SAAU,CAhHG,CACbC,UAAW,WACXC,MAAO,2HAEPC,IAAK,MACLH,SAAU,CACR,OACAmC,EACAC,IAGS,CACXnC,UAAW,WACXC,MAAO,6CACPC,IAAK,MACLH,SAAU,CACR,OACAmC,EACArC,EAAK0B,kBACLY,IAgGA,CACEnC,UAAW,UACXC,MAAO,8BAET,CAEED,UAAW,UACXC,MAAO,iCAET,CAGED,UAAW,UACXC,MAAO,yDAET,CAEED,UAAW,SACXC,MAAO,6DACPE,UAAW,GAEbN,EAAKkB,QAAQ,KAAM,QACnBlB,EAAKkB,QAAQ,IAAK,QAClBlB,EAAKkB,QAAQ,QAAS,KACtBlB,EAAK0B,kBACL,CACEvB,UAAW,SACXC,MAAO,IACPC,IAAK,KAEPL,EAAKe,cACL,CACEZ,UAAW,WACXC,MAAO,wB,SCqDfN,EAAOC,QAhNP,SAAcC,GACZ,MAAMW,EAAQX,EAAKW,MACb4B,EAAiB,CACrB,YACA,QACA,WACA,oBACA,QACA,OACA,OACA,eACA,UACA,MACA,MACA,SACA,SACA,QACA,SACA,wBA6DF,IAAIC,EAAY,CACd,QACA,aACA,QACA,QACA,aACA,KACA,QACA,UACA,SACA,QACA,MACA,OACA,KACA,SACA,UACA,QACA,UACA,MACA,MACA,WACA,QAGFA,EAAYA,EAAUlB,OAAOkB,EAAUC,KAAIC,GAAK,MAAMA,OAEtD,MAAMC,EAAS,CACbC,MAAO,SACPnC,SAAU,CACR,CACEL,MAAO,IACPC,IAAK,KAEP,CACED,MAAO,IACPC,IAAK,OAKLQ,EAAS,CACb+B,MAAO,SACPC,MAAO,OAGHC,EAAS,CACb1C,MAAO,KACPC,IAAK,KACL0C,cAAc,EACd3B,YAAY,EACZlB,SAAU,CACRyC,EACA9B,IAKEmC,EAAY,CAChB7B,cAAeoB,EAAeU,KAAK,KACnChC,SAAU,CAAEhB,KAAMsC,GAClBjC,UAAW,EACXJ,SAAU,CAAE4C,IAGRI,EAAS,CACbL,MAAO,qBACPM,WAAY,cACZ7C,UAAW,EACXJ,SAAU,CACR,CACE2C,MAAO,eACP5B,SAjIU,CACd,MACA,QACA,aACA,SACA,mBACA,eACA,gBACA,kBACA,WACA,OACA,cACA,UACA,SACA,SACA,QACA,SACA,kBACA,cACA,kBACA,gBACA,cACA,mBACA,eACA,aACA,OACA,cACA,OACA,gBACA,OACA,SACA,cACA,QACA,MACA,WACA,mBACA,QACA,QACA,gBACA,MACA,SACA,UACA,UACA,QACA,QACA,OACA,OACA,YACA,QACA,YACA,gBACA,QACA,OACA,MACA,QACA,iBA+EImC,EAAW,CAACC,GAAW/C,UAAAA,MACpB,CACL6C,WAAY,CACV,EAAG,eACH,EAAG,QAEL7C,UAAWA,GAAa,EACxBgD,SAAU,eACVlD,MAAO,CACL,MACA,MACAO,EAAM4C,UAAUF,IAElBhD,IAAK,MACLY,SAAU,KACVf,SAAU,CACRgD,EACAF,EACAL,EACA9B,KAMA2C,EAAMJ,EAASZ,EAAW,CAAElC,UAAW,IACvCmD,EAAaL,EAAS,CAFN,WAEyB,CAAE9C,UAAW,IAE5D,MAAO,CACLL,KAAM,OACNe,QAAS,CAAE,YACXT,kBAAkB,EAClBG,YAAa,MACbR,SAAU,CACRF,EAAKkB,QAAQ,MAAO,OACpBsC,EACAC,EACA,CACEtD,UAAW,oBACXC,MAAO,OACPC,IAAK,OACLH,SAAU,CACR,OACAgD,EACAF,EACAL,EACA9B,Q,SClNV,MAAM6C,EAAW,2BACXC,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIC,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAIIhC,EAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAGIiC,EAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAGIC,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGIC,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UAGIC,EAAY,GAAG1C,OACnBwC,EACAlC,EACAiC,GAWF,SAASI,EAAWjE,GAClB,MAAMW,EAAQX,EAAKW,MAcbuD,EAAaR,EACbS,EACG,KADHA,EAEC,MAIDC,EAAU,CACdhE,MAAO,sBACPC,IAAK,4BAKLgE,kBAAmB,CAACxB,EAAOyB,KACzB,MAAMC,EAAkB1B,EAAM,GAAG2B,OAAS3B,EAAM4B,MAC1CC,EAAW7B,EAAM8B,MAAMJ,GAC7B,GAIe,MAAbG,GAGa,MAAbA,EAEA,YADAJ,EAASM,cAmBX,IAAIC,EAba,MAAbH,IArCc,EAAC7B,GAASiC,MAAAA,MAC9B,MAAMC,EAAM,KAAOlC,EAAM,GAAGmC,MAAM,GAElC,OAAgB,IADJnC,EAAM8B,MAAMM,QAAQF,EAAKD,IAsC5BI,CAAcrC,EAAO,CAAEiC,MAAOP,KACjCD,EAASM,gBAYRC,EAFchC,EAAM8B,MAAMQ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MAAO,CACLH,KAAM,oBACNe,QAAS,CAAE,MACXT,kBAAkB,EAClBqI,iBAAkB,CAChBrC,MAAO,UAETtF,SAAU,CACRY,QACE,k2BAWFyD,SAEE,2OAGFxD,KAEE,4GACFC,QAAS,sBAEXJ,QACE,4CACFzB,SAAU,CArJM,CAChBC,UAAW,SACXC,MAAO,mBAGM,CACbD,UAAW,SACXC,MAAO,IACPC,IAAK,IACLsB,QAAS,KACTzB,SAAU,CACR,CAEEE,MAAO,QA2ITsI,EArGW,CACbvI,UAAW,SACXG,UAAW,EACXG,SAAU,CACR,CAEEL,MAAO,iEAET,CAEEA,MAAO,+BAET,CAEEA,MAAO,gCAET,CAEEA,MAAO,8BAET,CAEEA,MAAO,+BAKC,CACZD,UAAW,QACXC,MAAO,SA2ELuI,EACAzH,EAnDe,CACjBf,UAAW,OAEXC,MAAO,2EACPC,IAAK,IACLY,SAAU,CACRY,QACE,sEAEJ3B,SAAU,CAAEgB,Q,QC1GhBpB,EAAOC,QAdP,SAAsBC,GACpB,MAAO,CACLC,KAAM,mBACNS,YAAa,MACbR,SAAU,CACR,CACEE,MAAO,KACPC,IAAK,KACLK,YAAa,gB,SC8MrBZ,EAAOC,QArNP,SAAkBC,GAChB,MAAMW,EAAQX,EAAKW,MACbkI,EAAqB,CACzB,QACA,QACA,UACA,WACA,SACA,YACA,YACA,MACA,SACA,SACA,cACA,MACA,UACA,YACA,MACA,MACA,SACA,UACA,QACA,QACA,iBACA,cACA,OACA,YACA,SACA,OACA,QACA,MACA,OACA,aACA,OACA,MACA,MACA,UACA,QACA,aACA,MACA,QACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,WACA,iBACA,UACA,SACA,QACA,MACA,QACA,WACA,MACA,OACA,MACA,MACA,SACA,SACA,QACA,YACA,MACA,QACA,QACA,QACA,OACA,OACA,MACA,WACA,OACA,UACA,MACA,eACA,cACA,MACA,eACA,MACA,QACA,OACA,MACA,WACA,QACA,MACA,OACA,UACA,OACA,OACA,gBACA,MACA,WACA,OACA,OACA,OACA,SACA,OACA,OA0FF,MAAO,CACL5I,KAAM,WACNe,QAAS,CAAC,OACVT,kBAAkB,EAClBU,SAAU,CACRY,QAjEa,CACf,OACA,QACA,QACA,MACA,KACA,OACA,QACA,UACA,gBACA,OACA,MACA,OACA,OACA,WACA,KACA,OACA,OACA,KACA,QACA,SACA,WACA,MACA,UACA,WACA,MACA,MACA,SACA,YACA,QACA,MACA,SACA,OACA,MACA,OACA,MACA,QACA,OACA,OACA,MACA,KACA,SACA,KACA,KACA,MACA,MACA,MACA,mBACA,kBACA,UACA,WACA,KACA,KACA,QACA,QACA,OACA,SACA,QASEyD,SA9FqB,CACvB,SACA,WACA,UAEA,eACA,2BACA,2BACA,4BAuFEvD,QA3Ea,CACf,OACA,QACA,OACA,UACA,UAwEAJ,QAAS,KACTzB,SAAU,CAvFU,CACpBE,MAAOO,EAAMW,OAAOX,EAAM4C,UAAUsF,GAAqB,WAEzDvI,UAAW,EACXW,SAAU,CACRqE,SAAUuD,IAoFV7I,EAAKyB,QAAQzB,EAAK0B,kBAAmB,CAACxB,SAAU,CAAC,CAACE,MAAO,SACzDJ,EAAKkB,QACH,IACA,IACA,CACEZ,UAAW,IAGfN,EAAKe,kB,SCgVXjB,EAAOC,QAliBP,SAAiBC,GACf,MAAMW,EAAQX,EAAKW,MA2cbmI,EAAa,CACjB,iBACA,aACA,kBACA,qBACA,0BACA,SACA,yBACA,kBACA,kBACA,kBACA,OACA,QACA,eACA,gBACA,QACA,QACA,SACA,UACA,OACA,sBACA,SACA,WACA,YACA,oBACA,QACA,eAGF,MAAO,CACL7I,KAAM,UACNe,QAAS,CACP,IACA,KACA,OAEFT,kBAAkB,EAClBU,SA/ee,CACfoE,SAAU,qBACVxD,QAAS,CACP,YACA,QACA,SACA,cACA,YACA,eACA,MACA,SACA,SACA,SACA,YACA,SACA,QACA,OACA,OACA,SACA,MACA,QACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,UACA,UACA,QACA,WACA,OACA,SACA,QACA,aACA,UACA,WACA,QACA,aACA,aACA,QACA,WACA,UACA,WACA,SACA,UACA,OACA,KACA,OACA,OACA,MACA,UACA,aACA,WACA,cACA,YACA,cACA,cACA,WACA,eACA,YACA,aACA,eACA,aACA,cACA,aACA,cACA,WACA,UACA,OACA,QACA,aACA,SACA,SACA,UACA,SACA,QACA,cACA,MACA,QACA,UACA,UACA,OACA,WACA,WACA,aACA,SACA,SACA,SACA,SACA,KACA,MACA,SACA,cACA,eACA,aACA,UACA,SACA,SACA,UACA,UACA,QACA,QACA,SACA,WACA,MACA,UACA,eACA,YACA,YACA,OACA,WACA,YACA,QACA,MACA,UACA,UACA,QACA,aACA,QACA,UACA,cACA,UACA,SACA,UACA,SACA,OACA,UACA,UACA,MACA,WACA,OACA,MACA,kBACA,MACA,SACA,SACA,KACA,SACA,UACA,SACA,YACA,OACA,UACA,YACA,WACA,UACA,WACA,YACA,QACA,QACA,WACA,SACA,sBACA,qBACA,OACA,OACA,QACA,WACA,eACA,QACA,OACA,WACA,MACA,MACA,YACA,UACA,SACA,WACA,SACA,QACA,QACA,QACA,WACA,WACA,WACA,eACA,aACA,UACA,eACA,WACA,WACA,WACA,YACA,gBACA,SACA,QACA,OACA,QACA,UACA,YACA,SACA,SACA,SACA,UACA,UACA,SACA,QACA,UACA,UACA,iBACA,iBACA,QACA,SACA,OACA,OACA,aACA,OACA,gBACA,WACA,OACA,UACA,UACA,MACA,OACA,OACA,SACA,QACA,SACA,OACA,UACA,QACA,SACA,UACA,WACA,QACA,aACA,UACA,MACA,QACA,MACA,WACA,UACA,OACA,OACA,aACA,OACA,OACA,QACA,QACA,QACA,WACA,OACA,OACA,SACA,MACA,OACA,OAEFE,QAAS,CAAE,QACXuD,SAAU,CACR,UACA,QACA,QACA,SACA,SACA,WACA,QACA,YACA,QACA,kBACA,cACA,mBACA,QACA,UACA,QACA,QACA,SACA,cACA,cACA,mBACA,QACA,YACA,YACA,cACA,gBACA,gBACA,sBACA,aACA,iBACA,iBACA,iBACA,oBACA,eACA,WACA,QACA,WACA,aACA,aACA,gBACA,eACA,eACA,oBACA,gBACA,iBACA,wBACA,QACA,UACA,QACA,aACA,eACA,eACA,gBACA,iBACA,WACA,oBACA,kBACA,gBACA,oBACA,YACA,uBACA,QACA,OACA,aACA,SACA,MACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,OACA,OACA,aACA,UACA,aACA,SACA,WACA,cACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,SACA,SACA,aACA,WACA,SACA,QACA,UACA,mBACA,eACA,oBACA,eACA,gBACA,UACA,gBACA,gBACA,YACA,UACA,mBACA,oBACA,kBACA,mBACA,kBACA,mBACA,iBACA,kBACA,SACA,UACA,YACA,mBACA,oBACA,kBACA,mBACA,kBACA,mBACA,iBACA,kBACA,UACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,SACA,YACA,YACA,aACA,kBACA,YACA,UACA,aACA,aACA,eACA,kBACA,UACA,UACA,UACA,WACA,YACA,YACA,YACA,aACA,YACA,WACA,WACA,aACA,gBACA,gBACA,kBACA,UACA,YACA,aACA,aACA,aACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,QACA,SACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,aACA,WACA,YACA,SACA,UACA,SACA,UACA,UACA,SACA,YA6CFpF,SAAU,CACRF,EAAKkC,qBACLlC,EAAKiC,oBACLjC,EAAK0B,kBACL,CACEkB,MAAO,SACP1C,SAAU,CAAEF,EAAKwB,kBACjBf,SAAU,CACR,CACEL,MAAO,2CAET,CACEA,MAAO,wCAET,CACEA,MAAO,iBACPE,UAAW,KAKjB,CACEsC,MAAO,WACPnC,SAAU,CACR,CACEL,MAAO,0BAET,CACEA,MAAO,UACPE,UAAW,KAIjB,CACEsC,MAAO,oBACPC,MAAOlC,EAAMW,OAAO,IAAKX,EAAM4C,OA5EnC,WACA,cA6EE,CACEX,MAAO,OACPxC,MAAOO,EAAMW,OAAO,IAAKX,EAAM4C,UAAUuF,IACzCzI,IAAK,cACLsF,WAAW,EACX1E,SAAU6H,O,SC9UlBhJ,EAAOC,QA9MP,SAAcC,GA8KZ,MAAO,CACLC,KAAM,OACNM,kBAAkB,EAClBU,SAAU,CACRY,QArKa,CACf,MACA,SACA,QACA,QACA,MACA,MACA,eACA,QACA,SACA,SACA,mBACA,YACA,QACA,QACA,OACA,SACA,MACA,OACA,YACA,gBACA,WACA,UACA,QACA,aACA,SACA,UACA,OACA,QACA,MACA,SACA,OACA,WACA,OACA,MACA,QACA,WACA,WACA,UACA,QACA,UACA,KACA,SACA,KACA,WACA,QACA,KACA,QACA,UACA,UACA,UACA,OACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,KACA,KACA,OACA,KACA,SACA,MACA,UACA,YACA,OACA,YACA,YACA,UACA,WACA,YACA,OACA,QACA,SACA,WACA,SACA,UACA,MACA,SACA,WACA,qBACA,SACA,MACA,MACA,SACA,WACA,WACA,SACA,SACA,MACA,MACA,MACA,MACA,SACA,UACA,OACA,KACA,YACA,OACA,aACA,QACA,QACA,MACA,WACA,OACA,QACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,OAkDEyD,SAhDc,CAChB,UACA,MACA,YACA,UACA,OACA,eACA,UACA,WACA,SACA,aACA,iBACA,mBACA,YACA,mBACA,WACA,SACA,iBACA,iBACA,aACA,oBACA,sBACA,aACA,oBACA,WACA,cACA,eAuBEvD,QArBa,CAEf,QACA,OACA,OACA,UACA,QACA,UAEA,OACA,OACA,OACA,UAWAJ,QAAS,KACTzB,SAAU,CACRF,EAAKkC,qBACLlC,EAAKkB,QAAQ,KAAM,KACnBlB,EAAK0B,kBACL,CACEvB,UAAW,SACXC,MAlLY,8GAmLZE,UAAW,GAEb,CACEH,UAAW,SACXC,MAAO,wBACPF,SAAU,CAAEF,EAAKwB,mBAEnB,CACErB,UAAW,SACXC,MAAO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","sources":["webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/taggerscript.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/tap.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/tcl.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/thrift.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/tp.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/twig.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/typescript.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/vala.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/vbnet.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/vbscript-html.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/vbscript.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/verilog.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/vhdl.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/vim.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/wasm.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/wren.js"],"sourcesContent":["/*\nLanguage: Tagger Script\nAuthor: Philipp Wolfer \nDescription: Syntax Highlighting for the Tagger Script as used by MusicBrainz Picard.\nWebsite: https://picard.musicbrainz.org\n */\nfunction taggerscript(hljs) {\n const NOOP = {\n className: 'comment',\n begin: /\\$noop\\(/,\n end: /\\)/,\n contains: [{\n begin: /\\\\[()]/\n }, {\n begin: /\\(/,\n end: /\\)/,\n contains: [{\n begin: /\\\\[()]/\n }, 'self']\n } ],\n relevance: 10\n };\n\n const FUNCTION = {\n className: 'keyword',\n begin: /\\$[_a-zA-Z0-9]+(?=\\()/\n };\n\n const VARIABLE = {\n className: 'variable',\n begin: /%[_a-zA-Z0-9:]+%/\n };\n\n const ESCAPE_SEQUENCE_UNICODE = {\n className: 'symbol',\n begin: /\\\\u[a-fA-F0-9]{4}/\n };\n\n const ESCAPE_SEQUENCE = {\n className: 'symbol',\n begin: /\\\\[\\\\nt$%,()]/\n };\n\n return {\n name: 'Tagger Script',\n contains: [\n NOOP,\n FUNCTION,\n VARIABLE,\n ESCAPE_SEQUENCE,\n ESCAPE_SEQUENCE_UNICODE\n ]\n };\n}\n\nmodule.exports = taggerscript;\n","/*\nLanguage: Test Anything Protocol\nDescription: TAP, the Test Anything Protocol, is a simple text-based interface between testing modules in a test harness.\nRequires: yaml.js\nAuthor: Sergey Bronnikov \nWebsite: https://testanything.org\n*/\n\nfunction tap(hljs) {\n return {\n name: 'Test Anything Protocol',\n case_insensitive: true,\n contains: [\n hljs.HASH_COMMENT_MODE,\n // version of format and total amount of testcases\n {\n className: 'meta',\n variants: [\n {\n begin: '^TAP version (\\\\d+)$'\n },\n {\n begin: '^1\\\\.\\\\.(\\\\d+)$'\n }\n ]\n },\n // YAML block\n {\n begin: /---$/,\n end: '\\\\.\\\\.\\\\.$',\n subLanguage: 'yaml',\n relevance: 0\n },\n // testcase number\n {\n className: 'number',\n begin: ' (\\\\d+) '\n },\n // testcase status and description\n {\n className: 'symbol',\n variants: [\n {\n begin: '^ok'\n },\n {\n begin: '^not ok'\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = tap;\n","/*\nLanguage: Tcl\nDescription: Tcl is a very simple programming language.\nAuthor: Radek Liska \nWebsite: https://www.tcl.tk/about/language.html\n*/\n\nfunction tcl(hljs) {\n const regex = hljs.regex;\n const TCL_IDENT = /[a-zA-Z_][a-zA-Z0-9_]*/;\n\n const NUMBER = {\n className: 'number',\n variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]\n };\n\n const KEYWORDS = [\n \"after\",\n \"append\",\n \"apply\",\n \"array\",\n \"auto_execok\",\n \"auto_import\",\n \"auto_load\",\n \"auto_mkindex\",\n \"auto_mkindex_old\",\n \"auto_qualify\",\n \"auto_reset\",\n \"bgerror\",\n \"binary\",\n \"break\",\n \"catch\",\n \"cd\",\n \"chan\",\n \"clock\",\n \"close\",\n \"concat\",\n \"continue\",\n \"dde\",\n \"dict\",\n \"encoding\",\n \"eof\",\n \"error\",\n \"eval\",\n \"exec\",\n \"exit\",\n \"expr\",\n \"fblocked\",\n \"fconfigure\",\n \"fcopy\",\n \"file\",\n \"fileevent\",\n \"filename\",\n \"flush\",\n \"for\",\n \"foreach\",\n \"format\",\n \"gets\",\n \"glob\",\n \"global\",\n \"history\",\n \"http\",\n \"if\",\n \"incr\",\n \"info\",\n \"interp\",\n \"join\",\n \"lappend|10\",\n \"lassign|10\",\n \"lindex|10\",\n \"linsert|10\",\n \"list\",\n \"llength|10\",\n \"load\",\n \"lrange|10\",\n \"lrepeat|10\",\n \"lreplace|10\",\n \"lreverse|10\",\n \"lsearch|10\",\n \"lset|10\",\n \"lsort|10\",\n \"mathfunc\",\n \"mathop\",\n \"memory\",\n \"msgcat\",\n \"namespace\",\n \"open\",\n \"package\",\n \"parray\",\n \"pid\",\n \"pkg::create\",\n \"pkg_mkIndex\",\n \"platform\",\n \"platform::shell\",\n \"proc\",\n \"puts\",\n \"pwd\",\n \"read\",\n \"refchan\",\n \"regexp\",\n \"registry\",\n \"regsub|10\",\n \"rename\",\n \"return\",\n \"safe\",\n \"scan\",\n \"seek\",\n \"set\",\n \"socket\",\n \"source\",\n \"split\",\n \"string\",\n \"subst\",\n \"switch\",\n \"tcl_endOfWord\",\n \"tcl_findLibrary\",\n \"tcl_startOfNextWord\",\n \"tcl_startOfPreviousWord\",\n \"tcl_wordBreakAfter\",\n \"tcl_wordBreakBefore\",\n \"tcltest\",\n \"tclvars\",\n \"tell\",\n \"time\",\n \"tm\",\n \"trace\",\n \"unknown\",\n \"unload\",\n \"unset\",\n \"update\",\n \"uplevel\",\n \"upvar\",\n \"variable\",\n \"vwait\",\n \"while\"\n ];\n\n return {\n name: 'Tcl',\n aliases: ['tk'],\n keywords: KEYWORDS,\n contains: [\n hljs.COMMENT(';[ \\\\t]*#', '$'),\n hljs.COMMENT('^[ \\\\t]*#', '$'),\n {\n beginKeywords: 'proc',\n end: '[\\\\{]',\n excludeEnd: true,\n contains: [\n {\n className: 'title',\n begin: '[ \\\\t\\\\n\\\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',\n end: '[ \\\\t\\\\n\\\\r]',\n endsWithParent: true,\n excludeEnd: true\n }\n ]\n },\n {\n className: \"variable\",\n variants: [\n {\n begin: regex.concat(\n /\\$/,\n regex.optional(/::/),\n TCL_IDENT,\n '(::',\n TCL_IDENT,\n ')*'\n )\n },\n {\n begin: '\\\\$\\\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',\n end: '\\\\}',\n contains: [\n NUMBER\n ]\n }\n ]\n },\n {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [\n hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})\n ]\n },\n NUMBER\n ]\n }\n}\n\nmodule.exports = tcl;\n","/*\nLanguage: Thrift\nAuthor: Oleg Efimov \nDescription: Thrift message definition format\nWebsite: https://thrift.apache.org\nCategory: protocols\n*/\n\nfunction thrift(hljs) {\n const TYPES = [\n \"bool\",\n \"byte\",\n \"i16\",\n \"i32\",\n \"i64\",\n \"double\",\n \"string\",\n \"binary\"\n ];\n const KEYWORDS = [\n \"namespace\",\n \"const\",\n \"typedef\",\n \"struct\",\n \"enum\",\n \"service\",\n \"exception\",\n \"void\",\n \"oneway\",\n \"set\",\n \"list\",\n \"map\",\n \"required\",\n \"optional\"\n ];\n return {\n name: 'Thrift',\n keywords: {\n keyword: KEYWORDS,\n type: TYPES,\n literal: 'true false'\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'class',\n beginKeywords: 'struct enum service exception',\n end: /\\{/,\n illegal: /\\n/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n // hack: eating everything after the first title\n starts: {\n endsWithParent: true,\n excludeEnd: true\n }\n })\n ]\n },\n {\n begin: '\\\\b(set|list|map)\\\\s*<',\n keywords: {\n type: [...TYPES, \"set\", \"list\", \"map\"]\n },\n end: '>',\n contains: [ 'self' ]\n }\n ]\n };\n}\n\nmodule.exports = thrift;\n","/*\nLanguage: TP\nAuthor: Jay Strybis \nDescription: FANUC TP programming language (TPP).\n*/\n\nfunction tp(hljs) {\n const TPID = {\n className: 'number',\n begin: '[1-9][0-9]*', /* no leading zeros */\n relevance: 0\n };\n const TPLABEL = {\n className: 'symbol',\n begin: ':[^\\\\]]+'\n };\n const TPDATA = {\n className: 'built_in',\n begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|' +\n 'TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\\\[',\n end: '\\\\]',\n contains: [\n 'self',\n TPID,\n TPLABEL\n ]\n };\n const TPIO = {\n className: 'built_in',\n begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\\\[',\n end: '\\\\]',\n contains: [\n 'self',\n TPID,\n hljs.QUOTE_STRING_MODE, /* for pos section at bottom */\n TPLABEL\n ]\n };\n\n const KEYWORDS = [\n \"ABORT\",\n \"ACC\",\n \"ADJUST\",\n \"AND\",\n \"AP_LD\",\n \"BREAK\",\n \"CALL\",\n \"CNT\",\n \"COL\",\n \"CONDITION\",\n \"CONFIG\",\n \"DA\",\n \"DB\",\n \"DIV\",\n \"DETECT\",\n \"ELSE\",\n \"END\",\n \"ENDFOR\",\n \"ERR_NUM\",\n \"ERROR_PROG\",\n \"FINE\",\n \"FOR\",\n \"GP\",\n \"GUARD\",\n \"INC\",\n \"IF\",\n \"JMP\",\n \"LINEAR_MAX_SPEED\",\n \"LOCK\",\n \"MOD\",\n \"MONITOR\",\n \"OFFSET\",\n \"Offset\",\n \"OR\",\n \"OVERRIDE\",\n \"PAUSE\",\n \"PREG\",\n \"PTH\",\n \"RT_LD\",\n \"RUN\",\n \"SELECT\",\n \"SKIP\",\n \"Skip\",\n \"TA\",\n \"TB\",\n \"TO\",\n \"TOOL_OFFSET\",\n \"Tool_Offset\",\n \"UF\",\n \"UT\",\n \"UFRAME_NUM\",\n \"UTOOL_NUM\",\n \"UNLOCK\",\n \"WAIT\",\n \"X\",\n \"Y\",\n \"Z\",\n \"W\",\n \"P\",\n \"R\",\n \"STRLEN\",\n \"SUBSTR\",\n \"FINDSTR\",\n \"VOFFSET\",\n \"PROG\",\n \"ATTR\",\n \"MN\",\n \"POS\"\n ];\n const LITERALS = [\n \"ON\",\n \"OFF\",\n \"max_speed\",\n \"LPOS\",\n \"JPOS\",\n \"ENABLE\",\n \"DISABLE\",\n \"START\",\n \"STOP\",\n \"RESET\"\n ];\n\n return {\n name: 'TP',\n keywords: {\n keyword: KEYWORDS,\n literal: LITERALS\n },\n contains: [\n TPDATA,\n TPIO,\n {\n className: 'keyword',\n begin: '/(PROG|ATTR|MN|POS|END)\\\\b'\n },\n {\n /* this is for cases like ,CALL */\n className: 'keyword',\n begin: '(CALL|RUN|POINT_LOGIC|LBL)\\\\b'\n },\n {\n /* this is for cases like CNT100 where the default lexemes do not\n * separate the keyword and the number */\n className: 'keyword',\n begin: '\\\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)'\n },\n {\n /* to catch numbers that do not have a word boundary on the left */\n className: 'number',\n begin: '\\\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\\\b',\n relevance: 0\n },\n hljs.COMMENT('//', '[;$]'),\n hljs.COMMENT('!', '[;$]'),\n hljs.COMMENT('--eg:', '$'),\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '\\''\n },\n hljs.C_NUMBER_MODE,\n {\n className: 'variable',\n begin: '\\\\$[A-Za-z0-9_]+'\n }\n ]\n };\n}\n\nmodule.exports = tp;\n","/*\nLanguage: Twig\nRequires: xml.js\nAuthor: Luke Holder \nDescription: Twig is a templating language for PHP\nWebsite: https://twig.symfony.com\nCategory: template\n*/\n\nfunction twig(hljs) {\n const regex = hljs.regex;\n const FUNCTION_NAMES = [\n \"attribute\",\n \"block\",\n \"constant\",\n \"country_timezones\",\n \"cycle\",\n \"date\",\n \"dump\",\n \"html_classes\",\n \"include\",\n \"max\",\n \"min\",\n \"parent\",\n \"random\",\n \"range\",\n \"source\",\n \"template_from_string\"\n ];\n\n const FILTERS = [\n \"abs\",\n \"batch\",\n \"capitalize\",\n \"column\",\n \"convert_encoding\",\n \"country_name\",\n \"currency_name\",\n \"currency_symbol\",\n \"data_uri\",\n \"date\",\n \"date_modify\",\n \"default\",\n \"escape\",\n \"filter\",\n \"first\",\n \"format\",\n \"format_currency\",\n \"format_date\",\n \"format_datetime\",\n \"format_number\",\n \"format_time\",\n \"html_to_markdown\",\n \"inky_to_html\",\n \"inline_css\",\n \"join\",\n \"json_encode\",\n \"keys\",\n \"language_name\",\n \"last\",\n \"length\",\n \"locale_name\",\n \"lower\",\n \"map\",\n \"markdown\",\n \"markdown_to_html\",\n \"merge\",\n \"nl2br\",\n \"number_format\",\n \"raw\",\n \"reduce\",\n \"replace\",\n \"reverse\",\n \"round\",\n \"slice\",\n \"slug\",\n \"sort\",\n \"spaceless\",\n \"split\",\n \"striptags\",\n \"timezone_name\",\n \"title\",\n \"trim\",\n \"u|0\",\n \"upper\",\n \"url_encode\"\n ];\n\n let TAG_NAMES = [\n \"apply\",\n \"autoescape\",\n \"block\",\n \"cache\",\n \"deprecated\",\n \"do\",\n \"embed\",\n \"extends\",\n \"filter\",\n \"flush\",\n \"for\",\n \"from\",\n \"if\",\n \"import\",\n \"include\",\n \"macro\",\n \"sandbox\",\n \"set\",\n \"use\",\n \"verbatim\",\n \"with\"\n ];\n\n TAG_NAMES = TAG_NAMES.concat(TAG_NAMES.map(t => `end${t}`));\n\n const STRING = {\n scope: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n ]\n };\n\n const NUMBER = {\n scope: \"number\",\n match: /\\d+/\n };\n\n const PARAMS = {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n contains: [\n STRING,\n NUMBER\n ]\n };\n\n\n const FUNCTIONS = {\n beginKeywords: FUNCTION_NAMES.join(\" \"),\n keywords: { name: FUNCTION_NAMES },\n relevance: 0,\n contains: [ PARAMS ]\n };\n\n const FILTER = {\n match: /\\|(?=[A-Za-z_]+:?)/,\n beginScope: \"punctuation\",\n relevance: 0,\n contains: [\n {\n match: /[A-Za-z_]+:?/,\n keywords: FILTERS\n },\n ]\n };\n\n const tagNamed = (tagnames, {relevance}) => {\n return {\n beginScope: {\n 1: 'template-tag',\n 3: 'name'\n },\n relevance: relevance || 2,\n endScope: 'template-tag',\n begin: [\n /\\{%/,\n /\\s*/,\n regex.either(...tagnames)\n ],\n end: /%\\}/,\n keywords: \"in\",\n contains: [\n FILTER,\n FUNCTIONS,\n STRING,\n NUMBER\n ]\n };\n };\n\n const CUSTOM_TAG_RE = /[a-z_]+/;\n const TAG = tagNamed(TAG_NAMES, { relevance: 2 });\n const CUSTOM_TAG = tagNamed([ CUSTOM_TAG_RE ], { relevance: 1 });\n\n return {\n name: 'Twig',\n aliases: [ 'craftcms' ],\n case_insensitive: true,\n subLanguage: 'xml',\n contains: [\n hljs.COMMENT(/\\{#/, /#\\}/),\n TAG,\n CUSTOM_TAG,\n {\n className: 'template-variable',\n begin: /\\{\\{/,\n end: /\\}\\}/,\n contains: [\n 'self',\n FILTER,\n FUNCTIONS,\n STRING,\n NUMBER\n ]\n }\n ]\n };\n}\n\nmodule.exports = twig;\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\") {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n // ``\n // technically this could be HTML, but it smells like a type\n let m;\n const afterMatch = match.input.substr(afterMatchIndex);\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'Javascript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti \nContributors: Ike Ku \nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n const tsLanguage = javascript(hljs);\n\n const IDENT_RE$1 = IDENT_RE;\n const TYPES = [\n \"any\",\n \"void\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n \"never\",\n \"enum\"\n ];\n const NAMESPACE = {\n beginKeywords: 'namespace',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n tsLanguage.exports.CLASS_REFERENCE\n ]\n };\n const INTERFACE = {\n beginKeywords: 'interface',\n end: /\\{/,\n excludeEnd: true,\n keywords: {\n keyword: 'interface extends',\n built_in: TYPES\n },\n contains: [\n tsLanguage.exports.CLASS_REFERENCE\n ]\n };\n const USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n const TS_SPECIFIC_KEYWORDS = [\n \"type\",\n \"namespace\",\n \"typedef\",\n \"interface\",\n \"public\",\n \"private\",\n \"protected\",\n \"implements\",\n \"declare\",\n \"abstract\",\n \"readonly\"\n ];\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES),\n \"variable.language\": BUILT_IN_VARIABLES\n };\n const DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1,\n };\n\n const swapMode = (mode, label, replacement) => {\n const indx = mode.contains.findIndex(m => m.label === label);\n if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n mode.contains.splice(indx, 1, replacement);\n };\n\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n tsLanguage.contains = tsLanguage.contains.concat([\n DECORATOR,\n NAMESPACE,\n INTERFACE,\n ]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n const functionDeclaration = tsLanguage.contains.find(m => m.label === \"func.def\");\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: ['ts', 'tsx']\n });\n\n return tsLanguage;\n}\n\nmodule.exports = typescript;\n","/*\nLanguage: Vala\nAuthor: Antono Vasiljev \nDescription: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.\nWebsite: https://wiki.gnome.org/Projects/Vala\n*/\n\nfunction vala(hljs) {\n return {\n name: 'Vala',\n keywords: {\n keyword:\n // Value types\n 'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +\n 'uint16 uint32 uint64 float double bool struct enum string void ' +\n // Reference types\n 'weak unowned owned ' +\n // Modifiers\n 'async signal static abstract interface override virtual delegate ' +\n // Control Structures\n 'if while do for foreach else switch case break default return try catch ' +\n // Visibility\n 'public private protected internal ' +\n // Other\n 'using new this get set const stdout stdin stderr var',\n built_in:\n 'DBus GLib CCode Gee Object Gtk Posix',\n literal:\n 'false true null'\n },\n contains: [\n {\n className: 'class',\n beginKeywords: 'class interface namespace',\n end: /\\{/,\n excludeEnd: true,\n illegal: '[^,:\\\\n\\\\s\\\\.]',\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 5\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '^#',\n end: '$',\n }\n ]\n };\n}\n\nmodule.exports = vala;\n","/*\nLanguage: Visual Basic .NET\nDescription: Visual Basic .NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the .NET Framework.\nAuthors: Poren Chiang , Jan Pilzer\nWebsite: https://docs.microsoft.com/dotnet/visual-basic/getting-started\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction vbnet(hljs) {\n const regex = hljs.regex;\n /**\n * Character Literal\n * Either a single character (\"a\"C) or an escaped double quote (\"\"\"\"C).\n */\n const CHARACTER = {\n className: 'string',\n begin: /\"(\"\"|[^/n])\"C\\b/\n };\n\n const STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n contains: [\n {\n // double quote escape\n begin: /\"\"/\n }\n ]\n };\n\n /** Date Literals consist of a date, a time, or both separated by whitespace, surrounded by # */\n const MM_DD_YYYY = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\n const YYYY_MM_DD = /\\d{4}-\\d{1,2}-\\d{1,2}/;\n const TIME_12H = /(\\d|1[012])(:\\d+){0,2} *(AM|PM)/;\n const TIME_24H = /\\d{1,2}(:\\d{1,2}){1,2}/;\n const DATE = {\n className: 'literal',\n variants: [\n {\n // #YYYY-MM-DD# (ISO-Date) or #M/D/YYYY# (US-Date)\n begin: regex.concat(/# */, regex.either(YYYY_MM_DD, MM_DD_YYYY), / *#/)\n },\n {\n // #H:mm[:ss]# (24h Time)\n begin: regex.concat(/# */, TIME_24H, / *#/)\n },\n {\n // #h[:mm[:ss]] A# (12h Time)\n begin: regex.concat(/# */, TIME_12H, / *#/)\n },\n {\n // date plus time\n begin: regex.concat(\n /# */,\n regex.either(YYYY_MM_DD, MM_DD_YYYY),\n / +/,\n regex.either(TIME_12H, TIME_24H),\n / *#/\n )\n }\n ]\n };\n\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n {\n // Float\n begin: /\\b\\d[\\d_]*((\\.[\\d_]+(E[+-]?[\\d_]+)?)|(E[+-]?[\\d_]+))[RFD@!#]?/\n },\n {\n // Integer (base 10)\n begin: /\\b\\d[\\d_]*((U?[SIL])|[%&])?/\n },\n {\n // Integer (base 16)\n begin: /&H[\\dA-F_]+((U?[SIL])|[%&])?/\n },\n {\n // Integer (base 8)\n begin: /&O[0-7_]+((U?[SIL])|[%&])?/\n },\n {\n // Integer (base 2)\n begin: /&B[01_]+((U?[SIL])|[%&])?/\n }\n ]\n };\n\n const LABEL = {\n className: 'label',\n begin: /^\\w+:/\n };\n\n const DOC_COMMENT = hljs.COMMENT(/'''/, /$/, {\n contains: [\n {\n className: 'doctag',\n begin: /<\\/?/,\n end: />/\n }\n ]\n });\n\n const COMMENT = hljs.COMMENT(null, /$/, {\n variants: [\n {\n begin: /'/\n },\n {\n // TODO: Use multi-class for leading spaces\n begin: /([\\t ]|^)REM(?=\\s)/\n }\n ]\n });\n\n const DIRECTIVES = {\n className: 'meta',\n // TODO: Use multi-class for indentation once available\n begin: /[\\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\\b/,\n end: /$/,\n keywords: {\n keyword:\n 'const disable else elseif enable end externalsource if region then'\n },\n contains: [ COMMENT ]\n };\n\n return {\n name: 'Visual Basic .NET',\n aliases: [ 'vb' ],\n case_insensitive: true,\n classNameAliases: {\n label: 'symbol'\n },\n keywords: {\n keyword:\n 'addhandler alias aggregate ansi as async assembly auto binary by byref byval ' + /* a-b */\n 'call case catch class compare const continue custom declare default delegate dim distinct do ' + /* c-d */\n 'each equals else elseif end enum erase error event exit explicit finally for friend from function ' + /* e-f */\n 'get global goto group handles if implements imports in inherits interface into iterator ' + /* g-i */\n 'join key let lib loop me mid module mustinherit mustoverride mybase myclass ' + /* j-m */\n 'namespace narrowing new next notinheritable notoverridable ' + /* n */\n 'of off on operator option optional order overloads overridable overrides ' + /* o */\n 'paramarray partial preserve private property protected public ' + /* p */\n 'raiseevent readonly redim removehandler resume return ' + /* r */\n 'select set shadows shared skip static step stop structure strict sub synclock ' + /* s */\n 'take text then throw to try unicode until using when where while widening with withevents writeonly yield' /* t-y */,\n built_in:\n // Operators https://docs.microsoft.com/dotnet/visual-basic/language-reference/operators\n 'addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor ' +\n // Type Conversion Functions https://docs.microsoft.com/dotnet/visual-basic/language-reference/functions/type-conversion-functions\n 'cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort',\n type:\n // Data types https://docs.microsoft.com/dotnet/visual-basic/language-reference/data-types\n 'boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort',\n literal: 'true false nothing'\n },\n illegal:\n '//|\\\\{|\\\\}|endif|gosub|variant|wend|^\\\\$ ' /* reserved deprecated keywords */,\n contains: [\n CHARACTER,\n STRING,\n DATE,\n NUMBER,\n LABEL,\n DOC_COMMENT,\n COMMENT,\n DIRECTIVES\n ]\n };\n}\n\nmodule.exports = vbnet;\n","/*\nLanguage: VBScript in HTML\nRequires: xml.js, vbscript.js\nAuthor: Ivan Sagalaev \nDescription: \"Bridge\" language defining fragments of VBScript in HTML within <% .. %>\nWebsite: https://en.wikipedia.org/wiki/VBScript\nCategory: scripting\n*/\n\nfunction vbscriptHtml(hljs) {\n return {\n name: 'VBScript in HTML',\n subLanguage: 'xml',\n contains: [\n {\n begin: '<%',\n end: '%>',\n subLanguage: 'vbscript'\n }\n ]\n };\n}\n\nmodule.exports = vbscriptHtml;\n","/*\nLanguage: VBScript\nDescription: VBScript (\"Microsoft Visual Basic Scripting Edition\") is an Active Scripting language developed by Microsoft that is modeled on Visual Basic.\nAuthor: Nikita Ledyaev \nContributors: Michal Gabrukiewicz \nWebsite: https://en.wikipedia.org/wiki/VBScript\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction vbscript(hljs) {\n const regex = hljs.regex;\n const BUILT_IN_FUNCTIONS = [\n \"lcase\",\n \"month\",\n \"vartype\",\n \"instrrev\",\n \"ubound\",\n \"setlocale\",\n \"getobject\",\n \"rgb\",\n \"getref\",\n \"string\",\n \"weekdayname\",\n \"rnd\",\n \"dateadd\",\n \"monthname\",\n \"now\",\n \"day\",\n \"minute\",\n \"isarray\",\n \"cbool\",\n \"round\",\n \"formatcurrency\",\n \"conversions\",\n \"csng\",\n \"timevalue\",\n \"second\",\n \"year\",\n \"space\",\n \"abs\",\n \"clng\",\n \"timeserial\",\n \"fixs\",\n \"len\",\n \"asc\",\n \"isempty\",\n \"maths\",\n \"dateserial\",\n \"atn\",\n \"timer\",\n \"isobject\",\n \"filter\",\n \"weekday\",\n \"datevalue\",\n \"ccur\",\n \"isdate\",\n \"instr\",\n \"datediff\",\n \"formatdatetime\",\n \"replace\",\n \"isnull\",\n \"right\",\n \"sgn\",\n \"array\",\n \"snumeric\",\n \"log\",\n \"cdbl\",\n \"hex\",\n \"chr\",\n \"lbound\",\n \"msgbox\",\n \"ucase\",\n \"getlocale\",\n \"cos\",\n \"cdate\",\n \"cbyte\",\n \"rtrim\",\n \"join\",\n \"hour\",\n \"oct\",\n \"typename\",\n \"trim\",\n \"strcomp\",\n \"int\",\n \"createobject\",\n \"loadpicture\",\n \"tan\",\n \"formatnumber\",\n \"mid\",\n \"split\",\n \"cint\",\n \"sin\",\n \"datepart\",\n \"ltrim\",\n \"sqr\",\n \"time\",\n \"derived\",\n \"eval\",\n \"date\",\n \"formatpercent\",\n \"exp\",\n \"inputbox\",\n \"left\",\n \"ascw\",\n \"chrw\",\n \"regexp\",\n \"cstr\",\n \"err\"\n ];\n const BUILT_IN_OBJECTS = [\n \"server\",\n \"response\",\n \"request\",\n // take no arguments so can be called without ()\n \"scriptengine\",\n \"scriptenginebuildversion\",\n \"scriptengineminorversion\",\n \"scriptenginemajorversion\"\n ];\n\n const BUILT_IN_CALL = {\n begin: regex.concat(regex.either(...BUILT_IN_FUNCTIONS), \"\\\\s*\\\\(\"),\n // relevance 0 because this is acting as a beginKeywords really\n relevance: 0,\n keywords: {\n built_in: BUILT_IN_FUNCTIONS\n }\n };\n\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"nothing\",\n \"empty\"\n ];\n\n const KEYWORDS = [\n \"call\",\n \"class\",\n \"const\",\n \"dim\",\n \"do\",\n \"loop\",\n \"erase\",\n \"execute\",\n \"executeglobal\",\n \"exit\",\n \"for\",\n \"each\",\n \"next\",\n \"function\",\n \"if\",\n \"then\",\n \"else\",\n \"on\",\n \"error\",\n \"option\",\n \"explicit\",\n \"new\",\n \"private\",\n \"property\",\n \"let\",\n \"get\",\n \"public\",\n \"randomize\",\n \"redim\",\n \"rem\",\n \"select\",\n \"case\",\n \"set\",\n \"stop\",\n \"sub\",\n \"while\",\n \"wend\",\n \"with\",\n \"end\",\n \"to\",\n \"elseif\",\n \"is\",\n \"or\",\n \"xor\",\n \"and\",\n \"not\",\n \"class_initialize\",\n \"class_terminate\",\n \"default\",\n \"preserve\",\n \"in\",\n \"me\",\n \"byval\",\n \"byref\",\n \"step\",\n \"resume\",\n \"goto\"\n ];\n\n return {\n name: 'VBScript',\n aliases: ['vbs'],\n case_insensitive: true,\n keywords: {\n keyword: KEYWORDS,\n built_in: BUILT_IN_OBJECTS,\n literal: LITERALS\n },\n illegal: '//',\n contains: [\n BUILT_IN_CALL,\n hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '\"\"'}]}),\n hljs.COMMENT(\n /'/,\n /$/,\n {\n relevance: 0\n }\n ),\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = vbscript;\n","/*\nLanguage: Verilog\nAuthor: Jon Evans \nContributors: Boone Severson \nDescription: Verilog is a hardware description language used in electronic design automation to describe digital and mixed-signal systems. This highlighter supports Verilog and SystemVerilog through IEEE 1800-2012.\nWebsite: http://www.verilog.com\n*/\n\nfunction verilog(hljs) {\n const regex = hljs.regex;\n const KEYWORDS = {\n $pattern: /\\$?[\\w]+(\\$[\\w]+)*/,\n keyword: [\n \"accept_on\",\n \"alias\",\n \"always\",\n \"always_comb\",\n \"always_ff\",\n \"always_latch\",\n \"and\",\n \"assert\",\n \"assign\",\n \"assume\",\n \"automatic\",\n \"before\",\n \"begin\",\n \"bind\",\n \"bins\",\n \"binsof\",\n \"bit\",\n \"break\",\n \"buf|0\",\n \"bufif0\",\n \"bufif1\",\n \"byte\",\n \"case\",\n \"casex\",\n \"casez\",\n \"cell\",\n \"chandle\",\n \"checker\",\n \"class\",\n \"clocking\",\n \"cmos\",\n \"config\",\n \"const\",\n \"constraint\",\n \"context\",\n \"continue\",\n \"cover\",\n \"covergroup\",\n \"coverpoint\",\n \"cross\",\n \"deassign\",\n \"default\",\n \"defparam\",\n \"design\",\n \"disable\",\n \"dist\",\n \"do\",\n \"edge\",\n \"else\",\n \"end\",\n \"endcase\",\n \"endchecker\",\n \"endclass\",\n \"endclocking\",\n \"endconfig\",\n \"endfunction\",\n \"endgenerate\",\n \"endgroup\",\n \"endinterface\",\n \"endmodule\",\n \"endpackage\",\n \"endprimitive\",\n \"endprogram\",\n \"endproperty\",\n \"endspecify\",\n \"endsequence\",\n \"endtable\",\n \"endtask\",\n \"enum\",\n \"event\",\n \"eventually\",\n \"expect\",\n \"export\",\n \"extends\",\n \"extern\",\n \"final\",\n \"first_match\",\n \"for\",\n \"force\",\n \"foreach\",\n \"forever\",\n \"fork\",\n \"forkjoin\",\n \"function\",\n \"generate|5\",\n \"genvar\",\n \"global\",\n \"highz0\",\n \"highz1\",\n \"if\",\n \"iff\",\n \"ifnone\",\n \"ignore_bins\",\n \"illegal_bins\",\n \"implements\",\n \"implies\",\n \"import\",\n \"incdir\",\n \"include\",\n \"initial\",\n \"inout\",\n \"input\",\n \"inside\",\n \"instance\",\n \"int\",\n \"integer\",\n \"interconnect\",\n \"interface\",\n \"intersect\",\n \"join\",\n \"join_any\",\n \"join_none\",\n \"large\",\n \"let\",\n \"liblist\",\n \"library\",\n \"local\",\n \"localparam\",\n \"logic\",\n \"longint\",\n \"macromodule\",\n \"matches\",\n \"medium\",\n \"modport\",\n \"module\",\n \"nand\",\n \"negedge\",\n \"nettype\",\n \"new\",\n \"nexttime\",\n \"nmos\",\n \"nor\",\n \"noshowcancelled\",\n \"not\",\n \"notif0\",\n \"notif1\",\n \"or\",\n \"output\",\n \"package\",\n \"packed\",\n \"parameter\",\n \"pmos\",\n \"posedge\",\n \"primitive\",\n \"priority\",\n \"program\",\n \"property\",\n \"protected\",\n \"pull0\",\n \"pull1\",\n \"pulldown\",\n \"pullup\",\n \"pulsestyle_ondetect\",\n \"pulsestyle_onevent\",\n \"pure\",\n \"rand\",\n \"randc\",\n \"randcase\",\n \"randsequence\",\n \"rcmos\",\n \"real\",\n \"realtime\",\n \"ref\",\n \"reg\",\n \"reject_on\",\n \"release\",\n \"repeat\",\n \"restrict\",\n \"return\",\n \"rnmos\",\n \"rpmos\",\n \"rtran\",\n \"rtranif0\",\n \"rtranif1\",\n \"s_always\",\n \"s_eventually\",\n \"s_nexttime\",\n \"s_until\",\n \"s_until_with\",\n \"scalared\",\n \"sequence\",\n \"shortint\",\n \"shortreal\",\n \"showcancelled\",\n \"signed\",\n \"small\",\n \"soft\",\n \"solve\",\n \"specify\",\n \"specparam\",\n \"static\",\n \"string\",\n \"strong\",\n \"strong0\",\n \"strong1\",\n \"struct\",\n \"super\",\n \"supply0\",\n \"supply1\",\n \"sync_accept_on\",\n \"sync_reject_on\",\n \"table\",\n \"tagged\",\n \"task\",\n \"this\",\n \"throughout\",\n \"time\",\n \"timeprecision\",\n \"timeunit\",\n \"tran\",\n \"tranif0\",\n \"tranif1\",\n \"tri\",\n \"tri0\",\n \"tri1\",\n \"triand\",\n \"trior\",\n \"trireg\",\n \"type\",\n \"typedef\",\n \"union\",\n \"unique\",\n \"unique0\",\n \"unsigned\",\n \"until\",\n \"until_with\",\n \"untyped\",\n \"use\",\n \"uwire\",\n \"var\",\n \"vectored\",\n \"virtual\",\n \"void\",\n \"wait\",\n \"wait_order\",\n \"wand\",\n \"weak\",\n \"weak0\",\n \"weak1\",\n \"while\",\n \"wildcard\",\n \"wire\",\n \"with\",\n \"within\",\n \"wor\",\n \"xnor\",\n \"xor\"\n ],\n literal: [ 'null' ],\n built_in: [\n \"$finish\",\n \"$stop\",\n \"$exit\",\n \"$fatal\",\n \"$error\",\n \"$warning\",\n \"$info\",\n \"$realtime\",\n \"$time\",\n \"$printtimescale\",\n \"$bitstoreal\",\n \"$bitstoshortreal\",\n \"$itor\",\n \"$signed\",\n \"$cast\",\n \"$bits\",\n \"$stime\",\n \"$timeformat\",\n \"$realtobits\",\n \"$shortrealtobits\",\n \"$rtoi\",\n \"$unsigned\",\n \"$asserton\",\n \"$assertkill\",\n \"$assertpasson\",\n \"$assertfailon\",\n \"$assertnonvacuouson\",\n \"$assertoff\",\n \"$assertcontrol\",\n \"$assertpassoff\",\n \"$assertfailoff\",\n \"$assertvacuousoff\",\n \"$isunbounded\",\n \"$sampled\",\n \"$fell\",\n \"$changed\",\n \"$past_gclk\",\n \"$fell_gclk\",\n \"$changed_gclk\",\n \"$rising_gclk\",\n \"$steady_gclk\",\n \"$coverage_control\",\n \"$coverage_get\",\n \"$coverage_save\",\n \"$set_coverage_db_name\",\n \"$rose\",\n \"$stable\",\n \"$past\",\n \"$rose_gclk\",\n \"$stable_gclk\",\n \"$future_gclk\",\n \"$falling_gclk\",\n \"$changing_gclk\",\n \"$display\",\n \"$coverage_get_max\",\n \"$coverage_merge\",\n \"$get_coverage\",\n \"$load_coverage_db\",\n \"$typename\",\n \"$unpacked_dimensions\",\n \"$left\",\n \"$low\",\n \"$increment\",\n \"$clog2\",\n \"$ln\",\n \"$log10\",\n \"$exp\",\n \"$sqrt\",\n \"$pow\",\n \"$floor\",\n \"$ceil\",\n \"$sin\",\n \"$cos\",\n \"$tan\",\n \"$countbits\",\n \"$onehot\",\n \"$isunknown\",\n \"$fatal\",\n \"$warning\",\n \"$dimensions\",\n \"$right\",\n \"$high\",\n \"$size\",\n \"$asin\",\n \"$acos\",\n \"$atan\",\n \"$atan2\",\n \"$hypot\",\n \"$sinh\",\n \"$cosh\",\n \"$tanh\",\n \"$asinh\",\n \"$acosh\",\n \"$atanh\",\n \"$countones\",\n \"$onehot0\",\n \"$error\",\n \"$info\",\n \"$random\",\n \"$dist_chi_square\",\n \"$dist_erlang\",\n \"$dist_exponential\",\n \"$dist_normal\",\n \"$dist_poisson\",\n \"$dist_t\",\n \"$dist_uniform\",\n \"$q_initialize\",\n \"$q_remove\",\n \"$q_exam\",\n \"$async$and$array\",\n \"$async$nand$array\",\n \"$async$or$array\",\n \"$async$nor$array\",\n \"$sync$and$array\",\n \"$sync$nand$array\",\n \"$sync$or$array\",\n \"$sync$nor$array\",\n \"$q_add\",\n \"$q_full\",\n \"$psprintf\",\n \"$async$and$plane\",\n \"$async$nand$plane\",\n \"$async$or$plane\",\n \"$async$nor$plane\",\n \"$sync$and$plane\",\n \"$sync$nand$plane\",\n \"$sync$or$plane\",\n \"$sync$nor$plane\",\n \"$system\",\n \"$display\",\n \"$displayb\",\n \"$displayh\",\n \"$displayo\",\n \"$strobe\",\n \"$strobeb\",\n \"$strobeh\",\n \"$strobeo\",\n \"$write\",\n \"$readmemb\",\n \"$readmemh\",\n \"$writememh\",\n \"$value$plusargs\",\n \"$dumpvars\",\n \"$dumpon\",\n \"$dumplimit\",\n \"$dumpports\",\n \"$dumpportson\",\n \"$dumpportslimit\",\n \"$writeb\",\n \"$writeh\",\n \"$writeo\",\n \"$monitor\",\n \"$monitorb\",\n \"$monitorh\",\n \"$monitoro\",\n \"$writememb\",\n \"$dumpfile\",\n \"$dumpoff\",\n \"$dumpall\",\n \"$dumpflush\",\n \"$dumpportsoff\",\n \"$dumpportsall\",\n \"$dumpportsflush\",\n \"$fclose\",\n \"$fdisplay\",\n \"$fdisplayb\",\n \"$fdisplayh\",\n \"$fdisplayo\",\n \"$fstrobe\",\n \"$fstrobeb\",\n \"$fstrobeh\",\n \"$fstrobeo\",\n \"$swrite\",\n \"$swriteb\",\n \"$swriteh\",\n \"$swriteo\",\n \"$fscanf\",\n \"$fread\",\n \"$fseek\",\n \"$fflush\",\n \"$feof\",\n \"$fopen\",\n \"$fwrite\",\n \"$fwriteb\",\n \"$fwriteh\",\n \"$fwriteo\",\n \"$fmonitor\",\n \"$fmonitorb\",\n \"$fmonitorh\",\n \"$fmonitoro\",\n \"$sformat\",\n \"$sformatf\",\n \"$fgetc\",\n \"$ungetc\",\n \"$fgets\",\n \"$sscanf\",\n \"$rewind\",\n \"$ftell\",\n \"$ferror\"\n ]\n };\n const BUILT_IN_CONSTANTS = [\n \"__FILE__\",\n \"__LINE__\"\n ];\n const DIRECTIVES = [\n \"begin_keywords\",\n \"celldefine\",\n \"default_nettype\",\n \"default_decay_time\",\n \"default_trireg_strength\",\n \"define\",\n \"delay_mode_distributed\",\n \"delay_mode_path\",\n \"delay_mode_unit\",\n \"delay_mode_zero\",\n \"else\",\n \"elsif\",\n \"end_keywords\",\n \"endcelldefine\",\n \"endif\",\n \"ifdef\",\n \"ifndef\",\n \"include\",\n \"line\",\n \"nounconnected_drive\",\n \"pragma\",\n \"resetall\",\n \"timescale\",\n \"unconnected_drive\",\n \"undef\",\n \"undefineall\"\n ];\n\n return {\n name: 'Verilog',\n aliases: [\n 'v',\n 'sv',\n 'svh'\n ],\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n scope: 'number',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: /\\b((\\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/\n },\n {\n begin: /\\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/\n },\n { // decimal\n begin: /\\b[0-9][0-9_]*/,\n relevance: 0\n }\n ]\n },\n /* parameters to instances */\n {\n scope: 'variable',\n variants: [\n {\n begin: '#\\\\((?!parameter).+\\\\)'\n },\n {\n begin: '\\\\.\\\\w+',\n relevance: 0\n }\n ]\n },\n {\n scope: 'variable.constant',\n match: regex.concat(/`/, regex.either(...BUILT_IN_CONSTANTS)),\n },\n {\n scope: 'meta',\n begin: regex.concat(/`/, regex.either(...DIRECTIVES)),\n end: /$|\\/\\/|\\/\\*/,\n returnEnd: true,\n keywords: DIRECTIVES\n }\n ]\n };\n}\n\nmodule.exports = verilog;\n","/*\nLanguage: VHDL\nAuthor: Igor Kalnitsky \nContributors: Daniel C.K. Kho , Guillaume Savaton \nDescription: VHDL is a hardware description language used in electronic design automation to describe digital and mixed-signal systems.\nWebsite: https://en.wikipedia.org/wiki/VHDL\n*/\n\nfunction vhdl(hljs) {\n // Regular expression for VHDL numeric literals.\n\n // Decimal literal:\n const INTEGER_RE = '\\\\d(_|\\\\d)*';\n const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n // Based literal:\n const BASED_INTEGER_RE = '\\\\w+';\n const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n const KEYWORDS = [\n \"abs\",\n \"access\",\n \"after\",\n \"alias\",\n \"all\",\n \"and\",\n \"architecture\",\n \"array\",\n \"assert\",\n \"assume\",\n \"assume_guarantee\",\n \"attribute\",\n \"begin\",\n \"block\",\n \"body\",\n \"buffer\",\n \"bus\",\n \"case\",\n \"component\",\n \"configuration\",\n \"constant\",\n \"context\",\n \"cover\",\n \"disconnect\",\n \"downto\",\n \"default\",\n \"else\",\n \"elsif\",\n \"end\",\n \"entity\",\n \"exit\",\n \"fairness\",\n \"file\",\n \"for\",\n \"force\",\n \"function\",\n \"generate\",\n \"generic\",\n \"group\",\n \"guarded\",\n \"if\",\n \"impure\",\n \"in\",\n \"inertial\",\n \"inout\",\n \"is\",\n \"label\",\n \"library\",\n \"linkage\",\n \"literal\",\n \"loop\",\n \"map\",\n \"mod\",\n \"nand\",\n \"new\",\n \"next\",\n \"nor\",\n \"not\",\n \"null\",\n \"of\",\n \"on\",\n \"open\",\n \"or\",\n \"others\",\n \"out\",\n \"package\",\n \"parameter\",\n \"port\",\n \"postponed\",\n \"procedure\",\n \"process\",\n \"property\",\n \"protected\",\n \"pure\",\n \"range\",\n \"record\",\n \"register\",\n \"reject\",\n \"release\",\n \"rem\",\n \"report\",\n \"restrict\",\n \"restrict_guarantee\",\n \"return\",\n \"rol\",\n \"ror\",\n \"select\",\n \"sequence\",\n \"severity\",\n \"shared\",\n \"signal\",\n \"sla\",\n \"sll\",\n \"sra\",\n \"srl\",\n \"strong\",\n \"subtype\",\n \"then\",\n \"to\",\n \"transport\",\n \"type\",\n \"unaffected\",\n \"units\",\n \"until\",\n \"use\",\n \"variable\",\n \"view\",\n \"vmode\",\n \"vprop\",\n \"vunit\",\n \"wait\",\n \"when\",\n \"while\",\n \"with\",\n \"xnor\",\n \"xor\"\n ];\n const BUILT_INS = [\n \"boolean\",\n \"bit\",\n \"character\",\n \"integer\",\n \"time\",\n \"delay_length\",\n \"natural\",\n \"positive\",\n \"string\",\n \"bit_vector\",\n \"file_open_kind\",\n \"file_open_status\",\n \"std_logic\",\n \"std_logic_vector\",\n \"unsigned\",\n \"signed\",\n \"boolean_vector\",\n \"integer_vector\",\n \"std_ulogic\",\n \"std_ulogic_vector\",\n \"unresolved_unsigned\",\n \"u_unsigned\",\n \"unresolved_signed\",\n \"u_signed\",\n \"real_vector\",\n \"time_vector\"\n ];\n const LITERALS = [\n // severity_level\n \"false\",\n \"true\",\n \"note\",\n \"warning\",\n \"error\",\n \"failure\",\n // textio\n \"line\",\n \"text\",\n \"side\",\n \"width\"\n ];\n\n return {\n name: 'VHDL',\n case_insensitive: true,\n keywords: {\n keyword: KEYWORDS,\n built_in: BUILT_INS,\n literal: LITERALS\n },\n illegal: /\\{/,\n contains: [\n hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting.\n hljs.COMMENT('--', '$'),\n hljs.QUOTE_STRING_MODE,\n {\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n },\n {\n className: 'string',\n begin: '\\'(U|X|0|1|Z|W|L|H|-)\\'',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n className: 'symbol',\n begin: '\\'[A-Za-z](_?[A-Za-z0-9])*',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n }\n ]\n };\n}\n\nmodule.exports = vhdl;\n","/*\nLanguage: Vim Script\nAuthor: Jun Yang \nDescription: full keyword and built-in from http://vimdoc.sourceforge.net/htmldoc/\nWebsite: https://www.vim.org\nCategory: scripting\n*/\n\nfunction vim(hljs) {\n return {\n name: 'Vim Script',\n keywords: {\n $pattern: /[!#@\\w]+/,\n keyword:\n // express version except: ! & * < = > !! # @ @@\n 'N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope ' +\n 'cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ' +\n 'ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 ' +\n 'profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor ' +\n 'so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew ' +\n 'tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ ' +\n // full version\n 'Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload ' +\n 'bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap ' +\n 'cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor ' +\n 'endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap ' +\n 'imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview ' +\n 'lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap ' +\n 'nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ' +\n 'ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding ' +\n 'scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace ' +\n 'startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious ' + 'trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew ' +\n 'vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank',\n built_in: // built in func\n 'synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv ' +\n 'complete_check add getwinposx getqflist getwinposy screencol ' +\n 'clearmatches empty extend getcmdpos mzeval garbagecollect setreg ' +\n 'ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable ' +\n 'shiftwidth max sinh isdirectory synID system inputrestore winline ' +\n 'atan visualmode inputlist tabpagewinnr round getregtype mapcheck ' +\n 'hasmapto histdel argidx findfile sha256 exists toupper getcmdline ' +\n 'taglist string getmatches bufnr strftime winwidth bufexists ' +\n 'strtrans tabpagebuflist setcmdpos remote_read printf setloclist ' +\n 'getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval ' +\n 'resolve libcallnr foldclosedend reverse filter has_key bufname ' +\n 'str2float strlen setline getcharmod setbufvar index searchpos ' +\n 'shellescape undofile foldclosed setqflist buflisted strchars str2nr ' +\n 'virtcol floor remove undotree remote_expr winheight gettabwinvar ' +\n 'reltime cursor tabpagenr finddir localtime acos getloclist search ' +\n 'tanh matchend rename gettabvar strdisplaywidth type abs py3eval ' +\n 'setwinvar tolower wildmenumode log10 spellsuggest bufloaded ' +\n 'synconcealed nextnonblank server2client complete settabwinvar ' +\n 'executable input wincol setmatches getftype hlID inputsave ' +\n 'searchpair or screenrow line settabvar histadd deepcopy strpart ' +\n 'remote_peek and eval getftime submatch screenchar winsaveview ' +\n 'matchadd mkdir screenattr getfontname libcall reltimestr getfsize ' +\n 'winnr invert pow getbufline byte2line soundfold repeat fnameescape ' +\n 'tagfiles sin strwidth spellbadword trunc maparg log lispindent ' +\n 'hostname setpos globpath remote_foreground getchar synIDattr ' +\n 'fnamemodify cscope_connection stridx winbufnr indent min ' +\n 'complete_add nr2char searchpairpos inputdialog values matchlist ' +\n 'items hlexists strridx browsedir expand fmod pathshorten line2byte ' +\n 'argc count getwinvar glob foldtextresult getreg foreground cosh ' +\n 'matchdelete has char2nr simplify histget searchdecl iconv ' +\n 'winrestcmd pumvisible writefile foldlevel haslocaldir keys cos ' +\n 'matchstr foldtext histnr tan tempname getcwd byteidx getbufvar ' +\n 'islocked escape eventhandler remote_send serverlist winrestview ' +\n 'synstack pyeval prevnonblank readfile cindent filereadable changenr ' +\n 'exp'\n },\n illegal: /;/,\n contains: [\n hljs.NUMBER_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n'\n },\n\n /*\n A double quote can start either a string or a line comment. Strings are\n ended before the end of a line by another double quote and can contain\n escaped double-quotes and post-escaped line breaks.\n\n Also, any double quote at the beginning of a line is a comment but we\n don't handle that properly at the moment: any double quote inside will\n turn them into a string. Handling it properly will require a smarter\n parser.\n */\n {\n className: 'string',\n begin: /\"(\\\\\"|\\n\\\\|[^\"\\n])*\"/\n },\n hljs.COMMENT('\"', '$'),\n\n {\n className: 'variable',\n begin: /[bwtglsav]:[\\w\\d_]+/\n },\n {\n begin: [\n /\\b(?:function|function!)/,\n /\\s+/,\n hljs.IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n },\n end: '$',\n relevance: 0,\n contains: [\n {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)'\n }\n ]\n },\n {\n className: 'symbol',\n begin: /<[\\w-]+>/\n }\n ]\n };\n}\n\nmodule.exports = vim;\n","/*\nLanguage: WebAssembly\nWebsite: https://webassembly.org\nDescription: Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.\nCategory: web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction wasm(hljs) {\n hljs.regex;\n const BLOCK_COMMENT = hljs.COMMENT(/\\(;/, /;\\)/);\n BLOCK_COMMENT.contains.push(\"self\");\n const LINE_COMMENT = hljs.COMMENT(/;;/, /$/);\n\n const KWS = [\n \"anyfunc\",\n \"block\",\n \"br\",\n \"br_if\",\n \"br_table\",\n \"call\",\n \"call_indirect\",\n \"data\",\n \"drop\",\n \"elem\",\n \"else\",\n \"end\",\n \"export\",\n \"func\",\n \"global.get\",\n \"global.set\",\n \"local.get\",\n \"local.set\",\n \"local.tee\",\n \"get_global\",\n \"get_local\",\n \"global\",\n \"if\",\n \"import\",\n \"local\",\n \"loop\",\n \"memory\",\n \"memory.grow\",\n \"memory.size\",\n \"module\",\n \"mut\",\n \"nop\",\n \"offset\",\n \"param\",\n \"result\",\n \"return\",\n \"select\",\n \"set_global\",\n \"set_local\",\n \"start\",\n \"table\",\n \"tee_local\",\n \"then\",\n \"type\",\n \"unreachable\"\n ];\n\n const FUNCTION_REFERENCE = {\n begin: [\n /(?:func|call|call_indirect)/,\n /\\s+/,\n /\\$[^\\s)]+/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n }\n };\n\n const ARGUMENT = {\n className: \"variable\",\n begin: /\\$[\\w_]+/\n };\n\n const PARENS = {\n match: /(\\((?!;)|\\))+/,\n className: \"punctuation\",\n relevance: 0\n };\n\n const NUMBER = {\n className: \"number\",\n relevance: 0,\n // borrowed from Prism, TODO: split out into variants\n match: /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/\n };\n\n const TYPE = {\n // look-ahead prevents us from gobbling up opcodes\n match: /(i32|i64|f32|f64)(?!\\.)/,\n className: \"type\"\n };\n\n const MATH_OPERATIONS = {\n className: \"keyword\",\n // borrowed from Prism, TODO: split out into variants\n match: /\\b(f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))\\b/\n };\n\n const OFFSET_ALIGN = {\n match: [\n /(?:offset|align)/,\n /\\s*/,\n /=/\n ],\n className: {\n 1: \"keyword\",\n 3: \"operator\"\n }\n };\n\n return {\n name: 'WebAssembly',\n keywords: {\n $pattern: /[\\w.]+/,\n keyword: KWS\n },\n contains: [\n LINE_COMMENT,\n BLOCK_COMMENT,\n OFFSET_ALIGN,\n ARGUMENT,\n PARENS,\n FUNCTION_REFERENCE,\n hljs.QUOTE_STRING_MODE,\n TYPE,\n MATH_OPERATIONS,\n NUMBER\n ]\n };\n}\n\nmodule.exports = wasm;\n","/*\nLanguage: Wren\nDescription: Think Smalltalk in a Lua-sized package with a dash of Erlang and wrapped up in a familiar, modern syntax.\nCategory: scripting\nAuthor: @joshgoebel\nMaintainer: @joshgoebel\nWebsite: https://wren.io/\n*/\n\n/** @type LanguageFn */\nfunction wren(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[a-zA-Z]\\w*/;\n const KEYWORDS = [\n \"as\",\n \"break\",\n \"class\",\n \"construct\",\n \"continue\",\n \"else\",\n \"for\",\n \"foreign\",\n \"if\",\n \"import\",\n \"in\",\n \"is\",\n \"return\",\n \"static\",\n \"var\",\n \"while\"\n ];\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\"\n ];\n const LANGUAGE_VARS = [\n \"this\",\n \"super\"\n ];\n const CORE_CLASSES = [\n \"Bool\",\n \"Class\",\n \"Fiber\",\n \"Fn\",\n \"List\",\n \"Map\",\n \"Null\",\n \"Num\",\n \"Object\",\n \"Range\",\n \"Sequence\",\n \"String\",\n \"System\"\n ];\n const OPERATORS = [\n \"-\",\n \"~\",\n /\\*/,\n \"%\",\n /\\.\\.\\./,\n /\\.\\./,\n /\\+/,\n \"<<\", \">>\",\n \">=\", \"<=\",\n \"<\", \">\",\n /\\^/,\n /!=/,\n /!/,\n /\\bis\\b/,\n \"==\",\n \"&&\",\n \"&\",\n /\\|\\|/,\n /\\|/,\n /\\?:/,\n \"=\"\n ];\n const FUNCTION = {\n relevance: 0,\n match: regex.concat(/\\b(?!(if|while|for|else|super)\\b)/, IDENT_RE, /(?=\\s*[({])/),\n className: \"title.function\"\n };\n const FUNCTION_DEFINITION = {\n match: regex.concat(\n regex.either(\n regex.concat(/\\b(?!(if|while|for|else|super)\\b)/, IDENT_RE),\n regex.either(...OPERATORS)\n ),\n /(?=\\s*\\([^)]+\\)\\s*\\{)/),\n className: \"title.function\",\n starts: {\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n {\n relevance: 0,\n scope: \"params\",\n match: IDENT_RE\n }\n ]\n }\n ]\n }\n };\n const CLASS_DEFINITION = {\n variants: [\n {\n match: [\n /class\\s+/,\n IDENT_RE,\n /\\s+is\\s+/,\n IDENT_RE\n ]\n },\n {\n match: [\n /class\\s+/,\n IDENT_RE\n ]\n }\n ],\n scope: {\n 2: \"title.class\",\n 4: \"title.class.inherited\"\n },\n keywords: KEYWORDS\n };\n\n const OPERATOR = {\n relevance: 0,\n match: regex.either(...OPERATORS),\n className: \"operator\"\n };\n\n const TRIPLE_STRING = {\n className: \"string\",\n begin: /\"\"\"/,\n end: /\"\"\"/\n };\n\n const PROPERTY = {\n className: \"property\",\n begin: regex.concat(/\\./, regex.lookahead(IDENT_RE)),\n end: IDENT_RE,\n excludeBegin: true,\n relevance: 0\n };\n\n const FIELD = {\n relevance: 0,\n match: regex.concat(/\\b_/, IDENT_RE),\n scope: \"variable\"\n };\n\n // CamelCase\n const CLASS_REFERENCE = {\n relevance: 0,\n match: /\\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,\n scope: \"title.class\",\n keywords: {\n _: CORE_CLASSES\n }\n };\n\n // TODO: add custom number modes\n const NUMBER = hljs.C_NUMBER_MODE;\n\n const SETTER = {\n match: [\n IDENT_RE, /\\s*/,\n /=/, /\\s*/,\n /\\(/, IDENT_RE, /\\)\\s*\\{/\n ],\n scope: {\n 1: \"title.function\",\n 3: \"operator\",\n 6: \"params\"\n }\n };\n\n const COMMENT_DOCS = hljs.COMMENT(\n /\\/\\*\\*/,\n /\\*\\//,\n {\n contains: [\n {\n match: /@[a-z]+/,\n scope: \"doctag\"\n },\n \"self\"\n ]\n }\n );\n const SUBST = {\n scope: \"subst\",\n begin: /%\\(/,\n end: /\\)/,\n contains: [\n NUMBER,\n CLASS_REFERENCE,\n FUNCTION,\n FIELD,\n OPERATOR\n ]\n };\n const STRING = {\n scope: \"string\",\n begin: /\"/,\n end: /\"/,\n contains: [\n SUBST,\n {\n scope: \"char.escape\",\n variants: [\n { match: /\\\\\\\\|\\\\[\"0%abefnrtv]/ },\n { match: /\\\\x[0-9A-F]{2}/ },\n { match: /\\\\u[0-9A-F]{4}/ },\n { match: /\\\\U[0-9A-F]{8}/ }\n ]\n }\n ]\n };\n SUBST.contains.push(STRING);\n\n const ALL_KWS = [...KEYWORDS, ...LANGUAGE_VARS, ...LITERALS];\n const VARIABLE = {\n relevance: 0,\n match: regex.concat(\n \"\\\\b(?!\",\n ALL_KWS.join(\"|\"),\n \"\\\\b)\",\n /[a-zA-Z_]\\w*(?:[?!]|\\b)/\n ),\n className: \"variable\"\n };\n\n // TODO: reconsider this in the future\n const ATTRIBUTE = {\n // scope: \"meta\",\n scope: \"comment\",\n variants: [\n {\n begin: [/#!?/, /[A-Za-z_]+(?=\\()/],\n beginScope: {\n // 2: \"attr\"\n },\n keywords: {\n literal: LITERALS\n },\n contains: [\n // NUMBER,\n // VARIABLE\n ],\n end: /\\)/\n },\n {\n begin: [/#!?/, /[A-Za-z_]+/],\n beginScope: {\n // 2: \"attr\"\n },\n end: /$/\n }\n ]\n };\n\n return {\n name: \"Wren\",\n keywords: {\n keyword: KEYWORDS,\n \"variable.language\": LANGUAGE_VARS,\n literal: LITERALS\n },\n contains: [\n ATTRIBUTE,\n NUMBER,\n STRING,\n TRIPLE_STRING,\n COMMENT_DOCS,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n CLASS_REFERENCE,\n CLASS_DEFINITION,\n SETTER,\n FUNCTION_DEFINITION,\n FUNCTION,\n OPERATOR,\n FIELD,\n PROPERTY,\n VARIABLE\n ]\n };\n}\n\nmodule.exports = wren;\n"],"names":["module","exports","hljs","name","contains","className","begin","end","relevance","case_insensitive","HASH_COMMENT_MODE","variants","subLanguage","regex","TCL_IDENT","NUMBER","BINARY_NUMBER_MODE","C_NUMBER_MODE","aliases","keywords","COMMENT","beginKeywords","excludeEnd","endsWithParent","concat","optional","BACKSLASH_ESCAPE","inherit","QUOTE_STRING_MODE","illegal","TYPES","keyword","type","literal","NUMBER_MODE","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","TITLE_MODE","starts","TPID","TPLABEL","FUNCTION_NAMES","TAG_NAMES","map","t","STRING","scope","match","PARAMS","excludeBegin","FUNCTIONS","join","FILTER","beginScope","tagNamed","tagnames","endScope","either","TAG","CUSTOM_TAG","IDENT_RE","KEYWORDS","LITERALS","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","BUILT_INS","javascript","IDENT_RE$1","FRAGMENT","XML_TAG","isTrulyOpeningTag","response","afterMatchIndex","length","index","nextChar","input","ignoreMatch","m","after","tag","slice","indexOf","hasClosingTag","substr","KEYWORDS$1","$pattern","built_in","frac","decimalInteger","SUBST","HTML_TEMPLATE","returnEnd","CSS_TEMPLATE","TEMPLATE_STRING","endsParent","SUBST_INTERNALS","APOS_STRING_MODE","SUBST_AND_COMMENTS","PARAMS_CONTAINS","CLASS_OR_EXTENDS","CLASS_REFERENCE","_","FUNCTION_DEFINITION","label","FUNCTION_CALL","list","lookahead","PROPERTY_ACCESS","GETTER_OR_SETTER","FUNC_LEAD_IN_RE","UNDERSCORE_IDENT_RE","FUNCTION_VARIABLE","SHEBANG","binary","RE_STARTERS_RE","REGEXP_MODE","returnBegin","skip","tsLanguage","NAMESPACE","INTERFACE","DECORATOR","swapMode","mode","replacement","indx","findIndex","Error","splice","Object","assign","push","find","UNDERSCORE_TITLE_MODE","MM_DD_YYYY","YYYY_MM_DD","TIME_12H","TIME_24H","DATE","DOC_COMMENT","classNameAliases","BUILT_IN_FUNCTIONS","DIRECTIVES","BLOCK_COMMENT","LANGUAGE_VARS","OPERATORS","FUNCTION","CLASS_DEFINITION","OPERATOR","PROPERTY","FIELD","SETTER","COMMENT_DOCS","ALL_KWS","VARIABLE"],"sourceRoot":""} \ No newline at end of file diff --git a/js/122.js b/js/122.js new file mode 100644 index 00000000..960c954f --- /dev/null +++ b/js/122.js @@ -0,0 +1,2 @@ +(globalThis.webpackChunksakurairo_scripts=globalThis.webpackChunksakurairo_scripts||[]).push([[122],{7175:e=>{e.exports=function(e){var t="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",n="далее возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",s="null истина ложь неопределено",r=e.inherit(e.NUMBER_MODE),a={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},i={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},o=e.inherit(e.C_LINE_COMMENT_MODE);return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:t,keyword:n,built_in:"разделительстраниц разделительстрок символтабуляции ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",class:"webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц отображениевремениэлементовпланировщика типфайлаформатированногодокумента обходрезультатазапроса типзаписизапроса видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов доступкфайлу режимдиалогавыборафайла режимоткрытияфайла типизмеренияпостроителязапроса видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",type:"comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",literal:s},contains:[{className:"meta",begin:"#|&",end:"$",keywords:{$pattern:t,keyword:n+"загрузитьизфайла вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент "},contains:[o]},{className:"function",variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:t,keyword:"знач",literal:s},contains:[r,a,i]},o]},e.inherit(e.TITLE_MODE,{begin:t})]},o,{className:"symbol",begin:"~",end:";|:",excludeEnd:!0},r,a,i]}}},5711:e=>{e.exports=function(e){const t=e.regex,n=e.COMMENT(/;/,/$/);return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],contains:[{scope:"operator",match:/=\/?/},{scope:"attribute",match:t.concat(/^[a-zA-Z][a-zA-Z0-9-]*/,/(?=\s*=)/)},n,{scope:"symbol",match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},{scope:"symbol",match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},{scope:"symbol",match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},{scope:"symbol",match:/%[si](?=".*")/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},5542:e=>{e.exports=function(e){const t=e.regex,n=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:t.concat(/"/,t.either(...n)),end:/"/,keywords:n,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}},7380:e=>{e.exports=function(e){const t=e.regex,n=/[a-zA-Z_$][a-zA-Z0-9_$]*/,s=t.concat(n,t.concat("(\\.",n,")*")),r={className:"rest_arg",begin:/[.]{3}/,end:n,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"],literal:["true","false","null","undefined"]},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{match:[/\bpackage/,/\s+/,s],className:{1:"keyword",3:"title.class"}},{match:[/\b(?:class|interface|extends|implements)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{className:"title.function"}),{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r]},{begin:t.concat(/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},e.METHOD_GUARD],illegal:/#/}}},2497:e=>{e.exports=function(e){const t="[A-Za-z](_?[A-Za-z0-9.])*",n="[]\\{\\}%#'\"",s=e.COMMENT("--","$"),r={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:n,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:t,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"],literal:["True","False"]},contains:[s,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)",relevance:0},{className:"symbol",begin:"'"+t},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:n},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[s,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:n},r,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:n}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:n},r]}}},5030:e=>{e.exports=function(e){const t={className:"built_in",begin:"\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)"},n={className:"symbol",begin:"[a-zA-Z0-9_]+@"},s={className:"keyword",begin:"<",end:">",contains:[t,n]};return t.contains=[s],n.contains=[s],{name:"AngelScript",aliases:["asc"],keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"],illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},t,n,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}},4405:e=>{e.exports=function(e){const t={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[t,{className:"number",begin:/:\d{1,5}/},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]},t,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}},3927:e=>{e.exports=function(e){const t=e.regex,n=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),s={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,n]},r=e.COMMENT(/--/,/$/),a=[r,e.COMMENT(/\(\*/,/\*\)/,{contains:["self",r]}),e.HASH_COMMENT_MODE];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[n,e.C_NUMBER_MODE,{className:"built_in",begin:t.concat(/\b/,t.either(/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:t.concat(/\b/,t.either(/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,s]},...a],illegal:/\/\/|->|=>|\[\[/}}},7758:e=>{e.exports=function(e){const t="[A-Za-z_][0-9A-Za-z_]*",n={keyword:["if","for","while","var","new","function","do","return","void","else","break"],literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"],built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","Cos","Count","Crosses","Cut","Date","DateAdd","DateDiff","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipName","Filter","Find","First","Floor","FromCharCode","FromCodePoint","FromJSON","GdbVersion","Generalize","Geometry","GetFeatureSet","GetUser","GroupBy","Guid","Hash","HasKey","Hour","IIf","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","ISOMonth","ISOWeek","ISOWeekday","ISOYear","IsSelfIntersecting","IsSimple","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NextSequenceValue","None","Now","Number","Offset|0","OrderBy","Overlaps","Point","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Timestamp","ToCharCode","ToCodePoint","Today","ToHex","ToLocal","Top|0","Touches","ToUTC","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When","Within","Year"]},s={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},r={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},a={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,r]};r.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,s,e.REGEXP_MODE];const i=r.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"symbol",begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+"},s,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:i}]}]}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:i}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}},8730:e=>{e.exports=function(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",a="(?!struct)(decltype\\(auto\\)|"+t.optional(r)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(r)+e.IDENT_RE,relevance:0},m=t.optional(r)+e.IDENT_RE+"\\s*\\(",u={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},b={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},g=[b,c,i,n,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:g.concat([{begin:/\(/,end:/\)/,keywords:u,contains:g.concat(["self"]),relevance:0}]),relevance:0},E={className:"function",begin:"("+a+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:u,relevance:0},{begin:m,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,o,l,i,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,o,l,i]}]},i,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:u},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}(e),s=n.keywords;return s.type=[...s.type,...t.type],s.literal=[...s.literal,...t.literal],s.built_in=[...s.built_in,...t.built_in],s._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}},7787:e=>{e.exports=function(e){const t={variants:[e.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),e.COMMENT("[;@]","$",{relevance:0}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},t,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}},452:e=>{e.exports=function(e){const t=e.regex,n=[{className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong",begin:t.concat(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),relevance:0},{className:"strong",begin:/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{className:"strong",begin:/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],s=[{className:"emphasis",begin:/_{2}([^\n]+?)_{2}/},{className:"emphasis",begin:t.concat(/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/),relevance:0},{className:"emphasis",begin:/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{className:"emphasis",begin:/_[^\s]([^\n]+\n)+([^\n]+)_/},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0}];return{name:"AsciiDoc",aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,6})[ \t].+?([ \t]\\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"},{className:"symbol",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{begin:/\\[*_`]/},{begin:/\\\\\*{2}[^\n]*?\*{2}/},{begin:/\\\\_{2}[^\n]*_{2}/},{begin:/\\\\`{2}[^\n]*`{2}/},{begin:/[:;}][*_`](?![*_`])/},...n,...s,{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:/`{2}/,end:/(\n{2}|`{2})/},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}},6813:e=>{e.exports=function(e){const t=e.regex,n=["false","synchronized","int","abstract","float","private","char","boolean","static","null","if","const","for","true","while","long","throw","strictfp","finally","protected","import","native","final","return","void","enum","else","extends","implements","break","transient","new","catch","instanceof","byte","super","volatile","case","assert","short","package","default","double","public","try","this","switch","continue","throws","privileged","aspectOf","adviceexecution","proceed","cflowbelow","cflow","initialization","preinitialization","staticinitialization","withincode","target","within","execution","getWithinTypeName","handler","thisJoinPoint","thisJoinPointStaticPart","thisEnclosingJoinPointStaticPart","declare","parents","warning","error","soft","precedence","thisAspectInstance"],s=["get","set","args","call"];return{name:"AspectJ",keywords:n,illegal:/<\/|#/,contains:[e.COMMENT(/\/\*\*/,/\*\//,{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:/@[A-Za-z]+/}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:n.concat(s),excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:n,illegal:/["\[\]]/,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),keywords:n.concat(s),relevance:0},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:n,excludeEnd:!0,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:/@[A-Za-z]+/}]}}},8260:e=>{e.exports=function(e){const t={begin:"`[\\s\\S]"};return{name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}},5767:e=>{e.exports=function(e){const t={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={begin:"\\$[A-z0-9_]+"},s={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"AutoIt",case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"ByRef Case Const ContinueCase ContinueLoop Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive",literal:"True False And Null Not Or Default"},contains:[t,n,s,r,{className:"meta",begin:"#",end:"$",keywords:{keyword:["EndRegion","forcedef","forceref","ignorefunc","include","include-once","NoTrayIcon","OnAutoItStartRegister","pragma","Region","RequireAdmin","Tidy_Off","Tidy_On","Tidy_Parameters"]},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{keyword:"include"},end:"$",contains:[s,{className:"string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},s,t]},{className:"symbol",begin:"@[A-z0-9_]+"},{beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{className:"title.function"}),{className:"params",begin:"\\(",end:"\\)",contains:[n,s,r]}]}]}}},7008:e=>{e.exports=function(e){return{name:"AVR Assembly",case_insensitive:!0,keywords:{$pattern:"\\.?"+e.IDENT_RE,keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),e.C_NUMBER_MODE,e.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol",begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{className:"subst",begin:"@[0-9]+"}]}}},1237:e=>{e.exports=function(e){return{name:"Awk",keywords:{keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10"},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}},831:e=>{e.exports=function(e){const t=e.UNDERSCORE_IDENT_RE,n={keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"],built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"],literal:["default","false","null","true"]},s={variants:[{match:[/(class|interface)\s+/,t,/\s+(extends|implements)\s+/,t]},{match:[/class\s+/,t]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:n};return{name:"X++",aliases:["x++"],keywords:n,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},s]}}},4690:e=>{e.exports=function(e){const t=e.regex,n={},s={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},s]});const r={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,r]};r.contains.push(i);const o={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},l=e.SHEBANG({binary:`(${["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"].join("|")})`,relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,a,{match:/(\/[a-z._-]+)+/},i,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},n]}}},650:e=>{e.exports=function(e){return{name:"BASIC",case_insensitive:!0,illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keyword:["ABS","ASC","AND","ATN","AUTO|0","BEEP","BLOAD|10","BSAVE|10","CALL","CALLS","CDBL","CHAIN","CHDIR","CHR$|10","CINT","CIRCLE","CLEAR","CLOSE","CLS","COLOR","COM","COMMON","CONT","COS","CSNG","CSRLIN","CVD","CVI","CVS","DATA","DATE$","DEFDBL","DEFINT","DEFSNG","DEFSTR","DEF|0","SEG","USR","DELETE","DIM","DRAW","EDIT","END","ENVIRON","ENVIRON$","EOF","EQV","ERASE","ERDEV","ERDEV$","ERL","ERR","ERROR","EXP","FIELD","FILES","FIX","FOR|0","FRE","GET","GOSUB|10","GOTO","HEX$","IF","THEN","ELSE|0","INKEY$","INP","INPUT","INPUT#","INPUT$","INSTR","IMP","INT","IOCTL","IOCTL$","KEY","ON","OFF","LIST","KILL","LEFT$","LEN","LET","LINE","LLIST","LOAD","LOC","LOCATE","LOF","LOG","LPRINT","USING","LSET","MERGE","MID$","MKDIR","MKD$","MKI$","MKS$","MOD","NAME","NEW","NEXT","NOISE","NOT","OCT$","ON","OR","PEN","PLAY","STRIG","OPEN","OPTION","BASE","OUT","PAINT","PALETTE","PCOPY","PEEK","PMAP","POINT","POKE","POS","PRINT","PRINT]","PSET","PRESET","PUT","RANDOMIZE","READ","REM","RENUM","RESET|0","RESTORE","RESUME","RETURN|0","RIGHT$","RMDIR","RND","RSET","RUN","SAVE","SCREEN","SGN","SHELL","SIN","SOUND","SPACE$","SPC","SQR","STEP","STICK","STOP","STR$","STRING$","SWAP","SYSTEM","TAB","TAN","TIME$","TIMER","TROFF","TRON","TO","USR","VAL","VARPTR","VARPTR$","VIEW","WAIT","WHILE","WEND","WIDTH","WINDOW","WRITE","XOR"]},contains:[e.QUOTE_STRING_MODE,e.COMMENT("REM","$",{relevance:10}),e.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ",relevance:10},{className:"number",begin:"\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}}},9609:e=>{e.exports=function(e){return{name:"Backus–Naur Form",contains:[{className:"attribute",begin://},{begin:/::=/,end:/$/,contains:[{begin://},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]}}},5677:e=>{e.exports=function(e){const t={className:"literal",begin:/[+-]/,relevance:0};return{name:"Brainfuck",aliases:["bf"],contains:[e.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/(?:\+\+|--)/,contains:[t]},t]}}}}]); +//# sourceMappingURL=122.js.map \ No newline at end of file diff --git a/js/122.js.map b/js/122.js.map new file mode 100644 index 00000000..27ef1a14 --- /dev/null +++ b/js/122.js.map @@ -0,0 +1 @@ +{"version":3,"file":"122.js","mappings":"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ACA,OACA,MACA,SACA,UACA,MACA,MACA,MACA,eACA,QACA,WACA,aACA,KACA,SACA,UACA,UACA,OACA,QACA,OACA,SACA,YACA,OACA,UACA,OACA,KACA,YACA,OACA,OACA,KACA,YACA,WACA,YACA,KACA,QACA,MACA,UACA,QACA,QACA,UACA,SACA,OACA,QACA,OACA,MACA,QACA,SACA,UACA,OACA,KACA,MACA,UACA,OAQEO,QAAS,CACP,OACA,UAGJjB,SAAU,CACRI,EAEA,CACEP,UAAW,SACXC,MAAO,IACPC,IAAK,IACLC,SAAU,CAAC,CACTF,MAAO,KACPiC,UAAW,KAIf,CAEElC,UAAW,SACXC,MAAO,OAET,CAEED,UAAW,SACXC,MArJY,8GAsJZiC,UAAW,GAEb,CAEElC,UAAW,SACXC,MAAO,IAAM4C,GAEf,CAEE7C,UAAW,QACXC,MAAO,8DACPC,IAAK,SACLS,SAAU,eACVN,cAAc,EACdC,YAAY,EACZsB,QAASkB,GAEX,CAGE7C,MAAO,yDACPC,IAAK,sCACLS,SAAU,uDAGVqC,aAAa,EACb7C,SACQ,CACEI,EACA,CAEEP,UAAW,QACXC,MAAO,4CACPC,IAAK,eACLG,cAAc,EACdC,YAAY,EACZsB,QAASkB,GAIXC,EACA,CAEE/C,UAAW,OACXC,MAAO,gBACPC,IAAK,aACLS,SAAU,SACVN,cAAc,EACdC,YAAY,EAEZiB,YAAY,EACZK,QAASkB,KAKvB,CAGE9C,UAAW,OACXC,MAAO,oBACPC,IAAK,OACLS,SAAU,OACVN,cAAc,EACduB,QAASkB,GAIXC,M,SC1EN1D,EAAOC,QAzKP,SAAqBC,GACnB,MAAM0D,EAAkB,CACtBjD,UAAW,WACXC,MAAO,2HAGHiD,EAAmB,CACvBlD,UAAW,SACXC,MAAO,kBAGHkD,EAAc,CAClBnD,UAAW,UACXC,MAAO,IACPC,IAAK,IACLC,SAAU,CACR8C,EACAC,IAwDJ,OApDAD,EAAgB9C,SAAW,CAAEgD,GAC7BD,EAAiB/C,SAAW,CAAEgD,GAmDvB,CACL1C,KAAM,cACN8B,QAAS,CAAE,OAEX5B,SArDe,CACf,MACA,OACA,QACA,WACA,QACA,OACA,SACA,KACA,OACA,OACA,SACA,YACA,KACA,OACA,KACA,MACA,MACA,MACA,QACA,KACA,WACA,MACA,WACA,QACA,UACA,SACA,QACA,YACA,QACA,SACA,WACA,WACA,OACA,UACA,UACA,OACA,QACA,SACA,OACA,YACA,aACA,MACA,QACA,YACA,WACA,YAUAiB,QAAS,uDAETzB,SAAU,CACR,CACEH,UAAW,SACXC,MAAO,IACPC,IAAK,IACL0B,QAAS,MACTzB,SAAU,CAAEZ,EAAK6D,kBACjBlB,UAAW,GAIb,CACElC,UAAW,SACXC,MAAO,MACPC,IAAK,OAGP,CACEF,UAAW,SACXC,MAAO,IACPC,IAAK,IACL0B,QAAS,MACTzB,SAAU,CAAEZ,EAAK6D,kBACjBlB,UAAW,GAGb3C,EAAKiB,oBACLjB,EAAKkD,qBAEL,CACEzC,UAAW,SACXC,MAAO,WACPC,IAAK,OAGP,CACEyC,cAAe,sBACfzC,IAAK,KACL0B,QAAS,UACTzB,SAAU,CACR,CACEH,UAAW,SACXC,MAAO,mBAKb,CACE0C,cAAe,QACfzC,IAAK,KACL0B,QAAS,UACTzB,SAAU,CACR,CACEH,UAAW,SACXC,MAAO,gBACPE,SAAU,CACR,CACEF,MAAO,WACPE,SAAU,CACR,CACEH,UAAW,SACXC,MAAO,uBASrBgD,EACAC,EAEA,CACElD,UAAW,UACXC,MAAO,wBAGT,CACED,UAAW,SACXkC,UAAW,EACXjC,MAAO,0F,SCrEfZ,EAAOC,QA3FP,SAAgBC,GACd,MAQM8D,EAAa,CACjBrD,UAAW,SACXC,MAAO,iDAMT,MAAO,CACLQ,KAAM,gBACN8B,QAAS,CAAE,cACX7B,kBAAkB,EAClBP,SAAU,CACRZ,EAAK+D,kBACL,CACEtD,UAAW,UACXC,MAAO,OACPC,IAAK,IACLC,SAAU,CACRkD,EAfY,CAClBrD,UAAW,SACXC,MAAO,YAiBDV,EAAKM,QAAQN,EAAKyC,kBAAmB,CAAEE,UAAW,MAGtD,CACElC,UAAW,YACXC,MAAO,MACPiC,UAAW,EAGXvB,SAAU,CACR4C,EAAG,CACD,QACA,OACA,QACA,SACA,cACA,gBACA,cACA,eACA,aACA,gBACA,aACA,UACA,SACA,SACA,aACA,eAGJC,OAAQ,CACNtD,IAAK,IACLgC,UAAW,EACXvB,SAAU,CAAES,QAAS,yBACrBjB,SAAU,CACR,CACEH,UAAW,OACXC,MAAO,OACPC,IAAK,OAEP,CACEF,UAAW,WACXC,MAAO,UACPC,IAAK,KACLC,SAAU,CACR,OA3EK,CACjBH,UAAW,SACXC,MAAO,aA6ECoD,EA3EK,CACbrD,UAAW,SACXC,MAAO,SA2ECV,EAAKyC,sBAKbJ,QAAS,Q,SCsDbvC,EAAOC,QA/IP,SAAqBC,GACnB,MAAMmC,EAAQnC,EAAKmC,MACb+B,EAASlE,EAAKM,QAClBN,EAAKyC,kBAAmB,CACtBJ,QAAS,OAEP8B,EAAS,CACb1D,UAAW,SACXC,MAAO,KACPC,IAAK,KACLC,SAAU,CACR,OACAZ,EAAKmD,cACLe,IAGEE,EAAiBpE,EAAKoC,QAAQ,KAAM,KAWpCpB,EAAW,CACfoD,EAXqBpE,EAAKoC,QAC1B,OACA,OACA,CACExB,SAAU,CACR,OACAwD,KAOJpE,EAAK+D,mBA6CP,MAAO,CACL7C,KAAM,cACN8B,QAAS,CAAE,aACX5B,SAAU,CACRE,QACE,0iBAUFO,QACE,mEACFN,SACE,sUAQJX,SAAU,CACRsD,EACAlE,EAAKmD,cACL,CACE1C,UAAW,WACXC,MAAOyB,EAAMK,OACX,KACAL,EAAMS,OAzDZ,iBACA,gBACA,WACA,sBACA,eACA,UACA,0BACA,gBACA,eACA,kBACA,sBACA,gBACA,aACA,mBACA,cACA,cACA,0BACA,uBACA,2BACA,mBACA,oFACA,0BAqCM,OAGJ,CACEnC,UAAW,WACXC,MAAO,gBAET,CACED,UAAW,UACXC,MACE,gEAEJ,CACED,UAAW,UACXC,MAAOyB,EAAMK,OACX,KACAL,EAAMS,OA3FZ,aACA,aACA,aACA,SACA,eACA,kEACA,kCACA,8BACA,eACA,uBACA,oBACA,oBACA,qBACA,eA+EM,OAGJ,CACEQ,cAAe,KACff,QAAS,WACTzB,SAAU,CACRZ,EAAKqE,sBACLF,OAGDnD,GAELqB,QAAS,qB,SCoNbvC,EAAOC,QA/VP,SAAgBC,GACd,MAAM6C,EAAW,yBACXyB,EAAW,CACfhD,QAAS,CACP,KACA,MACA,QACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,SAEFO,QAAS,CACP,YACA,cACA,QACA,eACA,WACA,MACA,UACA,OACA,KACA,cACA,MACA,iBACA,OACA,aAEFN,SAAU,CACR,MACA,OACA,MACA,QACA,MACA,OACA,eACA,QACA,OACA,OACA,QACA,cACA,UACA,OACA,UACA,UACA,SACA,iBACA,OACA,WACA,OACA,cACA,UACA,YACA,WACA,mBACA,MACA,QACA,UACA,MACA,OACA,UACA,WACA,MACA,SACA,eACA,UACA,kBACA,aACA,aACA,WACA,WACA,mBACA,WACA,SACA,aACA,aACA,qBACA,SACA,QACA,MACA,UACA,SACA,UACA,aACA,0BACA,iBACA,mBACA,yBACA,+BACA,SACA,OACA,QACA,QACA,eACA,gBACA,WACA,aACA,aACA,WACA,gBACA,UACA,UACA,OACA,OACA,SACA,OACA,MACA,WACA,UACA,SACA,eACA,aACA,UACA,QACA,WACA,UACA,aACA,UACA,qBACA,WACA,SACA,SACA,WACA,iBACA,MACA,QACA,MACA,MACA,OACA,MACA,cACA,MACA,SACA,QACA,wBACA,aACA,oBACA,OACA,MACA,SACA,WACA,UACA,WACA,QACA,UACA,WACA,MACA,SACA,MACA,SACA,OACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,kBACA,SACA,QACA,SACA,SACA,cACA,WACA,MACA,QACA,OACA,SACA,QACA,OACA,QACA,cACA,cACA,WACA,MACA,sBACA,MACA,OACA,YACA,aACA,cACA,QACA,QACA,UACA,QACA,UACA,QACA,sBACA,0BACA,2BACA,uBACA,oBACA,mBACA,kBACA,sBACA,gBACA,mBACA,sBACA,aACA,eACA,mBACA,iBACA,cACA,OACA,SACA,QACA,QACA,YACA,WACA,OACA,UACA,OACA,SACA,SAOEgD,EAAS,CACb9D,UAAW,SACXsB,SAAU,CACR,CAAErB,MAAO,mBACT,CAAEA,MAAO,oBACT,CAAEA,MAAOV,EAAKwE,cAEhB7B,UAAW,GAEP8B,EAAQ,CACZhE,UAAW,QACXC,MAAO,SACPC,IAAK,MACLS,SAAUkD,EACV1D,SAAU,IAEN8D,EAAkB,CACtBjE,UAAW,SACXC,MAAO,IACPC,IAAK,IACLC,SAAU,CACRZ,EAAK6D,iBACLY,IAGJA,EAAM7D,SAAW,CACfZ,EAAKiD,iBACLjD,EAAKyC,kBACLiC,EACAH,EACAvE,EAAK2E,aAEP,MAAMC,EAAkBH,EAAM7D,SAAS4B,OAAO,CAC5CxC,EAAKkD,qBACLlD,EAAKiB,sBAGP,MAAO,CACLC,KAAM,gBACNC,kBAAkB,EAClBC,SAAUkD,EACV1D,SAAU,CACRZ,EAAKiD,iBACLjD,EAAKyC,kBACLiC,EACA1E,EAAKiB,oBACLjB,EAAKkD,qBAlDM,CACbzC,UAAW,SACXC,MAAO,4GAkDL6D,EACA,CACE7D,MAAO,UACPiC,UAAW,EACX/B,SAAU,CACR,CACEF,MAAOmC,EAAW,QAClBY,aAAa,EACbd,UAAW,EACX/B,SAAU,CACR,CACEH,UAAW,OACXC,MAAOmC,EACPF,UAAW,OAMrB,CACEjC,MAAO,IAAMV,EAAK6E,eAAiB,uBACnCzD,SAAU,SACVR,SAAU,CACRZ,EAAKiB,oBACLjB,EAAKkD,qBACLlD,EAAK2E,YACL,CACElE,UAAW,WACXC,MAAO,cAAgBmC,EAAW,UAClCY,aAAa,EACb9C,IAAK,SACLC,SAAU,CACR,CACEH,UAAW,SACXsB,SAAU,CACR,CAAErB,MAAOmC,GACT,CAAEnC,MAAO,WACT,CACEA,MAAO,KACPC,IAAK,KACLG,cAAc,EACdC,YAAY,EACZK,SAAUkD,EACV1D,SAAUgE,QAOtBjC,UAAW,GAEb,CACES,cAAe,WACfzC,IAAK,KACLI,YAAY,EACZH,SAAU,CACRZ,EAAKM,QAAQN,EAAKkC,WAAY,CAC5BzB,UAAW,iBACXC,MAAOmC,IAET,CACEpC,UAAW,SACXC,MAAO,KACPC,IAAK,KACLG,cAAc,EACdC,YAAY,EACZH,SAAUgE,IAGdvC,QAAS,QAEX,CAAE3B,MAAO,WAEX2B,QAAS,Y,SCgnBbvC,EAAOC,QAhYP,SAAiBC,GACf,MAAM8E,EAAa,CACjBnD,KAAM,CACJ,UACA,OACA,OACA,UAEFJ,SAAU,CACR,qBACA,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MAEFwD,OAAQ,CACN,QACA,OACA,gCACA,wBACA,wBACA,uBACA,uBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,iBACA,iBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEFlD,QAAS,CACP,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,WACA,WACA,UACA,SACA,QACA,OACA,QAIEmD,EA77BR,SAAmBhF,GACjB,MAAMmC,EAAQnC,EAAKmC,MAIblB,EAAsBjB,EAAKoC,QAAQ,KAAM,IAAK,CAClDxB,SAAU,CACR,CACEF,MAAO,WAIPuE,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,iCAEvBhD,EAAMiD,SAASF,GACf,gBAAkB/C,EAAMiD,SAJG,YAK7B,IAEMC,EAAsB,CAC1B5E,UAAW,OACXC,MAAO,sBAMHF,EAAU,CACdC,UAAW,SACXsB,SAAU,CACR,CACErB,MAAO,cACPC,IAAK,IACL0B,QAAS,MACTzB,SAAU,CAAEZ,EAAK6D,mBAEnB,CACEnD,MAAO,sEACPC,IAAK,IACL0B,QAAS,KAEXrC,EAAKsF,kBAAkB,CACrB5E,MAAO,mCACPC,IAAK,0BAKLN,EAAU,CACdI,UAAW,SACXsB,SAAU,CACR,CACErB,MAAO,iBAET,CACEA,MAAO,yFAET,CACEA,MAAO,wFAGXiC,UAAW,GAGP4C,EAAe,CACnB9E,UAAW,OACXC,MAAO,eACPC,IAAK,IACLS,SAAU,CACRE,QACE,0FAGJV,SAAU,CACR,CACEF,MAAO,OACPiC,UAAW,GAEb3C,EAAKM,QAAQE,EAAS,CACpBC,UAAW,WAEb,CACEA,UAAW,SACXC,MAAO,SAETO,EACAjB,EAAKkD,uBAIHhB,EAAa,CACjBzB,UAAW,QACXC,MAAOyB,EAAMiD,SAASF,GAAgBlF,EAAK6C,SAC3CF,UAAW,GAGP6C,EAAiBrD,EAAMiD,SAASF,GAAgBlF,EAAK6C,SAAW,UA+RhE4C,EAAe,CACnB9D,KAlMqB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,UAmLAL,QA9RwB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,UAwMAO,QAhBe,CACf,OACA,QACA,UACA,UACA,QAYAN,SARe,CACf,WAQAmE,YAnLiB,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,iBA+HIC,EAAoB,CACxBlF,UAAW,oBACXkC,UAAW,EACXvB,SAAU,CAERwE,MAjImB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,aA+BAlF,MAAOyB,EAAMK,OACX,KACA,eACA,SACA,UACA,aACA,YACAxC,EAAK6C,SACLV,EAAM0D,UAAU,sBAGdC,EAAsB,CAC1BH,EACAJ,EACAF,EACApE,EACAjB,EAAKkD,qBACL7C,EACAG,GAGIuF,EAAqB,CAIzBhE,SAAU,CACR,CACErB,MAAO,IACPC,IAAK,KAEP,CACED,MAAO,KACPC,IAAK,MAEP,CACEyC,cAAe,wBACfzC,IAAK,MAGTS,SAAUqE,EACV7E,SAAUkF,EAAoBtD,OAAO,CACnC,CACE9B,MAAO,KACPC,IAAK,KACLS,SAAUqE,EACV7E,SAAUkF,EAAoBtD,OAAO,CAAE,SACvCG,UAAW,KAGfA,UAAW,GAGPqD,EAAuB,CAC3BvF,UAAW,WACXC,MAAO,IAAMyE,EAAmB,eAAiBK,EACjD/B,a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ACA,eACA,MACA,WACA,QACA,UACA,OACA,UACA,SACA,OACA,KACA,QACA,MACA,OACA,QACA,OACA,QACA,WACA,UACA,YACA,SACA,SACA,QACA,SACA,OACA,OACA,OACA,UACA,aACA,QACA,YACA,MACA,QACA,aACA,OACA,QACA,WACA,OACA,SACA,QACA,UACA,UACA,SACA,SACA,MACA,OACA,SACA,WACA,SACA,aACA,WACA,kBACA,UACA,aACA,QACA,iBACA,oBACA,uBACA,aACA,SACA,SACA,YACA,oBACA,UACA,gBACA,0BACA,mCACA,UACA,UACA,UACA,QACA,OACA,aACA,sBAEImC,EAAY,CAChB,MACA,MACA,OACA,QAGF,MAAO,CACLvF,KAAM,UACNE,SAAUkD,EACVjC,QAAS,QACTzB,SAAU,CACRZ,EAAKoC,QACH,SACA,OACA,CACEO,UAAW,EACX/B,SAAU,CACR,CAEEF,MAAO,OACPiC,UAAW,GAEb,CACElC,UAAW,SACXC,MAAO,iBAKfV,EAAKiB,oBACLjB,EAAKkD,qBACLlD,EAAKiD,iBACLjD,EAAKyC,kBACL,CACEhC,UAAW,QACX2C,cAAe,SACfzC,IAAK,QACLI,YAAY,EACZsB,QAAS,YACTzB,SAAU,CACR,CACEwC,cAAe,yFAEjBpD,EAAKqE,sBACL,CACE3D,MAAO,WACPC,IAAK,OACLS,SAAUkD,EAAS9B,OAAOiE,GAC1B1F,YAAY,KAIlB,CACEN,UAAW,QACX2C,cAAe,kBACfzC,IAAK,QACLI,YAAY,EACZ4B,UAAW,EACXvB,SAAU,kBACViB,QAAS,WACTzB,SAAU,CACR,CACEwC,cAAe,sBAEjBpD,EAAKqE,wBAGT,CAEEjB,cAAe,kDACfzC,IAAK,MACLI,YAAY,EACZsB,QAAS,UACTzB,SAAU,CACR,CACEF,MAAOyB,EAAMK,OAAOxC,EAAKC,oBAAqB,SAC9CwD,aAAa,EACb7C,SAAU,CAAEZ,EAAKqE,0BAIvB,CACE3D,MAAO,MACP+C,aAAa,EACb9C,IAAK,OACLgC,UAAW,EACX5B,YAAY,EACZK,SAAUkD,EACVjC,QAAS,UACTzB,SAAU,CAC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BAWF8E,KACE,sHAGJzF,SAAU,CACRZ,EAAKkD,qBACLlD,EAAKoC,QACH,IACA,IACA,CACEO,UAAW,IAGf3C,EAAKmD,cACLnD,EAAK6G,mBACL,CACEpG,UAAW,SACXC,MAAO,iCAETV,EAAKyC,kBACL,CACEhC,UAAW,SACXC,MAAO,IACPC,IAAK,WACL0B,QAAS,eAEX,CACE5B,UAAW,SACXC,MAAO,qBAET,CACED,UAAW,OACXC,MAAO,IACPC,IAAK,KAEP,CACEF,UAAW,QACXC,MAAO,e,SCDfZ,EAAOC,QAhEP,SAAaC,GAiDX,MAAO,CACLkB,KAAM,MACNE,SAAU,CACRE,QAxCa,+FA0CfV,SAAU,CArDK,CACfH,UAAW,WACXsB,SAAU,CACR,CACErB,MAAO,sBAET,CACEA,MAAO,iBAKE,CACbD,UAAW,SACXG,SAAU,CAACZ,EAAK6D,kBAChB9B,SAAU,CACR,CACErB,MAAO,cACPC,IAAK,MACLgC,UAAW,IAEb,CACEjC,MAAO,cACPC,IAAK,MACLgC,UAAW,IAEb,CACEjC,MAAO,YACPC,IAAK,IACLgC,UAAW,IAEb,CACEjC,MAAO,YACPC,IAAK,IACLgC,UAAW,IAEb,CACEjC,MAAO,UACPC,IAAK,KAEP,CACED,MAAO,UACPC,IAAK,KAEPX,EAAKiD,iBACLjD,EAAKyC,oBAWLzC,EAAK2E,YACL3E,EAAK+D,kBACL/D,EAAKO,gB,QC4HXT,EAAOC,QAtLP,SAAgBC,GACd,MAAM6C,EAAW7C,EAAKC,oBAmIhBqE,EAAW,CACfhD,QAxGsB,CACtB,WACA,KACA,MACA,MACA,QACA,aACA,KACA,QACA,OACA,QACA,gBACA,QACA,SACA,SACA,SACA,QACA,WACA,QACA,eACA,WACA,cACA,OACA,UACA,MACA,KACA,OACA,OACA,eACA,SACA,UACA,QACA,UACA,YACA,YACA,aACA,cACA,eACA,gBACA,QACA,MACA,gBACA,kBACA,oBACA,mBACA,YACA,OACA,eACA,QACA,OACA,KACA,aACA,KACA,QACA,mBACA,YACA,WACA,KACA,OACA,OACA,QACA,QACA,MACA,YACA,MACA,OACA,UACA,YACA,iBACA,QACA,QACA,kBACA,QACA,UACA,YACA,SACA,WACA,iBACA,QACA,SACA,UACA,SACA,SACA,UACA,SACA,MACA,QACA,SACA,OACA,QACA,MACA,WACA,WACA,YACA,YACA,mBACA,QACA,iBACA,OACA,QACA,SAKAC,SApIwB,CACxB,UACA,UACA,OACA,OACA,YACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,MACA,cACA,OAoHAM,QAjHuB,CACvB,UACA,QACA,OACA,SAgHIiF,EAAmB,CACvB/E,SAAU,CACR,CACEQ,MAAO,CACL,uBACAM,EACA,6BACAA,IAGJ,CACEN,MAAO,CACL,WACAM,KAINP,MAAO,CACL,EAAG,cACH,EAAG,yBAELlB,SAAUkD,GAGZ,MAAO,CACLpD,KAAM,MACN8B,QAAS,CAAC,OACV5B,SAAUkD,EACV1D,SAAU,CACRZ,EAAKiB,oBACLjB,EAAKkD,qBACLlD,EAAKiD,iBACLjD,EAAKyC,kBACLzC,EAAKmD,cACL,CACE1C,UAAW,OACXC,MAAO,IACPC,IAAK,KAEPmG,M,SCsMNhH,EAAOC,QAvXP,SAAcC,GACZ,MAAMmC,EAAQnC,EAAKmC,MACb4E,EAAM,GACNC,EAAa,CACjBtG,MAAO,OACPC,IAAI,KACJC,SAAU,CACR,OACA,CACEF,MAAO,KACPE,SAAU,CAAEmG,MAIlBE,OAAOC,OAAOH,EAAI,CAChBtG,UAAW,WACXsB,SAAU,CACR,CAACrB,MAAOyB,EAAMK,OAAO,qBAGnB,wBACFwE,KAIJ,MAAMvC,EAAQ,CACZhE,UAAW,QACXC,MAAO,OAAQC,IAAK,KACpBC,SAAU,CAACZ,EAAK6D,mBAEZsD,EAAW,CACfzG,MAAO,iBACPuD,OAAQ,CACNrD,SAAU,CACRZ,EAAKsF,kBAAkB,CACrB5E,MAAO,QACPC,IAAK,QACLF,UAAW,cAKb2G,EAAe,CACnB3G,UAAW,SACXC,MAAO,IAAKC,IAAK,IACjBC,SAAU,CACRZ,EAAK6D,iBACLkD,EACAtC,IAGJA,EAAM7D,SAASyG,KAAKD,GACpB,MASME,EAAa,CACjB5G,MAAO,SACPC,IAAK,OACLC,SAAU,CACR,CAAEF,MAAO,gBAAiBD,UAAW,UACrCT,EAAKO,YACLwG,IAcEQ,EAAgBvH,EAAKwH,QAAQ,CACjCC,OAAQ,IAZa,CACrB,OACA,OACA,MACA,KACA,MACA,MACA,OACA,OACA,QAG2BC,KAAK,QAChC/E,UAAW,KAEPgF,EAAW,CACflH,UAAW,WACXC,MAAO,4BACP+C,aAAa,EACb7C,SAAU,CAACZ,EAAKM,QAAQN,EAAKkC,WAAY,CAACxB,MAAO,gBACjDiC,UAAW,GA4Pb,MAAO,CACLzB,KAAM,OACN8B,QAAS,CAAC,MACV5B,SAAU,CACRC,SAAU,gBACVC,QA9Pa,CACf,KACA,OACA,OACA,OACA,KACA,MACA,QACA,KACA,KACA,OACA,OACA,OACA,YAkPEO,QA/Oa,CACf,OACA,SA8OEN,SAAS,CApOX,QACA,KACA,WACA,OACA,OACA,OACA,SACA,UACA,OACA,MACA,WACA,SACA,QACA,OACA,QACA,OACA,QACA,QAIA,QACA,OACA,UACA,SACA,UACA,UACA,OACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,OACA,YACA,SACA,OACA,UACA,SACA,UA+LI,MACA,QA5LJ,WACA,KACA,UACA,MACA,MACA,QACA,QACA,gBACA,WACA,UACA,eACA,YACA,aACA,YACA,WACA,UACA,aACA,OACA,UACA,SACA,SACA,SACA,UACA,KACA,KACA,QACA,YACA,SACA,QACA,UACA,UACA,OACA,OACA,QACA,MACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,SACA,aACA,SACA,UACA,WACA,QACA,OACA,SACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,aACA,QACA,OACA,cACA,UACA,SACA,OAIA,QACA,QACA,QACA,QACA,KACA,KACA,KACA,MACA,YACA,KACA,KACA,QACA,SACA,QACA,SACA,KACA,WACA,KACA,QACA,QACA,OACA,QACA,WACA,OACA,QACA,SACA,SACA,MACA,QACA,OACA,SACA,MACA,SACA,MACA,OACA,OACA,OACA,SACA,KACA,SACA,KACA,QACA,MACA,KACA,UACA,YACA,YACA,YACA,YACA,OACA,OACA,QACA,MACA,MACA,OACA,KACA,QACA,WACA,OACA,KACA,OACA,WACA,SACA,OACA,UACA,KACA,OACA,MACA,OACA,SAEA,SACA,SACA,KACA,OACA,UACA,OACA,QACA,QACA,UACA,QACA,WACA,SACA,MACA,WACA,SACA,MACA,QACA,OACA,SACA,OACA,MACA,OACA,UAEA,MACA,QACA,SACA,SACA,QACA,MACA,SACA,QAoBAX,SAAU,CACR2G,EACAvH,EAAKwH,UACLG,EACAL,EACAtH,EAAK+D,kBACLoD,EA1Pc,CAChB5E,MAAO,kBA2PL6E,EA3TkB,CACpB3G,UAAW,GACXC,MAAO,OAGW,CAClBD,UAAW,SACXC,MAAO,IAAKC,IAAK,KAuTfoG,M,QCnJNjH,EAAOC,QAhOP,SAAeC,GAqLb,MAAO,CACLkB,KAAM,QACNC,kBAAkB,EAClBkB,QAAS,KAETjB,SAAU,CACRC,SAAU,4BACVC,QA3La,CACf,MACA,MACA,MACA,MACA,SACA,OACA,WACA,WACA,OACA,QACA,OACA,QACA,QACA,UACA,OACA,SACA,QACA,QACA,MACA,QACA,MACA,SACA,OACA,MACA,OACA,SACA,MACA,MACA,MACA,OACA,QACA,SACA,SACA,SACA,SACA,QACA,MACA,MACA,SACA,MACA,OACA,OACA,MACA,UACA,WACA,MACA,MACA,QACA,QACA,SACA,MACA,MACA,QACA,MACA,QACA,QACA,MACA,QACA,MACA,MACA,WACA,OACA,OACA,KACA,OACA,SACA,SACA,MACA,QACA,SACA,SACA,QACA,MACA,MACA,QACA,SACA,MACA,KACA,MACA,OACA,OACA,QACA,MACA,MACA,OACA,QACA,OACA,MACA,SACA,MACA,MACA,SACA,QACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,MACA,OACA,KACA,KACA,MACA,OACA,QACA,OACA,SACA,OACA,MACA,QACA,UACA,QACA,OACA,OACA,QACA,OACA,MACA,QACA,SACA,OACA,SACA,MACA,YACA,OACA,MACA,QACA,UACA,UACA,SACA,WACA,SACA,QACA,MACA,OACA,MACA,OACA,SACA,MACA,QACA,MACA,QACA,SACA,MACA,MACA,OACA,QACA,OACA,OACA,UACA,OACA,SACA,MACA,MACA,QACA,QACA,QACA,OACA,KACA,MACA,MACA,SACA,UACA,OACA,OACA,QACA,OACA,QACA,SACA,QACA,QAYAV,SAAU,CACRZ,EAAKyC,kBACLzC,EAAKoC,QAAQ,MAAO,IAAK,CACvBO,UAAW,KAEb3C,EAAKoC,QAAQ,IAAM,IAAK,CACtBO,UAAW,IAEb,CAEElC,UAAW,SACXC,MAAO,WACPiC,UAAW,IAEb,CAEElC,UAAW,SACXC,MAAO,sCACPiC,UAAW,GAEb,CAEElC,UAAW,SACXC,MAAO,2BAET,CAEED,UAAW,SACXC,MAAO,yB,SC7LfZ,EAAOC,QA9BP,SAAaC,GACX,MAAO,CACLkB,KAAM,mBACNN,SAAU,CAER,CACEH,UAAW,YACXC,MAAO,IACPC,IAAK,KAGP,CACED,MAAO,MACPC,IAAK,IACLC,SAAU,CACR,CACEF,MAAO,IACPC,IAAK,KAGPX,EAAKiB,oBACLjB,EAAKkD,qBACLlD,EAAKiD,iBACLjD,EAAKyC,wB,SCef3C,EAAOC,QAtCP,SAAmBC,GACjB,MAAMI,EAAU,CACdK,UAAW,UACXC,MAAO,OACPiC,UAAW,GAEb,MAAO,CACLzB,KAAM,YACN8B,QAAS,CAAC,MACVpC,SAAU,CACRZ,EAAKoC,QACH,6BACA,4BACA,CACEwF,WAAW,EACXjF,UAAW,IAGf,CACElC,UAAW,QACXC,MAAO,WACPiC,UAAW,GAEb,CACElC,UAAW,SACXC,MAAO,SACPiC,UAAW,GAEb,CAEEjC,MAAO,cACPE,SAAU,CAACR,IAEbA","sources":["webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/1c.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/abnf.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/accesslog.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/actionscript.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/ada.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/angelscript.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/apache.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/applescript.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/arcade.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/arduino.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/armasm.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/asciidoc.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/aspectj.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/autohotkey.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/autoit.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/avrasm.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/awk.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/axapta.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/bash.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/basic.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/bnf.js","webpack://sakurairo-scripts/./node_modules/_highlight.js@11.4.0@highlight.js/lib/languages/brainfuck.js"],"sourcesContent":["/*\nLanguage: 1C:Enterprise\nAuthor: Stanislav Belov \nDescription: built-in language 1C:Enterprise (v7, v8)\nCategory: enterprise\n*/\n\nfunction _1c(hljs) {\n\n // общий паттерн для определения идентификаторов\n var UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';\n\n // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword\n var v7_keywords =\n 'далее ';\n\n // v8 ключевые слова ==> keyword\n var v8_keywords =\n 'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли ' +\n 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';\n\n // keyword : ключевые слова\n var KEYWORD = v7_keywords + v8_keywords;\n\n // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword\n var v7_meta_keywords =\n 'загрузитьизфайла ';\n\n // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword\n var v8_meta_keywords =\n 'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер ' +\n 'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед ' +\n 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';\n\n // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях\n var METAKEYWORD = v7_meta_keywords + v8_meta_keywords;\n\n // v7 системные константы ==> built_in\n var v7_system_constants =\n 'разделительстраниц разделительстрок символтабуляции ';\n\n // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in\n var v7_global_context_methods =\n 'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов ' +\n 'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя ' +\n 'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца ' +\n 'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид ' +\n 'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца ' +\n 'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов ' +\n 'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута ' +\n 'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта ' +\n 'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына ' +\n 'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента ' +\n 'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';\n\n // v8 методы глобального контекста ==> built_in\n var v8_global_context_methods =\n 'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока ' +\n 'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ' +\n 'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации ' +\n 'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода ' +\n 'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы ' +\n 'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации ' +\n 'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию ' +\n 'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла ' +\n 'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке ' +\n 'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку ' +\n 'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты ' +\n 'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы ' +\n 'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти ' +\n 'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы ' +\n 'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя ' +\n 'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты ' +\n 'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов ' +\n 'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя ' +\n 'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога ' +\n 'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией ' +\n 'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы ' +\n 'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения ' +\n 'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении ' +\n 'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения ' +\n 'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально ' +\n 'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа ' +\n 'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту ' +\n 'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения ' +\n 'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки ' +\n 'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение ' +\n 'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя ' +\n 'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса ' +\n 'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора ' +\n 'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса ' +\n 'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации ' +\n 'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла ' +\n 'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации ' +\n 'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления ' +\n 'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу ' +\n 'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы ' +\n 'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет ' +\n 'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима ' +\n 'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения ' +\n 'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути ' +\n 'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы ' +\n 'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю ' +\n 'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных ' +\n 'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию ' +\n 'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище ' +\n 'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода ' +\n 'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение ' +\n 'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока ' +\n 'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных ' +\n 'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени ' +\n 'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить ' +\n 'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс ' +\n 'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '+\n 'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах ' +\n 'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации ' +\n 'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы ' +\n 'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим ' +\n 'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту ' +\n 'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных ' +\n 'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации ' +\n 'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения ' +\n 'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования ' +\n 'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима ' +\n 'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим ' +\n 'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией ' +\n 'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы ' +\n 'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса ' +\n 'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';\n\n // v8 свойства глобального контекста ==> built_in\n var v8_global_context_property =\n 'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы ' +\n 'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль ' +\n 'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты ' +\n 'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений ' +\n 'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик ' +\n 'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок ' +\n 'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений ' +\n 'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа ' +\n 'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек ' +\n 'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков ' +\n 'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';\n\n // built_in : встроенные или библиотечные объекты (константы, классы, функции)\n var BUILTIN =\n v7_system_constants +\n v7_global_context_methods + v8_global_context_methods +\n v8_global_context_property;\n\n // v8 системные наборы значений ==> class\n var v8_system_sets_of_values =\n 'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';\n\n // v8 системные перечисления - интерфейсные ==> class\n var v8_system_enums_interface =\n 'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий ' +\n 'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы ' +\n 'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы ' +\n 'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя ' +\n 'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение ' +\n 'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы ' +\n 'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания ' +\n 'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки ' +\n 'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы ' +\n 'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева ' +\n 'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ' +\n 'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме ' +\n 'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы ' +\n 'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы ' +\n 'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы ' +\n 'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска ' +\n 'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования ' +\n 'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта ' +\n 'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы ' +\n 'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы ' +\n 'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы ' +\n 'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы ' +\n 'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы ' +\n 'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском ' +\n 'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы ' +\n 'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта ' +\n 'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты ' +\n 'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения ' +\n 'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра ' +\n 'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения ' +\n 'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы ' +\n 'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки ' +\n 'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание ' +\n 'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы ' +\n 'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление ' +\n 'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы ' +\n 'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы ' +\n 'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления ' +\n 'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы ' +\n 'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы ' +\n 'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений ' +\n 'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы ' +\n 'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы ' +\n 'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы ' +\n 'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени ' +\n 'форматкартинки ширинаподчиненныхэлементовформы ';\n\n // v8 системные перечисления - свойства прикладных объектов ==> class\n var v8_system_enums_objects_properties =\n 'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса ' +\n 'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения ' +\n 'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';\n\n // v8 системные перечисления - планы обмена ==> class\n var v8_system_enums_exchange_plans =\n 'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';\n\n // v8 системные перечисления - табличный документ ==> class\n var v8_system_enums_tabular_document =\n 'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы ' +\n 'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента ' +\n 'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента ' +\n 'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента ' +\n 'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы ' +\n 'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента ' +\n 'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';\n\n // v8 системные перечисления - планировщик ==> class\n var v8_system_enums_sheduler =\n 'отображениевремениэлементовпланировщика ';\n\n // v8 системные перечисления - форматированный документ ==> class\n var v8_system_enums_formatted_document =\n 'типфайлаформатированногодокумента ';\n\n // v8 системные перечисления - запрос ==> class\n var v8_system_enums_query =\n 'обходрезультатазапроса типзаписизапроса ';\n\n // v8 системные перечисления - построитель отчета ==> class\n var v8_system_enums_report_builder =\n 'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';\n\n // v8 системные перечисления - работа с файлами ==> class\n var v8_system_enums_files =\n 'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';\n\n // v8 системные перечисления - построитель запроса ==> class\n var v8_system_enums_query_builder =\n 'типизмеренияпостроителязапроса ';\n\n // v8 системные перечисления - анализ данных ==> class\n var v8_system_enums_data_analysis =\n 'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных ' +\n 'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений ' +\n 'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций ' +\n 'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных ' +\n 'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных ' +\n 'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';\n\n // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class\n var v8_system_enums_xml_json_xs_dom_xdto_ws =\n 'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto ' +\n 'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs ' +\n 'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs ' +\n 'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ' +\n 'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson ' +\n 'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs ' +\n 'форматдатыjson экранированиесимволовjson ';\n\n // v8 системные перечисления - система компоновки данных ==> class\n var v8_system_enums_data_composition_system =\n 'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных ' +\n 'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных ' +\n 'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных ' +\n 'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных ' +\n 'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных ' +\n 'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных ' +\n 'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных ' +\n 'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных ' +\n 'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных ' +\n 'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '+\n 'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных ' +\n 'использованиеусловногооформлениякомпоновкиданных ';\n\n // v8 системные перечисления - почта ==> class\n var v8_system_enums_email =\n 'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения ' +\n 'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты ' +\n 'статусразборапочтовогосообщения ';\n\n // v8 системные перечисления - журнал регистрации ==> class\n var v8_system_enums_logbook =\n 'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';\n\n // v8 системные перечисления - криптография ==> class\n var v8_system_enums_cryptography =\n 'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии ' +\n 'типхранилищасертификатовкриптографии ';\n\n // v8 системные перечисления - ZIP ==> class\n var v8_system_enums_zip =\n 'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip ' +\n 'режимсохраненияпутейzip уровеньсжатияzip ';\n\n // v8 системные перечисления -\n // Блокировка данных, Фоновые задания, Автоматизированное тестирование,\n // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class\n var v8_system_enums_other =\n 'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных ' +\n 'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';\n\n // v8 системные перечисления - схема запроса ==> class\n var v8_system_enums_request_schema =\n 'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса ' +\n 'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';\n\n // v8 системные перечисления - свойства объектов метаданных ==> class\n var v8_system_enums_properties_of_metadata_objects =\n 'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления ' +\n 'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование ' +\n 'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения ' +\n 'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита ' +\n 'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных ' +\n 'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи ' +\n 'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении ' +\n 'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений ' +\n 'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение ' +\n 'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '+\n 'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности ' +\n 'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов ' +\n 'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса ' +\n 'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов ' +\n 'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования ' +\n 'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса ' +\n 'типномерадокумента типномеразадачи типформы удалениедвижений ';\n\n // v8 системные перечисления - разные ==> class\n var v8_system_enums_differents =\n 'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения ' +\n 'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки ' +\n 'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак ' +\n 'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога ' +\n 'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных ' +\n 'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения ' +\n 'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных ' +\n 'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter ' +\n 'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';\n\n // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)\n var CLASS =\n v8_system_sets_of_values +\n v8_system_enums_interface +\n v8_system_enums_objects_properties +\n v8_system_enums_exchange_plans +\n v8_system_enums_tabular_document +\n v8_system_enums_sheduler +\n v8_system_enums_formatted_document +\n v8_system_enums_query +\n v8_system_enums_report_builder +\n v8_system_enums_files +\n v8_system_enums_query_builder +\n v8_system_enums_data_analysis +\n v8_system_enums_xml_json_xs_dom_xdto_ws +\n v8_system_enums_data_composition_system +\n v8_system_enums_email +\n v8_system_enums_logbook +\n v8_system_enums_cryptography +\n v8_system_enums_zip +\n v8_system_enums_other +\n v8_system_enums_request_schema +\n v8_system_enums_properties_of_metadata_objects +\n v8_system_enums_differents;\n\n // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type\n var v8_shared_object =\n 'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs ' +\n 'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема ' +\n 'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма ' +\n 'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания ' +\n 'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление ' +\n 'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom ' +\n 'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта ' +\n 'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs ' +\n 'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных ' +\n 'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла ' +\n 'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных ' +\n 'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных ' +\n 'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson ' +\n 'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs ' +\n 'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации ' +\n 'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных ' +\n 'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs ' +\n 'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom ' +\n 'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных ' +\n 'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных ' +\n 'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных ' +\n 'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml ' +\n 'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент ' +\n 'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml ' +\n 'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto ' +\n 'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows ' +\n 'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш ' +\n 'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент ' +\n 'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток ' +\n 'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs ' +\n 'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs ' +\n 'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs ' +\n 'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент ' +\n 'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла ' +\n 'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';\n\n // v8 универсальные коллекции значений ==> type\n var v8_universal_collection =\n 'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура ' +\n 'фиксированноесоответствие фиксированныймассив ';\n\n // type : встроенные типы\n var TYPE =\n v8_shared_object +\n v8_universal_collection;\n\n // literal : примитивные типы\n var LITERAL = 'null истина ложь неопределено';\n\n // number : числа\n var NUMBERS = hljs.inherit(hljs.NUMBER_MODE);\n\n // string : строки\n var STRINGS = {\n className: 'string',\n begin: '\"|\\\\|', end: '\"|$',\n contains: [{begin: '\"\"'}]\n };\n\n // number : даты\n var DATE = {\n begin: \"'\", end: \"'\", excludeBegin: true, excludeEnd: true,\n contains: [\n {\n className: 'number',\n begin: '\\\\d{4}([\\\\.\\\\\\\\/:-]?\\\\d{2}){0,5}'\n }\n ]\n };\n\n // comment : комментарии\n var COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);\n\n // meta : инструкции препроцессора, директивы компиляции\n var META = {\n className: 'meta',\n\n begin: '#|&', end: '$',\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD + METAKEYWORD\n },\n contains: [\n COMMENTS\n ]\n };\n\n // symbol : метка goto\n var SYMBOL = {\n className: 'symbol',\n begin: '~', end: ';|:', excludeEnd: true\n };\n\n // function : объявление процедур и функций\n var FUNCTION = {\n className: 'function',\n variants: [\n {begin: 'процедура|функция', end: '\\\\)', keywords: 'процедура функция'},\n {begin: 'конецпроцедуры|конецфункции', keywords: 'конецпроцедуры конецфункции'}\n ],\n contains: [\n {\n begin: '\\\\(', end: '\\\\)', endsParent : true,\n contains: [\n {\n className: 'params',\n begin: UNDERSCORE_IDENT_RE, end: ',', excludeEnd: true, endsWithParent: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: 'знач',\n literal: LITERAL\n },\n contains: [\n NUMBERS,\n STRINGS,\n DATE\n ]\n },\n COMMENTS\n ]\n },\n hljs.inherit(hljs.TITLE_MODE, {begin: UNDERSCORE_IDENT_RE})\n ]\n };\n\n return {\n name: '1C:Enterprise',\n case_insensitive: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD,\n built_in: BUILTIN,\n class: CLASS,\n type: TYPE,\n literal: LITERAL\n },\n contains: [\n META,\n FUNCTION,\n COMMENTS,\n SYMBOL,\n NUMBERS,\n STRINGS,\n DATE\n ]\n };\n}\n\nmodule.exports = _1c;\n","/*\nLanguage: Augmented Backus-Naur Form\nAuthor: Alex McKibben \nWebsite: https://tools.ietf.org/html/rfc5234\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction abnf(hljs) {\n const regex = hljs.regex;\n const IDENT = /^[a-zA-Z][a-zA-Z0-9-]*/;\n\n const KEYWORDS = [\n \"ALPHA\",\n \"BIT\",\n \"CHAR\",\n \"CR\",\n \"CRLF\",\n \"CTL\",\n \"DIGIT\",\n \"DQUOTE\",\n \"HEXDIG\",\n \"HTAB\",\n \"LF\",\n \"LWSP\",\n \"OCTET\",\n \"SP\",\n \"VCHAR\",\n \"WSP\"\n ];\n\n const COMMENT = hljs.COMMENT(/;/, /$/);\n\n const TERMINAL_BINARY = {\n scope: \"symbol\",\n match: /%b[0-1]+(-[0-1]+|(\\.[0-1]+)+)?/\n };\n\n const TERMINAL_DECIMAL = {\n scope: \"symbol\",\n match: /%d[0-9]+(-[0-9]+|(\\.[0-9]+)+)?/\n };\n\n const TERMINAL_HEXADECIMAL = {\n scope: \"symbol\",\n match: /%x[0-9A-F]+(-[0-9A-F]+|(\\.[0-9A-F]+)+)?/\n };\n\n const CASE_SENSITIVITY = {\n scope: \"symbol\",\n match: /%[si](?=\".*\")/\n };\n\n const RULE_DECLARATION = {\n scope: \"attribute\",\n match: regex.concat(IDENT, /(?=\\s*=)/)\n };\n\n const ASSIGNMENT = {\n scope: \"operator\",\n match: /=\\/?/\n };\n\n return {\n name: 'Augmented Backus-Naur Form',\n illegal: /[!@#$^&',?+~`|:]/,\n keywords: KEYWORDS,\n contains: [\n ASSIGNMENT,\n RULE_DECLARATION,\n COMMENT,\n TERMINAL_BINARY,\n TERMINAL_DECIMAL,\n TERMINAL_HEXADECIMAL,\n CASE_SENSITIVITY,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = abnf;\n","/*\n Language: Apache Access Log\n Author: Oleg Efimov \n Description: Apache/Nginx Access Logs\n Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog\n Category: web, logs\n Audit: 2020\n */\n\n/** @type LanguageFn */\nfunction accesslog(hljs) {\n const regex = hljs.regex;\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods\n const HTTP_VERBS = [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"PUT\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"PATCH\",\n \"TRACE\"\n ];\n return {\n name: 'Apache Access Log',\n contains: [\n // IP\n {\n className: 'number',\n begin: /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b/,\n relevance: 5\n },\n // Other numbers\n {\n className: 'number',\n begin: /\\b\\d+\\b/,\n relevance: 0\n },\n // Requests\n {\n className: 'string',\n begin: regex.concat(/\"/, regex.either(...HTTP_VERBS)),\n end: /\"/,\n keywords: HTTP_VERBS,\n illegal: /\\n/,\n relevance: 5,\n contains: [\n {\n begin: /HTTP\\/[12]\\.\\d'/,\n relevance: 5\n }\n ]\n },\n // Dates\n {\n className: 'string',\n // dates must have a certain length, this prevents matching\n // simple array accesses a[123] and [] and other common patterns\n // found in other languages\n begin: /\\[\\d[^\\]\\n]{8,}\\]/,\n illegal: /\\n/,\n relevance: 1\n },\n {\n className: 'string',\n begin: /\\[/,\n end: /\\]/,\n illegal: /\\n/,\n relevance: 0\n },\n // User agent / relevance boost\n {\n className: 'string',\n begin: /\"Mozilla\\/\\d\\.\\d \\(/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 3\n },\n // Strings\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = accesslog;\n","/*\nLanguage: ActionScript\nAuthor: Alexander Myadzel \nCategory: scripting\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction actionscript(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[a-zA-Z_$][a-zA-Z0-9_$]*/;\n const PKG_NAME_RE = regex.concat(\n IDENT_RE,\n regex.concat(\"(\\\\.\", IDENT_RE, \")*\")\n );\n const IDENT_FUNC_RETURN_TYPE_RE = /([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/;\n\n const AS3_REST_ARG_MODE = {\n className: 'rest_arg',\n begin: /[.]{3}/,\n end: IDENT_RE,\n relevance: 10\n };\n\n const KEYWORDS = [\n \"as\",\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"default\",\n \"delete\",\n \"do\",\n \"dynamic\",\n \"each\",\n \"else\",\n \"extends\",\n \"final\",\n \"finally\",\n \"for\",\n \"function\",\n \"get\",\n \"if\",\n \"implements\",\n \"import\",\n \"in\",\n \"include\",\n \"instanceof\",\n \"interface\",\n \"internal\",\n \"is\",\n \"namespace\",\n \"native\",\n \"new\",\n \"override\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"return\",\n \"set\",\n \"static\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"try\",\n \"typeof\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"with\"\n ];\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\"\n ];\n\n return {\n name: 'ActionScript',\n aliases: [ 'as' ],\n keywords: {\n keyword: KEYWORDS,\n literal: LITERALS\n },\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n {\n match: [\n /\\bpackage/,\n /\\s+/,\n PKG_NAME_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n match: [\n /\\b(?:class|interface|extends|implements)/,\n /\\s+/,\n IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n className: 'meta',\n beginKeywords: 'import include',\n end: /;/,\n keywords: { keyword: 'import include' }\n },\n {\n beginKeywords: 'function',\n end: /[{;]/,\n excludeEnd: true,\n illegal: /\\S/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { className: \"title.function\" }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AS3_REST_ARG_MODE\n ]\n },\n { begin: regex.concat(/:\\s*/, IDENT_FUNC_RETURN_TYPE_RE) }\n ]\n },\n hljs.METHOD_GUARD\n ],\n illegal: /#/\n };\n}\n\nmodule.exports = actionscript;\n","/*\nLanguage: Ada\nAuthor: Lars Schulna \nDescription: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.\n It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).\n The first version appeared in the 80s, but it's still actively developed today with\n the newest standard being Ada2012.\n*/\n\n// We try to support full Ada2012\n//\n// We highlight all appearances of types, keywords, literals (string, char, number, bool)\n// and titles (user defined function/procedure/package)\n// CSS classes are set accordingly\n//\n// Languages causing problems for language detection:\n// xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)\n// sql (ada default.txt has a lot of sql keywords)\n\n/** @type LanguageFn */\nfunction ada(hljs) {\n // Regular expression for Ada numeric literals.\n // stolen form the VHDL highlighter\n\n // Decimal literal:\n const INTEGER_RE = '\\\\d(_|\\\\d)*';\n const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n\n // Based literal:\n const BASED_INTEGER_RE = '\\\\w+';\n const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n // Identifier regex\n const ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';\n\n // bad chars, only allowed in literals\n const BAD_CHARS = `[]\\\\{\\\\}%#'\"`;\n\n // Ada doesn't have block comments, only line comments\n const COMMENTS = hljs.COMMENT('--', '$');\n\n // variable declarations of the form\n // Foo : Bar := Baz;\n // where only Bar will be highlighted\n const VAR_DECLS = {\n // TODO: These spaces are not required by the Ada syntax\n // however, I have yet to see handwritten Ada code where\n // someone does not put spaces around :\n begin: '\\\\s+:\\\\s+',\n end: '\\\\s*(:=|;|\\\\)|=>|$)',\n // endsWithParent: true,\n // returnBegin: true,\n illegal: BAD_CHARS,\n contains: [\n {\n // workaround to avoid highlighting\n // named loops and declare blocks\n beginKeywords: 'loop for declare others',\n endsParent: true\n },\n {\n // properly highlight all modifiers\n className: 'keyword',\n beginKeywords: 'not null constant access function procedure in out aliased exception'\n },\n {\n className: 'type',\n begin: ID_REGEX,\n endsParent: true,\n relevance: 0\n }\n ]\n };\n\n const KEYWORDS = [\n \"abort\",\n \"else\",\n \"new\",\n \"return\",\n \"abs\",\n \"elsif\",\n \"not\",\n \"reverse\",\n \"abstract\",\n \"end\",\n \"accept\",\n \"entry\",\n \"select\",\n \"access\",\n \"exception\",\n \"of\",\n \"separate\",\n \"aliased\",\n \"exit\",\n \"or\",\n \"some\",\n \"all\",\n \"others\",\n \"subtype\",\n \"and\",\n \"for\",\n \"out\",\n \"synchronized\",\n \"array\",\n \"function\",\n \"overriding\",\n \"at\",\n \"tagged\",\n \"generic\",\n \"package\",\n \"task\",\n \"begin\",\n \"goto\",\n \"pragma\",\n \"terminate\",\n \"body\",\n \"private\",\n \"then\",\n \"if\",\n \"procedure\",\n \"type\",\n \"case\",\n \"in\",\n \"protected\",\n \"constant\",\n \"interface\",\n \"is\",\n \"raise\",\n \"use\",\n \"declare\",\n \"range\",\n \"delay\",\n \"limited\",\n \"record\",\n \"when\",\n \"delta\",\n \"loop\",\n \"rem\",\n \"while\",\n \"digits\",\n \"renames\",\n \"with\",\n \"do\",\n \"mod\",\n \"requeue\",\n \"xor\"\n ];\n\n return {\n name: 'Ada',\n case_insensitive: true,\n keywords: {\n keyword: KEYWORDS,\n literal: [\n \"True\",\n \"False\"\n ]\n },\n contains: [\n COMMENTS,\n // strings \"foobar\"\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n // characters ''\n {\n // character literals always contain one char\n className: 'string',\n begin: /'.'/\n },\n {\n // number literals\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n },\n {\n // Attributes\n className: 'symbol',\n begin: \"'\" + ID_REGEX\n },\n {\n // package definition, maybe inside generic\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?(\\\\bprivate\\\\s+)?\\\\bpackage\\\\s+(\\\\bbody\\\\s+)?',\n end: '(is|$)',\n keywords: 'package body',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n {\n // function/procedure declaration/definition\n // maybe inside generic\n begin: '(\\\\b(with|overriding)\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\bis|\\\\bwith|\\\\brenames|\\\\)\\\\s*;)',\n keywords: 'overriding function procedure with is renames return',\n // we need to re-match the 'function' keyword, so that\n // the title mode below matches only exactly once\n returnBegin: true,\n contains:\n [\n COMMENTS,\n {\n // name of the function/procedure\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\(|\\\\s+|$)',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n // 'self'\n // // parameter types\n VAR_DECLS,\n {\n // return type\n className: 'type',\n begin: '\\\\breturn\\\\s+',\n end: '(\\\\s+|;|$)',\n keywords: 'return',\n excludeBegin: true,\n excludeEnd: true,\n // we are done with functions\n endsParent: true,\n illegal: BAD_CHARS\n\n }\n ]\n },\n {\n // new type declarations\n // maybe inside generic\n className: 'type',\n begin: '\\\\b(sub)?type\\\\s+',\n end: '\\\\s+',\n keywords: 'type',\n excludeBegin: true,\n illegal: BAD_CHARS\n },\n\n // see comment above the definition\n VAR_DECLS\n\n // no markup\n // relevance boosters for small snippets\n // {begin: '\\\\s*=>\\\\s*'},\n // {begin: '\\\\s*:=\\\\s*'},\n // {begin: '\\\\s+:=\\\\s+'},\n ]\n };\n}\n\nmodule.exports = ada;\n","/*\nLanguage: AngelScript\nAuthor: Melissa Geels \nCategory: scripting\nWebsite: https://www.angelcode.com/angelscript/\n*/\n\n/** @type LanguageFn */\nfunction angelscript(hljs) {\n const builtInTypeMode = {\n className: 'built_in',\n begin: '\\\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)'\n };\n\n const objectHandleMode = {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+@'\n };\n\n const genericMode = {\n className: 'keyword',\n begin: '<',\n end: '>',\n contains: [\n builtInTypeMode,\n objectHandleMode\n ]\n };\n\n builtInTypeMode.contains = [ genericMode ];\n objectHandleMode.contains = [ genericMode ];\n\n const KEYWORDS = [\n \"for\",\n \"in|0\",\n \"break\",\n \"continue\",\n \"while\",\n \"do|0\",\n \"return\",\n \"if\",\n \"else\",\n \"case\",\n \"switch\",\n \"namespace\",\n \"is\",\n \"cast\",\n \"or\",\n \"and\",\n \"xor\",\n \"not\",\n \"get|0\",\n \"in\",\n \"inout|10\",\n \"out\",\n \"override\",\n \"set|0\",\n \"private\",\n \"public\",\n \"const\",\n \"default|0\",\n \"final\",\n \"shared\",\n \"external\",\n \"mixin|10\",\n \"enum\",\n \"typedef\",\n \"funcdef\",\n \"this\",\n \"super\",\n \"import\",\n \"from\",\n \"interface\",\n \"abstract|0\",\n \"try\",\n \"catch\",\n \"protected\",\n \"explicit\",\n \"property\"\n ];\n\n return {\n name: 'AngelScript',\n aliases: [ 'asc' ],\n\n keywords: KEYWORDS,\n\n // avoid close detection with C# and JS\n illegal: '(^using\\\\s+[A-Za-z0-9_\\\\.]+;$|\\\\bfunction\\\\s*[^\\\\(])',\n\n contains: [\n { // 'strings'\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n // \"\"\"heredoc strings\"\"\"\n {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n\n { // \"strings\"\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n hljs.C_LINE_COMMENT_MODE, // single-line comments\n hljs.C_BLOCK_COMMENT_MODE, // comment blocks\n\n { // metadata\n className: 'string',\n begin: '^\\\\s*\\\\[',\n end: '\\\\]'\n },\n\n { // interface or namespace declaration\n beginKeywords: 'interface namespace',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // interface or namespace name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n },\n\n { // class declaration\n beginKeywords: 'class',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // class name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+',\n contains: [\n {\n begin: '[:,]\\\\s*',\n contains: [\n {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n }\n ]\n }\n ]\n },\n\n builtInTypeMode, // built-in types\n objectHandleMode, // object handles\n\n { // literals\n className: 'literal',\n begin: '\\\\b(null|true|false)'\n },\n\n { // numbers\n className: 'number',\n relevance: 0,\n begin: '(-?)(\\\\b0[xXbBoOdD][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?f?|\\\\.\\\\d+f?)([eE][-+]?\\\\d+f?)?)'\n }\n ]\n };\n}\n\nmodule.exports = angelscript;\n","/*\nLanguage: Apache config\nAuthor: Ruslan Keba \nContributors: Ivan Sagalaev \nWebsite: https://httpd.apache.org\nDescription: language definition for Apache configuration files (httpd.conf & .htaccess)\nCategory: config, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction apache(hljs) {\n const NUMBER_REF = {\n className: 'number',\n begin: /[$%]\\d+/\n };\n const NUMBER = {\n className: 'number',\n begin: /\\b\\d+/\n };\n const IP_ADDRESS = {\n className: \"number\",\n begin: /\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?/\n };\n const PORT_NUMBER = {\n className: \"number\",\n begin: /:\\d{1,5}/\n };\n return {\n name: 'Apache config',\n aliases: [ 'apacheconf' ],\n case_insensitive: true,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'section',\n begin: /<\\/?/,\n end: />/,\n contains: [\n IP_ADDRESS,\n PORT_NUMBER,\n // low relevance prevents us from claming XML/HTML where this rule would\n // match strings inside of XML tags\n hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance: 0 })\n ]\n },\n {\n className: 'attribute',\n begin: /\\w+/,\n relevance: 0,\n // keywords aren’t needed for highlighting per se, they only boost relevance\n // for a very generally defined mode (starts with a word, ends with line-end\n keywords: {\n _: [\n \"order\",\n \"deny\",\n \"allow\",\n \"setenv\",\n \"rewriterule\",\n \"rewriteengine\",\n \"rewritecond\",\n \"documentroot\",\n \"sethandler\",\n \"errordocument\",\n \"loadmodule\",\n \"options\",\n \"header\",\n \"listen\",\n \"serverroot\",\n \"servername\"\n ]\n },\n starts: {\n end: /$/,\n relevance: 0,\n keywords: { literal: 'on off all deny allow' },\n contains: [\n {\n className: 'meta',\n begin: /\\s\\[/,\n end: /\\]$/\n },\n {\n className: 'variable',\n begin: /[\\$%]\\{/,\n end: /\\}/,\n contains: [\n 'self',\n NUMBER_REF\n ]\n },\n IP_ADDRESS,\n NUMBER,\n hljs.QUOTE_STRING_MODE\n ]\n }\n }\n ],\n illegal: /\\S/\n };\n}\n\nmodule.exports = apache;\n","/*\nLanguage: AppleScript\nAuthors: Nathan Grigg , Dr. Drang \nCategory: scripting\nWebsite: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction applescript(hljs) {\n const regex = hljs.regex;\n const STRING = hljs.inherit(\n hljs.QUOTE_STRING_MODE, {\n illegal: null\n });\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n hljs.C_NUMBER_MODE,\n STRING\n ]\n };\n const COMMENT_MODE_1 = hljs.COMMENT(/--/, /$/);\n const COMMENT_MODE_2 = hljs.COMMENT(\n /\\(\\*/,\n /\\*\\)/,\n {\n contains: [\n 'self', // allow nesting\n COMMENT_MODE_1\n ]\n }\n );\n const COMMENTS = [\n COMMENT_MODE_1,\n COMMENT_MODE_2,\n hljs.HASH_COMMENT_MODE\n ];\n\n const KEYWORD_PATTERNS = [\n /apart from/,\n /aside from/,\n /instead of/,\n /out of/,\n /greater than/,\n /isn't|(doesn't|does not) (equal|come before|come after|contain)/,\n /(greater|less) than( or equal)?/,\n /(starts?|ends|begins?) with/,\n /contained by/,\n /comes (before|after)/,\n /a (ref|reference)/,\n /POSIX (file|path)/,\n /(date|time) string/,\n /quoted form/\n ];\n\n const BUILT_IN_PATTERNS = [\n /clipboard info/,\n /the clipboard/,\n /info for/,\n /list (disks|folder)/,\n /mount volume/,\n /path to/,\n /(close|open for) access/,\n /(get|set) eof/,\n /current date/,\n /do shell script/,\n /get volume settings/,\n /random number/,\n /set volume/,\n /system attribute/,\n /system info/,\n /time to GMT/,\n /(load|run|store) script/,\n /scripting components/,\n /ASCII (character|number)/,\n /localized string/,\n /choose (application|color|file|file name|folder|from list|remote application|URL)/,\n /display (alert|dialog)/\n ];\n\n return {\n name: 'AppleScript',\n aliases: [ 'osascript' ],\n keywords: {\n keyword:\n 'about above after against and around as at back before beginning ' +\n 'behind below beneath beside between but by considering ' +\n 'contain contains continue copy div does eighth else end equal ' +\n 'equals error every exit fifth first for fourth from front ' +\n 'get given global if ignoring in into is it its last local me ' +\n 'middle mod my ninth not of on onto or over prop property put ref ' +\n 'reference repeat returning script second set seventh since ' +\n 'sixth some tell tenth that the|0 then third through thru ' +\n 'timeout times to transaction try until where while whose with ' +\n 'without',\n literal:\n 'AppleScript false linefeed return pi quote result space tab true',\n built_in:\n 'alias application boolean class constant date file integer list ' +\n 'number real record string text ' +\n 'activate beep count delay launch log offset read round ' +\n 'run say summarize write ' +\n 'character characters contents day frontmost id item length ' +\n 'month name paragraph paragraphs rest reverse running time version ' +\n 'weekday word words year'\n },\n contains: [\n STRING,\n hljs.C_NUMBER_MODE,\n {\n className: 'built_in',\n begin: regex.concat(\n /\\b/,\n regex.either(...BUILT_IN_PATTERNS),\n /\\b/\n )\n },\n {\n className: 'built_in',\n begin: /^\\s*return\\b/\n },\n {\n className: 'literal',\n begin:\n /\\b(text item delimiters|current application|missing value)\\b/\n },\n {\n className: 'keyword',\n begin: regex.concat(\n /\\b/,\n regex.either(...KEYWORD_PATTERNS),\n /\\b/\n )\n },\n {\n beginKeywords: 'on',\n illegal: /[${=;\\n]/,\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n PARAMS\n ]\n },\n ...COMMENTS\n ],\n illegal: /\\/\\/|->|=>|\\[\\[/\n };\n}\n\nmodule.exports = applescript;\n","/*\n Language: ArcGIS Arcade\n Category: scripting\n Author: John Foster \n Website: https://developers.arcgis.com/arcade/\n Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python\n*/\n\n/** @type LanguageFn */\nfunction arcade(hljs) {\n const IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';\n const KEYWORDS = {\n keyword: [\n \"if\",\n \"for\",\n \"while\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\"\n ],\n literal: [\n \"BackSlash\",\n \"DoubleQuote\",\n \"false\",\n \"ForwardSlash\",\n \"Infinity\",\n \"NaN\",\n \"NewLine\",\n \"null\",\n \"PI\",\n \"SingleQuote\",\n \"Tab\",\n \"TextFormatting\",\n \"true\",\n \"undefined\"\n ],\n built_in: [\n \"Abs\",\n \"Acos\",\n \"All\",\n \"Angle\",\n \"Any\",\n \"Area\",\n \"AreaGeodetic\",\n \"Array\",\n \"Asin\",\n \"Atan\",\n \"Atan2\",\n \"Attachments\",\n \"Average\",\n \"Back\",\n \"Bearing\",\n \"Boolean\",\n \"Buffer\",\n \"BufferGeodetic\",\n \"Ceil\",\n \"Centroid\",\n \"Clip\",\n \"Concatenate\",\n \"Console\",\n \"Constrain\",\n \"Contains\",\n \"ConvertDirection\",\n \"Cos\",\n \"Count\",\n \"Crosses\",\n \"Cut\",\n \"Date\",\n \"DateAdd\",\n \"DateDiff\",\n \"Day\",\n \"Decode\",\n \"DefaultValue\",\n \"Densify\",\n \"DensifyGeodetic\",\n \"Dictionary\",\n \"Difference\",\n \"Disjoint\",\n \"Distance\",\n \"DistanceGeodetic\",\n \"Distinct\",\n \"Domain\",\n \"DomainCode\",\n \"DomainName\",\n \"EnvelopeIntersects\",\n \"Equals\",\n \"Erase\",\n \"Exp\",\n \"Expects\",\n \"Extent\",\n \"Feature\",\n \"FeatureSet\",\n \"FeatureSetByAssociation\",\n \"FeatureSetById\",\n \"FeatureSetByName\",\n \"FeatureSetByPortalItem\",\n \"FeatureSetByRelationshipName\",\n \"Filter\",\n \"Find\",\n \"First\",\n \"Floor\",\n \"FromCharCode\",\n \"FromCodePoint\",\n \"FromJSON\",\n \"GdbVersion\",\n \"Generalize\",\n \"Geometry\",\n \"GetFeatureSet\",\n \"GetUser\",\n \"GroupBy\",\n \"Guid\",\n \"Hash\",\n \"HasKey\",\n \"Hour\",\n \"IIf\",\n \"Includes\",\n \"IndexOf\",\n \"Insert\",\n \"Intersection\",\n \"Intersects\",\n \"IsEmpty\",\n \"IsNan\",\n \"ISOMonth\",\n \"ISOWeek\",\n \"ISOWeekday\",\n \"ISOYear\",\n \"IsSelfIntersecting\",\n \"IsSimple\",\n \"Left|0\",\n \"Length\",\n \"Length3D\",\n \"LengthGeodetic\",\n \"Log\",\n \"Lower\",\n \"Map\",\n \"Max\",\n \"Mean\",\n \"Mid\",\n \"Millisecond\",\n \"Min\",\n \"Minute\",\n \"Month\",\n \"MultiPartToSinglePart\",\n \"Multipoint\",\n \"NextSequenceValue\",\n \"None\",\n \"Now\",\n \"Number\",\n \"Offset|0\",\n \"OrderBy\",\n \"Overlaps\",\n \"Point\",\n \"Polygon\",\n \"Polyline\",\n \"Pop\",\n \"Portal\",\n \"Pow\",\n \"Proper\",\n \"Push\",\n \"Random\",\n \"Reduce\",\n \"Relate\",\n \"Replace\",\n \"Resize\",\n \"Reverse\",\n \"Right|0\",\n \"RingIsClockwise\",\n \"Rotate\",\n \"Round\",\n \"Schema\",\n \"Second\",\n \"SetGeometry\",\n \"Simplify\",\n \"Sin\",\n \"Slice\",\n \"Sort\",\n \"Splice\",\n \"Split\",\n \"Sqrt\",\n \"Stdev\",\n \"SubtypeCode\",\n \"SubtypeName\",\n \"Subtypes\",\n \"Sum\",\n \"SymmetricDifference\",\n \"Tan\",\n \"Text\",\n \"Timestamp\",\n \"ToCharCode\",\n \"ToCodePoint\",\n \"Today\",\n \"ToHex\",\n \"ToLocal\",\n \"Top|0\",\n \"Touches\",\n \"ToUTC\",\n \"TrackAccelerationAt\",\n \"TrackAccelerationWindow\",\n \"TrackCurrentAcceleration\",\n \"TrackCurrentDistance\",\n \"TrackCurrentSpeed\",\n \"TrackCurrentTime\",\n \"TrackDistanceAt\",\n \"TrackDistanceWindow\",\n \"TrackDuration\",\n \"TrackFieldWindow\",\n \"TrackGeometryWindow\",\n \"TrackIndex\",\n \"TrackSpeedAt\",\n \"TrackSpeedWindow\",\n \"TrackStartTime\",\n \"TrackWindow\",\n \"Trim\",\n \"TypeOf\",\n \"Union\",\n \"Upper\",\n \"UrlEncode\",\n \"Variance\",\n \"Week\",\n \"Weekday\",\n \"When\",\n \"Within\",\n \"Year\"\n ]\n };\n const SYMBOL = {\n className: 'symbol',\n begin: '\\\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+'\n };\n const NUMBER = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0[bB][01]+)' },\n { begin: '\\\\b(0[oO][0-7]+)' },\n { begin: hljs.C_NUMBER_RE }\n ],\n relevance: 0\n };\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS,\n contains: [] // defined later\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n SUBST.contains = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n NUMBER,\n hljs.REGEXP_MODE\n ];\n const PARAMS_CONTAINS = SUBST.contains.concat([\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]);\n\n return {\n name: 'ArcGIS Arcade',\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n SYMBOL,\n NUMBER,\n { // object attr container\n begin: /[{,]\\s*/,\n relevance: 0,\n contains: [\n {\n begin: IDENT_RE + '\\\\s*:',\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: IDENT_RE,\n relevance: 0\n }\n ]\n }\n ]\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(return)\\\\b)\\\\s*',\n keywords: 'return',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n begin: '(\\\\(.*?\\\\)|' + IDENT_RE + ')\\\\s*=>',\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n { begin: IDENT_RE },\n { begin: /\\(\\s*\\)/ },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n }\n ],\n relevance: 0\n },\n {\n beginKeywords: 'function',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n className: \"title.function\",\n begin: IDENT_RE\n }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n contains: PARAMS_CONTAINS\n }\n ],\n illegal: /\\[|%/\n },\n { begin: /\\$[(.]/ }\n ],\n illegal: /#(?!!)/\n };\n}\n\nmodule.exports = arcade;\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n contains: [\n {\n begin: /\\\\\\n/\n }\n ]\n });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)(' +\n DECLTYPE_AUTO_RE + '|' +\n regex.optional(NAMESPACE_RE) +\n '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE) +\n ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0b[01\\']+)'\n },\n {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n },\n {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n keyword:\n 'if else elif endif define undef warning error line ' +\n 'pragma _Pragma ifdef ifndef include'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, {\n className: 'string'\n }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [\n '_Pragma'\n ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS\n },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: ' rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\n/*\nLanguage: Arduino\nAuthor: Stefania Mellai \nDescription: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.\nWebsite: https://www.arduino.cc\n*/\n\n/** @type LanguageFn */\nfunction arduino(hljs) {\n const ARDUINO_KW = {\n type: [\n \"boolean\",\n \"byte\",\n \"word\",\n \"String\"\n ],\n built_in: [\n \"KeyboardController\",\n \"MouseController\",\n \"SoftwareSerial\",\n \"EthernetServer\",\n \"EthernetClient\",\n \"LiquidCrystal\",\n \"RobotControl\",\n \"GSMVoiceCall\",\n \"EthernetUDP\",\n \"EsploraTFT\",\n \"HttpClient\",\n \"RobotMotor\",\n \"WiFiClient\",\n \"GSMScanner\",\n \"FileSystem\",\n \"Scheduler\",\n \"GSMServer\",\n \"YunClient\",\n \"YunServer\",\n \"IPAddress\",\n \"GSMClient\",\n \"GSMModem\",\n \"Keyboard\",\n \"Ethernet\",\n \"Console\",\n \"GSMBand\",\n \"Esplora\",\n \"Stepper\",\n \"Process\",\n \"WiFiUDP\",\n \"GSM_SMS\",\n \"Mailbox\",\n \"USBHost\",\n \"Firmata\",\n \"PImage\",\n \"Client\",\n \"Server\",\n \"GSMPIN\",\n \"FileIO\",\n \"Bridge\",\n \"Serial\",\n \"EEPROM\",\n \"Stream\",\n \"Mouse\",\n \"Audio\",\n \"Servo\",\n \"File\",\n \"Task\",\n \"GPRS\",\n \"WiFi\",\n \"Wire\",\n \"TFT\",\n \"GSM\",\n \"SPI\",\n \"SD\"\n ],\n _hints: [\n \"setup\",\n \"loop\",\n \"runShellCommandAsynchronously\",\n \"analogWriteResolution\",\n \"retrieveCallingNumber\",\n \"printFirmwareVersion\",\n \"analogReadResolution\",\n \"sendDigitalPortPair\",\n \"noListenOnLocalhost\",\n \"readJoystickButton\",\n \"setFirmwareVersion\",\n \"readJoystickSwitch\",\n \"scrollDisplayRight\",\n \"getVoiceCallStatus\",\n \"scrollDisplayLeft\",\n \"writeMicroseconds\",\n \"delayMicroseconds\",\n \"beginTransmission\",\n \"getSignalStrength\",\n \"runAsynchronously\",\n \"getAsynchronously\",\n \"listenOnLocalhost\",\n \"getCurrentCarrier\",\n \"readAccelerometer\",\n \"messageAvailable\",\n \"sendDigitalPorts\",\n \"lineFollowConfig\",\n \"countryNameWrite\",\n \"runShellCommand\",\n \"readStringUntil\",\n \"rewindDirectory\",\n \"readTemperature\",\n \"setClockDivider\",\n \"readLightSensor\",\n \"endTransmission\",\n \"analogReference\",\n \"detachInterrupt\",\n \"countryNameRead\",\n \"attachInterrupt\",\n \"encryptionType\",\n \"readBytesUntil\",\n \"robotNameWrite\",\n \"readMicrophone\",\n \"robotNameRead\",\n \"cityNameWrite\",\n \"userNameWrite\",\n \"readJoystickY\",\n \"readJoystickX\",\n \"mouseReleased\",\n \"openNextFile\",\n \"scanNetworks\",\n \"noInterrupts\",\n \"digitalWrite\",\n \"beginSpeaker\",\n \"mousePressed\",\n \"isActionDone\",\n \"mouseDragged\",\n \"displayLogos\",\n \"noAutoscroll\",\n \"addParameter\",\n \"remoteNumber\",\n \"getModifiers\",\n \"keyboardRead\",\n \"userNameRead\",\n \"waitContinue\",\n \"processInput\",\n \"parseCommand\",\n \"printVersion\",\n \"readNetworks\",\n \"writeMessage\",\n \"blinkVersion\",\n \"cityNameRead\",\n \"readMessage\",\n \"setDataMode\",\n \"parsePacket\",\n \"isListening\",\n \"setBitOrder\",\n \"beginPacket\",\n \"isDirectory\",\n \"motorsWrite\",\n \"drawCompass\",\n \"digitalRead\",\n \"clearScreen\",\n \"serialEvent\",\n \"rightToLeft\",\n \"setTextSize\",\n \"leftToRight\",\n \"requestFrom\",\n \"keyReleased\",\n \"compassRead\",\n \"analogWrite\",\n \"interrupts\",\n \"WiFiServer\",\n \"disconnect\",\n \"playMelody\",\n \"parseFloat\",\n \"autoscroll\",\n \"getPINUsed\",\n \"setPINUsed\",\n \"setTimeout\",\n \"sendAnalog\",\n \"readSlider\",\n \"analogRead\",\n \"beginWrite\",\n \"createChar\",\n \"motorsStop\",\n \"keyPressed\",\n \"tempoWrite\",\n \"readButton\",\n \"subnetMask\",\n \"debugPrint\",\n \"macAddress\",\n \"writeGreen\",\n \"randomSeed\",\n \"attachGPRS\",\n \"readString\",\n \"sendString\",\n \"remotePort\",\n \"releaseAll\",\n \"mouseMoved\",\n \"background\",\n \"getXChange\",\n \"getYChange\",\n \"answerCall\",\n \"getResult\",\n \"voiceCall\",\n \"endPacket\",\n \"constrain\",\n \"getSocket\",\n \"writeJSON\",\n \"getButton\",\n \"available\",\n \"connected\",\n \"findUntil\",\n \"readBytes\",\n \"exitValue\",\n \"readGreen\",\n \"writeBlue\",\n \"startLoop\",\n \"IPAddress\",\n \"isPressed\",\n \"sendSysex\",\n \"pauseMode\",\n \"gatewayIP\",\n \"setCursor\",\n \"getOemKey\",\n \"tuneWrite\",\n \"noDisplay\",\n \"loadImage\",\n \"switchPIN\",\n \"onRequest\",\n \"onReceive\",\n \"changePIN\",\n \"playFile\",\n \"noBuffer\",\n \"parseInt\",\n \"overflow\",\n \"checkPIN\",\n \"knobRead\",\n \"beginTFT\",\n \"bitClear\",\n \"updateIR\",\n \"bitWrite\",\n \"position\",\n \"writeRGB\",\n \"highByte\",\n \"writeRed\",\n \"setSpeed\",\n \"readBlue\",\n \"noStroke\",\n \"remoteIP\",\n \"transfer\",\n \"shutdown\",\n \"hangCall\",\n \"beginSMS\",\n \"endWrite\",\n \"attached\",\n \"maintain\",\n \"noCursor\",\n \"checkReg\",\n \"checkPUK\",\n \"shiftOut\",\n \"isValid\",\n \"shiftIn\",\n \"pulseIn\",\n \"connect\",\n \"println\",\n \"localIP\",\n \"pinMode\",\n \"getIMEI\",\n \"display\",\n \"noBlink\",\n \"process\",\n \"getBand\",\n \"running\",\n \"beginSD\",\n \"drawBMP\",\n \"lowByte\",\n \"setBand\",\n \"release\",\n \"bitRead\",\n \"prepare\",\n \"pointTo\",\n \"readRed\",\n \"setMode\",\n \"noFill\",\n \"remove\",\n \"listen\",\n \"stroke\",\n \"detach\",\n \"attach\",\n \"noTone\",\n \"exists\",\n \"buffer\",\n \"height\",\n \"bitSet\",\n \"circle\",\n \"config\",\n \"cursor\",\n \"random\",\n \"IRread\",\n \"setDNS\",\n \"endSMS\",\n \"getKey\",\n \"micros\",\n \"millis\",\n \"begin\",\n \"print\",\n \"write\",\n \"ready\",\n \"flush\",\n \"width\",\n \"isPIN\",\n \"blink\",\n \"clear\",\n \"press\",\n \"mkdir\",\n \"rmdir\",\n \"close\",\n \"point\",\n \"yield\",\n \"image\",\n \"BSSID\",\n \"click\",\n \"delay\",\n \"read\",\n \"text\",\n \"move\",\n \"peek\",\n \"beep\",\n \"rect\",\n \"line\",\n \"open\",\n \"seek\",\n \"fill\",\n \"size\",\n \"turn\",\n \"stop\",\n \"home\",\n \"find\",\n \"step\",\n \"tone\",\n \"sqrt\",\n \"RSSI\",\n \"SSID\",\n \"end\",\n \"bit\",\n \"tan\",\n \"cos\",\n \"sin\",\n \"pow\",\n \"map\",\n \"abs\",\n \"max\",\n \"min\",\n \"get\",\n \"run\",\n \"put\"\n ],\n literal: [\n \"DIGITAL_MESSAGE\",\n \"FIRMATA_STRING\",\n \"ANALOG_MESSAGE\",\n \"REPORT_DIGITAL\",\n \"REPORT_ANALOG\",\n \"INPUT_PULLUP\",\n \"SET_PIN_MODE\",\n \"INTERNAL2V56\",\n \"SYSTEM_RESET\",\n \"LED_BUILTIN\",\n \"INTERNAL1V1\",\n \"SYSEX_START\",\n \"INTERNAL\",\n \"EXTERNAL\",\n \"DEFAULT\",\n \"OUTPUT\",\n \"INPUT\",\n \"HIGH\",\n \"LOW\"\n ]\n };\n\n const ARDUINO = cPlusPlus(hljs);\n\n const kws = /** @type {Record} */ (ARDUINO.keywords);\n\n kws.type = [ ...kws.type, ...ARDUINO_KW.type ];\n kws.literal = [ ...kws.literal, ...ARDUINO_KW.literal ];\n kws.built_in = [ ...kws.built_in, ...ARDUINO_KW.built_in ];\n kws._hints = ARDUINO_KW._hints;\n\n ARDUINO.name = 'Arduino';\n ARDUINO.aliases = ['ino'];\n ARDUINO.supersetOf = \"cpp\";\n\n return ARDUINO;\n}\n\nmodule.exports = arduino;\n","/*\nLanguage: ARM Assembly\nAuthor: Dan Panzarella \nDescription: ARM Assembly including Thumb and Thumb2 instructions\nCategory: assembler\n*/\n\n/** @type LanguageFn */\nfunction armasm(hljs) {\n // local labels: %?[FB]?[AT]?\\d{1,2}\\w+\n\n const COMMENT = {\n variants: [\n hljs.COMMENT('^[ \\\\t]*(?=#)', '$', {\n relevance: 0,\n excludeBegin: true\n }),\n hljs.COMMENT('[;@]', '$', {\n relevance: 0\n }),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n return {\n name: 'ARM Assembly',\n case_insensitive: true,\n aliases: ['arm'],\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n meta:\n // GNU preprocs\n '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ' +\n // ARM directives\n 'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',\n built_in:\n 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 ' + // standard registers\n 'pc lr sp ip sl sb fp ' + // typical regs plus backward compatibility\n 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 ' + // more regs and fp\n 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 ' + // coprocessor regs\n 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 ' + // more coproc\n 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 ' + // advanced SIMD NEON regs\n\n // program status registers\n 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf ' +\n 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf ' +\n\n // NEON and VFP registers\n 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 ' +\n 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 ' +\n 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 ' +\n 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +\n\n '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'\n },\n contains: [\n {\n className: 'keyword',\n begin: '\\\\b(' + // mnemonics\n 'adc|' +\n '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|' +\n 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|' +\n 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|' +\n 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|' +\n 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|' +\n 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|' +\n 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|' +\n 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|' +\n 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|' +\n 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|' +\n '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|' +\n 'wfe|wfi|yield' +\n ')' +\n '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?' + // condition codes\n '[sptrx]?' + // legal postfixes\n '(?=\\\\s)' // followed by space\n },\n COMMENT,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n relevance: 0\n },\n {\n className: 'title',\n begin: '\\\\|',\n end: '\\\\|',\n illegal: '\\\\n',\n relevance: 0\n },\n {\n className: 'number',\n variants: [\n { // hex\n begin: '[#$=]?0x[0-9a-f]+'\n },\n { // bin\n begin: '[#$=]?0b[01]+'\n },\n { // literal\n begin: '[#$=]\\\\d+'\n },\n { // bare number\n begin: '\\\\b\\\\d+'\n }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n variants: [\n { // GNU ARM syntax\n begin: '^[ \\\\t]*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:'\n },\n { // ARM syntax\n begin: '^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+'\n },\n { // label reference\n begin: '[=#]\\\\w+'\n }\n ],\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = armasm;\n","/*\nLanguage: AsciiDoc\nRequires: xml.js\nAuthor: Dan Allen \nWebsite: http://asciidoc.org\nDescription: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.\nCategory: markup\n*/\n\n/** @type LanguageFn */\nfunction asciidoc(hljs) {\n const regex = hljs.regex;\n const HORIZONTAL_RULE = {\n begin: '^\\'{3,}[ \\\\t]*$',\n relevance: 10\n };\n const ESCAPED_FORMATTING = [\n // escaped constrained formatting marks (i.e., \\* \\_ or \\`)\n {\n begin: /\\\\[*_`]/\n },\n // escaped unconstrained formatting marks (i.e., \\\\** \\\\__ or \\\\``)\n // must ignore until the next formatting marks\n // this rule might not be 100% compliant with Asciidoctor 2.0 but we are entering undefined behavior territory...\n {\n begin: /\\\\\\\\\\*{2}[^\\n]*?\\*{2}/\n },\n {\n begin: /\\\\\\\\_{2}[^\\n]*_{2}/\n },\n {\n begin: /\\\\\\\\`{2}[^\\n]*`{2}/\n },\n // guard: constrained formatting mark may not be preceded by \":\", \";\" or\n // \"}\". match these so the constrained rule doesn't see them\n {\n begin: /[:;}][*_`](?![*_`])/\n }\n ];\n const STRONG = [\n // inline unconstrained strong (single line)\n {\n className: 'strong',\n begin: /\\*{2}([^\\n]+?)\\*{2}/\n },\n // inline unconstrained strong (multi-line)\n {\n className: 'strong',\n begin: regex.concat(\n /\\*\\*/,\n /((\\*(?!\\*)|\\\\[^\\n]|[^*\\n\\\\])+\\n)+/,\n /(\\*(?!\\*)|\\\\[^\\n]|[^*\\n\\\\])*/,\n /\\*\\*/\n ),\n relevance: 0\n },\n // inline constrained strong (single line)\n {\n className: 'strong',\n // must not precede or follow a word character\n begin: /\\B\\*(\\S|\\S[^\\n]*?\\S)\\*(?!\\w)/\n },\n // inline constrained strong (multi-line)\n {\n className: 'strong',\n // must not precede or follow a word character\n begin: /\\*[^\\s]([^\\n]+\\n)+([^\\n]+)\\*/\n }\n ];\n const EMPHASIS = [\n // inline unconstrained emphasis (single line)\n {\n className: 'emphasis',\n begin: /_{2}([^\\n]+?)_{2}/\n },\n // inline unconstrained emphasis (multi-line)\n {\n className: 'emphasis',\n begin: regex.concat(\n /__/,\n /((_(?!_)|\\\\[^\\n]|[^_\\n\\\\])+\\n)+/,\n /(_(?!_)|\\\\[^\\n]|[^_\\n\\\\])*/,\n /__/\n ),\n relevance: 0\n },\n // inline constrained emphasis (single line)\n {\n className: 'emphasis',\n // must not precede or follow a word character\n begin: /\\b_(\\S|\\S[^\\n]*?\\S)_(?!\\w)/\n },\n // inline constrained emphasis (multi-line)\n {\n className: 'emphasis',\n // must not precede or follow a word character\n begin: /_[^\\s]([^\\n]+\\n)+([^\\n]+)_/\n },\n // inline constrained emphasis using single quote (legacy)\n {\n className: 'emphasis',\n // must not follow a word character or be followed by a single quote or space\n begin: '\\\\B\\'(?![\\'\\\\s])',\n end: '(\\\\n{2}|\\')',\n // allow escaped single quote followed by word char\n contains: [{\n begin: '\\\\\\\\\\'\\\\w',\n relevance: 0\n }],\n relevance: 0\n }\n ];\n const ADMONITION = {\n className: 'symbol',\n begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\\\s+',\n relevance: 10\n };\n const BULLET_LIST = {\n className: 'bullet',\n begin: '^(\\\\*+|-+|\\\\.+|[^\\\\n]+?::)\\\\s+'\n };\n\n return {\n name: 'AsciiDoc',\n aliases: ['adoc'],\n contains: [\n // block comment\n hljs.COMMENT(\n '^/{4,}\\\\n',\n '\\\\n/{4,}$',\n // can also be done as...\n // '^/{4,}$',\n // '^/{4,}$',\n {\n relevance: 10\n }\n ),\n // line comment\n hljs.COMMENT(\n '^//',\n '$',\n {\n relevance: 0\n }\n ),\n // title\n {\n className: 'title',\n begin: '^\\\\.\\\\w.*$'\n },\n // example, admonition & sidebar blocks\n {\n begin: '^[=\\\\*]{4,}\\\\n',\n end: '\\\\n^[=\\\\*]{4,}$',\n relevance: 10\n },\n // headings\n {\n className: 'section',\n relevance: 10,\n variants: [\n {\n begin: '^(={1,6})[ \\t].+?([ \\t]\\\\1)?$'\n },\n {\n begin: '^[^\\\\[\\\\]\\\\n]+?\\\\n[=\\\\-~\\\\^\\\\+]{2,}$'\n }\n ]\n },\n // document attributes\n {\n className: 'meta',\n begin: '^:.+?:',\n end: '\\\\s',\n excludeEnd: true,\n relevance: 10\n },\n // block attributes\n {\n className: 'meta',\n begin: '^\\\\[.+?\\\\]$',\n relevance: 0\n },\n // quoteblocks\n {\n className: 'quote',\n begin: '^_{4,}\\\\n',\n end: '\\\\n_{4,}$',\n relevance: 10\n },\n // listing and literal blocks\n {\n className: 'code',\n begin: '^[\\\\-\\\\.]{4,}\\\\n',\n end: '\\\\n[\\\\-\\\\.]{4,}$',\n relevance: 10\n },\n // passthrough blocks\n {\n begin: '^\\\\+{4,}\\\\n',\n end: '\\\\n\\\\+{4,}$',\n contains: [{\n begin: '<',\n end: '>',\n subLanguage: 'xml',\n relevance: 0\n }],\n relevance: 10\n },\n\n BULLET_LIST,\n ADMONITION,\n ...ESCAPED_FORMATTING,\n ...STRONG,\n ...EMPHASIS,\n\n // inline smart quotes\n {\n className: 'string',\n variants: [\n {\n begin: \"``.+?''\"\n },\n {\n begin: \"`.+?'\"\n }\n ]\n },\n // inline unconstrained emphasis\n {\n className: 'code',\n begin: /`{2}/,\n end: /(\\n{2}|`{2})/\n },\n // inline code snippets (TODO should get same treatment as strong and emphasis)\n {\n className: 'code',\n begin: '(`.+?`|\\\\+.+?\\\\+)',\n relevance: 0\n },\n // indented literal block\n {\n className: 'code',\n begin: '^[ \\\\t]',\n end: '$',\n relevance: 0\n },\n HORIZONTAL_RULE,\n // images and links\n {\n begin: '(link:)?(http|https|ftp|file|irc|image:?):\\\\S+?\\\\[[^[]*?\\\\]',\n returnBegin: true,\n contains: [\n {\n begin: '(link|image:?):',\n relevance: 0\n },\n {\n className: 'link',\n begin: '\\\\w',\n end: '[^\\\\[]+',\n relevance: 0\n },\n {\n className: 'string',\n begin: '\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n }\n ],\n relevance: 10\n }\n ]\n };\n}\n\nmodule.exports = asciidoc;\n","/*\nLanguage: AspectJ\nAuthor: Hakan Ozler \nWebsite: https://www.eclipse.org/aspectj/\nDescription: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction aspectj(hljs) {\n const regex = hljs.regex;\n const KEYWORDS = [\n \"false\",\n \"synchronized\",\n \"int\",\n \"abstract\",\n \"float\",\n \"private\",\n \"char\",\n \"boolean\",\n \"static\",\n \"null\",\n \"if\",\n \"const\",\n \"for\",\n \"true\",\n \"while\",\n \"long\",\n \"throw\",\n \"strictfp\",\n \"finally\",\n \"protected\",\n \"import\",\n \"native\",\n \"final\",\n \"return\",\n \"void\",\n \"enum\",\n \"else\",\n \"extends\",\n \"implements\",\n \"break\",\n \"transient\",\n \"new\",\n \"catch\",\n \"instanceof\",\n \"byte\",\n \"super\",\n \"volatile\",\n \"case\",\n \"assert\",\n \"short\",\n \"package\",\n \"default\",\n \"double\",\n \"public\",\n \"try\",\n \"this\",\n \"switch\",\n \"continue\",\n \"throws\",\n \"privileged\",\n \"aspectOf\",\n \"adviceexecution\",\n \"proceed\",\n \"cflowbelow\",\n \"cflow\",\n \"initialization\",\n \"preinitialization\",\n \"staticinitialization\",\n \"withincode\",\n \"target\",\n \"within\",\n \"execution\",\n \"getWithinTypeName\",\n \"handler\",\n \"thisJoinPoint\",\n \"thisJoinPointStaticPart\",\n \"thisEnclosingJoinPointStaticPart\",\n \"declare\",\n \"parents\",\n \"warning\",\n \"error\",\n \"soft\",\n \"precedence\",\n \"thisAspectInstance\"\n ];\n const SHORTKEYS = [\n \"get\",\n \"set\",\n \"args\",\n \"call\"\n ];\n\n return {\n name: 'AspectJ',\n keywords: KEYWORDS,\n illegal: /<\\/|#/,\n contains: [\n hljs.COMMENT(\n /\\/\\*\\*/,\n /\\*\\//,\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n },\n {\n className: 'doctag',\n begin: /@[A-Za-z]+/\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'class',\n beginKeywords: 'aspect',\n end: /[{;=]/,\n excludeEnd: true,\n illegal: /[:;\"\\[\\]]/,\n contains: [\n {\n beginKeywords: 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'\n },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: /\\([^\\)]*/,\n end: /[)]+/,\n keywords: KEYWORDS.concat(SHORTKEYS),\n excludeEnd: false\n }\n ]\n },\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: /[{;=]/,\n excludeEnd: true,\n relevance: 0,\n keywords: 'class interface',\n illegal: /[:\"\\[\\]]/,\n contains: [\n {\n beginKeywords: 'extends implements'\n },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n // AspectJ Constructs\n beginKeywords: 'pointcut after before around throwing returning',\n end: /[)]/,\n excludeEnd: false,\n illegal: /[\"\\[\\]]/,\n contains: [\n {\n begin: regex.concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n returnBegin: true,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n }\n ]\n },\n {\n begin: /[:]/,\n returnBegin: true,\n end: /[{;]/,\n relevance: 0,\n excludeEnd: false,\n keywords: KEYWORDS,\n illegal: /[\"\\[\\]]/,\n contains: [\n {\n begin: regex.concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n keywords: KEYWORDS.concat(SHORTKEYS),\n relevance: 0\n },\n hljs.QUOTE_STRING_MODE\n ]\n },\n {\n // this prevents 'new Name(...), or throw ...' from being recognized as a function definition\n beginKeywords: 'new throw',\n relevance: 0\n },\n {\n // the function class is a bit different for AspectJ compared to the Java language\n className: 'function',\n begin: /\\w+ +\\w+(\\.\\w+)?\\s*\\([^\\)]*\\)\\s*((throws)[\\w\\s,]+)?[\\{;]/,\n returnBegin: true,\n end: /[{;=]/,\n keywords: KEYWORDS,\n excludeEnd: true,\n contains: [\n {\n begin: regex.concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n returnBegin: true,\n relevance: 0,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: KEYWORDS,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_NUMBER_MODE,\n {\n // annotation is also used in this language\n className: 'meta',\n begin: /@[A-Za-z]+/\n }\n ]\n };\n}\n\nmodule.exports = aspectj;\n","/*\nLanguage: AutoHotkey\nAuthor: Seongwon Lee \nDescription: AutoHotkey language definition\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction autohotkey(hljs) {\n const BACKTICK_ESCAPE = {\n begin: '`[\\\\s\\\\S]'\n };\n\n return {\n name: 'AutoHotkey',\n case_insensitive: true,\n aliases: ['ahk'],\n keywords: {\n keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group',\n literal: 'true false NOT AND OR',\n built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel'\n },\n contains: [\n BACKTICK_ESCAPE,\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n contains: [BACKTICK_ESCAPE]\n }),\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'number',\n begin: hljs.NUMBER_RE,\n relevance: 0\n },\n {\n // subst would be the most accurate however fails the point of\n // highlighting. variable is comparably the most accurate that actually\n // has some effect\n className: 'variable',\n begin: '%[a-zA-Z0-9#_$@]+%'\n },\n {\n className: 'built_in',\n begin: '^\\\\s*\\\\w+\\\\s*(,|%)'\n // I don't really know if this is totally relevant\n },\n {\n // symbol would be most accurate however is highlighted just like\n // built_in and that makes up a lot of AutoHotkey code meaning that it\n // would fail to highlight anything\n className: 'title',\n variants: [\n {\n begin: '^[^\\\\n\";]+::(?!=)'\n },\n {\n begin: '^[^\\\\n\";]+:(?!=)',\n // zero relevance as it catches a lot of things\n // followed by a single ':' in many languages\n relevance: 0\n }\n ]\n },\n {\n className: 'meta',\n begin: '^\\\\s*#\\\\w+',\n end: '$',\n relevance: 0\n },\n {\n className: 'built_in',\n begin: 'A_[a-zA-Z0-9]+'\n },\n {\n // consecutive commas, not for highlighting but just for relevance\n begin: ',\\\\s*,'\n }\n ]\n };\n}\n\nmodule.exports = autohotkey;\n","/*\nLanguage: AutoIt\nAuthor: Manh Tuan \nDescription: AutoIt language definition\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction autoit(hljs) {\n const KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' +\n 'Dim Do Else ElseIf EndFunc EndIf EndSelect ' +\n 'EndSwitch EndWith Enum Exit ExitLoop For Func ' +\n 'Global If In Local Next ReDim Return Select Static ' +\n 'Step Switch Then To Until Volatile WEnd While With';\n\n const DIRECTIVES = [\n \"EndRegion\",\n \"forcedef\",\n \"forceref\",\n \"ignorefunc\",\n \"include\",\n \"include-once\",\n \"NoTrayIcon\",\n \"OnAutoItStartRegister\",\n \"pragma\",\n \"Region\",\n \"RequireAdmin\",\n \"Tidy_Off\",\n \"Tidy_On\",\n \"Tidy_Parameters\"\n ];\n\n const LITERAL = 'True False And Null Not Or Default';\n\n const BUILT_IN\n = 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive';\n\n const COMMENT = {\n variants: [\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n hljs.COMMENT('#cs', '#ce'),\n hljs.COMMENT('#comments-start', '#comments-end')\n ]\n };\n\n const VARIABLE = {\n begin: '\\\\$[A-z0-9_]+'\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [{\n begin: /''/,\n relevance: 0\n }]\n }\n ]\n };\n\n const NUMBER = {\n variants: [\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: {\n keyword: DIRECTIVES\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n {\n beginKeywords: 'include',\n keywords: {\n keyword: 'include'\n },\n end: '$',\n contains: [\n STRING,\n {\n className: 'string',\n variants: [\n {\n begin: '<',\n end: '>'\n },\n {\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [{\n begin: /''/,\n relevance: 0\n }]\n }\n ]\n }\n ]\n },\n STRING,\n COMMENT\n ]\n };\n\n const CONSTANT = {\n className: 'symbol',\n // begin: '@',\n // end: '$',\n // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR',\n // relevance: 5\n begin: '@[A-z0-9_]+'\n };\n\n const FUNCTION = {\n beginKeywords: 'Func',\n end: '$',\n illegal: '\\\\$|\\\\[|%',\n contains: [\n hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { className: \"title.function\" }),\n {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n contains: [\n VARIABLE,\n STRING,\n NUMBER\n ]\n }\n ]\n };\n\n return {\n name: 'AutoIt',\n case_insensitive: true,\n illegal: /\\/\\*/,\n keywords: {\n keyword: KEYWORDS,\n built_in: BUILT_IN,\n literal: LITERAL\n },\n contains: [\n COMMENT,\n VARIABLE,\n STRING,\n NUMBER,\n PREPROCESSOR,\n CONSTANT,\n FUNCTION\n ]\n };\n}\n\nmodule.exports = autoit;\n","/*\nLanguage: AVR Assembly\nAuthor: Vladimir Ermakov \nCategory: assembler\nWebsite: https://www.microchip.com/webdoc/avrassembler/avrassembler.wb_instruction_list.html\n*/\n\n/** @type LanguageFn */\nfunction avrasm(hljs) {\n return {\n name: 'AVR Assembly',\n case_insensitive: true,\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n keyword:\n /* mnemonic */\n 'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +\n 'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +\n 'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +\n 'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +\n 'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +\n 'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +\n 'subi swap tst wdr',\n built_in:\n /* general purpose registers */\n 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +\n 'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +\n /* IO Registers (ATMega128) */\n 'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +\n 'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +\n 'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +\n 'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +\n 'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +\n 'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +\n 'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +\n 'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',\n meta:\n '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +\n '.listmac .macro .nolist .org .set'\n },\n contains: [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.COMMENT(\n ';',\n '$',\n {\n relevance: 0\n }\n ),\n hljs.C_NUMBER_MODE, // 0x..., decimal, float\n hljs.BINARY_NUMBER_MODE, // 0b...\n {\n className: 'number',\n begin: '\\\\b(\\\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...\n },\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n illegal: '[^\\\\\\\\][^\\']'\n },\n {\n className: 'symbol',\n begin: '^[A-Za-z0-9_.$]+:'\n },\n {\n className: 'meta',\n begin: '#',\n end: '$'\n },\n { // substitution within a macro\n className: 'subst',\n begin: '@[0-9]+'\n }\n ]\n };\n}\n\nmodule.exports = avrasm;\n","/*\nLanguage: Awk\nAuthor: Matthew Daly \nWebsite: https://www.gnu.org/software/gawk/manual/gawk.html\nDescription: language definition for Awk scripts\n*/\n\n/** @type LanguageFn */\nfunction awk(hljs) {\n const VARIABLE = {\n className: 'variable',\n variants: [\n {\n begin: /\\$[\\w\\d#@][\\w\\d_]*/\n },\n {\n begin: /\\$\\{(.*?)\\}/\n }\n ]\n };\n const KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';\n const STRING = {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [\n {\n begin: /(u|b)?r?'''/,\n end: /'''/,\n relevance: 10\n },\n {\n begin: /(u|b)?r?\"\"\"/,\n end: /\"\"\"/,\n relevance: 10\n },\n {\n begin: /(u|r|ur)'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /(u|r|ur)\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /(b|br)'/,\n end: /'/\n },\n {\n begin: /(b|br)\"/,\n end: /\"/\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n return {\n name: 'Awk',\n keywords: {\n keyword: KEYWORDS\n },\n contains: [\n VARIABLE,\n STRING,\n hljs.REGEXP_MODE,\n hljs.HASH_COMMENT_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = awk;\n","/*\nLanguage: Microsoft X++\nDescription: X++ is a language used in Microsoft Dynamics 365, Dynamics AX, and Axapta.\nAuthor: Dmitri Roudakov \nWebsite: https://dynamics.microsoft.com/en-us/ax-overview/\nCategory: enterprise\n*/\n\n/** @type LanguageFn */\nfunction axapta(hljs) {\n const IDENT_RE = hljs.UNDERSCORE_IDENT_RE;\n const BUILT_IN_KEYWORDS = [\n 'anytype',\n 'boolean',\n 'byte',\n 'char',\n 'container',\n 'date',\n 'double',\n 'enum',\n 'guid',\n 'int',\n 'int64',\n 'long',\n 'real',\n 'short',\n 'str',\n 'utcdatetime',\n 'var'\n ];\n\n const LITERAL_KEYWORDS = [\n 'default',\n 'false',\n 'null',\n 'true'\n ];\n\n const NORMAL_KEYWORDS = [\n 'abstract',\n 'as',\n 'asc',\n 'avg',\n 'break',\n 'breakpoint',\n 'by',\n 'byref',\n 'case',\n 'catch',\n 'changecompany',\n 'class',\n 'client',\n 'client',\n 'common',\n 'const',\n 'continue',\n 'count',\n 'crosscompany',\n 'delegate',\n 'delete_from',\n 'desc',\n 'display',\n 'div',\n 'do',\n 'edit',\n 'else',\n 'eventhandler',\n 'exists',\n 'extends',\n 'final',\n 'finally',\n 'firstfast',\n 'firstonly',\n 'firstonly1',\n 'firstonly10',\n 'firstonly100',\n 'firstonly1000',\n 'flush',\n 'for',\n 'forceliterals',\n 'forcenestedloop',\n 'forceplaceholders',\n 'forceselectorder',\n 'forupdate',\n 'from',\n 'generateonly',\n 'group',\n 'hint',\n 'if',\n 'implements',\n 'in',\n 'index',\n 'insert_recordset',\n 'interface',\n 'internal',\n 'is',\n 'join',\n 'like',\n 'maxof',\n 'minof',\n 'mod',\n 'namespace',\n 'new',\n 'next',\n 'nofetch',\n 'notexists',\n 'optimisticlock',\n 'order',\n 'outer',\n 'pessimisticlock',\n 'print',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'repeatableread',\n 'retry',\n 'return',\n 'reverse',\n 'select',\n 'server',\n 'setting',\n 'static',\n 'sum',\n 'super',\n 'switch',\n 'this',\n 'throw',\n 'try',\n 'ttsabort',\n 'ttsbegin',\n 'ttscommit',\n 'unchecked',\n 'update_recordset',\n 'using',\n 'validtimestate',\n 'void',\n 'where',\n 'while'\n ];\n\n const KEYWORDS = {\n keyword: NORMAL_KEYWORDS,\n built_in: BUILT_IN_KEYWORDS,\n literal: LITERAL_KEYWORDS\n };\n\n const CLASS_DEFINITION = {\n variants: [\n {\n match: [\n /(class|interface)\\s+/,\n IDENT_RE,\n /\\s+(extends|implements)\\s+/,\n IDENT_RE\n ]\n },\n {\n match: [\n /class\\s+/,\n IDENT_RE\n ]\n }\n ],\n scope: {\n 2: \"title.class\",\n 4: \"title.class.inherited\"\n },\n keywords: KEYWORDS\n };\n\n return {\n name: 'X++',\n aliases: ['x++'],\n keywords: KEYWORDS,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$'\n },\n CLASS_DEFINITION\n ]\n };\n}\n\nmodule.exports = axapta;\n","/*\nLanguage: Bash\nAuthor: vah \nContributrors: Benjamin Pannell \nWebsite: https://www.gnu.org/software/bash/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction bash(hljs) {\n const regex = hljs.regex;\n const VAR = {};\n const BRACED_VAR = {\n begin: /\\$\\{/,\n end:/\\}/,\n contains: [\n \"self\",\n {\n begin: /:-/,\n contains: [ VAR ]\n } // default values\n ]\n };\n Object.assign(VAR,{\n className: 'variable',\n variants: [\n {begin: regex.concat(/\\$[\\w\\d#@][\\w\\d_]*/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![\\\\w\\\\d])(?![$])`) },\n BRACED_VAR\n ]\n });\n\n const SUBST = {\n className: 'subst',\n begin: /\\$\\(/, end: /\\)/,\n contains: [hljs.BACKSLASH_ESCAPE]\n };\n const HERE_DOC = {\n begin: /<<-?\\s*(?=\\w+)/,\n starts: {\n contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n className: 'string'\n })\n ]\n }\n };\n const QUOTE_STRING = {\n className: 'string',\n begin: /\"/, end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR,\n SUBST\n ]\n };\n SUBST.contains.push(QUOTE_STRING);\n const ESCAPED_QUOTE = {\n className: '',\n begin: /\\\\\"/\n\n };\n const APOS_STRING = {\n className: 'string',\n begin: /'/, end: /'/\n };\n const ARITHMETIC = {\n begin: /\\$\\(\\(/,\n end: /\\)\\)/,\n contains: [\n { begin: /\\d+#[0-9a-f]+/, className: \"number\" },\n hljs.NUMBER_MODE,\n VAR\n ]\n };\n const SH_LIKE_SHELLS = [\n \"fish\",\n \"bash\",\n \"zsh\",\n \"sh\",\n \"csh\",\n \"ksh\",\n \"tcsh\",\n \"dash\",\n \"scsh\",\n ];\n const KNOWN_SHEBANG = hljs.SHEBANG({\n binary: `(${SH_LIKE_SHELLS.join(\"|\")})`,\n relevance: 10\n });\n const FUNCTION = {\n className: 'function',\n begin: /\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,\n returnBegin: true,\n contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\\w[\\w\\d_]*/})],\n relevance: 0\n };\n\n const KEYWORDS = [\n \"if\",\n \"then\",\n \"else\",\n \"elif\",\n \"fi\",\n \"for\",\n \"while\",\n \"in\",\n \"do\",\n \"done\",\n \"case\",\n \"esac\",\n \"function\"\n ];\n\n const LITERALS = [\n \"true\",\n \"false\"\n ];\n\n // to consume paths to prevent keyword matches inside them\n const PATH_MODE = {\n match: /(\\/[a-z._-]+)+/\n };\n\n // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n const SHELL_BUILT_INS = [\n \"break\",\n \"cd\",\n \"continue\",\n \"eval\",\n \"exec\",\n \"exit\",\n \"export\",\n \"getopts\",\n \"hash\",\n \"pwd\",\n \"readonly\",\n \"return\",\n \"shift\",\n \"test\",\n \"times\",\n \"trap\",\n \"umask\",\n \"unset\"\n ];\n\n const BASH_BUILT_INS = [\n \"alias\",\n \"bind\",\n \"builtin\",\n \"caller\",\n \"command\",\n \"declare\",\n \"echo\",\n \"enable\",\n \"help\",\n \"let\",\n \"local\",\n \"logout\",\n \"mapfile\",\n \"printf\",\n \"read\",\n \"readarray\",\n \"source\",\n \"type\",\n \"typeset\",\n \"ulimit\",\n \"unalias\"\n ];\n\n const ZSH_BUILT_INS = [\n \"autoload\",\n \"bg\",\n \"bindkey\",\n \"bye\",\n \"cap\",\n \"chdir\",\n \"clone\",\n \"comparguments\",\n \"compcall\",\n \"compctl\",\n \"compdescribe\",\n \"compfiles\",\n \"compgroups\",\n \"compquote\",\n \"comptags\",\n \"comptry\",\n \"compvalues\",\n \"dirs\",\n \"disable\",\n \"disown\",\n \"echotc\",\n \"echoti\",\n \"emulate\",\n \"fc\",\n \"fg\",\n \"float\",\n \"functions\",\n \"getcap\",\n \"getln\",\n \"history\",\n \"integer\",\n \"jobs\",\n \"kill\",\n \"limit\",\n \"log\",\n \"noglob\",\n \"popd\",\n \"print\",\n \"pushd\",\n \"pushln\",\n \"rehash\",\n \"sched\",\n \"setcap\",\n \"setopt\",\n \"stat\",\n \"suspend\",\n \"ttyctl\",\n \"unfunction\",\n \"unhash\",\n \"unlimit\",\n \"unsetopt\",\n \"vared\",\n \"wait\",\n \"whence\",\n \"where\",\n \"which\",\n \"zcompile\",\n \"zformat\",\n \"zftp\",\n \"zle\",\n \"zmodload\",\n \"zparseopts\",\n \"zprof\",\n \"zpty\",\n \"zregexparse\",\n \"zsocket\",\n \"zstyle\",\n \"ztcp\"\n ];\n\n const GNU_CORE_UTILS = [\n \"chcon\",\n \"chgrp\",\n \"chown\",\n \"chmod\",\n \"cp\",\n \"dd\",\n \"df\",\n \"dir\",\n \"dircolors\",\n \"ln\",\n \"ls\",\n \"mkdir\",\n \"mkfifo\",\n \"mknod\",\n \"mktemp\",\n \"mv\",\n \"realpath\",\n \"rm\",\n \"rmdir\",\n \"shred\",\n \"sync\",\n \"touch\",\n \"truncate\",\n \"vdir\",\n \"b2sum\",\n \"base32\",\n \"base64\",\n \"cat\",\n \"cksum\",\n \"comm\",\n \"csplit\",\n \"cut\",\n \"expand\",\n \"fmt\",\n \"fold\",\n \"head\",\n \"join\",\n \"md5sum\",\n \"nl\",\n \"numfmt\",\n \"od\",\n \"paste\",\n \"ptx\",\n \"pr\",\n \"sha1sum\",\n \"sha224sum\",\n \"sha256sum\",\n \"sha384sum\",\n \"sha512sum\",\n \"shuf\",\n \"sort\",\n \"split\",\n \"sum\",\n \"tac\",\n \"tail\",\n \"tr\",\n \"tsort\",\n \"unexpand\",\n \"uniq\",\n \"wc\",\n \"arch\",\n \"basename\",\n \"chroot\",\n \"date\",\n \"dirname\",\n \"du\",\n \"echo\",\n \"env\",\n \"expr\",\n \"factor\",\n // \"false\", // keyword literal already\n \"groups\",\n \"hostid\",\n \"id\",\n \"link\",\n \"logname\",\n \"nice\",\n \"nohup\",\n \"nproc\",\n \"pathchk\",\n \"pinky\",\n \"printenv\",\n \"printf\",\n \"pwd\",\n \"readlink\",\n \"runcon\",\n \"seq\",\n \"sleep\",\n \"stat\",\n \"stdbuf\",\n \"stty\",\n \"tee\",\n \"test\",\n \"timeout\",\n // \"true\", // keyword literal already\n \"tty\",\n \"uname\",\n \"unlink\",\n \"uptime\",\n \"users\",\n \"who\",\n \"whoami\",\n \"yes\"\n ];\n\n return {\n name: 'Bash',\n aliases: ['sh'],\n keywords: {\n $pattern: /\\b[a-z._-]+\\b/,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in:[\n ...SHELL_BUILT_INS,\n ...BASH_BUILT_INS,\n // Shell modifiers\n \"set\",\n \"shopt\",\n ...ZSH_BUILT_INS,\n ...GNU_CORE_UTILS\n ]\n },\n contains: [\n KNOWN_SHEBANG, // to catch known shells and boost relevancy\n hljs.SHEBANG(), // to catch unknown shells but still highlight the shebang\n FUNCTION,\n ARITHMETIC,\n hljs.HASH_COMMENT_MODE,\n HERE_DOC,\n PATH_MODE,\n QUOTE_STRING,\n ESCAPED_QUOTE,\n APOS_STRING,\n VAR\n ]\n };\n}\n\nmodule.exports = bash;\n","/*\nLanguage: BASIC\nAuthor: Raphaël Assénat \nDescription: Based on the BASIC reference from the Tandy 1000 guide\nWebsite: https://en.wikipedia.org/wiki/Tandy_1000\n*/\n\n/** @type LanguageFn */\nfunction basic(hljs) {\n const KEYWORDS = [\n \"ABS\",\n \"ASC\",\n \"AND\",\n \"ATN\",\n \"AUTO|0\",\n \"BEEP\",\n \"BLOAD|10\",\n \"BSAVE|10\",\n \"CALL\",\n \"CALLS\",\n \"CDBL\",\n \"CHAIN\",\n \"CHDIR\",\n \"CHR$|10\",\n \"CINT\",\n \"CIRCLE\",\n \"CLEAR\",\n \"CLOSE\",\n \"CLS\",\n \"COLOR\",\n \"COM\",\n \"COMMON\",\n \"CONT\",\n \"COS\",\n \"CSNG\",\n \"CSRLIN\",\n \"CVD\",\n \"CVI\",\n \"CVS\",\n \"DATA\",\n \"DATE$\",\n \"DEFDBL\",\n \"DEFINT\",\n \"DEFSNG\",\n \"DEFSTR\",\n \"DEF|0\",\n \"SEG\",\n \"USR\",\n \"DELETE\",\n \"DIM\",\n \"DRAW\",\n \"EDIT\",\n \"END\",\n \"ENVIRON\",\n \"ENVIRON$\",\n \"EOF\",\n \"EQV\",\n \"ERASE\",\n \"ERDEV\",\n \"ERDEV$\",\n \"ERL\",\n \"ERR\",\n \"ERROR\",\n \"EXP\",\n \"FIELD\",\n \"FILES\",\n \"FIX\",\n \"FOR|0\",\n \"FRE\",\n \"GET\",\n \"GOSUB|10\",\n \"GOTO\",\n \"HEX$\",\n \"IF\",\n \"THEN\",\n \"ELSE|0\",\n \"INKEY$\",\n \"INP\",\n \"INPUT\",\n \"INPUT#\",\n \"INPUT$\",\n \"INSTR\",\n \"IMP\",\n \"INT\",\n \"IOCTL\",\n \"IOCTL$\",\n \"KEY\",\n \"ON\",\n \"OFF\",\n \"LIST\",\n \"KILL\",\n \"LEFT$\",\n \"LEN\",\n \"LET\",\n \"LINE\",\n \"LLIST\",\n \"LOAD\",\n \"LOC\",\n \"LOCATE\",\n \"LOF\",\n \"LOG\",\n \"LPRINT\",\n \"USING\",\n \"LSET\",\n \"MERGE\",\n \"MID$\",\n \"MKDIR\",\n \"MKD$\",\n \"MKI$\",\n \"MKS$\",\n \"MOD\",\n \"NAME\",\n \"NEW\",\n \"NEXT\",\n \"NOISE\",\n \"NOT\",\n \"OCT$\",\n \"ON\",\n \"OR\",\n \"PEN\",\n \"PLAY\",\n \"STRIG\",\n \"OPEN\",\n \"OPTION\",\n \"BASE\",\n \"OUT\",\n \"PAINT\",\n \"PALETTE\",\n \"PCOPY\",\n \"PEEK\",\n \"PMAP\",\n \"POINT\",\n \"POKE\",\n \"POS\",\n \"PRINT\",\n \"PRINT]\",\n \"PSET\",\n \"PRESET\",\n \"PUT\",\n \"RANDOMIZE\",\n \"READ\",\n \"REM\",\n \"RENUM\",\n \"RESET|0\",\n \"RESTORE\",\n \"RESUME\",\n \"RETURN|0\",\n \"RIGHT$\",\n \"RMDIR\",\n \"RND\",\n \"RSET\",\n \"RUN\",\n \"SAVE\",\n \"SCREEN\",\n \"SGN\",\n \"SHELL\",\n \"SIN\",\n \"SOUND\",\n \"SPACE$\",\n \"SPC\",\n \"SQR\",\n \"STEP\",\n \"STICK\",\n \"STOP\",\n \"STR$\",\n \"STRING$\",\n \"SWAP\",\n \"SYSTEM\",\n \"TAB\",\n \"TAN\",\n \"TIME$\",\n \"TIMER\",\n \"TROFF\",\n \"TRON\",\n \"TO\",\n \"USR\",\n \"VAL\",\n \"VARPTR\",\n \"VARPTR$\",\n \"VIEW\",\n \"WAIT\",\n \"WHILE\",\n \"WEND\",\n \"WIDTH\",\n \"WINDOW\",\n \"WRITE\",\n \"XOR\"\n ];\n\n return {\n name: 'BASIC',\n case_insensitive: true,\n illegal: '^\\.',\n // Support explicitly typed variables that end with $%! or #.\n keywords: {\n $pattern: '[a-zA-Z][a-zA-Z0-9_$%!#]*',\n keyword: KEYWORDS\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.COMMENT('REM', '$', {\n relevance: 10\n }),\n hljs.COMMENT('\\'', '$', {\n relevance: 0\n }),\n {\n // Match line numbers\n className: 'symbol',\n begin: '^[0-9]+ ',\n relevance: 10\n },\n {\n // Match typed numeric constants (1000, 12.34!, 1.2e5, 1.5#, 1.2D2)\n className: 'number',\n begin: '\\\\b\\\\d+(\\\\.\\\\d+)?([edED]\\\\d+)?[#\\!]?',\n relevance: 0\n },\n {\n // Match hexadecimal numbers (&Hxxxx)\n className: 'number',\n begin: '(&[hH][0-9a-fA-F]{1,4})'\n },\n {\n // Match octal numbers (&Oxxxxxx)\n className: 'number',\n begin: '(&[oO][0-7]{1,6})'\n }\n ]\n };\n}\n\nmodule.exports = basic;\n","/*\nLanguage: Backus–Naur Form\nWebsite: https://en.wikipedia.org/wiki/Backus–Naur_form\nAuthor: Oleg Efimov \n*/\n\n/** @type LanguageFn */\nfunction bnf(hljs) {\n return {\n name: 'Backus–Naur Form',\n contains: [\n // Attribute\n {\n className: 'attribute',\n begin: //\n },\n // Specific\n {\n begin: /::=/,\n end: /$/,\n contains: [\n {\n begin: //\n },\n // Common\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n }\n ]\n };\n}\n\nmodule.exports = bnf;\n","/*\nLanguage: Brainfuck\nAuthor: Evgeny Stepanischev \nWebsite: https://esolangs.org/wiki/Brainfuck\n*/\n\n/** @type LanguageFn */\nfunction brainfuck(hljs) {\n const LITERAL = {\n className: 'literal',\n begin: /[+-]/,\n relevance: 0\n };\n return {\n name: 'Brainfuck',\n aliases: ['bf'],\n contains: [\n hljs.COMMENT(\n '[^\\\\[\\\\]\\\\.,\\\\+\\\\-<> \\r\\n]',\n '[\\\\[\\\\]\\\\.,\\\\+\\\\-<> \\r\\n]',\n {\n returnEnd: true,\n relevance: 0\n }\n ),\n {\n className: 'title',\n begin: '[\\\\[\\\\]]',\n relevance: 0\n },\n {\n className: 'string',\n begin: '[\\\\.,]',\n relevance: 0\n },\n {\n // this mode works as the only relevance counter\n begin: /(?:\\+\\+|--)/,\n contains: [LITERAL]\n },\n LITERAL\n ]\n };\n}\n\nmodule.exports = brainfuck;\n"],"names":["module","exports","hljs","UNDERSCORE_IDENT_RE","KEYWORD","v7_keywords","LITERAL","NUMBERS","inherit","NUMBER_MODE","STRINGS","className","begin","end","contains","DATE","excludeBegin","excludeEnd","COMMENTS","C_LINE_COMMENT_MODE","name","case_insensitive","keywords","$pattern","keyword","built_in","v7_system_constants","class","v8_system_sets_of_values","type","v8_shared_object","literal","v7_meta_keywords","variants","endsParent","endsWithParent","TITLE_MODE","regex","COMMENT","illegal","scope","match","concat","QUOTE_STRING_MODE","HTTP_VERBS","relevance","either","IDENT_RE","PKG_NAME_RE","AS3_REST_ARG_MODE","aliases","APOS_STRING_MODE","C_BLOCK_COMMENT_MODE","C_NUMBER_MODE","beginKeywords","METHOD_GUARD","ID_REGEX","BAD_CHARS","VAR_DECLS","returnBegin","builtInTypeMode","objectHandleMode","genericMode","BACKSLASH_ESCAPE","IP_ADDRESS","HASH_COMMENT_MODE","_","starts","STRING","PARAMS","COMMENT_MODE_1","UNDERSCORE_TITLE_MODE","KEYWORDS","NUMBER","C_NUMBER_RE","SUBST","TEMPLATE_STRING","REGEXP_MODE","PARAMS_CONTAINS","RE_STARTERS_RE","ARDUINO_KW","_hints","ARDUINO","DECLTYPE_AUTO_RE","NAMESPACE_RE","FUNCTION_TYPE_RE","optional","CPP_PRIMITIVE_TYPES","END_SAME_AS_BEGIN","PREPROCESSOR","FUNCTION_TITLE","CPP_KEYWORDS","_type_hints","FUNCTION_DISPATCH","_hint","lookahead","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","FUNCTION_DECLARATION","classNameAliases","cPlusPlus","kws","supersetOf","meta","STRONG","EMPHASIS","subLanguage","SHORTKEYS","BACKTICK_ESCAPE","NUMBER_RE","VARIABLE","BINARY_NUMBER_MODE","CLASS_DEFINITION","VAR","BRACED_VAR","Object","assign","HERE_DOC","QUOTE_STRING","push","ARITHMETIC","KNOWN_SHEBANG","SHEBANG","binary","join","FUNCTION","returnEnd"],"sourceRoot":""} \ No newline at end of file diff --git a/js/128.js b/js/128.js deleted file mode 100644 index 9965ea0d..00000000 --- a/js/128.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunksakurairo_scripts=self.webpackChunksakurairo_scripts||[]).push([[128],{8128:function(e,t,n){var a=n(3390);a.registerLanguage("1c",n(908)),a.registerLanguage("abnf",n(2853)),a.registerLanguage("accesslog",n(5976)),a.registerLanguage("actionscript",n(5505)),a.registerLanguage("ada",n(59)),a.registerLanguage("angelscript",n(2921)),a.registerLanguage("apache",n(4998)),a.registerLanguage("applescript",n(9733)),a.registerLanguage("arcade",n(149)),a.registerLanguage("arduino",n(9860)),a.registerLanguage("armasm",n(3138)),a.registerLanguage("xml",n(4610)),a.registerLanguage("asciidoc",n(8699)),a.registerLanguage("aspectj",n(9950)),a.registerLanguage("autohotkey",n(1599)),a.registerLanguage("autoit",n(1892)),a.registerLanguage("avrasm",n(3105)),a.registerLanguage("awk",n(4868)),a.registerLanguage("axapta",n(2059)),a.registerLanguage("bash",n(8780)),a.registerLanguage("basic",n(995)),a.registerLanguage("bnf",n(7061)),a.registerLanguage("brainfuck",n(6380)),a.registerLanguage("c",n(612)),a.registerLanguage("cal",n(5762)),a.registerLanguage("capnproto",n(614)),a.registerLanguage("ceylon",n(3796)),a.registerLanguage("clean",n(2222)),a.registerLanguage("clojure",n(2177)),a.registerLanguage("clojure-repl",n(2012)),a.registerLanguage("cmake",n(5849)),a.registerLanguage("coffeescript",n(5437)),a.registerLanguage("coq",n(9087)),a.registerLanguage("cos",n(2569)),a.registerLanguage("cpp",n(6248)),a.registerLanguage("crmsh",n(7740)),a.registerLanguage("crystal",n(3147)),a.registerLanguage("csharp",n(3707)),a.registerLanguage("csp",n(9534)),a.registerLanguage("css",n(5064)),a.registerLanguage("d",n(118)),a.registerLanguage("markdown",n(2003)),a.registerLanguage("dart",n(6642)),a.registerLanguage("delphi",n(7762)),a.registerLanguage("diff",n(7731)),a.registerLanguage("django",n(3189)),a.registerLanguage("dns",n(1344)),a.registerLanguage("dockerfile",n(7360)),a.registerLanguage("dos",n(605)),a.registerLanguage("dsconfig",n(7522)),a.registerLanguage("dts",n(1729)),a.registerLanguage("dust",n(1450)),a.registerLanguage("ebnf",n(3039)),a.registerLanguage("elixir",n(2543)),a.registerLanguage("elm",n(5658)),a.registerLanguage("ruby",n(7905)),a.registerLanguage("erb",n(2151)),a.registerLanguage("erlang-repl",n(2282)),a.registerLanguage("erlang",n(7569)),a.registerLanguage("excel",n(5817)),a.registerLanguage("fix",n(3146)),a.registerLanguage("flix",n(3090)),a.registerLanguage("fortran",n(3532)),a.registerLanguage("fsharp",n(6652)),a.registerLanguage("gams",n(7903)),a.registerLanguage("gauss",n(5004)),a.registerLanguage("gcode",n(1871)),a.registerLanguage("gherkin",n(6499)),a.registerLanguage("glsl",n(1942)),a.registerLanguage("gml",n(1921)),a.registerLanguage("go",n(2399)),a.registerLanguage("golo",n(9574)),a.registerLanguage("gradle",n(9878)),a.registerLanguage("groovy",n(4658)),a.registerLanguage("haml",n(1950)),a.registerLanguage("handlebars",n(1407)),a.registerLanguage("haskell",n(7077)),a.registerLanguage("haxe",n(2720)),a.registerLanguage("hsp",n(9662)),a.registerLanguage("http",n(8937)),a.registerLanguage("hy",n(9358)),a.registerLanguage("inform7",n(4458)),a.registerLanguage("ini",n(4762)),a.registerLanguage("irpf90",n(320)),a.registerLanguage("isbl",n(4664)),a.registerLanguage("java",n(8257)),a.registerLanguage("javascript",n(978)),a.registerLanguage("jboss-cli",n(4111)),a.registerLanguage("json",n(14)),a.registerLanguage("julia",n(4629)),a.registerLanguage("julia-repl",n(5850)),a.registerLanguage("kotlin",n(5812)),a.registerLanguage("lasso",n(3530)),a.registerLanguage("latex",n(7408)),a.registerLanguage("ldif",n(7604)),a.registerLanguage("leaf",n(3961)),a.registerLanguage("less",n(4210)),a.registerLanguage("lisp",n(1943)),a.registerLanguage("livecodeserver",n(2299)),a.registerLanguage("livescript",n(9735)),a.registerLanguage("llvm",n(4972)),a.registerLanguage("lsl",n(7034)),a.registerLanguage("lua",n(4981)),a.registerLanguage("makefile",n(8794)),a.registerLanguage("mathematica",n(8601)),a.registerLanguage("matlab",n(8009)),a.registerLanguage("maxima",n(7020)),a.registerLanguage("mel",n(7739)),a.registerLanguage("mercury",n(4261)),a.registerLanguage("mipsasm",n(4807)),a.registerLanguage("mizar",n(9291)),a.registerLanguage("perl",n(2482)),a.registerLanguage("mojolicious",n(8895)),a.registerLanguage("monkey",n(9676)),a.registerLanguage("moonscript",n(6486)),a.registerLanguage("n1ql",n(1414)),a.registerLanguage("nestedtext",n(5384)),a.registerLanguage("nginx",n(4028)),a.registerLanguage("nim",n(5968)),a.registerLanguage("nix",n(4802)),a.registerLanguage("node-repl",n(9609)),a.registerLanguage("nsis",n(9968)),a.registerLanguage("objectivec",n(2446)),a.registerLanguage("ocaml",n(7552)),a.registerLanguage("openscad",n(6277)),a.registerLanguage("oxygene",n(136)),a.registerLanguage("parser3",n(3412)),a.registerLanguage("pf",n(4485)),a.registerLanguage("pgsql",n(9814)),a.registerLanguage("php",n(2656)),a.registerLanguage("php-template",n(5112)),a.registerLanguage("plaintext",n(2437)),a.registerLanguage("pony",n(6874)),a.registerLanguage("powershell",n(5040)),a.registerLanguage("processing",n(5371)),a.registerLanguage("profile",n(3476)),a.registerLanguage("prolog",n(3944)),a.registerLanguage("properties",n(7546)),a.registerLanguage("protobuf",n(5559)),a.registerLanguage("puppet",n(3867)),a.registerLanguage("purebasic",n(2938)),a.registerLanguage("python",n(8245)),a.registerLanguage("python-repl",n(3722)),a.registerLanguage("q",n(2623)),a.registerLanguage("qml",n(3797)),a.registerLanguage("r",n(4730)),a.registerLanguage("reasonml",n(2318)),a.registerLanguage("rib",n(4820)),a.registerLanguage("roboconf",n(1874)),a.registerLanguage("routeros",n(4005)),a.registerLanguage("rsl",n(2852)),a.registerLanguage("ruleslanguage",n(2192)),a.registerLanguage("rust",n(9880)),a.registerLanguage("sas",n(3129)),a.registerLanguage("scala",n(729)),a.registerLanguage("scheme",n(2254)),a.registerLanguage("scilab",n(5149)),a.registerLanguage("scss",n(1062)),a.registerLanguage("shell",n(7874)),a.registerLanguage("smali",n(943)),a.registerLanguage("smalltalk",n(7659)),a.registerLanguage("sml",n(5935)),a.registerLanguage("sqf",n(3677)),a.registerLanguage("sql",n(8935)),a.registerLanguage("stan",n(52)),a.registerLanguage("stata",n(454)),a.registerLanguage("step21",n(7022)),a.registerLanguage("stylus",n(8688)),a.registerLanguage("subunit",n(726)),a.registerLanguage("swift",n(7690)),a.registerLanguage("taggerscript",n(5460)),a.registerLanguage("yaml",n(1392)),a.registerLanguage("tap",n(422)),a.registerLanguage("tcl",n(8158)),a.registerLanguage("thrift",n(906)),a.registerLanguage("tp",n(6123)),a.registerLanguage("twig",n(1973)),a.registerLanguage("typescript",n(8987)),a.registerLanguage("vala",n(1462)),a.registerLanguage("vbnet",n(7531)),a.registerLanguage("vbscript",n(4703)),a.registerLanguage("vbscript-html",n(8704)),a.registerLanguage("verilog",n(4494)),a.registerLanguage("vhdl",n(8110)),a.registerLanguage("vim",n(3638)),a.registerLanguage("wasm",n(1533)),a.registerLanguage("wren",n(8563)),a.registerLanguage("x86asm",n(9947)),a.registerLanguage("xl",n(9338)),a.registerLanguage("xquery",n(5595)),a.registerLanguage("zephir",n(1021)),a.HighlightJS=a,a.default=a,e.exports=a},908:function(e){e.exports=function(e){var t="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",n="далее возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",a="null истина ложь неопределено",r=e.inherit(e.NUMBER_MODE),s={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},i={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},l=e.inherit(e.C_LINE_COMMENT_MODE);return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:t,keyword:n,built_in:"разделительстраниц разделительстрок символтабуляции ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",class:"webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц отображениевремениэлементовпланировщика типфайлаформатированногодокумента обходрезультатазапроса типзаписизапроса видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов доступкфайлу режимдиалогавыборафайла режимоткрытияфайла типизмеренияпостроителязапроса видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",type:"comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",literal:a},contains:[{className:"meta",begin:"#|&",end:"$",keywords:{$pattern:t,keyword:n+"загрузитьизфайла вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент "},contains:[l]},{className:"function",variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:t,keyword:"знач",literal:a},contains:[r,s,i]},l]},e.inherit(e.TITLE_MODE,{begin:t})]},l,{className:"symbol",begin:"~",end:";|:",excludeEnd:!0},r,s,i]}}},2853:function(e){e.exports=function(e){const t=e.regex,n=e.COMMENT(/;/,/$/);return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],contains:[{scope:"operator",match:/=\/?/},{scope:"attribute",match:t.concat(/^[a-zA-Z][a-zA-Z0-9-]*/,/(?=\s*=)/)},n,{scope:"symbol",match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},{scope:"symbol",match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},{scope:"symbol",match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},{scope:"symbol",match:/%[si](?=".*")/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},5976:function(e){e.exports=function(e){const t=e.regex,n=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:t.concat(/"/,t.either(...n)),end:/"/,keywords:n,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}},5505:function(e){e.exports=function(e){const t=e.regex,n=/[a-zA-Z_$][a-zA-Z0-9_$]*/,a=t.concat(n,t.concat("(\\.",n,")*")),r={className:"rest_arg",begin:/[.]{3}/,end:n,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"],literal:["true","false","null","undefined"]},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{match:[/\bpackage/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{match:[/\b(?:class|interface|extends|implements)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{className:"title.function"}),{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r]},{begin:t.concat(/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},e.METHOD_GUARD],illegal:/#/}}},59:function(e){e.exports=function(e){const t="[A-Za-z](_?[A-Za-z0-9.])*",n="[]\\{\\}%#'\"",a=e.COMMENT("--","$"),r={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:n,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:t,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"],literal:["True","False"]},contains:[a,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)",relevance:0},{className:"symbol",begin:"'"+t},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:n},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[a,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:n},r,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:n}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:n},r]}}},2921:function(e){e.exports=function(e){const t={className:"built_in",begin:"\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)"},n={className:"symbol",begin:"[a-zA-Z0-9_]+@"},a={className:"keyword",begin:"<",end:">",contains:[t,n]};return t.contains=[a],n.contains=[a],{name:"AngelScript",aliases:["asc"],keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"],illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},t,n,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}},4998:function(e){e.exports=function(e){const t={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[t,{className:"number",begin:/:\d{1,5}/},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]},t,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}},9733:function(e){e.exports=function(e){const t=e.regex,n=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,n]},r=e.COMMENT(/--/,/$/),s=[r,e.COMMENT(/\(\*/,/\*\)/,{contains:["self",r]}),e.HASH_COMMENT_MODE];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[n,e.C_NUMBER_MODE,{className:"built_in",begin:t.concat(/\b/,t.either(/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:t.concat(/\b/,t.either(/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,a]},...s],illegal:/\/\/|->|=>|\[\[/}}},149:function(e){e.exports=function(e){const t="[A-Za-z_][0-9A-Za-z_]*",n={keyword:"if for while var new function do return void else break",literal:"BackSlash DoubleQuote false ForwardSlash Infinity NaN NewLine null PI SingleQuote Tab TextFormatting true undefined",built_in:"Abs Acos Angle Attachments Area AreaGeodetic Asin Atan Atan2 Average Bearing Boolean Buffer BufferGeodetic Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance DistanceGeodetic Distinct DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetByAssociation FeatureSetById FeatureSetByPortalItem FeatureSetByRelationshipName FeatureSetByTitle FeatureSetByUrl Filter First Floor Geometry GroupBy Guid HasKey Hour IIf IndexOf Intersection Intersects IsEmpty IsNan IsSelfIntersecting Length LengthGeodetic Log Max Mean Millisecond Min Minute Month MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon Polyline Portal Pow Random Relate Reverse RingIsClockWise Round Second SetGeometry Sin Sort Sqrt Stdev Sum SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TrackCurrentTime TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance Weekday When Within Year "},a={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},r={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},s={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,r]};r.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,a,e.REGEXP_MODE];const i=r.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"symbol",begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+"},a,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:i}]}]}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:i}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}},9860:function(e){e.exports=function(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",s="(?!struct)(decltype\\(auto\\)|"+t.optional(r)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},g={className:"title",begin:t.optional(r)+e.IDENT_RE,relevance:0},d=t.optional(r)+e.IDENT_RE+"\\s*\\(",u={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},m={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},p=[m,c,i,n,e.C_BLOCK_COMMENT_MODE,o,l],b={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:p.concat([{begin:/\(/,end:/\)/,keywords:u,contains:p.concat(["self"]),relevance:0}]),relevance:0},E={className:"function",begin:"("+s+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[g],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,o]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,l,o,i,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,l,o,i]}]},i,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:u},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}(e),a=n.keywords;return a.type=[...a.type,...t.type],a.literal=[...a.literal,...t.literal],a.built_in=[...a.built_in,...t.built_in],a._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}},3138:function(e){e.exports=function(e){const t={variants:[e.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),e.COMMENT("[;@]","$",{relevance:0}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},t,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}},8699:function(e){e.exports=function(e){const t=e.regex,n=[{className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong",begin:t.concat(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),relevance:0},{className:"strong",begin:/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{className:"strong",begin:/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],a=[{className:"emphasis",begin:/_{2}([^\n]+?)_{2}/},{className:"emphasis",begin:t.concat(/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/),relevance:0},{className:"emphasis",begin:/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{className:"emphasis",begin:/_[^\s]([^\n]+\n)+([^\n]+)_/},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0}];return{name:"AsciiDoc",aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,6})[ \t].+?([ \t]\\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"},{className:"symbol",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{begin:/\\[*_`]/},{begin:/\\\\\*{2}[^\n]*?\*{2}/},{begin:/\\\\_{2}[^\n]*_{2}/},{begin:/\\\\`{2}[^\n]*`{2}/},{begin:/[:;}][*_`](?![*_`])/},...n,...a,{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:/`{2}/,end:/(\n{2}|`{2})/},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}},9950:function(e){e.exports=function(e){const t=e.regex,n=["false","synchronized","int","abstract","float","private","char","boolean","static","null","if","const","for","true","while","long","throw","strictfp","finally","protected","import","native","final","return","void","enum","else","extends","implements","break","transient","new","catch","instanceof","byte","super","volatile","case","assert","short","package","default","double","public","try","this","switch","continue","throws","privileged","aspectOf","adviceexecution","proceed","cflowbelow","cflow","initialization","preinitialization","staticinitialization","withincode","target","within","execution","getWithinTypeName","handler","thisJoinPoint","thisJoinPointStaticPart","thisEnclosingJoinPointStaticPart","declare","parents","warning","error","soft","precedence","thisAspectInstance"],a=["get","set","args","call"];return{name:"AspectJ",keywords:n,illegal:/<\/|#/,contains:[e.COMMENT(/\/\*\*/,/\*\//,{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:/@[A-Za-z]+/}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:n.concat(a),excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:n,illegal:/["\[\]]/,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),keywords:n.concat(a),relevance:0},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:n,excludeEnd:!0,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:/@[A-Za-z]+/}]}}},1599:function(e){e.exports=function(e){const t={begin:"`[\\s\\S]"};return{name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}},1892:function(e){e.exports=function(e){const t={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={begin:"\\$[A-z0-9_]+"},a={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"AutoIt",case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"ByRef Case Const ContinueCase ContinueLoop Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive",literal:"True False And Null Not Or Default"},contains:[t,n,a,r,{className:"meta",begin:"#",end:"$",keywords:{keyword:["EndRegion","forcedef","forceref","ignorefunc","include","include-once","NoTrayIcon","OnAutoItStartRegister","pragma","Region","RequireAdmin","Tidy_Off","Tidy_On","Tidy_Parameters"]},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{keyword:"include"},end:"$",contains:[a,{className:"string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},a,t]},{className:"symbol",begin:"@[A-z0-9_]+"},{beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{className:"title.function"}),{className:"params",begin:"\\(",end:"\\)",contains:[n,a,r]}]}]}}},3105:function(e){e.exports=function(e){return{name:"AVR Assembly",case_insensitive:!0,keywords:{$pattern:"\\.?"+e.IDENT_RE,keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),e.C_NUMBER_MODE,e.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol",begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{className:"subst",begin:"@[0-9]+"}]}}},4868:function(e){e.exports=function(e){return{name:"Awk",keywords:{keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10"},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}},2059:function(e){e.exports=function(e){return{name:"X++",aliases:["x++"],keywords:{keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"],built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"],literal:["default","false","null","true"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]}]}}},8780:function(e){e.exports=function(e){const t=e.regex,n={},a={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const r={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,r]};r.contains.push(i);const l={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},o=e.SHEBANG({binary:`(${["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"].join("|")})`,relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[o,e.SHEBANG(),c,l,e.HASH_COMMENT_MODE,s,{match:/(\/[a-z._-]+)+/},i,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},n]}}},995:function(e){e.exports=function(e){return{name:"BASIC",case_insensitive:!0,illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keyword:["ABS","ASC","AND","ATN","AUTO|0","BEEP","BLOAD|10","BSAVE|10","CALL","CALLS","CDBL","CHAIN","CHDIR","CHR$|10","CINT","CIRCLE","CLEAR","CLOSE","CLS","COLOR","COM","COMMON","CONT","COS","CSNG","CSRLIN","CVD","CVI","CVS","DATA","DATE$","DEFDBL","DEFINT","DEFSNG","DEFSTR","DEF|0","SEG","USR","DELETE","DIM","DRAW","EDIT","END","ENVIRON","ENVIRON$","EOF","EQV","ERASE","ERDEV","ERDEV$","ERL","ERR","ERROR","EXP","FIELD","FILES","FIX","FOR|0","FRE","GET","GOSUB|10","GOTO","HEX$","IF","THEN","ELSE|0","INKEY$","INP","INPUT","INPUT#","INPUT$","INSTR","IMP","INT","IOCTL","IOCTL$","KEY","ON","OFF","LIST","KILL","LEFT$","LEN","LET","LINE","LLIST","LOAD","LOC","LOCATE","LOF","LOG","LPRINT","USING","LSET","MERGE","MID$","MKDIR","MKD$","MKI$","MKS$","MOD","NAME","NEW","NEXT","NOISE","NOT","OCT$","ON","OR","PEN","PLAY","STRIG","OPEN","OPTION","BASE","OUT","PAINT","PALETTE","PCOPY","PEEK","PMAP","POINT","POKE","POS","PRINT","PRINT]","PSET","PRESET","PUT","RANDOMIZE","READ","REM","RENUM","RESET|0","RESTORE","RESUME","RETURN|0","RIGHT$","RMDIR","RND","RSET","RUN","SAVE","SCREEN","SGN","SHELL","SIN","SOUND","SPACE$","SPC","SQR","STEP","STICK","STOP","STR$","STRING$","SWAP","SYSTEM","TAB","TAN","TIME$","TIMER","TROFF","TRON","TO","USR","VAL","VARPTR","VARPTR$","VIEW","WAIT","WHILE","WEND","WIDTH","WINDOW","WRITE","XOR"]},contains:[e.QUOTE_STRING_MODE,e.COMMENT("REM","$",{relevance:10}),e.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ",relevance:10},{className:"number",begin:"\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}}},7061:function(e){e.exports=function(e){return{name:"Backus–Naur Form",contains:[{className:"attribute",begin://},{begin:/::=/,end:/$/,contains:[{begin://},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]}}},6380:function(e){e.exports=function(e){const t={className:"literal",begin:/[+-]/,relevance:0};return{name:"Brainfuck",aliases:["bf"],contains:[e.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/(?:\+\+|--)/,contains:[t]},t]}}}}]); -//# sourceMappingURL=128.js.map \ No newline at end of file diff --git a/js/128.js.map b/js/128.js.map deleted file mode 100644 index 03cec70e..00000000 --- a/js/128.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"128.js","mappings":"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AC3BD,MAAO,SACPC,MAAO,2CAGgB,CACvBD,MAAO,SACPC,MAAO,iBAyBL5C,EAAK8C,kBACL9C,EAAKY,gB,iBCeXR,EAAOC,QAjFP,SAAmBL,GACjB,MAAMwC,EAAQxC,EAAKwC,MAEbO,EAAa,CACjB,MACA,OACA,OACA,MACA,SACA,UACA,UACA,QACA,SAEF,MAAO,CACLxB,KAAM,oBACNN,SAAU,CAER,CACEH,UAAW,SACXC,MAAO,mDACPiC,UAAW,GAGb,CACElC,UAAW,SACXC,MAAO,UACPiC,UAAW,GAGb,CACElC,UAAW,SACXC,MAAOyB,EAAMK,OAAO,IAAKL,EAAMS,UAAUF,IACzC/B,IAAK,IACLS,SAAUsB,EACVL,QAAS,KACTM,UAAW,EACX/B,SAAU,CACR,CACEF,MAAO,kBACPiC,UAAW,KAKjB,CACElC,UAAW,SAIXC,MAAO,oBACP2B,QAAS,KACTM,UAAW,GAEb,CACElC,UAAW,SACXC,MAAO,KACPC,IAAK,KACL0B,QAAS,KACTM,UAAW,GAGb,CACElC,UAAW,SACXC,MAAO,sBACPC,IAAK,IACL0B,QAAS,KACTM,UAAW,GAGb,CACElC,UAAW,SACXC,MAAO,IACPC,IAAK,IACL0B,QAAS,KACTM,UAAW,O,iBCmEnB5C,EAAOC,QAhJP,SAAsBL,GACpB,MAAMwC,EAAQxC,EAAKwC,MACbU,EAAW,2BACXC,EAAcX,EAAMK,OACxBK,EACAV,EAAMK,OAAO,OAAQK,EAAU,OAI3BE,EAAoB,CACxBtC,UAAW,WACXC,MAAO,SACPC,IAAKkC,EACLF,UAAW,IA8Db,MAAO,CACLzB,KAAM,eACN8B,QAAS,CAAE,MACX5B,SAAU,CACRE,QA/Da,CACf,KACA,QACA,OACA,QACA,QACA,QACA,WACA,UACA,SACA,KACA,UACA,OACA,OACA,UACA,QACA,UACA,MACA,WACA,MACA,KACA,aACA,SACA,KACA,UACA,aACA,YACA,WACA,KACA,YACA,SACA,MACA,WACA,UACA,UACA,YACA,SACA,SACA,MACA,SACA,QACA,SACA,OACA,QACA,MACA,SACA,MACA,MACA,OACA,QACA,QAcEO,QAZa,CACf,OACA,QACA,OACA,cAUAjB,SAAU,CACRjB,EAAKsD,iBACLtD,EAAK8C,kBACL9C,EAAKsB,oBACLtB,EAAKuD,qBACLvD,EAAKwD,cACL,CACEZ,MAAO,CACL,YACA,MACAO,GAEFrC,UAAW,CACT,EAAG,UACH,EAAG,gBAGP,CACE8B,MAAO,CACL,2CACA,MACAM,GAEFpC,UAAW,CACT,EAAG,UACH,EAAG,gBAGP,CACEA,UAAW,OACX2C,cAAe,iBACfzC,IAAK,IACLS,SAAU,CAAEE,QAAS,mBAEvB,CACE8B,cAAe,WACfzC,IAAK,OACLI,YAAY,EACZsB,QAAS,KACTzB,SAAU,CACRjB,EAAKW,QAAQX,EAAKuC,WAAY,CAAEzB,UAAW,mBAC3C,CACEA,UAAW,SACXC,MAAO,KACPC,IAAK,KACLC,SAAU,CACRjB,EAAKsD,iBACLtD,EAAK8C,kBACL9C,EAAKsB,oBACLtB,EAAKuD,qBACLH,IAGJ,CAAErC,MAAOyB,EAAMK,OAAO,OAhII,qCAmI9B7C,EAAK0D,cAEPhB,QAAS,O,eCkHbtC,EAAOC,QAlPP,SAAaL,GAKX,MAWM2D,EAAW,4BAGXC,EAAY,gBAGZvC,EAAWrB,EAAKyC,QAAQ,KAAM,KAK9BoB,EAAY,CAIhB9C,MAAO,YACPC,IAAK,sBAGL0B,QAASkB,EACT3C,SAAU,CACR,CAGEwC,cAAe,0BACfpB,YAAY,GAEd,CAEEvB,UAAW,UACX2C,cAAe,wEAEjB,CACE3C,UAAW,OACXC,MAAO4C,EACPtB,YAAY,EACZW,UAAW,KA+EjB,MAAO,CACLzB,KAAM,MACNC,kBAAkB,EAClBC,SAAU,CACRE,QA9Ea,CACf,QACA,OACA,MACA,SACA,MACA,QACA,MACA,UACA,WACA,MACA,SACA,QACA,SACA,SACA,YACA,KACA,WACA,UACA,OACA,KACA,OACA,MACA,SACA,UACA,MACA,MACA,MACA,eACA,QACA,WACA,aACA,KACA,SACA,UACA,UACA,OACA,QACA,OACA,SACA,YACA,OACA,UACA,OACA,KACA,YACA,OACA,OACA,KACA,YACA,WACA,YACA,KACA,QACA,MACA,UACA,QACA,QACA,UACA,SACA,OACA,QACA,OACA,MACA,QACA,SACA,UACA,OACA,KACA,MACA,UACA,OAQEO,QAAS,CACP,OACA,UAGJjB,SAAU,CACRI,EAEA,CACEP,UAAW,SACXC,MAAO,IACPC,IAAK,IACLC,SAAU,CAAC,CACTF,MAAO,KACPiC,UAAW,KAIf,CAEElC,UAAW,SACXC,MAAO,OAET,CAEED,UAAW,SACXC,MArJY,8GAsJZiC,UAAW,GAEb,CAEElC,UAAW,SACXC,MAAO,IAAM4C,GAEf,CAEE7C,UAAW,QACXC,MAAO,8DACPC,IAAK,SACLS,SAAU,eACVN,cAAc,EACdC,YAAY,EACZsB,QAASkB,GAEX,CAGE7C,MAAO,yDACPC,IAAK,sCACLS,SAAU,uDAGVqC,aAAa,EACb7C,SACQ,CACEI,EACA,CAEEP,UAAW,QACXC,MAAO,4CACPC,IAAK,eACLG,cAAc,EACdC,YAAY,EACZsB,QAASkB,GAIXC,EACA,CAEE/C,UAAW,OACXC,MAAO,gBACPC,IAAK,aACLS,SAAU,SACVN,cAAc,EACdC,YAAY,EAEZiB,YAAY,EACZK,QAASkB,KAKvB,CAGE9C,UAAW,OACXC,MAAO,oBACPC,IAAK,OACLS,SAAU,OACVN,cAAc,EACduB,QAASkB,GAIXC,M,iBC1ENzD,EAAOC,QAzKP,SAAqBL,GACnB,MAAM+D,EAAkB,CACtBjD,UAAW,WACXC,MAAO,2HAGHiD,EAAmB,CACvBlD,UAAW,SACXC,MAAO,kBAGHkD,EAAc,CAClBnD,UAAW,UACXC,MAAO,IACPC,IAAK,IACLC,SAAU,CACR8C,EACAC,IAwDJ,OApDAD,EAAgB9C,SAAW,CAAEgD,GAC7BD,EAAiB/C,SAAW,CAAEgD,GAmDvB,CACL1C,KAAM,cACN8B,QAAS,CAAE,OAEX5B,SArDe,CACf,MACA,OACA,QACA,WACA,QACA,OACA,SACA,KACA,OACA,OACA,SACA,YACA,KACA,OACA,KACA,MACA,MACA,MACA,QACA,KACA,WACA,MACA,WACA,QACA,UACA,SACA,QACA,YACA,QACA,SACA,WACA,WACA,OACA,UACA,UACA,OACA,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BCozBbtC,EAAOC,QAhYP,SAAiBL,GACf,MAAMmF,EAAa,CACjBnD,KAAM,CACJ,UACA,OACA,OACA,UAEFJ,SAAU,CACR,qBACA,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MAEFwD,OAAQ,CACN,QACA,OACA,gCACA,wBACA,wBACA,uBACA,uBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,iBACA,iBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEFlD,QAAS,CACP,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,WACA,WACA,UACA,SACA,QACA,OACA,QAIEmD,EA77BR,SAAmBrF,GACjB,MAAMwC,EAAQxC,EAAKwC,MAIblB,EAAsBtB,EAAKyC,QAAQ,KAAM,IAAK,CAClDxB,SAAU,CACR,CACEF,MAAO,WAIPuE,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,iCAEvBhD,EAAMiD,SAASF,GACf,gBAAkB/C,EAAMiD,SAJG,YAK7B,IAEMC,EAAsB,CAC1B5E,UAAW,OACXC,MAAO,sBAMHF,EAAU,CACdC,UAAW,SACXsB,SAAU,CACR,CACErB,MAAO,cACPC,IAAK,IACL0B,QAAS,MACTzB,SAAU,CAAEjB,EAAKkE,mBAEnB,CACEnD,MAAO,sEACPC,IAAK,IACL0B,QAAS,KAEX1C,EAAK2F,kBAAkB,CACrB5E,MAAO,mCACPC,IAAK,0BAKLN,EAAU,CACdI,UAAW,SACXsB,SAAU,CACR,CACErB,MAAO,iBAET,CACEA,MAAO,yFAET,CACEA,MAAO,wFAGXiC,UAAW,GAGP4C,EAAe,CACnB9E,UAAW,OACXC,MAAO,eACPC,IAAK,IACLS,SAAU,CACRE,QACE,0FAGJV,SAAU,CACR,CACEF,MAAO,OACPiC,UAAW,GAEbhD,EAAKW,QAAQE,EAAS,CACpBC,UAAW,WAEb,CACEA,UAAW,SACXC,MAAO,SAETO,EACAtB,EAAKuD,uBAIHhB,EAAa,CACjBzB,UAAW,QACXC,MAAOyB,EAAMiD,SAASF,GAAgBvF,EAAKkD,SAC3CF,UAAW,GAGP6C,EAAiBrD,EAAMiD,SAASF,GAAgBvF,EAAKkD,SAAW,UA+RhE4C,EAAe,CACnB9D,KAlMqB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,UAmLAL,QA9RwB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,UAwMAO,QAhBe,CACf,OACA,QACA,UACA,UACA,QAYAN,SARe,CACf,WAQAmE,YAnLiB,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,iBA+HIC,EAAoB,CACxBlF,UAAW,oBACXkC,UAAW,EACXvB,SAAU,CAERwE,MAjImB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,aA+BAlF,MAAOyB,EAAMK,OACX,KACA,eACA,SACA,UACA,aACA,YACA7C,EAAKkD,SACLV,EAAM0D,UAAU,sBAGdC,EAAsB,CAC1BH,EACAJ,EACAF,EACApE,EACAtB,EAAKuD,qBACL7C,EACAG,GAGIuF,EAAqB,CAIzBhE,SAAU,CACR,CACErB,MAAO,IACPC,IAAK,KAEP,CACED,MAAO,KACPC,IAAK,MAEP,CACEyC,cAAe,wBACfzC,IAAK,MAGTS,SAAUqE,EACV7E,SAAUkF,EAAoBtD,OAAO,CACnC,CACE9B,MAAO,KACPC,IAAK,KACLS,SAAUqE,EACV7E,SAAUkF,EAAoBtD,OAAO,CAAE,SACvCG,UAAW,KAGfA,UAAW,GAGPqD,EAAuB,CAC3BvF,UAAW,WACXC,MAAO,IAAMyE,EAAmB,eAAiBK,EACjD/B,aAAa,EACb9C,IAAK,QACLI,YAAY,EACZK,SAAUqE,EACVpD,QAAS,i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,KACA,QACA,MACA,OACA,QACA,OACA,QACA,WACA,UACA,YACA,SACA,SACA,QACA,SACA,OACA,OACA,OACA,UACA,aACA,QACA,YACA,MACA,QACA,aACA,OACA,QACA,WACA,OACA,SACA,QACA,UACA,UACA,SACA,SACA,MACA,OACA,SACA,WACA,SACA,aACA,WACA,kBACA,UACA,aACA,QACA,iBACA,oBACA,uBACA,aACA,SACA,SACA,YACA,oBACA,UACA,gBACA,0BACA,mCACA,UACA,UACA,UACA,QACA,OACA,aACA,sBAEImC,EAAY,CAChB,MACA,MACA,OACA,QAGF,MAAO,CACLvF,KAAM,UACNE,SAAUkD,EACVjC,QAAS,QACTzB,SAAU,CACRjB,EAAKyC,QACH,SACA,OACA,CACEO,UAAW,EACX/B,SAAU,CACR,CAEEF,MAAO,OACPiC,UAAW,GAEb,CACElC,UAAW,SACXC,MAAO,iBAKff,EAAKsB,oBACLtB,EAAKuD,qBACLvD,EAAKsD,iBACLtD,EAAK8C,kBACL,CACEhC,UAAW,QACX2C,cAAe,SACfzC,IAAK,QACLI,YAAY,EACZsB,QAAS,YACTzB,SAAU,CACR,CACEwC,cAAe,yFAEjBzD,EAAK0E,sBACL,CACE3D,MAAO,WACPC,IAAK,OACLS,SAAUkD,EAAS9B,OAAOiE,GAC1B1F,YAAY,KAIlB,CACEN,UAAW,QACX2C,cAAe,kBACfzC,IAAK,QACLI,YAAY,EACZ4B,UAAW,EACXvB,SAAU,kBACViB,QAAS,WACTzB,SAAU,CACR,CACEwC,cAAe,sBAEjBzD,EAAK0E,wBAGT,CAEEjB,cAAe,kDACfzC,IAAK,MACLI,YAAY,EACZsB,QAAS,UACTzB,SAAU,CACR,CACEF,MAAOyB,EAAMK,OAAO7C,EAAKM,oBAAqB,SAC9CwD,aAAa,EACb7C,SAAU,CAAEjB,EAAK0E,0BAIvB,CACE3D,MAAO,MACP+C,aAAa,EACb9C,IAAK,OACLgC,UAAW,EACX5B,YAAY,EACZK,SAAUkD,EACVjC,QAAS,UACTzB,SAAU,CACR,CACEF,MAAOyB,EAAMK,OAAO7C,EAAKM,oBAAqB,SAC9C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BACLvD,EAAKyC,QACH,IACA,IACA,CACEO,UAAW,IAGfhD,EAAKwD,cACLxD,EAAKkH,mBACL,CACEpG,UAAW,SACXC,MAAO,iCAETf,EAAK8C,kBACL,CACEhC,UAAW,SACXC,MAAO,IACPC,IAAK,WACL0B,QAAS,eAEX,CACE5B,UAAW,SACXC,MAAO,qBAET,CACED,UAAW,OACXC,MAAO,IACPC,IAAK,KAEP,CACEF,UAAW,QACXC,MAAO,e,iBCDfX,EAAOC,QAhEP,SAAaL,GAiDX,MAAO,CACLuB,KAAM,MACNE,SAAU,CACRE,QAxCa,+FA0CfV,SAAU,CArDK,CACfH,UAAW,WACXsB,SAAU,CACR,CACErB,MAAO,sBAET,CACEA,MAAO,iBAKE,CACbD,UAAW,SACXG,SAAU,CAACjB,EAAKkE,kBAChB9B,SAAU,CACR,CACErB,MAAO,cACPC,IAAK,MACLgC,UAAW,IAEb,CACEjC,MAAO,cACPC,IAAK,MACLgC,UAAW,IAEb,CACEjC,MAAO,YACPC,IAAK,IACLgC,UAAW,IAEb,CACEjC,MAAO,YACPC,IAAK,IACLgC,UAAW,IAEb,CACEjC,MAAO,UACPC,IAAK,KAEP,CACED,MAAO,UACPC,IAAK,KAEPhB,EAAKsD,iBACLtD,EAAK8C,oBAWL9C,EAAKgF,YACLhF,EAAKoE,kBACLpE,EAAKY,gB,iBC+GXR,EAAOC,QAzKP,SAAgBL,GAyId,MAAO,CACLuB,KAAM,MACN8B,QAAS,CAAC,OACV5B,SATe,CACfE,QAxGsB,CACtB,WACA,KACA,MACA,MACA,QACA,aACA,KACA,QACA,OACA,QACA,gBACA,QACA,SACA,SACA,SACA,QACA,WACA,QACA,eACA,WACA,cACA,OACA,UACA,MACA,KACA,OACA,OACA,eACA,SACA,UACA,QACA,UACA,YACA,YACA,aACA,cACA,eACA,gBACA,QACA,MACA,gBACA,kBACA,oBACA,mBACA,YACA,OACA,eACA,QACA,OACA,KACA,aACA,KACA,QACA,mBACA,YACA,WACA,KACA,OACA,OACA,QACA,QACA,MACA,YACA,MACA,OACA,UACA,YACA,iBACA,QACA,QACA,kBACA,QACA,UACA,YACA,SACA,WACA,iBACA,QACA,SACA,UACA,SACA,SACA,UACA,SACA,MACA,QACA,SACA,OACA,QACA,MACA,WACA,WACA,YACA,YACA,mBACA,QACA,iBACA,OACA,QACA,SAKAC,SApIwB,CACxB,UACA,UACA,OACA,OACA,YACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,MACA,cACA,OAoHAM,QAjHuB,CACvB,UACA,QACA,OACA,SAoHAjB,SAAU,CACRjB,EAAKsB,oBACLtB,EAAKuD,qBACLvD,EAAKsD,iBACLtD,EAAK8C,kBACL9C,EAAKwD,cACL,CACE1C,UAAW,OACXC,MAAO,IACPC,IAAK,KAEP,CACEF,UAAW,QACX2C,cAAe,kBACfzC,IAAK,KACLI,YAAY,EACZsB,QAAS,IACTzB,SAAU,CACR,CACEwC,cAAe,sBAEjBzD,EAAK0E,4B,iBCqNftE,EAAOC,QAvXP,SAAcL,GACZ,MAAMwC,EAAQxC,EAAKwC,MACb2E,EAAM,GACNC,EAAa,CACjBrG,MAAO,OACPC,IAAI,KACJC,SAAU,CACR,OACA,CACEF,MAAO,KACPE,SAAU,CAAEkG,MAIlBE,OAAOC,OAAOH,EAAI,CAChBrG,UAAW,WACXsB,SAAU,CACR,CAACrB,MAAOyB,EAAMK,OAAO,qBAGnB,wBACFuE,KAIJ,MAAMtC,EAAQ,CACZhE,UAAW,QACXC,MAAO,OAAQC,IAAK,KACpBC,SAAU,CAACjB,EAAKkE,mBAEZqD,EAAW,CACfxG,MAAO,iBACPuD,OAAQ,CACNrD,SAAU,CACRjB,EAAK2F,kBAAkB,CACrB5E,MAAO,QACPC,IAAK,QACLF,UAAW,cAKb0G,EAAe,CACnB1G,UAAW,SACXC,MAAO,IAAKC,IAAK,IACjBC,SAAU,CACRjB,EAAKkE,iBACLiD,EACArC,IAGJA,EAAM7D,SAASwG,KAAKD,GACpB,MASME,EAAa,CACjB3G,MAAO,SACPC,IAAK,OACLC,SAAU,CACR,CAAEF,MAAO,gBAAiBD,UAAW,UACrCd,EAAKY,YACLuG,IAcEQ,EAAgB3H,EAAK4H,QAAQ,CACjCC,OAAQ,IAZa,CACrB,OACA,OACA,MACA,KACA,MACA,MACA,OACA,OACA,QAG2BC,KAAK,QAChC9E,UAAW,KAEP+E,EAAW,CACfjH,UAAW,WACXC,MAAO,4BACP+C,aAAa,EACb7C,SAAU,CAACjB,EAAKW,QAAQX,EAAKuC,WAAY,CAACxB,MAAO,gBACjDiC,UAAW,GA4Pb,MAAO,CACLzB,KAAM,OACN8B,QAAS,CAAC,MACV5B,SAAU,CACRC,SAAU,gBACVC,QA9Pa,CACf,KACA,OACA,OACA,OACA,KACA,MACA,QACA,KACA,KACA,OACA,OACA,OACA,YAkPEO,QA/Oa,CACf,OACA,SA8OEN,SAAS,CApOX,QACA,KACA,WACA,OACA,OACA,OACA,SACA,UACA,OACA,MACA,WACA,SACA,QACA,OACA,QACA,OACA,QACA,QAIA,QACA,OACA,UACA,SACA,UACA,UACA,OACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,OACA,YACA,SACA,OACA,UACA,SACA,UA+LI,MACA,QA5LJ,WACA,KACA,UACA,MACA,MACA,QACA,QACA,gBACA,WACA,UACA,eACA,YACA,aACA,YACA,WACA,UACA,aACA,OACA,UACA,SACA,SACA,SACA,UACA,KACA,KACA,QACA,YACA,SACA,QACA,UACA,UACA,OACA,OACA,QACA,MACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,SACA,aACA,SACA,UACA,WACA,QACA,OACA,SACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,aACA,QACA,OACA,cACA,UACA,SACA,OAIA,QACA,QACA,QACA,QACA,KACA,KACA,KACA,MACA,YACA,KACA,KACA,QACA,SACA,QACA,SACA,KACA,WACA,KACA,QACA,QACA,OACA,QACA,WACA,OACA,QACA,SACA,SACA,MACA,QACA,OACA,SACA,MACA,SACA,MACA,OACA,OACA,OACA,SACA,KACA,SACA,KACA,QACA,MACA,KACA,UACA,YACA,YACA,YACA,YACA,OACA,OACA,QACA,MACA,MACA,OACA,KACA,QACA,WACA,OACA,KACA,OACA,WACA,SACA,OACA,UACA,KACA,OACA,MACA,OACA,SAEA,SACA,SACA,KACA,OACA,UACA,OACA,QACA,QACA,UACA,QACA,WACA,SACA,MACA,WACA,SACA,MACA,QACA,OACA,SACA,OACA,MACA,OACA,UAEA,MACA,QACA,SACA,SACA,QACA,MACA,SACA,QAoBAX,SAAU,CACR0G,EACA3H,EAAK4H,UACLG,EACAL,EACA1H,EAAKoE,kBACLmD,EA1Pc,CAChB3E,MAAO,kBA2PL4E,EA3TkB,CACpB1G,UAAW,GACXC,MAAO,OAGW,CAClBD,UAAW,SACXC,MAAO,IAAKC,IAAK,KAuTfmG,M,gBCnJN/G,EAAOC,QAhOP,SAAeL,GAqLb,MAAO,CACLuB,KAAM,QACNC,kBAAkB,EAClBkB,QAAS,KAETjB,SAAU,CACRC,SAAU,4BACVC,QA3La,CACf,MACA,MACA,MACA,MACA,SACA,OACA,WACA,WACA,OACA,QACA,OACA,QACA,QACA,UACA,OACA,SACA,QACA,QACA,MACA,QACA,MACA,SACA,OACA,MACA,OACA,SACA,MACA,MACA,MACA,OACA,QACA,SACA,SACA,SACA,SACA,QACA,MACA,MACA,SACA,MACA,OACA,OACA,MACA,UACA,WACA,MACA,MACA,QACA,QACA,SACA,MACA,MACA,QACA,MACA,QACA,QACA,MACA,QACA,MACA,MACA,WACA,OACA,OACA,KACA,OACA,SACA,SACA,MACA,QACA,SACA,SACA,QACA,MACA,MACA,QACA,SACA,MACA,KACA,MACA,OACA,OACA,QACA,MACA,MACA,OACA,QACA,OACA,MACA,SACA,MACA,MACA,SACA,QACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,MACA,OACA,KACA,KACA,MACA,OACA,QACA,OACA,SACA,OACA,MACA,QACA,UACA,QACA,OACA,OACA,QACA,OACA,MACA,QACA,SACA,OACA,SACA,MACA,YACA,OACA,MACA,QACA,UACA,UACA,SACA,WACA,SACA,QACA,MACA,OACA,MACA,OACA,SACA,MACA,QACA,MACA,QACA,SACA,MACA,MACA,OACA,QACA,OACA,OACA,UACA,OACA,SACA,MACA,MACA,QACA,QACA,QACA,OACA,KACA,MACA,MACA,SACA,UACA,OACA,OACA,QACA,OACA,QACA,SACA,QACA,QAYAV,SAAU,CACRjB,EAAK8C,kBACL9C,EAAKyC,QAAQ,MAAO,IAAK,CACvBO,UAAW,KAEbhD,EAAKyC,QAAQ,IAAM,IAAK,CACtBO,UAAW,IAEb,CAEElC,UAAW,SACXC,MAAO,WACPiC,UAAW,IAEb,CAEElC,UAAW,SACXC,MAAO,sCACPiC,UAAW,GAEb,CAEElC,UAAW,SACXC,MAAO,2BAET,CAEED,UAAW,SACXC,MAAO,yB,iBC7LfX,EAAOC,QA9BP,SAAaL,GACX,MAAO,CACLuB,KAAM,mBACNN,SAAU,CAER,CACEH,UAAW,YACXC,MAAO,IACPC,IAAK,KAGP,CACED,MAAO,MACPC,IAAK,IACLC,SAAU,CACR,CACEF,MAAO,IACPC,IAAK,KAGPhB,EAAKsB,oBACLtB,EAAKuD,qBACLvD,EAAKsD,iBACLtD,EAAK8C,wB,iBCef1C,EAAOC,QAtCP,SAAmBL,GACjB,MAAMS,EAAU,CACdK,UAAW,UACXC,MAAO,OACPiC,UAAW,GAEb,MAAO,CACLzB,KAAM,YACN8B,QAAS,CAAC,MACVpC,SAAU,CACRjB,EAAKyC,QACH,6BACA,4BACA,CACEuF,WAAW,EACXhF,UAAW,IAGf,CACElC,UAAW,QACXC,MAAO,WACPiC,UAAW,GAEb,CACElC,UAAW,SACXC,MAAO,SACPiC,UAAW,GAEb,CAEEjC,MAAO,cACPE,SAAU,CAACR,IAEbA","sources":["webpack://sakurairo-scripts/./node_modules/highlight.js/lib/index.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/1c.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/abnf.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/accesslog.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/actionscript.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/ada.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/angelscript.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/apache.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/applescript.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/arcade.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/arduino.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/armasm.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/asciidoc.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/aspectj.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/autohotkey.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/autoit.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/avrasm.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/awk.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/axapta.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/bash.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/basic.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/bnf.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/brainfuck.js"],"sourcesContent":["var hljs = require('./core');\n\nhljs.registerLanguage('1c', require('./languages/1c'));\nhljs.registerLanguage('abnf', require('./languages/abnf'));\nhljs.registerLanguage('accesslog', require('./languages/accesslog'));\nhljs.registerLanguage('actionscript', require('./languages/actionscript'));\nhljs.registerLanguage('ada', require('./languages/ada'));\nhljs.registerLanguage('angelscript', require('./languages/angelscript'));\nhljs.registerLanguage('apache', require('./languages/apache'));\nhljs.registerLanguage('applescript', require('./languages/applescript'));\nhljs.registerLanguage('arcade', require('./languages/arcade'));\nhljs.registerLanguage('arduino', require('./languages/arduino'));\nhljs.registerLanguage('armasm', require('./languages/armasm'));\nhljs.registerLanguage('xml', require('./languages/xml'));\nhljs.registerLanguage('asciidoc', require('./languages/asciidoc'));\nhljs.registerLanguage('aspectj', require('./languages/aspectj'));\nhljs.registerLanguage('autohotkey', require('./languages/autohotkey'));\nhljs.registerLanguage('autoit', require('./languages/autoit'));\nhljs.registerLanguage('avrasm', require('./languages/avrasm'));\nhljs.registerLanguage('awk', require('./languages/awk'));\nhljs.registerLanguage('axapta', require('./languages/axapta'));\nhljs.registerLanguage('bash', require('./languages/bash'));\nhljs.registerLanguage('basic', require('./languages/basic'));\nhljs.registerLanguage('bnf', require('./languages/bnf'));\nhljs.registerLanguage('brainfuck', require('./languages/brainfuck'));\nhljs.registerLanguage('c', require('./languages/c'));\nhljs.registerLanguage('cal', require('./languages/cal'));\nhljs.registerLanguage('capnproto', require('./languages/capnproto'));\nhljs.registerLanguage('ceylon', require('./languages/ceylon'));\nhljs.registerLanguage('clean', require('./languages/clean'));\nhljs.registerLanguage('clojure', require('./languages/clojure'));\nhljs.registerLanguage('clojure-repl', require('./languages/clojure-repl'));\nhljs.registerLanguage('cmake', require('./languages/cmake'));\nhljs.registerLanguage('coffeescript', require('./languages/coffeescript'));\nhljs.registerLanguage('coq', require('./languages/coq'));\nhljs.registerLanguage('cos', require('./languages/cos'));\nhljs.registerLanguage('cpp', require('./languages/cpp'));\nhljs.registerLanguage('crmsh', require('./languages/crmsh'));\nhljs.registerLanguage('crystal', require('./languages/crystal'));\nhljs.registerLanguage('csharp', require('./languages/csharp'));\nhljs.registerLanguage('csp', require('./languages/csp'));\nhljs.registerLanguage('css', require('./languages/css'));\nhljs.registerLanguage('d', require('./languages/d'));\nhljs.registerLanguage('markdown', require('./languages/markdown'));\nhljs.registerLanguage('dart', require('./languages/dart'));\nhljs.registerLanguage('delphi', require('./languages/delphi'));\nhljs.registerLanguage('diff', require('./languages/diff'));\nhljs.registerLanguage('django', require('./languages/django'));\nhljs.registerLanguage('dns', require('./languages/dns'));\nhljs.registerLanguage('dockerfile', require('./languages/dockerfile'));\nhljs.registerLanguage('dos', require('./languages/dos'));\nhljs.registerLanguage('dsconfig', require('./languages/dsconfig'));\nhljs.registerLanguage('dts', require('./languages/dts'));\nhljs.registerLanguage('dust', require('./languages/dust'));\nhljs.registerLanguage('ebnf', require('./languages/ebnf'));\nhljs.registerLanguage('elixir', require('./languages/elixir'));\nhljs.registerLanguage('elm', require('./languages/elm'));\nhljs.registerLanguage('ruby', require('./languages/ruby'));\nhljs.registerLanguage('erb', require('./languages/erb'));\nhljs.registerLanguage('erlang-repl', require('./languages/erlang-repl'));\nhljs.registerLanguage('erlang', require('./languages/erlang'));\nhljs.registerLanguage('excel', require('./languages/excel'));\nhljs.registerLanguage('fix', require('./languages/fix'));\nhljs.registerLanguage('flix', require('./languages/flix'));\nhljs.registerLanguage('fortran', require('./languages/fortran'));\nhljs.registerLanguage('fsharp', require('./languages/fsharp'));\nhljs.registerLanguage('gams', require('./languages/gams'));\nhljs.registerLanguage('gauss', require('./languages/gauss'));\nhljs.registerLanguage('gcode', require('./languages/gcode'));\nhljs.registerLanguage('gherkin', require('./languages/gherkin'));\nhljs.registerLanguage('glsl', require('./languages/glsl'));\nhljs.registerLanguage('gml', require('./languages/gml'));\nhljs.registerLanguage('go', require('./languages/go'));\nhljs.registerLanguage('golo', require('./languages/golo'));\nhljs.registerLanguage('gradle', require('./languages/gradle'));\nhljs.registerLanguage('groovy', require('./languages/groovy'));\nhljs.registerLanguage('haml', require('./languages/haml'));\nhljs.registerLanguage('handlebars', require('./languages/handlebars'));\nhljs.registerLanguage('haskell', require('./languages/haskell'));\nhljs.registerLanguage('haxe', require('./languages/haxe'));\nhljs.registerLanguage('hsp', require('./languages/hsp'));\nhljs.registerLanguage('http', require('./languages/http'));\nhljs.registerLanguage('hy', require('./languages/hy'));\nhljs.registerLanguage('inform7', require('./languages/inform7'));\nhljs.registerLanguage('ini', require('./languages/ini'));\nhljs.registerLanguage('irpf90', require('./languages/irpf90'));\nhljs.registerLanguage('isbl', require('./languages/isbl'));\nhljs.registerLanguage('java', require('./languages/java'));\nhljs.registerLanguage('javascript', require('./languages/javascript'));\nhljs.registerLanguage('jboss-cli', require('./languages/jboss-cli'));\nhljs.registerLanguage('json', require('./languages/json'));\nhljs.registerLanguage('julia', require('./languages/julia'));\nhljs.registerLanguage('julia-repl', require('./languages/julia-repl'));\nhljs.registerLanguage('kotlin', require('./languages/kotlin'));\nhljs.registerLanguage('lasso', require('./languages/lasso'));\nhljs.registerLanguage('latex', require('./languages/latex'));\nhljs.registerLanguage('ldif', require('./languages/ldif'));\nhljs.registerLanguage('leaf', require('./languages/leaf'));\nhljs.registerLanguage('less', require('./languages/less'));\nhljs.registerLanguage('lisp', require('./languages/lisp'));\nhljs.registerLanguage('livecodeserver', require('./languages/livecodeserver'));\nhljs.registerLanguage('livescript', require('./languages/livescript'));\nhljs.registerLanguage('llvm', require('./languages/llvm'));\nhljs.registerLanguage('lsl', require('./languages/lsl'));\nhljs.registerLanguage('lua', require('./languages/lua'));\nhljs.registerLanguage('makefile', require('./languages/makefile'));\nhljs.registerLanguage('mathematica', require('./languages/mathematica'));\nhljs.registerLanguage('matlab', require('./languages/matlab'));\nhljs.registerLanguage('maxima', require('./languages/maxima'));\nhljs.registerLanguage('mel', require('./languages/mel'));\nhljs.registerLanguage('mercury', require('./languages/mercury'));\nhljs.registerLanguage('mipsasm', require('./languages/mipsasm'));\nhljs.registerLanguage('mizar', require('./languages/mizar'));\nhljs.registerLanguage('perl', require('./languages/perl'));\nhljs.registerLanguage('mojolicious', require('./languages/mojolicious'));\nhljs.registerLanguage('monkey', require('./languages/monkey'));\nhljs.registerLanguage('moonscript', require('./languages/moonscript'));\nhljs.registerLanguage('n1ql', require('./languages/n1ql'));\nhljs.registerLanguage('nestedtext', require('./languages/nestedtext'));\nhljs.registerLanguage('nginx', require('./languages/nginx'));\nhljs.registerLanguage('nim', require('./languages/nim'));\nhljs.registerLanguage('nix', require('./languages/nix'));\nhljs.registerLanguage('node-repl', require('./languages/node-repl'));\nhljs.registerLanguage('nsis', require('./languages/nsis'));\nhljs.registerLanguage('objectivec', require('./languages/objectivec'));\nhljs.registerLanguage('ocaml', require('./languages/ocaml'));\nhljs.registerLanguage('openscad', require('./languages/openscad'));\nhljs.registerLanguage('oxygene', require('./languages/oxygene'));\nhljs.registerLanguage('parser3', require('./languages/parser3'));\nhljs.registerLanguage('pf', require('./languages/pf'));\nhljs.registerLanguage('pgsql', require('./languages/pgsql'));\nhljs.registerLanguage('php', require('./languages/php'));\nhljs.registerLanguage('php-template', require('./languages/php-template'));\nhljs.registerLanguage('plaintext', require('./languages/plaintext'));\nhljs.registerLanguage('pony', require('./languages/pony'));\nhljs.registerLanguage('powershell', require('./languages/powershell'));\nhljs.registerLanguage('processing', require('./languages/processing'));\nhljs.registerLanguage('profile', require('./languages/profile'));\nhljs.registerLanguage('prolog', require('./languages/prolog'));\nhljs.registerLanguage('properties', require('./languages/properties'));\nhljs.registerLanguage('protobuf', require('./languages/protobuf'));\nhljs.registerLanguage('puppet', require('./languages/puppet'));\nhljs.registerLanguage('purebasic', require('./languages/purebasic'));\nhljs.registerLanguage('python', require('./languages/python'));\nhljs.registerLanguage('python-repl', require('./languages/python-repl'));\nhljs.registerLanguage('q', require('./languages/q'));\nhljs.registerLanguage('qml', require('./languages/qml'));\nhljs.registerLanguage('r', require('./languages/r'));\nhljs.registerLanguage('reasonml', require('./languages/reasonml'));\nhljs.registerLanguage('rib', require('./languages/rib'));\nhljs.registerLanguage('roboconf', require('./languages/roboconf'));\nhljs.registerLanguage('routeros', require('./languages/routeros'));\nhljs.registerLanguage('rsl', require('./languages/rsl'));\nhljs.registerLanguage('ruleslanguage', require('./languages/ruleslanguage'));\nhljs.registerLanguage('rust', require('./languages/rust'));\nhljs.registerLanguage('sas', require('./languages/sas'));\nhljs.registerLanguage('scala', require('./languages/scala'));\nhljs.registerLanguage('scheme', require('./languages/scheme'));\nhljs.registerLanguage('scilab', require('./languages/scilab'));\nhljs.registerLanguage('scss', require('./languages/scss'));\nhljs.registerLanguage('shell', require('./languages/shell'));\nhljs.registerLanguage('smali', require('./languages/smali'));\nhljs.registerLanguage('smalltalk', require('./languages/smalltalk'));\nhljs.registerLanguage('sml', require('./languages/sml'));\nhljs.registerLanguage('sqf', require('./languages/sqf'));\nhljs.registerLanguage('sql', require('./languages/sql'));\nhljs.registerLanguage('stan', require('./languages/stan'));\nhljs.registerLanguage('stata', require('./languages/stata'));\nhljs.registerLanguage('step21', require('./languages/step21'));\nhljs.registerLanguage('stylus', require('./languages/stylus'));\nhljs.registerLanguage('subunit', require('./languages/subunit'));\nhljs.registerLanguage('swift', require('./languages/swift'));\nhljs.registerLanguage('taggerscript', require('./languages/taggerscript'));\nhljs.registerLanguage('yaml', require('./languages/yaml'));\nhljs.registerLanguage('tap', require('./languages/tap'));\nhljs.registerLanguage('tcl', require('./languages/tcl'));\nhljs.registerLanguage('thrift', require('./languages/thrift'));\nhljs.registerLanguage('tp', require('./languages/tp'));\nhljs.registerLanguage('twig', require('./languages/twig'));\nhljs.registerLanguage('typescript', require('./languages/typescript'));\nhljs.registerLanguage('vala', require('./languages/vala'));\nhljs.registerLanguage('vbnet', require('./languages/vbnet'));\nhljs.registerLanguage('vbscript', require('./languages/vbscript'));\nhljs.registerLanguage('vbscript-html', require('./languages/vbscript-html'));\nhljs.registerLanguage('verilog', require('./languages/verilog'));\nhljs.registerLanguage('vhdl', require('./languages/vhdl'));\nhljs.registerLanguage('vim', require('./languages/vim'));\nhljs.registerLanguage('wasm', require('./languages/wasm'));\nhljs.registerLanguage('wren', require('./languages/wren'));\nhljs.registerLanguage('x86asm', require('./languages/x86asm'));\nhljs.registerLanguage('xl', require('./languages/xl'));\nhljs.registerLanguage('xquery', require('./languages/xquery'));\nhljs.registerLanguage('zephir', require('./languages/zephir'));\n\nhljs.HighlightJS = hljs\nhljs.default = hljs\nmodule.exports = hljs;","/*\nLanguage: 1C:Enterprise\nAuthor: Stanislav Belov \nDescription: built-in language 1C:Enterprise (v7, v8)\nCategory: enterprise\n*/\n\nfunction _1c(hljs) {\n\n // общий паттерн для определения идентификаторов\n var UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';\n\n // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword\n var v7_keywords =\n 'далее ';\n\n // v8 ключевые слова ==> keyword\n var v8_keywords =\n 'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли ' +\n 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';\n\n // keyword : ключевые слова\n var KEYWORD = v7_keywords + v8_keywords;\n\n // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword\n var v7_meta_keywords =\n 'загрузитьизфайла ';\n\n // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword\n var v8_meta_keywords =\n 'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер ' +\n 'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед ' +\n 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';\n\n // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях\n var METAKEYWORD = v7_meta_keywords + v8_meta_keywords;\n\n // v7 системные константы ==> built_in\n var v7_system_constants =\n 'разделительстраниц разделительстрок символтабуляции ';\n\n // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in\n var v7_global_context_methods =\n 'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов ' +\n 'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя ' +\n 'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца ' +\n 'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид ' +\n 'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца ' +\n 'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов ' +\n 'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута ' +\n 'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта ' +\n 'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына ' +\n 'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента ' +\n 'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';\n\n // v8 методы глобального контекста ==> built_in\n var v8_global_context_methods =\n 'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока ' +\n 'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ' +\n 'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации ' +\n 'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода ' +\n 'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы ' +\n 'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации ' +\n 'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию ' +\n 'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла ' +\n 'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке ' +\n 'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку ' +\n 'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты ' +\n 'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы ' +\n 'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти ' +\n 'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы ' +\n 'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя ' +\n 'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты ' +\n 'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов ' +\n 'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя ' +\n 'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога ' +\n 'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией ' +\n 'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы ' +\n 'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения ' +\n 'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении ' +\n 'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения ' +\n 'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально ' +\n 'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа ' +\n 'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту ' +\n 'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения ' +\n 'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки ' +\n 'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение ' +\n 'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя ' +\n 'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса ' +\n 'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора ' +\n 'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса ' +\n 'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации ' +\n 'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла ' +\n 'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации ' +\n 'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления ' +\n 'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу ' +\n 'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы ' +\n 'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет ' +\n 'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима ' +\n 'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения ' +\n 'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути ' +\n 'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы ' +\n 'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю ' +\n 'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных ' +\n 'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию ' +\n 'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище ' +\n 'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода ' +\n 'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение ' +\n 'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока ' +\n 'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных ' +\n 'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени ' +\n 'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить ' +\n 'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс ' +\n 'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '+\n 'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах ' +\n 'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации ' +\n 'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы ' +\n 'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим ' +\n 'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту ' +\n 'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных ' +\n 'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации ' +\n 'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения ' +\n 'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования ' +\n 'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима ' +\n 'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим ' +\n 'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией ' +\n 'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы ' +\n 'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса ' +\n 'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';\n\n // v8 свойства глобального контекста ==> built_in\n var v8_global_context_property =\n 'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы ' +\n 'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль ' +\n 'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты ' +\n 'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений ' +\n 'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик ' +\n 'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок ' +\n 'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений ' +\n 'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа ' +\n 'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек ' +\n 'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков ' +\n 'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';\n\n // built_in : встроенные или библиотечные объекты (константы, классы, функции)\n var BUILTIN =\n v7_system_constants +\n v7_global_context_methods + v8_global_context_methods +\n v8_global_context_property;\n\n // v8 системные наборы значений ==> class\n var v8_system_sets_of_values =\n 'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';\n\n // v8 системные перечисления - интерфейсные ==> class\n var v8_system_enums_interface =\n 'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий ' +\n 'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы ' +\n 'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы ' +\n 'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя ' +\n 'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение ' +\n 'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы ' +\n 'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания ' +\n 'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки ' +\n 'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы ' +\n 'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева ' +\n 'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ' +\n 'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме ' +\n 'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы ' +\n 'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы ' +\n 'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы ' +\n 'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска ' +\n 'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования ' +\n 'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта ' +\n 'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы ' +\n 'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы ' +\n 'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы ' +\n 'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы ' +\n 'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы ' +\n 'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском ' +\n 'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы ' +\n 'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта ' +\n 'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты ' +\n 'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения ' +\n 'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра ' +\n 'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения ' +\n 'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы ' +\n 'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки ' +\n 'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание ' +\n 'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы ' +\n 'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление ' +\n 'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы ' +\n 'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы ' +\n 'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления ' +\n 'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы ' +\n 'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы ' +\n 'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений ' +\n 'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы ' +\n 'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы ' +\n 'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы ' +\n 'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени ' +\n 'форматкартинки ширинаподчиненныхэлементовформы ';\n\n // v8 системные перечисления - свойства прикладных объектов ==> class\n var v8_system_enums_objects_properties =\n 'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса ' +\n 'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения ' +\n 'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';\n\n // v8 системные перечисления - планы обмена ==> class\n var v8_system_enums_exchange_plans =\n 'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';\n\n // v8 системные перечисления - табличный документ ==> class\n var v8_system_enums_tabular_document =\n 'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы ' +\n 'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента ' +\n 'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента ' +\n 'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента ' +\n 'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы ' +\n 'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента ' +\n 'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';\n\n // v8 системные перечисления - планировщик ==> class\n var v8_system_enums_sheduler =\n 'отображениевремениэлементовпланировщика ';\n\n // v8 системные перечисления - форматированный документ ==> class\n var v8_system_enums_formatted_document =\n 'типфайлаформатированногодокумента ';\n\n // v8 системные перечисления - запрос ==> class\n var v8_system_enums_query =\n 'обходрезультатазапроса типзаписизапроса ';\n\n // v8 системные перечисления - построитель отчета ==> class\n var v8_system_enums_report_builder =\n 'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';\n\n // v8 системные перечисления - работа с файлами ==> class\n var v8_system_enums_files =\n 'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';\n\n // v8 системные перечисления - построитель запроса ==> class\n var v8_system_enums_query_builder =\n 'типизмеренияпостроителязапроса ';\n\n // v8 системные перечисления - анализ данных ==> class\n var v8_system_enums_data_analysis =\n 'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных ' +\n 'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений ' +\n 'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций ' +\n 'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных ' +\n 'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных ' +\n 'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';\n\n // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class\n var v8_system_enums_xml_json_xs_dom_xdto_ws =\n 'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto ' +\n 'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs ' +\n 'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs ' +\n 'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ' +\n 'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson ' +\n 'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs ' +\n 'форматдатыjson экранированиесимволовjson ';\n\n // v8 системные перечисления - система компоновки данных ==> class\n var v8_system_enums_data_composition_system =\n 'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных ' +\n 'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных ' +\n 'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных ' +\n 'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных ' +\n 'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных ' +\n 'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных ' +\n 'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных ' +\n 'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных ' +\n 'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных ' +\n 'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '+\n 'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных ' +\n 'использованиеусловногооформлениякомпоновкиданных ';\n\n // v8 системные перечисления - почта ==> class\n var v8_system_enums_email =\n 'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения ' +\n 'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты ' +\n 'статусразборапочтовогосообщения ';\n\n // v8 системные перечисления - журнал регистрации ==> class\n var v8_system_enums_logbook =\n 'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';\n\n // v8 системные перечисления - криптография ==> class\n var v8_system_enums_cryptography =\n 'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии ' +\n 'типхранилищасертификатовкриптографии ';\n\n // v8 системные перечисления - ZIP ==> class\n var v8_system_enums_zip =\n 'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip ' +\n 'режимсохраненияпутейzip уровеньсжатияzip ';\n\n // v8 системные перечисления -\n // Блокировка данных, Фоновые задания, Автоматизированное тестирование,\n // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class\n var v8_system_enums_other =\n 'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных ' +\n 'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';\n\n // v8 системные перечисления - схема запроса ==> class\n var v8_system_enums_request_schema =\n 'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса ' +\n 'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';\n\n // v8 системные перечисления - свойства объектов метаданных ==> class\n var v8_system_enums_properties_of_metadata_objects =\n 'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления ' +\n 'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование ' +\n 'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения ' +\n 'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита ' +\n 'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных ' +\n 'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи ' +\n 'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении ' +\n 'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений ' +\n 'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение ' +\n 'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '+\n 'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности ' +\n 'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов ' +\n 'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса ' +\n 'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов ' +\n 'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования ' +\n 'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса ' +\n 'типномерадокумента типномеразадачи типформы удалениедвижений ';\n\n // v8 системные перечисления - разные ==> class\n var v8_system_enums_differents =\n 'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения ' +\n 'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки ' +\n 'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак ' +\n 'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога ' +\n 'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных ' +\n 'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения ' +\n 'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных ' +\n 'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter ' +\n 'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';\n\n // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)\n var CLASS =\n v8_system_sets_of_values +\n v8_system_enums_interface +\n v8_system_enums_objects_properties +\n v8_system_enums_exchange_plans +\n v8_system_enums_tabular_document +\n v8_system_enums_sheduler +\n v8_system_enums_formatted_document +\n v8_system_enums_query +\n v8_system_enums_report_builder +\n v8_system_enums_files +\n v8_system_enums_query_builder +\n v8_system_enums_data_analysis +\n v8_system_enums_xml_json_xs_dom_xdto_ws +\n v8_system_enums_data_composition_system +\n v8_system_enums_email +\n v8_system_enums_logbook +\n v8_system_enums_cryptography +\n v8_system_enums_zip +\n v8_system_enums_other +\n v8_system_enums_request_schema +\n v8_system_enums_properties_of_metadata_objects +\n v8_system_enums_differents;\n\n // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type\n var v8_shared_object =\n 'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs ' +\n 'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема ' +\n 'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма ' +\n 'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания ' +\n 'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление ' +\n 'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom ' +\n 'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта ' +\n 'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs ' +\n 'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных ' +\n 'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла ' +\n 'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных ' +\n 'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных ' +\n 'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson ' +\n 'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs ' +\n 'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации ' +\n 'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных ' +\n 'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs ' +\n 'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom ' +\n 'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных ' +\n 'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных ' +\n 'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных ' +\n 'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml ' +\n 'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент ' +\n 'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml ' +\n 'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto ' +\n 'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows ' +\n 'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш ' +\n 'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент ' +\n 'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток ' +\n 'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs ' +\n 'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs ' +\n 'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs ' +\n 'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент ' +\n 'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла ' +\n 'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';\n\n // v8 универсальные коллекции значений ==> type\n var v8_universal_collection =\n 'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура ' +\n 'фиксированноесоответствие фиксированныймассив ';\n\n // type : встроенные типы\n var TYPE =\n v8_shared_object +\n v8_universal_collection;\n\n // literal : примитивные типы\n var LITERAL = 'null истина ложь неопределено';\n\n // number : числа\n var NUMBERS = hljs.inherit(hljs.NUMBER_MODE);\n\n // string : строки\n var STRINGS = {\n className: 'string',\n begin: '\"|\\\\|', end: '\"|$',\n contains: [{begin: '\"\"'}]\n };\n\n // number : даты\n var DATE = {\n begin: \"'\", end: \"'\", excludeBegin: true, excludeEnd: true,\n contains: [\n {\n className: 'number',\n begin: '\\\\d{4}([\\\\.\\\\\\\\/:-]?\\\\d{2}){0,5}'\n }\n ]\n };\n\n // comment : комментарии\n var COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);\n\n // meta : инструкции препроцессора, директивы компиляции\n var META = {\n className: 'meta',\n\n begin: '#|&', end: '$',\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD + METAKEYWORD\n },\n contains: [\n COMMENTS\n ]\n };\n\n // symbol : метка goto\n var SYMBOL = {\n className: 'symbol',\n begin: '~', end: ';|:', excludeEnd: true\n };\n\n // function : объявление процедур и функций\n var FUNCTION = {\n className: 'function',\n variants: [\n {begin: 'процедура|функция', end: '\\\\)', keywords: 'процедура функция'},\n {begin: 'конецпроцедуры|конецфункции', keywords: 'конецпроцедуры конецфункции'}\n ],\n contains: [\n {\n begin: '\\\\(', end: '\\\\)', endsParent : true,\n contains: [\n {\n className: 'params',\n begin: UNDERSCORE_IDENT_RE, end: ',', excludeEnd: true, endsWithParent: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: 'знач',\n literal: LITERAL\n },\n contains: [\n NUMBERS,\n STRINGS,\n DATE\n ]\n },\n COMMENTS\n ]\n },\n hljs.inherit(hljs.TITLE_MODE, {begin: UNDERSCORE_IDENT_RE})\n ]\n };\n\n return {\n name: '1C:Enterprise',\n case_insensitive: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD,\n built_in: BUILTIN,\n class: CLASS,\n type: TYPE,\n literal: LITERAL\n },\n contains: [\n META,\n FUNCTION,\n COMMENTS,\n SYMBOL,\n NUMBERS,\n STRINGS,\n DATE\n ]\n };\n}\n\nmodule.exports = _1c;\n","/*\nLanguage: Augmented Backus-Naur Form\nAuthor: Alex McKibben \nWebsite: https://tools.ietf.org/html/rfc5234\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction abnf(hljs) {\n const regex = hljs.regex;\n const IDENT = /^[a-zA-Z][a-zA-Z0-9-]*/;\n\n const KEYWORDS = [\n \"ALPHA\",\n \"BIT\",\n \"CHAR\",\n \"CR\",\n \"CRLF\",\n \"CTL\",\n \"DIGIT\",\n \"DQUOTE\",\n \"HEXDIG\",\n \"HTAB\",\n \"LF\",\n \"LWSP\",\n \"OCTET\",\n \"SP\",\n \"VCHAR\",\n \"WSP\"\n ];\n\n const COMMENT = hljs.COMMENT(/;/, /$/);\n\n const TERMINAL_BINARY = {\n scope: \"symbol\",\n match: /%b[0-1]+(-[0-1]+|(\\.[0-1]+)+)?/\n };\n\n const TERMINAL_DECIMAL = {\n scope: \"symbol\",\n match: /%d[0-9]+(-[0-9]+|(\\.[0-9]+)+)?/\n };\n\n const TERMINAL_HEXADECIMAL = {\n scope: \"symbol\",\n match: /%x[0-9A-F]+(-[0-9A-F]+|(\\.[0-9A-F]+)+)?/\n };\n\n const CASE_SENSITIVITY = {\n scope: \"symbol\",\n match: /%[si](?=\".*\")/\n };\n\n const RULE_DECLARATION = {\n scope: \"attribute\",\n match: regex.concat(IDENT, /(?=\\s*=)/)\n };\n\n const ASSIGNMENT = {\n scope: \"operator\",\n match: /=\\/?/\n };\n\n return {\n name: 'Augmented Backus-Naur Form',\n illegal: /[!@#$^&',?+~`|:]/,\n keywords: KEYWORDS,\n contains: [\n ASSIGNMENT,\n RULE_DECLARATION,\n COMMENT,\n TERMINAL_BINARY,\n TERMINAL_DECIMAL,\n TERMINAL_HEXADECIMAL,\n CASE_SENSITIVITY,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = abnf;\n","/*\n Language: Apache Access Log\n Author: Oleg Efimov \n Description: Apache/Nginx Access Logs\n Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog\n Category: web, logs\n Audit: 2020\n */\n\n/** @type LanguageFn */\nfunction accesslog(hljs) {\n const regex = hljs.regex;\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods\n const HTTP_VERBS = [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"PUT\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"PATCH\",\n \"TRACE\"\n ];\n return {\n name: 'Apache Access Log',\n contains: [\n // IP\n {\n className: 'number',\n begin: /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b/,\n relevance: 5\n },\n // Other numbers\n {\n className: 'number',\n begin: /\\b\\d+\\b/,\n relevance: 0\n },\n // Requests\n {\n className: 'string',\n begin: regex.concat(/\"/, regex.either(...HTTP_VERBS)),\n end: /\"/,\n keywords: HTTP_VERBS,\n illegal: /\\n/,\n relevance: 5,\n contains: [\n {\n begin: /HTTP\\/[12]\\.\\d'/,\n relevance: 5\n }\n ]\n },\n // Dates\n {\n className: 'string',\n // dates must have a certain length, this prevents matching\n // simple array accesses a[123] and [] and other common patterns\n // found in other languages\n begin: /\\[\\d[^\\]\\n]{8,}\\]/,\n illegal: /\\n/,\n relevance: 1\n },\n {\n className: 'string',\n begin: /\\[/,\n end: /\\]/,\n illegal: /\\n/,\n relevance: 0\n },\n // User agent / relevance boost\n {\n className: 'string',\n begin: /\"Mozilla\\/\\d\\.\\d \\(/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 3\n },\n // Strings\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = accesslog;\n","/*\nLanguage: ActionScript\nAuthor: Alexander Myadzel \nCategory: scripting\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction actionscript(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[a-zA-Z_$][a-zA-Z0-9_$]*/;\n const PKG_NAME_RE = regex.concat(\n IDENT_RE,\n regex.concat(\"(\\\\.\", IDENT_RE, \")*\")\n );\n const IDENT_FUNC_RETURN_TYPE_RE = /([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/;\n\n const AS3_REST_ARG_MODE = {\n className: 'rest_arg',\n begin: /[.]{3}/,\n end: IDENT_RE,\n relevance: 10\n };\n\n const KEYWORDS = [\n \"as\",\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"default\",\n \"delete\",\n \"do\",\n \"dynamic\",\n \"each\",\n \"else\",\n \"extends\",\n \"final\",\n \"finally\",\n \"for\",\n \"function\",\n \"get\",\n \"if\",\n \"implements\",\n \"import\",\n \"in\",\n \"include\",\n \"instanceof\",\n \"interface\",\n \"internal\",\n \"is\",\n \"namespace\",\n \"native\",\n \"new\",\n \"override\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"return\",\n \"set\",\n \"static\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"try\",\n \"typeof\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"with\"\n ];\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\"\n ];\n\n return {\n name: 'ActionScript',\n aliases: [ 'as' ],\n keywords: {\n keyword: KEYWORDS,\n literal: LITERALS\n },\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n {\n match: [\n /\\bpackage/,\n /\\s+/,\n PKG_NAME_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n match: [\n /\\b(?:class|interface|extends|implements)/,\n /\\s+/,\n IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n className: 'meta',\n beginKeywords: 'import include',\n end: /;/,\n keywords: { keyword: 'import include' }\n },\n {\n beginKeywords: 'function',\n end: /[{;]/,\n excludeEnd: true,\n illegal: /\\S/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { className: \"title.function\" }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AS3_REST_ARG_MODE\n ]\n },\n { begin: regex.concat(/:\\s*/, IDENT_FUNC_RETURN_TYPE_RE) }\n ]\n },\n hljs.METHOD_GUARD\n ],\n illegal: /#/\n };\n}\n\nmodule.exports = actionscript;\n","/*\nLanguage: Ada\nAuthor: Lars Schulna \nDescription: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.\n It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).\n The first version appeared in the 80s, but it's still actively developed today with\n the newest standard being Ada2012.\n*/\n\n// We try to support full Ada2012\n//\n// We highlight all appearances of types, keywords, literals (string, char, number, bool)\n// and titles (user defined function/procedure/package)\n// CSS classes are set accordingly\n//\n// Languages causing problems for language detection:\n// xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)\n// sql (ada default.txt has a lot of sql keywords)\n\n/** @type LanguageFn */\nfunction ada(hljs) {\n // Regular expression for Ada numeric literals.\n // stolen form the VHDL highlighter\n\n // Decimal literal:\n const INTEGER_RE = '\\\\d(_|\\\\d)*';\n const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n\n // Based literal:\n const BASED_INTEGER_RE = '\\\\w+';\n const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n // Identifier regex\n const ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';\n\n // bad chars, only allowed in literals\n const BAD_CHARS = `[]\\\\{\\\\}%#'\"`;\n\n // Ada doesn't have block comments, only line comments\n const COMMENTS = hljs.COMMENT('--', '$');\n\n // variable declarations of the form\n // Foo : Bar := Baz;\n // where only Bar will be highlighted\n const VAR_DECLS = {\n // TODO: These spaces are not required by the Ada syntax\n // however, I have yet to see handwritten Ada code where\n // someone does not put spaces around :\n begin: '\\\\s+:\\\\s+',\n end: '\\\\s*(:=|;|\\\\)|=>|$)',\n // endsWithParent: true,\n // returnBegin: true,\n illegal: BAD_CHARS,\n contains: [\n {\n // workaround to avoid highlighting\n // named loops and declare blocks\n beginKeywords: 'loop for declare others',\n endsParent: true\n },\n {\n // properly highlight all modifiers\n className: 'keyword',\n beginKeywords: 'not null constant access function procedure in out aliased exception'\n },\n {\n className: 'type',\n begin: ID_REGEX,\n endsParent: true,\n relevance: 0\n }\n ]\n };\n\n const KEYWORDS = [\n \"abort\",\n \"else\",\n \"new\",\n \"return\",\n \"abs\",\n \"elsif\",\n \"not\",\n \"reverse\",\n \"abstract\",\n \"end\",\n \"accept\",\n \"entry\",\n \"select\",\n \"access\",\n \"exception\",\n \"of\",\n \"separate\",\n \"aliased\",\n \"exit\",\n \"or\",\n \"some\",\n \"all\",\n \"others\",\n \"subtype\",\n \"and\",\n \"for\",\n \"out\",\n \"synchronized\",\n \"array\",\n \"function\",\n \"overriding\",\n \"at\",\n \"tagged\",\n \"generic\",\n \"package\",\n \"task\",\n \"begin\",\n \"goto\",\n \"pragma\",\n \"terminate\",\n \"body\",\n \"private\",\n \"then\",\n \"if\",\n \"procedure\",\n \"type\",\n \"case\",\n \"in\",\n \"protected\",\n \"constant\",\n \"interface\",\n \"is\",\n \"raise\",\n \"use\",\n \"declare\",\n \"range\",\n \"delay\",\n \"limited\",\n \"record\",\n \"when\",\n \"delta\",\n \"loop\",\n \"rem\",\n \"while\",\n \"digits\",\n \"renames\",\n \"with\",\n \"do\",\n \"mod\",\n \"requeue\",\n \"xor\"\n ];\n\n return {\n name: 'Ada',\n case_insensitive: true,\n keywords: {\n keyword: KEYWORDS,\n literal: [\n \"True\",\n \"False\"\n ]\n },\n contains: [\n COMMENTS,\n // strings \"foobar\"\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n // characters ''\n {\n // character literals always contain one char\n className: 'string',\n begin: /'.'/\n },\n {\n // number literals\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n },\n {\n // Attributes\n className: 'symbol',\n begin: \"'\" + ID_REGEX\n },\n {\n // package definition, maybe inside generic\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?(\\\\bprivate\\\\s+)?\\\\bpackage\\\\s+(\\\\bbody\\\\s+)?',\n end: '(is|$)',\n keywords: 'package body',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n {\n // function/procedure declaration/definition\n // maybe inside generic\n begin: '(\\\\b(with|overriding)\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\bis|\\\\bwith|\\\\brenames|\\\\)\\\\s*;)',\n keywords: 'overriding function procedure with is renames return',\n // we need to re-match the 'function' keyword, so that\n // the title mode below matches only exactly once\n returnBegin: true,\n contains:\n [\n COMMENTS,\n {\n // name of the function/procedure\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\(|\\\\s+|$)',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n // 'self'\n // // parameter types\n VAR_DECLS,\n {\n // return type\n className: 'type',\n begin: '\\\\breturn\\\\s+',\n end: '(\\\\s+|;|$)',\n keywords: 'return',\n excludeBegin: true,\n excludeEnd: true,\n // we are done with functions\n endsParent: true,\n illegal: BAD_CHARS\n\n }\n ]\n },\n {\n // new type declarations\n // maybe inside generic\n className: 'type',\n begin: '\\\\b(sub)?type\\\\s+',\n end: '\\\\s+',\n keywords: 'type',\n excludeBegin: true,\n illegal: BAD_CHARS\n },\n\n // see comment above the definition\n VAR_DECLS\n\n // no markup\n // relevance boosters for small snippets\n // {begin: '\\\\s*=>\\\\s*'},\n // {begin: '\\\\s*:=\\\\s*'},\n // {begin: '\\\\s+:=\\\\s+'},\n ]\n };\n}\n\nmodule.exports = ada;\n","/*\nLanguage: AngelScript\nAuthor: Melissa Geels \nCategory: scripting\nWebsite: https://www.angelcode.com/angelscript/\n*/\n\n/** @type LanguageFn */\nfunction angelscript(hljs) {\n const builtInTypeMode = {\n className: 'built_in',\n begin: '\\\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)'\n };\n\n const objectHandleMode = {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+@'\n };\n\n const genericMode = {\n className: 'keyword',\n begin: '<',\n end: '>',\n contains: [\n builtInTypeMode,\n objectHandleMode\n ]\n };\n\n builtInTypeMode.contains = [ genericMode ];\n objectHandleMode.contains = [ genericMode ];\n\n const KEYWORDS = [\n \"for\",\n \"in|0\",\n \"break\",\n \"continue\",\n \"while\",\n \"do|0\",\n \"return\",\n \"if\",\n \"else\",\n \"case\",\n \"switch\",\n \"namespace\",\n \"is\",\n \"cast\",\n \"or\",\n \"and\",\n \"xor\",\n \"not\",\n \"get|0\",\n \"in\",\n \"inout|10\",\n \"out\",\n \"override\",\n \"set|0\",\n \"private\",\n \"public\",\n \"const\",\n \"default|0\",\n \"final\",\n \"shared\",\n \"external\",\n \"mixin|10\",\n \"enum\",\n \"typedef\",\n \"funcdef\",\n \"this\",\n \"super\",\n \"import\",\n \"from\",\n \"interface\",\n \"abstract|0\",\n \"try\",\n \"catch\",\n \"protected\",\n \"explicit\",\n \"property\"\n ];\n\n return {\n name: 'AngelScript',\n aliases: [ 'asc' ],\n\n keywords: KEYWORDS,\n\n // avoid close detection with C# and JS\n illegal: '(^using\\\\s+[A-Za-z0-9_\\\\.]+;$|\\\\bfunction\\\\s*[^\\\\(])',\n\n contains: [\n { // 'strings'\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n // \"\"\"heredoc strings\"\"\"\n {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n\n { // \"strings\"\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n hljs.C_LINE_COMMENT_MODE, // single-line comments\n hljs.C_BLOCK_COMMENT_MODE, // comment blocks\n\n { // metadata\n className: 'string',\n begin: '^\\\\s*\\\\[',\n end: '\\\\]'\n },\n\n { // interface or namespace declaration\n beginKeywords: 'interface namespace',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // interface or namespace name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n },\n\n { // class declaration\n beginKeywords: 'class',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // class name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+',\n contains: [\n {\n begin: '[:,]\\\\s*',\n contains: [\n {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n }\n ]\n }\n ]\n },\n\n builtInTypeMode, // built-in types\n objectHandleMode, // object handles\n\n { // literals\n className: 'literal',\n begin: '\\\\b(null|true|false)'\n },\n\n { // numbers\n className: 'number',\n relevance: 0,\n begin: '(-?)(\\\\b0[xXbBoOdD][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?f?|\\\\.\\\\d+f?)([eE][-+]?\\\\d+f?)?)'\n }\n ]\n };\n}\n\nmodule.exports = angelscript;\n","/*\nLanguage: Apache config\nAuthor: Ruslan Keba \nContributors: Ivan Sagalaev \nWebsite: https://httpd.apache.org\nDescription: language definition for Apache configuration files (httpd.conf & .htaccess)\nCategory: config, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction apache(hljs) {\n const NUMBER_REF = {\n className: 'number',\n begin: /[$%]\\d+/\n };\n const NUMBER = {\n className: 'number',\n begin: /\\b\\d+/\n };\n const IP_ADDRESS = {\n className: \"number\",\n begin: /\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?/\n };\n const PORT_NUMBER = {\n className: \"number\",\n begin: /:\\d{1,5}/\n };\n return {\n name: 'Apache config',\n aliases: [ 'apacheconf' ],\n case_insensitive: true,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'section',\n begin: /<\\/?/,\n end: />/,\n contains: [\n IP_ADDRESS,\n PORT_NUMBER,\n // low relevance prevents us from claming XML/HTML where this rule would\n // match strings inside of XML tags\n hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance: 0 })\n ]\n },\n {\n className: 'attribute',\n begin: /\\w+/,\n relevance: 0,\n // keywords aren’t needed for highlighting per se, they only boost relevance\n // for a very generally defined mode (starts with a word, ends with line-end\n keywords: {\n _: [\n \"order\",\n \"deny\",\n \"allow\",\n \"setenv\",\n \"rewriterule\",\n \"rewriteengine\",\n \"rewritecond\",\n \"documentroot\",\n \"sethandler\",\n \"errordocument\",\n \"loadmodule\",\n \"options\",\n \"header\",\n \"listen\",\n \"serverroot\",\n \"servername\"\n ]\n },\n starts: {\n end: /$/,\n relevance: 0,\n keywords: { literal: 'on off all deny allow' },\n contains: [\n {\n className: 'meta',\n begin: /\\s\\[/,\n end: /\\]$/\n },\n {\n className: 'variable',\n begin: /[\\$%]\\{/,\n end: /\\}/,\n contains: [\n 'self',\n NUMBER_REF\n ]\n },\n IP_ADDRESS,\n NUMBER,\n hljs.QUOTE_STRING_MODE\n ]\n }\n }\n ],\n illegal: /\\S/\n };\n}\n\nmodule.exports = apache;\n","/*\nLanguage: AppleScript\nAuthors: Nathan Grigg , Dr. Drang \nCategory: scripting\nWebsite: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction applescript(hljs) {\n const regex = hljs.regex;\n const STRING = hljs.inherit(\n hljs.QUOTE_STRING_MODE, {\n illegal: null\n });\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n hljs.C_NUMBER_MODE,\n STRING\n ]\n };\n const COMMENT_MODE_1 = hljs.COMMENT(/--/, /$/);\n const COMMENT_MODE_2 = hljs.COMMENT(\n /\\(\\*/,\n /\\*\\)/,\n {\n contains: [\n 'self', // allow nesting\n COMMENT_MODE_1\n ]\n }\n );\n const COMMENTS = [\n COMMENT_MODE_1,\n COMMENT_MODE_2,\n hljs.HASH_COMMENT_MODE\n ];\n\n const KEYWORD_PATTERNS = [\n /apart from/,\n /aside from/,\n /instead of/,\n /out of/,\n /greater than/,\n /isn't|(doesn't|does not) (equal|come before|come after|contain)/,\n /(greater|less) than( or equal)?/,\n /(starts?|ends|begins?) with/,\n /contained by/,\n /comes (before|after)/,\n /a (ref|reference)/,\n /POSIX (file|path)/,\n /(date|time) string/,\n /quoted form/\n ];\n\n const BUILT_IN_PATTERNS = [\n /clipboard info/,\n /the clipboard/,\n /info for/,\n /list (disks|folder)/,\n /mount volume/,\n /path to/,\n /(close|open for) access/,\n /(get|set) eof/,\n /current date/,\n /do shell script/,\n /get volume settings/,\n /random number/,\n /set volume/,\n /system attribute/,\n /system info/,\n /time to GMT/,\n /(load|run|store) script/,\n /scripting components/,\n /ASCII (character|number)/,\n /localized string/,\n /choose (application|color|file|file name|folder|from list|remote application|URL)/,\n /display (alert|dialog)/\n ];\n\n return {\n name: 'AppleScript',\n aliases: [ 'osascript' ],\n keywords: {\n keyword:\n 'about above after against and around as at back before beginning ' +\n 'behind below beneath beside between but by considering ' +\n 'contain contains continue copy div does eighth else end equal ' +\n 'equals error every exit fifth first for fourth from front ' +\n 'get given global if ignoring in into is it its last local me ' +\n 'middle mod my ninth not of on onto or over prop property put ref ' +\n 'reference repeat returning script second set seventh since ' +\n 'sixth some tell tenth that the|0 then third through thru ' +\n 'timeout times to transaction try until where while whose with ' +\n 'without',\n literal:\n 'AppleScript false linefeed return pi quote result space tab true',\n built_in:\n 'alias application boolean class constant date file integer list ' +\n 'number real record string text ' +\n 'activate beep count delay launch log offset read round ' +\n 'run say summarize write ' +\n 'character characters contents day frontmost id item length ' +\n 'month name paragraph paragraphs rest reverse running time version ' +\n 'weekday word words year'\n },\n contains: [\n STRING,\n hljs.C_NUMBER_MODE,\n {\n className: 'built_in',\n begin: regex.concat(\n /\\b/,\n regex.either(...BUILT_IN_PATTERNS),\n /\\b/\n )\n },\n {\n className: 'built_in',\n begin: /^\\s*return\\b/\n },\n {\n className: 'literal',\n begin:\n /\\b(text item delimiters|current application|missing value)\\b/\n },\n {\n className: 'keyword',\n begin: regex.concat(\n /\\b/,\n regex.either(...KEYWORD_PATTERNS),\n /\\b/\n )\n },\n {\n beginKeywords: 'on',\n illegal: /[${=;\\n]/,\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n PARAMS\n ]\n },\n ...COMMENTS\n ],\n illegal: /\\/\\/|->|=>|\\[\\[/\n };\n}\n\nmodule.exports = applescript;\n","/*\n Language: ArcGIS Arcade\n Category: scripting\n Author: John Foster \n Website: https://developers.arcgis.com/arcade/\n Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python\n*/\n\n/** @type LanguageFn */\nfunction arcade(hljs) {\n const IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';\n const KEYWORDS = {\n keyword:\n 'if for while var new function do return void else break',\n literal:\n 'BackSlash DoubleQuote false ForwardSlash Infinity NaN NewLine null PI SingleQuote Tab TextFormatting true undefined',\n built_in:\n 'Abs Acos Angle Attachments Area AreaGeodetic Asin Atan Atan2 Average Bearing Boolean Buffer BufferGeodetic ' +\n 'Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd ' +\n 'DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance DistanceGeodetic Distinct ' +\n 'DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetByAssociation FeatureSetById FeatureSetByPortalItem ' +\n 'FeatureSetByRelationshipName FeatureSetByTitle FeatureSetByUrl Filter First Floor Geometry GroupBy Guid HasKey Hour IIf IndexOf ' +\n 'Intersection Intersects IsEmpty IsNan IsSelfIntersecting Length LengthGeodetic Log Max Mean Millisecond Min Minute Month ' +\n 'MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon ' +\n 'Polyline Portal Pow Random Relate Reverse RingIsClockWise Round Second SetGeometry Sin Sort Sqrt Stdev Sum ' +\n 'SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TrackCurrentTime ' +\n 'TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance ' +\n 'Weekday When Within Year '\n };\n const SYMBOL = {\n className: 'symbol',\n begin: '\\\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+'\n };\n const NUMBER = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0[bB][01]+)'\n },\n {\n begin: '\\\\b(0[oO][0-7]+)'\n },\n {\n begin: hljs.C_NUMBER_RE\n }\n ],\n relevance: 0\n };\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS,\n contains: [] // defined later\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n SUBST.contains = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n NUMBER,\n hljs.REGEXP_MODE\n ];\n const PARAMS_CONTAINS = SUBST.contains.concat([\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]);\n\n return {\n name: 'ArcGIS Arcade',\n keywords: KEYWORDS,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n SYMBOL,\n NUMBER,\n { // object attr container\n begin: /[{,]\\s*/,\n relevance: 0,\n contains: [{\n begin: IDENT_RE + '\\\\s*:',\n returnBegin: true,\n relevance: 0,\n contains: [{\n className: 'attr',\n begin: IDENT_RE,\n relevance: 0\n }]\n }]\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(return)\\\\b)\\\\s*',\n keywords: 'return',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n begin: '(\\\\(.*?\\\\)|' + IDENT_RE + ')\\\\s*=>',\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [{\n className: 'params',\n variants: [\n {\n begin: IDENT_RE\n },\n {\n begin: /\\(\\s*\\)/\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: PARAMS_CONTAINS\n }\n ]\n }]\n }\n ],\n relevance: 0\n },\n {\n beginKeywords: 'function',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n className: \"title.function\",\n begin: IDENT_RE\n }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n contains: PARAMS_CONTAINS\n }\n ],\n illegal: /\\[|%/\n },\n {\n begin: /\\$[(.]/\n }\n ],\n illegal: /#(?!!)/\n };\n}\n\nmodule.exports = arcade;\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n contains: [\n {\n begin: /\\\\\\n/\n }\n ]\n });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)(' +\n DECLTYPE_AUTO_RE + '|' +\n regex.optional(NAMESPACE_RE) +\n '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE) +\n ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0b[01\\']+)'\n },\n {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n },\n {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n keyword:\n 'if else elif endif define undef warning error line ' +\n 'pragma _Pragma ifdef ifndef include'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, {\n className: 'string'\n }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [\n '_Pragma'\n ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS\n },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: ' rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\s*<',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\n/*\nLanguage: Arduino\nAuthor: Stefania Mellai \nDescription: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.\nWebsite: https://www.arduino.cc\n*/\n\n/** @type LanguageFn */\nfunction arduino(hljs) {\n const ARDUINO_KW = {\n type: [\n \"boolean\",\n \"byte\",\n \"word\",\n \"String\"\n ],\n built_in: [\n \"KeyboardController\",\n \"MouseController\",\n \"SoftwareSerial\",\n \"EthernetServer\",\n \"EthernetClient\",\n \"LiquidCrystal\",\n \"RobotControl\",\n \"GSMVoiceCall\",\n \"EthernetUDP\",\n \"EsploraTFT\",\n \"HttpClient\",\n \"RobotMotor\",\n \"WiFiClient\",\n \"GSMScanner\",\n \"FileSystem\",\n \"Scheduler\",\n \"GSMServer\",\n \"YunClient\",\n \"YunServer\",\n \"IPAddress\",\n \"GSMClient\",\n \"GSMModem\",\n \"Keyboard\",\n \"Ethernet\",\n \"Console\",\n \"GSMBand\",\n \"Esplora\",\n \"Stepper\",\n \"Process\",\n \"WiFiUDP\",\n \"GSM_SMS\",\n \"Mailbox\",\n \"USBHost\",\n \"Firmata\",\n \"PImage\",\n \"Client\",\n \"Server\",\n \"GSMPIN\",\n \"FileIO\",\n \"Bridge\",\n \"Serial\",\n \"EEPROM\",\n \"Stream\",\n \"Mouse\",\n \"Audio\",\n \"Servo\",\n \"File\",\n \"Task\",\n \"GPRS\",\n \"WiFi\",\n \"Wire\",\n \"TFT\",\n \"GSM\",\n \"SPI\",\n \"SD\"\n ],\n _hints: [\n \"setup\",\n \"loop\",\n \"runShellCommandAsynchronously\",\n \"analogWriteResolution\",\n \"retrieveCallingNumber\",\n \"printFirmwareVersion\",\n \"analogReadResolution\",\n \"sendDigitalPortPair\",\n \"noListenOnLocalhost\",\n \"readJoystickButton\",\n \"setFirmwareVersion\",\n \"readJoystickSwitch\",\n \"scrollDisplayRight\",\n \"getVoiceCallStatus\",\n \"scrollDisplayLeft\",\n \"writeMicroseconds\",\n \"delayMicroseconds\",\n \"beginTransmission\",\n \"getSignalStrength\",\n \"runAsynchronously\",\n \"getAsynchronously\",\n \"listenOnLocalhost\",\n \"getCurrentCarrier\",\n \"readAccelerometer\",\n \"messageAvailable\",\n \"sendDigitalPorts\",\n \"lineFollowConfig\",\n \"countryNameWrite\",\n \"runShellCommand\",\n \"readStringUntil\",\n \"rewindDirectory\",\n \"readTemperature\",\n \"setClockDivider\",\n \"readLightSensor\",\n \"endTransmission\",\n \"analogReference\",\n \"detachInterrupt\",\n \"countryNameRead\",\n \"attachInterrupt\",\n \"encryptionType\",\n \"readBytesUntil\",\n \"robotNameWrite\",\n \"readMicrophone\",\n \"robotNameRead\",\n \"cityNameWrite\",\n \"userNameWrite\",\n \"readJoystickY\",\n \"readJoystickX\",\n \"mouseReleased\",\n \"openNextFile\",\n \"scanNetworks\",\n \"noInterrupts\",\n \"digitalWrite\",\n \"beginSpeaker\",\n \"mousePressed\",\n \"isActionDone\",\n \"mouseDragged\",\n \"displayLogos\",\n \"noAutoscroll\",\n \"addParameter\",\n \"remoteNumber\",\n \"getModifiers\",\n \"keyboardRead\",\n \"userNameRead\",\n \"waitContinue\",\n \"processInput\",\n \"parseCommand\",\n \"printVersion\",\n \"readNetworks\",\n \"writeMessage\",\n \"blinkVersion\",\n \"cityNameRead\",\n \"readMessage\",\n \"setDataMode\",\n \"parsePacket\",\n \"isListening\",\n \"setBitOrder\",\n \"beginPacket\",\n \"isDirectory\",\n \"motorsWrite\",\n \"drawCompass\",\n \"digitalRead\",\n \"clearScreen\",\n \"serialEvent\",\n \"rightToLeft\",\n \"setTextSize\",\n \"leftToRight\",\n \"requestFrom\",\n \"keyReleased\",\n \"compassRead\",\n \"analogWrite\",\n \"interrupts\",\n \"WiFiServer\",\n \"disconnect\",\n \"playMelody\",\n \"parseFloat\",\n \"autoscroll\",\n \"getPINUsed\",\n \"setPINUsed\",\n \"setTimeout\",\n \"sendAnalog\",\n \"readSlider\",\n \"analogRead\",\n \"beginWrite\",\n \"createChar\",\n \"motorsStop\",\n \"keyPressed\",\n \"tempoWrite\",\n \"readButton\",\n \"subnetMask\",\n \"debugPrint\",\n \"macAddress\",\n \"writeGreen\",\n \"randomSeed\",\n \"attachGPRS\",\n \"readString\",\n \"sendString\",\n \"remotePort\",\n \"releaseAll\",\n \"mouseMoved\",\n \"background\",\n \"getXChange\",\n \"getYChange\",\n \"answerCall\",\n \"getResult\",\n \"voiceCall\",\n \"endPacket\",\n \"constrain\",\n \"getSocket\",\n \"writeJSON\",\n \"getButton\",\n \"available\",\n \"connected\",\n \"findUntil\",\n \"readBytes\",\n \"exitValue\",\n \"readGreen\",\n \"writeBlue\",\n \"startLoop\",\n \"IPAddress\",\n \"isPressed\",\n \"sendSysex\",\n \"pauseMode\",\n \"gatewayIP\",\n \"setCursor\",\n \"getOemKey\",\n \"tuneWrite\",\n \"noDisplay\",\n \"loadImage\",\n \"switchPIN\",\n \"onRequest\",\n \"onReceive\",\n \"changePIN\",\n \"playFile\",\n \"noBuffer\",\n \"parseInt\",\n \"overflow\",\n \"checkPIN\",\n \"knobRead\",\n \"beginTFT\",\n \"bitClear\",\n \"updateIR\",\n \"bitWrite\",\n \"position\",\n \"writeRGB\",\n \"highByte\",\n \"writeRed\",\n \"setSpeed\",\n \"readBlue\",\n \"noStroke\",\n \"remoteIP\",\n \"transfer\",\n \"shutdown\",\n \"hangCall\",\n \"beginSMS\",\n \"endWrite\",\n \"attached\",\n \"maintain\",\n \"noCursor\",\n \"checkReg\",\n \"checkPUK\",\n \"shiftOut\",\n \"isValid\",\n \"shiftIn\",\n \"pulseIn\",\n \"connect\",\n \"println\",\n \"localIP\",\n \"pinMode\",\n \"getIMEI\",\n \"display\",\n \"noBlink\",\n \"process\",\n \"getBand\",\n \"running\",\n \"beginSD\",\n \"drawBMP\",\n \"lowByte\",\n \"setBand\",\n \"release\",\n \"bitRead\",\n \"prepare\",\n \"pointTo\",\n \"readRed\",\n \"setMode\",\n \"noFill\",\n \"remove\",\n \"listen\",\n \"stroke\",\n \"detach\",\n \"attach\",\n \"noTone\",\n \"exists\",\n \"buffer\",\n \"height\",\n \"bitSet\",\n \"circle\",\n \"config\",\n \"cursor\",\n \"random\",\n \"IRread\",\n \"setDNS\",\n \"endSMS\",\n \"getKey\",\n \"micros\",\n \"millis\",\n \"begin\",\n \"print\",\n \"write\",\n \"ready\",\n \"flush\",\n \"width\",\n \"isPIN\",\n \"blink\",\n \"clear\",\n \"press\",\n \"mkdir\",\n \"rmdir\",\n \"close\",\n \"point\",\n \"yield\",\n \"image\",\n \"BSSID\",\n \"click\",\n \"delay\",\n \"read\",\n \"text\",\n \"move\",\n \"peek\",\n \"beep\",\n \"rect\",\n \"line\",\n \"open\",\n \"seek\",\n \"fill\",\n \"size\",\n \"turn\",\n \"stop\",\n \"home\",\n \"find\",\n \"step\",\n \"tone\",\n \"sqrt\",\n \"RSSI\",\n \"SSID\",\n \"end\",\n \"bit\",\n \"tan\",\n \"cos\",\n \"sin\",\n \"pow\",\n \"map\",\n \"abs\",\n \"max\",\n \"min\",\n \"get\",\n \"run\",\n \"put\"\n ],\n literal: [\n \"DIGITAL_MESSAGE\",\n \"FIRMATA_STRING\",\n \"ANALOG_MESSAGE\",\n \"REPORT_DIGITAL\",\n \"REPORT_ANALOG\",\n \"INPUT_PULLUP\",\n \"SET_PIN_MODE\",\n \"INTERNAL2V56\",\n \"SYSTEM_RESET\",\n \"LED_BUILTIN\",\n \"INTERNAL1V1\",\n \"SYSEX_START\",\n \"INTERNAL\",\n \"EXTERNAL\",\n \"DEFAULT\",\n \"OUTPUT\",\n \"INPUT\",\n \"HIGH\",\n \"LOW\"\n ]\n };\n\n const ARDUINO = cPlusPlus(hljs);\n\n const kws = /** @type {Record} */ (ARDUINO.keywords);\n\n kws.type = [ ...kws.type, ...ARDUINO_KW.type ];\n kws.literal = [ ...kws.literal, ...ARDUINO_KW.literal ];\n kws.built_in = [ ...kws.built_in, ...ARDUINO_KW.built_in ];\n kws._hints = ARDUINO_KW._hints;\n\n ARDUINO.name = 'Arduino';\n ARDUINO.aliases = ['ino'];\n ARDUINO.supersetOf = \"cpp\";\n\n return ARDUINO;\n}\n\nmodule.exports = arduino;\n","/*\nLanguage: ARM Assembly\nAuthor: Dan Panzarella \nDescription: ARM Assembly including Thumb and Thumb2 instructions\nCategory: assembler\n*/\n\n/** @type LanguageFn */\nfunction armasm(hljs) {\n // local labels: %?[FB]?[AT]?\\d{1,2}\\w+\n\n const COMMENT = {\n variants: [\n hljs.COMMENT('^[ \\\\t]*(?=#)', '$', {\n relevance: 0,\n excludeBegin: true\n }),\n hljs.COMMENT('[;@]', '$', {\n relevance: 0\n }),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n return {\n name: 'ARM Assembly',\n case_insensitive: true,\n aliases: ['arm'],\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n meta:\n // GNU preprocs\n '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ' +\n // ARM directives\n 'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',\n built_in:\n 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 ' + // standard registers\n 'pc lr sp ip sl sb fp ' + // typical regs plus backward compatibility\n 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 ' + // more regs and fp\n 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 ' + // coprocessor regs\n 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 ' + // more coproc\n 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 ' + // advanced SIMD NEON regs\n\n // program status registers\n 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf ' +\n 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf ' +\n\n // NEON and VFP registers\n 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 ' +\n 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 ' +\n 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 ' +\n 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +\n\n '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'\n },\n contains: [\n {\n className: 'keyword',\n begin: '\\\\b(' + // mnemonics\n 'adc|' +\n '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|' +\n 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|' +\n 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|' +\n 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|' +\n 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|' +\n 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|' +\n 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|' +\n 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|' +\n 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|' +\n 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|' +\n '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|' +\n 'wfe|wfi|yield' +\n ')' +\n '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?' + // condition codes\n '[sptrx]?' + // legal postfixes\n '(?=\\\\s)' // followed by space\n },\n COMMENT,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n relevance: 0\n },\n {\n className: 'title',\n begin: '\\\\|',\n end: '\\\\|',\n illegal: '\\\\n',\n relevance: 0\n },\n {\n className: 'number',\n variants: [\n { // hex\n begin: '[#$=]?0x[0-9a-f]+'\n },\n { // bin\n begin: '[#$=]?0b[01]+'\n },\n { // literal\n begin: '[#$=]\\\\d+'\n },\n { // bare number\n begin: '\\\\b\\\\d+'\n }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n variants: [\n { // GNU ARM syntax\n begin: '^[ \\\\t]*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:'\n },\n { // ARM syntax\n begin: '^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+'\n },\n { // label reference\n begin: '[=#]\\\\w+'\n }\n ],\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = armasm;\n","/*\nLanguage: AsciiDoc\nRequires: xml.js\nAuthor: Dan Allen \nWebsite: http://asciidoc.org\nDescription: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.\nCategory: markup\n*/\n\n/** @type LanguageFn */\nfunction asciidoc(hljs) {\n const regex = hljs.regex;\n const HORIZONTAL_RULE = {\n begin: '^\\'{3,}[ \\\\t]*$',\n relevance: 10\n };\n const ESCAPED_FORMATTING = [\n // escaped constrained formatting marks (i.e., \\* \\_ or \\`)\n {\n begin: /\\\\[*_`]/\n },\n // escaped unconstrained formatting marks (i.e., \\\\** \\\\__ or \\\\``)\n // must ignore until the next formatting marks\n // this rule might not be 100% compliant with Asciidoctor 2.0 but we are entering undefined behavior territory...\n {\n begin: /\\\\\\\\\\*{2}[^\\n]*?\\*{2}/\n },\n {\n begin: /\\\\\\\\_{2}[^\\n]*_{2}/\n },\n {\n begin: /\\\\\\\\`{2}[^\\n]*`{2}/\n },\n // guard: constrained formatting mark may not be preceded by \":\", \";\" or\n // \"}\". match these so the constrained rule doesn't see them\n {\n begin: /[:;}][*_`](?![*_`])/\n }\n ];\n const STRONG = [\n // inline unconstrained strong (single line)\n {\n className: 'strong',\n begin: /\\*{2}([^\\n]+?)\\*{2}/\n },\n // inline unconstrained strong (multi-line)\n {\n className: 'strong',\n begin: regex.concat(\n /\\*\\*/,\n /((\\*(?!\\*)|\\\\[^\\n]|[^*\\n\\\\])+\\n)+/,\n /(\\*(?!\\*)|\\\\[^\\n]|[^*\\n\\\\])*/,\n /\\*\\*/\n ),\n relevance: 0\n },\n // inline constrained strong (single line)\n {\n className: 'strong',\n // must not precede or follow a word character\n begin: /\\B\\*(\\S|\\S[^\\n]*?\\S)\\*(?!\\w)/\n },\n // inline constrained strong (multi-line)\n {\n className: 'strong',\n // must not precede or follow a word character\n begin: /\\*[^\\s]([^\\n]+\\n)+([^\\n]+)\\*/\n }\n ];\n const EMPHASIS = [\n // inline unconstrained emphasis (single line)\n {\n className: 'emphasis',\n begin: /_{2}([^\\n]+?)_{2}/\n },\n // inline unconstrained emphasis (multi-line)\n {\n className: 'emphasis',\n begin: regex.concat(\n /__/,\n /((_(?!_)|\\\\[^\\n]|[^_\\n\\\\])+\\n)+/,\n /(_(?!_)|\\\\[^\\n]|[^_\\n\\\\])*/,\n /__/\n ),\n relevance: 0\n },\n // inline constrained emphasis (single line)\n {\n className: 'emphasis',\n // must not precede or follow a word character\n begin: /\\b_(\\S|\\S[^\\n]*?\\S)_(?!\\w)/\n },\n // inline constrained emphasis (multi-line)\n {\n className: 'emphasis',\n // must not precede or follow a word character\n begin: /_[^\\s]([^\\n]+\\n)+([^\\n]+)_/\n },\n // inline constrained emphasis using single quote (legacy)\n {\n className: 'emphasis',\n // must not follow a word character or be followed by a single quote or space\n begin: '\\\\B\\'(?![\\'\\\\s])',\n end: '(\\\\n{2}|\\')',\n // allow escaped single quote followed by word char\n contains: [{\n begin: '\\\\\\\\\\'\\\\w',\n relevance: 0\n }],\n relevance: 0\n }\n ];\n const ADMONITION = {\n className: 'symbol',\n begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\\\s+',\n relevance: 10\n };\n const BULLET_LIST = {\n className: 'bullet',\n begin: '^(\\\\*+|-+|\\\\.+|[^\\\\n]+?::)\\\\s+'\n };\n\n return {\n name: 'AsciiDoc',\n aliases: ['adoc'],\n contains: [\n // block comment\n hljs.COMMENT(\n '^/{4,}\\\\n',\n '\\\\n/{4,}$',\n // can also be done as...\n // '^/{4,}$',\n // '^/{4,}$',\n {\n relevance: 10\n }\n ),\n // line comment\n hljs.COMMENT(\n '^//',\n '$',\n {\n relevance: 0\n }\n ),\n // title\n {\n className: 'title',\n begin: '^\\\\.\\\\w.*$'\n },\n // example, admonition & sidebar blocks\n {\n begin: '^[=\\\\*]{4,}\\\\n',\n end: '\\\\n^[=\\\\*]{4,}$',\n relevance: 10\n },\n // headings\n {\n className: 'section',\n relevance: 10,\n variants: [\n {\n begin: '^(={1,6})[ \\t].+?([ \\t]\\\\1)?$'\n },\n {\n begin: '^[^\\\\[\\\\]\\\\n]+?\\\\n[=\\\\-~\\\\^\\\\+]{2,}$'\n }\n ]\n },\n // document attributes\n {\n className: 'meta',\n begin: '^:.+?:',\n end: '\\\\s',\n excludeEnd: true,\n relevance: 10\n },\n // block attributes\n {\n className: 'meta',\n begin: '^\\\\[.+?\\\\]$',\n relevance: 0\n },\n // quoteblocks\n {\n className: 'quote',\n begin: '^_{4,}\\\\n',\n end: '\\\\n_{4,}$',\n relevance: 10\n },\n // listing and literal blocks\n {\n className: 'code',\n begin: '^[\\\\-\\\\.]{4,}\\\\n',\n end: '\\\\n[\\\\-\\\\.]{4,}$',\n relevance: 10\n },\n // passthrough blocks\n {\n begin: '^\\\\+{4,}\\\\n',\n end: '\\\\n\\\\+{4,}$',\n contains: [{\n begin: '<',\n end: '>',\n subLanguage: 'xml',\n relevance: 0\n }],\n relevance: 10\n },\n\n BULLET_LIST,\n ADMONITION,\n ...ESCAPED_FORMATTING,\n ...STRONG,\n ...EMPHASIS,\n\n // inline smart quotes\n {\n className: 'string',\n variants: [\n {\n begin: \"``.+?''\"\n },\n {\n begin: \"`.+?'\"\n }\n ]\n },\n // inline unconstrained emphasis\n {\n className: 'code',\n begin: /`{2}/,\n end: /(\\n{2}|`{2})/\n },\n // inline code snippets (TODO should get same treatment as strong and emphasis)\n {\n className: 'code',\n begin: '(`.+?`|\\\\+.+?\\\\+)',\n relevance: 0\n },\n // indented literal block\n {\n className: 'code',\n begin: '^[ \\\\t]',\n end: '$',\n relevance: 0\n },\n HORIZONTAL_RULE,\n // images and links\n {\n begin: '(link:)?(http|https|ftp|file|irc|image:?):\\\\S+?\\\\[[^[]*?\\\\]',\n returnBegin: true,\n contains: [\n {\n begin: '(link|image:?):',\n relevance: 0\n },\n {\n className: 'link',\n begin: '\\\\w',\n end: '[^\\\\[]+',\n relevance: 0\n },\n {\n className: 'string',\n begin: '\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n }\n ],\n relevance: 10\n }\n ]\n };\n}\n\nmodule.exports = asciidoc;\n","/*\nLanguage: AspectJ\nAuthor: Hakan Ozler \nWebsite: https://www.eclipse.org/aspectj/\nDescription: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction aspectj(hljs) {\n const regex = hljs.regex;\n const KEYWORDS = [\n \"false\",\n \"synchronized\",\n \"int\",\n \"abstract\",\n \"float\",\n \"private\",\n \"char\",\n \"boolean\",\n \"static\",\n \"null\",\n \"if\",\n \"const\",\n \"for\",\n \"true\",\n \"while\",\n \"long\",\n \"throw\",\n \"strictfp\",\n \"finally\",\n \"protected\",\n \"import\",\n \"native\",\n \"final\",\n \"return\",\n \"void\",\n \"enum\",\n \"else\",\n \"extends\",\n \"implements\",\n \"break\",\n \"transient\",\n \"new\",\n \"catch\",\n \"instanceof\",\n \"byte\",\n \"super\",\n \"volatile\",\n \"case\",\n \"assert\",\n \"short\",\n \"package\",\n \"default\",\n \"double\",\n \"public\",\n \"try\",\n \"this\",\n \"switch\",\n \"continue\",\n \"throws\",\n \"privileged\",\n \"aspectOf\",\n \"adviceexecution\",\n \"proceed\",\n \"cflowbelow\",\n \"cflow\",\n \"initialization\",\n \"preinitialization\",\n \"staticinitialization\",\n \"withincode\",\n \"target\",\n \"within\",\n \"execution\",\n \"getWithinTypeName\",\n \"handler\",\n \"thisJoinPoint\",\n \"thisJoinPointStaticPart\",\n \"thisEnclosingJoinPointStaticPart\",\n \"declare\",\n \"parents\",\n \"warning\",\n \"error\",\n \"soft\",\n \"precedence\",\n \"thisAspectInstance\"\n ];\n const SHORTKEYS = [\n \"get\",\n \"set\",\n \"args\",\n \"call\"\n ];\n\n return {\n name: 'AspectJ',\n keywords: KEYWORDS,\n illegal: /<\\/|#/,\n contains: [\n hljs.COMMENT(\n /\\/\\*\\*/,\n /\\*\\//,\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n },\n {\n className: 'doctag',\n begin: /@[A-Za-z]+/\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'class',\n beginKeywords: 'aspect',\n end: /[{;=]/,\n excludeEnd: true,\n illegal: /[:;\"\\[\\]]/,\n contains: [\n {\n beginKeywords: 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'\n },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: /\\([^\\)]*/,\n end: /[)]+/,\n keywords: KEYWORDS.concat(SHORTKEYS),\n excludeEnd: false\n }\n ]\n },\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: /[{;=]/,\n excludeEnd: true,\n relevance: 0,\n keywords: 'class interface',\n illegal: /[:\"\\[\\]]/,\n contains: [\n {\n beginKeywords: 'extends implements'\n },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n // AspectJ Constructs\n beginKeywords: 'pointcut after before around throwing returning',\n end: /[)]/,\n excludeEnd: false,\n illegal: /[\"\\[\\]]/,\n contains: [\n {\n begin: regex.concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n returnBegin: true,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n }\n ]\n },\n {\n begin: /[:]/,\n returnBegin: true,\n end: /[{;]/,\n relevance: 0,\n excludeEnd: false,\n keywords: KEYWORDS,\n illegal: /[\"\\[\\]]/,\n contains: [\n {\n begin: regex.concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n keywords: KEYWORDS.concat(SHORTKEYS),\n relevance: 0\n },\n hljs.QUOTE_STRING_MODE\n ]\n },\n {\n // this prevents 'new Name(...), or throw ...' from being recognized as a function definition\n beginKeywords: 'new throw',\n relevance: 0\n },\n {\n // the function class is a bit different for AspectJ compared to the Java language\n className: 'function',\n begin: /\\w+ +\\w+(\\.\\w+)?\\s*\\([^\\)]*\\)\\s*((throws)[\\w\\s,]+)?[\\{;]/,\n returnBegin: true,\n end: /[{;=]/,\n keywords: KEYWORDS,\n excludeEnd: true,\n contains: [\n {\n begin: regex.concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n returnBegin: true,\n relevance: 0,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: KEYWORDS,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_NUMBER_MODE,\n {\n // annotation is also used in this language\n className: 'meta',\n begin: /@[A-Za-z]+/\n }\n ]\n };\n}\n\nmodule.exports = aspectj;\n","/*\nLanguage: AutoHotkey\nAuthor: Seongwon Lee \nDescription: AutoHotkey language definition\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction autohotkey(hljs) {\n const BACKTICK_ESCAPE = {\n begin: '`[\\\\s\\\\S]'\n };\n\n return {\n name: 'AutoHotkey',\n case_insensitive: true,\n aliases: ['ahk'],\n keywords: {\n keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group',\n literal: 'true false NOT AND OR',\n built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel'\n },\n contains: [\n BACKTICK_ESCAPE,\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n contains: [BACKTICK_ESCAPE]\n }),\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'number',\n begin: hljs.NUMBER_RE,\n relevance: 0\n },\n {\n // subst would be the most accurate however fails the point of\n // highlighting. variable is comparably the most accurate that actually\n // has some effect\n className: 'variable',\n begin: '%[a-zA-Z0-9#_$@]+%'\n },\n {\n className: 'built_in',\n begin: '^\\\\s*\\\\w+\\\\s*(,|%)'\n // I don't really know if this is totally relevant\n },\n {\n // symbol would be most accurate however is highlighted just like\n // built_in and that makes up a lot of AutoHotkey code meaning that it\n // would fail to highlight anything\n className: 'title',\n variants: [\n {\n begin: '^[^\\\\n\";]+::(?!=)'\n },\n {\n begin: '^[^\\\\n\";]+:(?!=)',\n // zero relevance as it catches a lot of things\n // followed by a single ':' in many languages\n relevance: 0\n }\n ]\n },\n {\n className: 'meta',\n begin: '^\\\\s*#\\\\w+',\n end: '$',\n relevance: 0\n },\n {\n className: 'built_in',\n begin: 'A_[a-zA-Z0-9]+'\n },\n {\n // consecutive commas, not for highlighting but just for relevance\n begin: ',\\\\s*,'\n }\n ]\n };\n}\n\nmodule.exports = autohotkey;\n","/*\nLanguage: AutoIt\nAuthor: Manh Tuan \nDescription: AutoIt language definition\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction autoit(hljs) {\n const KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' +\n 'Dim Do Else ElseIf EndFunc EndIf EndSelect ' +\n 'EndSwitch EndWith Enum Exit ExitLoop For Func ' +\n 'Global If In Local Next ReDim Return Select Static ' +\n 'Step Switch Then To Until Volatile WEnd While With';\n\n const DIRECTIVES = [\n \"EndRegion\",\n \"forcedef\",\n \"forceref\",\n \"ignorefunc\",\n \"include\",\n \"include-once\",\n \"NoTrayIcon\",\n \"OnAutoItStartRegister\",\n \"pragma\",\n \"Region\",\n \"RequireAdmin\",\n \"Tidy_Off\",\n \"Tidy_On\",\n \"Tidy_Parameters\"\n ];\n\n const LITERAL = 'True False And Null Not Or Default';\n\n const BUILT_IN\n = 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive';\n\n const COMMENT = {\n variants: [\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n hljs.COMMENT('#cs', '#ce'),\n hljs.COMMENT('#comments-start', '#comments-end')\n ]\n };\n\n const VARIABLE = {\n begin: '\\\\$[A-z0-9_]+'\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [{\n begin: /''/,\n relevance: 0\n }]\n }\n ]\n };\n\n const NUMBER = {\n variants: [\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: {\n keyword: DIRECTIVES\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n {\n beginKeywords: 'include',\n keywords: {\n keyword: 'include'\n },\n end: '$',\n contains: [\n STRING,\n {\n className: 'string',\n variants: [\n {\n begin: '<',\n end: '>'\n },\n {\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [{\n begin: /''/,\n relevance: 0\n }]\n }\n ]\n }\n ]\n },\n STRING,\n COMMENT\n ]\n };\n\n const CONSTANT = {\n className: 'symbol',\n // begin: '@',\n // end: '$',\n // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR',\n // relevance: 5\n begin: '@[A-z0-9_]+'\n };\n\n const FUNCTION = {\n beginKeywords: 'Func',\n end: '$',\n illegal: '\\\\$|\\\\[|%',\n contains: [\n hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { className: \"title.function\" }),\n {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n contains: [\n VARIABLE,\n STRING,\n NUMBER\n ]\n }\n ]\n };\n\n return {\n name: 'AutoIt',\n case_insensitive: true,\n illegal: /\\/\\*/,\n keywords: {\n keyword: KEYWORDS,\n built_in: BUILT_IN,\n literal: LITERAL\n },\n contains: [\n COMMENT,\n VARIABLE,\n STRING,\n NUMBER,\n PREPROCESSOR,\n CONSTANT,\n FUNCTION\n ]\n };\n}\n\nmodule.exports = autoit;\n","/*\nLanguage: AVR Assembly\nAuthor: Vladimir Ermakov \nCategory: assembler\nWebsite: https://www.microchip.com/webdoc/avrassembler/avrassembler.wb_instruction_list.html\n*/\n\n/** @type LanguageFn */\nfunction avrasm(hljs) {\n return {\n name: 'AVR Assembly',\n case_insensitive: true,\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n keyword:\n /* mnemonic */\n 'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +\n 'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +\n 'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +\n 'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +\n 'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +\n 'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +\n 'subi swap tst wdr',\n built_in:\n /* general purpose registers */\n 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +\n 'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +\n /* IO Registers (ATMega128) */\n 'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +\n 'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +\n 'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +\n 'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +\n 'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +\n 'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +\n 'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +\n 'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',\n meta:\n '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +\n '.listmac .macro .nolist .org .set'\n },\n contains: [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.COMMENT(\n ';',\n '$',\n {\n relevance: 0\n }\n ),\n hljs.C_NUMBER_MODE, // 0x..., decimal, float\n hljs.BINARY_NUMBER_MODE, // 0b...\n {\n className: 'number',\n begin: '\\\\b(\\\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...\n },\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n illegal: '[^\\\\\\\\][^\\']'\n },\n {\n className: 'symbol',\n begin: '^[A-Za-z0-9_.$]+:'\n },\n {\n className: 'meta',\n begin: '#',\n end: '$'\n },\n { // substitution within a macro\n className: 'subst',\n begin: '@[0-9]+'\n }\n ]\n };\n}\n\nmodule.exports = avrasm;\n","/*\nLanguage: Awk\nAuthor: Matthew Daly \nWebsite: https://www.gnu.org/software/gawk/manual/gawk.html\nDescription: language definition for Awk scripts\n*/\n\n/** @type LanguageFn */\nfunction awk(hljs) {\n const VARIABLE = {\n className: 'variable',\n variants: [\n {\n begin: /\\$[\\w\\d#@][\\w\\d_]*/\n },\n {\n begin: /\\$\\{(.*?)\\}/\n }\n ]\n };\n const KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';\n const STRING = {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [\n {\n begin: /(u|b)?r?'''/,\n end: /'''/,\n relevance: 10\n },\n {\n begin: /(u|b)?r?\"\"\"/,\n end: /\"\"\"/,\n relevance: 10\n },\n {\n begin: /(u|r|ur)'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /(u|r|ur)\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /(b|br)'/,\n end: /'/\n },\n {\n begin: /(b|br)\"/,\n end: /\"/\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n return {\n name: 'Awk',\n keywords: {\n keyword: KEYWORDS\n },\n contains: [\n VARIABLE,\n STRING,\n hljs.REGEXP_MODE,\n hljs.HASH_COMMENT_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = awk;\n","/*\nLanguage: Microsoft X++\nDescription: X++ is a language used in Microsoft Dynamics 365, Dynamics AX, and Axapta.\nAuthor: Dmitri Roudakov \nWebsite: https://dynamics.microsoft.com/en-us/ax-overview/\nCategory: enterprise\n*/\n\n/** @type LanguageFn */\nfunction axapta(hljs) {\n const BUILT_IN_KEYWORDS = [\n 'anytype',\n 'boolean',\n 'byte',\n 'char',\n 'container',\n 'date',\n 'double',\n 'enum',\n 'guid',\n 'int',\n 'int64',\n 'long',\n 'real',\n 'short',\n 'str',\n 'utcdatetime',\n 'var'\n ];\n\n const LITERAL_KEYWORDS = [\n 'default',\n 'false',\n 'null',\n 'true'\n ];\n\n const NORMAL_KEYWORDS = [\n 'abstract',\n 'as',\n 'asc',\n 'avg',\n 'break',\n 'breakpoint',\n 'by',\n 'byref',\n 'case',\n 'catch',\n 'changecompany',\n 'class',\n 'client',\n 'client',\n 'common',\n 'const',\n 'continue',\n 'count',\n 'crosscompany',\n 'delegate',\n 'delete_from',\n 'desc',\n 'display',\n 'div',\n 'do',\n 'edit',\n 'else',\n 'eventhandler',\n 'exists',\n 'extends',\n 'final',\n 'finally',\n 'firstfast',\n 'firstonly',\n 'firstonly1',\n 'firstonly10',\n 'firstonly100',\n 'firstonly1000',\n 'flush',\n 'for',\n 'forceliterals',\n 'forcenestedloop',\n 'forceplaceholders',\n 'forceselectorder',\n 'forupdate',\n 'from',\n 'generateonly',\n 'group',\n 'hint',\n 'if',\n 'implements',\n 'in',\n 'index',\n 'insert_recordset',\n 'interface',\n 'internal',\n 'is',\n 'join',\n 'like',\n 'maxof',\n 'minof',\n 'mod',\n 'namespace',\n 'new',\n 'next',\n 'nofetch',\n 'notexists',\n 'optimisticlock',\n 'order',\n 'outer',\n 'pessimisticlock',\n 'print',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'repeatableread',\n 'retry',\n 'return',\n 'reverse',\n 'select',\n 'server',\n 'setting',\n 'static',\n 'sum',\n 'super',\n 'switch',\n 'this',\n 'throw',\n 'try',\n 'ttsabort',\n 'ttsbegin',\n 'ttscommit',\n 'unchecked',\n 'update_recordset',\n 'using',\n 'validtimestate',\n 'void',\n 'where',\n 'while'\n ];\n\n const KEYWORDS = {\n keyword: NORMAL_KEYWORDS,\n built_in: BUILT_IN_KEYWORDS,\n literal: LITERAL_KEYWORDS\n };\n\n return {\n name: 'X++',\n aliases: ['x++'],\n keywords: KEYWORDS,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$'\n },\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: /\\{/,\n excludeEnd: true,\n illegal: ':',\n contains: [\n {\n beginKeywords: 'extends implements'\n },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n }\n ]\n };\n}\n\nmodule.exports = axapta;\n","/*\nLanguage: Bash\nAuthor: vah \nContributrors: Benjamin Pannell \nWebsite: https://www.gnu.org/software/bash/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction bash(hljs) {\n const regex = hljs.regex;\n const VAR = {};\n const BRACED_VAR = {\n begin: /\\$\\{/,\n end:/\\}/,\n contains: [\n \"self\",\n {\n begin: /:-/,\n contains: [ VAR ]\n } // default values\n ]\n };\n Object.assign(VAR,{\n className: 'variable',\n variants: [\n {begin: regex.concat(/\\$[\\w\\d#@][\\w\\d_]*/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![\\\\w\\\\d])(?![$])`) },\n BRACED_VAR\n ]\n });\n\n const SUBST = {\n className: 'subst',\n begin: /\\$\\(/, end: /\\)/,\n contains: [hljs.BACKSLASH_ESCAPE]\n };\n const HERE_DOC = {\n begin: /<<-?\\s*(?=\\w+)/,\n starts: {\n contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n className: 'string'\n })\n ]\n }\n };\n const QUOTE_STRING = {\n className: 'string',\n begin: /\"/, end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR,\n SUBST\n ]\n };\n SUBST.contains.push(QUOTE_STRING);\n const ESCAPED_QUOTE = {\n className: '',\n begin: /\\\\\"/\n\n };\n const APOS_STRING = {\n className: 'string',\n begin: /'/, end: /'/\n };\n const ARITHMETIC = {\n begin: /\\$\\(\\(/,\n end: /\\)\\)/,\n contains: [\n { begin: /\\d+#[0-9a-f]+/, className: \"number\" },\n hljs.NUMBER_MODE,\n VAR\n ]\n };\n const SH_LIKE_SHELLS = [\n \"fish\",\n \"bash\",\n \"zsh\",\n \"sh\",\n \"csh\",\n \"ksh\",\n \"tcsh\",\n \"dash\",\n \"scsh\",\n ];\n const KNOWN_SHEBANG = hljs.SHEBANG({\n binary: `(${SH_LIKE_SHELLS.join(\"|\")})`,\n relevance: 10\n });\n const FUNCTION = {\n className: 'function',\n begin: /\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,\n returnBegin: true,\n contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\\w[\\w\\d_]*/})],\n relevance: 0\n };\n\n const KEYWORDS = [\n \"if\",\n \"then\",\n \"else\",\n \"elif\",\n \"fi\",\n \"for\",\n \"while\",\n \"in\",\n \"do\",\n \"done\",\n \"case\",\n \"esac\",\n \"function\"\n ];\n\n const LITERALS = [\n \"true\",\n \"false\"\n ];\n\n // to consume paths to prevent keyword matches inside them\n const PATH_MODE = {\n match: /(\\/[a-z._-]+)+/\n };\n\n // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n const SHELL_BUILT_INS = [\n \"break\",\n \"cd\",\n \"continue\",\n \"eval\",\n \"exec\",\n \"exit\",\n \"export\",\n \"getopts\",\n \"hash\",\n \"pwd\",\n \"readonly\",\n \"return\",\n \"shift\",\n \"test\",\n \"times\",\n \"trap\",\n \"umask\",\n \"unset\"\n ];\n\n const BASH_BUILT_INS = [\n \"alias\",\n \"bind\",\n \"builtin\",\n \"caller\",\n \"command\",\n \"declare\",\n \"echo\",\n \"enable\",\n \"help\",\n \"let\",\n \"local\",\n \"logout\",\n \"mapfile\",\n \"printf\",\n \"read\",\n \"readarray\",\n \"source\",\n \"type\",\n \"typeset\",\n \"ulimit\",\n \"unalias\"\n ];\n\n const ZSH_BUILT_INS = [\n \"autoload\",\n \"bg\",\n \"bindkey\",\n \"bye\",\n \"cap\",\n \"chdir\",\n \"clone\",\n \"comparguments\",\n \"compcall\",\n \"compctl\",\n \"compdescribe\",\n \"compfiles\",\n \"compgroups\",\n \"compquote\",\n \"comptags\",\n \"comptry\",\n \"compvalues\",\n \"dirs\",\n \"disable\",\n \"disown\",\n \"echotc\",\n \"echoti\",\n \"emulate\",\n \"fc\",\n \"fg\",\n \"float\",\n \"functions\",\n \"getcap\",\n \"getln\",\n \"history\",\n \"integer\",\n \"jobs\",\n \"kill\",\n \"limit\",\n \"log\",\n \"noglob\",\n \"popd\",\n \"print\",\n \"pushd\",\n \"pushln\",\n \"rehash\",\n \"sched\",\n \"setcap\",\n \"setopt\",\n \"stat\",\n \"suspend\",\n \"ttyctl\",\n \"unfunction\",\n \"unhash\",\n \"unlimit\",\n \"unsetopt\",\n \"vared\",\n \"wait\",\n \"whence\",\n \"where\",\n \"which\",\n \"zcompile\",\n \"zformat\",\n \"zftp\",\n \"zle\",\n \"zmodload\",\n \"zparseopts\",\n \"zprof\",\n \"zpty\",\n \"zregexparse\",\n \"zsocket\",\n \"zstyle\",\n \"ztcp\"\n ];\n\n const GNU_CORE_UTILS = [\n \"chcon\",\n \"chgrp\",\n \"chown\",\n \"chmod\",\n \"cp\",\n \"dd\",\n \"df\",\n \"dir\",\n \"dircolors\",\n \"ln\",\n \"ls\",\n \"mkdir\",\n \"mkfifo\",\n \"mknod\",\n \"mktemp\",\n \"mv\",\n \"realpath\",\n \"rm\",\n \"rmdir\",\n \"shred\",\n \"sync\",\n \"touch\",\n \"truncate\",\n \"vdir\",\n \"b2sum\",\n \"base32\",\n \"base64\",\n \"cat\",\n \"cksum\",\n \"comm\",\n \"csplit\",\n \"cut\",\n \"expand\",\n \"fmt\",\n \"fold\",\n \"head\",\n \"join\",\n \"md5sum\",\n \"nl\",\n \"numfmt\",\n \"od\",\n \"paste\",\n \"ptx\",\n \"pr\",\n \"sha1sum\",\n \"sha224sum\",\n \"sha256sum\",\n \"sha384sum\",\n \"sha512sum\",\n \"shuf\",\n \"sort\",\n \"split\",\n \"sum\",\n \"tac\",\n \"tail\",\n \"tr\",\n \"tsort\",\n \"unexpand\",\n \"uniq\",\n \"wc\",\n \"arch\",\n \"basename\",\n \"chroot\",\n \"date\",\n \"dirname\",\n \"du\",\n \"echo\",\n \"env\",\n \"expr\",\n \"factor\",\n // \"false\", // keyword literal already\n \"groups\",\n \"hostid\",\n \"id\",\n \"link\",\n \"logname\",\n \"nice\",\n \"nohup\",\n \"nproc\",\n \"pathchk\",\n \"pinky\",\n \"printenv\",\n \"printf\",\n \"pwd\",\n \"readlink\",\n \"runcon\",\n \"seq\",\n \"sleep\",\n \"stat\",\n \"stdbuf\",\n \"stty\",\n \"tee\",\n \"test\",\n \"timeout\",\n // \"true\", // keyword literal already\n \"tty\",\n \"uname\",\n \"unlink\",\n \"uptime\",\n \"users\",\n \"who\",\n \"whoami\",\n \"yes\"\n ];\n\n return {\n name: 'Bash',\n aliases: ['sh'],\n keywords: {\n $pattern: /\\b[a-z._-]+\\b/,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in:[\n ...SHELL_BUILT_INS,\n ...BASH_BUILT_INS,\n // Shell modifiers\n \"set\",\n \"shopt\",\n ...ZSH_BUILT_INS,\n ...GNU_CORE_UTILS\n ]\n },\n contains: [\n KNOWN_SHEBANG, // to catch known shells and boost relevancy\n hljs.SHEBANG(), // to catch unknown shells but still highlight the shebang\n FUNCTION,\n ARITHMETIC,\n hljs.HASH_COMMENT_MODE,\n HERE_DOC,\n PATH_MODE,\n QUOTE_STRING,\n ESCAPED_QUOTE,\n APOS_STRING,\n VAR\n ]\n };\n}\n\nmodule.exports = bash;\n","/*\nLanguage: BASIC\nAuthor: Raphaël Assénat \nDescription: Based on the BASIC reference from the Tandy 1000 guide\nWebsite: https://en.wikipedia.org/wiki/Tandy_1000\n*/\n\n/** @type LanguageFn */\nfunction basic(hljs) {\n const KEYWORDS = [\n \"ABS\",\n \"ASC\",\n \"AND\",\n \"ATN\",\n \"AUTO|0\",\n \"BEEP\",\n \"BLOAD|10\",\n \"BSAVE|10\",\n \"CALL\",\n \"CALLS\",\n \"CDBL\",\n \"CHAIN\",\n \"CHDIR\",\n \"CHR$|10\",\n \"CINT\",\n \"CIRCLE\",\n \"CLEAR\",\n \"CLOSE\",\n \"CLS\",\n \"COLOR\",\n \"COM\",\n \"COMMON\",\n \"CONT\",\n \"COS\",\n \"CSNG\",\n \"CSRLIN\",\n \"CVD\",\n \"CVI\",\n \"CVS\",\n \"DATA\",\n \"DATE$\",\n \"DEFDBL\",\n \"DEFINT\",\n \"DEFSNG\",\n \"DEFSTR\",\n \"DEF|0\",\n \"SEG\",\n \"USR\",\n \"DELETE\",\n \"DIM\",\n \"DRAW\",\n \"EDIT\",\n \"END\",\n \"ENVIRON\",\n \"ENVIRON$\",\n \"EOF\",\n \"EQV\",\n \"ERASE\",\n \"ERDEV\",\n \"ERDEV$\",\n \"ERL\",\n \"ERR\",\n \"ERROR\",\n \"EXP\",\n \"FIELD\",\n \"FILES\",\n \"FIX\",\n \"FOR|0\",\n \"FRE\",\n \"GET\",\n \"GOSUB|10\",\n \"GOTO\",\n \"HEX$\",\n \"IF\",\n \"THEN\",\n \"ELSE|0\",\n \"INKEY$\",\n \"INP\",\n \"INPUT\",\n \"INPUT#\",\n \"INPUT$\",\n \"INSTR\",\n \"IMP\",\n \"INT\",\n \"IOCTL\",\n \"IOCTL$\",\n \"KEY\",\n \"ON\",\n \"OFF\",\n \"LIST\",\n \"KILL\",\n \"LEFT$\",\n \"LEN\",\n \"LET\",\n \"LINE\",\n \"LLIST\",\n \"LOAD\",\n \"LOC\",\n \"LOCATE\",\n \"LOF\",\n \"LOG\",\n \"LPRINT\",\n \"USING\",\n \"LSET\",\n \"MERGE\",\n \"MID$\",\n \"MKDIR\",\n \"MKD$\",\n \"MKI$\",\n \"MKS$\",\n \"MOD\",\n \"NAME\",\n \"NEW\",\n \"NEXT\",\n \"NOISE\",\n \"NOT\",\n \"OCT$\",\n \"ON\",\n \"OR\",\n \"PEN\",\n \"PLAY\",\n \"STRIG\",\n \"OPEN\",\n \"OPTION\",\n \"BASE\",\n \"OUT\",\n \"PAINT\",\n \"PALETTE\",\n \"PCOPY\",\n \"PEEK\",\n \"PMAP\",\n \"POINT\",\n \"POKE\",\n \"POS\",\n \"PRINT\",\n \"PRINT]\",\n \"PSET\",\n \"PRESET\",\n \"PUT\",\n \"RANDOMIZE\",\n \"READ\",\n \"REM\",\n \"RENUM\",\n \"RESET|0\",\n \"RESTORE\",\n \"RESUME\",\n \"RETURN|0\",\n \"RIGHT$\",\n \"RMDIR\",\n \"RND\",\n \"RSET\",\n \"RUN\",\n \"SAVE\",\n \"SCREEN\",\n \"SGN\",\n \"SHELL\",\n \"SIN\",\n \"SOUND\",\n \"SPACE$\",\n \"SPC\",\n \"SQR\",\n \"STEP\",\n \"STICK\",\n \"STOP\",\n \"STR$\",\n \"STRING$\",\n \"SWAP\",\n \"SYSTEM\",\n \"TAB\",\n \"TAN\",\n \"TIME$\",\n \"TIMER\",\n \"TROFF\",\n \"TRON\",\n \"TO\",\n \"USR\",\n \"VAL\",\n \"VARPTR\",\n \"VARPTR$\",\n \"VIEW\",\n \"WAIT\",\n \"WHILE\",\n \"WEND\",\n \"WIDTH\",\n \"WINDOW\",\n \"WRITE\",\n \"XOR\"\n ];\n\n return {\n name: 'BASIC',\n case_insensitive: true,\n illegal: '^\\.',\n // Support explicitly typed variables that end with $%! or #.\n keywords: {\n $pattern: '[a-zA-Z][a-zA-Z0-9_$%!#]*',\n keyword: KEYWORDS\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.COMMENT('REM', '$', {\n relevance: 10\n }),\n hljs.COMMENT('\\'', '$', {\n relevance: 0\n }),\n {\n // Match line numbers\n className: 'symbol',\n begin: '^[0-9]+ ',\n relevance: 10\n },\n {\n // Match typed numeric constants (1000, 12.34!, 1.2e5, 1.5#, 1.2D2)\n className: 'number',\n begin: '\\\\b\\\\d+(\\\\.\\\\d+)?([edED]\\\\d+)?[#\\!]?',\n relevance: 0\n },\n {\n // Match hexadecimal numbers (&Hxxxx)\n className: 'number',\n begin: '(&[hH][0-9a-fA-F]{1,4})'\n },\n {\n // Match octal numbers (&Oxxxxxx)\n className: 'number',\n begin: '(&[oO][0-7]{1,6})'\n }\n ]\n };\n}\n\nmodule.exports = basic;\n","/*\nLanguage: Backus–Naur Form\nWebsite: https://en.wikipedia.org/wiki/Backus–Naur_form\nAuthor: Oleg Efimov \n*/\n\n/** @type LanguageFn */\nfunction bnf(hljs) {\n return {\n name: 'Backus–Naur Form',\n contains: [\n // Attribute\n {\n className: 'attribute',\n begin: //\n },\n // Specific\n {\n begin: /::=/,\n end: /$/,\n contains: [\n {\n begin: //\n },\n // Common\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n }\n ]\n };\n}\n\nmodule.exports = bnf;\n","/*\nLanguage: Brainfuck\nAuthor: Evgeny Stepanischev \nWebsite: https://esolangs.org/wiki/Brainfuck\n*/\n\n/** @type LanguageFn */\nfunction brainfuck(hljs) {\n const LITERAL = {\n className: 'literal',\n begin: /[+-]/,\n relevance: 0\n };\n return {\n name: 'Brainfuck',\n aliases: ['bf'],\n contains: [\n hljs.COMMENT(\n '[^\\\\[\\\\]\\\\.,\\\\+\\\\-<> \\r\\n]',\n '[\\\\[\\\\]\\\\.,\\\\+\\\\-<> \\r\\n]',\n {\n returnEnd: true,\n relevance: 0\n }\n ),\n {\n className: 'title',\n begin: '[\\\\[\\\\]]',\n relevance: 0\n },\n {\n className: 'string',\n begin: '[\\\\.,]',\n relevance: 0\n },\n {\n // this mode works as the only relevance counter\n begin: /(?:\\+\\+|--)/,\n contains: [LITERAL]\n },\n LITERAL\n ]\n };\n}\n\nmodule.exports = brainfuck;\n"],"names":["hljs","registerLanguage","HighlightJS","default","module","exports","UNDERSCORE_IDENT_RE","KEYWORD","v7_keywords","LITERAL","NUMBERS","inherit","NUMBER_MODE","STRINGS","className","begin","end","contains","DATE","excludeBegin","excludeEnd","COMMENTS","C_LINE_COMMENT_MODE","name","case_insensitive","keywords","$pattern","keyword","built_in","v7_system_constants","class","v8_system_sets_of_values","type","v8_shared_object","literal","v7_meta_keywords","variants","endsParent","endsWithParent","TITLE_MODE","regex","COMMENT","illegal","scope","match","concat","QUOTE_STRING_MODE","HTTP_VERBS","relevance","either","IDENT_RE","PKG_NAME_RE","AS3_REST_ARG_MODE","aliases","APOS_STRING_MODE","C_BLOCK_COMMENT_MODE","C_NUMBER_MODE","beginKeywords","METHOD_GUARD","ID_REGEX","BAD_CHARS","VAR_DECLS","returnBegin","builtInTypeMode","objectHandleMode","genericMode","BACKSLASH_ESCAPE","IP_ADDRESS","HASH_COMMENT_MODE","_","starts","STRING","PARAMS","COMMENT_MODE_1","UNDERSCORE_TITLE_MODE","KEYWORDS","NUMBER","C_NUMBER_RE","SUBST","TEMPLATE_STRING","REGEXP_MODE","PARAMS_CONTAINS","RE_STARTERS_RE","ARDUINO_KW","_hints","ARDUINO","DECLTYPE_AUTO_RE","NAMESPACE_RE","FUNCTION_TYPE_RE","optional","CPP_PRIMITIVE_TYPES","END_SAME_AS_BEGIN","PREPROCESSOR","FUNCTION_TITLE","CPP_KEYWORDS","_type_hints","FUNCTION_DISPATCH","_hint","lookahead","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","FUNCTION_DECLARATION","classNameAliases","cPlusPlus","kws","supersetOf","meta","STRONG","EMPHASIS","subLanguage","SHORTKEYS","BACKTICK_ESCAPE","NUMBER_RE","VARIABLE","BINARY_NUMBER_MODE","VAR","BRACED_VAR","Object","assign","HERE_DOC","QUOTE_STRING","push","ARITHMETIC","KNOWN_SHEBANG","SHEBANG","binary","join","FUNCTION","returnEnd"],"sourceRoot":""} \ No newline at end of file diff --git a/js/152.js b/js/152.js index 3682a4b0..0876c1f0 100644 --- a/js/152.js +++ b/js/152.js @@ -1,3 +1,3 @@ /*! For license information please see 152.js.LICENSE.txt */ -(self.webpackChunksakurairo_scripts=self.webpackChunksakurairo_scripts||[]).push([[152],{2152:function(t){var e;e=function(){return function(){var t={134:function(t,e,n){n.d(e,{default:function(){return b}});var r=n(279),o=n.n(r),i=n(370),a=n.n(i),c=n(817),u=n.n(c);function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function s(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"createFakeElement",value:function(){var t="rtl"===document.documentElement.getAttribute("dir");this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px";var e=window.pageYOffset||document.documentElement.scrollTop;return this.fakeElem.style.top="".concat(e,"px"),this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.fakeElem}},{key:"selectFake",value:function(){var t=this,e=this.createFakeElement();this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.container.appendChild(e),this.selectedText=u()(e),this.copyText(),this.removeFake()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=u()(this.target),this.copyText()}},{key:"copyText",value:function(){var t;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==l(t)||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}])&&s(e.prototype,n),r&&s(e,r),t}();function h(t){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}],(n=[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===h(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=a()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new f({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return g("action",t)}},{key:"defaultTarget",value:function(t){var e=g("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return g("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}])&&d(e.prototype,n),r&&d(e,r),i}(o())},828:function(t){if("undefined"!=typeof Element&&!Element.prototype.matches){var e=Element.prototype;e.matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var r=n(828);function o(t,e,n,r,o){var a=i.apply(this,arguments);return t.addEventListener(n,a,o),{destroy:function(){t.removeEventListener(n,a,o)}}}function i(t,e,n,o){return function(n){n.delegateTarget=r(n.target,e),n.delegateTarget&&o.call(t,n)}}t.exports=function(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,(function(t){return o(t,e,n,r,i)})))}},879:function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var r=n(879),o=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!r.string(e))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(t))return function(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}(t,e,n);if(r.nodeList(t))return function(t,e,n){return Array.prototype.forEach.call(t,(function(t){t.addEventListener(e,n)})),{destroy:function(){Array.prototype.forEach.call(t,(function(t){t.removeEventListener(e,n)}))}}}(t,e,n);if(r.string(t))return function(t,e,n){return o(document.body,t,e,n)}(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(t){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(t),r.removeAllRanges(),r.addRange(o),e=r.toString()}return e}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function o(){r.off(t,o),e.apply(n,arguments)}return o._=e,this.on(t,o,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;r0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"createFakeElement",value:function(){var t="rtl"===document.documentElement.getAttribute("dir");this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px";var e=window.pageYOffset||document.documentElement.scrollTop;return this.fakeElem.style.top="".concat(e,"px"),this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.fakeElem}},{key:"selectFake",value:function(){var t=this,e=this.createFakeElement();this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.container.appendChild(e),this.selectedText=u()(e),this.copyText(),this.removeFake()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=u()(this.target),this.copyText()}},{key:"copyText",value:function(){var t;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==l(t)||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}],n&&s(e.prototype,n),r&&s(e,r),t}(),h=f;function d(t){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},d(t)}function p(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=a()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new h({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return b("action",t)}},{key:"defaultTarget",value:function(t){var e=b("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return b("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],r=[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}],n&&p(e.prototype,n),r&&p(e,r),i}(o()),E=k},828:function(t){if("undefined"!=typeof Element&&!Element.prototype.matches){var e=Element.prototype;e.matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var r=n(828);function o(t,e,n,r,o){var a=i.apply(this,arguments);return t.addEventListener(n,a,o),{destroy:function(){t.removeEventListener(n,a,o)}}}function i(t,e,n,o){return function(n){n.delegateTarget=r(n.target,e),n.delegateTarget&&o.call(t,n)}}t.exports=function(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,(function(t){return o(t,e,n,r,i)})))}},879:function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var r=n(879),o=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!r.string(e))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(t))return function(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}(t,e,n);if(r.nodeList(t))return function(t,e,n){return Array.prototype.forEach.call(t,(function(t){t.addEventListener(e,n)})),{destroy:function(){Array.prototype.forEach.call(t,(function(t){t.removeEventListener(e,n)}))}}}(t,e,n);if(r.string(t))return function(t,e,n){return o(document.body,t,e,n)}(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(t){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(t),r.removeAllRanges(),r.addRange(o),e=r.toString()}return e}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function o(){r.off(t,o),e.apply(n,arguments)}return o._=e,this.on(t,o,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;r 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n this.selectedText = '';\n }\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: \"initSelection\",\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n */\n\n }, {\n key: \"createFakeElement\",\n value: function createFakeElement() {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n this.fakeElem = document.createElement('textarea'); // Prevent zooming on iOS\n\n this.fakeElem.style.fontSize = '12pt'; // Reset box model\n\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0'; // Move element out of screen horizontally\n\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = \"\".concat(yPosition, \"px\");\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n return this.fakeElem;\n }\n /**\n * Get's the value of fakeElem,\n * and makes a selection on it.\n */\n\n }, {\n key: \"selectFake\",\n value: function selectFake() {\n var _this = this;\n\n var fakeElem = this.createFakeElement();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n this.container.appendChild(fakeElem);\n this.selectedText = select_default()(fakeElem);\n this.copyText();\n this.removeFake();\n }\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: \"removeFake\",\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: \"selectTarget\",\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: \"copyText\",\n value: function copyText() {\n var succeeded;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: \"handleResult\",\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: \"clearSelection\",\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: \"destroy\",\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: \"action\",\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: \"target\",\n set: function set(target) {\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (ClipboardAction);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) clipboard_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n clipboard_classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(134);\n/******/ })()\n.default;\n});"],"names":["factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","d","clipboard","tiny_emitter","tiny_emitter_default","n","listen","listen_default","src_select","select_default","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","clipboard_action","ClipboardAction","options","instance","Constructor","TypeError","_classCallCheck","this","resolveOptions","initSelection","protoProps","staticProps","value","arguments","undefined","action","container","emitter","text","trigger","selectedText","selectFake","selectTarget","isRTL","document","documentElement","getAttribute","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","window","pageYOffset","scrollTop","top","concat","setAttribute","_this","createFakeElement","fakeHandlerCallback","removeFake","fakeHandler","addEventListener","appendChild","copyText","removeEventListener","removeChild","succeeded","execCommand","err","handleResult","emit","clearSelection","bind","focus","activeElement","blur","getSelection","removeAllRanges","set","_action","Error","get","nodeType","hasAttribute","_target","clipboard_typeof","clipboard_defineProperties","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","call","e","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","apply","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","getAttributeValue","suffix","element","attribute","_Emitter","subClass","superClass","create","_inherits","Clipboard","_super","clipboard_classCallCheck","listenClick","actions","support","queryCommandSupported","forEach","defaultAction","defaultTarget","defaultText","body","_this2","listener","onClick","delegateTarget","currentTarget","clipboardAction","selector","querySelector","destroy","module","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","exports","parentNode","__unused_webpack_exports","closest","_delegate","type","callback","useCapture","listenerFn","elements","querySelectorAll","Array","map","node","HTMLElement","nodeList","string","String","fn","is","delegate","listenNode","listenNodeList","listenSelector","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","E","on","name","ctx","push","once","off","_","data","slice","evtArr","len","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","__esModule","a","definition","prop","hasOwnProperty","default"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"152.js","mappings":"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","sources":["webpack://sakurairo-scripts/./node_modules/clipboard/dist/clipboard.js"],"sourcesContent":["/*!\n * clipboard.js v2.0.8\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 134:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/clipboard-action.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar ClipboardAction = /*#__PURE__*/function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n this.selectedText = '';\n }\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: \"initSelection\",\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n */\n\n }, {\n key: \"createFakeElement\",\n value: function createFakeElement() {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n this.fakeElem = document.createElement('textarea'); // Prevent zooming on iOS\n\n this.fakeElem.style.fontSize = '12pt'; // Reset box model\n\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0'; // Move element out of screen horizontally\n\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = \"\".concat(yPosition, \"px\");\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n return this.fakeElem;\n }\n /**\n * Get's the value of fakeElem,\n * and makes a selection on it.\n */\n\n }, {\n key: \"selectFake\",\n value: function selectFake() {\n var _this = this;\n\n var fakeElem = this.createFakeElement();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n this.container.appendChild(fakeElem);\n this.selectedText = select_default()(fakeElem);\n this.copyText();\n this.removeFake();\n }\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: \"removeFake\",\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: \"selectTarget\",\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: \"copyText\",\n value: function copyText() {\n var succeeded;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: \"handleResult\",\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: \"clearSelection\",\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: \"destroy\",\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: \"action\",\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: \"target\",\n set: function set(target) {\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (ClipboardAction);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) clipboard_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n clipboard_classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(134);\n/******/ })()\n.default;\n});"],"names":["factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","d","clipboard","tiny_emitter","tiny_emitter_default","n","listen","listen_default","src_select","select_default","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","ClipboardAction","options","instance","Constructor","TypeError","_classCallCheck","this","resolveOptions","initSelection","protoProps","staticProps","value","arguments","undefined","action","container","emitter","text","trigger","selectedText","selectFake","selectTarget","isRTL","document","documentElement","getAttribute","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","window","pageYOffset","scrollTop","top","concat","setAttribute","_this","createFakeElement","fakeHandlerCallback","removeFake","fakeHandler","addEventListener","appendChild","copyText","removeEventListener","removeChild","succeeded","execCommand","err","handleResult","emit","clearSelection","bind","focus","activeElement","blur","getSelection","removeAllRanges","set","_action","Error","get","nodeType","hasAttribute","_target","clipboard_action","clipboard_typeof","clipboard_defineProperties","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","call","e","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","apply","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","getAttributeValue","suffix","element","attribute","Clipboard","_Emitter","subClass","superClass","create","_inherits","_super","clipboard_classCallCheck","listenClick","defaultAction","defaultTarget","defaultText","body","_this2","listener","onClick","delegateTarget","currentTarget","clipboardAction","selector","querySelector","destroy","actions","support","queryCommandSupported","forEach","module","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","exports","parentNode","__unused_webpack_exports","closest","_delegate","type","callback","useCapture","listenerFn","elements","querySelectorAll","Array","map","node","HTMLElement","nodeList","string","String","fn","is","delegate","listenNode","listenNodeList","listenSelector","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","E","on","name","ctx","push","once","off","_","data","slice","evtArr","len","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","__esModule","a","definition","prop","hasOwnProperty","default"],"sourceRoot":""} \ No newline at end of file diff --git a/js/155.js b/js/155.js index 95758f4f..683da025 100644 --- a/js/155.js +++ b/js/155.js @@ -1,2 +1,2 @@ -(self.webpackChunksakurairo_scripts=self.webpackChunksakurairo_scripts||[]).push([[155],{4155:function(){!function(t,e,n,o){if(t.console=t.console||{info:function(t){}},n)if(n.fn.fancybox)console.info("fancyBox already initialized");else{var a,i,s,r,c={closeExisting:!1,loop:!1,gutter:50,keyboard:!0,preventCaptionOverlap:!0,arrows:!0,infobar:!0,smallBtn:"auto",toolbar:"auto",buttons:["zoom","slideShow","thumbs","close"],idleTime:3,protect:!1,modal:!1,image:{preload:!1},ajax:{settings:{data:{fancybox:!0}}},iframe:{tpl:'',preload:!0,css:{},attr:{scrolling:"auto"}},video:{tpl:'',format:"",autoStart:!0},defaultType:"image",animationEffect:"zoom",animationDuration:366,zoomOpacity:"auto",transitionEffect:"fade",transitionDuration:366,slideClass:"",baseClass:"",baseTpl:'',spinnerTpl:'
',errorTpl:'

{{ERROR}}

',btnTpl:{download:'',zoom:'',close:'',arrowLeft:'',arrowRight:'',smallBtn:''},parentEl:"body",hideScrollbar:!0,autoFocus:!0,backFocus:!0,trapFocus:!0,fullScreen:{autoStart:!1},touch:{vertical:!0,momentum:!0},hash:null,media:{},slideShow:{autoStart:!1,speed:3e3},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"},wheel:"auto",onInit:n.noop,beforeLoad:n.noop,afterLoad:n.noop,beforeShow:n.noop,afterShow:n.noop,beforeClose:n.noop,afterClose:n.noop,onActivate:n.noop,onDeactivate:n.noop,clickContent:function(t,e){return"image"===t.type&&"zoom"},clickSlide:"close",clickOutside:"close",dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1,mobile:{preventCaptionOverlap:!1,idleTime:!1,clickContent:function(t,e){return"image"===t.type&&"toggleControls"},clickSlide:function(t,e){return"image"===t.type?"toggleControls":"close"},dblclickContent:function(t,e){return"image"===t.type&&"zoom"},dblclickSlide:function(t,e){return"image"===t.type&&"zoom"}},lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded.
Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share",ZOOM:"Zoom"},de:{CLOSE:"Schließen",NEXT:"Weiter",PREV:"Zurück",ERROR:"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen",ZOOM:"Vergrößern"}}},l=n(t),d=n(e),u=0,f=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)},p=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)},h=function(){var t,n=e.createElement("fakeelement"),a={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in a)if(n.style[t]!==o)return a[t];return"transitionend"}(),g=function(t){return t&&t.length&&t[0].offsetHeight},b=function(t,e){var o=n.extend(!0,{},t,e);return n.each(e,(function(t,e){n.isArray(e)&&(o[t]=e)})),o},m=function(t,e,o){var a=this;a.opts=b({index:o},n.fancybox.defaults),n.isPlainObject(e)&&(a.opts=b(a.opts,e)),n.fancybox.isMobile&&(a.opts=b(a.opts,a.opts.mobile)),a.id=a.opts.id||++u,a.currIndex=parseInt(a.opts.index,10)||0,a.prevIndex=null,a.prevPos=null,a.currPos=0,a.firstRun=!0,a.group=[],a.slides={},a.addContent(t),a.group.length&&a.init()};n.extend(m.prototype,{init:function(){var o,a,i=this,s=i.group[i.currIndex].opts;s.closeExisting&&n.fancybox.close(!0),n("body").addClass("fancybox-active"),!n.fancybox.getInstance()&&!1!==s.hideScrollbar&&!n.fancybox.isMobile&&e.body.scrollHeight>t.innerHeight&&(n("head").append('"),n("body").addClass("compensate-for-scrollbar")),a="",n.each(s.buttons,(function(t,e){a+=s.btnTpl[e]||""})),o=n(i.translate(i,s.baseTpl.replace("{{buttons}}",a).replace("{{arrows}}",s.btnTpl.arrowLeft+s.btnTpl.arrowRight))).attr("id","fancybox-container-"+i.id).addClass(s.baseClass).data("FancyBox",i).appendTo(s.parentEl),i.$refs={container:o},["bg","inner","infobar","toolbar","stage","caption","navigation"].forEach((function(t){i.$refs[t]=o.find(".fancybox-"+t)})),i.trigger("onInit"),i.activate(),i.jumpTo(i.currIndex)},translate:function(t,e){var n=t.opts.i18n[t.opts.lang]||t.opts.i18n.en;return e.replace(/\{\{(\w+)\}\}/g,(function(t,e){return n[e]===o?t:n[e]}))},addContent:function(t){var e,a=this,i=n.makeArray(t);n.each(i,(function(t,e){var i,s,r,c,l,d={},u={};n.isPlainObject(e)?(d=e,u=e.opts||e):"object"===n.type(e)&&n(e).length?(u=(i=n(e)).data()||{},(u=n.extend(!0,{},u,u.options)).$orig=i,d.src=a.opts.src||u.src||i.attr("href"),d.type||d.src||(d.type="inline",d.src=e)):d={type:"html",src:e+""},d.opts=n.extend(!0,{},a.opts,u),n.isArray(u.buttons)&&(d.opts.buttons=u.buttons),n.fancybox.isMobile&&d.opts.mobile&&(d.opts=b(d.opts,d.opts.mobile)),s=d.type||d.opts.type,c=d.src||"",!s&&c&&((r=c.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))?(s="video",d.opts.video.format||(d.opts.video.format="video/"+("ogv"===r[1]?"ogg":r[1]))):c.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?s="image":c.match(/\.(pdf)((\?|#).*)?$/i)?(s="iframe",d=n.extend(!0,d,{contentType:"pdf",opts:{iframe:{preload:!1}}})):"#"===c.charAt(0)&&(s="inline")),s?d.type=s:a.trigger("objectNeedsType",d),d.contentType||(d.contentType=n.inArray(d.type,["html","inline","ajax"])>-1?"html":d.type),d.index=a.group.length,"auto"==d.opts.smallBtn&&(d.opts.smallBtn=n.inArray(d.type,["html","inline","ajax"])>-1),"auto"===d.opts.toolbar&&(d.opts.toolbar=!d.opts.smallBtn),d.$thumb=d.opts.$thumb||null,d.opts.$trigger&&d.index===a.opts.index&&(d.$thumb=d.opts.$trigger.find("img:first"),d.$thumb.length&&(d.opts.$orig=d.opts.$trigger)),d.$thumb&&d.$thumb.length||!d.opts.$orig||(d.$thumb=d.opts.$orig.find("img:first")),d.$thumb&&!d.$thumb.length&&(d.$thumb=null),d.thumb=d.opts.thumb||(d.$thumb?d.$thumb[0].src:null),"function"===n.type(d.opts.caption)&&(d.opts.caption=d.opts.caption.apply(e,[a,d])),"function"===n.type(a.opts.caption)&&(d.opts.caption=a.opts.caption.apply(e,[a,d])),d.opts.caption instanceof n||(d.opts.caption=d.opts.caption===o?"":d.opts.caption+""),"ajax"===d.type&&(l=c.split(/\s+/,2)).length>1&&(d.src=l.shift(),d.opts.filter=l.shift()),d.opts.modal&&(d.opts=n.extend(!0,d.opts,{trapFocus:!0,infobar:0,toolbar:0,smallBtn:0,keyboard:0,slideShow:0,fullScreen:0,thumbs:0,touch:0,clickContent:!1,clickSlide:!1,clickOutside:!1,dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1})),a.group.push(d)})),Object.keys(a.slides).length&&(a.updateControls(),(e=a.Thumbs)&&e.isActive&&(e.create(),e.focus()))},addEvents:function(){var e=this;e.removeEvents(),e.$refs.container.on("click.fb-close","[data-fancybox-close]",(function(t){t.stopPropagation(),t.preventDefault(),e.close(t)})).on("touchstart.fb-prev click.fb-prev","[data-fancybox-prev]",(function(t){t.stopPropagation(),t.preventDefault(),e.previous()})).on("touchstart.fb-next click.fb-next","[data-fancybox-next]",(function(t){t.stopPropagation(),t.preventDefault(),e.next()})).on("click.fb","[data-fancybox-zoom]",(function(t){e[e.isScaledDown()?"scaleToActual":"scaleToFit"]()})),l.on("orientationchange.fb resize.fb",(function(t){t&&t.originalEvent&&"resize"===t.originalEvent.type?(e.requestId&&p(e.requestId),e.requestId=f((function(){e.update(t)}))):(e.current&&"iframe"===e.current.type&&e.$refs.stage.hide(),setTimeout((function(){e.$refs.stage.show(),e.update(t)}),n.fancybox.isMobile?600:250))})),d.on("keydown.fb",(function(t){var o=(n.fancybox?n.fancybox.getInstance():null).current,a=t.keyCode||t.which;if(9!=a){if(!(!o.opts.keyboard||t.ctrlKey||t.altKey||t.shiftKey||n(t.target).is("input,textarea,video,audio,select")))return 8===a||27===a?(t.preventDefault(),void e.close(t)):37===a||38===a?(t.preventDefault(),void e.previous()):39===a||40===a?(t.preventDefault(),void e.next()):void e.trigger("afterKeydown",t,a)}else o.opts.trapFocus&&e.focus(t)})),e.group[e.currIndex].opts.idleTime&&(e.idleSecondsCounter=0,d.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",(function(t){e.idleSecondsCounter=0,e.isIdle&&e.showControls(),e.isIdle=!1})),e.idleInterval=t.setInterval((function(){e.idleSecondsCounter++,e.idleSecondsCounter>=e.group[e.currIndex].opts.idleTime&&!e.isDragging&&(e.isIdle=!0,e.idleSecondsCounter=0,e.hideControls())}),1e3))},removeEvents:function(){var e=this;l.off("orientationchange.fb resize.fb"),d.off("keydown.fb .fb-idle"),this.$refs.container.off(".fb-close .fb-prev .fb-next"),e.idleInterval&&(t.clearInterval(e.idleInterval),e.idleInterval=null)},previous:function(t){return this.jumpTo(this.currPos-1,t)},next:function(t){return this.jumpTo(this.currPos+1,t)},jumpTo:function(t,e){var a,i,s,r,c,l,d,u,f,p=this,h=p.group.length;if(!(p.isDragging||p.isClosing||p.isAnimating&&p.firstRun)){if(t=parseInt(t,10),!(s=p.current?p.current.opts.loop:p.opts.loop)&&(t<0||t>=h))return!1;if(a=p.firstRun=!Object.keys(p.slides).length,c=p.current,p.prevIndex=p.currIndex,p.prevPos=p.currPos,r=p.createSlide(t),h>1&&((s||r.index0)&&p.createSlide(t-1)),p.current=r,p.currIndex=r.index,p.currPos=r.pos,p.trigger("beforeShow",a),p.updateControls(),r.forcedDuration=o,n.isNumeric(e)?r.forcedDuration=e:e=r.opts[a?"animationDuration":"transitionDuration"],e=parseInt(e,10),i=p.isMoved(r),r.$slide.addClass("fancybox-slide--current"),a)return r.opts.animationEffect&&e&&p.$refs.container.css("transition-duration",e+"ms"),p.$refs.container.addClass("fancybox-is-open").trigger("focus"),p.loadSlide(r),void p.preload("image");l=n.fancybox.getTranslate(c.$slide),d=n.fancybox.getTranslate(p.$refs.stage),n.each(p.slides,(function(t,e){n.fancybox.stop(e.$slide,!0)})),c.pos!==r.pos&&(c.isComplete=!1),c.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"),i?(f=l.left-(c.pos*l.width+c.pos*c.opts.gutter),n.each(p.slides,(function(t,o){o.$slide.removeClass("fancybox-animated").removeClass((function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")}));var a=o.pos*l.width+o.pos*o.opts.gutter;n.fancybox.setTranslate(o.$slide,{top:0,left:a-d.left+f}),o.pos!==r.pos&&o.$slide.addClass("fancybox-slide--"+(o.pos>r.pos?"next":"previous")),g(o.$slide),n.fancybox.animate(o.$slide,{top:0,left:(o.pos-r.pos)*l.width+(o.pos-r.pos)*o.opts.gutter},e,(function(){o.$slide.css({transform:"",opacity:""}).removeClass("fancybox-slide--next fancybox-slide--previous"),o.pos===p.currPos&&p.complete()}))}))):e&&r.opts.transitionEffect&&(u="fancybox-animated fancybox-fx-"+r.opts.transitionEffect,c.$slide.addClass("fancybox-slide--"+(c.pos>r.pos?"next":"previous")),n.fancybox.animate(c.$slide,u,e,(function(){c.$slide.removeClass(u).removeClass("fancybox-slide--next fancybox-slide--previous")}),!1)),r.isLoaded?p.revealContent(r):p.loadSlide(r),p.preload("image")}},createSlide:function(t){var e,o,a=this;return o=(o=t%a.group.length)<0?a.group.length+o:o,!a.slides[t]&&a.group[o]&&(e=n('
').appendTo(a.$refs.stage),a.slides[t]=n.extend(!0,{},a.group[o],{pos:t,$slide:e,isLoaded:!1}),a.updateSlide(a.slides[t])),a.slides[t]},scaleToActual:function(t,e,a){var i,s,r,c,l,d=this,u=d.current,f=u.$content,p=n.fancybox.getTranslate(u.$slide).width,h=n.fancybox.getTranslate(u.$slide).height,g=u.width,b=u.height;d.isAnimating||d.isMoved()||!f||"image"!=u.type||!u.isLoaded||u.hasError||(d.isAnimating=!0,n.fancybox.stop(f),t=t===o?.5*p:t,e=e===o?.5*h:e,(i=n.fancybox.getTranslate(f)).top-=n.fancybox.getTranslate(u.$slide).top,i.left-=n.fancybox.getTranslate(u.$slide).left,c=g/i.width,l=b/i.height,s=.5*p-.5*g,r=.5*h-.5*b,g>p&&((s=i.left*c-(t*c-t))>0&&(s=0),sh&&((r=i.top*l-(e*l-e))>0&&(r=0),re-.5&&(c=e),(l*=a)>o-.5&&(l=o),"image"===t.type?(d.top=Math.floor(.5*(o-l))+parseFloat(r.css("paddingTop")),d.left=Math.floor(.5*(e-c))+parseFloat(r.css("paddingLeft"))):"video"===t.contentType&&(l>c/(i=t.opts.width&&t.opts.height?c/l:t.opts.ratio||16/9)?l=c/i:c>l*i&&(c=l*i)),d.width=c,d.height=l,d)},update:function(t){var e=this;n.each(e.slides,(function(n,o){e.updateSlide(o,t)}))},updateSlide:function(t,e){var o=this,a=t&&t.$content,i=t.width||t.opts.width,s=t.height||t.opts.height,r=t.$slide;o.adjustCaption(t),a&&(i||s||"video"===t.contentType)&&!t.hasError&&(n.fancybox.stop(a),n.fancybox.setTranslate(a,o.getFitPos(t)),t.pos===o.currPos&&(o.isAnimating=!1,o.updateCursor())),o.adjustLayout(t),r.length&&(r.trigger("refresh"),t.pos===o.currPos&&o.$refs.toolbar.add(o.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar",r.get(0).scrollHeight>r.get(0).clientHeight)),o.trigger("onUpdate",t,e)},centerSlide:function(t){var e=this,a=e.current,i=a.$slide;!e.isClosing&&a&&(i.siblings().css({transform:"",opacity:""}),i.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"),n.fancybox.animate(i,{top:0,left:0,opacity:1},t===o?0:t,(function(){i.css({transform:"",opacity:""}),a.isComplete||e.complete()}),!1))},isMoved:function(t){var e,o,a=t||this.current;return!!a&&(o=n.fancybox.getTranslate(this.$refs.stage),e=n.fancybox.getTranslate(a.$slide),!a.$slide.hasClass("fancybox-animated")&&(Math.abs(e.top-o.top)>.5||Math.abs(e.left-o.left)>.5))},updateCursor:function(t,e){var o,a,i=this,s=i.current,r=i.$refs.container;s&&!i.isClosing&&i.Guestures&&(r.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"),a=!!(o=i.canPan(t,e))||i.isZoomable(),r.toggleClass("fancybox-is-zoomable",a),n("[data-fancybox-zoom]").prop("disabled",!a),o?r.addClass("fancybox-can-pan"):a&&("zoom"===s.opts.clickContent||n.isFunction(s.opts.clickContent)&&"zoom"==s.opts.clickContent(s))?r.addClass("fancybox-can-zoomIn"):s.opts.touch&&(s.opts.touch.vertical||i.group.length>1)&&"video"!==s.contentType&&r.addClass("fancybox-can-swipe"))},isZoomable:function(){var t,e=this,n=e.current;if(n&&!e.isClosing&&"image"===n.type&&!n.hasError){if(!n.isLoaded)return!0;if((t=e.getFitPos(n))&&(n.width>t.width||n.height>t.height))return!0}return!1},isScaledDown:function(t,e){var a=!1,i=this.current,s=i.$content;return t!==o&&e!==o?a=t1.5||Math.abs(i.height-s.height)>1.5)),s},loadSlide:function(t){var e,o,a,i=this;if(!t.isLoading&&!t.isLoaded){if(t.isLoading=!0,!1===i.trigger("beforeLoad",t))return t.isLoading=!1,!1;switch(e=t.type,(o=t.$slide).off("refresh").trigger("onReset").addClass(t.opts.slideClass),e){case"image":i.setImage(t);break;case"iframe":i.setIframe(t);break;case"html":i.setContent(t,t.src||t.content);break;case"video":i.setContent(t,t.opts.video.tpl.replace(/\{\{src\}\}/gi,t.src).replace("{{format}}",t.opts.videoFormat||t.opts.video.format||"").replace("{{poster}}",t.thumb||""));break;case"inline":n(t.src).length?i.setContent(t,n(t.src)):i.setError(t);break;case"ajax":i.showLoading(t),a=n.ajax(n.extend({},t.opts.ajax.settings,{url:t.src,success:function(e,n){"success"===n&&i.setContent(t,e)},error:function(e,n){e&&"abort"!==n&&i.setError(t)}})),o.one("onReset",(function(){a.abort()}));break;default:i.setError(t)}return!0}},setImage:function(t){var o,a=this;setTimeout((function(){var e=t.$image;a.isClosing||!t.isLoading||e&&e.length&&e[0].complete||t.hasError||a.showLoading(t)}),50),a.checkSrcset(t),t.$content=n('
').addClass("fancybox-is-hidden").appendTo(t.$slide.addClass("fancybox-slide--image")),!1!==t.opts.preload&&t.opts.width&&t.opts.height&&t.thumb&&(t.width=t.opts.width,t.height=t.opts.height,(o=e.createElement("img")).onerror=function(){n(this).remove(),t.$ghost=null},o.onload=function(){a.afterLoad(t)},t.$ghost=n(o).addClass("fancybox-image").appendTo(t.$content).attr("src",t.thumb)),a.setBigImage(t)},checkSrcset:function(e){var n,o,a,i,s=e.opts.srcset||e.opts.image.srcset;if(s){a=t.devicePixelRatio||1,i=t.innerWidth*a,(o=s.split(",").map((function(t){var e={};return t.trim().split(/\s+/).forEach((function(t,n){var o=parseInt(t.substring(0,t.length-1),10);if(0===n)return e.url=t;o&&(e.value=o,e.postfix=t[t.length-1])})),e}))).sort((function(t,e){return t.value-e.value}));for(var r=0;r=i||"x"===c.postfix&&c.value>=a){n=c;break}}!n&&o.length&&(n=o[o.length-1]),n&&(e.src=n.url,e.width&&e.height&&"w"==n.postfix&&(e.height=e.width/e.height*n.value,e.width=n.value),e.opts.srcset=s)}},setBigImage:function(t){var o=this,a=e.createElement("img"),i=n(a);t.$image=i.one("error",(function(){o.setError(t)})).one("load",(function(){var e;t.$ghost||(o.resolveImageSlideSize(t,this.naturalWidth,this.naturalHeight),o.afterLoad(t)),o.isClosing||(t.opts.srcset&&((e=t.opts.sizes)&&"auto"!==e||(e=(t.width/t.height>1&&l.width()/l.height()>1?"100":Math.round(t.width/t.height*100))+"vw"),i.attr("sizes",e).attr("srcset",t.opts.srcset)),t.$ghost&&setTimeout((function(){t.$ghost&&!o.isClosing&&t.$ghost.hide()}),Math.min(300,Math.max(1e3,t.height/1600))),o.hideLoading(t))})).addClass("fancybox-image").attr("src",t.src).appendTo(t.$content),(a.complete||"complete"==a.readyState)&&i.naturalWidth&&i.naturalHeight?i.trigger("load"):a.error&&i.trigger("error")},resolveImageSlideSize:function(t,e,n){var o=parseInt(t.opts.width,10),a=parseInt(t.opts.height,10);t.width=e,t.height=n,o>0&&(t.width=o,t.height=Math.floor(o*n/e)),a>0&&(t.width=Math.floor(a*e/n),t.height=a)},setIframe:function(t){var e,a=this,i=t.opts.iframe,s=t.$slide;t.$content=n('
').css(i.css).appendTo(s),s.addClass("fancybox-slide--"+t.contentType),t.$iframe=e=n(i.tpl.replace(/\{rnd\}/g,(new Date).getTime())).attr(i.attr).appendTo(t.$content),i.preload?(a.showLoading(t),e.on("load.fb error.fb",(function(e){this.isReady=1,t.$slide.trigger("refresh"),a.afterLoad(t)})),s.on("refresh.fb",(function(){var n,a=t.$content,r=i.css.width,c=i.css.height;if(1===e[0].isReady){try{n=e.contents().find("body")}catch(t){}n&&n.length&&n.children().length&&(s.css("overflow","visible"),a.css({width:"100%","max-width":"100%",height:"9999px"}),r===o&&(r=Math.ceil(Math.max(n[0].clientWidth,n.outerWidth(!0)))),a.css("width",r||"").css("max-width",""),c===o&&(c=Math.ceil(Math.max(n[0].clientHeight,n.outerHeight(!0)))),a.css("height",c||""),s.css("overflow","auto")),a.removeClass("fancybox-is-hidden")}}))):a.afterLoad(t),e.attr("src",t.src),s.one("onReset",(function(){try{n(this).find("iframe").hide().unbind().attr("src","//about:blank")}catch(t){}n(this).off("refresh.fb").empty(),t.isLoaded=!1,t.isRevealed=!1}))},setContent:function(t,e){var o,a=this;a.isClosing||(a.hideLoading(t),t.$content&&n.fancybox.stop(t.$content),t.$slide.empty(),(o=e)&&o.hasOwnProperty&&o instanceof n&&e.parent().length?((e.hasClass("fancybox-content")||e.parent().hasClass("fancybox-content"))&&e.parents(".fancybox-slide").trigger("onReset"),t.$placeholder=n("
").hide().insertAfter(e),e.css("display","inline-block")):t.hasError||("string"===n.type(e)&&(e=n("
").append(n.trim(e)).contents()),t.opts.filter&&(e=n("
").html(e).find(t.opts.filter))),t.$slide.one("onReset",(function(){n(this).find("video,audio").trigger("pause"),t.$placeholder&&(t.$placeholder.after(e.removeClass("fancybox-content").hide()).remove(),t.$placeholder=null),t.$smallBtn&&(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(n(this).empty(),t.isLoaded=!1,t.isRevealed=!1)})),n(e).appendTo(t.$slide),n(e).is("video,audio")&&(n(e).addClass("fancybox-video"),n(e).wrap("
"),t.contentType="video",t.opts.width=t.opts.width||n(e).attr("width"),t.opts.height=t.opts.height||n(e).attr("height")),t.$content=t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(),t.$content.siblings().hide(),t.$content.length||(t.$content=t.$slide.wrapInner("
").children().first()),t.$content.addClass("fancybox-content"),t.$slide.addClass("fancybox-slide--"+t.contentType),a.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.trigger("onReset").removeClass("fancybox-slide--"+t.contentType).addClass("fancybox-slide--error"),t.contentType="html",this.setContent(t,this.translate(t,t.opts.errorTpl)),t.pos===this.currPos&&(this.isAnimating=!1)},showLoading:function(t){var e=this;(t=t||e.current)&&!t.$spinner&&(t.$spinner=n(e.translate(e,e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast"))},hideLoading:function(t){(t=t||this.current)&&t.$spinner&&(t.$spinner.stop().remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger("afterLoad",t),e.hideLoading(t),!t.opts.smallBtn||t.$smallBtn&&t.$smallBtn.length||(t.$smallBtn=n(e.translate(t,t.opts.btnTpl.smallBtn)).appendTo(t.$content)),t.opts.protect&&t.$content&&!t.hasError&&(t.$content.on("contextmenu.fb",(function(t){return 2==t.button&&t.preventDefault(),!0})),"image"===t.type&&n('
').appendTo(t.$content)),e.adjustCaption(t),e.adjustLayout(t),t.pos===e.currPos&&e.updateCursor(),e.revealContent(t))},adjustCaption:function(t){var e,n=this,o=t||n.current,a=o.opts.caption,i=o.opts.preventCaptionOverlap,s=n.$refs.caption,r=!1;s.toggleClass("fancybox-caption--separate",i),i&&a&&a.length&&(o.pos!==n.currPos?((e=s.clone().appendTo(s.parent())).children().eq(0).empty().html(a),r=e.outerHeight(!0),e.empty().remove()):n.$caption&&(r=n.$caption.outerHeight(!0)),o.$slide.css("padding-bottom",r||""))},adjustLayout:function(t){var e,n,o,a,i=t||this.current;i.isLoaded&&!0!==i.opts.disableLayoutFix&&(i.$content.css("margin-bottom",""),i.$content.outerHeight()>i.$slide.height()+.5&&(o=i.$slide[0].style["padding-bottom"],a=i.$slide.css("padding-bottom"),parseFloat(a)>0&&(e=i.$slide[0].scrollHeight,i.$slide.css("padding-bottom",0),Math.abs(e-i.$slide[0].scrollHeight)<1&&(n=a),i.$slide.css("padding-bottom",o))),i.$content.css("margin-bottom",n))},revealContent:function(t){var e,a,i,s,r=this,c=t.$slide,l=!1,d=!1,u=r.isMoved(t),f=t.isRevealed;return t.isRevealed=!0,e=t.opts[r.firstRun?"animationEffect":"transitionEffect"],i=t.opts[r.firstRun?"animationDuration":"transitionDuration"],i=parseInt(t.forcedDuration===o?i:t.forcedDuration,10),!u&&t.pos===r.currPos&&i||(e=!1),"zoom"===e&&(t.pos===r.currPos&&i&&"image"===t.type&&!t.hasError&&(d=r.getThumbPos(t))?l=r.getFitPos(t):e="fade"),"zoom"===e?(r.isAnimating=!0,l.scaleX=l.width/d.width,l.scaleY=l.height/d.height,"auto"==(s=t.opts.zoomOpacity)&&(s=Math.abs(t.width/t.height-d.width/d.height)>.1),s&&(d.opacity=.1,l.opacity=1),n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"),d),g(t.$content),void n.fancybox.animate(t.$content,l,i,(function(){r.isAnimating=!1,r.complete()}))):(r.updateSlide(t),e?(n.fancybox.stop(c),a="fancybox-slide--"+(t.pos>=r.prevPos?"next":"previous")+" fancybox-animated fancybox-fx-"+e,c.addClass(a).removeClass("fancybox-slide--current"),t.$content.removeClass("fancybox-is-hidden"),g(c),"image"!==t.type&&t.$content.hide().show(0),void n.fancybox.animate(c,"fancybox-slide--current",i,(function(){c.removeClass(a).css({transform:"",opacity:""}),t.pos===r.currPos&&r.complete()}),!0)):(t.$content.removeClass("fancybox-is-hidden"),f||!u||"image"!==t.type||t.hasError||t.$content.hide().fadeIn("fast"),void(t.pos===r.currPos&&r.complete())))},getThumbPos:function(t){var o,a,i,s,r,c,l=t.$thumb;return!(!l||!function(t){var o,a;return!(!t||t.ownerDocument!==e)&&(n(".fancybox-container").css("pointer-events","none"),o={x:t.getBoundingClientRect().left+t.offsetWidth/2,y:t.getBoundingClientRect().top+t.offsetHeight/2},a=e.elementFromPoint(o.x,o.y)===t,n(".fancybox-container").css("pointer-events",""),a)}(l[0]))&&(a=n.fancybox.getTranslate(l),i=parseFloat(l.css("border-top-width")||0),s=parseFloat(l.css("border-right-width")||0),r=parseFloat(l.css("border-bottom-width")||0),c=parseFloat(l.css("border-left-width")||0),o={top:a.top+i,left:a.left+c,width:a.width-s-c,height:a.height-i-r,scaleX:1,scaleY:1},a.width>0&&a.height>0&&o)},complete:function(){var t,e=this,o=e.current,a={};!e.isMoved()&&o.isLoaded&&(o.isComplete||(o.isComplete=!0,o.$slide.siblings().trigger("onReset"),e.preload("inline"),g(o.$slide),o.$slide.addClass("fancybox-slide--complete"),n.each(e.slides,(function(t,o){o.pos>=e.currPos-1&&o.pos<=e.currPos+1?a[o.pos]=o:o&&(n.fancybox.stop(o.$slide),o.$slide.off().remove())})),e.slides=a),e.isAnimating=!1,e.updateCursor(),e.trigger("afterShow"),o.opts.video.autoStart&&o.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended",(function(){Document.exitFullscreen?Document.exitFullscreen():this.webkitExitFullscreen&&this.webkitExitFullscreen(),e.next()})),o.opts.autoFocus&&"html"===o.contentType&&((t=o.$content.find("input[autofocus]:enabled:visible:first")).length?t.trigger("focus"):e.focus(null,!0)),o.$slide.scrollTop(0).scrollLeft(0))},preload:function(t){var e,n,o=this;o.group.length<2||(n=o.slides[o.currPos+1],(e=o.slides[o.currPos-1])&&e.type===t&&o.loadSlide(e),n&&n.type===t&&o.loadSlide(n))},focus:function(t,o){var a,i,s=this,r=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not([tabindex^="-"])'].join(",");s.isClosing||((a=(a=!t&&s.current&&s.current.isComplete?s.current.$slide.find("*:visible"+(o?":not(.fancybox-close-small)":"")):s.$refs.container.find("*:visible")).filter(r).filter((function(){return"hidden"!==n(this).css("visibility")&&!n(this).hasClass("disabled")}))).length?(i=a.index(e.activeElement),t&&t.shiftKey?(i<0||0==i)&&(t.preventDefault(),a.eq(a.length-1).trigger("focus")):(i<0||i==a.length-1)&&(t&&t.preventDefault(),a.eq(0).trigger("focus"))):s.$refs.container.trigger("focus"))},activate:function(){var t=this;n(".fancybox-container").each((function(){var e=n(this).data("FancyBox");e&&e.id!==t.id&&!e.isClosing&&(e.trigger("onDeactivate"),e.removeEvents(),e.isVisible=!1)})),t.isVisible=!0,(t.current||t.isIdle)&&(t.update(),t.updateControls()),t.trigger("onActivate"),t.addEvents()},close:function(t,e){var o,a,i,s,r,c,l,d=this,u=d.current,p=function(){d.cleanUp(t)};return!d.isClosing&&(d.isClosing=!0,!1===d.trigger("beforeClose",t)?(d.isClosing=!1,f((function(){d.update()})),!1):(d.removeEvents(),i=u.$content,o=u.opts.animationEffect,a=n.isNumeric(e)?e:o?u.opts.animationDuration:0,u.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),!0!==t?n.fancybox.stop(u.$slide):o=!1,u.$slide.siblings().trigger("onReset").remove(),a&&d.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration",a+"ms"),d.hideLoading(u),d.hideControls(!0),d.updateCursor(),"zoom"!==o||i&&a&&"image"===u.type&&!d.isMoved()&&!u.hasError&&(l=d.getThumbPos(u))||(o="fade"),"zoom"===o?(n.fancybox.stop(i),c={top:(s=n.fancybox.getTranslate(i)).top,left:s.left,scaleX:s.width/l.width,scaleY:s.height/l.height,width:l.width,height:l.height},"auto"==(r=u.opts.zoomOpacity)&&(r=Math.abs(u.width/u.height-l.width/l.height)>.1),r&&(l.opacity=0),n.fancybox.setTranslate(i,c),g(i),n.fancybox.animate(i,l,a,p),!0):(o&&a?n.fancybox.animate(u.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"),"fancybox-animated fancybox-fx-"+o,a,p):!0===t?setTimeout(p,a):p(),!0)))},cleanUp:function(e){var o,a,i,s=this,r=s.current.opts.$orig;s.current.$slide.trigger("onReset"),s.$refs.container.empty().remove(),s.trigger("afterClose",e),s.current.opts.backFocus&&(r&&r.length&&r.is(":visible")||(r=s.$trigger),r&&r.length&&(a=t.scrollX,i=t.scrollY,r.trigger("focus"),n("html, body").scrollTop(i).scrollLeft(a))),s.current=null,(o=n.fancybox.getInstance())?o.activate():(n("body").removeClass("fancybox-active compensate-for-scrollbar"),n("#fancybox-style-noscroll").remove())},trigger:function(t,e){var o,a=Array.prototype.slice.call(arguments,1),i=this,s=e&&e.opts?e:i.current;if(s?a.unshift(s):s=i,a.unshift(i),n.isFunction(s.opts[t])&&(o=s.opts[t].apply(s,a)),!1===o)return o;"afterClose"!==t&&i.$refs?i.$refs.container.trigger(t+".fb",a):d.trigger(t+".fb",a)},updateControls:function(){var t=this,o=t.current,a=o.index,i=t.$refs.container,s=t.$refs.caption,r=o.opts.caption;o.$slide.trigger("refresh"),r&&r.length?(t.$caption=s,s.children().eq(0).html(r)):t.$caption=null,t.hasHiddenControls||t.isIdle||t.showControls(),i.find("[data-fancybox-count]").html(t.group.length),i.find("[data-fancybox-index]").html(a+1),i.find("[data-fancybox-prev]").prop("disabled",!o.opts.loop&&a<=0),i.find("[data-fancybox-next]").prop("disabled",!o.opts.loop&&a>=t.group.length-1),"image"===o.type?i.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href",o.opts.image.src||o.src).show():o.opts.toolbar&&i.find("[data-fancybox-download],[data-fancybox-zoom]").hide(),n(e.activeElement).is(":hidden,[disabled]")&&t.$refs.container.trigger("focus")},hideControls:function(t){var e=["infobar","toolbar","nav"];!t&&this.current.opts.preventCaptionOverlap||e.push("caption"),this.$refs.container.removeClass(e.map((function(t){return"fancybox-show-"+t})).join(" ")),this.hasHiddenControls=!0},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.hasHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass("fancybox-show-toolbar",!(!e.toolbar||!e.buttons)).toggleClass("fancybox-show-infobar",!!(e.infobar&&t.group.length>1)).toggleClass("fancybox-show-caption",!!t.$caption).toggleClass("fancybox-show-nav",!!(e.arrows&&t.group.length>1)).toggleClass("fancybox-is-modal",!!e.modal)},toggleControls:function(){this.hasHiddenControls?this.showControls():this.hideControls()}}),n.fancybox={version:"3.5.7",defaults:c,getInstance:function(t){var e=n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),o=Array.prototype.slice.call(arguments,1);return e instanceof m&&("string"===n.type(t)?e[t].apply(e,o):"function"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new m(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),!0===t&&this.close(t))},destroy:function(){this.close(!0),d.add("body").off("click.fb-start","**")},isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),use3d:(a=e.createElement("div"),t.getComputedStyle&&t.getComputedStyle(a)&&t.getComputedStyle(a).getPropertyValue("transform")&&!(e.documentMode&&e.documentMode<11)),getTranslate:function(t){var e;return!(!t||!t.length)&&{top:(e=t[0].getBoundingClientRect()).top||0,left:e.left||0,width:e.width,height:e.height,opacity:parseFloat(t.css("opacity"))}},setTranslate:function(t,e){var n="",a={};if(t&&e)return e.left===o&&e.top===o||(n=(e.left===o?t.position().left:e.left)+"px, "+(e.top===o?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),e.scaleX!==o&&e.scaleY!==o?n+=" scale("+e.scaleX+", "+e.scaleY+")":e.scaleX!==o&&(n+=" scaleX("+e.scaleX+")"),n.length&&(a.transform=n),e.opacity!==o&&(a.opacity=e.opacity),e.width!==o&&(a.width=e.width),e.height!==o&&(a.height=e.height),t.css(a)},animate:function(t,e,a,i,s){var r,c=this;n.isFunction(a)&&(i=a,a=null),c.stop(t),r=c.getTranslate(t),t.on(h,(function(l){(!l||!l.originalEvent||t.is(l.originalEvent.target)&&"z-index"!=l.originalEvent.propertyName)&&(c.stop(t),n.isNumeric(a)&&t.css("transition-duration",""),n.isPlainObject(e)?e.scaleX!==o&&e.scaleY!==o&&c.setTranslate(t,{top:e.top,left:e.left,width:r.width*e.scaleX,height:r.height*e.scaleY,scaleX:1,scaleY:1}):!0!==s&&t.removeClass(e),n.isFunction(i)&&i(l))})),n.isNumeric(a)&&t.css("transition-duration",a+"ms"),n.isPlainObject(e)?(e.scaleX!==o&&e.scaleY!==o&&(delete e.width,delete e.height,t.parent().hasClass("fancybox-slide--image")&&t.parent().addClass("fancybox-is-scaling")),n.fancybox.setTranslate(t,e)):t.addClass(e),t.data("timer",setTimeout((function(){t.trigger(h)}),a+33))},stop:function(t,e){t&&t.length&&(clearTimeout(t.data("timer")),e&&t.trigger(h),t.off(h).css("transition-duration",""),t.parent().removeClass("fancybox-is-scaling"))}},n.fn.fancybox=function(t){var e;return(e=(t=t||{}).selector||!1)?n("body").off("click.fb-start",e).on("click.fb-start",e,{options:t},y):this.off("click.fb-start").on("click.fb-start",{items:this,options:t},y),this},d.on("click.fb-start","[data-fancybox]",y),d.on("click.fb-start","[data-fancybox-trigger]",(function(t){n('[data-fancybox="'+n(this).attr("data-fancybox-trigger")+'"]').eq(n(this).attr("data-fancybox-index")||0).trigger("click.fb-start",{$trigger:n(this)})})),i=".fancybox-button",s="fancybox-focus",r=null,d.on("mousedown mouseup focus blur",i,(function(t){switch(t.type){case"mousedown":r=n(this);break;case"mouseup":r=null;break;case"focusin":n(i).removeClass(s),n(this).is(r)||n(this).is("[disabled]")||n(this).addClass(s);break;case"focusout":n(i).removeClass(s)}}))}function y(t,e){var o,a,i,s=[],r=0;t&&t.isDefaultPrevented()||(t.preventDefault(),e=e||{},t&&t.data&&(e=b(t.data.options,e)),o=e.$target||n(t.currentTarget).trigger("blur"),(i=n.fancybox.getInstance())&&i.$trigger&&i.$trigger.is(o)||(s=e.selector?n(e.selector):(a=o.attr("data-fancybox")||"")?(s=t.data?t.data.items:[]).length?s.filter('[data-fancybox="'+a+'"]'):n('[data-fancybox="'+a+'"]'):[o],(r=n(s).index(o))<0&&(r=0),(i=n.fancybox.open(s,e,r)).$trigger=o))}}(window,document,jQuery),function(t){var e={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"https://www.youtube-nocookie.com/embed/$4",thumb:"https://img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},gmap_place:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12]+"").replace(/\?/,"&")+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}},gmap_search:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/maps?q="+t[5].replace("query=","q=").replace("api=1","")+"&output=embed"}}},n=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,(function(t,n){e=e.replace("$"+t,n||"")})),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e};t(document).on("objectNeedsType.fb",(function(o,a,i){var s,r,c,l,d,u,f,p=i.src||"",h=!1;s=t.extend(!0,{},e,i.opts.media),t.each(s,(function(e,o){if(c=p.match(o.matcher)){if(h=o.type,f=e,u={},o.paramPlace&&c[o.paramPlace]){"?"==(d=c[o.paramPlace])[0]&&(d=d.substring(1)),d=d.split("&");for(var a=0;a1&&("youtube"===n.contentSource||"vimeo"===n.contentSource)&&o.load(n.contentSource)}})}(jQuery),function(t,e,n){var o=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)},a=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)},i=function(e){var n=[];for(var o in e=(e=e.originalEvent||e||t.e).touches&&e.touches.length?e.touches:e.changedTouches&&e.changedTouches.length?e.changedTouches:[e])e[o].pageX?n.push({x:e[o].pageX,y:e[o].pageY}):e[o].clientX&&n.push({x:e[o].clientX,y:e[o].clientY});return n},s=function(t,e,n){return e&&t?"x"===n?t.x-e.x:"y"===n?t.y-e.y:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)):0},r=function(t){if(t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe')||n.isFunction(t.get(0).onclick)||t.data("selectable"))return!0;for(var e=0,o=t[0].attributes,a=o.length;en.clientHeight,s=("scroll"===a||"auto"===a)&&n.scrollWidth>n.clientWidth,!(r=i||s)&&(e=e.parent()).length&&!e.hasClass("fancybox-stage")&&!e.is("body"););return r},l=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on("touchstart.fb.touch mousedown.fb.touch",n.proxy(e,"ontouchstart"))};l.prototype.destroy=function(){var t=this;t.$container.off(".fb.touch"),n(e).off(".fb.touch"),t.requestId&&(a(t.requestId),t.requestId=null),t.tapped&&(clearTimeout(t.tapped),t.tapped=null)},l.prototype.ontouchstart=function(o){var a=this,l=n(o.target),d=a.instance,u=d.current,f=u.$slide,p=u.$content,h="touchstart"==o.type;if(h&&a.$container.off("mousedown.fb.touch"),(!o.originalEvent||2!=o.originalEvent.button)&&f.length&&l.length&&!r(l)&&!r(l.parent())&&(l.is("img")||!(o.originalEvent.clientX>l[0].clientWidth+l.offset().left))){if(!u||d.isAnimating||u.$slide.hasClass("fancybox-animated"))return o.stopPropagation(),void o.preventDefault();a.realPoints=a.startPoints=i(o),a.startPoints.length&&(u.touch&&o.stopPropagation(),a.startEvent=o,a.canTap=!0,a.$target=l,a.$content=p,a.opts=u.opts.touch,a.isPanning=!1,a.isSwiping=!1,a.isZooming=!1,a.isScrolling=!1,a.canPan=d.canPan(),a.startTime=(new Date).getTime(),a.distanceX=a.distanceY=a.distance=0,a.canvasWidth=Math.round(f[0].clientWidth),a.canvasHeight=Math.round(f[0].clientHeight),a.contentLastPos=null,a.contentStartPos=n.fancybox.getTranslate(a.$content)||{top:0,left:0},a.sliderStartPos=n.fancybox.getTranslate(f),a.stagePos=n.fancybox.getTranslate(d.$refs.stage),a.sliderStartPos.top-=a.stagePos.top,a.sliderStartPos.left-=a.stagePos.left,a.contentStartPos.top-=a.stagePos.top,a.contentStartPos.left-=a.stagePos.left,n(e).off(".fb.touch").on(h?"touchend.fb.touch touchcancel.fb.touch":"mouseup.fb.touch mouseleave.fb.touch",n.proxy(a,"ontouchend")).on(h?"touchmove.fb.touch":"mousemove.fb.touch",n.proxy(a,"ontouchmove")),n.fancybox.isMobile&&e.addEventListener("scroll",a.onscroll,!0),((a.opts||a.canPan)&&(l.is(a.$stage)||a.$stage.find(l).length)||(l.is(".fancybox-image")&&o.preventDefault(),n.fancybox.isMobile&&l.parents(".fancybox-caption").length))&&(a.isScrollable=c(l)||c(l.parent()),n.fancybox.isMobile&&a.isScrollable||o.preventDefault(),(1===a.startPoints.length||u.hasError)&&(a.canPan?(n.fancybox.stop(a.$content),a.isPanning=!0):a.isSwiping=!0,a.$container.addClass("fancybox-is-grabbing")),2===a.startPoints.length&&"image"===u.type&&(u.isLoaded||u.$ghost)&&(a.canTap=!1,a.isSwiping=!1,a.isPanning=!1,a.isZooming=!0,n.fancybox.stop(a.$content),a.centerPointStartX=.5*(a.startPoints[0].x+a.startPoints[1].x)-n(t).scrollLeft(),a.centerPointStartY=.5*(a.startPoints[0].y+a.startPoints[1].y)-n(t).scrollTop(),a.percentageOfImageAtPinchPointX=(a.centerPointStartX-a.contentStartPos.left)/a.contentStartPos.width,a.percentageOfImageAtPinchPointY=(a.centerPointStartY-a.contentStartPos.top)/a.contentStartPos.height,a.startDistanceBetweenFingers=s(a.startPoints[0],a.startPoints[1]))))}},l.prototype.onscroll=function(t){this.isScrolling=!0,e.removeEventListener("scroll",this.onscroll,!0)},l.prototype.ontouchmove=function(t){var e=this;void 0===t.originalEvent.buttons||0!==t.originalEvent.buttons?e.isScrolling?e.canTap=!1:(e.newPoints=i(t),(e.opts||e.canPan)&&e.newPoints.length&&e.newPoints.length&&(e.isSwiping&&!0===e.isSwiping||t.preventDefault(),e.distanceX=s(e.newPoints[0],e.startPoints[0],"x"),e.distanceY=s(e.newPoints[0],e.startPoints[0],"y"),e.distance=s(e.newPoints[0],e.startPoints[0]),e.distance>0&&(e.isSwiping?e.onSwipe(t):e.isPanning?e.onPan():e.isZooming&&e.onZoom()))):e.ontouchend(t)},l.prototype.onSwipe=function(e){var i,s=this,r=s.instance,c=s.isSwiping,l=s.sliderStartPos.left||0;if(!0!==c)"x"==c&&(s.distanceX>0&&(s.instance.group.length<2||0===s.instance.current.index&&!s.instance.current.opts.loop)?l+=Math.pow(s.distanceX,.8):s.distanceX<0&&(s.instance.group.length<2||s.instance.current.index===s.instance.group.length-1&&!s.instance.current.opts.loop)?l-=Math.pow(-s.distanceX,.8):l+=s.distanceX),s.sliderLastPos={top:"x"==c?0:s.sliderStartPos.top+s.distanceY,left:l},s.requestId&&(a(s.requestId),s.requestId=null),s.requestId=o((function(){s.sliderLastPos&&(n.each(s.instance.slides,(function(t,e){var o=e.pos-s.instance.currPos;n.fancybox.setTranslate(e.$slide,{top:s.sliderLastPos.top,left:s.sliderLastPos.left+o*s.canvasWidth+o*e.opts.gutter})})),s.$container.addClass("fancybox-is-sliding"))}));else if(Math.abs(s.distance)>10){if(s.canTap=!1,r.group.length<2&&s.opts.vertical?s.isSwiping="y":r.isDragging||!1===s.opts.vertical||"auto"===s.opts.vertical&&n(t).width()>800?s.isSwiping="x":(i=Math.abs(180*Math.atan2(s.distanceY,s.distanceX)/Math.PI),s.isSwiping=i>45&&i<135?"y":"x"),"y"===s.isSwiping&&n.fancybox.isMobile&&s.isScrollable)return void(s.isScrolling=!0);r.isDragging=s.isSwiping,s.startPoints=s.newPoints,n.each(r.slides,(function(t,e){var o,a;n.fancybox.stop(e.$slide),o=n.fancybox.getTranslate(e.$slide),a=n.fancybox.getTranslate(r.$refs.stage),e.$slide.css({transform:"",opacity:"","transition-duration":""}).removeClass("fancybox-animated").removeClass((function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")})),e.pos===r.current.pos&&(s.sliderStartPos.top=o.top-a.top,s.sliderStartPos.left=o.left-a.left),n.fancybox.setTranslate(e.$slide,{top:o.top-a.top,left:o.left-a.left})})),r.SlideShow&&r.SlideShow.isActive&&r.SlideShow.stop()}},l.prototype.onPan=function(){var t=this;s(t.newPoints[0],t.realPoints[0])<(n.fancybox.isMobile?10:5)?t.startPoints=t.newPoints:(t.canTap=!1,t.contentLastPos=t.limitMovement(),t.requestId&&a(t.requestId),t.requestId=o((function(){n.fancybox.setTranslate(t.$content,t.contentLastPos)})))},l.prototype.limitMovement=function(){var t,e,n,o,a,i,s=this,r=s.canvasWidth,c=s.canvasHeight,l=s.distanceX,d=s.distanceY,u=s.contentStartPos,f=u.left,p=u.top,h=u.width,g=u.height;return a=h>r?f+l:f,i=p+d,t=Math.max(0,.5*r-.5*h),e=Math.max(0,.5*c-.5*g),n=Math.min(r-h,.5*r-.5*h),o=Math.min(c-g,.5*c-.5*g),l>0&&a>t&&(a=t-1+Math.pow(-t+f+l,.8)||0),l<0&&a0&&i>e&&(i=e-1+Math.pow(-e+p+d,.8)||0),d<0&&ia?(t=t>0?0:t)i?(e=e>0?0:e)1&&(o.dMs>130&&s>10||s>50);o.sliderLastPos=null,"y"==t&&!e&&Math.abs(o.distanceY)>50?(n.fancybox.animate(o.instance.current.$slide,{top:o.sliderStartPos.top+o.distanceY+150*o.velocityY,opacity:0},200),a=o.instance.close(!0,250)):r&&o.distanceX>0?a=o.instance.previous(300):r&&o.distanceX<0&&(a=o.instance.next(300)),!1!==a||"x"!=t&&"y"!=t||o.instance.centerSlide(200),o.$container.removeClass("fancybox-is-sliding")},l.prototype.endPanning=function(){var t,e,o,a=this;a.contentLastPos&&(!1===a.opts.momentum||a.dMs>350?(t=a.contentLastPos.left,e=a.contentLastPos.top):(t=a.contentLastPos.left+500*a.velocityX,e=a.contentLastPos.top+500*a.velocityY),(o=a.limitPosition(t,e,a.contentStartPos.width,a.contentStartPos.height)).width=a.contentStartPos.width,o.height=a.contentStartPos.height,n.fancybox.animate(a.$content,o,366))},l.prototype.endZooming=function(){var t,e,o,a,i=this,s=i.instance.current,r=i.newWidth,c=i.newHeight;i.contentLastPos&&(t=i.contentLastPos.left,a={top:e=i.contentLastPos.top,left:t,width:r,height:c,scaleX:1,scaleY:1},n.fancybox.setTranslate(i.$content,a),rs.width||c>s.height?i.instance.scaleToActual(i.centerPointStartX,i.centerPointStartY,150):(o=i.limitPosition(t,e,r,c),n.fancybox.animate(i.$content,o,150)))},l.prototype.onTap=function(e){var o,a=this,s=n(e.target),r=a.instance,c=r.current,l=e&&i(e)||a.startPoints,d=l[0]?l[0].x-n(t).scrollLeft()-a.stagePos.left:0,u=l[0]?l[0].y-n(t).scrollTop()-a.stagePos.top:0,f=function(t){var o=c.opts[t];if(n.isFunction(o)&&(o=o.apply(r,[c,e])),o)switch(o){case"close":r.close(a.startEvent);break;case"toggleControls":r.toggleControls();break;case"next":r.next();break;case"nextOrClose":r.group.length>1?r.next():r.close(a.startEvent);break;case"zoom":"image"==c.type&&(c.isLoaded||c.$ghost)&&(r.canPan()?r.scaleToFit():r.isScaledDown()?r.scaleToActual(d,u):r.group.length<2&&r.close(a.startEvent))}};if((!e.originalEvent||2!=e.originalEvent.button)&&(s.is("img")||!(d>s[0].clientWidth+s.offset().left))){if(s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))o="Outside";else if(s.is(".fancybox-slide"))o="Slide";else{if(!r.current.$content||!r.current.$content.find(s).addBack().filter(s).length)return;o="Content"}if(a.tapped){if(clearTimeout(a.tapped),a.tapped=null,Math.abs(d-a.tapX)>50||Math.abs(u-a.tapY)>50)return this;f("dblclick"+o)}else a.tapX=d,a.tapY=u,c.opts["dblclick"+o]&&c.opts["dblclick"+o]!==c.opts["click"+o]?a.tapped=setTimeout((function(){a.tapped=null,r.isAnimating||f("click"+o)}),500):f("click"+o);return this}},n(e).on("onActivate.fb",(function(t,e){e&&!e.Guestures&&(e.Guestures=new l(e))})).on("beforeClose.fb",(function(t,e){e&&e.Guestures&&e.Guestures.destroy()}))}(window,document,jQuery),function(t,e){e.extend(!0,e.fancybox.defaults,{btnTpl:{slideShow:''},slideShow:{autoStart:!1,speed:3e3,progress:!0}});var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{timer:null,isActive:!1,$button:null,init:function(){var t=this,n=t.instance,o=n.group[n.currIndex].opts.slideShow;t.$button=n.$refs.toolbar.find("[data-fancybox-play]").on("click",(function(){t.toggle()})),n.group.length<2||!o?t.$button.hide():o.progress&&(t.$progress=e('
').appendTo(n.$refs.inner))},set:function(t){var n=this,o=n.instance,a=o.current;a&&(!0===t||a.opts.loop||o.currIndex'},fullScreen:{autoStart:!1}}),e(t).on(n.fullscreenchange,(function(){var t=o.isFullscreen(),n=e.fancybox.getInstance();n&&(n.current&&"image"===n.current.type&&n.isAnimating&&(n.isAnimating=!1,n.update(!0,!0,0),n.isComplete||n.complete()),n.trigger("onFullscreenChange",t),n.$refs.container.toggleClass("fancybox-is-fullscreen",t),n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter",!t).toggleClass("fancybox-button--fsexit",t))}))}e(t).on({"onInit.fb":function(t,e){n?e&&e.group[e.currIndex].opts.fullScreen?(e.$refs.container.on("click.fb-fullscreen","[data-fancybox-fullscreen]",(function(t){t.stopPropagation(),t.preventDefault(),o.toggle()})),e.opts.fullScreen&&!0===e.opts.fullScreen.autoStart&&o.request(),e.FullScreen=o):e&&e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide():e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove()},"afterKeydown.fb":function(t,e,n,o,a){e&&e.FullScreen&&70===a&&(o.preventDefault(),e.FullScreen.toggle())},"beforeClose.fb":function(t,e){e&&e.FullScreen&&e.$refs.container.hasClass("fancybox-is-fullscreen")&&o.exit()}})}(document,jQuery),function(t,e){var n="fancybox-thumbs",o=n+"-active";e.fancybox.defaults=e.extend(!0,{btnTpl:{thumbs:''},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"}},e.fancybox.defaults);var a=function(t){this.init(t)};e.extend(a.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,isActive:!1,init:function(t){var e=this,n=t.group,o=0;e.instance=t,e.opts=n[t.currIndex].opts.thumbs,t.Thumbs=e,e.$button=t.$refs.toolbar.find("[data-fancybox-thumbs]");for(var a=0,i=n.length;a1));a++);o>1&&e.opts?(e.$button.removeAttr("style").on("click",(function(){e.toggle()})),e.isActive=!0):e.$button.hide()},create:function(){var t,o=this,a=o.instance,i=o.opts.parentEl,s=[];o.$grid||(o.$grid=e('
').appendTo(a.$refs.container.find(i).addBack().filter(i)),o.$grid.on("click","a",(function(){a.jumpTo(e(this).attr("data-index"))}))),o.$list||(o.$list=e('
').appendTo(o.$grid)),e.each(a.group,(function(e,n){(t=n.thumb)||"image"!==n.type||(t=n.src),s.push('")})),o.$list[0].innerHTML=s.join(""),"x"===o.opts.axis&&o.$list.width(parseInt(o.$grid.css("padding-right"),10)+a.group.length*o.$list.children().eq(0).outerWidth(!0))},focus:function(t){var e,n,a=this,i=a.$list,s=a.$grid;a.instance.current&&(n=(e=i.children().removeClass(o).filter('[data-index="'+a.instance.current.index+'"]').addClass(o)).position(),"y"===a.opts.axis&&(n.top<0||n.top>i.height()-e.outerHeight())?i.stop().animate({scrollTop:i.scrollTop()+n.top},t):"x"===a.opts.axis&&(n.lefts.scrollLeft()+(s.width()-e.outerWidth()))&&i.parent().stop().animate({scrollLeft:n.left},t))},update:function(){var t=this;t.instance.$refs.container.toggleClass("fancybox-show-thumbs",this.isVisible),t.isVisible?(t.$grid||t.create(),t.instance.trigger("onThumbsShow"),t.focus(0)):t.$grid&&t.instance.trigger("onThumbsHide"),t.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),e(t).on({"onInit.fb":function(t,e){var n;e&&!e.Thumbs&&(n=new a(e)).isActive&&!0===n.opts.autoStart&&n.show()},"beforeShow.fb":function(t,e,n,o){var a=e&&e.Thumbs;a&&a.isVisible&&a.focus(o?0:250)},"afterKeydown.fb":function(t,e,n,o,a){var i=e&&e.Thumbs;i&&i.isActive&&71===a&&(o.preventDefault(),i.toggle())},"beforeClose.fb":function(t,e){var n=e&&e.Thumbs;n&&n.isVisible&&!1!==n.opts.hideOnClose&&n.$grid.hide()}})}(document,jQuery),function(t,e){e.extend(!0,e.fancybox.defaults,{btnTpl:{share:''},share:{url:function(t,e){return!t.currentHash&&"inline"!==e.type&&"html"!==e.type&&(e.origSrc||e.src)||window.location},tpl:''}}),e(t).on("click","[data-fancybox-share]",(function(){var t,n,o,a,i=e.fancybox.getInstance(),s=i.current||null;s&&("function"===e.type(s.opts.share.url)&&(t=s.opts.share.url.apply(s,[i,s])),n=s.opts.share.tpl.replace(/\{\{media\}\}/g,"image"===s.type?encodeURIComponent(s.src):"").replace(/\{\{url\}\}/g,encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g,(o=t,a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="},String(o).replace(/[&<>"'`=\/]/g,(function(t){return a[t]})))).replace(/\{\{descr\}\}/g,i.$caption?encodeURIComponent(i.$caption.text()):""),e.fancybox.open({src:i.translate(i,n),type:"html",opts:{touch:!1,animationEffect:!1,afterLoad:function(t,e){i.$refs.container.one("beforeClose.fb",(function(){t.close(null,0)})),e.$content.find(".fancybox-share__button").click((function(){return window.open(this.href,"Share","width=550, height=450"),!1}))},mobile:{autoFocus:!1}}}))}))}(document,jQuery),function(t,e,n){function o(){var e=t.location.hash.substr(1),n=e.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])&&parseInt(n.pop(-1),10)||1;return{hash:e,index:o<1?1:o,gallery:n.join("-")}}function a(t){""!==t.gallery&&n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1).focus().trigger("click.fb-start")}function i(t){var e,n;return!!t&&(""!==(n=(e=t.current?t.current.opts:t.opts).hash||(e.$orig?e.$orig.data("fancybox")||e.$orig.data("fancybox-trigger"):""))&&n)}n.escapeSelector||(n.escapeSelector=function(t){return(t+"").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,(function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t}))}),n((function(){!1!==n.fancybox.defaults.hash&&(n(e).on({"onInit.fb":function(t,e){var n,a;!1!==e.group[e.currIndex].opts.hash&&(n=o(),(a=i(e))&&n.gallery&&a==n.gallery&&(e.currIndex=n.index-1))},"beforeShow.fb":function(n,o,a,s){var r;a&&!1!==a.opts.hash&&(r=i(o))&&(o.currentHash=r+(o.group.length>1?"-"+(a.index+1):""),t.location.hash!=="#"+o.currentHash&&(s&&!o.origHash&&(o.origHash=t.location.hash),o.hashTimer&&clearTimeout(o.hashTimer),o.hashTimer=setTimeout((function(){"replaceState"in t.history?(t.history[s?"pushState":"replaceState"]({},e.title,t.location.pathname+t.location.search+"#"+o.currentHash),s&&(o.hasCreatedHistory=!0)):t.location.hash=o.currentHash,o.hashTimer=null}),300)))},"beforeClose.fb":function(n,o,a){a&&!1!==a.opts.hash&&(clearTimeout(o.hashTimer),o.currentHash&&o.hasCreatedHistory?t.history.back():o.currentHash&&("replaceState"in t.history?t.history.replaceState({},e.title,t.location.pathname+t.location.search+(o.origHash||"")):t.location.hash=o.origHash),o.currentHash=null)}}),n(t).on("hashchange.fb",(function(){var t=o(),e=null;n.each(n(".fancybox-container").get().reverse(),(function(t,o){var a=n(o).data("FancyBox");if(a&&a.currentHash)return e=a,!1})),e?e.currentHash===t.gallery+"-"+t.index||1===t.index&&e.currentHash==t.gallery||(e.currentHash=null,e.close()):""!==t.gallery&&a(t)})),setTimeout((function(){n.fancybox.getInstance()||a(o())}),50))}))}(window,document,jQuery),function(t,e){var n=(new Date).getTime();e(t).on({"onInit.fb":function(t,e,o){e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll",(function(t){var o=e.current,a=(new Date).getTime();e.group.length<2||!1===o.opts.wheel||"auto"===o.opts.wheel&&"image"!==o.type||(t.preventDefault(),t.stopPropagation(),o.$slide.hasClass("fancybox-animated")||(t=t.originalEvent||t,a-n<250||(n=a,e[(-t.deltaY||-t.deltaX||t.wheelDelta||-t.detail)<0?"next":"previous"]())))}))}})}(document,jQuery)}}]); +(globalThis.webpackChunksakurairo_scripts=globalThis.webpackChunksakurairo_scripts||[]).push([[155],{4155:()=>{!function(t,e,n,o){if(t.console=t.console||{info:function(t){}},n)if(n.fn.fancybox)console.info("fancyBox already initialized");else{var a,i,s,r,c={closeExisting:!1,loop:!1,gutter:50,keyboard:!0,preventCaptionOverlap:!0,arrows:!0,infobar:!0,smallBtn:"auto",toolbar:"auto",buttons:["zoom","slideShow","thumbs","close"],idleTime:3,protect:!1,modal:!1,image:{preload:!1},ajax:{settings:{data:{fancybox:!0}}},iframe:{tpl:'',preload:!0,css:{},attr:{scrolling:"auto"}},video:{tpl:'',format:"",autoStart:!0},defaultType:"image",animationEffect:"zoom",animationDuration:366,zoomOpacity:"auto",transitionEffect:"fade",transitionDuration:366,slideClass:"",baseClass:"",baseTpl:'',spinnerTpl:'
',errorTpl:'

{{ERROR}}

',btnTpl:{download:'',zoom:'',close:'',arrowLeft:'',arrowRight:'',smallBtn:''},parentEl:"body",hideScrollbar:!0,autoFocus:!0,backFocus:!0,trapFocus:!0,fullScreen:{autoStart:!1},touch:{vertical:!0,momentum:!0},hash:null,media:{},slideShow:{autoStart:!1,speed:3e3},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"},wheel:"auto",onInit:n.noop,beforeLoad:n.noop,afterLoad:n.noop,beforeShow:n.noop,afterShow:n.noop,beforeClose:n.noop,afterClose:n.noop,onActivate:n.noop,onDeactivate:n.noop,clickContent:function(t,e){return"image"===t.type&&"zoom"},clickSlide:"close",clickOutside:"close",dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1,mobile:{preventCaptionOverlap:!1,idleTime:!1,clickContent:function(t,e){return"image"===t.type&&"toggleControls"},clickSlide:function(t,e){return"image"===t.type?"toggleControls":"close"},dblclickContent:function(t,e){return"image"===t.type&&"zoom"},dblclickSlide:function(t,e){return"image"===t.type&&"zoom"}},lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded.
Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share",ZOOM:"Zoom"},de:{CLOSE:"Schließen",NEXT:"Weiter",PREV:"Zurück",ERROR:"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen",ZOOM:"Vergrößern"}}},l=n(t),d=n(e),u=0,p=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)},f=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)},h=function(){var t,n=e.createElement("fakeelement"),a={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in a)if(n.style[t]!==o)return a[t];return"transitionend"}(),g=function(t){return t&&t.length&&t[0].offsetHeight},b=function(t,e){var o=n.extend(!0,{},t,e);return n.each(e,(function(t,e){n.isArray(e)&&(o[t]=e)})),o},m=function(t,e,o){var a=this;a.opts=b({index:o},n.fancybox.defaults),n.isPlainObject(e)&&(a.opts=b(a.opts,e)),n.fancybox.isMobile&&(a.opts=b(a.opts,a.opts.mobile)),a.id=a.opts.id||++u,a.currIndex=parseInt(a.opts.index,10)||0,a.prevIndex=null,a.prevPos=null,a.currPos=0,a.firstRun=!0,a.group=[],a.slides={},a.addContent(t),a.group.length&&a.init()};n.extend(m.prototype,{init:function(){var o,a,i=this,s=i.group[i.currIndex].opts;s.closeExisting&&n.fancybox.close(!0),n("body").addClass("fancybox-active"),!n.fancybox.getInstance()&&!1!==s.hideScrollbar&&!n.fancybox.isMobile&&e.body.scrollHeight>t.innerHeight&&(n("head").append('"),n("body").addClass("compensate-for-scrollbar")),a="",n.each(s.buttons,(function(t,e){a+=s.btnTpl[e]||""})),o=n(i.translate(i,s.baseTpl.replace("{{buttons}}",a).replace("{{arrows}}",s.btnTpl.arrowLeft+s.btnTpl.arrowRight))).attr("id","fancybox-container-"+i.id).addClass(s.baseClass).data("FancyBox",i).appendTo(s.parentEl),i.$refs={container:o},["bg","inner","infobar","toolbar","stage","caption","navigation"].forEach((function(t){i.$refs[t]=o.find(".fancybox-"+t)})),i.trigger("onInit"),i.activate(),i.jumpTo(i.currIndex)},translate:function(t,e){var n=t.opts.i18n[t.opts.lang]||t.opts.i18n.en;return e.replace(/\{\{(\w+)\}\}/g,(function(t,e){return n[e]===o?t:n[e]}))},addContent:function(t){var e,a=this,i=n.makeArray(t);n.each(i,(function(t,e){var i,s,r,c,l,d={},u={};n.isPlainObject(e)?(d=e,u=e.opts||e):"object"===n.type(e)&&n(e).length?(u=(i=n(e)).data()||{},(u=n.extend(!0,{},u,u.options)).$orig=i,d.src=a.opts.src||u.src||i.attr("href"),d.type||d.src||(d.type="inline",d.src=e)):d={type:"html",src:e+""},d.opts=n.extend(!0,{},a.opts,u),n.isArray(u.buttons)&&(d.opts.buttons=u.buttons),n.fancybox.isMobile&&d.opts.mobile&&(d.opts=b(d.opts,d.opts.mobile)),s=d.type||d.opts.type,c=d.src||"",!s&&c&&((r=c.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))?(s="video",d.opts.video.format||(d.opts.video.format="video/"+("ogv"===r[1]?"ogg":r[1]))):c.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?s="image":c.match(/\.(pdf)((\?|#).*)?$/i)?(s="iframe",d=n.extend(!0,d,{contentType:"pdf",opts:{iframe:{preload:!1}}})):"#"===c.charAt(0)&&(s="inline")),s?d.type=s:a.trigger("objectNeedsType",d),d.contentType||(d.contentType=n.inArray(d.type,["html","inline","ajax"])>-1?"html":d.type),d.index=a.group.length,"auto"==d.opts.smallBtn&&(d.opts.smallBtn=n.inArray(d.type,["html","inline","ajax"])>-1),"auto"===d.opts.toolbar&&(d.opts.toolbar=!d.opts.smallBtn),d.$thumb=d.opts.$thumb||null,d.opts.$trigger&&d.index===a.opts.index&&(d.$thumb=d.opts.$trigger.find("img:first"),d.$thumb.length&&(d.opts.$orig=d.opts.$trigger)),d.$thumb&&d.$thumb.length||!d.opts.$orig||(d.$thumb=d.opts.$orig.find("img:first")),d.$thumb&&!d.$thumb.length&&(d.$thumb=null),d.thumb=d.opts.thumb||(d.$thumb?d.$thumb[0].src:null),"function"===n.type(d.opts.caption)&&(d.opts.caption=d.opts.caption.apply(e,[a,d])),"function"===n.type(a.opts.caption)&&(d.opts.caption=a.opts.caption.apply(e,[a,d])),d.opts.caption instanceof n||(d.opts.caption=d.opts.caption===o?"":d.opts.caption+""),"ajax"===d.type&&(l=c.split(/\s+/,2)).length>1&&(d.src=l.shift(),d.opts.filter=l.shift()),d.opts.modal&&(d.opts=n.extend(!0,d.opts,{trapFocus:!0,infobar:0,toolbar:0,smallBtn:0,keyboard:0,slideShow:0,fullScreen:0,thumbs:0,touch:0,clickContent:!1,clickSlide:!1,clickOutside:!1,dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1})),a.group.push(d)})),Object.keys(a.slides).length&&(a.updateControls(),(e=a.Thumbs)&&e.isActive&&(e.create(),e.focus()))},addEvents:function(){var e=this;e.removeEvents(),e.$refs.container.on("click.fb-close","[data-fancybox-close]",(function(t){t.stopPropagation(),t.preventDefault(),e.close(t)})).on("touchstart.fb-prev click.fb-prev","[data-fancybox-prev]",(function(t){t.stopPropagation(),t.preventDefault(),e.previous()})).on("touchstart.fb-next click.fb-next","[data-fancybox-next]",(function(t){t.stopPropagation(),t.preventDefault(),e.next()})).on("click.fb","[data-fancybox-zoom]",(function(t){e[e.isScaledDown()?"scaleToActual":"scaleToFit"]()})),l.on("orientationchange.fb resize.fb",(function(t){t&&t.originalEvent&&"resize"===t.originalEvent.type?(e.requestId&&f(e.requestId),e.requestId=p((function(){e.update(t)}))):(e.current&&"iframe"===e.current.type&&e.$refs.stage.hide(),setTimeout((function(){e.$refs.stage.show(),e.update(t)}),n.fancybox.isMobile?600:250))})),d.on("keydown.fb",(function(t){var o=(n.fancybox?n.fancybox.getInstance():null).current,a=t.keyCode||t.which;if(9!=a){if(!(!o.opts.keyboard||t.ctrlKey||t.altKey||t.shiftKey||n(t.target).is("input,textarea,video,audio,select")))return 8===a||27===a?(t.preventDefault(),void e.close(t)):37===a||38===a?(t.preventDefault(),void e.previous()):39===a||40===a?(t.preventDefault(),void e.next()):void e.trigger("afterKeydown",t,a)}else o.opts.trapFocus&&e.focus(t)})),e.group[e.currIndex].opts.idleTime&&(e.idleSecondsCounter=0,d.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",(function(t){e.idleSecondsCounter=0,e.isIdle&&e.showControls(),e.isIdle=!1})),e.idleInterval=t.setInterval((function(){e.idleSecondsCounter++,e.idleSecondsCounter>=e.group[e.currIndex].opts.idleTime&&!e.isDragging&&(e.isIdle=!0,e.idleSecondsCounter=0,e.hideControls())}),1e3))},removeEvents:function(){var e=this;l.off("orientationchange.fb resize.fb"),d.off("keydown.fb .fb-idle"),this.$refs.container.off(".fb-close .fb-prev .fb-next"),e.idleInterval&&(t.clearInterval(e.idleInterval),e.idleInterval=null)},previous:function(t){return this.jumpTo(this.currPos-1,t)},next:function(t){return this.jumpTo(this.currPos+1,t)},jumpTo:function(t,e){var a,i,s,r,c,l,d,u,p,f=this,h=f.group.length;if(!(f.isDragging||f.isClosing||f.isAnimating&&f.firstRun)){if(t=parseInt(t,10),!(s=f.current?f.current.opts.loop:f.opts.loop)&&(t<0||t>=h))return!1;if(a=f.firstRun=!Object.keys(f.slides).length,c=f.current,f.prevIndex=f.currIndex,f.prevPos=f.currPos,r=f.createSlide(t),h>1&&((s||r.index0)&&f.createSlide(t-1)),f.current=r,f.currIndex=r.index,f.currPos=r.pos,f.trigger("beforeShow",a),f.updateControls(),r.forcedDuration=o,n.isNumeric(e)?r.forcedDuration=e:e=r.opts[a?"animationDuration":"transitionDuration"],e=parseInt(e,10),i=f.isMoved(r),r.$slide.addClass("fancybox-slide--current"),a)return r.opts.animationEffect&&e&&f.$refs.container.css("transition-duration",e+"ms"),f.$refs.container.addClass("fancybox-is-open").trigger("focus"),f.loadSlide(r),void f.preload("image");l=n.fancybox.getTranslate(c.$slide),d=n.fancybox.getTranslate(f.$refs.stage),n.each(f.slides,(function(t,e){n.fancybox.stop(e.$slide,!0)})),c.pos!==r.pos&&(c.isComplete=!1),c.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"),i?(p=l.left-(c.pos*l.width+c.pos*c.opts.gutter),n.each(f.slides,(function(t,o){o.$slide.removeClass("fancybox-animated").removeClass((function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")}));var a=o.pos*l.width+o.pos*o.opts.gutter;n.fancybox.setTranslate(o.$slide,{top:0,left:a-d.left+p}),o.pos!==r.pos&&o.$slide.addClass("fancybox-slide--"+(o.pos>r.pos?"next":"previous")),g(o.$slide),n.fancybox.animate(o.$slide,{top:0,left:(o.pos-r.pos)*l.width+(o.pos-r.pos)*o.opts.gutter},e,(function(){o.$slide.css({transform:"",opacity:""}).removeClass("fancybox-slide--next fancybox-slide--previous"),o.pos===f.currPos&&f.complete()}))}))):e&&r.opts.transitionEffect&&(u="fancybox-animated fancybox-fx-"+r.opts.transitionEffect,c.$slide.addClass("fancybox-slide--"+(c.pos>r.pos?"next":"previous")),n.fancybox.animate(c.$slide,u,e,(function(){c.$slide.removeClass(u).removeClass("fancybox-slide--next fancybox-slide--previous")}),!1)),r.isLoaded?f.revealContent(r):f.loadSlide(r),f.preload("image")}},createSlide:function(t){var e,o,a=this;return o=(o=t%a.group.length)<0?a.group.length+o:o,!a.slides[t]&&a.group[o]&&(e=n('
').appendTo(a.$refs.stage),a.slides[t]=n.extend(!0,{},a.group[o],{pos:t,$slide:e,isLoaded:!1}),a.updateSlide(a.slides[t])),a.slides[t]},scaleToActual:function(t,e,a){var i,s,r,c,l,d=this,u=d.current,p=u.$content,f=n.fancybox.getTranslate(u.$slide).width,h=n.fancybox.getTranslate(u.$slide).height,g=u.width,b=u.height;d.isAnimating||d.isMoved()||!p||"image"!=u.type||!u.isLoaded||u.hasError||(d.isAnimating=!0,n.fancybox.stop(p),t=t===o?.5*f:t,e=e===o?.5*h:e,(i=n.fancybox.getTranslate(p)).top-=n.fancybox.getTranslate(u.$slide).top,i.left-=n.fancybox.getTranslate(u.$slide).left,c=g/i.width,l=b/i.height,s=.5*f-.5*g,r=.5*h-.5*b,g>f&&((s=i.left*c-(t*c-t))>0&&(s=0),sh&&((r=i.top*l-(e*l-e))>0&&(r=0),re-.5&&(c=e),(l*=a)>o-.5&&(l=o),"image"===t.type?(d.top=Math.floor(.5*(o-l))+parseFloat(r.css("paddingTop")),d.left=Math.floor(.5*(e-c))+parseFloat(r.css("paddingLeft"))):"video"===t.contentType&&(l>c/(i=t.opts.width&&t.opts.height?c/l:t.opts.ratio||16/9)?l=c/i:c>l*i&&(c=l*i)),d.width=c,d.height=l,d)},update:function(t){var e=this;n.each(e.slides,(function(n,o){e.updateSlide(o,t)}))},updateSlide:function(t,e){var o=this,a=t&&t.$content,i=t.width||t.opts.width,s=t.height||t.opts.height,r=t.$slide;o.adjustCaption(t),a&&(i||s||"video"===t.contentType)&&!t.hasError&&(n.fancybox.stop(a),n.fancybox.setTranslate(a,o.getFitPos(t)),t.pos===o.currPos&&(o.isAnimating=!1,o.updateCursor())),o.adjustLayout(t),r.length&&(r.trigger("refresh"),t.pos===o.currPos&&o.$refs.toolbar.add(o.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar",r.get(0).scrollHeight>r.get(0).clientHeight)),o.trigger("onUpdate",t,e)},centerSlide:function(t){var e=this,a=e.current,i=a.$slide;!e.isClosing&&a&&(i.siblings().css({transform:"",opacity:""}),i.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"),n.fancybox.animate(i,{top:0,left:0,opacity:1},t===o?0:t,(function(){i.css({transform:"",opacity:""}),a.isComplete||e.complete()}),!1))},isMoved:function(t){var e,o,a=t||this.current;return!!a&&(o=n.fancybox.getTranslate(this.$refs.stage),e=n.fancybox.getTranslate(a.$slide),!a.$slide.hasClass("fancybox-animated")&&(Math.abs(e.top-o.top)>.5||Math.abs(e.left-o.left)>.5))},updateCursor:function(t,e){var o,a,i=this,s=i.current,r=i.$refs.container;s&&!i.isClosing&&i.Guestures&&(r.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"),a=!!(o=i.canPan(t,e))||i.isZoomable(),r.toggleClass("fancybox-is-zoomable",a),n("[data-fancybox-zoom]").prop("disabled",!a),o?r.addClass("fancybox-can-pan"):a&&("zoom"===s.opts.clickContent||n.isFunction(s.opts.clickContent)&&"zoom"==s.opts.clickContent(s))?r.addClass("fancybox-can-zoomIn"):s.opts.touch&&(s.opts.touch.vertical||i.group.length>1)&&"video"!==s.contentType&&r.addClass("fancybox-can-swipe"))},isZoomable:function(){var t,e=this,n=e.current;if(n&&!e.isClosing&&"image"===n.type&&!n.hasError){if(!n.isLoaded)return!0;if((t=e.getFitPos(n))&&(n.width>t.width||n.height>t.height))return!0}return!1},isScaledDown:function(t,e){var a=!1,i=this.current,s=i.$content;return t!==o&&e!==o?a=t1.5||Math.abs(i.height-s.height)>1.5)),s},loadSlide:function(t){var e,o,a,i=this;if(!t.isLoading&&!t.isLoaded){if(t.isLoading=!0,!1===i.trigger("beforeLoad",t))return t.isLoading=!1,!1;switch(e=t.type,(o=t.$slide).off("refresh").trigger("onReset").addClass(t.opts.slideClass),e){case"image":i.setImage(t);break;case"iframe":i.setIframe(t);break;case"html":i.setContent(t,t.src||t.content);break;case"video":i.setContent(t,t.opts.video.tpl.replace(/\{\{src\}\}/gi,t.src).replace("{{format}}",t.opts.videoFormat||t.opts.video.format||"").replace("{{poster}}",t.thumb||""));break;case"inline":n(t.src).length?i.setContent(t,n(t.src)):i.setError(t);break;case"ajax":i.showLoading(t),a=n.ajax(n.extend({},t.opts.ajax.settings,{url:t.src,success:function(e,n){"success"===n&&i.setContent(t,e)},error:function(e,n){e&&"abort"!==n&&i.setError(t)}})),o.one("onReset",(function(){a.abort()}));break;default:i.setError(t)}return!0}},setImage:function(t){var o,a=this;setTimeout((function(){var e=t.$image;a.isClosing||!t.isLoading||e&&e.length&&e[0].complete||t.hasError||a.showLoading(t)}),50),a.checkSrcset(t),t.$content=n('
').addClass("fancybox-is-hidden").appendTo(t.$slide.addClass("fancybox-slide--image")),!1!==t.opts.preload&&t.opts.width&&t.opts.height&&t.thumb&&(t.width=t.opts.width,t.height=t.opts.height,(o=e.createElement("img")).onerror=function(){n(this).remove(),t.$ghost=null},o.onload=function(){a.afterLoad(t)},t.$ghost=n(o).addClass("fancybox-image").appendTo(t.$content).attr("src",t.thumb)),a.setBigImage(t)},checkSrcset:function(e){var n,o,a,i,s=e.opts.srcset||e.opts.image.srcset;if(s){a=t.devicePixelRatio||1,i=t.innerWidth*a,o=s.split(",").map((function(t){var e={};return t.trim().split(/\s+/).forEach((function(t,n){var o=parseInt(t.substring(0,t.length-1),10);if(0===n)return e.url=t;o&&(e.value=o,e.postfix=t[t.length-1])})),e})),o.sort((function(t,e){return t.value-e.value}));for(var r=0;r=i||"x"===c.postfix&&c.value>=a){n=c;break}}!n&&o.length&&(n=o[o.length-1]),n&&(e.src=n.url,e.width&&e.height&&"w"==n.postfix&&(e.height=e.width/e.height*n.value,e.width=n.value),e.opts.srcset=s)}},setBigImage:function(t){var o=this,a=e.createElement("img"),i=n(a);t.$image=i.one("error",(function(){o.setError(t)})).one("load",(function(){var e;t.$ghost||(o.resolveImageSlideSize(t,this.naturalWidth,this.naturalHeight),o.afterLoad(t)),o.isClosing||(t.opts.srcset&&((e=t.opts.sizes)&&"auto"!==e||(e=(t.width/t.height>1&&l.width()/l.height()>1?"100":Math.round(t.width/t.height*100))+"vw"),i.attr("sizes",e).attr("srcset",t.opts.srcset)),t.$ghost&&setTimeout((function(){t.$ghost&&!o.isClosing&&t.$ghost.hide()}),Math.min(300,Math.max(1e3,t.height/1600))),o.hideLoading(t))})).addClass("fancybox-image").attr("src",t.src).appendTo(t.$content),(a.complete||"complete"==a.readyState)&&i.naturalWidth&&i.naturalHeight?i.trigger("load"):a.error&&i.trigger("error")},resolveImageSlideSize:function(t,e,n){var o=parseInt(t.opts.width,10),a=parseInt(t.opts.height,10);t.width=e,t.height=n,o>0&&(t.width=o,t.height=Math.floor(o*n/e)),a>0&&(t.width=Math.floor(a*e/n),t.height=a)},setIframe:function(t){var e,a=this,i=t.opts.iframe,s=t.$slide;t.$content=n('
').css(i.css).appendTo(s),s.addClass("fancybox-slide--"+t.contentType),t.$iframe=e=n(i.tpl.replace(/\{rnd\}/g,(new Date).getTime())).attr(i.attr).appendTo(t.$content),i.preload?(a.showLoading(t),e.on("load.fb error.fb",(function(e){this.isReady=1,t.$slide.trigger("refresh"),a.afterLoad(t)})),s.on("refresh.fb",(function(){var n,a=t.$content,r=i.css.width,c=i.css.height;if(1===e[0].isReady){try{n=e.contents().find("body")}catch(t){}n&&n.length&&n.children().length&&(s.css("overflow","visible"),a.css({width:"100%","max-width":"100%",height:"9999px"}),r===o&&(r=Math.ceil(Math.max(n[0].clientWidth,n.outerWidth(!0)))),a.css("width",r||"").css("max-width",""),c===o&&(c=Math.ceil(Math.max(n[0].clientHeight,n.outerHeight(!0)))),a.css("height",c||""),s.css("overflow","auto")),a.removeClass("fancybox-is-hidden")}}))):a.afterLoad(t),e.attr("src",t.src),s.one("onReset",(function(){try{n(this).find("iframe").hide().unbind().attr("src","//about:blank")}catch(t){}n(this).off("refresh.fb").empty(),t.isLoaded=!1,t.isRevealed=!1}))},setContent:function(t,e){var o,a=this;a.isClosing||(a.hideLoading(t),t.$content&&n.fancybox.stop(t.$content),t.$slide.empty(),(o=e)&&o.hasOwnProperty&&o instanceof n&&e.parent().length?((e.hasClass("fancybox-content")||e.parent().hasClass("fancybox-content"))&&e.parents(".fancybox-slide").trigger("onReset"),t.$placeholder=n("
").hide().insertAfter(e),e.css("display","inline-block")):t.hasError||("string"===n.type(e)&&(e=n("
").append(n.trim(e)).contents()),t.opts.filter&&(e=n("
").html(e).find(t.opts.filter))),t.$slide.one("onReset",(function(){n(this).find("video,audio").trigger("pause"),t.$placeholder&&(t.$placeholder.after(e.removeClass("fancybox-content").hide()).remove(),t.$placeholder=null),t.$smallBtn&&(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(n(this).empty(),t.isLoaded=!1,t.isRevealed=!1)})),n(e).appendTo(t.$slide),n(e).is("video,audio")&&(n(e).addClass("fancybox-video"),n(e).wrap("
"),t.contentType="video",t.opts.width=t.opts.width||n(e).attr("width"),t.opts.height=t.opts.height||n(e).attr("height")),t.$content=t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(),t.$content.siblings().hide(),t.$content.length||(t.$content=t.$slide.wrapInner("
").children().first()),t.$content.addClass("fancybox-content"),t.$slide.addClass("fancybox-slide--"+t.contentType),a.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.trigger("onReset").removeClass("fancybox-slide--"+t.contentType).addClass("fancybox-slide--error"),t.contentType="html",this.setContent(t,this.translate(t,t.opts.errorTpl)),t.pos===this.currPos&&(this.isAnimating=!1)},showLoading:function(t){var e=this;(t=t||e.current)&&!t.$spinner&&(t.$spinner=n(e.translate(e,e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast"))},hideLoading:function(t){(t=t||this.current)&&t.$spinner&&(t.$spinner.stop().remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger("afterLoad",t),e.hideLoading(t),!t.opts.smallBtn||t.$smallBtn&&t.$smallBtn.length||(t.$smallBtn=n(e.translate(t,t.opts.btnTpl.smallBtn)).appendTo(t.$content)),t.opts.protect&&t.$content&&!t.hasError&&(t.$content.on("contextmenu.fb",(function(t){return 2==t.button&&t.preventDefault(),!0})),"image"===t.type&&n('
').appendTo(t.$content)),e.adjustCaption(t),e.adjustLayout(t),t.pos===e.currPos&&e.updateCursor(),e.revealContent(t))},adjustCaption:function(t){var e,n=this,o=t||n.current,a=o.opts.caption,i=o.opts.preventCaptionOverlap,s=n.$refs.caption,r=!1;s.toggleClass("fancybox-caption--separate",i),i&&a&&a.length&&(o.pos!==n.currPos?((e=s.clone().appendTo(s.parent())).children().eq(0).empty().html(a),r=e.outerHeight(!0),e.empty().remove()):n.$caption&&(r=n.$caption.outerHeight(!0)),o.$slide.css("padding-bottom",r||""))},adjustLayout:function(t){var e,n,o,a,i=t||this.current;i.isLoaded&&!0!==i.opts.disableLayoutFix&&(i.$content.css("margin-bottom",""),i.$content.outerHeight()>i.$slide.height()+.5&&(o=i.$slide[0].style["padding-bottom"],a=i.$slide.css("padding-bottom"),parseFloat(a)>0&&(e=i.$slide[0].scrollHeight,i.$slide.css("padding-bottom",0),Math.abs(e-i.$slide[0].scrollHeight)<1&&(n=a),i.$slide.css("padding-bottom",o))),i.$content.css("margin-bottom",n))},revealContent:function(t){var e,a,i,s,r=this,c=t.$slide,l=!1,d=!1,u=r.isMoved(t),p=t.isRevealed;return t.isRevealed=!0,e=t.opts[r.firstRun?"animationEffect":"transitionEffect"],i=t.opts[r.firstRun?"animationDuration":"transitionDuration"],i=parseInt(t.forcedDuration===o?i:t.forcedDuration,10),!u&&t.pos===r.currPos&&i||(e=!1),"zoom"===e&&(t.pos===r.currPos&&i&&"image"===t.type&&!t.hasError&&(d=r.getThumbPos(t))?l=r.getFitPos(t):e="fade"),"zoom"===e?(r.isAnimating=!0,l.scaleX=l.width/d.width,l.scaleY=l.height/d.height,"auto"==(s=t.opts.zoomOpacity)&&(s=Math.abs(t.width/t.height-d.width/d.height)>.1),s&&(d.opacity=.1,l.opacity=1),n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"),d),g(t.$content),void n.fancybox.animate(t.$content,l,i,(function(){r.isAnimating=!1,r.complete()}))):(r.updateSlide(t),e?(n.fancybox.stop(c),a="fancybox-slide--"+(t.pos>=r.prevPos?"next":"previous")+" fancybox-animated fancybox-fx-"+e,c.addClass(a).removeClass("fancybox-slide--current"),t.$content.removeClass("fancybox-is-hidden"),g(c),"image"!==t.type&&t.$content.hide().show(0),void n.fancybox.animate(c,"fancybox-slide--current",i,(function(){c.removeClass(a).css({transform:"",opacity:""}),t.pos===r.currPos&&r.complete()}),!0)):(t.$content.removeClass("fancybox-is-hidden"),p||!u||"image"!==t.type||t.hasError||t.$content.hide().fadeIn("fast"),void(t.pos===r.currPos&&r.complete())))},getThumbPos:function(t){var o,a,i,s,r,c,l=t.$thumb;return!(!l||!function(t){var o,a;return!(!t||t.ownerDocument!==e)&&(n(".fancybox-container").css("pointer-events","none"),o={x:t.getBoundingClientRect().left+t.offsetWidth/2,y:t.getBoundingClientRect().top+t.offsetHeight/2},a=e.elementFromPoint(o.x,o.y)===t,n(".fancybox-container").css("pointer-events",""),a)}(l[0]))&&(a=n.fancybox.getTranslate(l),i=parseFloat(l.css("border-top-width")||0),s=parseFloat(l.css("border-right-width")||0),r=parseFloat(l.css("border-bottom-width")||0),c=parseFloat(l.css("border-left-width")||0),o={top:a.top+i,left:a.left+c,width:a.width-s-c,height:a.height-i-r,scaleX:1,scaleY:1},a.width>0&&a.height>0&&o)},complete:function(){var t,e=this,o=e.current,a={};!e.isMoved()&&o.isLoaded&&(o.isComplete||(o.isComplete=!0,o.$slide.siblings().trigger("onReset"),e.preload("inline"),g(o.$slide),o.$slide.addClass("fancybox-slide--complete"),n.each(e.slides,(function(t,o){o.pos>=e.currPos-1&&o.pos<=e.currPos+1?a[o.pos]=o:o&&(n.fancybox.stop(o.$slide),o.$slide.off().remove())})),e.slides=a),e.isAnimating=!1,e.updateCursor(),e.trigger("afterShow"),o.opts.video.autoStart&&o.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended",(function(){Document.exitFullscreen?Document.exitFullscreen():this.webkitExitFullscreen&&this.webkitExitFullscreen(),e.next()})),o.opts.autoFocus&&"html"===o.contentType&&((t=o.$content.find("input[autofocus]:enabled:visible:first")).length?t.trigger("focus"):e.focus(null,!0)),o.$slide.scrollTop(0).scrollLeft(0))},preload:function(t){var e,n,o=this;o.group.length<2||(n=o.slides[o.currPos+1],(e=o.slides[o.currPos-1])&&e.type===t&&o.loadSlide(e),n&&n.type===t&&o.loadSlide(n))},focus:function(t,o){var a,i,s=this,r=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not([tabindex^="-"])'].join(",");s.isClosing||((a=(a=!t&&s.current&&s.current.isComplete?s.current.$slide.find("*:visible"+(o?":not(.fancybox-close-small)":"")):s.$refs.container.find("*:visible")).filter(r).filter((function(){return"hidden"!==n(this).css("visibility")&&!n(this).hasClass("disabled")}))).length?(i=a.index(e.activeElement),t&&t.shiftKey?(i<0||0==i)&&(t.preventDefault(),a.eq(a.length-1).trigger("focus")):(i<0||i==a.length-1)&&(t&&t.preventDefault(),a.eq(0).trigger("focus"))):s.$refs.container.trigger("focus"))},activate:function(){var t=this;n(".fancybox-container").each((function(){var e=n(this).data("FancyBox");e&&e.id!==t.id&&!e.isClosing&&(e.trigger("onDeactivate"),e.removeEvents(),e.isVisible=!1)})),t.isVisible=!0,(t.current||t.isIdle)&&(t.update(),t.updateControls()),t.trigger("onActivate"),t.addEvents()},close:function(t,e){var o,a,i,s,r,c,l,d=this,u=d.current,f=function(){d.cleanUp(t)};return!d.isClosing&&(d.isClosing=!0,!1===d.trigger("beforeClose",t)?(d.isClosing=!1,p((function(){d.update()})),!1):(d.removeEvents(),i=u.$content,o=u.opts.animationEffect,a=n.isNumeric(e)?e:o?u.opts.animationDuration:0,u.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),!0!==t?n.fancybox.stop(u.$slide):o=!1,u.$slide.siblings().trigger("onReset").remove(),a&&d.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration",a+"ms"),d.hideLoading(u),d.hideControls(!0),d.updateCursor(),"zoom"!==o||i&&a&&"image"===u.type&&!d.isMoved()&&!u.hasError&&(l=d.getThumbPos(u))||(o="fade"),"zoom"===o?(n.fancybox.stop(i),c={top:(s=n.fancybox.getTranslate(i)).top,left:s.left,scaleX:s.width/l.width,scaleY:s.height/l.height,width:l.width,height:l.height},"auto"==(r=u.opts.zoomOpacity)&&(r=Math.abs(u.width/u.height-l.width/l.height)>.1),r&&(l.opacity=0),n.fancybox.setTranslate(i,c),g(i),n.fancybox.animate(i,l,a,f),!0):(o&&a?n.fancybox.animate(u.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"),"fancybox-animated fancybox-fx-"+o,a,f):!0===t?setTimeout(f,a):f(),!0)))},cleanUp:function(e){var o,a,i,s=this,r=s.current.opts.$orig;s.current.$slide.trigger("onReset"),s.$refs.container.empty().remove(),s.trigger("afterClose",e),s.current.opts.backFocus&&(r&&r.length&&r.is(":visible")||(r=s.$trigger),r&&r.length&&(a=t.scrollX,i=t.scrollY,r.trigger("focus"),n("html, body").scrollTop(i).scrollLeft(a))),s.current=null,(o=n.fancybox.getInstance())?o.activate():(n("body").removeClass("fancybox-active compensate-for-scrollbar"),n("#fancybox-style-noscroll").remove())},trigger:function(t,e){var o,a=Array.prototype.slice.call(arguments,1),i=this,s=e&&e.opts?e:i.current;if(s?a.unshift(s):s=i,a.unshift(i),n.isFunction(s.opts[t])&&(o=s.opts[t].apply(s,a)),!1===o)return o;"afterClose"!==t&&i.$refs?i.$refs.container.trigger(t+".fb",a):d.trigger(t+".fb",a)},updateControls:function(){var t=this,o=t.current,a=o.index,i=t.$refs.container,s=t.$refs.caption,r=o.opts.caption;o.$slide.trigger("refresh"),r&&r.length?(t.$caption=s,s.children().eq(0).html(r)):t.$caption=null,t.hasHiddenControls||t.isIdle||t.showControls(),i.find("[data-fancybox-count]").html(t.group.length),i.find("[data-fancybox-index]").html(a+1),i.find("[data-fancybox-prev]").prop("disabled",!o.opts.loop&&a<=0),i.find("[data-fancybox-next]").prop("disabled",!o.opts.loop&&a>=t.group.length-1),"image"===o.type?i.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href",o.opts.image.src||o.src).show():o.opts.toolbar&&i.find("[data-fancybox-download],[data-fancybox-zoom]").hide(),n(e.activeElement).is(":hidden,[disabled]")&&t.$refs.container.trigger("focus")},hideControls:function(t){var e=["infobar","toolbar","nav"];!t&&this.current.opts.preventCaptionOverlap||e.push("caption"),this.$refs.container.removeClass(e.map((function(t){return"fancybox-show-"+t})).join(" ")),this.hasHiddenControls=!0},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.hasHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass("fancybox-show-toolbar",!(!e.toolbar||!e.buttons)).toggleClass("fancybox-show-infobar",!!(e.infobar&&t.group.length>1)).toggleClass("fancybox-show-caption",!!t.$caption).toggleClass("fancybox-show-nav",!!(e.arrows&&t.group.length>1)).toggleClass("fancybox-is-modal",!!e.modal)},toggleControls:function(){this.hasHiddenControls?this.showControls():this.hideControls()}}),n.fancybox={version:"3.5.7",defaults:c,getInstance:function(t){var e=n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),o=Array.prototype.slice.call(arguments,1);return e instanceof m&&("string"===n.type(t)?e[t].apply(e,o):"function"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new m(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),!0===t&&this.close(t))},destroy:function(){this.close(!0),d.add("body").off("click.fb-start","**")},isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),use3d:(a=e.createElement("div"),t.getComputedStyle&&t.getComputedStyle(a)&&t.getComputedStyle(a).getPropertyValue("transform")&&!(e.documentMode&&e.documentMode<11)),getTranslate:function(t){var e;return!(!t||!t.length)&&{top:(e=t[0].getBoundingClientRect()).top||0,left:e.left||0,width:e.width,height:e.height,opacity:parseFloat(t.css("opacity"))}},setTranslate:function(t,e){var n="",a={};if(t&&e)return e.left===o&&e.top===o||(n=(e.left===o?t.position().left:e.left)+"px, "+(e.top===o?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),e.scaleX!==o&&e.scaleY!==o?n+=" scale("+e.scaleX+", "+e.scaleY+")":e.scaleX!==o&&(n+=" scaleX("+e.scaleX+")"),n.length&&(a.transform=n),e.opacity!==o&&(a.opacity=e.opacity),e.width!==o&&(a.width=e.width),e.height!==o&&(a.height=e.height),t.css(a)},animate:function(t,e,a,i,s){var r,c=this;n.isFunction(a)&&(i=a,a=null),c.stop(t),r=c.getTranslate(t),t.on(h,(function(l){(!l||!l.originalEvent||t.is(l.originalEvent.target)&&"z-index"!=l.originalEvent.propertyName)&&(c.stop(t),n.isNumeric(a)&&t.css("transition-duration",""),n.isPlainObject(e)?e.scaleX!==o&&e.scaleY!==o&&c.setTranslate(t,{top:e.top,left:e.left,width:r.width*e.scaleX,height:r.height*e.scaleY,scaleX:1,scaleY:1}):!0!==s&&t.removeClass(e),n.isFunction(i)&&i(l))})),n.isNumeric(a)&&t.css("transition-duration",a+"ms"),n.isPlainObject(e)?(e.scaleX!==o&&e.scaleY!==o&&(delete e.width,delete e.height,t.parent().hasClass("fancybox-slide--image")&&t.parent().addClass("fancybox-is-scaling")),n.fancybox.setTranslate(t,e)):t.addClass(e),t.data("timer",setTimeout((function(){t.trigger(h)}),a+33))},stop:function(t,e){t&&t.length&&(clearTimeout(t.data("timer")),e&&t.trigger(h),t.off(h).css("transition-duration",""),t.parent().removeClass("fancybox-is-scaling"))}},n.fn.fancybox=function(t){var e;return(e=(t=t||{}).selector||!1)?n("body").off("click.fb-start",e).on("click.fb-start",e,{options:t},y):this.off("click.fb-start").on("click.fb-start",{items:this,options:t},y),this},d.on("click.fb-start","[data-fancybox]",y),d.on("click.fb-start","[data-fancybox-trigger]",(function(t){n('[data-fancybox="'+n(this).attr("data-fancybox-trigger")+'"]').eq(n(this).attr("data-fancybox-index")||0).trigger("click.fb-start",{$trigger:n(this)})})),i=".fancybox-button",s="fancybox-focus",r=null,d.on("mousedown mouseup focus blur",i,(function(t){switch(t.type){case"mousedown":r=n(this);break;case"mouseup":r=null;break;case"focusin":n(i).removeClass(s),n(this).is(r)||n(this).is("[disabled]")||n(this).addClass(s);break;case"focusout":n(i).removeClass(s)}}))}function y(t,e){var o,a,i,s=[],r=0;t&&t.isDefaultPrevented()||(t.preventDefault(),e=e||{},t&&t.data&&(e=b(t.data.options,e)),o=e.$target||n(t.currentTarget).trigger("blur"),(i=n.fancybox.getInstance())&&i.$trigger&&i.$trigger.is(o)||(s=e.selector?n(e.selector):(a=o.attr("data-fancybox")||"")?(s=t.data?t.data.items:[]).length?s.filter('[data-fancybox="'+a+'"]'):n('[data-fancybox="'+a+'"]'):[o],(r=n(s).index(o))<0&&(r=0),(i=n.fancybox.open(s,e,r)).$trigger=o))}}(window,document,jQuery),function(t){var e={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"https://www.youtube-nocookie.com/embed/$4",thumb:"https://img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},gmap_place:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12]+"").replace(/\?/,"&")+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}},gmap_search:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/maps?q="+t[5].replace("query=","q=").replace("api=1","")+"&output=embed"}}},n=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,(function(t,n){e=e.replace("$"+t,n||"")})),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e};t(document).on("objectNeedsType.fb",(function(o,a,i){var s,r,c,l,d,u,p,f=i.src||"",h=!1;s=t.extend(!0,{},e,i.opts.media),t.each(s,(function(e,o){if(c=f.match(o.matcher)){if(h=o.type,p=e,u={},o.paramPlace&&c[o.paramPlace]){"?"==(d=c[o.paramPlace])[0]&&(d=d.substring(1)),d=d.split("&");for(var a=0;a1&&("youtube"===n.contentSource||"vimeo"===n.contentSource)&&o.load(n.contentSource)}})}(jQuery),function(t,e,n){var o=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)},a=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)},i=function(e){var n=[];for(var o in e=(e=e.originalEvent||e||t.e).touches&&e.touches.length?e.touches:e.changedTouches&&e.changedTouches.length?e.changedTouches:[e])e[o].pageX?n.push({x:e[o].pageX,y:e[o].pageY}):e[o].clientX&&n.push({x:e[o].clientX,y:e[o].clientY});return n},s=function(t,e,n){return e&&t?"x"===n?t.x-e.x:"y"===n?t.y-e.y:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)):0},r=function(t){if(t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe')||n.isFunction(t.get(0).onclick)||t.data("selectable"))return!0;for(var e=0,o=t[0].attributes,a=o.length;en.clientHeight,s=("scroll"===a||"auto"===a)&&n.scrollWidth>n.clientWidth,!(r=i||s)&&(e=e.parent()).length&&!e.hasClass("fancybox-stage")&&!e.is("body"););return r},l=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on("touchstart.fb.touch mousedown.fb.touch",n.proxy(e,"ontouchstart"))};l.prototype.destroy=function(){var t=this;t.$container.off(".fb.touch"),n(e).off(".fb.touch"),t.requestId&&(a(t.requestId),t.requestId=null),t.tapped&&(clearTimeout(t.tapped),t.tapped=null)},l.prototype.ontouchstart=function(o){var a=this,l=n(o.target),d=a.instance,u=d.current,p=u.$slide,f=u.$content,h="touchstart"==o.type;if(h&&a.$container.off("mousedown.fb.touch"),(!o.originalEvent||2!=o.originalEvent.button)&&p.length&&l.length&&!r(l)&&!r(l.parent())&&(l.is("img")||!(o.originalEvent.clientX>l[0].clientWidth+l.offset().left))){if(!u||d.isAnimating||u.$slide.hasClass("fancybox-animated"))return o.stopPropagation(),void o.preventDefault();a.realPoints=a.startPoints=i(o),a.startPoints.length&&(u.touch&&o.stopPropagation(),a.startEvent=o,a.canTap=!0,a.$target=l,a.$content=f,a.opts=u.opts.touch,a.isPanning=!1,a.isSwiping=!1,a.isZooming=!1,a.isScrolling=!1,a.canPan=d.canPan(),a.startTime=(new Date).getTime(),a.distanceX=a.distanceY=a.distance=0,a.canvasWidth=Math.round(p[0].clientWidth),a.canvasHeight=Math.round(p[0].clientHeight),a.contentLastPos=null,a.contentStartPos=n.fancybox.getTranslate(a.$content)||{top:0,left:0},a.sliderStartPos=n.fancybox.getTranslate(p),a.stagePos=n.fancybox.getTranslate(d.$refs.stage),a.sliderStartPos.top-=a.stagePos.top,a.sliderStartPos.left-=a.stagePos.left,a.contentStartPos.top-=a.stagePos.top,a.contentStartPos.left-=a.stagePos.left,n(e).off(".fb.touch").on(h?"touchend.fb.touch touchcancel.fb.touch":"mouseup.fb.touch mouseleave.fb.touch",n.proxy(a,"ontouchend")).on(h?"touchmove.fb.touch":"mousemove.fb.touch",n.proxy(a,"ontouchmove")),n.fancybox.isMobile&&e.addEventListener("scroll",a.onscroll,!0),((a.opts||a.canPan)&&(l.is(a.$stage)||a.$stage.find(l).length)||(l.is(".fancybox-image")&&o.preventDefault(),n.fancybox.isMobile&&l.parents(".fancybox-caption").length))&&(a.isScrollable=c(l)||c(l.parent()),n.fancybox.isMobile&&a.isScrollable||o.preventDefault(),(1===a.startPoints.length||u.hasError)&&(a.canPan?(n.fancybox.stop(a.$content),a.isPanning=!0):a.isSwiping=!0,a.$container.addClass("fancybox-is-grabbing")),2===a.startPoints.length&&"image"===u.type&&(u.isLoaded||u.$ghost)&&(a.canTap=!1,a.isSwiping=!1,a.isPanning=!1,a.isZooming=!0,n.fancybox.stop(a.$content),a.centerPointStartX=.5*(a.startPoints[0].x+a.startPoints[1].x)-n(t).scrollLeft(),a.centerPointStartY=.5*(a.startPoints[0].y+a.startPoints[1].y)-n(t).scrollTop(),a.percentageOfImageAtPinchPointX=(a.centerPointStartX-a.contentStartPos.left)/a.contentStartPos.width,a.percentageOfImageAtPinchPointY=(a.centerPointStartY-a.contentStartPos.top)/a.contentStartPos.height,a.startDistanceBetweenFingers=s(a.startPoints[0],a.startPoints[1]))))}},l.prototype.onscroll=function(t){this.isScrolling=!0,e.removeEventListener("scroll",this.onscroll,!0)},l.prototype.ontouchmove=function(t){var e=this;void 0===t.originalEvent.buttons||0!==t.originalEvent.buttons?e.isScrolling?e.canTap=!1:(e.newPoints=i(t),(e.opts||e.canPan)&&e.newPoints.length&&e.newPoints.length&&(e.isSwiping&&!0===e.isSwiping||t.preventDefault(),e.distanceX=s(e.newPoints[0],e.startPoints[0],"x"),e.distanceY=s(e.newPoints[0],e.startPoints[0],"y"),e.distance=s(e.newPoints[0],e.startPoints[0]),e.distance>0&&(e.isSwiping?e.onSwipe(t):e.isPanning?e.onPan():e.isZooming&&e.onZoom()))):e.ontouchend(t)},l.prototype.onSwipe=function(e){var i,s=this,r=s.instance,c=s.isSwiping,l=s.sliderStartPos.left||0;if(!0!==c)"x"==c&&(s.distanceX>0&&(s.instance.group.length<2||0===s.instance.current.index&&!s.instance.current.opts.loop)?l+=Math.pow(s.distanceX,.8):s.distanceX<0&&(s.instance.group.length<2||s.instance.current.index===s.instance.group.length-1&&!s.instance.current.opts.loop)?l-=Math.pow(-s.distanceX,.8):l+=s.distanceX),s.sliderLastPos={top:"x"==c?0:s.sliderStartPos.top+s.distanceY,left:l},s.requestId&&(a(s.requestId),s.requestId=null),s.requestId=o((function(){s.sliderLastPos&&(n.each(s.instance.slides,(function(t,e){var o=e.pos-s.instance.currPos;n.fancybox.setTranslate(e.$slide,{top:s.sliderLastPos.top,left:s.sliderLastPos.left+o*s.canvasWidth+o*e.opts.gutter})})),s.$container.addClass("fancybox-is-sliding"))}));else if(Math.abs(s.distance)>10){if(s.canTap=!1,r.group.length<2&&s.opts.vertical?s.isSwiping="y":r.isDragging||!1===s.opts.vertical||"auto"===s.opts.vertical&&n(t).width()>800?s.isSwiping="x":(i=Math.abs(180*Math.atan2(s.distanceY,s.distanceX)/Math.PI),s.isSwiping=i>45&&i<135?"y":"x"),"y"===s.isSwiping&&n.fancybox.isMobile&&s.isScrollable)return void(s.isScrolling=!0);r.isDragging=s.isSwiping,s.startPoints=s.newPoints,n.each(r.slides,(function(t,e){var o,a;n.fancybox.stop(e.$slide),o=n.fancybox.getTranslate(e.$slide),a=n.fancybox.getTranslate(r.$refs.stage),e.$slide.css({transform:"",opacity:"","transition-duration":""}).removeClass("fancybox-animated").removeClass((function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")})),e.pos===r.current.pos&&(s.sliderStartPos.top=o.top-a.top,s.sliderStartPos.left=o.left-a.left),n.fancybox.setTranslate(e.$slide,{top:o.top-a.top,left:o.left-a.left})})),r.SlideShow&&r.SlideShow.isActive&&r.SlideShow.stop()}},l.prototype.onPan=function(){var t=this;s(t.newPoints[0],t.realPoints[0])<(n.fancybox.isMobile?10:5)?t.startPoints=t.newPoints:(t.canTap=!1,t.contentLastPos=t.limitMovement(),t.requestId&&a(t.requestId),t.requestId=o((function(){n.fancybox.setTranslate(t.$content,t.contentLastPos)})))},l.prototype.limitMovement=function(){var t,e,n,o,a,i,s=this,r=s.canvasWidth,c=s.canvasHeight,l=s.distanceX,d=s.distanceY,u=s.contentStartPos,p=u.left,f=u.top,h=u.width,g=u.height;return a=h>r?p+l:p,i=f+d,t=Math.max(0,.5*r-.5*h),e=Math.max(0,.5*c-.5*g),n=Math.min(r-h,.5*r-.5*h),o=Math.min(c-g,.5*c-.5*g),l>0&&a>t&&(a=t-1+Math.pow(-t+p+l,.8)||0),l<0&&a0&&i>e&&(i=e-1+Math.pow(-e+f+d,.8)||0),d<0&&ia?(t=t>0?0:t)i?(e=e>0?0:e)1&&(o.dMs>130&&s>10||s>50);o.sliderLastPos=null,"y"==t&&!e&&Math.abs(o.distanceY)>50?(n.fancybox.animate(o.instance.current.$slide,{top:o.sliderStartPos.top+o.distanceY+150*o.velocityY,opacity:0},200),a=o.instance.close(!0,250)):r&&o.distanceX>0?a=o.instance.previous(300):r&&o.distanceX<0&&(a=o.instance.next(300)),!1!==a||"x"!=t&&"y"!=t||o.instance.centerSlide(200),o.$container.removeClass("fancybox-is-sliding")},l.prototype.endPanning=function(){var t,e,o,a=this;a.contentLastPos&&(!1===a.opts.momentum||a.dMs>350?(t=a.contentLastPos.left,e=a.contentLastPos.top):(t=a.contentLastPos.left+500*a.velocityX,e=a.contentLastPos.top+500*a.velocityY),(o=a.limitPosition(t,e,a.contentStartPos.width,a.contentStartPos.height)).width=a.contentStartPos.width,o.height=a.contentStartPos.height,n.fancybox.animate(a.$content,o,366))},l.prototype.endZooming=function(){var t,e,o,a,i=this,s=i.instance.current,r=i.newWidth,c=i.newHeight;i.contentLastPos&&(t=i.contentLastPos.left,a={top:e=i.contentLastPos.top,left:t,width:r,height:c,scaleX:1,scaleY:1},n.fancybox.setTranslate(i.$content,a),rs.width||c>s.height?i.instance.scaleToActual(i.centerPointStartX,i.centerPointStartY,150):(o=i.limitPosition(t,e,r,c),n.fancybox.animate(i.$content,o,150)))},l.prototype.onTap=function(e){var o,a=this,s=n(e.target),r=a.instance,c=r.current,l=e&&i(e)||a.startPoints,d=l[0]?l[0].x-n(t).scrollLeft()-a.stagePos.left:0,u=l[0]?l[0].y-n(t).scrollTop()-a.stagePos.top:0,p=function(t){var o=c.opts[t];if(n.isFunction(o)&&(o=o.apply(r,[c,e])),o)switch(o){case"close":r.close(a.startEvent);break;case"toggleControls":r.toggleControls();break;case"next":r.next();break;case"nextOrClose":r.group.length>1?r.next():r.close(a.startEvent);break;case"zoom":"image"==c.type&&(c.isLoaded||c.$ghost)&&(r.canPan()?r.scaleToFit():r.isScaledDown()?r.scaleToActual(d,u):r.group.length<2&&r.close(a.startEvent))}};if((!e.originalEvent||2!=e.originalEvent.button)&&(s.is("img")||!(d>s[0].clientWidth+s.offset().left))){if(s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))o="Outside";else if(s.is(".fancybox-slide"))o="Slide";else{if(!r.current.$content||!r.current.$content.find(s).addBack().filter(s).length)return;o="Content"}if(a.tapped){if(clearTimeout(a.tapped),a.tapped=null,Math.abs(d-a.tapX)>50||Math.abs(u-a.tapY)>50)return this;p("dblclick"+o)}else a.tapX=d,a.tapY=u,c.opts["dblclick"+o]&&c.opts["dblclick"+o]!==c.opts["click"+o]?a.tapped=setTimeout((function(){a.tapped=null,r.isAnimating||p("click"+o)}),500):p("click"+o);return this}},n(e).on("onActivate.fb",(function(t,e){e&&!e.Guestures&&(e.Guestures=new l(e))})).on("beforeClose.fb",(function(t,e){e&&e.Guestures&&e.Guestures.destroy()}))}(window,document,jQuery),function(t,e){e.extend(!0,e.fancybox.defaults,{btnTpl:{slideShow:''},slideShow:{autoStart:!1,speed:3e3,progress:!0}});var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{timer:null,isActive:!1,$button:null,init:function(){var t=this,n=t.instance,o=n.group[n.currIndex].opts.slideShow;t.$button=n.$refs.toolbar.find("[data-fancybox-play]").on("click",(function(){t.toggle()})),n.group.length<2||!o?t.$button.hide():o.progress&&(t.$progress=e('
').appendTo(n.$refs.inner))},set:function(t){var n=this,o=n.instance,a=o.current;a&&(!0===t||a.opts.loop||o.currIndex'},fullScreen:{autoStart:!1}}),e(t).on(n.fullscreenchange,(function(){var t=o.isFullscreen(),n=e.fancybox.getInstance();n&&(n.current&&"image"===n.current.type&&n.isAnimating&&(n.isAnimating=!1,n.update(!0,!0,0),n.isComplete||n.complete()),n.trigger("onFullscreenChange",t),n.$refs.container.toggleClass("fancybox-is-fullscreen",t),n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter",!t).toggleClass("fancybox-button--fsexit",t))}))}e(t).on({"onInit.fb":function(t,e){n?e&&e.group[e.currIndex].opts.fullScreen?(e.$refs.container.on("click.fb-fullscreen","[data-fancybox-fullscreen]",(function(t){t.stopPropagation(),t.preventDefault(),o.toggle()})),e.opts.fullScreen&&!0===e.opts.fullScreen.autoStart&&o.request(),e.FullScreen=o):e&&e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide():e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove()},"afterKeydown.fb":function(t,e,n,o,a){e&&e.FullScreen&&70===a&&(o.preventDefault(),e.FullScreen.toggle())},"beforeClose.fb":function(t,e){e&&e.FullScreen&&e.$refs.container.hasClass("fancybox-is-fullscreen")&&o.exit()}})}(document,jQuery),function(t,e){var n="fancybox-thumbs",o=n+"-active";e.fancybox.defaults=e.extend(!0,{btnTpl:{thumbs:''},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"}},e.fancybox.defaults);var a=function(t){this.init(t)};e.extend(a.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,isActive:!1,init:function(t){var e=this,n=t.group,o=0;e.instance=t,e.opts=n[t.currIndex].opts.thumbs,t.Thumbs=e,e.$button=t.$refs.toolbar.find("[data-fancybox-thumbs]");for(var a=0,i=n.length;a1));a++);o>1&&e.opts?(e.$button.removeAttr("style").on("click",(function(){e.toggle()})),e.isActive=!0):e.$button.hide()},create:function(){var t,o=this,a=o.instance,i=o.opts.parentEl,s=[];o.$grid||(o.$grid=e('
').appendTo(a.$refs.container.find(i).addBack().filter(i)),o.$grid.on("click","a",(function(){a.jumpTo(e(this).attr("data-index"))}))),o.$list||(o.$list=e('
').appendTo(o.$grid)),e.each(a.group,(function(e,n){(t=n.thumb)||"image"!==n.type||(t=n.src),s.push('")})),o.$list[0].innerHTML=s.join(""),"x"===o.opts.axis&&o.$list.width(parseInt(o.$grid.css("padding-right"),10)+a.group.length*o.$list.children().eq(0).outerWidth(!0))},focus:function(t){var e,n,a=this,i=a.$list,s=a.$grid;a.instance.current&&(n=(e=i.children().removeClass(o).filter('[data-index="'+a.instance.current.index+'"]').addClass(o)).position(),"y"===a.opts.axis&&(n.top<0||n.top>i.height()-e.outerHeight())?i.stop().animate({scrollTop:i.scrollTop()+n.top},t):"x"===a.opts.axis&&(n.lefts.scrollLeft()+(s.width()-e.outerWidth()))&&i.parent().stop().animate({scrollLeft:n.left},t))},update:function(){var t=this;t.instance.$refs.container.toggleClass("fancybox-show-thumbs",this.isVisible),t.isVisible?(t.$grid||t.create(),t.instance.trigger("onThumbsShow"),t.focus(0)):t.$grid&&t.instance.trigger("onThumbsHide"),t.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),e(t).on({"onInit.fb":function(t,e){var n;e&&!e.Thumbs&&(n=new a(e)).isActive&&!0===n.opts.autoStart&&n.show()},"beforeShow.fb":function(t,e,n,o){var a=e&&e.Thumbs;a&&a.isVisible&&a.focus(o?0:250)},"afterKeydown.fb":function(t,e,n,o,a){var i=e&&e.Thumbs;i&&i.isActive&&71===a&&(o.preventDefault(),i.toggle())},"beforeClose.fb":function(t,e){var n=e&&e.Thumbs;n&&n.isVisible&&!1!==n.opts.hideOnClose&&n.$grid.hide()}})}(document,jQuery),function(t,e){e.extend(!0,e.fancybox.defaults,{btnTpl:{share:''},share:{url:function(t,e){return!t.currentHash&&"inline"!==e.type&&"html"!==e.type&&(e.origSrc||e.src)||window.location},tpl:''}}),e(t).on("click","[data-fancybox-share]",(function(){var t,n,o,a,i=e.fancybox.getInstance(),s=i.current||null;s&&("function"===e.type(s.opts.share.url)&&(t=s.opts.share.url.apply(s,[i,s])),n=s.opts.share.tpl.replace(/\{\{media\}\}/g,"image"===s.type?encodeURIComponent(s.src):"").replace(/\{\{url\}\}/g,encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g,(o=t,a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="},String(o).replace(/[&<>"'`=\/]/g,(function(t){return a[t]})))).replace(/\{\{descr\}\}/g,i.$caption?encodeURIComponent(i.$caption.text()):""),e.fancybox.open({src:i.translate(i,n),type:"html",opts:{touch:!1,animationEffect:!1,afterLoad:function(t,e){i.$refs.container.one("beforeClose.fb",(function(){t.close(null,0)})),e.$content.find(".fancybox-share__button").click((function(){return window.open(this.href,"Share","width=550, height=450"),!1}))},mobile:{autoFocus:!1}}}))}))}(document,jQuery),function(t,e,n){function o(){var e=t.location.hash.substr(1),n=e.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])&&parseInt(n.pop(-1),10)||1;return{hash:e,index:o<1?1:o,gallery:n.join("-")}}function a(t){""!==t.gallery&&n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1).focus().trigger("click.fb-start")}function i(t){var e,n;return!!t&&(""!==(n=(e=t.current?t.current.opts:t.opts).hash||(e.$orig?e.$orig.data("fancybox")||e.$orig.data("fancybox-trigger"):""))&&n)}n.escapeSelector||(n.escapeSelector=function(t){return(t+"").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,(function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t}))}),n((function(){!1!==n.fancybox.defaults.hash&&(n(e).on({"onInit.fb":function(t,e){var n,a;!1!==e.group[e.currIndex].opts.hash&&(n=o(),(a=i(e))&&n.gallery&&a==n.gallery&&(e.currIndex=n.index-1))},"beforeShow.fb":function(n,o,a,s){var r;a&&!1!==a.opts.hash&&(r=i(o))&&(o.currentHash=r+(o.group.length>1?"-"+(a.index+1):""),t.location.hash!=="#"+o.currentHash&&(s&&!o.origHash&&(o.origHash=t.location.hash),o.hashTimer&&clearTimeout(o.hashTimer),o.hashTimer=setTimeout((function(){"replaceState"in t.history?(t.history[s?"pushState":"replaceState"]({},e.title,t.location.pathname+t.location.search+"#"+o.currentHash),s&&(o.hasCreatedHistory=!0)):t.location.hash=o.currentHash,o.hashTimer=null}),300)))},"beforeClose.fb":function(n,o,a){a&&!1!==a.opts.hash&&(clearTimeout(o.hashTimer),o.currentHash&&o.hasCreatedHistory?t.history.back():o.currentHash&&("replaceState"in t.history?t.history.replaceState({},e.title,t.location.pathname+t.location.search+(o.origHash||"")):t.location.hash=o.origHash),o.currentHash=null)}}),n(t).on("hashchange.fb",(function(){var t=o(),e=null;n.each(n(".fancybox-container").get().reverse(),(function(t,o){var a=n(o).data("FancyBox");if(a&&a.currentHash)return e=a,!1})),e?e.currentHash===t.gallery+"-"+t.index||1===t.index&&e.currentHash==t.gallery||(e.currentHash=null,e.close()):""!==t.gallery&&a(t)})),setTimeout((function(){n.fancybox.getInstance()||a(o())}),50))}))}(window,document,jQuery),function(t,e){var n=(new Date).getTime();e(t).on({"onInit.fb":function(t,e,o){e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll",(function(t){var o=e.current,a=(new Date).getTime();e.group.length<2||!1===o.opts.wheel||"auto"===o.opts.wheel&&"image"!==o.type||(t.preventDefault(),t.stopPropagation(),o.$slide.hasClass("fancybox-animated")||(t=t.originalEvent||t,a-n<250||(n=a,e[(-t.deltaY||-t.deltaX||t.wheelDelta||-t.detail)<0?"next":"previous"]())))}))}})}(document,jQuery)}}]); //# sourceMappingURL=155.js.map \ No newline at end of file diff --git a/js/155.js.map b/js/155.js.map index 9813eece..b93be91a 100644 --- a/js/155.js.map +++ b/js/155.js.map @@ -1 +1 @@ -{"version":3,"file":"155.js","mappings":"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","sources":["webpack://sakurairo-scripts/./node_modules/@fancyapps/fancybox/dist/jquery.fancybox.js"],"sourcesContent":["// ==================================================\n// fancyBox v3.5.7\n//\n// Licensed GPLv3 for open source use\n// or fancyBox Commercial License for commercial use\n//\n// http://fancyapps.com/fancybox/\n// Copyright 2019 fancyApps\n//\n// ==================================================\n(function (window, document, $, undefined) {\r\n \"use strict\";\r\n\r\n window.console = window.console || {\r\n info: function (stuff) {}\r\n };\r\n\r\n // If there's no jQuery, fancyBox can't work\r\n // =========================================\r\n\r\n if (!$) {\r\n return;\r\n }\r\n\r\n // Check if fancyBox is already initialized\r\n // ========================================\r\n\r\n if ($.fn.fancybox) {\r\n console.info(\"fancyBox already initialized\");\r\n\r\n return;\r\n }\r\n\r\n // Private default settings\r\n // ========================\r\n\r\n var defaults = {\r\n // Close existing modals\r\n // Set this to false if you do not need to stack multiple instances\r\n closeExisting: false,\r\n\r\n // Enable infinite gallery navigation\r\n loop: false,\r\n\r\n // Horizontal space between slides\r\n gutter: 50,\r\n\r\n // Enable keyboard navigation\r\n keyboard: true,\r\n\r\n // Should allow caption to overlap the content\r\n preventCaptionOverlap: true,\r\n\r\n // Should display navigation arrows at the screen edges\r\n arrows: true,\r\n\r\n // Should display counter at the top left corner\r\n infobar: true,\r\n\r\n // Should display close button (using `btnTpl.smallBtn` template) over the content\r\n // Can be true, false, \"auto\"\r\n // If \"auto\" - will be automatically enabled for \"html\", \"inline\" or \"ajax\" items\r\n smallBtn: \"auto\",\r\n\r\n // Should display toolbar (buttons at the top)\r\n // Can be true, false, \"auto\"\r\n // If \"auto\" - will be automatically hidden if \"smallBtn\" is enabled\r\n toolbar: \"auto\",\r\n\r\n // What buttons should appear in the top right corner.\r\n // Buttons will be created using templates from `btnTpl` option\r\n // and they will be placed into toolbar (class=\"fancybox-toolbar\"` element)\r\n buttons: [\r\n \"zoom\",\r\n //\"share\",\r\n \"slideShow\",\r\n //\"fullScreen\",\r\n //\"download\",\r\n \"thumbs\",\r\n \"close\"\r\n ],\r\n\r\n // Detect \"idle\" time in seconds\r\n idleTime: 3,\r\n\r\n // Disable right-click and use simple image protection for images\r\n protect: false,\r\n\r\n // Shortcut to make content \"modal\" - disable keyboard navigtion, hide buttons, etc\r\n modal: false,\r\n\r\n image: {\r\n // Wait for images to load before displaying\r\n // true - wait for image to load and then display;\r\n // false - display thumbnail and load the full-sized image over top,\r\n // requires predefined image dimensions (`data-width` and `data-height` attributes)\r\n preload: false\r\n },\r\n\r\n ajax: {\r\n // Object containing settings for ajax request\r\n settings: {\r\n // This helps to indicate that request comes from the modal\r\n // Feel free to change naming\r\n data: {\r\n fancybox: true\r\n }\r\n }\r\n },\r\n\r\n iframe: {\r\n // Iframe template\r\n tpl: '',\r\n\r\n // Preload iframe before displaying it\r\n // This allows to calculate iframe content width and height\r\n // (note: Due to \"Same Origin Policy\", you can't get cross domain data).\r\n preload: true,\r\n\r\n // Custom CSS styling for iframe wrapping element\r\n // You can use this to set custom iframe dimensions\r\n css: {},\r\n\r\n // Iframe tag attributes\r\n attr: {\r\n scrolling: \"auto\"\r\n }\r\n },\r\n\r\n // For HTML5 video only\r\n video: {\r\n tpl: '\",\r\n format: \"\", // custom video format\r\n autoStart: true\r\n },\r\n\r\n // Default content type if cannot be detected automatically\r\n defaultType: \"image\",\r\n\r\n // Open/close animation type\r\n // Possible values:\r\n // false - disable\r\n // \"zoom\" - zoom images from/to thumbnail\r\n // \"fade\"\r\n // \"zoom-in-out\"\r\n //\r\n animationEffect: \"zoom\",\r\n\r\n // Duration in ms for open/close animation\r\n animationDuration: 366,\r\n\r\n // Should image change opacity while zooming\r\n // If opacity is \"auto\", then opacity will be changed if image and thumbnail have different aspect ratios\r\n zoomOpacity: \"auto\",\r\n\r\n // Transition effect between slides\r\n //\r\n // Possible values:\r\n // false - disable\r\n // \"fade'\r\n // \"slide'\r\n // \"circular'\r\n // \"tube'\r\n // \"zoom-in-out'\r\n // \"rotate'\r\n //\r\n transitionEffect: \"fade\",\r\n\r\n // Duration in ms for transition animation\r\n transitionDuration: 366,\r\n\r\n // Custom CSS class for slide element\r\n slideClass: \"\",\r\n\r\n // Custom CSS class for layout\r\n baseClass: \"\",\r\n\r\n // Base template for layout\r\n baseTpl: '
' +\r\n '
' +\r\n '
' +\r\n '
 / 
' +\r\n '
{{buttons}}
' +\r\n '
{{arrows}}
' +\r\n '
' +\r\n '
' +\r\n \"
\" +\r\n \"
\",\r\n\r\n // Loading indicator template\r\n spinnerTpl: '
',\r\n\r\n // Error message template\r\n errorTpl: '

{{ERROR}}

',\r\n\r\n btnTpl: {\r\n download: '' +\r\n '' +\r\n \"\",\r\n\r\n zoom: '\",\r\n\r\n close: '\",\r\n\r\n // Arrows\r\n arrowLeft: '\",\r\n\r\n arrowRight: '\",\r\n\r\n // This small close button will be appended to your html/inline/ajax content by default,\r\n // if \"smallBtn\" option is not set to false\r\n smallBtn: '\"\r\n },\r\n\r\n // Container is injected into this element\r\n parentEl: \"body\",\r\n\r\n // Hide browser vertical scrollbars; use at your own risk\r\n hideScrollbar: true,\r\n\r\n // Focus handling\r\n // ==============\r\n\r\n // Try to focus on the first focusable element after opening\r\n autoFocus: true,\r\n\r\n // Put focus back to active element after closing\r\n backFocus: true,\r\n\r\n // Do not let user to focus on element outside modal content\r\n trapFocus: true,\r\n\r\n // Module specific options\r\n // =======================\r\n\r\n fullScreen: {\r\n autoStart: false\r\n },\r\n\r\n // Set `touch: false` to disable panning/swiping\r\n touch: {\r\n vertical: true, // Allow to drag content vertically\r\n momentum: true // Continue movement after releasing mouse/touch when panning\r\n },\r\n\r\n // Hash value when initializing manually,\r\n // set `false` to disable hash change\r\n hash: null,\r\n\r\n // Customize or add new media types\r\n // Example:\r\n /*\r\n media : {\r\n youtube : {\r\n params : {\r\n autoplay : 0\r\n }\r\n }\r\n }\r\n */\r\n media: {},\r\n\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000\r\n },\r\n\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n },\r\n\r\n // Use mousewheel to navigate gallery\r\n // If 'auto' - enabled for images only\r\n wheel: \"auto\",\r\n\r\n // Callbacks\r\n //==========\r\n\r\n // See Documentation/API/Events for more information\r\n // Example:\r\n /*\r\n afterShow: function( instance, current ) {\r\n console.info( 'Clicked element:' );\r\n console.info( current.opts.$orig );\r\n }\r\n */\r\n\r\n onInit: $.noop, // When instance has been initialized\r\n\r\n beforeLoad: $.noop, // Before the content of a slide is being loaded\r\n afterLoad: $.noop, // When the content of a slide is done loading\r\n\r\n beforeShow: $.noop, // Before open animation starts\r\n afterShow: $.noop, // When content is done loading and animating\r\n\r\n beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.\r\n afterClose: $.noop, // After instance has been closed\r\n\r\n onActivate: $.noop, // When instance is brought to front\r\n onDeactivate: $.noop, // When other instance has been activated\r\n\r\n // Interaction\r\n // ===========\r\n\r\n // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,\r\n // each option can be string or method that returns value.\r\n //\r\n // Possible values:\r\n // \"close\" - close instance\r\n // \"next\" - move to next gallery item\r\n // \"nextOrClose\" - move to next gallery item or close if gallery has only one item\r\n // \"toggleControls\" - show/hide controls\r\n // \"zoom\" - zoom image (if loaded)\r\n // false - do nothing\r\n\r\n // Clicked on the content\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n\r\n // Clicked on the slide\r\n clickSlide: \"close\",\r\n\r\n // Clicked on the background (backdrop) element;\r\n // if you have not changed the layout, then most likely you need to use `clickSlide` option\r\n clickOutside: \"close\",\r\n\r\n // Same as previous two, but for double click\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false,\r\n\r\n // Custom options when mobile device is detected\r\n // =============================================\r\n\r\n mobile: {\r\n preventCaptionOverlap: false,\r\n idleTime: false,\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : false;\r\n },\r\n clickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : \"close\";\r\n },\r\n dblclickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n dblclickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n }\r\n },\r\n\r\n // Internationalization\r\n // ====================\r\n\r\n lang: \"en\",\r\n i18n: {\r\n en: {\r\n CLOSE: \"Close\",\r\n NEXT: \"Next\",\r\n PREV: \"Previous\",\r\n ERROR: \"The requested content cannot be loaded.
Please try again later.\",\r\n PLAY_START: \"Start slideshow\",\r\n PLAY_STOP: \"Pause slideshow\",\r\n FULL_SCREEN: \"Full screen\",\r\n THUMBS: \"Thumbnails\",\r\n DOWNLOAD: \"Download\",\r\n SHARE: \"Share\",\r\n ZOOM: \"Zoom\"\r\n },\r\n de: {\r\n CLOSE: \"Schließen\",\r\n NEXT: \"Weiter\",\r\n PREV: \"Zurück\",\r\n ERROR: \"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.\",\r\n PLAY_START: \"Diaschau starten\",\r\n PLAY_STOP: \"Diaschau beenden\",\r\n FULL_SCREEN: \"Vollbild\",\r\n THUMBS: \"Vorschaubilder\",\r\n DOWNLOAD: \"Herunterladen\",\r\n SHARE: \"Teilen\",\r\n ZOOM: \"Vergrößern\"\r\n }\r\n }\r\n };\r\n\r\n // Few useful variables and methods\r\n // ================================\r\n\r\n var $W = $(window);\r\n var $D = $(document);\r\n\r\n var called = 0;\r\n\r\n // Check if an object is a jQuery object and not a native JavaScript object\r\n // ========================================================================\r\n var isQuery = function (obj) {\r\n return obj && obj.hasOwnProperty && obj instanceof $;\r\n };\r\n\r\n // Handle multiple browsers for \"requestAnimationFrame\" and \"cancelAnimationFrame\"\r\n // ===============================================================================\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n // Detect the supported transition-end event property name\r\n // =======================================================\r\n var transitionEnd = (function () {\r\n var el = document.createElement(\"fakeelement\"),\r\n t;\r\n\r\n var transitions = {\r\n transition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n WebkitTransition: \"webkitTransitionEnd\"\r\n };\r\n\r\n for (t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n return transitions[t];\r\n }\r\n }\r\n\r\n return \"transitionend\";\r\n })();\r\n\r\n // Force redraw on an element.\r\n // This helps in cases where the browser doesn't redraw an updated element properly\r\n // ================================================================================\r\n var forceRedraw = function ($el) {\r\n return $el && $el.length && $el[0].offsetHeight;\r\n };\r\n\r\n // Exclude array (`buttons`) options from deep merging\r\n // ===================================================\r\n var mergeOpts = function (opts1, opts2) {\r\n var rez = $.extend(true, {}, opts1, opts2);\r\n\r\n $.each(opts2, function (key, value) {\r\n if ($.isArray(value)) {\r\n rez[key] = value;\r\n }\r\n });\r\n\r\n return rez;\r\n };\r\n\r\n // How much of an element is visible in viewport\r\n // =============================================\r\n\r\n var inViewport = function (elem) {\r\n var elemCenter, rez;\r\n\r\n if (!elem || elem.ownerDocument !== document) {\r\n return false;\r\n }\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"none\");\r\n\r\n elemCenter = {\r\n x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\r\n y: elem.getBoundingClientRect().top + elem.offsetHeight / 2\r\n };\r\n\r\n rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"\");\r\n\r\n return rez;\r\n };\r\n\r\n // Class definition\r\n // ================\r\n\r\n var FancyBox = function (content, opts, index) {\r\n var self = this;\r\n\r\n self.opts = mergeOpts({\r\n index: index\r\n }, $.fancybox.defaults);\r\n\r\n if ($.isPlainObject(opts)) {\r\n self.opts = mergeOpts(self.opts, opts);\r\n }\r\n\r\n if ($.fancybox.isMobile) {\r\n self.opts = mergeOpts(self.opts, self.opts.mobile);\r\n }\r\n\r\n self.id = self.opts.id || ++called;\r\n\r\n self.currIndex = parseInt(self.opts.index, 10) || 0;\r\n self.prevIndex = null;\r\n\r\n self.prevPos = null;\r\n self.currPos = 0;\r\n\r\n self.firstRun = true;\r\n\r\n // All group items\r\n self.group = [];\r\n\r\n // Existing slides (for current, next and previous gallery items)\r\n self.slides = {};\r\n\r\n // Create group elements\r\n self.addContent(content);\r\n\r\n if (!self.group.length) {\r\n return;\r\n }\r\n\r\n self.init();\r\n };\r\n\r\n $.extend(FancyBox.prototype, {\r\n // Create DOM structure\r\n // ====================\r\n\r\n init: function () {\r\n var self = this,\r\n firstItem = self.group[self.currIndex],\r\n firstItemOpts = firstItem.opts,\r\n $container,\r\n buttonStr;\r\n\r\n if (firstItemOpts.closeExisting) {\r\n $.fancybox.close(true);\r\n }\r\n\r\n // Hide scrollbars\r\n // ===============\r\n\r\n $(\"body\").addClass(\"fancybox-active\");\r\n\r\n if (\r\n !$.fancybox.getInstance() &&\r\n firstItemOpts.hideScrollbar !== false &&\r\n !$.fancybox.isMobile &&\r\n document.body.scrollHeight > window.innerHeight\r\n ) {\r\n $(\"head\").append(\r\n '\"\r\n );\r\n\r\n $(\"body\").addClass(\"compensate-for-scrollbar\");\r\n }\r\n\r\n // Build html markup and set references\r\n // ====================================\r\n\r\n // Build html code for buttons and insert into main template\r\n buttonStr = \"\";\r\n\r\n $.each(firstItemOpts.buttons, function (index, value) {\r\n buttonStr += firstItemOpts.btnTpl[value] || \"\";\r\n });\r\n\r\n // Create markup from base template, it will be initially hidden to\r\n // avoid unnecessary work like painting while initializing is not complete\r\n $container = $(\r\n self.translate(\r\n self,\r\n firstItemOpts.baseTpl\r\n .replace(\"{{buttons}}\", buttonStr)\r\n .replace(\"{{arrows}}\", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)\r\n )\r\n )\r\n .attr(\"id\", \"fancybox-container-\" + self.id)\r\n .addClass(firstItemOpts.baseClass)\r\n .data(\"FancyBox\", self)\r\n .appendTo(firstItemOpts.parentEl);\r\n\r\n // Create object holding references to jQuery wrapped nodes\r\n self.$refs = {\r\n container: $container\r\n };\r\n\r\n [\"bg\", \"inner\", \"infobar\", \"toolbar\", \"stage\", \"caption\", \"navigation\"].forEach(function (item) {\r\n self.$refs[item] = $container.find(\".fancybox-\" + item);\r\n });\r\n\r\n self.trigger(\"onInit\");\r\n\r\n // Enable events, deactive previous instances\r\n self.activate();\r\n\r\n // Build slides, load and reveal content\r\n self.jumpTo(self.currIndex);\r\n },\r\n\r\n // Simple i18n support - replaces object keys found in template\r\n // with corresponding values\r\n // ============================================================\r\n\r\n translate: function (obj, str) {\r\n var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en;\r\n\r\n return str.replace(/\\{\\{(\\w+)\\}\\}/g, function (match, n) {\r\n return arr[n] === undefined ? match : arr[n];\r\n });\r\n },\r\n\r\n // Populate current group with fresh content\r\n // Check if each object has valid type and content\r\n // ===============================================\r\n\r\n addContent: function (content) {\r\n var self = this,\r\n items = $.makeArray(content),\r\n thumbs;\r\n\r\n $.each(items, function (i, item) {\r\n var obj = {},\r\n opts = {},\r\n $item,\r\n type,\r\n found,\r\n src,\r\n srcParts;\r\n\r\n // Step 1 - Make sure we have an object\r\n // ====================================\r\n\r\n if ($.isPlainObject(item)) {\r\n // We probably have manual usage here, something like\r\n // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\r\n\r\n obj = item;\r\n opts = item.opts || item;\r\n } else if ($.type(item) === \"object\" && $(item).length) {\r\n // Here we probably have jQuery collection returned by some selector\r\n $item = $(item);\r\n\r\n // Support attributes like `data-options='{\"touch\" : false}'` and `data-touch='false'`\r\n opts = $item.data() || {};\r\n opts = $.extend(true, {}, opts, opts.options);\r\n\r\n // Here we store clicked element\r\n opts.$orig = $item;\r\n\r\n obj.src = self.opts.src || opts.src || $item.attr(\"href\");\r\n\r\n // Assume that simple syntax is used, for example:\r\n // `$.fancybox.open( $(\"#test\"), {} );`\r\n if (!obj.type && !obj.src) {\r\n obj.type = \"inline\";\r\n obj.src = item;\r\n }\r\n } else {\r\n // Assume we have a simple html code, for example:\r\n // $.fancybox.open( '

Hi!

' );\r\n obj = {\r\n type: \"html\",\r\n src: item + \"\"\r\n };\r\n }\r\n\r\n // Each gallery object has full collection of options\r\n obj.opts = $.extend(true, {}, self.opts, opts);\r\n\r\n // Do not merge buttons array\r\n if ($.isArray(opts.buttons)) {\r\n obj.opts.buttons = opts.buttons;\r\n }\r\n\r\n if ($.fancybox.isMobile && obj.opts.mobile) {\r\n obj.opts = mergeOpts(obj.opts, obj.opts.mobile);\r\n }\r\n\r\n // Step 2 - Make sure we have content type, if not - try to guess\r\n // ==============================================================\r\n\r\n type = obj.type || obj.opts.type;\r\n src = obj.src || \"\";\r\n\r\n if (!type && src) {\r\n if ((found = src.match(/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i))) {\r\n type = \"video\";\r\n\r\n if (!obj.opts.video.format) {\r\n obj.opts.video.format = \"video/\" + (found[1] === \"ogv\" ? \"ogg\" : found[1]);\r\n }\r\n } else if (src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i)) {\r\n type = \"image\";\r\n } else if (src.match(/\\.(pdf)((\\?|#).*)?$/i)) {\r\n type = \"iframe\";\r\n obj = $.extend(true, obj, {\r\n contentType: \"pdf\",\r\n opts: {\r\n iframe: {\r\n preload: false\r\n }\r\n }\r\n });\r\n } else if (src.charAt(0) === \"#\") {\r\n type = \"inline\";\r\n }\r\n }\r\n\r\n if (type) {\r\n obj.type = type;\r\n } else {\r\n self.trigger(\"objectNeedsType\", obj);\r\n }\r\n\r\n if (!obj.contentType) {\r\n obj.contentType = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1 ? \"html\" : obj.type;\r\n }\r\n\r\n // Step 3 - Some adjustments\r\n // =========================\r\n\r\n obj.index = self.group.length;\r\n\r\n if (obj.opts.smallBtn == \"auto\") {\r\n obj.opts.smallBtn = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1;\r\n }\r\n\r\n if (obj.opts.toolbar === \"auto\") {\r\n obj.opts.toolbar = !obj.opts.smallBtn;\r\n }\r\n\r\n // Find thumbnail image, check if exists and if is in the viewport\r\n obj.$thumb = obj.opts.$thumb || null;\r\n\r\n if (obj.opts.$trigger && obj.index === self.opts.index) {\r\n obj.$thumb = obj.opts.$trigger.find(\"img:first\");\r\n\r\n if (obj.$thumb.length) {\r\n obj.opts.$orig = obj.opts.$trigger;\r\n }\r\n }\r\n\r\n if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {\r\n obj.$thumb = obj.opts.$orig.find(\"img:first\");\r\n }\r\n\r\n if (obj.$thumb && !obj.$thumb.length) {\r\n obj.$thumb = null;\r\n }\r\n\r\n obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);\r\n\r\n // \"caption\" is a \"special\" option, it can be used to customize caption per gallery item\r\n if ($.type(obj.opts.caption) === \"function\") {\r\n obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n if ($.type(self.opts.caption) === \"function\") {\r\n obj.opts.caption = self.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n // Make sure we have caption as a string or jQuery object\r\n if (!(obj.opts.caption instanceof $)) {\r\n obj.opts.caption = obj.opts.caption === undefined ? \"\" : obj.opts.caption + \"\";\r\n }\r\n\r\n // Check if url contains \"filter\" used to filter the content\r\n // Example: \"ajax.html #something\"\r\n if (obj.type === \"ajax\") {\r\n srcParts = src.split(/\\s+/, 2);\r\n\r\n if (srcParts.length > 1) {\r\n obj.src = srcParts.shift();\r\n\r\n obj.opts.filter = srcParts.shift();\r\n }\r\n }\r\n\r\n // Hide all buttons and disable interactivity for modal items\r\n if (obj.opts.modal) {\r\n obj.opts = $.extend(true, obj.opts, {\r\n trapFocus: true,\r\n // Remove buttons\r\n infobar: 0,\r\n toolbar: 0,\r\n\r\n smallBtn: 0,\r\n\r\n // Disable keyboard navigation\r\n keyboard: 0,\r\n\r\n // Disable some modules\r\n slideShow: 0,\r\n fullScreen: 0,\r\n thumbs: 0,\r\n touch: 0,\r\n\r\n // Disable click event handlers\r\n clickContent: false,\r\n clickSlide: false,\r\n clickOutside: false,\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false\r\n });\r\n }\r\n\r\n // Step 4 - Add processed object to group\r\n // ======================================\r\n\r\n self.group.push(obj);\r\n });\r\n\r\n // Update controls if gallery is already opened\r\n if (Object.keys(self.slides).length) {\r\n self.updateControls();\r\n\r\n // Update thumbnails, if needed\r\n thumbs = self.Thumbs;\r\n\r\n if (thumbs && thumbs.isActive) {\r\n thumbs.create();\r\n\r\n thumbs.focus();\r\n }\r\n }\r\n },\r\n\r\n // Attach an event handler functions for:\r\n // - navigation buttons\r\n // - browser scrolling, resizing;\r\n // - focusing\r\n // - keyboard\r\n // - detecting inactivity\r\n // ======================================\r\n\r\n addEvents: function () {\r\n var self = this;\r\n\r\n self.removeEvents();\r\n\r\n // Make navigation elements clickable\r\n // ==================================\r\n\r\n self.$refs.container\r\n .on(\"click.fb-close\", \"[data-fancybox-close]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n })\r\n .on(\"touchstart.fb-prev click.fb-prev\", \"[data-fancybox-prev]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.previous();\r\n })\r\n .on(\"touchstart.fb-next click.fb-next\", \"[data-fancybox-next]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.next();\r\n })\r\n .on(\"click.fb\", \"[data-fancybox-zoom]\", function (e) {\r\n // Click handler for zoom button\r\n self[self.isScaledDown() ? \"scaleToActual\" : \"scaleToFit\"]();\r\n });\r\n\r\n // Handle page scrolling and browser resizing\r\n // ==========================================\r\n\r\n $W.on(\"orientationchange.fb resize.fb\", function (e) {\r\n if (e && e.originalEvent && e.originalEvent.type === \"resize\") {\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n self.update(e);\r\n });\r\n } else {\r\n if (self.current && self.current.type === \"iframe\") {\r\n self.$refs.stage.hide();\r\n }\r\n\r\n setTimeout(\r\n function () {\r\n self.$refs.stage.show();\r\n\r\n self.update(e);\r\n },\r\n $.fancybox.isMobile ? 600 : 250\r\n );\r\n }\r\n });\r\n\r\n $D.on(\"keydown.fb\", function (e) {\r\n var instance = $.fancybox ? $.fancybox.getInstance() : null,\r\n current = instance.current,\r\n keycode = e.keyCode || e.which;\r\n\r\n // Trap keyboard focus inside of the modal\r\n // =======================================\r\n\r\n if (keycode == 9) {\r\n if (current.opts.trapFocus) {\r\n self.focus(e);\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Enable keyboard navigation\r\n // ==========================\r\n\r\n if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is(\"input,textarea,video,audio,select\")) {\r\n return;\r\n }\r\n\r\n // Backspace and Esc keys\r\n if (keycode === 8 || keycode === 27) {\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n\r\n return;\r\n }\r\n\r\n // Left arrow and Up arrow\r\n if (keycode === 37 || keycode === 38) {\r\n e.preventDefault();\r\n\r\n self.previous();\r\n\r\n return;\r\n }\r\n\r\n // Righ arrow and Down arrow\r\n if (keycode === 39 || keycode === 40) {\r\n e.preventDefault();\r\n\r\n self.next();\r\n\r\n return;\r\n }\r\n\r\n self.trigger(\"afterKeydown\", e, keycode);\r\n });\r\n\r\n // Hide controls after some inactivity period\r\n if (self.group[self.currIndex].opts.idleTime) {\r\n self.idleSecondsCounter = 0;\r\n\r\n $D.on(\r\n \"mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle\",\r\n function (e) {\r\n self.idleSecondsCounter = 0;\r\n\r\n if (self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n self.isIdle = false;\r\n }\r\n );\r\n\r\n self.idleInterval = window.setInterval(function () {\r\n self.idleSecondsCounter++;\r\n\r\n if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {\r\n self.isIdle = true;\r\n self.idleSecondsCounter = 0;\r\n\r\n self.hideControls();\r\n }\r\n }, 1000);\r\n }\r\n },\r\n\r\n // Remove events added by the core\r\n // ===============================\r\n\r\n removeEvents: function () {\r\n var self = this;\r\n\r\n $W.off(\"orientationchange.fb resize.fb\");\r\n $D.off(\"keydown.fb .fb-idle\");\r\n\r\n this.$refs.container.off(\".fb-close .fb-prev .fb-next\");\r\n\r\n if (self.idleInterval) {\r\n window.clearInterval(self.idleInterval);\r\n\r\n self.idleInterval = null;\r\n }\r\n },\r\n\r\n // Change to previous gallery item\r\n // ===============================\r\n\r\n previous: function (duration) {\r\n return this.jumpTo(this.currPos - 1, duration);\r\n },\r\n\r\n // Change to next gallery item\r\n // ===========================\r\n\r\n next: function (duration) {\r\n return this.jumpTo(this.currPos + 1, duration);\r\n },\r\n\r\n // Switch to selected gallery item\r\n // ===============================\r\n\r\n jumpTo: function (pos, duration) {\r\n var self = this,\r\n groupLen = self.group.length,\r\n firstRun,\r\n isMoved,\r\n loop,\r\n current,\r\n previous,\r\n slidePos,\r\n stagePos,\r\n prop,\r\n diff;\r\n\r\n if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {\r\n return;\r\n }\r\n\r\n // Should loop?\r\n pos = parseInt(pos, 10);\r\n loop = self.current ? self.current.opts.loop : self.opts.loop;\r\n\r\n if (!loop && (pos < 0 || pos >= groupLen)) {\r\n return false;\r\n }\r\n\r\n // Check if opening for the first time; this helps to speed things up\r\n firstRun = self.firstRun = !Object.keys(self.slides).length;\r\n\r\n // Create slides\r\n previous = self.current;\r\n\r\n self.prevIndex = self.currIndex;\r\n self.prevPos = self.currPos;\r\n\r\n current = self.createSlide(pos);\r\n\r\n if (groupLen > 1) {\r\n if (loop || current.index < groupLen - 1) {\r\n self.createSlide(pos + 1);\r\n }\r\n\r\n if (loop || current.index > 0) {\r\n self.createSlide(pos - 1);\r\n }\r\n }\r\n\r\n self.current = current;\r\n self.currIndex = current.index;\r\n self.currPos = current.pos;\r\n\r\n self.trigger(\"beforeShow\", firstRun);\r\n\r\n self.updateControls();\r\n\r\n // Validate duration length\r\n current.forcedDuration = undefined;\r\n\r\n if ($.isNumeric(duration)) {\r\n current.forcedDuration = duration;\r\n } else {\r\n duration = current.opts[firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n }\r\n\r\n duration = parseInt(duration, 10);\r\n\r\n // Check if user has swiped the slides or if still animating\r\n isMoved = self.isMoved(current);\r\n\r\n // Make sure current slide is visible\r\n current.$slide.addClass(\"fancybox-slide--current\");\r\n\r\n // Fresh start - reveal container, current slide and start loading content\r\n if (firstRun) {\r\n if (current.opts.animationEffect && duration) {\r\n self.$refs.container.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n self.$refs.container.addClass(\"fancybox-is-open\").trigger(\"focus\");\r\n\r\n // Attempt to load content into slide\r\n // This will later call `afterLoad` -> `revealContent`\r\n self.loadSlide(current);\r\n\r\n self.preload(\"image\");\r\n\r\n return;\r\n }\r\n\r\n // Get actual slide/stage positions (before cleaning up)\r\n slidePos = $.fancybox.getTranslate(previous.$slide);\r\n stagePos = $.fancybox.getTranslate(self.$refs.stage);\r\n\r\n // Clean up all slides\r\n $.each(self.slides, function (index, slide) {\r\n $.fancybox.stop(slide.$slide, true);\r\n });\r\n\r\n if (previous.pos !== current.pos) {\r\n previous.isComplete = false;\r\n }\r\n\r\n previous.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--current\");\r\n\r\n // If slides are out of place, then animate them to correct position\r\n if (isMoved) {\r\n // Calculate horizontal swipe distance\r\n diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);\r\n\r\n $.each(self.slides, function (index, slide) {\r\n slide.$slide.removeClass(\"fancybox-animated\").removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n // Make sure that each slide is in equal distance\r\n // This is mostly needed for freshly added slides, because they are not yet positioned\r\n var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: 0,\r\n left: leftPos - stagePos.left + diff\r\n });\r\n\r\n if (slide.pos !== current.pos) {\r\n slide.$slide.addClass(\"fancybox-slide--\" + (slide.pos > current.pos ? \"next\" : \"previous\"));\r\n }\r\n\r\n // Redraw to make sure that transition will start\r\n forceRedraw(slide.$slide);\r\n\r\n // Animate the slide\r\n $.fancybox.animate(\r\n slide.$slide, {\r\n top: 0,\r\n left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter\r\n },\r\n duration,\r\n function () {\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\"\r\n })\r\n .removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n }\r\n );\r\n });\r\n } else if (duration && current.opts.transitionEffect) {\r\n // Set transition effect for previously active slide\r\n prop = \"fancybox-animated fancybox-fx-\" + current.opts.transitionEffect;\r\n\r\n previous.$slide.addClass(\"fancybox-slide--\" + (previous.pos > current.pos ? \"next\" : \"previous\"));\r\n\r\n $.fancybox.animate(\r\n previous.$slide,\r\n prop,\r\n duration,\r\n function () {\r\n previous.$slide.removeClass(prop).removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n },\r\n false\r\n );\r\n }\r\n\r\n if (current.isLoaded) {\r\n self.revealContent(current);\r\n } else {\r\n self.loadSlide(current);\r\n }\r\n\r\n self.preload(\"image\");\r\n },\r\n\r\n // Create new \"slide\" element\r\n // These are gallery items that are actually added to DOM\r\n // =======================================================\r\n\r\n createSlide: function (pos) {\r\n var self = this,\r\n $slide,\r\n index;\r\n\r\n index = pos % self.group.length;\r\n index = index < 0 ? self.group.length + index : index;\r\n\r\n if (!self.slides[pos] && self.group[index]) {\r\n $slide = $('
').appendTo(self.$refs.stage);\r\n\r\n self.slides[pos] = $.extend(true, {}, self.group[index], {\r\n pos: pos,\r\n $slide: $slide,\r\n isLoaded: false\r\n });\r\n\r\n self.updateSlide(self.slides[pos]);\r\n }\r\n\r\n return self.slides[pos];\r\n },\r\n\r\n // Scale image to the actual size of the image;\r\n // x and y values should be relative to the slide\r\n // ==============================================\r\n\r\n scaleToActual: function (x, y, duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n canvasWidth = $.fancybox.getTranslate(current.$slide).width,\r\n canvasHeight = $.fancybox.getTranslate(current.$slide).height,\r\n newImgWidth = current.width,\r\n newImgHeight = current.height,\r\n imgPos,\r\n posX,\r\n posY,\r\n scaleX,\r\n scaleY;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n x = x === undefined ? canvasWidth * 0.5 : x;\r\n y = y === undefined ? canvasHeight * 0.5 : y;\r\n\r\n imgPos = $.fancybox.getTranslate($content);\r\n\r\n imgPos.top -= $.fancybox.getTranslate(current.$slide).top;\r\n imgPos.left -= $.fancybox.getTranslate(current.$slide).left;\r\n\r\n scaleX = newImgWidth / imgPos.width;\r\n scaleY = newImgHeight / imgPos.height;\r\n\r\n // Get center position for original image\r\n posX = canvasWidth * 0.5 - newImgWidth * 0.5;\r\n posY = canvasHeight * 0.5 - newImgHeight * 0.5;\r\n\r\n // Make sure image does not move away from edges\r\n if (newImgWidth > canvasWidth) {\r\n posX = imgPos.left * scaleX - (x * scaleX - x);\r\n\r\n if (posX > 0) {\r\n posX = 0;\r\n }\r\n\r\n if (posX < canvasWidth - newImgWidth) {\r\n posX = canvasWidth - newImgWidth;\r\n }\r\n }\r\n\r\n if (newImgHeight > canvasHeight) {\r\n posY = imgPos.top * scaleY - (y * scaleY - y);\r\n\r\n if (posY > 0) {\r\n posY = 0;\r\n }\r\n\r\n if (posY < canvasHeight - newImgHeight) {\r\n posY = canvasHeight - newImgHeight;\r\n }\r\n }\r\n\r\n self.updateCursor(newImgWidth, newImgHeight);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: posY,\r\n left: posX,\r\n scaleX: scaleX,\r\n scaleY: scaleY\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n\r\n // Stop slideshow\r\n if (self.SlideShow && self.SlideShow.isActive) {\r\n self.SlideShow.stop();\r\n }\r\n },\r\n\r\n // Scale image to fit inside parent element\r\n // ========================================\r\n\r\n scaleToFit: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n end;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n end = self.getFitPos(current);\r\n\r\n self.updateCursor(end.width, end.height);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: end.top,\r\n left: end.left,\r\n scaleX: end.width / $content.width(),\r\n scaleY: end.height / $content.height()\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n },\r\n\r\n // Calculate image size to fit inside viewport\r\n // ===========================================\r\n\r\n getFitPos: function (slide) {\r\n var self = this,\r\n $content = slide.$content,\r\n $slide = slide.$slide,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n maxWidth,\r\n maxHeight,\r\n minRatio,\r\n aspectRatio,\r\n rez = {};\r\n\r\n if (!slide.isLoaded || !$content || !$content.length) {\r\n return false;\r\n }\r\n\r\n maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;\r\n maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;\r\n\r\n maxWidth -=\r\n parseFloat($slide.css(\"paddingLeft\")) +\r\n parseFloat($slide.css(\"paddingRight\")) +\r\n parseFloat($content.css(\"marginLeft\")) +\r\n parseFloat($content.css(\"marginRight\"));\r\n\r\n maxHeight -=\r\n parseFloat($slide.css(\"paddingTop\")) +\r\n parseFloat($slide.css(\"paddingBottom\")) +\r\n parseFloat($content.css(\"marginTop\")) +\r\n parseFloat($content.css(\"marginBottom\"));\r\n\r\n if (!width || !height) {\r\n width = maxWidth;\r\n height = maxHeight;\r\n }\r\n\r\n minRatio = Math.min(1, maxWidth / width, maxHeight / height);\r\n\r\n width = minRatio * width;\r\n height = minRatio * height;\r\n\r\n // Adjust width/height to precisely fit into container\r\n if (width > maxWidth - 0.5) {\r\n width = maxWidth;\r\n }\r\n\r\n if (height > maxHeight - 0.5) {\r\n height = maxHeight;\r\n }\r\n\r\n if (slide.type === \"image\") {\r\n rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css(\"paddingTop\"));\r\n rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css(\"paddingLeft\"));\r\n } else if (slide.contentType === \"video\") {\r\n // Force aspect ratio for the video\r\n // \"I say the whole world must learn of our peaceful ways… by force!\"\r\n aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;\r\n\r\n if (height > width / aspectRatio) {\r\n height = width / aspectRatio;\r\n } else if (width > height * aspectRatio) {\r\n width = height * aspectRatio;\r\n }\r\n }\r\n\r\n rez.width = width;\r\n rez.height = height;\r\n\r\n return rez;\r\n },\r\n\r\n // Update content size and position for all slides\r\n // ==============================================\r\n\r\n update: function (e) {\r\n var self = this;\r\n\r\n $.each(self.slides, function (key, slide) {\r\n self.updateSlide(slide, e);\r\n });\r\n },\r\n\r\n // Update slide content position and size\r\n // ======================================\r\n\r\n updateSlide: function (slide, e) {\r\n var self = this,\r\n $content = slide && slide.$content,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n $slide = slide.$slide;\r\n\r\n // First, prevent caption overlap, if needed\r\n self.adjustCaption(slide);\r\n\r\n // Then resize content to fit inside the slide\r\n if ($content && (width || height || slide.contentType === \"video\") && !slide.hasError) {\r\n $.fancybox.stop($content);\r\n\r\n $.fancybox.setTranslate($content, self.getFitPos(slide));\r\n\r\n if (slide.pos === self.currPos) {\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n }\r\n }\r\n\r\n // Then some adjustments\r\n self.adjustLayout(slide);\r\n\r\n if ($slide.length) {\r\n $slide.trigger(\"refresh\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.$refs.toolbar\r\n .add(self.$refs.navigation.find(\".fancybox-button--arrow_right\"))\r\n .toggleClass(\"compensate-for-scrollbar\", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);\r\n }\r\n }\r\n\r\n self.trigger(\"onUpdate\", slide, e);\r\n },\r\n\r\n // Horizontally center slide\r\n // =========================\r\n\r\n centerSlide: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $slide = current.$slide;\r\n\r\n if (self.isClosing || !current) {\r\n return;\r\n }\r\n\r\n $slide.siblings().css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n $slide\r\n .parent()\r\n .children()\r\n .removeClass(\"fancybox-slide--previous fancybox-slide--next\");\r\n\r\n $.fancybox.animate(\r\n $slide, {\r\n top: 0,\r\n left: 0,\r\n opacity: 1\r\n },\r\n duration === undefined ? 0 : duration,\r\n function () {\r\n // Clean up\r\n $slide.css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (!current.isComplete) {\r\n self.complete();\r\n }\r\n },\r\n false\r\n );\r\n },\r\n\r\n // Check if current slide is moved (swiped)\r\n // ========================================\r\n\r\n isMoved: function (slide) {\r\n var current = slide || this.current,\r\n slidePos,\r\n stagePos;\r\n\r\n if (!current) {\r\n return false;\r\n }\r\n\r\n stagePos = $.fancybox.getTranslate(this.$refs.stage);\r\n slidePos = $.fancybox.getTranslate(current.$slide);\r\n\r\n return (\r\n !current.$slide.hasClass(\"fancybox-animated\") &&\r\n (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)\r\n );\r\n },\r\n\r\n // Update cursor style depending if content can be zoomed\r\n // ======================================================\r\n\r\n updateCursor: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n $container = self.$refs.container,\r\n canPan,\r\n isZoomable;\r\n\r\n if (!current || self.isClosing || !self.Guestures) {\r\n return;\r\n }\r\n\r\n $container.removeClass(\"fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan\");\r\n\r\n canPan = self.canPan(nextWidth, nextHeight);\r\n\r\n isZoomable = canPan ? true : self.isZoomable();\r\n\r\n $container.toggleClass(\"fancybox-is-zoomable\", isZoomable);\r\n\r\n $(\"[data-fancybox-zoom]\").prop(\"disabled\", !isZoomable);\r\n\r\n if (canPan) {\r\n $container.addClass(\"fancybox-can-pan\");\r\n } else if (\r\n isZoomable &&\r\n (current.opts.clickContent === \"zoom\" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == \"zoom\"))\r\n ) {\r\n $container.addClass(\"fancybox-can-zoomIn\");\r\n } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== \"video\") {\r\n $container.addClass(\"fancybox-can-swipe\");\r\n }\r\n },\r\n\r\n // Check if current slide is zoomable\r\n // ==================================\r\n\r\n isZoomable: function () {\r\n var self = this,\r\n current = self.current,\r\n fitPos;\r\n\r\n // Assume that slide is zoomable if:\r\n // - image is still loading\r\n // - actual size of the image is smaller than available area\r\n if (current && !self.isClosing && current.type === \"image\" && !current.hasError) {\r\n if (!current.isLoaded) {\r\n return true;\r\n }\r\n\r\n fitPos = self.getFitPos(current);\r\n\r\n if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Check if current image dimensions are smaller than actual\r\n // =========================================================\r\n\r\n isScaledDown: function (nextWidth, nextHeight) {\r\n var self = this,\r\n rez = false,\r\n current = self.current,\r\n $content = current.$content;\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n rez = nextWidth < current.width && nextHeight < current.height;\r\n } else if ($content) {\r\n rez = $.fancybox.getTranslate($content);\r\n rez = rez.width < current.width && rez.height < current.height;\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Check if image dimensions exceed parent element\r\n // ===============================================\r\n\r\n canPan: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n pos = null,\r\n rez = false;\r\n\r\n if (current.type === \"image\" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {\r\n rez = self.getFitPos(current);\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n pos = {\r\n width: nextWidth,\r\n height: nextHeight\r\n };\r\n } else if (current.isComplete) {\r\n pos = $.fancybox.getTranslate(current.$content);\r\n }\r\n\r\n if (pos && rez) {\r\n rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;\r\n }\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Load content into the slide\r\n // ===========================\r\n\r\n loadSlide: function (slide) {\r\n var self = this,\r\n type,\r\n $slide,\r\n ajaxLoad;\r\n\r\n if (slide.isLoading || slide.isLoaded) {\r\n return;\r\n }\r\n\r\n slide.isLoading = true;\r\n\r\n if (self.trigger(\"beforeLoad\", slide) === false) {\r\n slide.isLoading = false;\r\n\r\n return false;\r\n }\r\n\r\n type = slide.type;\r\n $slide = slide.$slide;\r\n\r\n $slide\r\n .off(\"refresh\")\r\n .trigger(\"onReset\")\r\n .addClass(slide.opts.slideClass);\r\n\r\n // Create content depending on the type\r\n switch (type) {\r\n case \"image\":\r\n self.setImage(slide);\r\n\r\n break;\r\n\r\n case \"iframe\":\r\n self.setIframe(slide);\r\n\r\n break;\r\n\r\n case \"html\":\r\n self.setContent(slide, slide.src || slide.content);\r\n\r\n break;\r\n\r\n case \"video\":\r\n self.setContent(\r\n slide,\r\n slide.opts.video.tpl\r\n .replace(/\\{\\{src\\}\\}/gi, slide.src)\r\n .replace(\"{{format}}\", slide.opts.videoFormat || slide.opts.video.format || \"\")\r\n .replace(\"{{poster}}\", slide.thumb || \"\")\r\n );\r\n\r\n break;\r\n\r\n case \"inline\":\r\n if ($(slide.src).length) {\r\n self.setContent(slide, $(slide.src));\r\n } else {\r\n self.setError(slide);\r\n }\r\n\r\n break;\r\n\r\n case \"ajax\":\r\n self.showLoading(slide);\r\n\r\n ajaxLoad = $.ajax(\r\n $.extend({}, slide.opts.ajax.settings, {\r\n url: slide.src,\r\n success: function (data, textStatus) {\r\n if (textStatus === \"success\") {\r\n self.setContent(slide, data);\r\n }\r\n },\r\n error: function (jqXHR, textStatus) {\r\n if (jqXHR && textStatus !== \"abort\") {\r\n self.setError(slide);\r\n }\r\n }\r\n })\r\n );\r\n\r\n $slide.one(\"onReset\", function () {\r\n ajaxLoad.abort();\r\n });\r\n\r\n break;\r\n\r\n default:\r\n self.setError(slide);\r\n\r\n break;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Use thumbnail image, if possible\r\n // ================================\r\n\r\n setImage: function (slide) {\r\n var self = this,\r\n ghost;\r\n\r\n // Check if need to show loading icon\r\n setTimeout(function () {\r\n var $img = slide.$image;\r\n\r\n if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {\r\n self.showLoading(slide);\r\n }\r\n }, 50);\r\n\r\n //Check if image has srcset\r\n self.checkSrcset(slide);\r\n\r\n // This will be wrapper containing both ghost and actual image\r\n slide.$content = $('
')\r\n .addClass(\"fancybox-is-hidden\")\r\n .appendTo(slide.$slide.addClass(\"fancybox-slide--image\"));\r\n\r\n // If we have a thumbnail, we can display it while actual image is loading\r\n // Users will not stare at black screen and actual image will appear gradually\r\n if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {\r\n slide.width = slide.opts.width;\r\n slide.height = slide.opts.height;\r\n\r\n ghost = document.createElement(\"img\");\r\n\r\n ghost.onerror = function () {\r\n $(this).remove();\r\n\r\n slide.$ghost = null;\r\n };\r\n\r\n ghost.onload = function () {\r\n self.afterLoad(slide);\r\n };\r\n\r\n slide.$ghost = $(ghost)\r\n .addClass(\"fancybox-image\")\r\n .appendTo(slide.$content)\r\n .attr(\"src\", slide.thumb);\r\n }\r\n\r\n // Start loading actual image\r\n self.setBigImage(slide);\r\n },\r\n\r\n // Check if image has srcset and get the source\r\n // ============================================\r\n checkSrcset: function (slide) {\r\n var srcset = slide.opts.srcset || slide.opts.image.srcset,\r\n found,\r\n temp,\r\n pxRatio,\r\n windowWidth;\r\n\r\n // If we have \"srcset\", then we need to find first matching \"src\" value.\r\n // This is necessary, because when you set an src attribute, the browser will preload the image\r\n // before any javascript or even CSS is applied.\r\n if (srcset) {\r\n pxRatio = window.devicePixelRatio || 1;\r\n windowWidth = window.innerWidth * pxRatio;\r\n\r\n temp = srcset.split(\",\").map(function (el) {\r\n var ret = {};\r\n\r\n el.trim()\r\n .split(/\\s+/)\r\n .forEach(function (el, i) {\r\n var value = parseInt(el.substring(0, el.length - 1), 10);\r\n\r\n if (i === 0) {\r\n return (ret.url = el);\r\n }\r\n\r\n if (value) {\r\n ret.value = value;\r\n ret.postfix = el[el.length - 1];\r\n }\r\n });\r\n\r\n return ret;\r\n });\r\n\r\n // Sort by value\r\n temp.sort(function (a, b) {\r\n return a.value - b.value;\r\n });\r\n\r\n // Ok, now we have an array of all srcset values\r\n for (var j = 0; j < temp.length; j++) {\r\n var el = temp[j];\r\n\r\n if ((el.postfix === \"w\" && el.value >= windowWidth) || (el.postfix === \"x\" && el.value >= pxRatio)) {\r\n found = el;\r\n break;\r\n }\r\n }\r\n\r\n // If not found, take the last one\r\n if (!found && temp.length) {\r\n found = temp[temp.length - 1];\r\n }\r\n\r\n if (found) {\r\n slide.src = found.url;\r\n\r\n // If we have default width/height values, we can calculate height for matching source\r\n if (slide.width && slide.height && found.postfix == \"w\") {\r\n slide.height = (slide.width / slide.height) * found.value;\r\n slide.width = found.value;\r\n }\r\n\r\n slide.opts.srcset = srcset;\r\n }\r\n }\r\n },\r\n\r\n // Create full-size image\r\n // ======================\r\n\r\n setBigImage: function (slide) {\r\n var self = this,\r\n img = document.createElement(\"img\"),\r\n $img = $(img);\r\n\r\n slide.$image = $img\r\n .one(\"error\", function () {\r\n self.setError(slide);\r\n })\r\n .one(\"load\", function () {\r\n var sizes;\r\n\r\n if (!slide.$ghost) {\r\n self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);\r\n\r\n self.afterLoad(slide);\r\n }\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (slide.opts.srcset) {\r\n sizes = slide.opts.sizes;\r\n\r\n if (!sizes || sizes === \"auto\") {\r\n sizes =\r\n (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? \"100\" : Math.round((slide.width / slide.height) * 100)) +\r\n \"vw\";\r\n }\r\n\r\n $img.attr(\"sizes\", sizes).attr(\"srcset\", slide.opts.srcset);\r\n }\r\n\r\n // Hide temporary image after some delay\r\n if (slide.$ghost) {\r\n setTimeout(function () {\r\n if (slide.$ghost && !self.isClosing) {\r\n slide.$ghost.hide();\r\n }\r\n }, Math.min(300, Math.max(1000, slide.height / 1600)));\r\n }\r\n\r\n self.hideLoading(slide);\r\n })\r\n .addClass(\"fancybox-image\")\r\n .attr(\"src\", slide.src)\r\n .appendTo(slide.$content);\r\n\r\n if ((img.complete || img.readyState == \"complete\") && $img.naturalWidth && $img.naturalHeight) {\r\n $img.trigger(\"load\");\r\n } else if (img.error) {\r\n $img.trigger(\"error\");\r\n }\r\n },\r\n\r\n // Computes the slide size from image size and maxWidth/maxHeight\r\n // ==============================================================\r\n\r\n resolveImageSlideSize: function (slide, imgWidth, imgHeight) {\r\n var maxWidth = parseInt(slide.opts.width, 10),\r\n maxHeight = parseInt(slide.opts.height, 10);\r\n\r\n // Sets the default values from the image\r\n slide.width = imgWidth;\r\n slide.height = imgHeight;\r\n\r\n if (maxWidth > 0) {\r\n slide.width = maxWidth;\r\n slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);\r\n }\r\n\r\n if (maxHeight > 0) {\r\n slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);\r\n slide.height = maxHeight;\r\n }\r\n },\r\n\r\n // Create iframe wrapper, iframe and bindings\r\n // ==========================================\r\n\r\n setIframe: function (slide) {\r\n var self = this,\r\n opts = slide.opts.iframe,\r\n $slide = slide.$slide,\r\n $iframe;\r\n\r\n slide.$content = $('
')\r\n .css(opts.css)\r\n .appendTo($slide);\r\n\r\n $slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n slide.$iframe = $iframe = $(opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()))\r\n .attr(opts.attr)\r\n .appendTo(slide.$content);\r\n\r\n if (opts.preload) {\r\n self.showLoading(slide);\r\n\r\n // Unfortunately, it is not always possible to determine if iframe is successfully loaded\r\n // (due to browser security policy)\r\n\r\n $iframe.on(\"load.fb error.fb\", function (e) {\r\n this.isReady = 1;\r\n\r\n slide.$slide.trigger(\"refresh\");\r\n\r\n self.afterLoad(slide);\r\n });\r\n\r\n // Recalculate iframe content size\r\n // ===============================\r\n\r\n $slide.on(\"refresh.fb\", function () {\r\n var $content = slide.$content,\r\n frameWidth = opts.css.width,\r\n frameHeight = opts.css.height,\r\n $contents,\r\n $body;\r\n\r\n if ($iframe[0].isReady !== 1) {\r\n return;\r\n }\r\n\r\n try {\r\n $contents = $iframe.contents();\r\n $body = $contents.find(\"body\");\r\n } catch (ignore) {}\r\n\r\n // Calculate content dimensions, if it is accessible\r\n if ($body && $body.length && $body.children().length) {\r\n // Avoid scrolling to top (if multiple instances)\r\n $slide.css(\"overflow\", \"visible\");\r\n\r\n $content.css({\r\n width: \"100%\",\r\n \"max-width\": \"100%\",\r\n height: \"9999px\"\r\n });\r\n\r\n if (frameWidth === undefined) {\r\n frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));\r\n }\r\n\r\n $content.css(\"width\", frameWidth ? frameWidth : \"\").css(\"max-width\", \"\");\r\n\r\n if (frameHeight === undefined) {\r\n frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));\r\n }\r\n\r\n $content.css(\"height\", frameHeight ? frameHeight : \"\");\r\n\r\n $slide.css(\"overflow\", \"auto\");\r\n }\r\n\r\n $content.removeClass(\"fancybox-is-hidden\");\r\n });\r\n } else {\r\n self.afterLoad(slide);\r\n }\r\n\r\n $iframe.attr(\"src\", slide.src);\r\n\r\n // Remove iframe if closing or changing gallery item\r\n $slide.one(\"onReset\", function () {\r\n // This helps IE not to throw errors when closing\r\n try {\r\n $(this)\r\n .find(\"iframe\")\r\n .hide()\r\n .unbind()\r\n .attr(\"src\", \"//about:blank\");\r\n } catch (ignore) {}\r\n\r\n $(this)\r\n .off(\"refresh.fb\")\r\n .empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n });\r\n },\r\n\r\n // Wrap and append content to the slide\r\n // ======================================\r\n\r\n setContent: function (slide, content) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n self.hideLoading(slide);\r\n\r\n if (slide.$content) {\r\n $.fancybox.stop(slide.$content);\r\n }\r\n\r\n slide.$slide.empty();\r\n\r\n // If content is a jQuery object, then it will be moved to the slide.\r\n // The placeholder is created so we will know where to put it back.\r\n if (isQuery(content) && content.parent().length) {\r\n // Make sure content is not already moved to fancyBox\r\n if (content.hasClass(\"fancybox-content\") || content.parent().hasClass(\"fancybox-content\")) {\r\n content.parents(\".fancybox-slide\").trigger(\"onReset\");\r\n }\r\n\r\n // Create temporary element marking original place of the content\r\n slide.$placeholder = $(\"
\")\r\n .hide()\r\n .insertAfter(content);\r\n\r\n // Make sure content is visible\r\n content.css(\"display\", \"inline-block\");\r\n } else if (!slide.hasError) {\r\n // If content is just a plain text, try to convert it to html\r\n if ($.type(content) === \"string\") {\r\n content = $(\"
\")\r\n .append($.trim(content))\r\n .contents();\r\n }\r\n\r\n // If \"filter\" option is provided, then filter content\r\n if (slide.opts.filter) {\r\n content = $(\"
\")\r\n .html(content)\r\n .find(slide.opts.filter);\r\n }\r\n }\r\n\r\n slide.$slide.one(\"onReset\", function () {\r\n // Pause all html5 video/audio\r\n $(this)\r\n .find(\"video,audio\")\r\n .trigger(\"pause\");\r\n\r\n // Put content back\r\n if (slide.$placeholder) {\r\n slide.$placeholder.after(content.removeClass(\"fancybox-content\").hide()).remove();\r\n\r\n slide.$placeholder = null;\r\n }\r\n\r\n // Remove custom close button\r\n if (slide.$smallBtn) {\r\n slide.$smallBtn.remove();\r\n\r\n slide.$smallBtn = null;\r\n }\r\n\r\n // Remove content and mark slide as not loaded\r\n if (!slide.hasError) {\r\n $(this).empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n }\r\n });\r\n\r\n $(content).appendTo(slide.$slide);\r\n\r\n if ($(content).is(\"video,audio\")) {\r\n $(content).addClass(\"fancybox-video\");\r\n\r\n $(content).wrap(\"
\");\r\n\r\n slide.contentType = \"video\";\r\n\r\n slide.opts.width = slide.opts.width || $(content).attr(\"width\");\r\n slide.opts.height = slide.opts.height || $(content).attr(\"height\");\r\n }\r\n\r\n slide.$content = slide.$slide\r\n .children()\r\n .filter(\"div,form,main,video,audio,article,.fancybox-content\")\r\n .first();\r\n\r\n slide.$content.siblings().hide();\r\n\r\n // Re-check if there is a valid content\r\n // (in some cases, ajax response can contain various elements or plain text)\r\n if (!slide.$content.length) {\r\n slide.$content = slide.$slide\r\n .wrapInner(\"
\")\r\n .children()\r\n .first();\r\n }\r\n\r\n slide.$content.addClass(\"fancybox-content\");\r\n\r\n slide.$slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n self.afterLoad(slide);\r\n },\r\n\r\n // Display error message\r\n // =====================\r\n\r\n setError: function (slide) {\r\n slide.hasError = true;\r\n\r\n slide.$slide\r\n .trigger(\"onReset\")\r\n .removeClass(\"fancybox-slide--\" + slide.contentType)\r\n .addClass(\"fancybox-slide--error\");\r\n\r\n slide.contentType = \"html\";\r\n\r\n this.setContent(slide, this.translate(slide, slide.opts.errorTpl));\r\n\r\n if (slide.pos === this.currPos) {\r\n this.isAnimating = false;\r\n }\r\n },\r\n\r\n // Show loading icon inside the slide\r\n // ==================================\r\n\r\n showLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && !slide.$spinner) {\r\n slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))\r\n .appendTo(slide.$slide)\r\n .hide()\r\n .fadeIn(\"fast\");\r\n }\r\n },\r\n\r\n // Remove loading icon from the slide\r\n // ==================================\r\n\r\n hideLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && slide.$spinner) {\r\n slide.$spinner.stop().remove();\r\n\r\n delete slide.$spinner;\r\n }\r\n },\r\n\r\n // Adjustments after slide content has been loaded\r\n // ===============================================\r\n\r\n afterLoad: function (slide) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n slide.isLoading = false;\r\n slide.isLoaded = true;\r\n\r\n self.trigger(\"afterLoad\", slide);\r\n\r\n self.hideLoading(slide);\r\n\r\n // Add small close button\r\n if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {\r\n slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);\r\n }\r\n\r\n // Disable right click\r\n if (slide.opts.protect && slide.$content && !slide.hasError) {\r\n slide.$content.on(\"contextmenu.fb\", function (e) {\r\n if (e.button == 2) {\r\n e.preventDefault();\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // Add fake element on top of the image\r\n // This makes a bit harder for user to select image\r\n if (slide.type === \"image\") {\r\n $('
').appendTo(slide.$content);\r\n }\r\n }\r\n\r\n self.adjustCaption(slide);\r\n\r\n self.adjustLayout(slide);\r\n\r\n if (slide.pos === self.currPos) {\r\n self.updateCursor();\r\n }\r\n\r\n self.revealContent(slide);\r\n },\r\n\r\n // Prevent caption overlap,\r\n // fix css inconsistency across browsers\r\n // =====================================\r\n\r\n adjustCaption: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n caption = current.opts.caption,\r\n preventOverlap = current.opts.preventCaptionOverlap,\r\n $caption = self.$refs.caption,\r\n $clone,\r\n captionH = false;\r\n\r\n $caption.toggleClass(\"fancybox-caption--separate\", preventOverlap);\r\n\r\n if (preventOverlap && caption && caption.length) {\r\n if (current.pos !== self.currPos) {\r\n $clone = $caption.clone().appendTo($caption.parent());\r\n\r\n $clone\r\n .children()\r\n .eq(0)\r\n .empty()\r\n .html(caption);\r\n\r\n captionH = $clone.outerHeight(true);\r\n\r\n $clone.empty().remove();\r\n } else if (self.$caption) {\r\n captionH = self.$caption.outerHeight(true);\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", captionH || \"\");\r\n }\r\n },\r\n\r\n // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=748518\r\n // ====================================================================================\r\n\r\n adjustLayout: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n scrollHeight,\r\n marginBottom,\r\n inlinePadding,\r\n actualPadding;\r\n\r\n if (current.isLoaded && current.opts.disableLayoutFix !== true) {\r\n current.$content.css(\"margin-bottom\", \"\");\r\n\r\n // If we would always set margin-bottom for the content,\r\n // then it would potentially break vertical align\r\n if (current.$content.outerHeight() > current.$slide.height() + 0.5) {\r\n inlinePadding = current.$slide[0].style[\"padding-bottom\"];\r\n actualPadding = current.$slide.css(\"padding-bottom\");\r\n\r\n if (parseFloat(actualPadding) > 0) {\r\n scrollHeight = current.$slide[0].scrollHeight;\r\n\r\n current.$slide.css(\"padding-bottom\", 0);\r\n\r\n if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {\r\n marginBottom = actualPadding;\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", inlinePadding);\r\n }\r\n }\r\n\r\n current.$content.css(\"margin-bottom\", marginBottom);\r\n }\r\n },\r\n\r\n // Make content visible\r\n // This method is called right after content has been loaded or\r\n // user navigates gallery and transition should start\r\n // ============================================================\r\n\r\n revealContent: function (slide) {\r\n var self = this,\r\n $slide = slide.$slide,\r\n end = false,\r\n start = false,\r\n isMoved = self.isMoved(slide),\r\n isRevealed = slide.isRevealed,\r\n effect,\r\n effectClassName,\r\n duration,\r\n opacity;\r\n\r\n slide.isRevealed = true;\r\n\r\n effect = slide.opts[self.firstRun ? \"animationEffect\" : \"transitionEffect\"];\r\n duration = slide.opts[self.firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n\r\n duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);\r\n\r\n if (isMoved || slide.pos !== self.currPos || !duration) {\r\n effect = false;\r\n }\r\n\r\n // Check if can zoom\r\n if (effect === \"zoom\") {\r\n if (slide.pos === self.currPos && duration && slide.type === \"image\" && !slide.hasError && (start = self.getThumbPos(slide))) {\r\n end = self.getFitPos(slide);\r\n } else {\r\n effect = \"fade\";\r\n }\r\n }\r\n\r\n // Zoom animation\r\n // ==============\r\n if (effect === \"zoom\") {\r\n self.isAnimating = true;\r\n\r\n end.scaleX = end.width / start.width;\r\n end.scaleY = end.height / start.height;\r\n\r\n // Check if we need to animate opacity\r\n opacity = slide.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n start.opacity = 0.1;\r\n end.opacity = 1;\r\n }\r\n\r\n // Draw image at start position\r\n $.fancybox.setTranslate(slide.$content.removeClass(\"fancybox-is-hidden\"), start);\r\n\r\n forceRedraw(slide.$content);\r\n\r\n // Start animation\r\n $.fancybox.animate(slide.$content, end, duration, function () {\r\n self.isAnimating = false;\r\n\r\n self.complete();\r\n });\r\n\r\n return;\r\n }\r\n\r\n self.updateSlide(slide);\r\n\r\n // Simply show content if no effect\r\n // ================================\r\n if (!effect) {\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n if (!isRevealed && isMoved && slide.type === \"image\" && !slide.hasError) {\r\n slide.$content.hide().fadeIn(\"fast\");\r\n }\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Prepare for CSS transiton\r\n // =========================\r\n $.fancybox.stop($slide);\r\n\r\n //effectClassName = \"fancybox-animated fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-fx-\" + effect;\r\n effectClassName = \"fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-animated fancybox-fx-\" + effect;\r\n\r\n $slide.addClass(effectClassName).removeClass(\"fancybox-slide--current\"); //.addClass(effectClassName);\r\n\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n // Force reflow\r\n forceRedraw($slide);\r\n\r\n if (slide.type !== \"image\") {\r\n slide.$content.hide().show(0);\r\n }\r\n\r\n $.fancybox.animate(\r\n $slide,\r\n \"fancybox-slide--current\",\r\n duration,\r\n function () {\r\n $slide.removeClass(effectClassName).css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n },\r\n true\r\n );\r\n },\r\n\r\n // Check if we can and have to zoom from thumbnail\r\n //================================================\r\n\r\n getThumbPos: function (slide) {\r\n var rez = false,\r\n $thumb = slide.$thumb,\r\n thumbPos,\r\n btw,\r\n brw,\r\n bbw,\r\n blw;\r\n\r\n if (!$thumb || !inViewport($thumb[0])) {\r\n return false;\r\n }\r\n\r\n thumbPos = $.fancybox.getTranslate($thumb);\r\n\r\n btw = parseFloat($thumb.css(\"border-top-width\") || 0);\r\n brw = parseFloat($thumb.css(\"border-right-width\") || 0);\r\n bbw = parseFloat($thumb.css(\"border-bottom-width\") || 0);\r\n blw = parseFloat($thumb.css(\"border-left-width\") || 0);\r\n\r\n rez = {\r\n top: thumbPos.top + btw,\r\n left: thumbPos.left + blw,\r\n width: thumbPos.width - brw - blw,\r\n height: thumbPos.height - btw - bbw,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;\r\n },\r\n\r\n // Final adjustments after current gallery item is moved to position\r\n // and it`s content is loaded\r\n // ==================================================================\r\n\r\n complete: function () {\r\n var self = this,\r\n current = self.current,\r\n slides = {},\r\n $el;\r\n\r\n if (self.isMoved() || !current.isLoaded) {\r\n return;\r\n }\r\n\r\n if (!current.isComplete) {\r\n current.isComplete = true;\r\n\r\n current.$slide.siblings().trigger(\"onReset\");\r\n\r\n self.preload(\"inline\");\r\n\r\n // Trigger any CSS transiton inside the slide\r\n forceRedraw(current.$slide);\r\n\r\n current.$slide.addClass(\"fancybox-slide--complete\");\r\n\r\n // Remove unnecessary slides\r\n $.each(self.slides, function (key, slide) {\r\n if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {\r\n slides[slide.pos] = slide;\r\n } else if (slide) {\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slide.$slide.off().remove();\r\n }\r\n });\r\n\r\n self.slides = slides;\r\n }\r\n\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n\r\n self.trigger(\"afterShow\");\r\n\r\n // Autoplay first html5 video/audio\r\n if (!!current.opts.video.autoStart) {\r\n current.$slide\r\n .find(\"video,audio\")\r\n .filter(\":visible:first\")\r\n .trigger(\"play\")\r\n .one(\"ended\", function () {\r\n if (Document.exitFullscreen) {\r\n Document.exitFullscreen();\r\n } else if (this.webkitExitFullscreen) {\r\n this.webkitExitFullscreen();\r\n }\r\n\r\n self.next();\r\n });\r\n }\r\n\r\n // Try to focus on the first focusable element\r\n if (current.opts.autoFocus && current.contentType === \"html\") {\r\n // Look for the first input with autofocus attribute\r\n $el = current.$content.find(\"input[autofocus]:enabled:visible:first\");\r\n\r\n if ($el.length) {\r\n $el.trigger(\"focus\");\r\n } else {\r\n self.focus(null, true);\r\n }\r\n }\r\n\r\n // Avoid jumping\r\n current.$slide.scrollTop(0).scrollLeft(0);\r\n },\r\n\r\n // Preload next and previous slides\r\n // ================================\r\n\r\n preload: function (type) {\r\n var self = this,\r\n prev,\r\n next;\r\n\r\n if (self.group.length < 2) {\r\n return;\r\n }\r\n\r\n next = self.slides[self.currPos + 1];\r\n prev = self.slides[self.currPos - 1];\r\n\r\n if (prev && prev.type === type) {\r\n self.loadSlide(prev);\r\n }\r\n\r\n if (next && next.type === type) {\r\n self.loadSlide(next);\r\n }\r\n },\r\n\r\n // Try to find and focus on the first focusable element\r\n // ====================================================\r\n\r\n focus: function (e, firstRun) {\r\n var self = this,\r\n focusableStr = [\r\n \"a[href]\",\r\n \"area[href]\",\r\n 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\r\n \"select:not([disabled]):not([aria-hidden])\",\r\n \"textarea:not([disabled]):not([aria-hidden])\",\r\n \"button:not([disabled]):not([aria-hidden])\",\r\n \"iframe\",\r\n \"object\",\r\n \"embed\",\r\n \"video\",\r\n \"audio\",\r\n \"[contenteditable]\",\r\n '[tabindex]:not([tabindex^=\"-\"])'\r\n ].join(\",\"),\r\n focusableItems,\r\n focusedItemIndex;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (e || !self.current || !self.current.isComplete) {\r\n // Focus on any element inside fancybox\r\n focusableItems = self.$refs.container.find(\"*:visible\");\r\n } else {\r\n // Focus inside current slide\r\n focusableItems = self.current.$slide.find(\"*:visible\" + (firstRun ? \":not(.fancybox-close-small)\" : \"\"));\r\n }\r\n\r\n focusableItems = focusableItems.filter(focusableStr).filter(function () {\r\n return $(this).css(\"visibility\") !== \"hidden\" && !$(this).hasClass(\"disabled\");\r\n });\r\n\r\n if (focusableItems.length) {\r\n focusedItemIndex = focusableItems.index(document.activeElement);\r\n\r\n if (e && e.shiftKey) {\r\n // Back tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == 0) {\r\n e.preventDefault();\r\n\r\n focusableItems.eq(focusableItems.length - 1).trigger(\"focus\");\r\n }\r\n } else {\r\n // Outside or Forward tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n focusableItems.eq(0).trigger(\"focus\");\r\n }\r\n }\r\n } else {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Activates current instance - brings container to the front and enables keyboard,\r\n // notifies other instances about deactivating\r\n // =================================================================================\r\n\r\n activate: function () {\r\n var self = this;\r\n\r\n // Deactivate all instances\r\n $(\".fancybox-container\").each(function () {\r\n var instance = $(this).data(\"FancyBox\");\r\n\r\n // Skip self and closing instances\r\n if (instance && instance.id !== self.id && !instance.isClosing) {\r\n instance.trigger(\"onDeactivate\");\r\n\r\n instance.removeEvents();\r\n\r\n instance.isVisible = false;\r\n }\r\n });\r\n\r\n self.isVisible = true;\r\n\r\n if (self.current || self.isIdle) {\r\n self.update();\r\n\r\n self.updateControls();\r\n }\r\n\r\n self.trigger(\"onActivate\");\r\n\r\n self.addEvents();\r\n },\r\n\r\n // Start closing procedure\r\n // This will start \"zoom-out\" animation if needed and clean everything up afterwards\r\n // =================================================================================\r\n\r\n close: function (e, d) {\r\n var self = this,\r\n current = self.current,\r\n effect,\r\n duration,\r\n $content,\r\n domRect,\r\n opacity,\r\n start,\r\n end;\r\n\r\n var done = function () {\r\n self.cleanUp(e);\r\n };\r\n\r\n if (self.isClosing) {\r\n return false;\r\n }\r\n\r\n self.isClosing = true;\r\n\r\n // If beforeClose callback prevents closing, make sure content is centered\r\n if (self.trigger(\"beforeClose\", e) === false) {\r\n self.isClosing = false;\r\n\r\n requestAFrame(function () {\r\n self.update();\r\n });\r\n\r\n return false;\r\n }\r\n\r\n // Remove all events\r\n // If there are multiple instances, they will be set again by \"activate\" method\r\n self.removeEvents();\r\n\r\n $content = current.$content;\r\n effect = current.opts.animationEffect;\r\n duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;\r\n\r\n current.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated\");\r\n\r\n if (e !== true) {\r\n $.fancybox.stop(current.$slide);\r\n } else {\r\n effect = false;\r\n }\r\n\r\n // Remove other slides\r\n current.$slide\r\n .siblings()\r\n .trigger(\"onReset\")\r\n .remove();\r\n\r\n // Trigger animations\r\n if (duration) {\r\n self.$refs.container\r\n .removeClass(\"fancybox-is-open\")\r\n .addClass(\"fancybox-is-closing\")\r\n .css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Clean up\r\n self.hideLoading(current);\r\n\r\n self.hideControls(true);\r\n\r\n self.updateCursor();\r\n\r\n // Check if possible to zoom-out\r\n if (\r\n effect === \"zoom\" &&\r\n !($content && duration && current.type === \"image\" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))\r\n ) {\r\n effect = \"fade\";\r\n }\r\n\r\n if (effect === \"zoom\") {\r\n $.fancybox.stop($content);\r\n\r\n domRect = $.fancybox.getTranslate($content);\r\n\r\n start = {\r\n top: domRect.top,\r\n left: domRect.left,\r\n scaleX: domRect.width / end.width,\r\n scaleY: domRect.height / end.height,\r\n width: end.width,\r\n height: end.height\r\n };\r\n\r\n // Check if we need to animate opacity\r\n opacity = current.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n end.opacity = 0;\r\n }\r\n\r\n $.fancybox.setTranslate($content, start);\r\n\r\n forceRedraw($content);\r\n\r\n $.fancybox.animate($content, end, duration, done);\r\n\r\n return true;\r\n }\r\n\r\n if (effect && duration) {\r\n $.fancybox.animate(\r\n current.$slide.addClass(\"fancybox-slide--previous\").removeClass(\"fancybox-slide--current\"),\r\n \"fancybox-animated fancybox-fx-\" + effect,\r\n duration,\r\n done\r\n );\r\n } else {\r\n // If skip animation\r\n if (e === true) {\r\n setTimeout(done, duration);\r\n } else {\r\n done();\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Final adjustments after removing the instance\r\n // =============================================\r\n\r\n cleanUp: function (e) {\r\n var self = this,\r\n instance,\r\n $focus = self.current.opts.$orig,\r\n x,\r\n y;\r\n\r\n self.current.$slide.trigger(\"onReset\");\r\n\r\n self.$refs.container.empty().remove();\r\n\r\n self.trigger(\"afterClose\", e);\r\n\r\n // Place back focus\r\n if (!!self.current.opts.backFocus) {\r\n if (!$focus || !$focus.length || !$focus.is(\":visible\")) {\r\n $focus = self.$trigger;\r\n }\r\n\r\n if ($focus && $focus.length) {\r\n x = window.scrollX;\r\n y = window.scrollY;\r\n\r\n $focus.trigger(\"focus\");\r\n\r\n $(\"html, body\")\r\n .scrollTop(y)\r\n .scrollLeft(x);\r\n }\r\n }\r\n\r\n self.current = null;\r\n\r\n // Check if there are other instances\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n instance.activate();\r\n } else {\r\n $(\"body\").removeClass(\"fancybox-active compensate-for-scrollbar\");\r\n\r\n $(\"#fancybox-style-noscroll\").remove();\r\n }\r\n },\r\n\r\n // Call callback and trigger an event\r\n // ==================================\r\n\r\n trigger: function (name, slide) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n self = this,\r\n obj = slide && slide.opts ? slide : self.current,\r\n rez;\r\n\r\n if (obj) {\r\n args.unshift(obj);\r\n } else {\r\n obj = self;\r\n }\r\n\r\n args.unshift(self);\r\n\r\n if ($.isFunction(obj.opts[name])) {\r\n rez = obj.opts[name].apply(obj, args);\r\n }\r\n\r\n if (rez === false) {\r\n return rez;\r\n }\r\n\r\n if (name === \"afterClose\" || !self.$refs) {\r\n $D.trigger(name + \".fb\", args);\r\n } else {\r\n self.$refs.container.trigger(name + \".fb\", args);\r\n }\r\n },\r\n\r\n // Update infobar values, navigation button states and reveal caption\r\n // ==================================================================\r\n\r\n updateControls: function () {\r\n var self = this,\r\n current = self.current,\r\n index = current.index,\r\n $container = self.$refs.container,\r\n $caption = self.$refs.caption,\r\n caption = current.opts.caption;\r\n\r\n // Recalculate content dimensions\r\n current.$slide.trigger(\"refresh\");\r\n\r\n // Set caption\r\n if (caption && caption.length) {\r\n self.$caption = $caption;\r\n\r\n $caption\r\n .children()\r\n .eq(0)\r\n .html(caption);\r\n } else {\r\n self.$caption = null;\r\n }\r\n\r\n if (!self.hasHiddenControls && !self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n // Update info and navigation elements\r\n $container.find(\"[data-fancybox-count]\").html(self.group.length);\r\n $container.find(\"[data-fancybox-index]\").html(index + 1);\r\n\r\n $container.find(\"[data-fancybox-prev]\").prop(\"disabled\", !current.opts.loop && index <= 0);\r\n $container.find(\"[data-fancybox-next]\").prop(\"disabled\", !current.opts.loop && index >= self.group.length - 1);\r\n\r\n if (current.type === \"image\") {\r\n // Re-enable buttons; update download button source\r\n $container\r\n .find(\"[data-fancybox-zoom]\")\r\n .show()\r\n .end()\r\n .find(\"[data-fancybox-download]\")\r\n .attr(\"href\", current.opts.image.src || current.src)\r\n .show();\r\n } else if (current.opts.toolbar) {\r\n $container.find(\"[data-fancybox-download],[data-fancybox-zoom]\").hide();\r\n }\r\n\r\n // Make sure focus is not on disabled button/element\r\n if ($(document.activeElement).is(\":hidden,[disabled]\")) {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Hide toolbar and caption\r\n // ========================\r\n\r\n hideControls: function (andCaption) {\r\n var self = this,\r\n arr = [\"infobar\", \"toolbar\", \"nav\"];\r\n\r\n if (andCaption || !self.current.opts.preventCaptionOverlap) {\r\n arr.push(\"caption\");\r\n }\r\n\r\n this.$refs.container.removeClass(\r\n arr\r\n .map(function (i) {\r\n return \"fancybox-show-\" + i;\r\n })\r\n .join(\" \")\r\n );\r\n\r\n this.hasHiddenControls = true;\r\n },\r\n\r\n showControls: function () {\r\n var self = this,\r\n opts = self.current ? self.current.opts : self.opts,\r\n $container = self.$refs.container;\r\n\r\n self.hasHiddenControls = false;\r\n self.idleSecondsCounter = 0;\r\n\r\n $container\r\n .toggleClass(\"fancybox-show-toolbar\", !!(opts.toolbar && opts.buttons))\r\n .toggleClass(\"fancybox-show-infobar\", !!(opts.infobar && self.group.length > 1))\r\n .toggleClass(\"fancybox-show-caption\", !!self.$caption)\r\n .toggleClass(\"fancybox-show-nav\", !!(opts.arrows && self.group.length > 1))\r\n .toggleClass(\"fancybox-is-modal\", !!opts.modal);\r\n },\r\n\r\n // Toggle toolbar and caption\r\n // ==========================\r\n\r\n toggleControls: function () {\r\n if (this.hasHiddenControls) {\r\n this.showControls();\r\n } else {\r\n this.hideControls();\r\n }\r\n }\r\n });\r\n\r\n $.fancybox = {\r\n version: \"3.5.7\",\r\n defaults: defaults,\r\n\r\n // Get current instance and execute a command.\r\n //\r\n // Examples of usage:\r\n //\r\n // $instance = $.fancybox.getInstance();\r\n // $.fancybox.getInstance().jumpTo( 1 );\r\n // $.fancybox.getInstance( 'jumpTo', 1 );\r\n // $.fancybox.getInstance( function() {\r\n // console.info( this.currIndex );\r\n // });\r\n // ======================================================\r\n\r\n getInstance: function (command) {\r\n var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):last').data(\"FancyBox\"),\r\n args = Array.prototype.slice.call(arguments, 1);\r\n\r\n if (instance instanceof FancyBox) {\r\n if ($.type(command) === \"string\") {\r\n instance[command].apply(instance, args);\r\n } else if ($.type(command) === \"function\") {\r\n command.apply(instance, args);\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Create new instance\r\n // ===================\r\n\r\n open: function (items, opts, index) {\r\n return new FancyBox(items, opts, index);\r\n },\r\n\r\n // Close current or all instances\r\n // ==============================\r\n\r\n close: function (all) {\r\n var instance = this.getInstance();\r\n\r\n if (instance) {\r\n instance.close();\r\n\r\n // Try to find and close next instance\r\n if (all === true) {\r\n this.close(all);\r\n }\r\n }\r\n },\r\n\r\n // Close all instances and unbind all events\r\n // =========================================\r\n\r\n destroy: function () {\r\n this.close(true);\r\n\r\n $D.add(\"body\").off(\"click.fb-start\", \"**\");\r\n },\r\n\r\n // Try to detect mobile devices\r\n // ============================\r\n\r\n isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\r\n\r\n // Detect if 'translate3d' support is available\r\n // ============================================\r\n\r\n use3d: (function () {\r\n var div = document.createElement(\"div\");\r\n\r\n return (\r\n window.getComputedStyle &&\r\n window.getComputedStyle(div) &&\r\n window.getComputedStyle(div).getPropertyValue(\"transform\") &&\r\n !(document.documentMode && document.documentMode < 11)\r\n );\r\n })(),\r\n\r\n // Helper function to get current visual state of an element\r\n // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\r\n // =====================================================================\r\n\r\n getTranslate: function ($el) {\r\n var domRect;\r\n\r\n if (!$el || !$el.length) {\r\n return false;\r\n }\r\n\r\n domRect = $el[0].getBoundingClientRect();\r\n\r\n return {\r\n top: domRect.top || 0,\r\n left: domRect.left || 0,\r\n width: domRect.width,\r\n height: domRect.height,\r\n opacity: parseFloat($el.css(\"opacity\"))\r\n };\r\n },\r\n\r\n // Shortcut for setting \"translate3d\" properties for element\r\n // Can set be used to set opacity, too\r\n // ========================================================\r\n\r\n setTranslate: function ($el, props) {\r\n var str = \"\",\r\n css = {};\r\n\r\n if (!$el || !props) {\r\n return;\r\n }\r\n\r\n if (props.left !== undefined || props.top !== undefined) {\r\n str =\r\n (props.left === undefined ? $el.position().left : props.left) +\r\n \"px, \" +\r\n (props.top === undefined ? $el.position().top : props.top) +\r\n \"px\";\r\n\r\n if (this.use3d) {\r\n str = \"translate3d(\" + str + \", 0px)\";\r\n } else {\r\n str = \"translate(\" + str + \")\";\r\n }\r\n }\r\n\r\n if (props.scaleX !== undefined && props.scaleY !== undefined) {\r\n str += \" scale(\" + props.scaleX + \", \" + props.scaleY + \")\";\r\n } else if (props.scaleX !== undefined) {\r\n str += \" scaleX(\" + props.scaleX + \")\";\r\n }\r\n\r\n if (str.length) {\r\n css.transform = str;\r\n }\r\n\r\n if (props.opacity !== undefined) {\r\n css.opacity = props.opacity;\r\n }\r\n\r\n if (props.width !== undefined) {\r\n css.width = props.width;\r\n }\r\n\r\n if (props.height !== undefined) {\r\n css.height = props.height;\r\n }\r\n\r\n return $el.css(css);\r\n },\r\n\r\n // Simple CSS transition handler\r\n // =============================\r\n\r\n animate: function ($el, to, duration, callback, leaveAnimationName) {\r\n var self = this,\r\n from;\r\n\r\n if ($.isFunction(duration)) {\r\n callback = duration;\r\n duration = null;\r\n }\r\n\r\n self.stop($el);\r\n\r\n from = self.getTranslate($el);\r\n\r\n $el.on(transitionEnd, function (e) {\r\n // Skip events from child elements and z-index change\r\n if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == \"z-index\")) {\r\n return;\r\n }\r\n\r\n self.stop($el);\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", \"\");\r\n }\r\n\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n self.setTranslate($el, {\r\n top: to.top,\r\n left: to.left,\r\n width: from.width * to.scaleX,\r\n height: from.height * to.scaleY,\r\n scaleX: 1,\r\n scaleY: 1\r\n });\r\n }\r\n } else if (leaveAnimationName !== true) {\r\n $el.removeClass(to);\r\n }\r\n\r\n if ($.isFunction(callback)) {\r\n callback(e);\r\n }\r\n });\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Start animation by changing CSS properties or class name\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n delete to.width;\r\n delete to.height;\r\n\r\n if ($el.parent().hasClass(\"fancybox-slide--image\")) {\r\n $el.parent().addClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n\r\n $.fancybox.setTranslate($el, to);\r\n } else {\r\n $el.addClass(to);\r\n }\r\n\r\n // Make sure that `transitionend` callback gets fired\r\n $el.data(\r\n \"timer\",\r\n setTimeout(function () {\r\n $el.trigger(transitionEnd);\r\n }, duration + 33)\r\n );\r\n },\r\n\r\n stop: function ($el, callCallback) {\r\n if ($el && $el.length) {\r\n clearTimeout($el.data(\"timer\"));\r\n\r\n if (callCallback) {\r\n $el.trigger(transitionEnd);\r\n }\r\n\r\n $el.off(transitionEnd).css(\"transition-duration\", \"\");\r\n\r\n $el.parent().removeClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n };\r\n\r\n // Default click handler for \"fancyboxed\" links\r\n // ============================================\r\n\r\n function _run(e, opts) {\r\n var items = [],\r\n index = 0,\r\n $target,\r\n value,\r\n instance;\r\n\r\n // Avoid opening multiple times\r\n if (e && e.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n opts = opts || {};\r\n\r\n if (e && e.data) {\r\n opts = mergeOpts(e.data.options, opts);\r\n }\r\n\r\n $target = opts.$target || $(e.currentTarget).trigger(\"blur\");\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance && instance.$trigger && instance.$trigger.is($target)) {\r\n return;\r\n }\r\n\r\n if (opts.selector) {\r\n items = $(opts.selector);\r\n } else {\r\n // Get all related items and find index for clicked one\r\n value = $target.attr(\"data-fancybox\") || \"\";\r\n\r\n if (value) {\r\n items = e.data ? e.data.items : [];\r\n items = items.length ? items.filter('[data-fancybox=\"' + value + '\"]') : $('[data-fancybox=\"' + value + '\"]');\r\n } else {\r\n items = [$target];\r\n }\r\n }\r\n\r\n index = $(items).index($target);\r\n\r\n // Sometimes current item can not be found\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n\r\n instance = $.fancybox.open(items, opts, index);\r\n\r\n // Save last active element\r\n instance.$trigger = $target;\r\n }\r\n\r\n // Create a jQuery plugin\r\n // ======================\r\n\r\n $.fn.fancybox = function (options) {\r\n var selector;\r\n\r\n options = options || {};\r\n selector = options.selector || false;\r\n\r\n if (selector) {\r\n // Use body element instead of document so it executes first\r\n $(\"body\")\r\n .off(\"click.fb-start\", selector)\r\n .on(\"click.fb-start\", selector, {\r\n options: options\r\n }, _run);\r\n } else {\r\n this.off(\"click.fb-start\").on(\r\n \"click.fb-start\", {\r\n items: this,\r\n options: options\r\n },\r\n _run\r\n );\r\n }\r\n\r\n return this;\r\n };\r\n\r\n // Self initializing plugin for all elements having `data-fancybox` attribute\r\n // ==========================================================================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox]\", _run);\r\n\r\n // Enable \"trigger elements\"\r\n // =========================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox-trigger]\", function (e) {\r\n $('[data-fancybox=\"' + $(this).attr(\"data-fancybox-trigger\") + '\"]')\r\n .eq($(this).attr(\"data-fancybox-index\") || 0)\r\n .trigger(\"click.fb-start\", {\r\n $trigger: $(this)\r\n });\r\n });\r\n\r\n // Track focus event for better accessibility styling\r\n // ==================================================\r\n (function () {\r\n var buttonStr = \".fancybox-button\",\r\n focusStr = \"fancybox-focus\",\r\n $pressed = null;\r\n\r\n $D.on(\"mousedown mouseup focus blur\", buttonStr, function (e) {\r\n switch (e.type) {\r\n case \"mousedown\":\r\n $pressed = $(this);\r\n break;\r\n case \"mouseup\":\r\n $pressed = null;\r\n break;\r\n case \"focusin\":\r\n $(buttonStr).removeClass(focusStr);\r\n\r\n if (!$(this).is($pressed) && !$(this).is(\"[disabled]\")) {\r\n $(this).addClass(focusStr);\r\n }\r\n break;\r\n case \"focusout\":\r\n $(buttonStr).removeClass(focusStr);\r\n break;\r\n }\r\n });\r\n })();\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// Media\r\n// Adds additional media type support\r\n//\r\n// ==========================================================================\r\n(function ($) {\r\n \"use strict\";\r\n\r\n // Object containing properties for each media type\r\n var defaults = {\r\n youtube: {\r\n matcher: /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\r\n params: {\r\n autoplay: 1,\r\n autohide: 1,\r\n fs: 1,\r\n rel: 0,\r\n hd: 1,\r\n wmode: \"transparent\",\r\n enablejsapi: 1,\r\n html5: 1\r\n },\r\n paramPlace: 8,\r\n type: \"iframe\",\r\n url: \"https://www.youtube-nocookie.com/embed/$4\",\r\n thumb: \"https://img.youtube.com/vi/$4/hqdefault.jpg\"\r\n },\r\n\r\n vimeo: {\r\n matcher: /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\r\n params: {\r\n autoplay: 1,\r\n hd: 1,\r\n show_title: 1,\r\n show_byline: 1,\r\n show_portrait: 0,\r\n fullscreen: 1\r\n },\r\n paramPlace: 3,\r\n type: \"iframe\",\r\n url: \"//player.vimeo.com/video/$2\"\r\n },\r\n\r\n instagram: {\r\n matcher: /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\r\n type: \"image\",\r\n url: \"//$1/p/$2/media/?size=l\"\r\n },\r\n\r\n // Examples:\r\n // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\r\n // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z\r\n // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en\r\n // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\r\n gmap_place: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return (\r\n \"//maps.google.\" +\r\n rez[2] +\r\n \"/?ll=\" +\r\n (rez[9] ? rez[9] + \"&z=\" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\\//, \"&\") : \"\") : rez[12] + \"\").replace(/\\?/, \"&\") +\r\n \"&output=\" +\r\n (rez[12] && rez[12].indexOf(\"layer=c\") > 0 ? \"svembed\" : \"embed\")\r\n );\r\n }\r\n },\r\n\r\n // Examples:\r\n // https://www.google.com/maps/search/Empire+State+Building/\r\n // https://www.google.com/maps/search/?api=1&query=centurylink+field\r\n // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393\r\n gmap_search: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return \"//maps.google.\" + rez[2] + \"/maps?q=\" + rez[5].replace(\"query=\", \"q=\").replace(\"api=1\", \"\") + \"&output=embed\";\r\n }\r\n }\r\n };\r\n\r\n // Formats matching url to final form\r\n var format = function (url, rez, params) {\r\n if (!url) {\r\n return;\r\n }\r\n\r\n params = params || \"\";\r\n\r\n if ($.type(params) === \"object\") {\r\n params = $.param(params, true);\r\n }\r\n\r\n $.each(rez, function (key, value) {\r\n url = url.replace(\"$\" + key, value || \"\");\r\n });\r\n\r\n if (params.length) {\r\n url += (url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + params;\r\n }\r\n\r\n return url;\r\n };\r\n\r\n $(document).on(\"objectNeedsType.fb\", function (e, instance, item) {\r\n var url = item.src || \"\",\r\n type = false,\r\n media,\r\n thumb,\r\n rez,\r\n params,\r\n urlParams,\r\n paramObj,\r\n provider;\r\n\r\n media = $.extend(true, {}, defaults, item.opts.media);\r\n\r\n // Look for any matching media type\r\n $.each(media, function (providerName, providerOpts) {\r\n rez = url.match(providerOpts.matcher);\r\n\r\n if (!rez) {\r\n return;\r\n }\r\n\r\n type = providerOpts.type;\r\n provider = providerName;\r\n paramObj = {};\r\n\r\n if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {\r\n urlParams = rez[providerOpts.paramPlace];\r\n\r\n if (urlParams[0] == \"?\") {\r\n urlParams = urlParams.substring(1);\r\n }\r\n\r\n urlParams = urlParams.split(\"&\");\r\n\r\n for (var m = 0; m < urlParams.length; ++m) {\r\n var p = urlParams[m].split(\"=\", 2);\r\n\r\n if (p.length == 2) {\r\n paramObj[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\r\n }\r\n }\r\n }\r\n\r\n params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);\r\n\r\n url =\r\n $.type(providerOpts.url) === \"function\" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);\r\n\r\n thumb =\r\n $.type(providerOpts.thumb) === \"function\" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);\r\n\r\n if (providerName === \"youtube\") {\r\n url = url.replace(/&t=((\\d+)m)?(\\d+)s/, function (match, p1, m, s) {\r\n return \"&start=\" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));\r\n });\r\n } else if (providerName === \"vimeo\") {\r\n url = url.replace(\"&%23\", \"#\");\r\n }\r\n\r\n return false;\r\n });\r\n\r\n // If it is found, then change content type and update the url\r\n\r\n if (type) {\r\n if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {\r\n item.opts.thumb = thumb;\r\n }\r\n\r\n if (type === \"iframe\") {\r\n item.opts = $.extend(true, item.opts, {\r\n iframe: {\r\n preload: false,\r\n attr: {\r\n scrolling: \"no\"\r\n }\r\n }\r\n });\r\n }\r\n\r\n $.extend(item, {\r\n type: type,\r\n src: url,\r\n origSrc: item.src,\r\n contentSource: provider,\r\n contentType: type === \"image\" ? \"image\" : provider == \"gmap_place\" || provider == \"gmap_search\" ? \"map\" : \"video\"\r\n });\r\n } else if (url) {\r\n item.type = item.opts.defaultType;\r\n }\r\n });\r\n\r\n // Load YouTube/Video API on request to detect when video finished playing\r\n var VideoAPILoader = {\r\n youtube: {\r\n src: \"https://www.youtube.com/iframe_api\",\r\n class: \"YT\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n vimeo: {\r\n src: \"https://player.vimeo.com/api/player.js\",\r\n class: \"Vimeo\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n load: function (vendor) {\r\n var _this = this,\r\n script;\r\n\r\n if (this[vendor].loaded) {\r\n setTimeout(function () {\r\n _this.done(vendor);\r\n });\r\n return;\r\n }\r\n\r\n if (this[vendor].loading) {\r\n return;\r\n }\r\n\r\n this[vendor].loading = true;\r\n\r\n script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = this[vendor].src;\r\n\r\n if (vendor === \"youtube\") {\r\n window.onYouTubeIframeAPIReady = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n } else {\r\n script.onload = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n }\r\n\r\n document.body.appendChild(script);\r\n },\r\n done: function (vendor) {\r\n var instance, $el, player;\r\n\r\n if (vendor === \"youtube\") {\r\n delete window.onYouTubeIframeAPIReady;\r\n }\r\n\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n $el = instance.current.$content.find(\"iframe\");\r\n\r\n if (vendor === \"youtube\" && YT !== undefined && YT) {\r\n player = new YT.Player($el.attr(\"id\"), {\r\n events: {\r\n onStateChange: function (e) {\r\n if (e.data == 0) {\r\n instance.next();\r\n }\r\n }\r\n }\r\n });\r\n } else if (vendor === \"vimeo\" && Vimeo !== undefined && Vimeo) {\r\n player = new Vimeo.Player($el);\r\n\r\n player.on(\"ended\", function () {\r\n instance.next();\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n $(document).on({\r\n \"afterShow.fb\": function (e, instance, current) {\r\n if (instance.group.length > 1 && (current.contentSource === \"youtube\" || current.contentSource === \"vimeo\")) {\r\n VideoAPILoader.load(current.contentSource);\r\n }\r\n }\r\n });\r\n})(jQuery);\n// ==========================================================================\r\n//\r\n// Guestures\r\n// Adds touch guestures, handles click and tap events\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n var getPointerXY = function (e) {\r\n var result = [];\r\n\r\n e = e.originalEvent || e || window.e;\r\n e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];\r\n\r\n for (var key in e) {\r\n if (e[key].pageX) {\r\n result.push({\r\n x: e[key].pageX,\r\n y: e[key].pageY\r\n });\r\n } else if (e[key].clientX) {\r\n result.push({\r\n x: e[key].clientX,\r\n y: e[key].clientY\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n var distance = function (point2, point1, what) {\r\n if (!point1 || !point2) {\r\n return 0;\r\n }\r\n\r\n if (what === \"x\") {\r\n return point2.x - point1.x;\r\n } else if (what === \"y\") {\r\n return point2.y - point1.y;\r\n }\r\n\r\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\r\n };\r\n\r\n var isClickable = function ($el) {\r\n if (\r\n $el.is('a,area,button,[role=\"button\"],input,label,select,summary,textarea,video,audio,iframe') ||\r\n $.isFunction($el.get(0).onclick) ||\r\n $el.data(\"selectable\")\r\n ) {\r\n return true;\r\n }\r\n\r\n // Check for attributes like data-fancybox-next or data-fancybox-close\r\n for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {\r\n if (atts[i].nodeName.substr(0, 14) === \"data-fancybox-\") {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var hasScrollbars = function (el) {\r\n var overflowY = window.getComputedStyle(el)[\"overflow-y\"],\r\n overflowX = window.getComputedStyle(el)[\"overflow-x\"],\r\n vertical = (overflowY === \"scroll\" || overflowY === \"auto\") && el.scrollHeight > el.clientHeight,\r\n horizontal = (overflowX === \"scroll\" || overflowX === \"auto\") && el.scrollWidth > el.clientWidth;\r\n\r\n return vertical || horizontal;\r\n };\r\n\r\n var isScrollable = function ($el) {\r\n var rez = false;\r\n\r\n while (true) {\r\n rez = hasScrollbars($el.get(0));\r\n\r\n if (rez) {\r\n break;\r\n }\r\n\r\n $el = $el.parent();\r\n\r\n if (!$el.length || $el.hasClass(\"fancybox-stage\") || $el.is(\"body\")) {\r\n break;\r\n }\r\n }\r\n\r\n return rez;\r\n };\r\n\r\n var Guestures = function (instance) {\r\n var self = this;\r\n\r\n self.instance = instance;\r\n\r\n self.$bg = instance.$refs.bg;\r\n self.$stage = instance.$refs.stage;\r\n self.$container = instance.$refs.container;\r\n\r\n self.destroy();\r\n\r\n self.$container.on(\"touchstart.fb.touch mousedown.fb.touch\", $.proxy(self, \"ontouchstart\"));\r\n };\r\n\r\n Guestures.prototype.destroy = function () {\r\n var self = this;\r\n\r\n self.$container.off(\".fb.touch\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n self.requestId = null;\r\n }\r\n\r\n if (self.tapped) {\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n }\r\n };\r\n\r\n Guestures.prototype.ontouchstart = function (e) {\r\n var self = this,\r\n $target = $(e.target),\r\n instance = self.instance,\r\n current = instance.current,\r\n $slide = current.$slide,\r\n $content = current.$content,\r\n isTouchDevice = e.type == \"touchstart\";\r\n\r\n // Do not respond to both (touch and mouse) events\r\n if (isTouchDevice) {\r\n self.$container.off(\"mousedown.fb.touch\");\r\n }\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Ignore taping on links, buttons, input elements\r\n if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {\r\n return;\r\n }\r\n // Ignore clicks on the scrollbar\r\n if (!$target.is(\"img\") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Ignore clicks while zooming or closing\r\n if (!current || instance.isAnimating || current.$slide.hasClass(\"fancybox-animated\")) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n return;\r\n }\r\n\r\n self.realPoints = self.startPoints = getPointerXY(e);\r\n\r\n if (!self.startPoints.length) {\r\n return;\r\n }\r\n\r\n // Allow other scripts to catch touch event if \"touch\" is set to false\r\n if (current.touch) {\r\n e.stopPropagation();\r\n }\r\n\r\n self.startEvent = e;\r\n\r\n self.canTap = true;\r\n self.$target = $target;\r\n self.$content = $content;\r\n self.opts = current.opts.touch;\r\n\r\n self.isPanning = false;\r\n self.isSwiping = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n self.canPan = instance.canPan();\r\n\r\n self.startTime = new Date().getTime();\r\n self.distanceX = self.distanceY = self.distance = 0;\r\n\r\n self.canvasWidth = Math.round($slide[0].clientWidth);\r\n self.canvasHeight = Math.round($slide[0].clientHeight);\r\n\r\n self.contentLastPos = null;\r\n self.contentStartPos = $.fancybox.getTranslate(self.$content) || {\r\n top: 0,\r\n left: 0\r\n };\r\n self.sliderStartPos = $.fancybox.getTranslate($slide);\r\n\r\n // Since position will be absolute, but we need to make it relative to the stage\r\n self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n self.sliderStartPos.top -= self.stagePos.top;\r\n self.sliderStartPos.left -= self.stagePos.left;\r\n\r\n self.contentStartPos.top -= self.stagePos.top;\r\n self.contentStartPos.left -= self.stagePos.left;\r\n\r\n $(document)\r\n .off(\".fb.touch\")\r\n .on(isTouchDevice ? \"touchend.fb.touch touchcancel.fb.touch\" : \"mouseup.fb.touch mouseleave.fb.touch\", $.proxy(self, \"ontouchend\"))\r\n .on(isTouchDevice ? \"touchmove.fb.touch\" : \"mousemove.fb.touch\", $.proxy(self, \"ontouchmove\"));\r\n\r\n if ($.fancybox.isMobile) {\r\n document.addEventListener(\"scroll\", self.onscroll, true);\r\n }\r\n\r\n // Skip if clicked outside the sliding area\r\n if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {\r\n if ($target.is(\".fancybox-image\")) {\r\n e.preventDefault();\r\n }\r\n\r\n if (!($.fancybox.isMobile && $target.parents(\".fancybox-caption\").length)) {\r\n return;\r\n }\r\n }\r\n\r\n self.isScrollable = isScrollable($target) || isScrollable($target.parent());\r\n\r\n // Check if element is scrollable and try to prevent default behavior (scrolling)\r\n if (!($.fancybox.isMobile && self.isScrollable)) {\r\n e.preventDefault();\r\n }\r\n\r\n // One finger or mouse click - swipe or pan an image\r\n if (self.startPoints.length === 1 || current.hasError) {\r\n if (self.canPan) {\r\n $.fancybox.stop(self.$content);\r\n\r\n self.isPanning = true;\r\n } else {\r\n self.isSwiping = true;\r\n }\r\n\r\n self.$container.addClass(\"fancybox-is-grabbing\");\r\n }\r\n\r\n // Two fingers - zoom image\r\n if (self.startPoints.length === 2 && current.type === \"image\" && (current.isLoaded || current.$ghost)) {\r\n self.canTap = false;\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n\r\n self.isZooming = true;\r\n\r\n $.fancybox.stop(self.$content);\r\n\r\n self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();\r\n self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();\r\n\r\n self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;\r\n self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;\r\n\r\n self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);\r\n }\r\n };\r\n\r\n Guestures.prototype.onscroll = function (e) {\r\n var self = this;\r\n\r\n self.isScrolling = true;\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n };\r\n\r\n Guestures.prototype.ontouchmove = function (e) {\r\n var self = this;\r\n\r\n // Make sure user has not released over iframe or disabled element\r\n if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {\r\n self.ontouchend(e);\r\n return;\r\n }\r\n\r\n if (self.isScrolling) {\r\n self.canTap = false;\r\n return;\r\n }\r\n\r\n self.newPoints = getPointerXY(e);\r\n\r\n if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {\r\n return;\r\n }\r\n\r\n if (!(self.isSwiping && self.isSwiping === true)) {\r\n e.preventDefault();\r\n }\r\n\r\n self.distanceX = distance(self.newPoints[0], self.startPoints[0], \"x\");\r\n self.distanceY = distance(self.newPoints[0], self.startPoints[0], \"y\");\r\n\r\n self.distance = distance(self.newPoints[0], self.startPoints[0]);\r\n\r\n // Skip false ontouchmove events (Chrome)\r\n if (self.distance > 0) {\r\n if (self.isSwiping) {\r\n self.onSwipe(e);\r\n } else if (self.isPanning) {\r\n self.onPan();\r\n } else if (self.isZooming) {\r\n self.onZoom();\r\n }\r\n }\r\n };\r\n\r\n Guestures.prototype.onSwipe = function (e) {\r\n var self = this,\r\n instance = self.instance,\r\n swiping = self.isSwiping,\r\n left = self.sliderStartPos.left || 0,\r\n angle;\r\n\r\n // If direction is not yet determined\r\n if (swiping === true) {\r\n // We need at least 10px distance to correctly calculate an angle\r\n if (Math.abs(self.distance) > 10) {\r\n self.canTap = false;\r\n\r\n if (instance.group.length < 2 && self.opts.vertical) {\r\n self.isSwiping = \"y\";\r\n } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === \"auto\" && $(window).width() > 800)) {\r\n self.isSwiping = \"x\";\r\n } else {\r\n angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);\r\n\r\n self.isSwiping = angle > 45 && angle < 135 ? \"y\" : \"x\";\r\n }\r\n\r\n if (self.isSwiping === \"y\" && $.fancybox.isMobile && self.isScrollable) {\r\n self.isScrolling = true;\r\n\r\n return;\r\n }\r\n\r\n instance.isDragging = self.isSwiping;\r\n\r\n // Reset points to avoid jumping, because we dropped first swipes to calculate the angle\r\n self.startPoints = self.newPoints;\r\n\r\n $.each(instance.slides, function (index, slide) {\r\n var slidePos, stagePos;\r\n\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slidePos = $.fancybox.getTranslate(slide.$slide);\r\n stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\",\r\n \"transition-duration\": \"\"\r\n })\r\n .removeClass(\"fancybox-animated\")\r\n .removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n if (slide.pos === instance.current.pos) {\r\n self.sliderStartPos.top = slidePos.top - stagePos.top;\r\n self.sliderStartPos.left = slidePos.left - stagePos.left;\r\n }\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: slidePos.top - stagePos.top,\r\n left: slidePos.left - stagePos.left\r\n });\r\n });\r\n\r\n // Stop slideshow\r\n if (instance.SlideShow && instance.SlideShow.isActive) {\r\n instance.SlideShow.stop();\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Sticky edges\r\n if (swiping == \"x\") {\r\n if (\r\n self.distanceX > 0 &&\r\n (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left + Math.pow(self.distanceX, 0.8);\r\n } else if (\r\n self.distanceX < 0 &&\r\n (self.instance.group.length < 2 ||\r\n (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left - Math.pow(-self.distanceX, 0.8);\r\n } else {\r\n left = left + self.distanceX;\r\n }\r\n }\r\n\r\n self.sliderLastPos = {\r\n top: swiping == \"x\" ? 0 : self.sliderStartPos.top + self.distanceY,\r\n left: left\r\n };\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n if (self.sliderLastPos) {\r\n $.each(self.instance.slides, function (index, slide) {\r\n var pos = slide.pos - self.instance.currPos;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: self.sliderLastPos.top,\r\n left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter\r\n });\r\n });\r\n\r\n self.$container.addClass(\"fancybox-is-sliding\");\r\n }\r\n });\r\n };\r\n\r\n Guestures.prototype.onPan = function () {\r\n var self = this;\r\n\r\n // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)\r\n if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {\r\n self.startPoints = self.newPoints;\r\n return;\r\n }\r\n\r\n self.canTap = false;\r\n\r\n self.contentLastPos = self.limitMovement();\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n // Make panning sticky to the edges\r\n Guestures.prototype.limitMovement = function () {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n var distanceX = self.distanceX;\r\n var distanceY = self.distanceY;\r\n\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;\r\n\r\n if (currentWidth > canvasWidth) {\r\n newOffsetX = currentOffsetX + distanceX;\r\n } else {\r\n newOffsetX = currentOffsetX;\r\n }\r\n\r\n newOffsetY = currentOffsetY + distanceY;\r\n\r\n // Slow down proportionally to traveled distance\r\n minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);\r\n minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);\r\n maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n // ->\r\n if (distanceX > 0 && newOffsetX > minTranslateX) {\r\n newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;\r\n }\r\n\r\n // <-\r\n if (distanceX < 0 && newOffsetX < maxTranslateX) {\r\n newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;\r\n }\r\n\r\n // \\/\r\n if (distanceY > 0 && newOffsetY > minTranslateY) {\r\n newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;\r\n }\r\n\r\n // /\\\r\n if (distanceY < 0 && newOffsetY < maxTranslateY) {\r\n newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n if (newWidth > canvasWidth) {\r\n newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\r\n newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\r\n } else {\r\n // Center horizontally\r\n newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);\r\n }\r\n\r\n if (newHeight > canvasHeight) {\r\n newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\r\n newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\r\n } else {\r\n // Center vertically\r\n newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.onZoom = function () {\r\n var self = this;\r\n\r\n // Calculate current distance between points to get pinch ratio and new width and height\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);\r\n\r\n var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\r\n\r\n var newWidth = Math.floor(currentWidth * pinchRatio);\r\n var newHeight = Math.floor(currentHeight * pinchRatio);\r\n\r\n // This is the translation due to pinch-zooming\r\n var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\r\n var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\r\n\r\n // Point between the two touches\r\n var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();\r\n var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();\r\n\r\n // And this is the translation due to translation of the centerpoint\r\n // between the two fingers\r\n var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\r\n var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\r\n\r\n // The new offset is the old/current one plus the total translation\r\n var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);\r\n var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);\r\n\r\n var newPos = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n scaleX: pinchRatio,\r\n scaleY: pinchRatio\r\n };\r\n\r\n self.canTap = false;\r\n\r\n self.newWidth = newWidth;\r\n self.newHeight = newHeight;\r\n\r\n self.contentLastPos = newPos;\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n Guestures.prototype.ontouchend = function (e) {\r\n var self = this;\r\n\r\n var swiping = self.isSwiping;\r\n var panning = self.isPanning;\r\n var zooming = self.isZooming;\r\n var scrolling = self.isScrolling;\r\n\r\n self.endPoints = getPointerXY(e);\r\n self.dMs = Math.max(new Date().getTime() - self.startTime, 1);\r\n\r\n self.$container.removeClass(\"fancybox-is-grabbing\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n\r\n self.instance.isDragging = false;\r\n\r\n if (self.canTap) {\r\n return self.onTap(e);\r\n }\r\n\r\n self.speed = 100;\r\n\r\n // Speed in px/ms\r\n self.velocityX = (self.distanceX / self.dMs) * 0.5;\r\n self.velocityY = (self.distanceY / self.dMs) * 0.5;\r\n\r\n if (panning) {\r\n self.endPanning();\r\n } else if (zooming) {\r\n self.endZooming();\r\n } else {\r\n self.endSwiping(swiping, scrolling);\r\n }\r\n\r\n return;\r\n };\r\n\r\n Guestures.prototype.endSwiping = function (swiping, scrolling) {\r\n var self = this,\r\n ret = false,\r\n len = self.instance.group.length,\r\n distanceX = Math.abs(self.distanceX),\r\n canAdvance = swiping == \"x\" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),\r\n speedX = 300;\r\n\r\n self.sliderLastPos = null;\r\n\r\n // Close if swiped vertically / navigate if horizontally\r\n if (swiping == \"y\" && !scrolling && Math.abs(self.distanceY) > 50) {\r\n // Continue vertical movement\r\n $.fancybox.animate(\r\n self.instance.current.$slide, {\r\n top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,\r\n opacity: 0\r\n },\r\n 200\r\n );\r\n ret = self.instance.close(true, 250);\r\n } else if (canAdvance && self.distanceX > 0) {\r\n ret = self.instance.previous(speedX);\r\n } else if (canAdvance && self.distanceX < 0) {\r\n ret = self.instance.next(speedX);\r\n }\r\n\r\n if (ret === false && (swiping == \"x\" || swiping == \"y\")) {\r\n self.instance.centerSlide(200);\r\n }\r\n\r\n self.$container.removeClass(\"fancybox-is-sliding\");\r\n };\r\n\r\n // Limit panning from edges\r\n // ========================\r\n Guestures.prototype.endPanning = function () {\r\n var self = this,\r\n newOffsetX,\r\n newOffsetY,\r\n newPos;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n if (self.opts.momentum === false || self.dMs > 350) {\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n } else {\r\n // Continue movement\r\n newOffsetX = self.contentLastPos.left + self.velocityX * 500;\r\n newOffsetY = self.contentLastPos.top + self.velocityY * 500;\r\n }\r\n\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\r\n\r\n newPos.width = self.contentStartPos.width;\r\n newPos.height = self.contentStartPos.height;\r\n\r\n $.fancybox.animate(self.$content, newPos, 366);\r\n };\r\n\r\n Guestures.prototype.endZooming = function () {\r\n var self = this;\r\n\r\n var current = self.instance.current;\r\n\r\n var newOffsetX, newOffsetY, newPos, reset;\r\n\r\n var newWidth = self.newWidth;\r\n var newHeight = self.newHeight;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n\r\n reset = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n width: newWidth,\r\n height: newHeight,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n // Reset scalex/scaleY values; this helps for perfomance and does not break animation\r\n $.fancybox.setTranslate(self.$content, reset);\r\n\r\n if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {\r\n self.instance.scaleToFit(150);\r\n } else if (newWidth > current.width || newHeight > current.height) {\r\n self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);\r\n } else {\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);\r\n\r\n $.fancybox.animate(self.$content, newPos, 150);\r\n }\r\n };\r\n\r\n Guestures.prototype.onTap = function (e) {\r\n var self = this;\r\n var $target = $(e.target);\r\n\r\n var instance = self.instance;\r\n var current = instance.current;\r\n\r\n var endPoints = (e && getPointerXY(e)) || self.startPoints;\r\n\r\n var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;\r\n var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;\r\n\r\n var where;\r\n\r\n var process = function (prefix) {\r\n var action = current.opts[prefix];\r\n\r\n if ($.isFunction(action)) {\r\n action = action.apply(instance, [current, e]);\r\n }\r\n\r\n if (!action) {\r\n return;\r\n }\r\n\r\n switch (action) {\r\n case \"close\":\r\n instance.close(self.startEvent);\r\n\r\n break;\r\n\r\n case \"toggleControls\":\r\n instance.toggleControls();\r\n\r\n break;\r\n\r\n case \"next\":\r\n instance.next();\r\n\r\n break;\r\n\r\n case \"nextOrClose\":\r\n if (instance.group.length > 1) {\r\n instance.next();\r\n } else {\r\n instance.close(self.startEvent);\r\n }\r\n\r\n break;\r\n\r\n case \"zoom\":\r\n if (current.type == \"image\" && (current.isLoaded || current.$ghost)) {\r\n if (instance.canPan()) {\r\n instance.scaleToFit();\r\n } else if (instance.isScaledDown()) {\r\n instance.scaleToActual(tapX, tapY);\r\n } else if (instance.group.length < 2) {\r\n instance.close(self.startEvent);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n };\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Skip if clicked on the scrollbar\r\n if (!$target.is(\"img\") && tapX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Check where is clicked\r\n if ($target.is(\".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container\")) {\r\n where = \"Outside\";\r\n } else if ($target.is(\".fancybox-slide\")) {\r\n where = \"Slide\";\r\n } else if (\r\n instance.current.$content &&\r\n instance.current.$content\r\n .find($target)\r\n .addBack()\r\n .filter($target).length\r\n ) {\r\n where = \"Content\";\r\n } else {\r\n return;\r\n }\r\n\r\n // Check if this is a double tap\r\n if (self.tapped) {\r\n // Stop previously created single tap\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n\r\n // Skip if distance between taps is too big\r\n if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {\r\n return this;\r\n }\r\n\r\n // OK, now we assume that this is a double-tap\r\n process(\"dblclick\" + where);\r\n } else {\r\n // Single tap will be processed if user has not clicked second time within 300ms\r\n // or there is no need to wait for double-tap\r\n self.tapX = tapX;\r\n self.tapY = tapY;\r\n\r\n if (current.opts[\"dblclick\" + where] && current.opts[\"dblclick\" + where] !== current.opts[\"click\" + where]) {\r\n self.tapped = setTimeout(function () {\r\n self.tapped = null;\r\n\r\n if (!instance.isAnimating) {\r\n process(\"click\" + where);\r\n }\r\n }, 500);\r\n } else {\r\n process(\"click\" + where);\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n $(document)\r\n .on(\"onActivate.fb\", function (e, instance) {\r\n if (instance && !instance.Guestures) {\r\n instance.Guestures = new Guestures(instance);\r\n }\r\n })\r\n .on(\"beforeClose.fb\", function (e, instance) {\r\n if (instance && instance.Guestures) {\r\n instance.Guestures.destroy();\r\n }\r\n });\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// SlideShow\r\n// Enables slideshow functionality\r\n//\r\n// Example of usage:\r\n// $.fancybox.getInstance().SlideShow.start()\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n slideShow: '\"\r\n },\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000,\r\n progress: true\r\n }\r\n });\r\n\r\n var SlideShow = function (instance) {\r\n this.instance = instance;\r\n this.init();\r\n };\r\n\r\n $.extend(SlideShow.prototype, {\r\n timer: null,\r\n isActive: false,\r\n $button: null,\r\n\r\n init: function () {\r\n var self = this,\r\n instance = self.instance,\r\n opts = instance.group[instance.currIndex].opts.slideShow;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-play]\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n if (instance.group.length < 2 || !opts) {\r\n self.$button.hide();\r\n } else if (opts.progress) {\r\n self.$progress = $('
').appendTo(instance.$refs.inner);\r\n }\r\n },\r\n\r\n set: function (force) {\r\n var self = this,\r\n instance = self.instance,\r\n current = instance.current;\r\n\r\n // Check if reached last element\r\n if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {\r\n if (self.isActive && current.contentType !== \"video\") {\r\n if (self.$progress) {\r\n $.fancybox.animate(self.$progress.show(), {\r\n scaleX: 1\r\n }, current.opts.slideShow.speed);\r\n }\r\n\r\n self.timer = setTimeout(function () {\r\n if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) {\r\n instance.jumpTo(0);\r\n } else {\r\n instance.next();\r\n }\r\n }, current.opts.slideShow.speed);\r\n }\r\n } else {\r\n self.stop();\r\n instance.idleSecondsCounter = 0;\r\n instance.showControls();\r\n }\r\n },\r\n\r\n clear: function () {\r\n var self = this;\r\n\r\n clearTimeout(self.timer);\r\n\r\n self.timer = null;\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n start: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n if (current) {\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP)\r\n .removeClass(\"fancybox-button--play\")\r\n .addClass(\"fancybox-button--pause\");\r\n\r\n self.isActive = true;\r\n\r\n if (current.isComplete) {\r\n self.set(true);\r\n }\r\n\r\n self.instance.trigger(\"onSlideShowChange\", true);\r\n }\r\n },\r\n\r\n stop: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n self.clear();\r\n\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START)\r\n .removeClass(\"fancybox-button--pause\")\r\n .addClass(\"fancybox-button--play\");\r\n\r\n self.isActive = false;\r\n\r\n self.instance.trigger(\"onSlideShowChange\", false);\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n toggle: function () {\r\n var self = this;\r\n\r\n if (self.isActive) {\r\n self.stop();\r\n } else {\r\n self.start();\r\n }\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n if (instance && !instance.SlideShow) {\r\n instance.SlideShow = new SlideShow(instance);\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (firstRun) {\r\n if (SlideShow && current.opts.slideShow.autoStart) {\r\n SlideShow.start();\r\n }\r\n } else if (SlideShow && SlideShow.isActive) {\r\n SlideShow.clear();\r\n }\r\n },\r\n\r\n \"afterShow.fb\": function (e, instance, current) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n SlideShow.set();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n // \"P\" or Spacebar\r\n if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is(\"button,a,input\")) {\r\n keypress.preventDefault();\r\n\r\n SlideShow.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb onDeactivate.fb\": function (e, instance) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow) {\r\n SlideShow.stop();\r\n }\r\n }\r\n });\r\n\r\n // Page Visibility API to pause slideshow when window is not active\r\n $(document).on(\"visibilitychange\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n if (document.hidden) {\r\n SlideShow.clear();\r\n } else {\r\n SlideShow.set();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// FullScreen\r\n// Adds fullscreen functionality\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n // Collection of methods supported by user browser\r\n var fn = (function () {\r\n var fnMap = [\r\n [\"requestFullscreen\", \"exitFullscreen\", \"fullscreenElement\", \"fullscreenEnabled\", \"fullscreenchange\", \"fullscreenerror\"],\r\n // new WebKit\r\n [\r\n \"webkitRequestFullscreen\",\r\n \"webkitExitFullscreen\",\r\n \"webkitFullscreenElement\",\r\n \"webkitFullscreenEnabled\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n // old WebKit (Safari 5.1)\r\n [\r\n \"webkitRequestFullScreen\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitCurrentFullScreenElement\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n [\r\n \"mozRequestFullScreen\",\r\n \"mozCancelFullScreen\",\r\n \"mozFullScreenElement\",\r\n \"mozFullScreenEnabled\",\r\n \"mozfullscreenchange\",\r\n \"mozfullscreenerror\"\r\n ],\r\n [\"msRequestFullscreen\", \"msExitFullscreen\", \"msFullscreenElement\", \"msFullscreenEnabled\", \"MSFullscreenChange\", \"MSFullscreenError\"]\r\n ];\r\n\r\n var ret = {};\r\n\r\n for (var i = 0; i < fnMap.length; i++) {\r\n var val = fnMap[i];\r\n\r\n if (val && val[1] in document) {\r\n for (var j = 0; j < val.length; j++) {\r\n ret[fnMap[0][j]] = val[j];\r\n }\r\n\r\n return ret;\r\n }\r\n }\r\n\r\n return false;\r\n })();\r\n\r\n if (fn) {\r\n var FullScreen = {\r\n request: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);\r\n },\r\n exit: function () {\r\n document[fn.exitFullscreen]();\r\n },\r\n toggle: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n if (this.isFullscreen()) {\r\n this.exit();\r\n } else {\r\n this.request(elem);\r\n }\r\n },\r\n isFullscreen: function () {\r\n return Boolean(document[fn.fullscreenElement]);\r\n },\r\n enabled: function () {\r\n return Boolean(document[fn.fullscreenEnabled]);\r\n }\r\n };\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n fullScreen: '\"\r\n },\r\n fullScreen: {\r\n autoStart: false\r\n }\r\n });\r\n\r\n $(document).on(fn.fullscreenchange, function () {\r\n var isFullscreen = FullScreen.isFullscreen(),\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n // If image is zooming, then force to stop and reposition properly\r\n if (instance.current && instance.current.type === \"image\" && instance.isAnimating) {\r\n instance.isAnimating = false;\r\n\r\n instance.update(true, true, 0);\r\n\r\n if (!instance.isComplete) {\r\n instance.complete();\r\n }\r\n }\r\n\r\n instance.trigger(\"onFullscreenChange\", isFullscreen);\r\n\r\n instance.$refs.container.toggleClass(\"fancybox-is-fullscreen\", isFullscreen);\r\n\r\n instance.$refs.toolbar\r\n .find(\"[data-fancybox-fullscreen]\")\r\n .toggleClass(\"fancybox-button--fsenter\", !isFullscreen)\r\n .toggleClass(\"fancybox-button--fsexit\", isFullscreen);\r\n }\r\n });\r\n }\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var $container;\r\n\r\n if (!fn) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").remove();\r\n\r\n return;\r\n }\r\n\r\n if (instance && instance.group[instance.currIndex].opts.fullScreen) {\r\n $container = instance.$refs.container;\r\n\r\n $container.on(\"click.fb-fullscreen\", \"[data-fancybox-fullscreen]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n FullScreen.toggle();\r\n });\r\n\r\n if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {\r\n FullScreen.request();\r\n }\r\n\r\n // Expose API\r\n instance.FullScreen = FullScreen;\r\n } else if (instance) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").hide();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n // \"F\"\r\n if (instance && instance.FullScreen && keycode === 70) {\r\n keypress.preventDefault();\r\n\r\n instance.FullScreen.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n if (instance && instance.FullScreen && instance.$refs.container.hasClass(\"fancybox-is-fullscreen\")) {\r\n FullScreen.exit();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// Thumbs\r\n// Displays thumbnails in a grid\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var CLASS = \"fancybox-thumbs\",\r\n CLASS_ACTIVE = CLASS + \"-active\";\r\n\r\n // Make sure there are default values\r\n $.fancybox.defaults = $.extend(\r\n true, {\r\n btnTpl: {\r\n thumbs: '\"\r\n },\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n }\r\n },\r\n $.fancybox.defaults\r\n );\r\n\r\n var FancyThumbs = function (instance) {\r\n this.init(instance);\r\n };\r\n\r\n $.extend(FancyThumbs.prototype, {\r\n $button: null,\r\n $grid: null,\r\n $list: null,\r\n isVisible: false,\r\n isActive: false,\r\n\r\n init: function (instance) {\r\n var self = this,\r\n group = instance.group,\r\n enabled = 0;\r\n\r\n self.instance = instance;\r\n self.opts = group[instance.currIndex].opts.thumbs;\r\n\r\n instance.Thumbs = self;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-thumbs]\");\r\n\r\n // Enable thumbs if at least two group items have thumbnails\r\n for (var i = 0, len = group.length; i < len; i++) {\r\n if (group[i].thumb) {\r\n enabled++;\r\n }\r\n\r\n if (enabled > 1) {\r\n break;\r\n }\r\n }\r\n\r\n if (enabled > 1 && !!self.opts) {\r\n self.$button.removeAttr(\"style\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n self.isActive = true;\r\n } else {\r\n self.$button.hide();\r\n }\r\n },\r\n\r\n create: function () {\r\n var self = this,\r\n instance = self.instance,\r\n parentEl = self.opts.parentEl,\r\n list = [],\r\n src;\r\n\r\n if (!self.$grid) {\r\n // Create main element\r\n self.$grid = $('
').appendTo(\r\n instance.$refs.container\r\n .find(parentEl)\r\n .addBack()\r\n .filter(parentEl)\r\n );\r\n\r\n // Add \"click\" event that performs gallery navigation\r\n self.$grid.on(\"click\", \"a\", function () {\r\n instance.jumpTo($(this).attr(\"data-index\"));\r\n });\r\n }\r\n\r\n // Build the list\r\n if (!self.$list) {\r\n self.$list = $('
').appendTo(self.$grid);\r\n }\r\n\r\n $.each(instance.group, function (i, item) {\r\n src = item.thumb;\r\n\r\n if (!src && item.type === \"image\") {\r\n src = item.src;\r\n }\r\n\r\n list.push(\r\n '\"\r\n );\r\n });\r\n\r\n self.$list[0].innerHTML = list.join(\"\");\r\n\r\n if (self.opts.axis === \"x\") {\r\n // Set fixed width for list element to enable horizontal scrolling\r\n self.$list.width(\r\n parseInt(self.$grid.css(\"padding-right\"), 10) +\r\n instance.group.length *\r\n self.$list\r\n .children()\r\n .eq(0)\r\n .outerWidth(true)\r\n );\r\n }\r\n },\r\n\r\n focus: function (duration) {\r\n var self = this,\r\n $list = self.$list,\r\n $grid = self.$grid,\r\n thumb,\r\n thumbPos;\r\n\r\n if (!self.instance.current) {\r\n return;\r\n }\r\n\r\n thumb = $list\r\n .children()\r\n .removeClass(CLASS_ACTIVE)\r\n .filter('[data-index=\"' + self.instance.current.index + '\"]')\r\n .addClass(CLASS_ACTIVE);\r\n\r\n thumbPos = thumb.position();\r\n\r\n // Check if need to scroll to make current thumb visible\r\n if (self.opts.axis === \"y\" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {\r\n $list.stop().animate({\r\n scrollTop: $list.scrollTop() + thumbPos.top\r\n },\r\n duration\r\n );\r\n } else if (\r\n self.opts.axis === \"x\" &&\r\n (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))\r\n ) {\r\n $list\r\n .parent()\r\n .stop()\r\n .animate({\r\n scrollLeft: thumbPos.left\r\n },\r\n duration\r\n );\r\n }\r\n },\r\n\r\n update: function () {\r\n var that = this;\r\n that.instance.$refs.container.toggleClass(\"fancybox-show-thumbs\", this.isVisible);\r\n\r\n if (that.isVisible) {\r\n if (!that.$grid) {\r\n that.create();\r\n }\r\n\r\n that.instance.trigger(\"onThumbsShow\");\r\n\r\n that.focus(0);\r\n } else if (that.$grid) {\r\n that.instance.trigger(\"onThumbsHide\");\r\n }\r\n\r\n // Update content position\r\n that.instance.update();\r\n },\r\n\r\n hide: function () {\r\n this.isVisible = false;\r\n this.update();\r\n },\r\n\r\n show: function () {\r\n this.isVisible = true;\r\n this.update();\r\n },\r\n\r\n toggle: function () {\r\n this.isVisible = !this.isVisible;\r\n this.update();\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var Thumbs;\r\n\r\n if (instance && !instance.Thumbs) {\r\n Thumbs = new FancyThumbs(instance);\r\n\r\n if (Thumbs.isActive && Thumbs.opts.autoStart === true) {\r\n Thumbs.show();\r\n }\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, item, firstRun) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible) {\r\n Thumbs.focus(firstRun ? 0 : 250);\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n // \"G\"\r\n if (Thumbs && Thumbs.isActive && keycode === 71) {\r\n keypress.preventDefault();\r\n\r\n Thumbs.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {\r\n Thumbs.$grid.hide();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n//// ==========================================================================\r\n//\r\n// Share\r\n// Displays simple form for sharing current url\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n share: '\"\r\n },\r\n share: {\r\n url: function (instance, item) {\r\n return (\r\n (!instance.currentHash && !(item.type === \"inline\" || item.type === \"html\") ? item.origSrc || item.src : false) || window.location\r\n );\r\n },\r\n tpl: '
' +\r\n \"

{{SHARE}}

\" +\r\n \"

\" +\r\n '' +\r\n '' +\r\n \"Facebook\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Twitter\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Pinterest\" +\r\n \"\" +\r\n \"

\" +\r\n '

' +\r\n \"
\"\r\n }\r\n });\r\n\r\n function escapeHtml(string) {\r\n var entityMap = {\r\n \"&\": \"&\",\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n '\"': \""\",\r\n \"'\": \"'\",\r\n \"/\": \"/\",\r\n \"`\": \"`\",\r\n \"=\": \"=\"\r\n };\r\n\r\n return String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\r\n return entityMap[s];\r\n });\r\n }\r\n\r\n $(document).on(\"click\", \"[data-fancybox-share]\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n current = instance.current || null,\r\n url,\r\n tpl;\r\n\r\n if (!current) {\r\n return;\r\n }\r\n\r\n if ($.type(current.opts.share.url) === \"function\") {\r\n url = current.opts.share.url.apply(current, [instance, current]);\r\n }\r\n\r\n tpl = current.opts.share.tpl\r\n .replace(/\\{\\{media\\}\\}/g, current.type === \"image\" ? encodeURIComponent(current.src) : \"\")\r\n .replace(/\\{\\{url\\}\\}/g, encodeURIComponent(url))\r\n .replace(/\\{\\{url_raw\\}\\}/g, escapeHtml(url))\r\n .replace(/\\{\\{descr\\}\\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : \"\");\r\n\r\n $.fancybox.open({\r\n src: instance.translate(instance, tpl),\r\n type: \"html\",\r\n opts: {\r\n touch: false,\r\n animationEffect: false,\r\n afterLoad: function (shareInstance, shareCurrent) {\r\n // Close self if parent instance is closing\r\n instance.$refs.container.one(\"beforeClose.fb\", function () {\r\n shareInstance.close(null, 0);\r\n });\r\n\r\n // Opening links in a popup window\r\n shareCurrent.$content.find(\".fancybox-share__button\").click(function () {\r\n window.open(this.href, \"Share\", \"width=550, height=450\");\r\n return false;\r\n });\r\n },\r\n mobile: {\r\n autoFocus: false\r\n }\r\n }\r\n });\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// Hash\r\n// Enables linking to each modal\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n // Simple $.escapeSelector polyfill (for jQuery prior v3)\r\n if (!$.escapeSelector) {\r\n $.escapeSelector = function (sel) {\r\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\r\n var fcssescape = function (ch, asCodePoint) {\r\n if (asCodePoint) {\r\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n if (ch === \"\\0\") {\r\n return \"\\uFFFD\";\r\n }\r\n\r\n // Control characters and (dependent upon position) numbers get escaped as code points\r\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\r\n }\r\n\r\n // Other potentially-special ASCII characters get backslash-escaped\r\n return \"\\\\\" + ch;\r\n };\r\n\r\n return (sel + \"\").replace(rcssescape, fcssescape);\r\n };\r\n }\r\n\r\n // Get info about gallery name and current index from url\r\n function parseUrl() {\r\n var hash = window.location.hash.substr(1),\r\n rez = hash.split(\"-\"),\r\n index = rez.length > 1 && /^\\+?\\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,\r\n gallery = rez.join(\"-\");\r\n\r\n return {\r\n hash: hash,\r\n /* Index is starting from 1 */\r\n index: index < 1 ? 1 : index,\r\n gallery: gallery\r\n };\r\n }\r\n\r\n // Trigger click evnt on links to open new fancyBox instance\r\n function triggerFromUrl(url) {\r\n if (url.gallery !== \"\") {\r\n // If we can find element matching 'data-fancybox' atribute,\r\n // then triggering click event should start fancyBox\r\n $(\"[data-fancybox='\" + $.escapeSelector(url.gallery) + \"']\")\r\n .eq(url.index - 1)\r\n .focus()\r\n .trigger(\"click.fb-start\");\r\n }\r\n }\r\n\r\n // Get gallery name from current instance\r\n function getGalleryID(instance) {\r\n var opts, ret;\r\n\r\n if (!instance) {\r\n return false;\r\n }\r\n\r\n opts = instance.current ? instance.current.opts : instance.opts;\r\n ret = opts.hash || (opts.$orig ? opts.$orig.data(\"fancybox\") || opts.$orig.data(\"fancybox-trigger\") : \"\");\r\n\r\n return ret === \"\" ? false : ret;\r\n }\r\n\r\n // Start when DOM becomes ready\r\n $(function () {\r\n // Check if user has disabled this module\r\n if ($.fancybox.defaults.hash === false) {\r\n return;\r\n }\r\n\r\n // Update hash when opening/closing fancyBox\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var url, gallery;\r\n\r\n if (instance.group[instance.currIndex].opts.hash === false) {\r\n return;\r\n }\r\n\r\n url = parseUrl();\r\n gallery = getGalleryID(instance);\r\n\r\n // Make sure gallery start index matches index from hash\r\n if (gallery && url.gallery && gallery == url.gallery) {\r\n instance.currIndex = url.index - 1;\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var gallery;\r\n\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n // Check if need to update window hash\r\n gallery = getGalleryID(instance);\r\n\r\n if (!gallery) {\r\n return;\r\n }\r\n\r\n // Variable containing last hash value set by fancyBox\r\n // It will be used to determine if fancyBox needs to close after hash change is detected\r\n instance.currentHash = gallery + (instance.group.length > 1 ? \"-\" + (current.index + 1) : \"\");\r\n\r\n // If current hash is the same (this instance most likely is opened by hashchange), then do nothing\r\n if (window.location.hash === \"#\" + instance.currentHash) {\r\n return;\r\n }\r\n\r\n if (firstRun && !instance.origHash) {\r\n instance.origHash = window.location.hash;\r\n }\r\n\r\n if (instance.hashTimer) {\r\n clearTimeout(instance.hashTimer);\r\n }\r\n\r\n // Update hash\r\n instance.hashTimer = setTimeout(function () {\r\n if (\"replaceState\" in window.history) {\r\n window.history[firstRun ? \"pushState\" : \"replaceState\"]({},\r\n document.title,\r\n window.location.pathname + window.location.search + \"#\" + instance.currentHash\r\n );\r\n\r\n if (firstRun) {\r\n instance.hasCreatedHistory = true;\r\n }\r\n } else {\r\n window.location.hash = instance.currentHash;\r\n }\r\n\r\n instance.hashTimer = null;\r\n }, 300);\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance, current) {\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n clearTimeout(instance.hashTimer);\r\n\r\n // Goto previous history entry\r\n if (instance.currentHash && instance.hasCreatedHistory) {\r\n window.history.back();\r\n } else if (instance.currentHash) {\r\n if (\"replaceState\" in window.history) {\r\n window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || \"\"));\r\n } else {\r\n window.location.hash = instance.origHash;\r\n }\r\n }\r\n\r\n instance.currentHash = null;\r\n }\r\n });\r\n\r\n // Check if need to start/close after url has changed\r\n $(window).on(\"hashchange.fb\", function () {\r\n var url = parseUrl(),\r\n fb = null;\r\n\r\n // Find last fancyBox instance that has \"hash\"\r\n $.each(\r\n $(\".fancybox-container\")\r\n .get()\r\n .reverse(),\r\n function (index, value) {\r\n var tmp = $(value).data(\"FancyBox\");\r\n\r\n if (tmp && tmp.currentHash) {\r\n fb = tmp;\r\n return false;\r\n }\r\n }\r\n );\r\n\r\n if (fb) {\r\n // Now, compare hash values\r\n if (fb.currentHash !== url.gallery + \"-\" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {\r\n fb.currentHash = null;\r\n\r\n fb.close();\r\n }\r\n } else if (url.gallery !== \"\") {\r\n triggerFromUrl(url);\r\n }\r\n });\r\n\r\n // Check current hash and trigger click event on matching element to start fancyBox, if needed\r\n setTimeout(function () {\r\n if (!$.fancybox.getInstance()) {\r\n triggerFromUrl(parseUrl());\r\n }\r\n }, 50);\r\n });\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// Wheel\r\n// Basic mouse weheel support for gallery navigation\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var prevTime = new Date().getTime();\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance, current) {\r\n instance.$refs.stage.on(\"mousewheel DOMMouseScroll wheel MozMousePixelScroll\", function (e) {\r\n var current = instance.current,\r\n currTime = new Date().getTime();\r\n\r\n if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === \"auto\" && current.type !== \"image\")) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (current.$slide.hasClass(\"fancybox-animated\")) {\r\n return;\r\n }\r\n\r\n e = e.originalEvent || e;\r\n\r\n if (currTime - prevTime < 250) {\r\n return;\r\n }\r\n\r\n prevTime = currTime;\r\n\r\n instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? \"next\" : \"previous\"]();\r\n });\r\n }\r\n });\r\n})(document, jQuery);"],"names":["window","document","$","undefined","console","info","stuff","fn","fancybox","div","buttonStr","focusStr","$pressed","defaults","closeExisting","loop","gutter","keyboard","preventCaptionOverlap","arrows","infobar","smallBtn","toolbar","buttons","idleTime","protect","modal","image","preload","ajax","settings","data","iframe","tpl","css","attr","scrolling","video","format","autoStart","defaultType","animationEffect","animationDuration","zoomOpacity","transitionEffect","transitionDuration","slideClass","baseClass","baseTpl","spinnerTpl","errorTpl","btnTpl","download","zoom","close","arrowLeft","arrowRight","parentEl","hideScrollbar","autoFocus","backFocus","trapFocus","fullScreen","touch","vertical","momentum","hash","media","slideShow","speed","thumbs","hideOnClose","axis","wheel","onInit","noop","beforeLoad","afterLoad","beforeShow","afterShow","beforeClose","afterClose","onActivate","onDeactivate","clickContent","current","event","type","clickSlide","clickOutside","dblclickContent","dblclickSlide","dblclickOutside","mobile","lang","i18n","en","CLOSE","NEXT","PREV","ERROR","PLAY_START","PLAY_STOP","FULL_SCREEN","THUMBS","DOWNLOAD","SHARE","ZOOM","de","$W","$D","called","requestAFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","callback","setTimeout","cancelAFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","id","clearTimeout","transitionEnd","t","el","createElement","transitions","transition","OTransition","MozTransition","WebkitTransition","style","forceRedraw","$el","length","offsetHeight","mergeOpts","opts1","opts2","rez","extend","each","key","value","isArray","FancyBox","content","opts","index","self","this","isPlainObject","isMobile","currIndex","parseInt","prevIndex","prevPos","currPos","firstRun","group","slides","addContent","init","prototype","$container","firstItemOpts","addClass","getInstance","body","scrollHeight","innerHeight","append","innerWidth","documentElement","clientWidth","translate","replace","appendTo","$refs","container","forEach","item","find","trigger","activate","jumpTo","obj","str","arr","match","n","items","makeArray","i","$item","found","src","srcParts","options","$orig","contentType","charAt","inArray","$thumb","$trigger","thumb","caption","apply","split","shift","filter","push","Object","keys","updateControls","Thumbs","isActive","create","focus","addEvents","removeEvents","on","e","stopPropagation","preventDefault","previous","next","isScaledDown","originalEvent","requestId","update","stage","hide","show","keycode","keyCode","which","ctrlKey","altKey","shiftKey","target","is","idleSecondsCounter","isIdle","showControls","idleInterval","setInterval","isDragging","hideControls","off","clearInterval","duration","pos","isMoved","slidePos","stagePos","prop","diff","groupLen","isClosing","isAnimating","createSlide","forcedDuration","isNumeric","$slide","loadSlide","getTranslate","slide","stop","isComplete","removeClass","left","width","className","join","leftPos","setTranslate","top","animate","transform","opacity","complete","isLoaded","revealContent","updateSlide","scaleToActual","x","y","imgPos","posX","posY","scaleX","scaleY","$content","canvasWidth","canvasHeight","height","newImgWidth","newImgHeight","hasError","updateCursor","SlideShow","scaleToFit","end","getFitPos","maxWidth","maxHeight","minRatio","aspectRatio","parseFloat","Math","min","floor","ratio","adjustCaption","adjustLayout","add","navigation","toggleClass","get","clientHeight","centerSlide","siblings","parent","children","hasClass","abs","nextWidth","nextHeight","canPan","isZoomable","Guestures","isFunction","fitPos","ajaxLoad","isLoading","setImage","setIframe","setContent","videoFormat","setError","showLoading","url","success","textStatus","error","jqXHR","one","abort","ghost","$img","$image","checkSrcset","onerror","remove","$ghost","onload","setBigImage","temp","pxRatio","windowWidth","srcset","devicePixelRatio","map","ret","trim","substring","postfix","sort","a","b","j","img","sizes","resolveImageSlideSize","naturalWidth","naturalHeight","round","max","hideLoading","readyState","imgWidth","imgHeight","$iframe","Date","getTime","isReady","$body","frameWidth","frameHeight","contents","ignore","ceil","outerWidth","outerHeight","unbind","empty","isRevealed","hasOwnProperty","parents","$placeholder","insertAfter","html","after","$smallBtn","wrap","first","wrapInner","$spinner","fadeIn","button","$clone","preventOverlap","$caption","captionH","clone","eq","marginBottom","inlinePadding","actualPadding","disableLayoutFix","effect","effectClassName","start","getThumbPos","thumbPos","btw","brw","bbw","blw","elem","elemCenter","ownerDocument","getBoundingClientRect","offsetWidth","elementFromPoint","inViewport","Document","exitFullscreen","webkitExitFullscreen","scrollTop","scrollLeft","prev","focusableItems","focusedItemIndex","focusableStr","activeElement","instance","isVisible","d","domRect","done","cleanUp","$focus","scrollX","scrollY","name","args","Array","slice","call","arguments","unshift","hasHiddenControls","andCaption","toggleControls","version","command","open","all","destroy","test","navigator","userAgent","use3d","getComputedStyle","getPropertyValue","documentMode","props","position","to","leaveAnimationName","from","propertyName","callCallback","selector","_run","$target","isDefaultPrevented","currentTarget","jQuery","youtube","matcher","params","autoplay","autohide","fs","rel","hd","wmode","enablejsapi","html5","paramPlace","vimeo","show_title","show_byline","show_portrait","fullscreen","instagram","gmap_place","indexOf","gmap_search","param","urlParams","paramObj","provider","providerName","providerOpts","m","p","decodeURIComponent","p1","s","origSrc","contentSource","VideoAPILoader","class","loading","loaded","load","vendor","script","_this","onYouTubeIframeAPIReady","appendChild","YT","Player","events","onStateChange","Vimeo","getPointerXY","result","touches","changedTouches","pageX","pageY","clientX","clientY","distance","point2","point1","what","sqrt","pow","isClickable","onclick","atts","attributes","nodeName","substr","isScrollable","overflowY","overflowX","horizontal","scrollWidth","$bg","bg","$stage","proxy","tapped","ontouchstart","isTouchDevice","offset","realPoints","startPoints","startEvent","canTap","isPanning","isSwiping","isZooming","isScrolling","startTime","distanceX","distanceY","contentLastPos","contentStartPos","sliderStartPos","addEventListener","onscroll","centerPointStartX","centerPointStartY","percentageOfImageAtPinchPointX","percentageOfImageAtPinchPointY","startDistanceBetweenFingers","removeEventListener","ontouchmove","newPoints","onSwipe","onPan","onZoom","ontouchend","angle","swiping","sliderLastPos","atan2","PI","limitMovement","minTranslateX","minTranslateY","maxTranslateX","maxTranslateY","newOffsetX","newOffsetY","currentOffsetX","currentOffsetY","currentWidth","currentHeight","limitPosition","newWidth","newHeight","pinchRatio","translateFromZoomingX","translateFromZoomingY","centerPointEndX","centerPointEndY","translateFromTranslatingX","newPos","panning","zooming","endPoints","dMs","onTap","velocityX","velocityY","endPanning","endZooming","endSwiping","len","canAdvance","reset","where","tapX","tapY","process","prefix","action","addBack","progress","timer","$button","toggle","$progress","inner","set","force","clear","removeAttr","keypress","hidden","fnMap","val","FullScreen","request","requestFullscreen","ALLOW_KEYBOARD_INPUT","exit","isFullscreen","Boolean","fullscreenElement","enabled","fullscreenEnabled","fullscreenchange","CLASS","CLASS_ACTIVE","FancyThumbs","$grid","$list","list","innerHTML","that","share","currentHash","location","string","entityMap","encodeURIComponent","String","text","shareInstance","shareCurrent","click","href","parseUrl","pop","gallery","triggerFromUrl","escapeSelector","getGalleryID","sel","ch","asCodePoint","charCodeAt","toString","origHash","hashTimer","history","title","pathname","search","hasCreatedHistory","back","replaceState","fb","reverse","tmp","prevTime","currTime","deltaY","deltaX","wheelDelta","detail"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"155.js","mappings":"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","sources":["webpack://sakurairo-scripts/./node_modules/@fancyapps/fancybox/dist/jquery.fancybox.js"],"sourcesContent":["// ==================================================\n// fancyBox v3.5.7\n//\n// Licensed GPLv3 for open source use\n// or fancyBox Commercial License for commercial use\n//\n// http://fancyapps.com/fancybox/\n// Copyright 2019 fancyApps\n//\n// ==================================================\n(function (window, document, $, undefined) {\r\n \"use strict\";\r\n\r\n window.console = window.console || {\r\n info: function (stuff) {}\r\n };\r\n\r\n // If there's no jQuery, fancyBox can't work\r\n // =========================================\r\n\r\n if (!$) {\r\n return;\r\n }\r\n\r\n // Check if fancyBox is already initialized\r\n // ========================================\r\n\r\n if ($.fn.fancybox) {\r\n console.info(\"fancyBox already initialized\");\r\n\r\n return;\r\n }\r\n\r\n // Private default settings\r\n // ========================\r\n\r\n var defaults = {\r\n // Close existing modals\r\n // Set this to false if you do not need to stack multiple instances\r\n closeExisting: false,\r\n\r\n // Enable infinite gallery navigation\r\n loop: false,\r\n\r\n // Horizontal space between slides\r\n gutter: 50,\r\n\r\n // Enable keyboard navigation\r\n keyboard: true,\r\n\r\n // Should allow caption to overlap the content\r\n preventCaptionOverlap: true,\r\n\r\n // Should display navigation arrows at the screen edges\r\n arrows: true,\r\n\r\n // Should display counter at the top left corner\r\n infobar: true,\r\n\r\n // Should display close button (using `btnTpl.smallBtn` template) over the content\r\n // Can be true, false, \"auto\"\r\n // If \"auto\" - will be automatically enabled for \"html\", \"inline\" or \"ajax\" items\r\n smallBtn: \"auto\",\r\n\r\n // Should display toolbar (buttons at the top)\r\n // Can be true, false, \"auto\"\r\n // If \"auto\" - will be automatically hidden if \"smallBtn\" is enabled\r\n toolbar: \"auto\",\r\n\r\n // What buttons should appear in the top right corner.\r\n // Buttons will be created using templates from `btnTpl` option\r\n // and they will be placed into toolbar (class=\"fancybox-toolbar\"` element)\r\n buttons: [\r\n \"zoom\",\r\n //\"share\",\r\n \"slideShow\",\r\n //\"fullScreen\",\r\n //\"download\",\r\n \"thumbs\",\r\n \"close\"\r\n ],\r\n\r\n // Detect \"idle\" time in seconds\r\n idleTime: 3,\r\n\r\n // Disable right-click and use simple image protection for images\r\n protect: false,\r\n\r\n // Shortcut to make content \"modal\" - disable keyboard navigtion, hide buttons, etc\r\n modal: false,\r\n\r\n image: {\r\n // Wait for images to load before displaying\r\n // true - wait for image to load and then display;\r\n // false - display thumbnail and load the full-sized image over top,\r\n // requires predefined image dimensions (`data-width` and `data-height` attributes)\r\n preload: false\r\n },\r\n\r\n ajax: {\r\n // Object containing settings for ajax request\r\n settings: {\r\n // This helps to indicate that request comes from the modal\r\n // Feel free to change naming\r\n data: {\r\n fancybox: true\r\n }\r\n }\r\n },\r\n\r\n iframe: {\r\n // Iframe template\r\n tpl: '',\r\n\r\n // Preload iframe before displaying it\r\n // This allows to calculate iframe content width and height\r\n // (note: Due to \"Same Origin Policy\", you can't get cross domain data).\r\n preload: true,\r\n\r\n // Custom CSS styling for iframe wrapping element\r\n // You can use this to set custom iframe dimensions\r\n css: {},\r\n\r\n // Iframe tag attributes\r\n attr: {\r\n scrolling: \"auto\"\r\n }\r\n },\r\n\r\n // For HTML5 video only\r\n video: {\r\n tpl: '\",\r\n format: \"\", // custom video format\r\n autoStart: true\r\n },\r\n\r\n // Default content type if cannot be detected automatically\r\n defaultType: \"image\",\r\n\r\n // Open/close animation type\r\n // Possible values:\r\n // false - disable\r\n // \"zoom\" - zoom images from/to thumbnail\r\n // \"fade\"\r\n // \"zoom-in-out\"\r\n //\r\n animationEffect: \"zoom\",\r\n\r\n // Duration in ms for open/close animation\r\n animationDuration: 366,\r\n\r\n // Should image change opacity while zooming\r\n // If opacity is \"auto\", then opacity will be changed if image and thumbnail have different aspect ratios\r\n zoomOpacity: \"auto\",\r\n\r\n // Transition effect between slides\r\n //\r\n // Possible values:\r\n // false - disable\r\n // \"fade'\r\n // \"slide'\r\n // \"circular'\r\n // \"tube'\r\n // \"zoom-in-out'\r\n // \"rotate'\r\n //\r\n transitionEffect: \"fade\",\r\n\r\n // Duration in ms for transition animation\r\n transitionDuration: 366,\r\n\r\n // Custom CSS class for slide element\r\n slideClass: \"\",\r\n\r\n // Custom CSS class for layout\r\n baseClass: \"\",\r\n\r\n // Base template for layout\r\n baseTpl: '
' +\r\n '
' +\r\n '
' +\r\n '
 / 
' +\r\n '
{{buttons}}
' +\r\n '
{{arrows}}
' +\r\n '
' +\r\n '
' +\r\n \"
\" +\r\n \"
\",\r\n\r\n // Loading indicator template\r\n spinnerTpl: '
',\r\n\r\n // Error message template\r\n errorTpl: '

{{ERROR}}

',\r\n\r\n btnTpl: {\r\n download: '' +\r\n '' +\r\n \"\",\r\n\r\n zoom: '\",\r\n\r\n close: '\",\r\n\r\n // Arrows\r\n arrowLeft: '\",\r\n\r\n arrowRight: '\",\r\n\r\n // This small close button will be appended to your html/inline/ajax content by default,\r\n // if \"smallBtn\" option is not set to false\r\n smallBtn: '\"\r\n },\r\n\r\n // Container is injected into this element\r\n parentEl: \"body\",\r\n\r\n // Hide browser vertical scrollbars; use at your own risk\r\n hideScrollbar: true,\r\n\r\n // Focus handling\r\n // ==============\r\n\r\n // Try to focus on the first focusable element after opening\r\n autoFocus: true,\r\n\r\n // Put focus back to active element after closing\r\n backFocus: true,\r\n\r\n // Do not let user to focus on element outside modal content\r\n trapFocus: true,\r\n\r\n // Module specific options\r\n // =======================\r\n\r\n fullScreen: {\r\n autoStart: false\r\n },\r\n\r\n // Set `touch: false` to disable panning/swiping\r\n touch: {\r\n vertical: true, // Allow to drag content vertically\r\n momentum: true // Continue movement after releasing mouse/touch when panning\r\n },\r\n\r\n // Hash value when initializing manually,\r\n // set `false` to disable hash change\r\n hash: null,\r\n\r\n // Customize or add new media types\r\n // Example:\r\n /*\r\n media : {\r\n youtube : {\r\n params : {\r\n autoplay : 0\r\n }\r\n }\r\n }\r\n */\r\n media: {},\r\n\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000\r\n },\r\n\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n },\r\n\r\n // Use mousewheel to navigate gallery\r\n // If 'auto' - enabled for images only\r\n wheel: \"auto\",\r\n\r\n // Callbacks\r\n //==========\r\n\r\n // See Documentation/API/Events for more information\r\n // Example:\r\n /*\r\n afterShow: function( instance, current ) {\r\n console.info( 'Clicked element:' );\r\n console.info( current.opts.$orig );\r\n }\r\n */\r\n\r\n onInit: $.noop, // When instance has been initialized\r\n\r\n beforeLoad: $.noop, // Before the content of a slide is being loaded\r\n afterLoad: $.noop, // When the content of a slide is done loading\r\n\r\n beforeShow: $.noop, // Before open animation starts\r\n afterShow: $.noop, // When content is done loading and animating\r\n\r\n beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.\r\n afterClose: $.noop, // After instance has been closed\r\n\r\n onActivate: $.noop, // When instance is brought to front\r\n onDeactivate: $.noop, // When other instance has been activated\r\n\r\n // Interaction\r\n // ===========\r\n\r\n // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,\r\n // each option can be string or method that returns value.\r\n //\r\n // Possible values:\r\n // \"close\" - close instance\r\n // \"next\" - move to next gallery item\r\n // \"nextOrClose\" - move to next gallery item or close if gallery has only one item\r\n // \"toggleControls\" - show/hide controls\r\n // \"zoom\" - zoom image (if loaded)\r\n // false - do nothing\r\n\r\n // Clicked on the content\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n\r\n // Clicked on the slide\r\n clickSlide: \"close\",\r\n\r\n // Clicked on the background (backdrop) element;\r\n // if you have not changed the layout, then most likely you need to use `clickSlide` option\r\n clickOutside: \"close\",\r\n\r\n // Same as previous two, but for double click\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false,\r\n\r\n // Custom options when mobile device is detected\r\n // =============================================\r\n\r\n mobile: {\r\n preventCaptionOverlap: false,\r\n idleTime: false,\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : false;\r\n },\r\n clickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : \"close\";\r\n },\r\n dblclickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n dblclickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n }\r\n },\r\n\r\n // Internationalization\r\n // ====================\r\n\r\n lang: \"en\",\r\n i18n: {\r\n en: {\r\n CLOSE: \"Close\",\r\n NEXT: \"Next\",\r\n PREV: \"Previous\",\r\n ERROR: \"The requested content cannot be loaded.
Please try again later.\",\r\n PLAY_START: \"Start slideshow\",\r\n PLAY_STOP: \"Pause slideshow\",\r\n FULL_SCREEN: \"Full screen\",\r\n THUMBS: \"Thumbnails\",\r\n DOWNLOAD: \"Download\",\r\n SHARE: \"Share\",\r\n ZOOM: \"Zoom\"\r\n },\r\n de: {\r\n CLOSE: \"Schließen\",\r\n NEXT: \"Weiter\",\r\n PREV: \"Zurück\",\r\n ERROR: \"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.\",\r\n PLAY_START: \"Diaschau starten\",\r\n PLAY_STOP: \"Diaschau beenden\",\r\n FULL_SCREEN: \"Vollbild\",\r\n THUMBS: \"Vorschaubilder\",\r\n DOWNLOAD: \"Herunterladen\",\r\n SHARE: \"Teilen\",\r\n ZOOM: \"Vergrößern\"\r\n }\r\n }\r\n };\r\n\r\n // Few useful variables and methods\r\n // ================================\r\n\r\n var $W = $(window);\r\n var $D = $(document);\r\n\r\n var called = 0;\r\n\r\n // Check if an object is a jQuery object and not a native JavaScript object\r\n // ========================================================================\r\n var isQuery = function (obj) {\r\n return obj && obj.hasOwnProperty && obj instanceof $;\r\n };\r\n\r\n // Handle multiple browsers for \"requestAnimationFrame\" and \"cancelAnimationFrame\"\r\n // ===============================================================================\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n // Detect the supported transition-end event property name\r\n // =======================================================\r\n var transitionEnd = (function () {\r\n var el = document.createElement(\"fakeelement\"),\r\n t;\r\n\r\n var transitions = {\r\n transition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n WebkitTransition: \"webkitTransitionEnd\"\r\n };\r\n\r\n for (t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n return transitions[t];\r\n }\r\n }\r\n\r\n return \"transitionend\";\r\n })();\r\n\r\n // Force redraw on an element.\r\n // This helps in cases where the browser doesn't redraw an updated element properly\r\n // ================================================================================\r\n var forceRedraw = function ($el) {\r\n return $el && $el.length && $el[0].offsetHeight;\r\n };\r\n\r\n // Exclude array (`buttons`) options from deep merging\r\n // ===================================================\r\n var mergeOpts = function (opts1, opts2) {\r\n var rez = $.extend(true, {}, opts1, opts2);\r\n\r\n $.each(opts2, function (key, value) {\r\n if ($.isArray(value)) {\r\n rez[key] = value;\r\n }\r\n });\r\n\r\n return rez;\r\n };\r\n\r\n // How much of an element is visible in viewport\r\n // =============================================\r\n\r\n var inViewport = function (elem) {\r\n var elemCenter, rez;\r\n\r\n if (!elem || elem.ownerDocument !== document) {\r\n return false;\r\n }\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"none\");\r\n\r\n elemCenter = {\r\n x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\r\n y: elem.getBoundingClientRect().top + elem.offsetHeight / 2\r\n };\r\n\r\n rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"\");\r\n\r\n return rez;\r\n };\r\n\r\n // Class definition\r\n // ================\r\n\r\n var FancyBox = function (content, opts, index) {\r\n var self = this;\r\n\r\n self.opts = mergeOpts({\r\n index: index\r\n }, $.fancybox.defaults);\r\n\r\n if ($.isPlainObject(opts)) {\r\n self.opts = mergeOpts(self.opts, opts);\r\n }\r\n\r\n if ($.fancybox.isMobile) {\r\n self.opts = mergeOpts(self.opts, self.opts.mobile);\r\n }\r\n\r\n self.id = self.opts.id || ++called;\r\n\r\n self.currIndex = parseInt(self.opts.index, 10) || 0;\r\n self.prevIndex = null;\r\n\r\n self.prevPos = null;\r\n self.currPos = 0;\r\n\r\n self.firstRun = true;\r\n\r\n // All group items\r\n self.group = [];\r\n\r\n // Existing slides (for current, next and previous gallery items)\r\n self.slides = {};\r\n\r\n // Create group elements\r\n self.addContent(content);\r\n\r\n if (!self.group.length) {\r\n return;\r\n }\r\n\r\n self.init();\r\n };\r\n\r\n $.extend(FancyBox.prototype, {\r\n // Create DOM structure\r\n // ====================\r\n\r\n init: function () {\r\n var self = this,\r\n firstItem = self.group[self.currIndex],\r\n firstItemOpts = firstItem.opts,\r\n $container,\r\n buttonStr;\r\n\r\n if (firstItemOpts.closeExisting) {\r\n $.fancybox.close(true);\r\n }\r\n\r\n // Hide scrollbars\r\n // ===============\r\n\r\n $(\"body\").addClass(\"fancybox-active\");\r\n\r\n if (\r\n !$.fancybox.getInstance() &&\r\n firstItemOpts.hideScrollbar !== false &&\r\n !$.fancybox.isMobile &&\r\n document.body.scrollHeight > window.innerHeight\r\n ) {\r\n $(\"head\").append(\r\n '\"\r\n );\r\n\r\n $(\"body\").addClass(\"compensate-for-scrollbar\");\r\n }\r\n\r\n // Build html markup and set references\r\n // ====================================\r\n\r\n // Build html code for buttons and insert into main template\r\n buttonStr = \"\";\r\n\r\n $.each(firstItemOpts.buttons, function (index, value) {\r\n buttonStr += firstItemOpts.btnTpl[value] || \"\";\r\n });\r\n\r\n // Create markup from base template, it will be initially hidden to\r\n // avoid unnecessary work like painting while initializing is not complete\r\n $container = $(\r\n self.translate(\r\n self,\r\n firstItemOpts.baseTpl\r\n .replace(\"{{buttons}}\", buttonStr)\r\n .replace(\"{{arrows}}\", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)\r\n )\r\n )\r\n .attr(\"id\", \"fancybox-container-\" + self.id)\r\n .addClass(firstItemOpts.baseClass)\r\n .data(\"FancyBox\", self)\r\n .appendTo(firstItemOpts.parentEl);\r\n\r\n // Create object holding references to jQuery wrapped nodes\r\n self.$refs = {\r\n container: $container\r\n };\r\n\r\n [\"bg\", \"inner\", \"infobar\", \"toolbar\", \"stage\", \"caption\", \"navigation\"].forEach(function (item) {\r\n self.$refs[item] = $container.find(\".fancybox-\" + item);\r\n });\r\n\r\n self.trigger(\"onInit\");\r\n\r\n // Enable events, deactive previous instances\r\n self.activate();\r\n\r\n // Build slides, load and reveal content\r\n self.jumpTo(self.currIndex);\r\n },\r\n\r\n // Simple i18n support - replaces object keys found in template\r\n // with corresponding values\r\n // ============================================================\r\n\r\n translate: function (obj, str) {\r\n var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en;\r\n\r\n return str.replace(/\\{\\{(\\w+)\\}\\}/g, function (match, n) {\r\n return arr[n] === undefined ? match : arr[n];\r\n });\r\n },\r\n\r\n // Populate current group with fresh content\r\n // Check if each object has valid type and content\r\n // ===============================================\r\n\r\n addContent: function (content) {\r\n var self = this,\r\n items = $.makeArray(content),\r\n thumbs;\r\n\r\n $.each(items, function (i, item) {\r\n var obj = {},\r\n opts = {},\r\n $item,\r\n type,\r\n found,\r\n src,\r\n srcParts;\r\n\r\n // Step 1 - Make sure we have an object\r\n // ====================================\r\n\r\n if ($.isPlainObject(item)) {\r\n // We probably have manual usage here, something like\r\n // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\r\n\r\n obj = item;\r\n opts = item.opts || item;\r\n } else if ($.type(item) === \"object\" && $(item).length) {\r\n // Here we probably have jQuery collection returned by some selector\r\n $item = $(item);\r\n\r\n // Support attributes like `data-options='{\"touch\" : false}'` and `data-touch='false'`\r\n opts = $item.data() || {};\r\n opts = $.extend(true, {}, opts, opts.options);\r\n\r\n // Here we store clicked element\r\n opts.$orig = $item;\r\n\r\n obj.src = self.opts.src || opts.src || $item.attr(\"href\");\r\n\r\n // Assume that simple syntax is used, for example:\r\n // `$.fancybox.open( $(\"#test\"), {} );`\r\n if (!obj.type && !obj.src) {\r\n obj.type = \"inline\";\r\n obj.src = item;\r\n }\r\n } else {\r\n // Assume we have a simple html code, for example:\r\n // $.fancybox.open( '

Hi!

' );\r\n obj = {\r\n type: \"html\",\r\n src: item + \"\"\r\n };\r\n }\r\n\r\n // Each gallery object has full collection of options\r\n obj.opts = $.extend(true, {}, self.opts, opts);\r\n\r\n // Do not merge buttons array\r\n if ($.isArray(opts.buttons)) {\r\n obj.opts.buttons = opts.buttons;\r\n }\r\n\r\n if ($.fancybox.isMobile && obj.opts.mobile) {\r\n obj.opts = mergeOpts(obj.opts, obj.opts.mobile);\r\n }\r\n\r\n // Step 2 - Make sure we have content type, if not - try to guess\r\n // ==============================================================\r\n\r\n type = obj.type || obj.opts.type;\r\n src = obj.src || \"\";\r\n\r\n if (!type && src) {\r\n if ((found = src.match(/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i))) {\r\n type = \"video\";\r\n\r\n if (!obj.opts.video.format) {\r\n obj.opts.video.format = \"video/\" + (found[1] === \"ogv\" ? \"ogg\" : found[1]);\r\n }\r\n } else if (src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i)) {\r\n type = \"image\";\r\n } else if (src.match(/\\.(pdf)((\\?|#).*)?$/i)) {\r\n type = \"iframe\";\r\n obj = $.extend(true, obj, {\r\n contentType: \"pdf\",\r\n opts: {\r\n iframe: {\r\n preload: false\r\n }\r\n }\r\n });\r\n } else if (src.charAt(0) === \"#\") {\r\n type = \"inline\";\r\n }\r\n }\r\n\r\n if (type) {\r\n obj.type = type;\r\n } else {\r\n self.trigger(\"objectNeedsType\", obj);\r\n }\r\n\r\n if (!obj.contentType) {\r\n obj.contentType = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1 ? \"html\" : obj.type;\r\n }\r\n\r\n // Step 3 - Some adjustments\r\n // =========================\r\n\r\n obj.index = self.group.length;\r\n\r\n if (obj.opts.smallBtn == \"auto\") {\r\n obj.opts.smallBtn = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1;\r\n }\r\n\r\n if (obj.opts.toolbar === \"auto\") {\r\n obj.opts.toolbar = !obj.opts.smallBtn;\r\n }\r\n\r\n // Find thumbnail image, check if exists and if is in the viewport\r\n obj.$thumb = obj.opts.$thumb || null;\r\n\r\n if (obj.opts.$trigger && obj.index === self.opts.index) {\r\n obj.$thumb = obj.opts.$trigger.find(\"img:first\");\r\n\r\n if (obj.$thumb.length) {\r\n obj.opts.$orig = obj.opts.$trigger;\r\n }\r\n }\r\n\r\n if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {\r\n obj.$thumb = obj.opts.$orig.find(\"img:first\");\r\n }\r\n\r\n if (obj.$thumb && !obj.$thumb.length) {\r\n obj.$thumb = null;\r\n }\r\n\r\n obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);\r\n\r\n // \"caption\" is a \"special\" option, it can be used to customize caption per gallery item\r\n if ($.type(obj.opts.caption) === \"function\") {\r\n obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n if ($.type(self.opts.caption) === \"function\") {\r\n obj.opts.caption = self.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n // Make sure we have caption as a string or jQuery object\r\n if (!(obj.opts.caption instanceof $)) {\r\n obj.opts.caption = obj.opts.caption === undefined ? \"\" : obj.opts.caption + \"\";\r\n }\r\n\r\n // Check if url contains \"filter\" used to filter the content\r\n // Example: \"ajax.html #something\"\r\n if (obj.type === \"ajax\") {\r\n srcParts = src.split(/\\s+/, 2);\r\n\r\n if (srcParts.length > 1) {\r\n obj.src = srcParts.shift();\r\n\r\n obj.opts.filter = srcParts.shift();\r\n }\r\n }\r\n\r\n // Hide all buttons and disable interactivity for modal items\r\n if (obj.opts.modal) {\r\n obj.opts = $.extend(true, obj.opts, {\r\n trapFocus: true,\r\n // Remove buttons\r\n infobar: 0,\r\n toolbar: 0,\r\n\r\n smallBtn: 0,\r\n\r\n // Disable keyboard navigation\r\n keyboard: 0,\r\n\r\n // Disable some modules\r\n slideShow: 0,\r\n fullScreen: 0,\r\n thumbs: 0,\r\n touch: 0,\r\n\r\n // Disable click event handlers\r\n clickContent: false,\r\n clickSlide: false,\r\n clickOutside: false,\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false\r\n });\r\n }\r\n\r\n // Step 4 - Add processed object to group\r\n // ======================================\r\n\r\n self.group.push(obj);\r\n });\r\n\r\n // Update controls if gallery is already opened\r\n if (Object.keys(self.slides).length) {\r\n self.updateControls();\r\n\r\n // Update thumbnails, if needed\r\n thumbs = self.Thumbs;\r\n\r\n if (thumbs && thumbs.isActive) {\r\n thumbs.create();\r\n\r\n thumbs.focus();\r\n }\r\n }\r\n },\r\n\r\n // Attach an event handler functions for:\r\n // - navigation buttons\r\n // - browser scrolling, resizing;\r\n // - focusing\r\n // - keyboard\r\n // - detecting inactivity\r\n // ======================================\r\n\r\n addEvents: function () {\r\n var self = this;\r\n\r\n self.removeEvents();\r\n\r\n // Make navigation elements clickable\r\n // ==================================\r\n\r\n self.$refs.container\r\n .on(\"click.fb-close\", \"[data-fancybox-close]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n })\r\n .on(\"touchstart.fb-prev click.fb-prev\", \"[data-fancybox-prev]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.previous();\r\n })\r\n .on(\"touchstart.fb-next click.fb-next\", \"[data-fancybox-next]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.next();\r\n })\r\n .on(\"click.fb\", \"[data-fancybox-zoom]\", function (e) {\r\n // Click handler for zoom button\r\n self[self.isScaledDown() ? \"scaleToActual\" : \"scaleToFit\"]();\r\n });\r\n\r\n // Handle page scrolling and browser resizing\r\n // ==========================================\r\n\r\n $W.on(\"orientationchange.fb resize.fb\", function (e) {\r\n if (e && e.originalEvent && e.originalEvent.type === \"resize\") {\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n self.update(e);\r\n });\r\n } else {\r\n if (self.current && self.current.type === \"iframe\") {\r\n self.$refs.stage.hide();\r\n }\r\n\r\n setTimeout(\r\n function () {\r\n self.$refs.stage.show();\r\n\r\n self.update(e);\r\n },\r\n $.fancybox.isMobile ? 600 : 250\r\n );\r\n }\r\n });\r\n\r\n $D.on(\"keydown.fb\", function (e) {\r\n var instance = $.fancybox ? $.fancybox.getInstance() : null,\r\n current = instance.current,\r\n keycode = e.keyCode || e.which;\r\n\r\n // Trap keyboard focus inside of the modal\r\n // =======================================\r\n\r\n if (keycode == 9) {\r\n if (current.opts.trapFocus) {\r\n self.focus(e);\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Enable keyboard navigation\r\n // ==========================\r\n\r\n if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is(\"input,textarea,video,audio,select\")) {\r\n return;\r\n }\r\n\r\n // Backspace and Esc keys\r\n if (keycode === 8 || keycode === 27) {\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n\r\n return;\r\n }\r\n\r\n // Left arrow and Up arrow\r\n if (keycode === 37 || keycode === 38) {\r\n e.preventDefault();\r\n\r\n self.previous();\r\n\r\n return;\r\n }\r\n\r\n // Righ arrow and Down arrow\r\n if (keycode === 39 || keycode === 40) {\r\n e.preventDefault();\r\n\r\n self.next();\r\n\r\n return;\r\n }\r\n\r\n self.trigger(\"afterKeydown\", e, keycode);\r\n });\r\n\r\n // Hide controls after some inactivity period\r\n if (self.group[self.currIndex].opts.idleTime) {\r\n self.idleSecondsCounter = 0;\r\n\r\n $D.on(\r\n \"mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle\",\r\n function (e) {\r\n self.idleSecondsCounter = 0;\r\n\r\n if (self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n self.isIdle = false;\r\n }\r\n );\r\n\r\n self.idleInterval = window.setInterval(function () {\r\n self.idleSecondsCounter++;\r\n\r\n if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {\r\n self.isIdle = true;\r\n self.idleSecondsCounter = 0;\r\n\r\n self.hideControls();\r\n }\r\n }, 1000);\r\n }\r\n },\r\n\r\n // Remove events added by the core\r\n // ===============================\r\n\r\n removeEvents: function () {\r\n var self = this;\r\n\r\n $W.off(\"orientationchange.fb resize.fb\");\r\n $D.off(\"keydown.fb .fb-idle\");\r\n\r\n this.$refs.container.off(\".fb-close .fb-prev .fb-next\");\r\n\r\n if (self.idleInterval) {\r\n window.clearInterval(self.idleInterval);\r\n\r\n self.idleInterval = null;\r\n }\r\n },\r\n\r\n // Change to previous gallery item\r\n // ===============================\r\n\r\n previous: function (duration) {\r\n return this.jumpTo(this.currPos - 1, duration);\r\n },\r\n\r\n // Change to next gallery item\r\n // ===========================\r\n\r\n next: function (duration) {\r\n return this.jumpTo(this.currPos + 1, duration);\r\n },\r\n\r\n // Switch to selected gallery item\r\n // ===============================\r\n\r\n jumpTo: function (pos, duration) {\r\n var self = this,\r\n groupLen = self.group.length,\r\n firstRun,\r\n isMoved,\r\n loop,\r\n current,\r\n previous,\r\n slidePos,\r\n stagePos,\r\n prop,\r\n diff;\r\n\r\n if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {\r\n return;\r\n }\r\n\r\n // Should loop?\r\n pos = parseInt(pos, 10);\r\n loop = self.current ? self.current.opts.loop : self.opts.loop;\r\n\r\n if (!loop && (pos < 0 || pos >= groupLen)) {\r\n return false;\r\n }\r\n\r\n // Check if opening for the first time; this helps to speed things up\r\n firstRun = self.firstRun = !Object.keys(self.slides).length;\r\n\r\n // Create slides\r\n previous = self.current;\r\n\r\n self.prevIndex = self.currIndex;\r\n self.prevPos = self.currPos;\r\n\r\n current = self.createSlide(pos);\r\n\r\n if (groupLen > 1) {\r\n if (loop || current.index < groupLen - 1) {\r\n self.createSlide(pos + 1);\r\n }\r\n\r\n if (loop || current.index > 0) {\r\n self.createSlide(pos - 1);\r\n }\r\n }\r\n\r\n self.current = current;\r\n self.currIndex = current.index;\r\n self.currPos = current.pos;\r\n\r\n self.trigger(\"beforeShow\", firstRun);\r\n\r\n self.updateControls();\r\n\r\n // Validate duration length\r\n current.forcedDuration = undefined;\r\n\r\n if ($.isNumeric(duration)) {\r\n current.forcedDuration = duration;\r\n } else {\r\n duration = current.opts[firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n }\r\n\r\n duration = parseInt(duration, 10);\r\n\r\n // Check if user has swiped the slides or if still animating\r\n isMoved = self.isMoved(current);\r\n\r\n // Make sure current slide is visible\r\n current.$slide.addClass(\"fancybox-slide--current\");\r\n\r\n // Fresh start - reveal container, current slide and start loading content\r\n if (firstRun) {\r\n if (current.opts.animationEffect && duration) {\r\n self.$refs.container.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n self.$refs.container.addClass(\"fancybox-is-open\").trigger(\"focus\");\r\n\r\n // Attempt to load content into slide\r\n // This will later call `afterLoad` -> `revealContent`\r\n self.loadSlide(current);\r\n\r\n self.preload(\"image\");\r\n\r\n return;\r\n }\r\n\r\n // Get actual slide/stage positions (before cleaning up)\r\n slidePos = $.fancybox.getTranslate(previous.$slide);\r\n stagePos = $.fancybox.getTranslate(self.$refs.stage);\r\n\r\n // Clean up all slides\r\n $.each(self.slides, function (index, slide) {\r\n $.fancybox.stop(slide.$slide, true);\r\n });\r\n\r\n if (previous.pos !== current.pos) {\r\n previous.isComplete = false;\r\n }\r\n\r\n previous.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--current\");\r\n\r\n // If slides are out of place, then animate them to correct position\r\n if (isMoved) {\r\n // Calculate horizontal swipe distance\r\n diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);\r\n\r\n $.each(self.slides, function (index, slide) {\r\n slide.$slide.removeClass(\"fancybox-animated\").removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n // Make sure that each slide is in equal distance\r\n // This is mostly needed for freshly added slides, because they are not yet positioned\r\n var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: 0,\r\n left: leftPos - stagePos.left + diff\r\n });\r\n\r\n if (slide.pos !== current.pos) {\r\n slide.$slide.addClass(\"fancybox-slide--\" + (slide.pos > current.pos ? \"next\" : \"previous\"));\r\n }\r\n\r\n // Redraw to make sure that transition will start\r\n forceRedraw(slide.$slide);\r\n\r\n // Animate the slide\r\n $.fancybox.animate(\r\n slide.$slide, {\r\n top: 0,\r\n left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter\r\n },\r\n duration,\r\n function () {\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\"\r\n })\r\n .removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n }\r\n );\r\n });\r\n } else if (duration && current.opts.transitionEffect) {\r\n // Set transition effect for previously active slide\r\n prop = \"fancybox-animated fancybox-fx-\" + current.opts.transitionEffect;\r\n\r\n previous.$slide.addClass(\"fancybox-slide--\" + (previous.pos > current.pos ? \"next\" : \"previous\"));\r\n\r\n $.fancybox.animate(\r\n previous.$slide,\r\n prop,\r\n duration,\r\n function () {\r\n previous.$slide.removeClass(prop).removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n },\r\n false\r\n );\r\n }\r\n\r\n if (current.isLoaded) {\r\n self.revealContent(current);\r\n } else {\r\n self.loadSlide(current);\r\n }\r\n\r\n self.preload(\"image\");\r\n },\r\n\r\n // Create new \"slide\" element\r\n // These are gallery items that are actually added to DOM\r\n // =======================================================\r\n\r\n createSlide: function (pos) {\r\n var self = this,\r\n $slide,\r\n index;\r\n\r\n index = pos % self.group.length;\r\n index = index < 0 ? self.group.length + index : index;\r\n\r\n if (!self.slides[pos] && self.group[index]) {\r\n $slide = $('
').appendTo(self.$refs.stage);\r\n\r\n self.slides[pos] = $.extend(true, {}, self.group[index], {\r\n pos: pos,\r\n $slide: $slide,\r\n isLoaded: false\r\n });\r\n\r\n self.updateSlide(self.slides[pos]);\r\n }\r\n\r\n return self.slides[pos];\r\n },\r\n\r\n // Scale image to the actual size of the image;\r\n // x and y values should be relative to the slide\r\n // ==============================================\r\n\r\n scaleToActual: function (x, y, duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n canvasWidth = $.fancybox.getTranslate(current.$slide).width,\r\n canvasHeight = $.fancybox.getTranslate(current.$slide).height,\r\n newImgWidth = current.width,\r\n newImgHeight = current.height,\r\n imgPos,\r\n posX,\r\n posY,\r\n scaleX,\r\n scaleY;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n x = x === undefined ? canvasWidth * 0.5 : x;\r\n y = y === undefined ? canvasHeight * 0.5 : y;\r\n\r\n imgPos = $.fancybox.getTranslate($content);\r\n\r\n imgPos.top -= $.fancybox.getTranslate(current.$slide).top;\r\n imgPos.left -= $.fancybox.getTranslate(current.$slide).left;\r\n\r\n scaleX = newImgWidth / imgPos.width;\r\n scaleY = newImgHeight / imgPos.height;\r\n\r\n // Get center position for original image\r\n posX = canvasWidth * 0.5 - newImgWidth * 0.5;\r\n posY = canvasHeight * 0.5 - newImgHeight * 0.5;\r\n\r\n // Make sure image does not move away from edges\r\n if (newImgWidth > canvasWidth) {\r\n posX = imgPos.left * scaleX - (x * scaleX - x);\r\n\r\n if (posX > 0) {\r\n posX = 0;\r\n }\r\n\r\n if (posX < canvasWidth - newImgWidth) {\r\n posX = canvasWidth - newImgWidth;\r\n }\r\n }\r\n\r\n if (newImgHeight > canvasHeight) {\r\n posY = imgPos.top * scaleY - (y * scaleY - y);\r\n\r\n if (posY > 0) {\r\n posY = 0;\r\n }\r\n\r\n if (posY < canvasHeight - newImgHeight) {\r\n posY = canvasHeight - newImgHeight;\r\n }\r\n }\r\n\r\n self.updateCursor(newImgWidth, newImgHeight);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: posY,\r\n left: posX,\r\n scaleX: scaleX,\r\n scaleY: scaleY\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n\r\n // Stop slideshow\r\n if (self.SlideShow && self.SlideShow.isActive) {\r\n self.SlideShow.stop();\r\n }\r\n },\r\n\r\n // Scale image to fit inside parent element\r\n // ========================================\r\n\r\n scaleToFit: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n end;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n end = self.getFitPos(current);\r\n\r\n self.updateCursor(end.width, end.height);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: end.top,\r\n left: end.left,\r\n scaleX: end.width / $content.width(),\r\n scaleY: end.height / $content.height()\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n },\r\n\r\n // Calculate image size to fit inside viewport\r\n // ===========================================\r\n\r\n getFitPos: function (slide) {\r\n var self = this,\r\n $content = slide.$content,\r\n $slide = slide.$slide,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n maxWidth,\r\n maxHeight,\r\n minRatio,\r\n aspectRatio,\r\n rez = {};\r\n\r\n if (!slide.isLoaded || !$content || !$content.length) {\r\n return false;\r\n }\r\n\r\n maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;\r\n maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;\r\n\r\n maxWidth -=\r\n parseFloat($slide.css(\"paddingLeft\")) +\r\n parseFloat($slide.css(\"paddingRight\")) +\r\n parseFloat($content.css(\"marginLeft\")) +\r\n parseFloat($content.css(\"marginRight\"));\r\n\r\n maxHeight -=\r\n parseFloat($slide.css(\"paddingTop\")) +\r\n parseFloat($slide.css(\"paddingBottom\")) +\r\n parseFloat($content.css(\"marginTop\")) +\r\n parseFloat($content.css(\"marginBottom\"));\r\n\r\n if (!width || !height) {\r\n width = maxWidth;\r\n height = maxHeight;\r\n }\r\n\r\n minRatio = Math.min(1, maxWidth / width, maxHeight / height);\r\n\r\n width = minRatio * width;\r\n height = minRatio * height;\r\n\r\n // Adjust width/height to precisely fit into container\r\n if (width > maxWidth - 0.5) {\r\n width = maxWidth;\r\n }\r\n\r\n if (height > maxHeight - 0.5) {\r\n height = maxHeight;\r\n }\r\n\r\n if (slide.type === \"image\") {\r\n rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css(\"paddingTop\"));\r\n rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css(\"paddingLeft\"));\r\n } else if (slide.contentType === \"video\") {\r\n // Force aspect ratio for the video\r\n // \"I say the whole world must learn of our peaceful ways… by force!\"\r\n aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;\r\n\r\n if (height > width / aspectRatio) {\r\n height = width / aspectRatio;\r\n } else if (width > height * aspectRatio) {\r\n width = height * aspectRatio;\r\n }\r\n }\r\n\r\n rez.width = width;\r\n rez.height = height;\r\n\r\n return rez;\r\n },\r\n\r\n // Update content size and position for all slides\r\n // ==============================================\r\n\r\n update: function (e) {\r\n var self = this;\r\n\r\n $.each(self.slides, function (key, slide) {\r\n self.updateSlide(slide, e);\r\n });\r\n },\r\n\r\n // Update slide content position and size\r\n // ======================================\r\n\r\n updateSlide: function (slide, e) {\r\n var self = this,\r\n $content = slide && slide.$content,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n $slide = slide.$slide;\r\n\r\n // First, prevent caption overlap, if needed\r\n self.adjustCaption(slide);\r\n\r\n // Then resize content to fit inside the slide\r\n if ($content && (width || height || slide.contentType === \"video\") && !slide.hasError) {\r\n $.fancybox.stop($content);\r\n\r\n $.fancybox.setTranslate($content, self.getFitPos(slide));\r\n\r\n if (slide.pos === self.currPos) {\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n }\r\n }\r\n\r\n // Then some adjustments\r\n self.adjustLayout(slide);\r\n\r\n if ($slide.length) {\r\n $slide.trigger(\"refresh\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.$refs.toolbar\r\n .add(self.$refs.navigation.find(\".fancybox-button--arrow_right\"))\r\n .toggleClass(\"compensate-for-scrollbar\", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);\r\n }\r\n }\r\n\r\n self.trigger(\"onUpdate\", slide, e);\r\n },\r\n\r\n // Horizontally center slide\r\n // =========================\r\n\r\n centerSlide: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $slide = current.$slide;\r\n\r\n if (self.isClosing || !current) {\r\n return;\r\n }\r\n\r\n $slide.siblings().css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n $slide\r\n .parent()\r\n .children()\r\n .removeClass(\"fancybox-slide--previous fancybox-slide--next\");\r\n\r\n $.fancybox.animate(\r\n $slide, {\r\n top: 0,\r\n left: 0,\r\n opacity: 1\r\n },\r\n duration === undefined ? 0 : duration,\r\n function () {\r\n // Clean up\r\n $slide.css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (!current.isComplete) {\r\n self.complete();\r\n }\r\n },\r\n false\r\n );\r\n },\r\n\r\n // Check if current slide is moved (swiped)\r\n // ========================================\r\n\r\n isMoved: function (slide) {\r\n var current = slide || this.current,\r\n slidePos,\r\n stagePos;\r\n\r\n if (!current) {\r\n return false;\r\n }\r\n\r\n stagePos = $.fancybox.getTranslate(this.$refs.stage);\r\n slidePos = $.fancybox.getTranslate(current.$slide);\r\n\r\n return (\r\n !current.$slide.hasClass(\"fancybox-animated\") &&\r\n (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)\r\n );\r\n },\r\n\r\n // Update cursor style depending if content can be zoomed\r\n // ======================================================\r\n\r\n updateCursor: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n $container = self.$refs.container,\r\n canPan,\r\n isZoomable;\r\n\r\n if (!current || self.isClosing || !self.Guestures) {\r\n return;\r\n }\r\n\r\n $container.removeClass(\"fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan\");\r\n\r\n canPan = self.canPan(nextWidth, nextHeight);\r\n\r\n isZoomable = canPan ? true : self.isZoomable();\r\n\r\n $container.toggleClass(\"fancybox-is-zoomable\", isZoomable);\r\n\r\n $(\"[data-fancybox-zoom]\").prop(\"disabled\", !isZoomable);\r\n\r\n if (canPan) {\r\n $container.addClass(\"fancybox-can-pan\");\r\n } else if (\r\n isZoomable &&\r\n (current.opts.clickContent === \"zoom\" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == \"zoom\"))\r\n ) {\r\n $container.addClass(\"fancybox-can-zoomIn\");\r\n } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== \"video\") {\r\n $container.addClass(\"fancybox-can-swipe\");\r\n }\r\n },\r\n\r\n // Check if current slide is zoomable\r\n // ==================================\r\n\r\n isZoomable: function () {\r\n var self = this,\r\n current = self.current,\r\n fitPos;\r\n\r\n // Assume that slide is zoomable if:\r\n // - image is still loading\r\n // - actual size of the image is smaller than available area\r\n if (current && !self.isClosing && current.type === \"image\" && !current.hasError) {\r\n if (!current.isLoaded) {\r\n return true;\r\n }\r\n\r\n fitPos = self.getFitPos(current);\r\n\r\n if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Check if current image dimensions are smaller than actual\r\n // =========================================================\r\n\r\n isScaledDown: function (nextWidth, nextHeight) {\r\n var self = this,\r\n rez = false,\r\n current = self.current,\r\n $content = current.$content;\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n rez = nextWidth < current.width && nextHeight < current.height;\r\n } else if ($content) {\r\n rez = $.fancybox.getTranslate($content);\r\n rez = rez.width < current.width && rez.height < current.height;\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Check if image dimensions exceed parent element\r\n // ===============================================\r\n\r\n canPan: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n pos = null,\r\n rez = false;\r\n\r\n if (current.type === \"image\" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {\r\n rez = self.getFitPos(current);\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n pos = {\r\n width: nextWidth,\r\n height: nextHeight\r\n };\r\n } else if (current.isComplete) {\r\n pos = $.fancybox.getTranslate(current.$content);\r\n }\r\n\r\n if (pos && rez) {\r\n rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;\r\n }\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Load content into the slide\r\n // ===========================\r\n\r\n loadSlide: function (slide) {\r\n var self = this,\r\n type,\r\n $slide,\r\n ajaxLoad;\r\n\r\n if (slide.isLoading || slide.isLoaded) {\r\n return;\r\n }\r\n\r\n slide.isLoading = true;\r\n\r\n if (self.trigger(\"beforeLoad\", slide) === false) {\r\n slide.isLoading = false;\r\n\r\n return false;\r\n }\r\n\r\n type = slide.type;\r\n $slide = slide.$slide;\r\n\r\n $slide\r\n .off(\"refresh\")\r\n .trigger(\"onReset\")\r\n .addClass(slide.opts.slideClass);\r\n\r\n // Create content depending on the type\r\n switch (type) {\r\n case \"image\":\r\n self.setImage(slide);\r\n\r\n break;\r\n\r\n case \"iframe\":\r\n self.setIframe(slide);\r\n\r\n break;\r\n\r\n case \"html\":\r\n self.setContent(slide, slide.src || slide.content);\r\n\r\n break;\r\n\r\n case \"video\":\r\n self.setContent(\r\n slide,\r\n slide.opts.video.tpl\r\n .replace(/\\{\\{src\\}\\}/gi, slide.src)\r\n .replace(\"{{format}}\", slide.opts.videoFormat || slide.opts.video.format || \"\")\r\n .replace(\"{{poster}}\", slide.thumb || \"\")\r\n );\r\n\r\n break;\r\n\r\n case \"inline\":\r\n if ($(slide.src).length) {\r\n self.setContent(slide, $(slide.src));\r\n } else {\r\n self.setError(slide);\r\n }\r\n\r\n break;\r\n\r\n case \"ajax\":\r\n self.showLoading(slide);\r\n\r\n ajaxLoad = $.ajax(\r\n $.extend({}, slide.opts.ajax.settings, {\r\n url: slide.src,\r\n success: function (data, textStatus) {\r\n if (textStatus === \"success\") {\r\n self.setContent(slide, data);\r\n }\r\n },\r\n error: function (jqXHR, textStatus) {\r\n if (jqXHR && textStatus !== \"abort\") {\r\n self.setError(slide);\r\n }\r\n }\r\n })\r\n );\r\n\r\n $slide.one(\"onReset\", function () {\r\n ajaxLoad.abort();\r\n });\r\n\r\n break;\r\n\r\n default:\r\n self.setError(slide);\r\n\r\n break;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Use thumbnail image, if possible\r\n // ================================\r\n\r\n setImage: function (slide) {\r\n var self = this,\r\n ghost;\r\n\r\n // Check if need to show loading icon\r\n setTimeout(function () {\r\n var $img = slide.$image;\r\n\r\n if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {\r\n self.showLoading(slide);\r\n }\r\n }, 50);\r\n\r\n //Check if image has srcset\r\n self.checkSrcset(slide);\r\n\r\n // This will be wrapper containing both ghost and actual image\r\n slide.$content = $('
')\r\n .addClass(\"fancybox-is-hidden\")\r\n .appendTo(slide.$slide.addClass(\"fancybox-slide--image\"));\r\n\r\n // If we have a thumbnail, we can display it while actual image is loading\r\n // Users will not stare at black screen and actual image will appear gradually\r\n if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {\r\n slide.width = slide.opts.width;\r\n slide.height = slide.opts.height;\r\n\r\n ghost = document.createElement(\"img\");\r\n\r\n ghost.onerror = function () {\r\n $(this).remove();\r\n\r\n slide.$ghost = null;\r\n };\r\n\r\n ghost.onload = function () {\r\n self.afterLoad(slide);\r\n };\r\n\r\n slide.$ghost = $(ghost)\r\n .addClass(\"fancybox-image\")\r\n .appendTo(slide.$content)\r\n .attr(\"src\", slide.thumb);\r\n }\r\n\r\n // Start loading actual image\r\n self.setBigImage(slide);\r\n },\r\n\r\n // Check if image has srcset and get the source\r\n // ============================================\r\n checkSrcset: function (slide) {\r\n var srcset = slide.opts.srcset || slide.opts.image.srcset,\r\n found,\r\n temp,\r\n pxRatio,\r\n windowWidth;\r\n\r\n // If we have \"srcset\", then we need to find first matching \"src\" value.\r\n // This is necessary, because when you set an src attribute, the browser will preload the image\r\n // before any javascript or even CSS is applied.\r\n if (srcset) {\r\n pxRatio = window.devicePixelRatio || 1;\r\n windowWidth = window.innerWidth * pxRatio;\r\n\r\n temp = srcset.split(\",\").map(function (el) {\r\n var ret = {};\r\n\r\n el.trim()\r\n .split(/\\s+/)\r\n .forEach(function (el, i) {\r\n var value = parseInt(el.substring(0, el.length - 1), 10);\r\n\r\n if (i === 0) {\r\n return (ret.url = el);\r\n }\r\n\r\n if (value) {\r\n ret.value = value;\r\n ret.postfix = el[el.length - 1];\r\n }\r\n });\r\n\r\n return ret;\r\n });\r\n\r\n // Sort by value\r\n temp.sort(function (a, b) {\r\n return a.value - b.value;\r\n });\r\n\r\n // Ok, now we have an array of all srcset values\r\n for (var j = 0; j < temp.length; j++) {\r\n var el = temp[j];\r\n\r\n if ((el.postfix === \"w\" && el.value >= windowWidth) || (el.postfix === \"x\" && el.value >= pxRatio)) {\r\n found = el;\r\n break;\r\n }\r\n }\r\n\r\n // If not found, take the last one\r\n if (!found && temp.length) {\r\n found = temp[temp.length - 1];\r\n }\r\n\r\n if (found) {\r\n slide.src = found.url;\r\n\r\n // If we have default width/height values, we can calculate height for matching source\r\n if (slide.width && slide.height && found.postfix == \"w\") {\r\n slide.height = (slide.width / slide.height) * found.value;\r\n slide.width = found.value;\r\n }\r\n\r\n slide.opts.srcset = srcset;\r\n }\r\n }\r\n },\r\n\r\n // Create full-size image\r\n // ======================\r\n\r\n setBigImage: function (slide) {\r\n var self = this,\r\n img = document.createElement(\"img\"),\r\n $img = $(img);\r\n\r\n slide.$image = $img\r\n .one(\"error\", function () {\r\n self.setError(slide);\r\n })\r\n .one(\"load\", function () {\r\n var sizes;\r\n\r\n if (!slide.$ghost) {\r\n self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);\r\n\r\n self.afterLoad(slide);\r\n }\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (slide.opts.srcset) {\r\n sizes = slide.opts.sizes;\r\n\r\n if (!sizes || sizes === \"auto\") {\r\n sizes =\r\n (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? \"100\" : Math.round((slide.width / slide.height) * 100)) +\r\n \"vw\";\r\n }\r\n\r\n $img.attr(\"sizes\", sizes).attr(\"srcset\", slide.opts.srcset);\r\n }\r\n\r\n // Hide temporary image after some delay\r\n if (slide.$ghost) {\r\n setTimeout(function () {\r\n if (slide.$ghost && !self.isClosing) {\r\n slide.$ghost.hide();\r\n }\r\n }, Math.min(300, Math.max(1000, slide.height / 1600)));\r\n }\r\n\r\n self.hideLoading(slide);\r\n })\r\n .addClass(\"fancybox-image\")\r\n .attr(\"src\", slide.src)\r\n .appendTo(slide.$content);\r\n\r\n if ((img.complete || img.readyState == \"complete\") && $img.naturalWidth && $img.naturalHeight) {\r\n $img.trigger(\"load\");\r\n } else if (img.error) {\r\n $img.trigger(\"error\");\r\n }\r\n },\r\n\r\n // Computes the slide size from image size and maxWidth/maxHeight\r\n // ==============================================================\r\n\r\n resolveImageSlideSize: function (slide, imgWidth, imgHeight) {\r\n var maxWidth = parseInt(slide.opts.width, 10),\r\n maxHeight = parseInt(slide.opts.height, 10);\r\n\r\n // Sets the default values from the image\r\n slide.width = imgWidth;\r\n slide.height = imgHeight;\r\n\r\n if (maxWidth > 0) {\r\n slide.width = maxWidth;\r\n slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);\r\n }\r\n\r\n if (maxHeight > 0) {\r\n slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);\r\n slide.height = maxHeight;\r\n }\r\n },\r\n\r\n // Create iframe wrapper, iframe and bindings\r\n // ==========================================\r\n\r\n setIframe: function (slide) {\r\n var self = this,\r\n opts = slide.opts.iframe,\r\n $slide = slide.$slide,\r\n $iframe;\r\n\r\n slide.$content = $('
')\r\n .css(opts.css)\r\n .appendTo($slide);\r\n\r\n $slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n slide.$iframe = $iframe = $(opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()))\r\n .attr(opts.attr)\r\n .appendTo(slide.$content);\r\n\r\n if (opts.preload) {\r\n self.showLoading(slide);\r\n\r\n // Unfortunately, it is not always possible to determine if iframe is successfully loaded\r\n // (due to browser security policy)\r\n\r\n $iframe.on(\"load.fb error.fb\", function (e) {\r\n this.isReady = 1;\r\n\r\n slide.$slide.trigger(\"refresh\");\r\n\r\n self.afterLoad(slide);\r\n });\r\n\r\n // Recalculate iframe content size\r\n // ===============================\r\n\r\n $slide.on(\"refresh.fb\", function () {\r\n var $content = slide.$content,\r\n frameWidth = opts.css.width,\r\n frameHeight = opts.css.height,\r\n $contents,\r\n $body;\r\n\r\n if ($iframe[0].isReady !== 1) {\r\n return;\r\n }\r\n\r\n try {\r\n $contents = $iframe.contents();\r\n $body = $contents.find(\"body\");\r\n } catch (ignore) {}\r\n\r\n // Calculate content dimensions, if it is accessible\r\n if ($body && $body.length && $body.children().length) {\r\n // Avoid scrolling to top (if multiple instances)\r\n $slide.css(\"overflow\", \"visible\");\r\n\r\n $content.css({\r\n width: \"100%\",\r\n \"max-width\": \"100%\",\r\n height: \"9999px\"\r\n });\r\n\r\n if (frameWidth === undefined) {\r\n frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));\r\n }\r\n\r\n $content.css(\"width\", frameWidth ? frameWidth : \"\").css(\"max-width\", \"\");\r\n\r\n if (frameHeight === undefined) {\r\n frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));\r\n }\r\n\r\n $content.css(\"height\", frameHeight ? frameHeight : \"\");\r\n\r\n $slide.css(\"overflow\", \"auto\");\r\n }\r\n\r\n $content.removeClass(\"fancybox-is-hidden\");\r\n });\r\n } else {\r\n self.afterLoad(slide);\r\n }\r\n\r\n $iframe.attr(\"src\", slide.src);\r\n\r\n // Remove iframe if closing or changing gallery item\r\n $slide.one(\"onReset\", function () {\r\n // This helps IE not to throw errors when closing\r\n try {\r\n $(this)\r\n .find(\"iframe\")\r\n .hide()\r\n .unbind()\r\n .attr(\"src\", \"//about:blank\");\r\n } catch (ignore) {}\r\n\r\n $(this)\r\n .off(\"refresh.fb\")\r\n .empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n });\r\n },\r\n\r\n // Wrap and append content to the slide\r\n // ======================================\r\n\r\n setContent: function (slide, content) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n self.hideLoading(slide);\r\n\r\n if (slide.$content) {\r\n $.fancybox.stop(slide.$content);\r\n }\r\n\r\n slide.$slide.empty();\r\n\r\n // If content is a jQuery object, then it will be moved to the slide.\r\n // The placeholder is created so we will know where to put it back.\r\n if (isQuery(content) && content.parent().length) {\r\n // Make sure content is not already moved to fancyBox\r\n if (content.hasClass(\"fancybox-content\") || content.parent().hasClass(\"fancybox-content\")) {\r\n content.parents(\".fancybox-slide\").trigger(\"onReset\");\r\n }\r\n\r\n // Create temporary element marking original place of the content\r\n slide.$placeholder = $(\"
\")\r\n .hide()\r\n .insertAfter(content);\r\n\r\n // Make sure content is visible\r\n content.css(\"display\", \"inline-block\");\r\n } else if (!slide.hasError) {\r\n // If content is just a plain text, try to convert it to html\r\n if ($.type(content) === \"string\") {\r\n content = $(\"
\")\r\n .append($.trim(content))\r\n .contents();\r\n }\r\n\r\n // If \"filter\" option is provided, then filter content\r\n if (slide.opts.filter) {\r\n content = $(\"
\")\r\n .html(content)\r\n .find(slide.opts.filter);\r\n }\r\n }\r\n\r\n slide.$slide.one(\"onReset\", function () {\r\n // Pause all html5 video/audio\r\n $(this)\r\n .find(\"video,audio\")\r\n .trigger(\"pause\");\r\n\r\n // Put content back\r\n if (slide.$placeholder) {\r\n slide.$placeholder.after(content.removeClass(\"fancybox-content\").hide()).remove();\r\n\r\n slide.$placeholder = null;\r\n }\r\n\r\n // Remove custom close button\r\n if (slide.$smallBtn) {\r\n slide.$smallBtn.remove();\r\n\r\n slide.$smallBtn = null;\r\n }\r\n\r\n // Remove content and mark slide as not loaded\r\n if (!slide.hasError) {\r\n $(this).empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n }\r\n });\r\n\r\n $(content).appendTo(slide.$slide);\r\n\r\n if ($(content).is(\"video,audio\")) {\r\n $(content).addClass(\"fancybox-video\");\r\n\r\n $(content).wrap(\"
\");\r\n\r\n slide.contentType = \"video\";\r\n\r\n slide.opts.width = slide.opts.width || $(content).attr(\"width\");\r\n slide.opts.height = slide.opts.height || $(content).attr(\"height\");\r\n }\r\n\r\n slide.$content = slide.$slide\r\n .children()\r\n .filter(\"div,form,main,video,audio,article,.fancybox-content\")\r\n .first();\r\n\r\n slide.$content.siblings().hide();\r\n\r\n // Re-check if there is a valid content\r\n // (in some cases, ajax response can contain various elements or plain text)\r\n if (!slide.$content.length) {\r\n slide.$content = slide.$slide\r\n .wrapInner(\"
\")\r\n .children()\r\n .first();\r\n }\r\n\r\n slide.$content.addClass(\"fancybox-content\");\r\n\r\n slide.$slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n self.afterLoad(slide);\r\n },\r\n\r\n // Display error message\r\n // =====================\r\n\r\n setError: function (slide) {\r\n slide.hasError = true;\r\n\r\n slide.$slide\r\n .trigger(\"onReset\")\r\n .removeClass(\"fancybox-slide--\" + slide.contentType)\r\n .addClass(\"fancybox-slide--error\");\r\n\r\n slide.contentType = \"html\";\r\n\r\n this.setContent(slide, this.translate(slide, slide.opts.errorTpl));\r\n\r\n if (slide.pos === this.currPos) {\r\n this.isAnimating = false;\r\n }\r\n },\r\n\r\n // Show loading icon inside the slide\r\n // ==================================\r\n\r\n showLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && !slide.$spinner) {\r\n slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))\r\n .appendTo(slide.$slide)\r\n .hide()\r\n .fadeIn(\"fast\");\r\n }\r\n },\r\n\r\n // Remove loading icon from the slide\r\n // ==================================\r\n\r\n hideLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && slide.$spinner) {\r\n slide.$spinner.stop().remove();\r\n\r\n delete slide.$spinner;\r\n }\r\n },\r\n\r\n // Adjustments after slide content has been loaded\r\n // ===============================================\r\n\r\n afterLoad: function (slide) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n slide.isLoading = false;\r\n slide.isLoaded = true;\r\n\r\n self.trigger(\"afterLoad\", slide);\r\n\r\n self.hideLoading(slide);\r\n\r\n // Add small close button\r\n if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {\r\n slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);\r\n }\r\n\r\n // Disable right click\r\n if (slide.opts.protect && slide.$content && !slide.hasError) {\r\n slide.$content.on(\"contextmenu.fb\", function (e) {\r\n if (e.button == 2) {\r\n e.preventDefault();\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // Add fake element on top of the image\r\n // This makes a bit harder for user to select image\r\n if (slide.type === \"image\") {\r\n $('
').appendTo(slide.$content);\r\n }\r\n }\r\n\r\n self.adjustCaption(slide);\r\n\r\n self.adjustLayout(slide);\r\n\r\n if (slide.pos === self.currPos) {\r\n self.updateCursor();\r\n }\r\n\r\n self.revealContent(slide);\r\n },\r\n\r\n // Prevent caption overlap,\r\n // fix css inconsistency across browsers\r\n // =====================================\r\n\r\n adjustCaption: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n caption = current.opts.caption,\r\n preventOverlap = current.opts.preventCaptionOverlap,\r\n $caption = self.$refs.caption,\r\n $clone,\r\n captionH = false;\r\n\r\n $caption.toggleClass(\"fancybox-caption--separate\", preventOverlap);\r\n\r\n if (preventOverlap && caption && caption.length) {\r\n if (current.pos !== self.currPos) {\r\n $clone = $caption.clone().appendTo($caption.parent());\r\n\r\n $clone\r\n .children()\r\n .eq(0)\r\n .empty()\r\n .html(caption);\r\n\r\n captionH = $clone.outerHeight(true);\r\n\r\n $clone.empty().remove();\r\n } else if (self.$caption) {\r\n captionH = self.$caption.outerHeight(true);\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", captionH || \"\");\r\n }\r\n },\r\n\r\n // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=748518\r\n // ====================================================================================\r\n\r\n adjustLayout: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n scrollHeight,\r\n marginBottom,\r\n inlinePadding,\r\n actualPadding;\r\n\r\n if (current.isLoaded && current.opts.disableLayoutFix !== true) {\r\n current.$content.css(\"margin-bottom\", \"\");\r\n\r\n // If we would always set margin-bottom for the content,\r\n // then it would potentially break vertical align\r\n if (current.$content.outerHeight() > current.$slide.height() + 0.5) {\r\n inlinePadding = current.$slide[0].style[\"padding-bottom\"];\r\n actualPadding = current.$slide.css(\"padding-bottom\");\r\n\r\n if (parseFloat(actualPadding) > 0) {\r\n scrollHeight = current.$slide[0].scrollHeight;\r\n\r\n current.$slide.css(\"padding-bottom\", 0);\r\n\r\n if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {\r\n marginBottom = actualPadding;\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", inlinePadding);\r\n }\r\n }\r\n\r\n current.$content.css(\"margin-bottom\", marginBottom);\r\n }\r\n },\r\n\r\n // Make content visible\r\n // This method is called right after content has been loaded or\r\n // user navigates gallery and transition should start\r\n // ============================================================\r\n\r\n revealContent: function (slide) {\r\n var self = this,\r\n $slide = slide.$slide,\r\n end = false,\r\n start = false,\r\n isMoved = self.isMoved(slide),\r\n isRevealed = slide.isRevealed,\r\n effect,\r\n effectClassName,\r\n duration,\r\n opacity;\r\n\r\n slide.isRevealed = true;\r\n\r\n effect = slide.opts[self.firstRun ? \"animationEffect\" : \"transitionEffect\"];\r\n duration = slide.opts[self.firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n\r\n duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);\r\n\r\n if (isMoved || slide.pos !== self.currPos || !duration) {\r\n effect = false;\r\n }\r\n\r\n // Check if can zoom\r\n if (effect === \"zoom\") {\r\n if (slide.pos === self.currPos && duration && slide.type === \"image\" && !slide.hasError && (start = self.getThumbPos(slide))) {\r\n end = self.getFitPos(slide);\r\n } else {\r\n effect = \"fade\";\r\n }\r\n }\r\n\r\n // Zoom animation\r\n // ==============\r\n if (effect === \"zoom\") {\r\n self.isAnimating = true;\r\n\r\n end.scaleX = end.width / start.width;\r\n end.scaleY = end.height / start.height;\r\n\r\n // Check if we need to animate opacity\r\n opacity = slide.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n start.opacity = 0.1;\r\n end.opacity = 1;\r\n }\r\n\r\n // Draw image at start position\r\n $.fancybox.setTranslate(slide.$content.removeClass(\"fancybox-is-hidden\"), start);\r\n\r\n forceRedraw(slide.$content);\r\n\r\n // Start animation\r\n $.fancybox.animate(slide.$content, end, duration, function () {\r\n self.isAnimating = false;\r\n\r\n self.complete();\r\n });\r\n\r\n return;\r\n }\r\n\r\n self.updateSlide(slide);\r\n\r\n // Simply show content if no effect\r\n // ================================\r\n if (!effect) {\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n if (!isRevealed && isMoved && slide.type === \"image\" && !slide.hasError) {\r\n slide.$content.hide().fadeIn(\"fast\");\r\n }\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Prepare for CSS transiton\r\n // =========================\r\n $.fancybox.stop($slide);\r\n\r\n //effectClassName = \"fancybox-animated fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-fx-\" + effect;\r\n effectClassName = \"fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-animated fancybox-fx-\" + effect;\r\n\r\n $slide.addClass(effectClassName).removeClass(\"fancybox-slide--current\"); //.addClass(effectClassName);\r\n\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n // Force reflow\r\n forceRedraw($slide);\r\n\r\n if (slide.type !== \"image\") {\r\n slide.$content.hide().show(0);\r\n }\r\n\r\n $.fancybox.animate(\r\n $slide,\r\n \"fancybox-slide--current\",\r\n duration,\r\n function () {\r\n $slide.removeClass(effectClassName).css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n },\r\n true\r\n );\r\n },\r\n\r\n // Check if we can and have to zoom from thumbnail\r\n //================================================\r\n\r\n getThumbPos: function (slide) {\r\n var rez = false,\r\n $thumb = slide.$thumb,\r\n thumbPos,\r\n btw,\r\n brw,\r\n bbw,\r\n blw;\r\n\r\n if (!$thumb || !inViewport($thumb[0])) {\r\n return false;\r\n }\r\n\r\n thumbPos = $.fancybox.getTranslate($thumb);\r\n\r\n btw = parseFloat($thumb.css(\"border-top-width\") || 0);\r\n brw = parseFloat($thumb.css(\"border-right-width\") || 0);\r\n bbw = parseFloat($thumb.css(\"border-bottom-width\") || 0);\r\n blw = parseFloat($thumb.css(\"border-left-width\") || 0);\r\n\r\n rez = {\r\n top: thumbPos.top + btw,\r\n left: thumbPos.left + blw,\r\n width: thumbPos.width - brw - blw,\r\n height: thumbPos.height - btw - bbw,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;\r\n },\r\n\r\n // Final adjustments after current gallery item is moved to position\r\n // and it`s content is loaded\r\n // ==================================================================\r\n\r\n complete: function () {\r\n var self = this,\r\n current = self.current,\r\n slides = {},\r\n $el;\r\n\r\n if (self.isMoved() || !current.isLoaded) {\r\n return;\r\n }\r\n\r\n if (!current.isComplete) {\r\n current.isComplete = true;\r\n\r\n current.$slide.siblings().trigger(\"onReset\");\r\n\r\n self.preload(\"inline\");\r\n\r\n // Trigger any CSS transiton inside the slide\r\n forceRedraw(current.$slide);\r\n\r\n current.$slide.addClass(\"fancybox-slide--complete\");\r\n\r\n // Remove unnecessary slides\r\n $.each(self.slides, function (key, slide) {\r\n if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {\r\n slides[slide.pos] = slide;\r\n } else if (slide) {\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slide.$slide.off().remove();\r\n }\r\n });\r\n\r\n self.slides = slides;\r\n }\r\n\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n\r\n self.trigger(\"afterShow\");\r\n\r\n // Autoplay first html5 video/audio\r\n if (!!current.opts.video.autoStart) {\r\n current.$slide\r\n .find(\"video,audio\")\r\n .filter(\":visible:first\")\r\n .trigger(\"play\")\r\n .one(\"ended\", function () {\r\n if (Document.exitFullscreen) {\r\n Document.exitFullscreen();\r\n } else if (this.webkitExitFullscreen) {\r\n this.webkitExitFullscreen();\r\n }\r\n\r\n self.next();\r\n });\r\n }\r\n\r\n // Try to focus on the first focusable element\r\n if (current.opts.autoFocus && current.contentType === \"html\") {\r\n // Look for the first input with autofocus attribute\r\n $el = current.$content.find(\"input[autofocus]:enabled:visible:first\");\r\n\r\n if ($el.length) {\r\n $el.trigger(\"focus\");\r\n } else {\r\n self.focus(null, true);\r\n }\r\n }\r\n\r\n // Avoid jumping\r\n current.$slide.scrollTop(0).scrollLeft(0);\r\n },\r\n\r\n // Preload next and previous slides\r\n // ================================\r\n\r\n preload: function (type) {\r\n var self = this,\r\n prev,\r\n next;\r\n\r\n if (self.group.length < 2) {\r\n return;\r\n }\r\n\r\n next = self.slides[self.currPos + 1];\r\n prev = self.slides[self.currPos - 1];\r\n\r\n if (prev && prev.type === type) {\r\n self.loadSlide(prev);\r\n }\r\n\r\n if (next && next.type === type) {\r\n self.loadSlide(next);\r\n }\r\n },\r\n\r\n // Try to find and focus on the first focusable element\r\n // ====================================================\r\n\r\n focus: function (e, firstRun) {\r\n var self = this,\r\n focusableStr = [\r\n \"a[href]\",\r\n \"area[href]\",\r\n 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\r\n \"select:not([disabled]):not([aria-hidden])\",\r\n \"textarea:not([disabled]):not([aria-hidden])\",\r\n \"button:not([disabled]):not([aria-hidden])\",\r\n \"iframe\",\r\n \"object\",\r\n \"embed\",\r\n \"video\",\r\n \"audio\",\r\n \"[contenteditable]\",\r\n '[tabindex]:not([tabindex^=\"-\"])'\r\n ].join(\",\"),\r\n focusableItems,\r\n focusedItemIndex;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (e || !self.current || !self.current.isComplete) {\r\n // Focus on any element inside fancybox\r\n focusableItems = self.$refs.container.find(\"*:visible\");\r\n } else {\r\n // Focus inside current slide\r\n focusableItems = self.current.$slide.find(\"*:visible\" + (firstRun ? \":not(.fancybox-close-small)\" : \"\"));\r\n }\r\n\r\n focusableItems = focusableItems.filter(focusableStr).filter(function () {\r\n return $(this).css(\"visibility\") !== \"hidden\" && !$(this).hasClass(\"disabled\");\r\n });\r\n\r\n if (focusableItems.length) {\r\n focusedItemIndex = focusableItems.index(document.activeElement);\r\n\r\n if (e && e.shiftKey) {\r\n // Back tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == 0) {\r\n e.preventDefault();\r\n\r\n focusableItems.eq(focusableItems.length - 1).trigger(\"focus\");\r\n }\r\n } else {\r\n // Outside or Forward tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n focusableItems.eq(0).trigger(\"focus\");\r\n }\r\n }\r\n } else {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Activates current instance - brings container to the front and enables keyboard,\r\n // notifies other instances about deactivating\r\n // =================================================================================\r\n\r\n activate: function () {\r\n var self = this;\r\n\r\n // Deactivate all instances\r\n $(\".fancybox-container\").each(function () {\r\n var instance = $(this).data(\"FancyBox\");\r\n\r\n // Skip self and closing instances\r\n if (instance && instance.id !== self.id && !instance.isClosing) {\r\n instance.trigger(\"onDeactivate\");\r\n\r\n instance.removeEvents();\r\n\r\n instance.isVisible = false;\r\n }\r\n });\r\n\r\n self.isVisible = true;\r\n\r\n if (self.current || self.isIdle) {\r\n self.update();\r\n\r\n self.updateControls();\r\n }\r\n\r\n self.trigger(\"onActivate\");\r\n\r\n self.addEvents();\r\n },\r\n\r\n // Start closing procedure\r\n // This will start \"zoom-out\" animation if needed and clean everything up afterwards\r\n // =================================================================================\r\n\r\n close: function (e, d) {\r\n var self = this,\r\n current = self.current,\r\n effect,\r\n duration,\r\n $content,\r\n domRect,\r\n opacity,\r\n start,\r\n end;\r\n\r\n var done = function () {\r\n self.cleanUp(e);\r\n };\r\n\r\n if (self.isClosing) {\r\n return false;\r\n }\r\n\r\n self.isClosing = true;\r\n\r\n // If beforeClose callback prevents closing, make sure content is centered\r\n if (self.trigger(\"beforeClose\", e) === false) {\r\n self.isClosing = false;\r\n\r\n requestAFrame(function () {\r\n self.update();\r\n });\r\n\r\n return false;\r\n }\r\n\r\n // Remove all events\r\n // If there are multiple instances, they will be set again by \"activate\" method\r\n self.removeEvents();\r\n\r\n $content = current.$content;\r\n effect = current.opts.animationEffect;\r\n duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;\r\n\r\n current.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated\");\r\n\r\n if (e !== true) {\r\n $.fancybox.stop(current.$slide);\r\n } else {\r\n effect = false;\r\n }\r\n\r\n // Remove other slides\r\n current.$slide\r\n .siblings()\r\n .trigger(\"onReset\")\r\n .remove();\r\n\r\n // Trigger animations\r\n if (duration) {\r\n self.$refs.container\r\n .removeClass(\"fancybox-is-open\")\r\n .addClass(\"fancybox-is-closing\")\r\n .css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Clean up\r\n self.hideLoading(current);\r\n\r\n self.hideControls(true);\r\n\r\n self.updateCursor();\r\n\r\n // Check if possible to zoom-out\r\n if (\r\n effect === \"zoom\" &&\r\n !($content && duration && current.type === \"image\" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))\r\n ) {\r\n effect = \"fade\";\r\n }\r\n\r\n if (effect === \"zoom\") {\r\n $.fancybox.stop($content);\r\n\r\n domRect = $.fancybox.getTranslate($content);\r\n\r\n start = {\r\n top: domRect.top,\r\n left: domRect.left,\r\n scaleX: domRect.width / end.width,\r\n scaleY: domRect.height / end.height,\r\n width: end.width,\r\n height: end.height\r\n };\r\n\r\n // Check if we need to animate opacity\r\n opacity = current.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n end.opacity = 0;\r\n }\r\n\r\n $.fancybox.setTranslate($content, start);\r\n\r\n forceRedraw($content);\r\n\r\n $.fancybox.animate($content, end, duration, done);\r\n\r\n return true;\r\n }\r\n\r\n if (effect && duration) {\r\n $.fancybox.animate(\r\n current.$slide.addClass(\"fancybox-slide--previous\").removeClass(\"fancybox-slide--current\"),\r\n \"fancybox-animated fancybox-fx-\" + effect,\r\n duration,\r\n done\r\n );\r\n } else {\r\n // If skip animation\r\n if (e === true) {\r\n setTimeout(done, duration);\r\n } else {\r\n done();\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Final adjustments after removing the instance\r\n // =============================================\r\n\r\n cleanUp: function (e) {\r\n var self = this,\r\n instance,\r\n $focus = self.current.opts.$orig,\r\n x,\r\n y;\r\n\r\n self.current.$slide.trigger(\"onReset\");\r\n\r\n self.$refs.container.empty().remove();\r\n\r\n self.trigger(\"afterClose\", e);\r\n\r\n // Place back focus\r\n if (!!self.current.opts.backFocus) {\r\n if (!$focus || !$focus.length || !$focus.is(\":visible\")) {\r\n $focus = self.$trigger;\r\n }\r\n\r\n if ($focus && $focus.length) {\r\n x = window.scrollX;\r\n y = window.scrollY;\r\n\r\n $focus.trigger(\"focus\");\r\n\r\n $(\"html, body\")\r\n .scrollTop(y)\r\n .scrollLeft(x);\r\n }\r\n }\r\n\r\n self.current = null;\r\n\r\n // Check if there are other instances\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n instance.activate();\r\n } else {\r\n $(\"body\").removeClass(\"fancybox-active compensate-for-scrollbar\");\r\n\r\n $(\"#fancybox-style-noscroll\").remove();\r\n }\r\n },\r\n\r\n // Call callback and trigger an event\r\n // ==================================\r\n\r\n trigger: function (name, slide) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n self = this,\r\n obj = slide && slide.opts ? slide : self.current,\r\n rez;\r\n\r\n if (obj) {\r\n args.unshift(obj);\r\n } else {\r\n obj = self;\r\n }\r\n\r\n args.unshift(self);\r\n\r\n if ($.isFunction(obj.opts[name])) {\r\n rez = obj.opts[name].apply(obj, args);\r\n }\r\n\r\n if (rez === false) {\r\n return rez;\r\n }\r\n\r\n if (name === \"afterClose\" || !self.$refs) {\r\n $D.trigger(name + \".fb\", args);\r\n } else {\r\n self.$refs.container.trigger(name + \".fb\", args);\r\n }\r\n },\r\n\r\n // Update infobar values, navigation button states and reveal caption\r\n // ==================================================================\r\n\r\n updateControls: function () {\r\n var self = this,\r\n current = self.current,\r\n index = current.index,\r\n $container = self.$refs.container,\r\n $caption = self.$refs.caption,\r\n caption = current.opts.caption;\r\n\r\n // Recalculate content dimensions\r\n current.$slide.trigger(\"refresh\");\r\n\r\n // Set caption\r\n if (caption && caption.length) {\r\n self.$caption = $caption;\r\n\r\n $caption\r\n .children()\r\n .eq(0)\r\n .html(caption);\r\n } else {\r\n self.$caption = null;\r\n }\r\n\r\n if (!self.hasHiddenControls && !self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n // Update info and navigation elements\r\n $container.find(\"[data-fancybox-count]\").html(self.group.length);\r\n $container.find(\"[data-fancybox-index]\").html(index + 1);\r\n\r\n $container.find(\"[data-fancybox-prev]\").prop(\"disabled\", !current.opts.loop && index <= 0);\r\n $container.find(\"[data-fancybox-next]\").prop(\"disabled\", !current.opts.loop && index >= self.group.length - 1);\r\n\r\n if (current.type === \"image\") {\r\n // Re-enable buttons; update download button source\r\n $container\r\n .find(\"[data-fancybox-zoom]\")\r\n .show()\r\n .end()\r\n .find(\"[data-fancybox-download]\")\r\n .attr(\"href\", current.opts.image.src || current.src)\r\n .show();\r\n } else if (current.opts.toolbar) {\r\n $container.find(\"[data-fancybox-download],[data-fancybox-zoom]\").hide();\r\n }\r\n\r\n // Make sure focus is not on disabled button/element\r\n if ($(document.activeElement).is(\":hidden,[disabled]\")) {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Hide toolbar and caption\r\n // ========================\r\n\r\n hideControls: function (andCaption) {\r\n var self = this,\r\n arr = [\"infobar\", \"toolbar\", \"nav\"];\r\n\r\n if (andCaption || !self.current.opts.preventCaptionOverlap) {\r\n arr.push(\"caption\");\r\n }\r\n\r\n this.$refs.container.removeClass(\r\n arr\r\n .map(function (i) {\r\n return \"fancybox-show-\" + i;\r\n })\r\n .join(\" \")\r\n );\r\n\r\n this.hasHiddenControls = true;\r\n },\r\n\r\n showControls: function () {\r\n var self = this,\r\n opts = self.current ? self.current.opts : self.opts,\r\n $container = self.$refs.container;\r\n\r\n self.hasHiddenControls = false;\r\n self.idleSecondsCounter = 0;\r\n\r\n $container\r\n .toggleClass(\"fancybox-show-toolbar\", !!(opts.toolbar && opts.buttons))\r\n .toggleClass(\"fancybox-show-infobar\", !!(opts.infobar && self.group.length > 1))\r\n .toggleClass(\"fancybox-show-caption\", !!self.$caption)\r\n .toggleClass(\"fancybox-show-nav\", !!(opts.arrows && self.group.length > 1))\r\n .toggleClass(\"fancybox-is-modal\", !!opts.modal);\r\n },\r\n\r\n // Toggle toolbar and caption\r\n // ==========================\r\n\r\n toggleControls: function () {\r\n if (this.hasHiddenControls) {\r\n this.showControls();\r\n } else {\r\n this.hideControls();\r\n }\r\n }\r\n });\r\n\r\n $.fancybox = {\r\n version: \"3.5.7\",\r\n defaults: defaults,\r\n\r\n // Get current instance and execute a command.\r\n //\r\n // Examples of usage:\r\n //\r\n // $instance = $.fancybox.getInstance();\r\n // $.fancybox.getInstance().jumpTo( 1 );\r\n // $.fancybox.getInstance( 'jumpTo', 1 );\r\n // $.fancybox.getInstance( function() {\r\n // console.info( this.currIndex );\r\n // });\r\n // ======================================================\r\n\r\n getInstance: function (command) {\r\n var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):last').data(\"FancyBox\"),\r\n args = Array.prototype.slice.call(arguments, 1);\r\n\r\n if (instance instanceof FancyBox) {\r\n if ($.type(command) === \"string\") {\r\n instance[command].apply(instance, args);\r\n } else if ($.type(command) === \"function\") {\r\n command.apply(instance, args);\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Create new instance\r\n // ===================\r\n\r\n open: function (items, opts, index) {\r\n return new FancyBox(items, opts, index);\r\n },\r\n\r\n // Close current or all instances\r\n // ==============================\r\n\r\n close: function (all) {\r\n var instance = this.getInstance();\r\n\r\n if (instance) {\r\n instance.close();\r\n\r\n // Try to find and close next instance\r\n if (all === true) {\r\n this.close(all);\r\n }\r\n }\r\n },\r\n\r\n // Close all instances and unbind all events\r\n // =========================================\r\n\r\n destroy: function () {\r\n this.close(true);\r\n\r\n $D.add(\"body\").off(\"click.fb-start\", \"**\");\r\n },\r\n\r\n // Try to detect mobile devices\r\n // ============================\r\n\r\n isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\r\n\r\n // Detect if 'translate3d' support is available\r\n // ============================================\r\n\r\n use3d: (function () {\r\n var div = document.createElement(\"div\");\r\n\r\n return (\r\n window.getComputedStyle &&\r\n window.getComputedStyle(div) &&\r\n window.getComputedStyle(div).getPropertyValue(\"transform\") &&\r\n !(document.documentMode && document.documentMode < 11)\r\n );\r\n })(),\r\n\r\n // Helper function to get current visual state of an element\r\n // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\r\n // =====================================================================\r\n\r\n getTranslate: function ($el) {\r\n var domRect;\r\n\r\n if (!$el || !$el.length) {\r\n return false;\r\n }\r\n\r\n domRect = $el[0].getBoundingClientRect();\r\n\r\n return {\r\n top: domRect.top || 0,\r\n left: domRect.left || 0,\r\n width: domRect.width,\r\n height: domRect.height,\r\n opacity: parseFloat($el.css(\"opacity\"))\r\n };\r\n },\r\n\r\n // Shortcut for setting \"translate3d\" properties for element\r\n // Can set be used to set opacity, too\r\n // ========================================================\r\n\r\n setTranslate: function ($el, props) {\r\n var str = \"\",\r\n css = {};\r\n\r\n if (!$el || !props) {\r\n return;\r\n }\r\n\r\n if (props.left !== undefined || props.top !== undefined) {\r\n str =\r\n (props.left === undefined ? $el.position().left : props.left) +\r\n \"px, \" +\r\n (props.top === undefined ? $el.position().top : props.top) +\r\n \"px\";\r\n\r\n if (this.use3d) {\r\n str = \"translate3d(\" + str + \", 0px)\";\r\n } else {\r\n str = \"translate(\" + str + \")\";\r\n }\r\n }\r\n\r\n if (props.scaleX !== undefined && props.scaleY !== undefined) {\r\n str += \" scale(\" + props.scaleX + \", \" + props.scaleY + \")\";\r\n } else if (props.scaleX !== undefined) {\r\n str += \" scaleX(\" + props.scaleX + \")\";\r\n }\r\n\r\n if (str.length) {\r\n css.transform = str;\r\n }\r\n\r\n if (props.opacity !== undefined) {\r\n css.opacity = props.opacity;\r\n }\r\n\r\n if (props.width !== undefined) {\r\n css.width = props.width;\r\n }\r\n\r\n if (props.height !== undefined) {\r\n css.height = props.height;\r\n }\r\n\r\n return $el.css(css);\r\n },\r\n\r\n // Simple CSS transition handler\r\n // =============================\r\n\r\n animate: function ($el, to, duration, callback, leaveAnimationName) {\r\n var self = this,\r\n from;\r\n\r\n if ($.isFunction(duration)) {\r\n callback = duration;\r\n duration = null;\r\n }\r\n\r\n self.stop($el);\r\n\r\n from = self.getTranslate($el);\r\n\r\n $el.on(transitionEnd, function (e) {\r\n // Skip events from child elements and z-index change\r\n if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == \"z-index\")) {\r\n return;\r\n }\r\n\r\n self.stop($el);\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", \"\");\r\n }\r\n\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n self.setTranslate($el, {\r\n top: to.top,\r\n left: to.left,\r\n width: from.width * to.scaleX,\r\n height: from.height * to.scaleY,\r\n scaleX: 1,\r\n scaleY: 1\r\n });\r\n }\r\n } else if (leaveAnimationName !== true) {\r\n $el.removeClass(to);\r\n }\r\n\r\n if ($.isFunction(callback)) {\r\n callback(e);\r\n }\r\n });\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Start animation by changing CSS properties or class name\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n delete to.width;\r\n delete to.height;\r\n\r\n if ($el.parent().hasClass(\"fancybox-slide--image\")) {\r\n $el.parent().addClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n\r\n $.fancybox.setTranslate($el, to);\r\n } else {\r\n $el.addClass(to);\r\n }\r\n\r\n // Make sure that `transitionend` callback gets fired\r\n $el.data(\r\n \"timer\",\r\n setTimeout(function () {\r\n $el.trigger(transitionEnd);\r\n }, duration + 33)\r\n );\r\n },\r\n\r\n stop: function ($el, callCallback) {\r\n if ($el && $el.length) {\r\n clearTimeout($el.data(\"timer\"));\r\n\r\n if (callCallback) {\r\n $el.trigger(transitionEnd);\r\n }\r\n\r\n $el.off(transitionEnd).css(\"transition-duration\", \"\");\r\n\r\n $el.parent().removeClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n };\r\n\r\n // Default click handler for \"fancyboxed\" links\r\n // ============================================\r\n\r\n function _run(e, opts) {\r\n var items = [],\r\n index = 0,\r\n $target,\r\n value,\r\n instance;\r\n\r\n // Avoid opening multiple times\r\n if (e && e.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n opts = opts || {};\r\n\r\n if (e && e.data) {\r\n opts = mergeOpts(e.data.options, opts);\r\n }\r\n\r\n $target = opts.$target || $(e.currentTarget).trigger(\"blur\");\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance && instance.$trigger && instance.$trigger.is($target)) {\r\n return;\r\n }\r\n\r\n if (opts.selector) {\r\n items = $(opts.selector);\r\n } else {\r\n // Get all related items and find index for clicked one\r\n value = $target.attr(\"data-fancybox\") || \"\";\r\n\r\n if (value) {\r\n items = e.data ? e.data.items : [];\r\n items = items.length ? items.filter('[data-fancybox=\"' + value + '\"]') : $('[data-fancybox=\"' + value + '\"]');\r\n } else {\r\n items = [$target];\r\n }\r\n }\r\n\r\n index = $(items).index($target);\r\n\r\n // Sometimes current item can not be found\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n\r\n instance = $.fancybox.open(items, opts, index);\r\n\r\n // Save last active element\r\n instance.$trigger = $target;\r\n }\r\n\r\n // Create a jQuery plugin\r\n // ======================\r\n\r\n $.fn.fancybox = function (options) {\r\n var selector;\r\n\r\n options = options || {};\r\n selector = options.selector || false;\r\n\r\n if (selector) {\r\n // Use body element instead of document so it executes first\r\n $(\"body\")\r\n .off(\"click.fb-start\", selector)\r\n .on(\"click.fb-start\", selector, {\r\n options: options\r\n }, _run);\r\n } else {\r\n this.off(\"click.fb-start\").on(\r\n \"click.fb-start\", {\r\n items: this,\r\n options: options\r\n },\r\n _run\r\n );\r\n }\r\n\r\n return this;\r\n };\r\n\r\n // Self initializing plugin for all elements having `data-fancybox` attribute\r\n // ==========================================================================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox]\", _run);\r\n\r\n // Enable \"trigger elements\"\r\n // =========================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox-trigger]\", function (e) {\r\n $('[data-fancybox=\"' + $(this).attr(\"data-fancybox-trigger\") + '\"]')\r\n .eq($(this).attr(\"data-fancybox-index\") || 0)\r\n .trigger(\"click.fb-start\", {\r\n $trigger: $(this)\r\n });\r\n });\r\n\r\n // Track focus event for better accessibility styling\r\n // ==================================================\r\n (function () {\r\n var buttonStr = \".fancybox-button\",\r\n focusStr = \"fancybox-focus\",\r\n $pressed = null;\r\n\r\n $D.on(\"mousedown mouseup focus blur\", buttonStr, function (e) {\r\n switch (e.type) {\r\n case \"mousedown\":\r\n $pressed = $(this);\r\n break;\r\n case \"mouseup\":\r\n $pressed = null;\r\n break;\r\n case \"focusin\":\r\n $(buttonStr).removeClass(focusStr);\r\n\r\n if (!$(this).is($pressed) && !$(this).is(\"[disabled]\")) {\r\n $(this).addClass(focusStr);\r\n }\r\n break;\r\n case \"focusout\":\r\n $(buttonStr).removeClass(focusStr);\r\n break;\r\n }\r\n });\r\n })();\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// Media\r\n// Adds additional media type support\r\n//\r\n// ==========================================================================\r\n(function ($) {\r\n \"use strict\";\r\n\r\n // Object containing properties for each media type\r\n var defaults = {\r\n youtube: {\r\n matcher: /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\r\n params: {\r\n autoplay: 1,\r\n autohide: 1,\r\n fs: 1,\r\n rel: 0,\r\n hd: 1,\r\n wmode: \"transparent\",\r\n enablejsapi: 1,\r\n html5: 1\r\n },\r\n paramPlace: 8,\r\n type: \"iframe\",\r\n url: \"https://www.youtube-nocookie.com/embed/$4\",\r\n thumb: \"https://img.youtube.com/vi/$4/hqdefault.jpg\"\r\n },\r\n\r\n vimeo: {\r\n matcher: /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\r\n params: {\r\n autoplay: 1,\r\n hd: 1,\r\n show_title: 1,\r\n show_byline: 1,\r\n show_portrait: 0,\r\n fullscreen: 1\r\n },\r\n paramPlace: 3,\r\n type: \"iframe\",\r\n url: \"//player.vimeo.com/video/$2\"\r\n },\r\n\r\n instagram: {\r\n matcher: /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\r\n type: \"image\",\r\n url: \"//$1/p/$2/media/?size=l\"\r\n },\r\n\r\n // Examples:\r\n // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\r\n // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z\r\n // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en\r\n // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\r\n gmap_place: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return (\r\n \"//maps.google.\" +\r\n rez[2] +\r\n \"/?ll=\" +\r\n (rez[9] ? rez[9] + \"&z=\" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\\//, \"&\") : \"\") : rez[12] + \"\").replace(/\\?/, \"&\") +\r\n \"&output=\" +\r\n (rez[12] && rez[12].indexOf(\"layer=c\") > 0 ? \"svembed\" : \"embed\")\r\n );\r\n }\r\n },\r\n\r\n // Examples:\r\n // https://www.google.com/maps/search/Empire+State+Building/\r\n // https://www.google.com/maps/search/?api=1&query=centurylink+field\r\n // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393\r\n gmap_search: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return \"//maps.google.\" + rez[2] + \"/maps?q=\" + rez[5].replace(\"query=\", \"q=\").replace(\"api=1\", \"\") + \"&output=embed\";\r\n }\r\n }\r\n };\r\n\r\n // Formats matching url to final form\r\n var format = function (url, rez, params) {\r\n if (!url) {\r\n return;\r\n }\r\n\r\n params = params || \"\";\r\n\r\n if ($.type(params) === \"object\") {\r\n params = $.param(params, true);\r\n }\r\n\r\n $.each(rez, function (key, value) {\r\n url = url.replace(\"$\" + key, value || \"\");\r\n });\r\n\r\n if (params.length) {\r\n url += (url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + params;\r\n }\r\n\r\n return url;\r\n };\r\n\r\n $(document).on(\"objectNeedsType.fb\", function (e, instance, item) {\r\n var url = item.src || \"\",\r\n type = false,\r\n media,\r\n thumb,\r\n rez,\r\n params,\r\n urlParams,\r\n paramObj,\r\n provider;\r\n\r\n media = $.extend(true, {}, defaults, item.opts.media);\r\n\r\n // Look for any matching media type\r\n $.each(media, function (providerName, providerOpts) {\r\n rez = url.match(providerOpts.matcher);\r\n\r\n if (!rez) {\r\n return;\r\n }\r\n\r\n type = providerOpts.type;\r\n provider = providerName;\r\n paramObj = {};\r\n\r\n if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {\r\n urlParams = rez[providerOpts.paramPlace];\r\n\r\n if (urlParams[0] == \"?\") {\r\n urlParams = urlParams.substring(1);\r\n }\r\n\r\n urlParams = urlParams.split(\"&\");\r\n\r\n for (var m = 0; m < urlParams.length; ++m) {\r\n var p = urlParams[m].split(\"=\", 2);\r\n\r\n if (p.length == 2) {\r\n paramObj[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\r\n }\r\n }\r\n }\r\n\r\n params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);\r\n\r\n url =\r\n $.type(providerOpts.url) === \"function\" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);\r\n\r\n thumb =\r\n $.type(providerOpts.thumb) === \"function\" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);\r\n\r\n if (providerName === \"youtube\") {\r\n url = url.replace(/&t=((\\d+)m)?(\\d+)s/, function (match, p1, m, s) {\r\n return \"&start=\" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));\r\n });\r\n } else if (providerName === \"vimeo\") {\r\n url = url.replace(\"&%23\", \"#\");\r\n }\r\n\r\n return false;\r\n });\r\n\r\n // If it is found, then change content type and update the url\r\n\r\n if (type) {\r\n if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {\r\n item.opts.thumb = thumb;\r\n }\r\n\r\n if (type === \"iframe\") {\r\n item.opts = $.extend(true, item.opts, {\r\n iframe: {\r\n preload: false,\r\n attr: {\r\n scrolling: \"no\"\r\n }\r\n }\r\n });\r\n }\r\n\r\n $.extend(item, {\r\n type: type,\r\n src: url,\r\n origSrc: item.src,\r\n contentSource: provider,\r\n contentType: type === \"image\" ? \"image\" : provider == \"gmap_place\" || provider == \"gmap_search\" ? \"map\" : \"video\"\r\n });\r\n } else if (url) {\r\n item.type = item.opts.defaultType;\r\n }\r\n });\r\n\r\n // Load YouTube/Video API on request to detect when video finished playing\r\n var VideoAPILoader = {\r\n youtube: {\r\n src: \"https://www.youtube.com/iframe_api\",\r\n class: \"YT\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n vimeo: {\r\n src: \"https://player.vimeo.com/api/player.js\",\r\n class: \"Vimeo\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n load: function (vendor) {\r\n var _this = this,\r\n script;\r\n\r\n if (this[vendor].loaded) {\r\n setTimeout(function () {\r\n _this.done(vendor);\r\n });\r\n return;\r\n }\r\n\r\n if (this[vendor].loading) {\r\n return;\r\n }\r\n\r\n this[vendor].loading = true;\r\n\r\n script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = this[vendor].src;\r\n\r\n if (vendor === \"youtube\") {\r\n window.onYouTubeIframeAPIReady = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n } else {\r\n script.onload = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n }\r\n\r\n document.body.appendChild(script);\r\n },\r\n done: function (vendor) {\r\n var instance, $el, player;\r\n\r\n if (vendor === \"youtube\") {\r\n delete window.onYouTubeIframeAPIReady;\r\n }\r\n\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n $el = instance.current.$content.find(\"iframe\");\r\n\r\n if (vendor === \"youtube\" && YT !== undefined && YT) {\r\n player = new YT.Player($el.attr(\"id\"), {\r\n events: {\r\n onStateChange: function (e) {\r\n if (e.data == 0) {\r\n instance.next();\r\n }\r\n }\r\n }\r\n });\r\n } else if (vendor === \"vimeo\" && Vimeo !== undefined && Vimeo) {\r\n player = new Vimeo.Player($el);\r\n\r\n player.on(\"ended\", function () {\r\n instance.next();\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n $(document).on({\r\n \"afterShow.fb\": function (e, instance, current) {\r\n if (instance.group.length > 1 && (current.contentSource === \"youtube\" || current.contentSource === \"vimeo\")) {\r\n VideoAPILoader.load(current.contentSource);\r\n }\r\n }\r\n });\r\n})(jQuery);\n// ==========================================================================\r\n//\r\n// Guestures\r\n// Adds touch guestures, handles click and tap events\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n var getPointerXY = function (e) {\r\n var result = [];\r\n\r\n e = e.originalEvent || e || window.e;\r\n e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];\r\n\r\n for (var key in e) {\r\n if (e[key].pageX) {\r\n result.push({\r\n x: e[key].pageX,\r\n y: e[key].pageY\r\n });\r\n } else if (e[key].clientX) {\r\n result.push({\r\n x: e[key].clientX,\r\n y: e[key].clientY\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n var distance = function (point2, point1, what) {\r\n if (!point1 || !point2) {\r\n return 0;\r\n }\r\n\r\n if (what === \"x\") {\r\n return point2.x - point1.x;\r\n } else if (what === \"y\") {\r\n return point2.y - point1.y;\r\n }\r\n\r\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\r\n };\r\n\r\n var isClickable = function ($el) {\r\n if (\r\n $el.is('a,area,button,[role=\"button\"],input,label,select,summary,textarea,video,audio,iframe') ||\r\n $.isFunction($el.get(0).onclick) ||\r\n $el.data(\"selectable\")\r\n ) {\r\n return true;\r\n }\r\n\r\n // Check for attributes like data-fancybox-next or data-fancybox-close\r\n for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {\r\n if (atts[i].nodeName.substr(0, 14) === \"data-fancybox-\") {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var hasScrollbars = function (el) {\r\n var overflowY = window.getComputedStyle(el)[\"overflow-y\"],\r\n overflowX = window.getComputedStyle(el)[\"overflow-x\"],\r\n vertical = (overflowY === \"scroll\" || overflowY === \"auto\") && el.scrollHeight > el.clientHeight,\r\n horizontal = (overflowX === \"scroll\" || overflowX === \"auto\") && el.scrollWidth > el.clientWidth;\r\n\r\n return vertical || horizontal;\r\n };\r\n\r\n var isScrollable = function ($el) {\r\n var rez = false;\r\n\r\n while (true) {\r\n rez = hasScrollbars($el.get(0));\r\n\r\n if (rez) {\r\n break;\r\n }\r\n\r\n $el = $el.parent();\r\n\r\n if (!$el.length || $el.hasClass(\"fancybox-stage\") || $el.is(\"body\")) {\r\n break;\r\n }\r\n }\r\n\r\n return rez;\r\n };\r\n\r\n var Guestures = function (instance) {\r\n var self = this;\r\n\r\n self.instance = instance;\r\n\r\n self.$bg = instance.$refs.bg;\r\n self.$stage = instance.$refs.stage;\r\n self.$container = instance.$refs.container;\r\n\r\n self.destroy();\r\n\r\n self.$container.on(\"touchstart.fb.touch mousedown.fb.touch\", $.proxy(self, \"ontouchstart\"));\r\n };\r\n\r\n Guestures.prototype.destroy = function () {\r\n var self = this;\r\n\r\n self.$container.off(\".fb.touch\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n self.requestId = null;\r\n }\r\n\r\n if (self.tapped) {\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n }\r\n };\r\n\r\n Guestures.prototype.ontouchstart = function (e) {\r\n var self = this,\r\n $target = $(e.target),\r\n instance = self.instance,\r\n current = instance.current,\r\n $slide = current.$slide,\r\n $content = current.$content,\r\n isTouchDevice = e.type == \"touchstart\";\r\n\r\n // Do not respond to both (touch and mouse) events\r\n if (isTouchDevice) {\r\n self.$container.off(\"mousedown.fb.touch\");\r\n }\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Ignore taping on links, buttons, input elements\r\n if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {\r\n return;\r\n }\r\n // Ignore clicks on the scrollbar\r\n if (!$target.is(\"img\") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Ignore clicks while zooming or closing\r\n if (!current || instance.isAnimating || current.$slide.hasClass(\"fancybox-animated\")) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n return;\r\n }\r\n\r\n self.realPoints = self.startPoints = getPointerXY(e);\r\n\r\n if (!self.startPoints.length) {\r\n return;\r\n }\r\n\r\n // Allow other scripts to catch touch event if \"touch\" is set to false\r\n if (current.touch) {\r\n e.stopPropagation();\r\n }\r\n\r\n self.startEvent = e;\r\n\r\n self.canTap = true;\r\n self.$target = $target;\r\n self.$content = $content;\r\n self.opts = current.opts.touch;\r\n\r\n self.isPanning = false;\r\n self.isSwiping = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n self.canPan = instance.canPan();\r\n\r\n self.startTime = new Date().getTime();\r\n self.distanceX = self.distanceY = self.distance = 0;\r\n\r\n self.canvasWidth = Math.round($slide[0].clientWidth);\r\n self.canvasHeight = Math.round($slide[0].clientHeight);\r\n\r\n self.contentLastPos = null;\r\n self.contentStartPos = $.fancybox.getTranslate(self.$content) || {\r\n top: 0,\r\n left: 0\r\n };\r\n self.sliderStartPos = $.fancybox.getTranslate($slide);\r\n\r\n // Since position will be absolute, but we need to make it relative to the stage\r\n self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n self.sliderStartPos.top -= self.stagePos.top;\r\n self.sliderStartPos.left -= self.stagePos.left;\r\n\r\n self.contentStartPos.top -= self.stagePos.top;\r\n self.contentStartPos.left -= self.stagePos.left;\r\n\r\n $(document)\r\n .off(\".fb.touch\")\r\n .on(isTouchDevice ? \"touchend.fb.touch touchcancel.fb.touch\" : \"mouseup.fb.touch mouseleave.fb.touch\", $.proxy(self, \"ontouchend\"))\r\n .on(isTouchDevice ? \"touchmove.fb.touch\" : \"mousemove.fb.touch\", $.proxy(self, \"ontouchmove\"));\r\n\r\n if ($.fancybox.isMobile) {\r\n document.addEventListener(\"scroll\", self.onscroll, true);\r\n }\r\n\r\n // Skip if clicked outside the sliding area\r\n if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {\r\n if ($target.is(\".fancybox-image\")) {\r\n e.preventDefault();\r\n }\r\n\r\n if (!($.fancybox.isMobile && $target.parents(\".fancybox-caption\").length)) {\r\n return;\r\n }\r\n }\r\n\r\n self.isScrollable = isScrollable($target) || isScrollable($target.parent());\r\n\r\n // Check if element is scrollable and try to prevent default behavior (scrolling)\r\n if (!($.fancybox.isMobile && self.isScrollable)) {\r\n e.preventDefault();\r\n }\r\n\r\n // One finger or mouse click - swipe or pan an image\r\n if (self.startPoints.length === 1 || current.hasError) {\r\n if (self.canPan) {\r\n $.fancybox.stop(self.$content);\r\n\r\n self.isPanning = true;\r\n } else {\r\n self.isSwiping = true;\r\n }\r\n\r\n self.$container.addClass(\"fancybox-is-grabbing\");\r\n }\r\n\r\n // Two fingers - zoom image\r\n if (self.startPoints.length === 2 && current.type === \"image\" && (current.isLoaded || current.$ghost)) {\r\n self.canTap = false;\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n\r\n self.isZooming = true;\r\n\r\n $.fancybox.stop(self.$content);\r\n\r\n self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();\r\n self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();\r\n\r\n self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;\r\n self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;\r\n\r\n self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);\r\n }\r\n };\r\n\r\n Guestures.prototype.onscroll = function (e) {\r\n var self = this;\r\n\r\n self.isScrolling = true;\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n };\r\n\r\n Guestures.prototype.ontouchmove = function (e) {\r\n var self = this;\r\n\r\n // Make sure user has not released over iframe or disabled element\r\n if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {\r\n self.ontouchend(e);\r\n return;\r\n }\r\n\r\n if (self.isScrolling) {\r\n self.canTap = false;\r\n return;\r\n }\r\n\r\n self.newPoints = getPointerXY(e);\r\n\r\n if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {\r\n return;\r\n }\r\n\r\n if (!(self.isSwiping && self.isSwiping === true)) {\r\n e.preventDefault();\r\n }\r\n\r\n self.distanceX = distance(self.newPoints[0], self.startPoints[0], \"x\");\r\n self.distanceY = distance(self.newPoints[0], self.startPoints[0], \"y\");\r\n\r\n self.distance = distance(self.newPoints[0], self.startPoints[0]);\r\n\r\n // Skip false ontouchmove events (Chrome)\r\n if (self.distance > 0) {\r\n if (self.isSwiping) {\r\n self.onSwipe(e);\r\n } else if (self.isPanning) {\r\n self.onPan();\r\n } else if (self.isZooming) {\r\n self.onZoom();\r\n }\r\n }\r\n };\r\n\r\n Guestures.prototype.onSwipe = function (e) {\r\n var self = this,\r\n instance = self.instance,\r\n swiping = self.isSwiping,\r\n left = self.sliderStartPos.left || 0,\r\n angle;\r\n\r\n // If direction is not yet determined\r\n if (swiping === true) {\r\n // We need at least 10px distance to correctly calculate an angle\r\n if (Math.abs(self.distance) > 10) {\r\n self.canTap = false;\r\n\r\n if (instance.group.length < 2 && self.opts.vertical) {\r\n self.isSwiping = \"y\";\r\n } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === \"auto\" && $(window).width() > 800)) {\r\n self.isSwiping = \"x\";\r\n } else {\r\n angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);\r\n\r\n self.isSwiping = angle > 45 && angle < 135 ? \"y\" : \"x\";\r\n }\r\n\r\n if (self.isSwiping === \"y\" && $.fancybox.isMobile && self.isScrollable) {\r\n self.isScrolling = true;\r\n\r\n return;\r\n }\r\n\r\n instance.isDragging = self.isSwiping;\r\n\r\n // Reset points to avoid jumping, because we dropped first swipes to calculate the angle\r\n self.startPoints = self.newPoints;\r\n\r\n $.each(instance.slides, function (index, slide) {\r\n var slidePos, stagePos;\r\n\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slidePos = $.fancybox.getTranslate(slide.$slide);\r\n stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\",\r\n \"transition-duration\": \"\"\r\n })\r\n .removeClass(\"fancybox-animated\")\r\n .removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n if (slide.pos === instance.current.pos) {\r\n self.sliderStartPos.top = slidePos.top - stagePos.top;\r\n self.sliderStartPos.left = slidePos.left - stagePos.left;\r\n }\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: slidePos.top - stagePos.top,\r\n left: slidePos.left - stagePos.left\r\n });\r\n });\r\n\r\n // Stop slideshow\r\n if (instance.SlideShow && instance.SlideShow.isActive) {\r\n instance.SlideShow.stop();\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Sticky edges\r\n if (swiping == \"x\") {\r\n if (\r\n self.distanceX > 0 &&\r\n (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left + Math.pow(self.distanceX, 0.8);\r\n } else if (\r\n self.distanceX < 0 &&\r\n (self.instance.group.length < 2 ||\r\n (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left - Math.pow(-self.distanceX, 0.8);\r\n } else {\r\n left = left + self.distanceX;\r\n }\r\n }\r\n\r\n self.sliderLastPos = {\r\n top: swiping == \"x\" ? 0 : self.sliderStartPos.top + self.distanceY,\r\n left: left\r\n };\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n if (self.sliderLastPos) {\r\n $.each(self.instance.slides, function (index, slide) {\r\n var pos = slide.pos - self.instance.currPos;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: self.sliderLastPos.top,\r\n left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter\r\n });\r\n });\r\n\r\n self.$container.addClass(\"fancybox-is-sliding\");\r\n }\r\n });\r\n };\r\n\r\n Guestures.prototype.onPan = function () {\r\n var self = this;\r\n\r\n // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)\r\n if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {\r\n self.startPoints = self.newPoints;\r\n return;\r\n }\r\n\r\n self.canTap = false;\r\n\r\n self.contentLastPos = self.limitMovement();\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n // Make panning sticky to the edges\r\n Guestures.prototype.limitMovement = function () {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n var distanceX = self.distanceX;\r\n var distanceY = self.distanceY;\r\n\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;\r\n\r\n if (currentWidth > canvasWidth) {\r\n newOffsetX = currentOffsetX + distanceX;\r\n } else {\r\n newOffsetX = currentOffsetX;\r\n }\r\n\r\n newOffsetY = currentOffsetY + distanceY;\r\n\r\n // Slow down proportionally to traveled distance\r\n minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);\r\n minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);\r\n maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n // ->\r\n if (distanceX > 0 && newOffsetX > minTranslateX) {\r\n newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;\r\n }\r\n\r\n // <-\r\n if (distanceX < 0 && newOffsetX < maxTranslateX) {\r\n newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;\r\n }\r\n\r\n // \\/\r\n if (distanceY > 0 && newOffsetY > minTranslateY) {\r\n newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;\r\n }\r\n\r\n // /\\\r\n if (distanceY < 0 && newOffsetY < maxTranslateY) {\r\n newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n if (newWidth > canvasWidth) {\r\n newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\r\n newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\r\n } else {\r\n // Center horizontally\r\n newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);\r\n }\r\n\r\n if (newHeight > canvasHeight) {\r\n newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\r\n newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\r\n } else {\r\n // Center vertically\r\n newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.onZoom = function () {\r\n var self = this;\r\n\r\n // Calculate current distance between points to get pinch ratio and new width and height\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);\r\n\r\n var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\r\n\r\n var newWidth = Math.floor(currentWidth * pinchRatio);\r\n var newHeight = Math.floor(currentHeight * pinchRatio);\r\n\r\n // This is the translation due to pinch-zooming\r\n var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\r\n var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\r\n\r\n // Point between the two touches\r\n var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();\r\n var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();\r\n\r\n // And this is the translation due to translation of the centerpoint\r\n // between the two fingers\r\n var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\r\n var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\r\n\r\n // The new offset is the old/current one plus the total translation\r\n var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);\r\n var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);\r\n\r\n var newPos = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n scaleX: pinchRatio,\r\n scaleY: pinchRatio\r\n };\r\n\r\n self.canTap = false;\r\n\r\n self.newWidth = newWidth;\r\n self.newHeight = newHeight;\r\n\r\n self.contentLastPos = newPos;\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n Guestures.prototype.ontouchend = function (e) {\r\n var self = this;\r\n\r\n var swiping = self.isSwiping;\r\n var panning = self.isPanning;\r\n var zooming = self.isZooming;\r\n var scrolling = self.isScrolling;\r\n\r\n self.endPoints = getPointerXY(e);\r\n self.dMs = Math.max(new Date().getTime() - self.startTime, 1);\r\n\r\n self.$container.removeClass(\"fancybox-is-grabbing\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n\r\n self.instance.isDragging = false;\r\n\r\n if (self.canTap) {\r\n return self.onTap(e);\r\n }\r\n\r\n self.speed = 100;\r\n\r\n // Speed in px/ms\r\n self.velocityX = (self.distanceX / self.dMs) * 0.5;\r\n self.velocityY = (self.distanceY / self.dMs) * 0.5;\r\n\r\n if (panning) {\r\n self.endPanning();\r\n } else if (zooming) {\r\n self.endZooming();\r\n } else {\r\n self.endSwiping(swiping, scrolling);\r\n }\r\n\r\n return;\r\n };\r\n\r\n Guestures.prototype.endSwiping = function (swiping, scrolling) {\r\n var self = this,\r\n ret = false,\r\n len = self.instance.group.length,\r\n distanceX = Math.abs(self.distanceX),\r\n canAdvance = swiping == \"x\" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),\r\n speedX = 300;\r\n\r\n self.sliderLastPos = null;\r\n\r\n // Close if swiped vertically / navigate if horizontally\r\n if (swiping == \"y\" && !scrolling && Math.abs(self.distanceY) > 50) {\r\n // Continue vertical movement\r\n $.fancybox.animate(\r\n self.instance.current.$slide, {\r\n top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,\r\n opacity: 0\r\n },\r\n 200\r\n );\r\n ret = self.instance.close(true, 250);\r\n } else if (canAdvance && self.distanceX > 0) {\r\n ret = self.instance.previous(speedX);\r\n } else if (canAdvance && self.distanceX < 0) {\r\n ret = self.instance.next(speedX);\r\n }\r\n\r\n if (ret === false && (swiping == \"x\" || swiping == \"y\")) {\r\n self.instance.centerSlide(200);\r\n }\r\n\r\n self.$container.removeClass(\"fancybox-is-sliding\");\r\n };\r\n\r\n // Limit panning from edges\r\n // ========================\r\n Guestures.prototype.endPanning = function () {\r\n var self = this,\r\n newOffsetX,\r\n newOffsetY,\r\n newPos;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n if (self.opts.momentum === false || self.dMs > 350) {\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n } else {\r\n // Continue movement\r\n newOffsetX = self.contentLastPos.left + self.velocityX * 500;\r\n newOffsetY = self.contentLastPos.top + self.velocityY * 500;\r\n }\r\n\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\r\n\r\n newPos.width = self.contentStartPos.width;\r\n newPos.height = self.contentStartPos.height;\r\n\r\n $.fancybox.animate(self.$content, newPos, 366);\r\n };\r\n\r\n Guestures.prototype.endZooming = function () {\r\n var self = this;\r\n\r\n var current = self.instance.current;\r\n\r\n var newOffsetX, newOffsetY, newPos, reset;\r\n\r\n var newWidth = self.newWidth;\r\n var newHeight = self.newHeight;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n\r\n reset = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n width: newWidth,\r\n height: newHeight,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n // Reset scalex/scaleY values; this helps for perfomance and does not break animation\r\n $.fancybox.setTranslate(self.$content, reset);\r\n\r\n if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {\r\n self.instance.scaleToFit(150);\r\n } else if (newWidth > current.width || newHeight > current.height) {\r\n self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);\r\n } else {\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);\r\n\r\n $.fancybox.animate(self.$content, newPos, 150);\r\n }\r\n };\r\n\r\n Guestures.prototype.onTap = function (e) {\r\n var self = this;\r\n var $target = $(e.target);\r\n\r\n var instance = self.instance;\r\n var current = instance.current;\r\n\r\n var endPoints = (e && getPointerXY(e)) || self.startPoints;\r\n\r\n var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;\r\n var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;\r\n\r\n var where;\r\n\r\n var process = function (prefix) {\r\n var action = current.opts[prefix];\r\n\r\n if ($.isFunction(action)) {\r\n action = action.apply(instance, [current, e]);\r\n }\r\n\r\n if (!action) {\r\n return;\r\n }\r\n\r\n switch (action) {\r\n case \"close\":\r\n instance.close(self.startEvent);\r\n\r\n break;\r\n\r\n case \"toggleControls\":\r\n instance.toggleControls();\r\n\r\n break;\r\n\r\n case \"next\":\r\n instance.next();\r\n\r\n break;\r\n\r\n case \"nextOrClose\":\r\n if (instance.group.length > 1) {\r\n instance.next();\r\n } else {\r\n instance.close(self.startEvent);\r\n }\r\n\r\n break;\r\n\r\n case \"zoom\":\r\n if (current.type == \"image\" && (current.isLoaded || current.$ghost)) {\r\n if (instance.canPan()) {\r\n instance.scaleToFit();\r\n } else if (instance.isScaledDown()) {\r\n instance.scaleToActual(tapX, tapY);\r\n } else if (instance.group.length < 2) {\r\n instance.close(self.startEvent);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n };\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Skip if clicked on the scrollbar\r\n if (!$target.is(\"img\") && tapX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Check where is clicked\r\n if ($target.is(\".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container\")) {\r\n where = \"Outside\";\r\n } else if ($target.is(\".fancybox-slide\")) {\r\n where = \"Slide\";\r\n } else if (\r\n instance.current.$content &&\r\n instance.current.$content\r\n .find($target)\r\n .addBack()\r\n .filter($target).length\r\n ) {\r\n where = \"Content\";\r\n } else {\r\n return;\r\n }\r\n\r\n // Check if this is a double tap\r\n if (self.tapped) {\r\n // Stop previously created single tap\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n\r\n // Skip if distance between taps is too big\r\n if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {\r\n return this;\r\n }\r\n\r\n // OK, now we assume that this is a double-tap\r\n process(\"dblclick\" + where);\r\n } else {\r\n // Single tap will be processed if user has not clicked second time within 300ms\r\n // or there is no need to wait for double-tap\r\n self.tapX = tapX;\r\n self.tapY = tapY;\r\n\r\n if (current.opts[\"dblclick\" + where] && current.opts[\"dblclick\" + where] !== current.opts[\"click\" + where]) {\r\n self.tapped = setTimeout(function () {\r\n self.tapped = null;\r\n\r\n if (!instance.isAnimating) {\r\n process(\"click\" + where);\r\n }\r\n }, 500);\r\n } else {\r\n process(\"click\" + where);\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n $(document)\r\n .on(\"onActivate.fb\", function (e, instance) {\r\n if (instance && !instance.Guestures) {\r\n instance.Guestures = new Guestures(instance);\r\n }\r\n })\r\n .on(\"beforeClose.fb\", function (e, instance) {\r\n if (instance && instance.Guestures) {\r\n instance.Guestures.destroy();\r\n }\r\n });\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// SlideShow\r\n// Enables slideshow functionality\r\n//\r\n// Example of usage:\r\n// $.fancybox.getInstance().SlideShow.start()\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n slideShow: '\"\r\n },\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000,\r\n progress: true\r\n }\r\n });\r\n\r\n var SlideShow = function (instance) {\r\n this.instance = instance;\r\n this.init();\r\n };\r\n\r\n $.extend(SlideShow.prototype, {\r\n timer: null,\r\n isActive: false,\r\n $button: null,\r\n\r\n init: function () {\r\n var self = this,\r\n instance = self.instance,\r\n opts = instance.group[instance.currIndex].opts.slideShow;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-play]\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n if (instance.group.length < 2 || !opts) {\r\n self.$button.hide();\r\n } else if (opts.progress) {\r\n self.$progress = $('
').appendTo(instance.$refs.inner);\r\n }\r\n },\r\n\r\n set: function (force) {\r\n var self = this,\r\n instance = self.instance,\r\n current = instance.current;\r\n\r\n // Check if reached last element\r\n if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {\r\n if (self.isActive && current.contentType !== \"video\") {\r\n if (self.$progress) {\r\n $.fancybox.animate(self.$progress.show(), {\r\n scaleX: 1\r\n }, current.opts.slideShow.speed);\r\n }\r\n\r\n self.timer = setTimeout(function () {\r\n if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) {\r\n instance.jumpTo(0);\r\n } else {\r\n instance.next();\r\n }\r\n }, current.opts.slideShow.speed);\r\n }\r\n } else {\r\n self.stop();\r\n instance.idleSecondsCounter = 0;\r\n instance.showControls();\r\n }\r\n },\r\n\r\n clear: function () {\r\n var self = this;\r\n\r\n clearTimeout(self.timer);\r\n\r\n self.timer = null;\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n start: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n if (current) {\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP)\r\n .removeClass(\"fancybox-button--play\")\r\n .addClass(\"fancybox-button--pause\");\r\n\r\n self.isActive = true;\r\n\r\n if (current.isComplete) {\r\n self.set(true);\r\n }\r\n\r\n self.instance.trigger(\"onSlideShowChange\", true);\r\n }\r\n },\r\n\r\n stop: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n self.clear();\r\n\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START)\r\n .removeClass(\"fancybox-button--pause\")\r\n .addClass(\"fancybox-button--play\");\r\n\r\n self.isActive = false;\r\n\r\n self.instance.trigger(\"onSlideShowChange\", false);\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n toggle: function () {\r\n var self = this;\r\n\r\n if (self.isActive) {\r\n self.stop();\r\n } else {\r\n self.start();\r\n }\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n if (instance && !instance.SlideShow) {\r\n instance.SlideShow = new SlideShow(instance);\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (firstRun) {\r\n if (SlideShow && current.opts.slideShow.autoStart) {\r\n SlideShow.start();\r\n }\r\n } else if (SlideShow && SlideShow.isActive) {\r\n SlideShow.clear();\r\n }\r\n },\r\n\r\n \"afterShow.fb\": function (e, instance, current) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n SlideShow.set();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n // \"P\" or Spacebar\r\n if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is(\"button,a,input\")) {\r\n keypress.preventDefault();\r\n\r\n SlideShow.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb onDeactivate.fb\": function (e, instance) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow) {\r\n SlideShow.stop();\r\n }\r\n }\r\n });\r\n\r\n // Page Visibility API to pause slideshow when window is not active\r\n $(document).on(\"visibilitychange\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n if (document.hidden) {\r\n SlideShow.clear();\r\n } else {\r\n SlideShow.set();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// FullScreen\r\n// Adds fullscreen functionality\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n // Collection of methods supported by user browser\r\n var fn = (function () {\r\n var fnMap = [\r\n [\"requestFullscreen\", \"exitFullscreen\", \"fullscreenElement\", \"fullscreenEnabled\", \"fullscreenchange\", \"fullscreenerror\"],\r\n // new WebKit\r\n [\r\n \"webkitRequestFullscreen\",\r\n \"webkitExitFullscreen\",\r\n \"webkitFullscreenElement\",\r\n \"webkitFullscreenEnabled\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n // old WebKit (Safari 5.1)\r\n [\r\n \"webkitRequestFullScreen\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitCurrentFullScreenElement\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n [\r\n \"mozRequestFullScreen\",\r\n \"mozCancelFullScreen\",\r\n \"mozFullScreenElement\",\r\n \"mozFullScreenEnabled\",\r\n \"mozfullscreenchange\",\r\n \"mozfullscreenerror\"\r\n ],\r\n [\"msRequestFullscreen\", \"msExitFullscreen\", \"msFullscreenElement\", \"msFullscreenEnabled\", \"MSFullscreenChange\", \"MSFullscreenError\"]\r\n ];\r\n\r\n var ret = {};\r\n\r\n for (var i = 0; i < fnMap.length; i++) {\r\n var val = fnMap[i];\r\n\r\n if (val && val[1] in document) {\r\n for (var j = 0; j < val.length; j++) {\r\n ret[fnMap[0][j]] = val[j];\r\n }\r\n\r\n return ret;\r\n }\r\n }\r\n\r\n return false;\r\n })();\r\n\r\n if (fn) {\r\n var FullScreen = {\r\n request: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);\r\n },\r\n exit: function () {\r\n document[fn.exitFullscreen]();\r\n },\r\n toggle: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n if (this.isFullscreen()) {\r\n this.exit();\r\n } else {\r\n this.request(elem);\r\n }\r\n },\r\n isFullscreen: function () {\r\n return Boolean(document[fn.fullscreenElement]);\r\n },\r\n enabled: function () {\r\n return Boolean(document[fn.fullscreenEnabled]);\r\n }\r\n };\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n fullScreen: '\"\r\n },\r\n fullScreen: {\r\n autoStart: false\r\n }\r\n });\r\n\r\n $(document).on(fn.fullscreenchange, function () {\r\n var isFullscreen = FullScreen.isFullscreen(),\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n // If image is zooming, then force to stop and reposition properly\r\n if (instance.current && instance.current.type === \"image\" && instance.isAnimating) {\r\n instance.isAnimating = false;\r\n\r\n instance.update(true, true, 0);\r\n\r\n if (!instance.isComplete) {\r\n instance.complete();\r\n }\r\n }\r\n\r\n instance.trigger(\"onFullscreenChange\", isFullscreen);\r\n\r\n instance.$refs.container.toggleClass(\"fancybox-is-fullscreen\", isFullscreen);\r\n\r\n instance.$refs.toolbar\r\n .find(\"[data-fancybox-fullscreen]\")\r\n .toggleClass(\"fancybox-button--fsenter\", !isFullscreen)\r\n .toggleClass(\"fancybox-button--fsexit\", isFullscreen);\r\n }\r\n });\r\n }\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var $container;\r\n\r\n if (!fn) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").remove();\r\n\r\n return;\r\n }\r\n\r\n if (instance && instance.group[instance.currIndex].opts.fullScreen) {\r\n $container = instance.$refs.container;\r\n\r\n $container.on(\"click.fb-fullscreen\", \"[data-fancybox-fullscreen]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n FullScreen.toggle();\r\n });\r\n\r\n if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {\r\n FullScreen.request();\r\n }\r\n\r\n // Expose API\r\n instance.FullScreen = FullScreen;\r\n } else if (instance) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").hide();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n // \"F\"\r\n if (instance && instance.FullScreen && keycode === 70) {\r\n keypress.preventDefault();\r\n\r\n instance.FullScreen.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n if (instance && instance.FullScreen && instance.$refs.container.hasClass(\"fancybox-is-fullscreen\")) {\r\n FullScreen.exit();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// Thumbs\r\n// Displays thumbnails in a grid\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var CLASS = \"fancybox-thumbs\",\r\n CLASS_ACTIVE = CLASS + \"-active\";\r\n\r\n // Make sure there are default values\r\n $.fancybox.defaults = $.extend(\r\n true, {\r\n btnTpl: {\r\n thumbs: '\"\r\n },\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n }\r\n },\r\n $.fancybox.defaults\r\n );\r\n\r\n var FancyThumbs = function (instance) {\r\n this.init(instance);\r\n };\r\n\r\n $.extend(FancyThumbs.prototype, {\r\n $button: null,\r\n $grid: null,\r\n $list: null,\r\n isVisible: false,\r\n isActive: false,\r\n\r\n init: function (instance) {\r\n var self = this,\r\n group = instance.group,\r\n enabled = 0;\r\n\r\n self.instance = instance;\r\n self.opts = group[instance.currIndex].opts.thumbs;\r\n\r\n instance.Thumbs = self;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-thumbs]\");\r\n\r\n // Enable thumbs if at least two group items have thumbnails\r\n for (var i = 0, len = group.length; i < len; i++) {\r\n if (group[i].thumb) {\r\n enabled++;\r\n }\r\n\r\n if (enabled > 1) {\r\n break;\r\n }\r\n }\r\n\r\n if (enabled > 1 && !!self.opts) {\r\n self.$button.removeAttr(\"style\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n self.isActive = true;\r\n } else {\r\n self.$button.hide();\r\n }\r\n },\r\n\r\n create: function () {\r\n var self = this,\r\n instance = self.instance,\r\n parentEl = self.opts.parentEl,\r\n list = [],\r\n src;\r\n\r\n if (!self.$grid) {\r\n // Create main element\r\n self.$grid = $('
').appendTo(\r\n instance.$refs.container\r\n .find(parentEl)\r\n .addBack()\r\n .filter(parentEl)\r\n );\r\n\r\n // Add \"click\" event that performs gallery navigation\r\n self.$grid.on(\"click\", \"a\", function () {\r\n instance.jumpTo($(this).attr(\"data-index\"));\r\n });\r\n }\r\n\r\n // Build the list\r\n if (!self.$list) {\r\n self.$list = $('
').appendTo(self.$grid);\r\n }\r\n\r\n $.each(instance.group, function (i, item) {\r\n src = item.thumb;\r\n\r\n if (!src && item.type === \"image\") {\r\n src = item.src;\r\n }\r\n\r\n list.push(\r\n '\"\r\n );\r\n });\r\n\r\n self.$list[0].innerHTML = list.join(\"\");\r\n\r\n if (self.opts.axis === \"x\") {\r\n // Set fixed width for list element to enable horizontal scrolling\r\n self.$list.width(\r\n parseInt(self.$grid.css(\"padding-right\"), 10) +\r\n instance.group.length *\r\n self.$list\r\n .children()\r\n .eq(0)\r\n .outerWidth(true)\r\n );\r\n }\r\n },\r\n\r\n focus: function (duration) {\r\n var self = this,\r\n $list = self.$list,\r\n $grid = self.$grid,\r\n thumb,\r\n thumbPos;\r\n\r\n if (!self.instance.current) {\r\n return;\r\n }\r\n\r\n thumb = $list\r\n .children()\r\n .removeClass(CLASS_ACTIVE)\r\n .filter('[data-index=\"' + self.instance.current.index + '\"]')\r\n .addClass(CLASS_ACTIVE);\r\n\r\n thumbPos = thumb.position();\r\n\r\n // Check if need to scroll to make current thumb visible\r\n if (self.opts.axis === \"y\" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {\r\n $list.stop().animate({\r\n scrollTop: $list.scrollTop() + thumbPos.top\r\n },\r\n duration\r\n );\r\n } else if (\r\n self.opts.axis === \"x\" &&\r\n (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))\r\n ) {\r\n $list\r\n .parent()\r\n .stop()\r\n .animate({\r\n scrollLeft: thumbPos.left\r\n },\r\n duration\r\n );\r\n }\r\n },\r\n\r\n update: function () {\r\n var that = this;\r\n that.instance.$refs.container.toggleClass(\"fancybox-show-thumbs\", this.isVisible);\r\n\r\n if (that.isVisible) {\r\n if (!that.$grid) {\r\n that.create();\r\n }\r\n\r\n that.instance.trigger(\"onThumbsShow\");\r\n\r\n that.focus(0);\r\n } else if (that.$grid) {\r\n that.instance.trigger(\"onThumbsHide\");\r\n }\r\n\r\n // Update content position\r\n that.instance.update();\r\n },\r\n\r\n hide: function () {\r\n this.isVisible = false;\r\n this.update();\r\n },\r\n\r\n show: function () {\r\n this.isVisible = true;\r\n this.update();\r\n },\r\n\r\n toggle: function () {\r\n this.isVisible = !this.isVisible;\r\n this.update();\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var Thumbs;\r\n\r\n if (instance && !instance.Thumbs) {\r\n Thumbs = new FancyThumbs(instance);\r\n\r\n if (Thumbs.isActive && Thumbs.opts.autoStart === true) {\r\n Thumbs.show();\r\n }\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, item, firstRun) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible) {\r\n Thumbs.focus(firstRun ? 0 : 250);\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n // \"G\"\r\n if (Thumbs && Thumbs.isActive && keycode === 71) {\r\n keypress.preventDefault();\r\n\r\n Thumbs.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {\r\n Thumbs.$grid.hide();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n//// ==========================================================================\r\n//\r\n// Share\r\n// Displays simple form for sharing current url\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n share: '\"\r\n },\r\n share: {\r\n url: function (instance, item) {\r\n return (\r\n (!instance.currentHash && !(item.type === \"inline\" || item.type === \"html\") ? item.origSrc || item.src : false) || window.location\r\n );\r\n },\r\n tpl: '
' +\r\n \"

{{SHARE}}

\" +\r\n \"

\" +\r\n '' +\r\n '' +\r\n \"Facebook\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Twitter\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Pinterest\" +\r\n \"\" +\r\n \"

\" +\r\n '

' +\r\n \"
\"\r\n }\r\n });\r\n\r\n function escapeHtml(string) {\r\n var entityMap = {\r\n \"&\": \"&\",\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n '\"': \""\",\r\n \"'\": \"'\",\r\n \"/\": \"/\",\r\n \"`\": \"`\",\r\n \"=\": \"=\"\r\n };\r\n\r\n return String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\r\n return entityMap[s];\r\n });\r\n }\r\n\r\n $(document).on(\"click\", \"[data-fancybox-share]\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n current = instance.current || null,\r\n url,\r\n tpl;\r\n\r\n if (!current) {\r\n return;\r\n }\r\n\r\n if ($.type(current.opts.share.url) === \"function\") {\r\n url = current.opts.share.url.apply(current, [instance, current]);\r\n }\r\n\r\n tpl = current.opts.share.tpl\r\n .replace(/\\{\\{media\\}\\}/g, current.type === \"image\" ? encodeURIComponent(current.src) : \"\")\r\n .replace(/\\{\\{url\\}\\}/g, encodeURIComponent(url))\r\n .replace(/\\{\\{url_raw\\}\\}/g, escapeHtml(url))\r\n .replace(/\\{\\{descr\\}\\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : \"\");\r\n\r\n $.fancybox.open({\r\n src: instance.translate(instance, tpl),\r\n type: \"html\",\r\n opts: {\r\n touch: false,\r\n animationEffect: false,\r\n afterLoad: function (shareInstance, shareCurrent) {\r\n // Close self if parent instance is closing\r\n instance.$refs.container.one(\"beforeClose.fb\", function () {\r\n shareInstance.close(null, 0);\r\n });\r\n\r\n // Opening links in a popup window\r\n shareCurrent.$content.find(\".fancybox-share__button\").click(function () {\r\n window.open(this.href, \"Share\", \"width=550, height=450\");\r\n return false;\r\n });\r\n },\r\n mobile: {\r\n autoFocus: false\r\n }\r\n }\r\n });\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// Hash\r\n// Enables linking to each modal\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n // Simple $.escapeSelector polyfill (for jQuery prior v3)\r\n if (!$.escapeSelector) {\r\n $.escapeSelector = function (sel) {\r\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\r\n var fcssescape = function (ch, asCodePoint) {\r\n if (asCodePoint) {\r\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n if (ch === \"\\0\") {\r\n return \"\\uFFFD\";\r\n }\r\n\r\n // Control characters and (dependent upon position) numbers get escaped as code points\r\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\r\n }\r\n\r\n // Other potentially-special ASCII characters get backslash-escaped\r\n return \"\\\\\" + ch;\r\n };\r\n\r\n return (sel + \"\").replace(rcssescape, fcssescape);\r\n };\r\n }\r\n\r\n // Get info about gallery name and current index from url\r\n function parseUrl() {\r\n var hash = window.location.hash.substr(1),\r\n rez = hash.split(\"-\"),\r\n index = rez.length > 1 && /^\\+?\\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,\r\n gallery = rez.join(\"-\");\r\n\r\n return {\r\n hash: hash,\r\n /* Index is starting from 1 */\r\n index: index < 1 ? 1 : index,\r\n gallery: gallery\r\n };\r\n }\r\n\r\n // Trigger click evnt on links to open new fancyBox instance\r\n function triggerFromUrl(url) {\r\n if (url.gallery !== \"\") {\r\n // If we can find element matching 'data-fancybox' atribute,\r\n // then triggering click event should start fancyBox\r\n $(\"[data-fancybox='\" + $.escapeSelector(url.gallery) + \"']\")\r\n .eq(url.index - 1)\r\n .focus()\r\n .trigger(\"click.fb-start\");\r\n }\r\n }\r\n\r\n // Get gallery name from current instance\r\n function getGalleryID(instance) {\r\n var opts, ret;\r\n\r\n if (!instance) {\r\n return false;\r\n }\r\n\r\n opts = instance.current ? instance.current.opts : instance.opts;\r\n ret = opts.hash || (opts.$orig ? opts.$orig.data(\"fancybox\") || opts.$orig.data(\"fancybox-trigger\") : \"\");\r\n\r\n return ret === \"\" ? false : ret;\r\n }\r\n\r\n // Start when DOM becomes ready\r\n $(function () {\r\n // Check if user has disabled this module\r\n if ($.fancybox.defaults.hash === false) {\r\n return;\r\n }\r\n\r\n // Update hash when opening/closing fancyBox\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var url, gallery;\r\n\r\n if (instance.group[instance.currIndex].opts.hash === false) {\r\n return;\r\n }\r\n\r\n url = parseUrl();\r\n gallery = getGalleryID(instance);\r\n\r\n // Make sure gallery start index matches index from hash\r\n if (gallery && url.gallery && gallery == url.gallery) {\r\n instance.currIndex = url.index - 1;\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var gallery;\r\n\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n // Check if need to update window hash\r\n gallery = getGalleryID(instance);\r\n\r\n if (!gallery) {\r\n return;\r\n }\r\n\r\n // Variable containing last hash value set by fancyBox\r\n // It will be used to determine if fancyBox needs to close after hash change is detected\r\n instance.currentHash = gallery + (instance.group.length > 1 ? \"-\" + (current.index + 1) : \"\");\r\n\r\n // If current hash is the same (this instance most likely is opened by hashchange), then do nothing\r\n if (window.location.hash === \"#\" + instance.currentHash) {\r\n return;\r\n }\r\n\r\n if (firstRun && !instance.origHash) {\r\n instance.origHash = window.location.hash;\r\n }\r\n\r\n if (instance.hashTimer) {\r\n clearTimeout(instance.hashTimer);\r\n }\r\n\r\n // Update hash\r\n instance.hashTimer = setTimeout(function () {\r\n if (\"replaceState\" in window.history) {\r\n window.history[firstRun ? \"pushState\" : \"replaceState\"]({},\r\n document.title,\r\n window.location.pathname + window.location.search + \"#\" + instance.currentHash\r\n );\r\n\r\n if (firstRun) {\r\n instance.hasCreatedHistory = true;\r\n }\r\n } else {\r\n window.location.hash = instance.currentHash;\r\n }\r\n\r\n instance.hashTimer = null;\r\n }, 300);\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance, current) {\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n clearTimeout(instance.hashTimer);\r\n\r\n // Goto previous history entry\r\n if (instance.currentHash && instance.hasCreatedHistory) {\r\n window.history.back();\r\n } else if (instance.currentHash) {\r\n if (\"replaceState\" in window.history) {\r\n window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || \"\"));\r\n } else {\r\n window.location.hash = instance.origHash;\r\n }\r\n }\r\n\r\n instance.currentHash = null;\r\n }\r\n });\r\n\r\n // Check if need to start/close after url has changed\r\n $(window).on(\"hashchange.fb\", function () {\r\n var url = parseUrl(),\r\n fb = null;\r\n\r\n // Find last fancyBox instance that has \"hash\"\r\n $.each(\r\n $(\".fancybox-container\")\r\n .get()\r\n .reverse(),\r\n function (index, value) {\r\n var tmp = $(value).data(\"FancyBox\");\r\n\r\n if (tmp && tmp.currentHash) {\r\n fb = tmp;\r\n return false;\r\n }\r\n }\r\n );\r\n\r\n if (fb) {\r\n // Now, compare hash values\r\n if (fb.currentHash !== url.gallery + \"-\" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {\r\n fb.currentHash = null;\r\n\r\n fb.close();\r\n }\r\n } else if (url.gallery !== \"\") {\r\n triggerFromUrl(url);\r\n }\r\n });\r\n\r\n // Check current hash and trigger click event on matching element to start fancyBox, if needed\r\n setTimeout(function () {\r\n if (!$.fancybox.getInstance()) {\r\n triggerFromUrl(parseUrl());\r\n }\r\n }, 50);\r\n });\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// Wheel\r\n// Basic mouse weheel support for gallery navigation\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var prevTime = new Date().getTime();\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance, current) {\r\n instance.$refs.stage.on(\"mousewheel DOMMouseScroll wheel MozMousePixelScroll\", function (e) {\r\n var current = instance.current,\r\n currTime = new Date().getTime();\r\n\r\n if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === \"auto\" && current.type !== \"image\")) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (current.$slide.hasClass(\"fancybox-animated\")) {\r\n return;\r\n }\r\n\r\n e = e.originalEvent || e;\r\n\r\n if (currTime - prevTime < 250) {\r\n return;\r\n }\r\n\r\n prevTime = currTime;\r\n\r\n instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? \"next\" : \"previous\"]();\r\n });\r\n }\r\n });\r\n})(document, jQuery);"],"names":["window","document","$","undefined","console","info","stuff","fn","fancybox","div","buttonStr","focusStr","$pressed","defaults","closeExisting","loop","gutter","keyboard","preventCaptionOverlap","arrows","infobar","smallBtn","toolbar","buttons","idleTime","protect","modal","image","preload","ajax","settings","data","iframe","tpl","css","attr","scrolling","video","format","autoStart","defaultType","animationEffect","animationDuration","zoomOpacity","transitionEffect","transitionDuration","slideClass","baseClass","baseTpl","spinnerTpl","errorTpl","btnTpl","download","zoom","close","arrowLeft","arrowRight","parentEl","hideScrollbar","autoFocus","backFocus","trapFocus","fullScreen","touch","vertical","momentum","hash","media","slideShow","speed","thumbs","hideOnClose","axis","wheel","onInit","noop","beforeLoad","afterLoad","beforeShow","afterShow","beforeClose","afterClose","onActivate","onDeactivate","clickContent","current","event","type","clickSlide","clickOutside","dblclickContent","dblclickSlide","dblclickOutside","mobile","lang","i18n","en","CLOSE","NEXT","PREV","ERROR","PLAY_START","PLAY_STOP","FULL_SCREEN","THUMBS","DOWNLOAD","SHARE","ZOOM","de","$W","$D","called","requestAFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","callback","setTimeout","cancelAFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","id","clearTimeout","transitionEnd","t","el","createElement","transitions","transition","OTransition","MozTransition","WebkitTransition","style","forceRedraw","$el","length","offsetHeight","mergeOpts","opts1","opts2","rez","extend","each","key","value","isArray","FancyBox","content","opts","index","self","this","isPlainObject","isMobile","currIndex","parseInt","prevIndex","prevPos","currPos","firstRun","group","slides","addContent","init","prototype","$container","firstItemOpts","addClass","getInstance","body","scrollHeight","innerHeight","append","innerWidth","documentElement","clientWidth","translate","replace","appendTo","$refs","container","forEach","item","find","trigger","activate","jumpTo","obj","str","arr","match","n","items","makeArray","i","$item","found","src","srcParts","options","$orig","contentType","charAt","inArray","$thumb","$trigger","thumb","caption","apply","split","shift","filter","push","Object","keys","updateControls","Thumbs","isActive","create","focus","addEvents","removeEvents","on","e","stopPropagation","preventDefault","previous","next","isScaledDown","originalEvent","requestId","update","stage","hide","show","keycode","keyCode","which","ctrlKey","altKey","shiftKey","target","is","idleSecondsCounter","isIdle","showControls","idleInterval","setInterval","isDragging","hideControls","off","clearInterval","duration","pos","isMoved","slidePos","stagePos","prop","diff","groupLen","isClosing","isAnimating","createSlide","forcedDuration","isNumeric","$slide","loadSlide","getTranslate","slide","stop","isComplete","removeClass","left","width","className","join","leftPos","setTranslate","top","animate","transform","opacity","complete","isLoaded","revealContent","updateSlide","scaleToActual","x","y","imgPos","posX","posY","scaleX","scaleY","$content","canvasWidth","canvasHeight","height","newImgWidth","newImgHeight","hasError","updateCursor","SlideShow","scaleToFit","end","getFitPos","maxWidth","maxHeight","minRatio","aspectRatio","parseFloat","Math","min","floor","ratio","adjustCaption","adjustLayout","add","navigation","toggleClass","get","clientHeight","centerSlide","siblings","parent","children","hasClass","abs","nextWidth","nextHeight","canPan","isZoomable","Guestures","isFunction","fitPos","ajaxLoad","isLoading","setImage","setIframe","setContent","videoFormat","setError","showLoading","url","success","textStatus","error","jqXHR","one","abort","ghost","$img","$image","checkSrcset","onerror","remove","$ghost","onload","setBigImage","temp","pxRatio","windowWidth","srcset","devicePixelRatio","map","ret","trim","substring","postfix","sort","a","b","j","img","sizes","resolveImageSlideSize","naturalWidth","naturalHeight","round","max","hideLoading","readyState","imgWidth","imgHeight","$iframe","Date","getTime","isReady","$body","frameWidth","frameHeight","contents","ignore","ceil","outerWidth","outerHeight","unbind","empty","isRevealed","hasOwnProperty","parents","$placeholder","insertAfter","html","after","$smallBtn","wrap","first","wrapInner","$spinner","fadeIn","button","$clone","preventOverlap","$caption","captionH","clone","eq","marginBottom","inlinePadding","actualPadding","disableLayoutFix","effect","effectClassName","start","getThumbPos","thumbPos","btw","brw","bbw","blw","elem","elemCenter","ownerDocument","getBoundingClientRect","offsetWidth","elementFromPoint","inViewport","Document","exitFullscreen","webkitExitFullscreen","scrollTop","scrollLeft","prev","focusableItems","focusedItemIndex","focusableStr","activeElement","instance","isVisible","d","domRect","done","cleanUp","$focus","scrollX","scrollY","name","args","Array","slice","call","arguments","unshift","hasHiddenControls","andCaption","toggleControls","version","command","open","all","destroy","test","navigator","userAgent","use3d","getComputedStyle","getPropertyValue","documentMode","props","position","to","leaveAnimationName","from","propertyName","callCallback","selector","_run","$target","isDefaultPrevented","currentTarget","jQuery","youtube","matcher","params","autoplay","autohide","fs","rel","hd","wmode","enablejsapi","html5","paramPlace","vimeo","show_title","show_byline","show_portrait","fullscreen","instagram","gmap_place","indexOf","gmap_search","param","urlParams","paramObj","provider","providerName","providerOpts","m","p","decodeURIComponent","p1","s","origSrc","contentSource","VideoAPILoader","class","loading","loaded","load","vendor","script","_this","onYouTubeIframeAPIReady","appendChild","YT","Player","events","onStateChange","Vimeo","getPointerXY","result","touches","changedTouches","pageX","pageY","clientX","clientY","distance","point2","point1","what","sqrt","pow","isClickable","onclick","atts","attributes","nodeName","substr","isScrollable","overflowY","overflowX","horizontal","scrollWidth","$bg","bg","$stage","proxy","tapped","ontouchstart","isTouchDevice","offset","realPoints","startPoints","startEvent","canTap","isPanning","isSwiping","isZooming","isScrolling","startTime","distanceX","distanceY","contentLastPos","contentStartPos","sliderStartPos","addEventListener","onscroll","centerPointStartX","centerPointStartY","percentageOfImageAtPinchPointX","percentageOfImageAtPinchPointY","startDistanceBetweenFingers","removeEventListener","ontouchmove","newPoints","onSwipe","onPan","onZoom","ontouchend","angle","swiping","sliderLastPos","atan2","PI","limitMovement","minTranslateX","minTranslateY","maxTranslateX","maxTranslateY","newOffsetX","newOffsetY","currentOffsetX","currentOffsetY","currentWidth","currentHeight","limitPosition","newWidth","newHeight","pinchRatio","translateFromZoomingX","translateFromZoomingY","centerPointEndX","centerPointEndY","translateFromTranslatingX","newPos","panning","zooming","endPoints","dMs","onTap","velocityX","velocityY","endPanning","endZooming","endSwiping","len","canAdvance","reset","where","tapX","tapY","process","prefix","action","addBack","progress","timer","$button","toggle","$progress","inner","set","force","clear","removeAttr","keypress","hidden","fnMap","val","FullScreen","request","requestFullscreen","ALLOW_KEYBOARD_INPUT","exit","isFullscreen","Boolean","fullscreenElement","enabled","fullscreenEnabled","fullscreenchange","CLASS","CLASS_ACTIVE","FancyThumbs","$grid","$list","list","innerHTML","that","share","currentHash","location","string","entityMap","encodeURIComponent","String","text","shareInstance","shareCurrent","click","href","parseUrl","pop","gallery","triggerFromUrl","escapeSelector","getGalleryID","sel","ch","asCodePoint","charCodeAt","toString","origHash","hashTimer","history","title","pathname","search","hasCreatedHistory","back","replaceState","fb","reverse","tmp","prevTime","currTime","deltaY","deltaX","wheelDelta","detail"],"sourceRoot":""} \ No newline at end of file diff --git a/js/159.js b/js/159.js new file mode 100644 index 00000000..a7332d6d --- /dev/null +++ b/js/159.js @@ -0,0 +1,2 @@ +(globalThis.webpackChunksakurairo_scripts=globalThis.webpackChunksakurairo_scripts||[]).push([[159],{7829:(t,e,i)=>{var s=i(8350);e.Z=function(t,e){return new s.LightGallery(t,e)}},3989:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.lGEvents=void 0,e.lGEvents={afterAppendSlide:"lgAfterAppendSlide",init:"lgInit",hasVideo:"lgHasVideo",containerResize:"lgContainerResize",updateSlides:"lgUpdateSlides",afterAppendSubHtml:"lgAfterAppendSubHtml",beforeOpen:"lgBeforeOpen",afterOpen:"lgAfterOpen",slideItemLoad:"lgSlideItemLoad",beforeSlide:"lgBeforeSlide",afterSlide:"lgAfterSlide",posterClick:"lgPosterClick",dragStart:"lgDragStart",dragMove:"lgDragMove",dragEnd:"lgDragEnd",beforeNextSlide:"lgBeforeNextSlide",beforePrevSlide:"lgBeforePrevSlide",beforeClose:"lgBeforeClose",afterClose:"lgAfterClose",rotateLeft:"lgRotateLeft",rotateRight:"lgRotateRight",flipHorizontal:"lgFlipHorizontal",flipVertical:"lgFlipVertical",autoplay:"lgAutoplay",autoplayStart:"lgAutoplayStart",autoplayStop:"lgAutoplayStop"}},1787:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.lightGalleryCoreSettings=void 0,e.lightGalleryCoreSettings={mode:"lg-slide",easing:"ease",speed:400,licenseKey:"0000-0000-000-0000",height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:300,container:"",startAnimationDuration:400,zoomFromOrigin:!0,hideBarsDelay:0,showBarsAfter:1e4,slideDelay:0,supportLegacyBrowser:!0,allowMediaOverlap:!1,videoMaxSize:"1280-720",loadYouTubePoster:!0,defaultCaptionHeight:0,ariaLabelledby:"",ariaDescribedby:"",closable:!0,swipeToClose:!0,closeOnTap:!0,showCloseIcon:!0,showMaximizeIcon:!1,loop:!0,escKey:!0,keyPress:!0,controls:!0,slideEndAnimation:!0,hideControlOnEnd:!1,mousewheel:!1,getCaptionFromTitleOrAlt:!0,appendSubHtmlTo:".lg-sub-html",subHtmlSelectorRelative:!1,preload:2,numberOfSlideItemsInDom:10,selector:"",selectWithin:"",nextHtml:"",prevHtml:"",index:0,iframeWidth:"100%",iframeHeight:"100%",iframeMaxWidth:"100%",iframeMaxHeight:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],extraProps:[],exThumbImage:"",isMobile:void 0,mobileSettings:{controls:!1,showCloseIcon:!1,download:!1},plugins:[],strings:{closeGallery:"Close gallery",toggleMaximize:"Toggle maximize",previousSlide:"Previous slide",nextSlide:"Next slide",download:"Download",playVideo:"Play video"}}},1743:function(t,e,i){var s=this&&this.__spreadArrays||function(){for(var t=0,e=0,i=arguments.length;el){o=g;break}a===r.length-1&&(o=g)}var d=o.split("-"),h=parseInt(d[0],10),u=parseInt(d[1],10),c=e.width(),m=e.height()-i,p=Math.min(c,h),f=Math.min(m,u),v=Math.min(p/h,f/u);return{width:h*v,height:u*v}}},getTransform:function(t,e,i,s,o){if(o){var r=n.$LG(t).find("img").first();if(r.get()){var l=e.get().getBoundingClientRect(),a=l.width,g=e.height()-(i+s),d=r.width(),h=r.height(),u=r.style(),c=(a-d)/2-r.offset().left+(parseFloat(u.paddingLeft)||0)+(parseFloat(u.borderLeft)||0)+n.$LG(window).scrollLeft()+l.left,m=(g-h)/2-r.offset().top+(parseFloat(u.paddingTop)||0)+(parseFloat(u.borderTop)||0)+n.$LG(window).scrollTop()+i;return"translate3d("+(c*=-1)+"px, "+(m*=-1)+"px, 0) scale3d("+d/o.width+", "+h/o.height+", 1)"}}},getIframeMarkup:function(t,e,i,s,n,o){return'
\n \n
'},getImgMarkup:function(t,e,i,s,n,o){var r="',l="";o&&(l=("string"==typeof o?JSON.parse(o):o).map((function(t){var e="";return Object.keys(t).forEach((function(i){e+=" "+i+'="'+t[i]+'"'})),""})));return""+l+r},getResponsiveSrc:function(t){for(var e=[],i=[],s="",n=0;nr){s=i[l];break}return s},isImageLoaded:function(t){return!!t&&(!!t.complete&&0!==t.naturalWidth)},getVideoPosterMarkup:function(t,e,i,s,n){return'
\n
\n \n '+s+'\n \n \n \n \n \n \n \n
\n '+(e||"")+'\n \n
'},getDynamicOptions:function(t,e,i,l){var a=[],g=s(o,e);return[].forEach.call(t,(function(t){for(var e={},s=0;s-1&&(h=d),h&&(e[h]=o.value)}}var u=n.$LG(t),c=u.find("img").first().attr("alt"),m=u.attr("title"),p=l?u.attr(l):u.find("img").first().attr("src");e.thumb=p,i&&!e.subHtml&&(e.subHtml=m||c||""),e.alt=c||m||"",a.push(e)})),a},isMobile:function(){return/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)},isVideo:function(t,e,i){if(!t)return e?{html5:!0}:void console.error("lightGallery :- data-src is not provided on slide item "+(i+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");var s=t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),n=t.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),o=t.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);return s?{youtube:s}:n?{vimeo:n}:o?{wistia:o}:void 0}};e.default=l},1377:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.$LG=e.lgQuery=void 0;var i=function(){function t(t){return this.cssVenderPrefixes=["TransitionDuration","TransitionTimingFunction","Transform","Transition"],this.selector=this._getSelector(t),this.firstElement=this._getFirstEl(),this}return t.generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))},t.prototype._getSelector=function(t,e){return void 0===e&&(e=document),"string"!=typeof t?t:(e=e||document,"#"===t.substring(0,1)?e.querySelector(t):e.querySelectorAll(t))},t.prototype._each=function(t){return this.selector?(void 0!==this.selector.length?[].forEach.call(this.selector,t):t(this.selector,0),this):this},t.prototype._setCssVendorPrefix=function(t,e,i){var s=e.replace(/-([a-z])/gi,(function(t,e){return e.toUpperCase()}));-1!==this.cssVenderPrefixes.indexOf(s)?(t.style[s.charAt(0).toLowerCase()+s.slice(1)]=i,t.style["webkit"+s]=i,t.style["moz"+s]=i,t.style["ms"+s]=i,t.style["o"+s]=i):t.style[s]=i},t.prototype._getFirstEl=function(){return this.selector&&void 0!==this.selector.length?this.selector[0]:this.selector},t.prototype.isEventMatched=function(t,e){var i=e.split(".");return t.split(".").filter((function(t){return t})).every((function(t){return-1!==i.indexOf(t)}))},t.prototype.attr=function(t,e){return void 0===e?this.firstElement?this.firstElement.getAttribute(t):"":(this._each((function(i){i.setAttribute(t,e)})),this)},t.prototype.find=function(t){return s(this._getSelector(t,this.selector))},t.prototype.first=function(){return this.selector&&void 0!==this.selector.length?s(this.selector[0]):s(this.selector)},t.prototype.eq=function(t){return s(this.selector[t])},t.prototype.parent=function(){return s(this.selector.parentElement)},t.prototype.get=function(){return this._getFirstEl()},t.prototype.removeAttr=function(t){var e=t.split(" ");return this._each((function(t){e.forEach((function(e){return t.removeAttribute(e)}))})),this},t.prototype.wrap=function(t){if(!this.firstElement)return this;var e=document.createElement("div");return e.className=t,this.firstElement.parentNode.insertBefore(e,this.firstElement),this.firstElement.parentNode.removeChild(this.firstElement),e.appendChild(this.firstElement),this},t.prototype.addClass=function(t){return void 0===t&&(t=""),this._each((function(e){t.split(" ").forEach((function(t){t&&e.classList.add(t)}))})),this},t.prototype.removeClass=function(t){return this._each((function(e){t.split(" ").forEach((function(t){t&&e.classList.remove(t)}))})),this},t.prototype.hasClass=function(t){return!!this.firstElement&&this.firstElement.classList.contains(t)},t.prototype.hasAttribute=function(t){return!!this.firstElement&&this.firstElement.hasAttribute(t)},t.prototype.toggleClass=function(t){return this.firstElement?(this.hasClass(t)?this.removeClass(t):this.addClass(t),this):this},t.prototype.css=function(t,e){var i=this;return this._each((function(s){i._setCssVendorPrefix(s,t,e)})),this},t.prototype.on=function(e,i){var s=this;return this.selector?(e.split(" ").forEach((function(e){Array.isArray(t.eventListeners[e])||(t.eventListeners[e]=[]),t.eventListeners[e].push(i),s.selector.addEventListener(e.split(".")[0],i)})),this):this},t.prototype.once=function(t,e){var i=this;return this.on(t,(function(){i.off(t),e(t)})),this},t.prototype.off=function(e){var i=this;return this.selector?(Object.keys(t.eventListeners).forEach((function(s){i.isEventMatched(e,s)&&(t.eventListeners[s].forEach((function(t){i.selector.removeEventListener(s.split(".")[0],t)})),t.eventListeners[s]=[])})),this):this},t.prototype.trigger=function(t,e){if(!this.firstElement)return this;var i=new CustomEvent(t.split(".")[0],{detail:e||null});return this.firstElement.dispatchEvent(i),this},t.prototype.load=function(t){var e=this;return fetch(t).then((function(t){return t.text()})).then((function(t){e.selector.innerHTML=t})),this},t.prototype.html=function(t){return void 0===t?this.firstElement?this.firstElement.innerHTML:"":(this._each((function(e){e.innerHTML=t})),this)},t.prototype.append=function(t){return this._each((function(e){"string"==typeof t?e.insertAdjacentHTML("beforeend",t):e.appendChild(t)})),this},t.prototype.prepend=function(t){return this._each((function(e){e.insertAdjacentHTML("afterbegin",t)})),this},t.prototype.remove=function(){return this._each((function(t){t.parentNode.removeChild(t)})),this},t.prototype.empty=function(){return this._each((function(t){t.innerHTML=""})),this},t.prototype.scrollTop=function(t){return void 0!==t?(document.body.scrollTop=t,document.documentElement.scrollTop=t,this):window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},t.prototype.scrollLeft=function(t){return void 0!==t?(document.body.scrollLeft=t,document.documentElement.scrollLeft=t,this):window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0},t.prototype.offset=function(){if(!this.firstElement)return{left:0,top:0};var t=this.firstElement.getBoundingClientRect(),e=s("body").style().marginLeft;return{left:t.left-parseFloat(e)+this.scrollLeft(),top:t.top+this.scrollTop()}},t.prototype.style=function(){return this.firstElement?this.firstElement.currentStyle||window.getComputedStyle(this.firstElement):{}},t.prototype.width=function(){var t=this.style();return this.firstElement.clientWidth-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)},t.prototype.height=function(){var t=this.style();return this.firstElement.clientHeight-parseFloat(t.paddingTop)-parseFloat(t.paddingBottom)},t.eventListeners={},t}();function s(t){return function(){if("function"==typeof window.CustomEvent)return!1;window.CustomEvent=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var i=document.createEvent("CustomEvent");return i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),i}}(),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),new i(t)}e.lgQuery=i,e.$LG=s},8350:function(t,e,i){var s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,i=1,s=arguments.length;i '+this.settings.prevHtml+' \n "),".lg-item"!==this.settings.appendSubHtmlTo&&(i='
');var s="";this.settings.allowMediaOverlap&&(s+="lg-media-overlap ");var n=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",o=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",r="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),a=this.settings.closable&&this.settings.showCloseIcon?'':"",g=this.settings.showMaximizeIcon?'':"",d='\n \n ";l.$LG(this.settings.container).append(d),document.body!==this.settings.container&&l.$LG(this.settings.container).css("position","relative"),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var h=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(h+="lg-grab "),this.outer.addClass(h),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append(''),this.counter(),l.$LG(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,(function(){t.refreshOnResize()})),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},t.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index].__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var e=this.mediaContainerPosition,i=e.top,s=e.bottom;if(this.currentImageSize=r.default.getSize(this.items[this.index],this.outer,i+s,t&&this.settings.videoMaxSize),t&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var o=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",o)}this.LGel.trigger(n.lGEvents.containerResize)}},t.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e);this.getSlideItem(t).find(".lg-video-cont").attr("style",i)},t.prototype.updateSlides=function(t,e){if(this.index>t.length-1&&(this.index=t.length-1),1===t.length&&(this.index=0),t.length){var i=this.galleryItems[e].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some((function(t,e){return t.src===i&&(s=e,!0)})),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(n.lGEvents.updateSlides)}else this.closeGallery()},t.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if("this"===this.settings.selector)this.items.push(this.el);else if(this.settings.selector)if("string"==typeof this.settings.selector)if(this.settings.selectWithin){var t=l.$LG(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return r.default.getDynamicOptions(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},t.prototype.openGallery=function(t,e){var i=this;if(void 0===t&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.get().focus(),this.outer.removeClass("lg-hide-items"),this.$container.addClass("lg-show");var s=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=s;var o="";s.forEach((function(t){o=o+'
'})),this.$inner.append(o),this.addHtml(t);var a="";this.mediaContainerPosition=this.getMediaContainerPosition();var g=this.mediaContainerPosition,d=g.top,h=g.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(d,h);var u=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=r.default.getSize(e,this.outer,d+h,u&&this.settings.videoMaxSize),a=r.default.getTransform(e,this.outer,d,h,this.currentImageSize)),this.zoomFromOrigin&&a||(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var c=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout((function(){i.outer.addClass("lg-components-open")}),c),this.index=t,this.LGel.trigger(n.lGEvents.beforeOpen),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=l.$LG(window).scrollTop(),setTimeout((function(){if(i.zoomFromOrigin&&a){var e=i.getSlideItem(t);e.css("transform",a),setTimeout((function(){e.addClass("lg-start-progress lg-start-end-progress").css("transition-duration",i.settings.startAnimationDuration+"ms"),i.outer.addClass("lg-zoom-from-image")})),setTimeout((function(){e.css("transform","translate3d(0, 0, 0)")}),100)}setTimeout((function(){i.$backdrop.addClass("in"),i.$container.addClass("lg-show-in")}),10),i.zoomFromOrigin&&a||setTimeout((function(){i.outer.addClass("lg-visible")}),i.settings.backdropDuration),i.slide(t,!1,!1,!1),i.LGel.trigger(n.lGEvents.afterOpen)})),document.body===this.settings.container&&l.$LG("html").addClass("lg-on")}},t.prototype.getMediaContainerPosition=function(){if(this.settings.allowMediaOverlap)return{top:0,bottom:0};var t=this.$toolbar.get().clientHeight||0,e=this.outer.find(".lg-components .lg-sub-html").get(),i=this.settings.defaultCaptionHeight||e&&e.clientHeight||0,s=this.outer.find(".lg-thumb-outer").get();return{top:t,bottom:(s?s.clientHeight:0)+i}},t.prototype.setMediaContainerPosition=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.$content.css("top",t+"px").css("bottom",e+"px")},t.prototype.hideBars=function(){var t=this;setTimeout((function(){t.outer.removeClass("lg-hide-items"),t.settings.hideBarsDelay>0&&(t.outer.on("mousemove.lg click.lg touchstart.lg",(function(){t.outer.removeClass("lg-hide-items"),clearTimeout(t.hideBarTimeout),t.hideBarTimeout=setTimeout((function(){t.outer.addClass("lg-hide-items")}),t.settings.hideBarsDelay)})),t.outer.trigger("mousemove.lg"))}),this.settings.showBarsAfter)},t.prototype.initPictureFill=function(t){if(this.settings.supportLegacyBrowser)try{picturefill({elements:[t.get()]})}catch(t){console.warn("lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.")}},t.prototype.counter=function(){if(this.settings.counter){var t='
\n '+(this.index+1)+' /\n '+this.galleryItems.length+"
";this.outer.find(this.settings.appendCounterTo).append(t)}},t.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var s=e.substring(0,1);"."!==s&&"#"!==s||(e=this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?l.$LG(this.items).eq(t).find(e).first().html():l.$LG(e).first().html())}else e="";if(".lg-item"!==this.settings.appendSubHtmlTo)i?this.outer.find(".lg-sub-html").load(i):this.outer.find(".lg-sub-html").html(e);else{var o=l.$LG(this.getSlideItemId(t));i?o.load(i):o.append('
'+e+"
")}null!=e&&(""===e?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger(n.lGEvents.afterAppendSubHtml,{index:t})},t.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},t.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+"px;\n margin-left: -"+t.width/2+"px;\n margin-top: -"+t.height/2+"px;\n height:"+t.height+"px":""},t.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+"px;\n height:"+t.height+"px":""},t.prototype.getDummyImageContent=function(t,e,i){var s;if(this.settings.dynamic||(s=l.$LG(this.items).eq(e)),s){var n=void 0;if(!(n=this.settings.exThumbImage?s.attr(this.settings.exThumbImage):s.find("img").first().attr("src")))return"";var o="';return t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),o}return""},t.prototype.setImgMarkup=function(t,e,i){var s=this.galleryItems[i],n=s.alt,o=s.srcset,l=s.sizes,a=s.sources,g=n?'alt="'+n+'"':"",d=' '+(this.isFirstSlideWithZoomAnimation()?this.getDummyImageContent(e,i,g):r.default.getImgMarkup(i,t,g,o,l,a))+"";e.prepend(d)},t.prototype.onSlideObjectLoad=function(t,e,i,s){var n=t.find(".lg-object").first();r.default.isImageLoaded(n.get())||e?i():(n.on("load.lg error.lg",(function(){i&&i()})),n.on("error.lg",(function(){s&&s()})))},t.prototype.onLgObjectLoad=function(t,e,i,s,n,o){var r=this;this.onSlideObjectLoad(t,o,(function(){r.triggerSlideItemLoad(t,e,i,s,n)}),(function(){t.addClass("lg-complete lg-complete_"),t.html('Oops... Failed to load content...')}))},t.prototype.triggerSlideItemLoad=function(t,e,i,s,o){var r=this,l=this.galleryItems[e],a=o&&"video"===this.getSlideType(l)&&!l.poster?s:0;setTimeout((function(){t.addClass("lg-complete lg-complete_"),r.LGel.trigger(n.lGEvents.slideItemLoad,{index:e,delay:i||0,isFirstSlide:o})}),a)},t.prototype.isFirstSlideWithZoomAnimation=function(){return!(this.lGalleryOn||!this.zoomFromOrigin||!this.currentImageSize)},t.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach((function(t,i){t.__slideVideoInfo=r.default.isVideo(t.src,!!t.video,i),t.__slideVideoInfo&&e.settings.loadYouTubePoster&&!t.poster&&t.__slideVideoInfo.youtube&&(t.poster="//img.youtube.com/vi/"+t.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")}))},t.prototype.loadContent=function(t,e){var i=this,s=this.galleryItems[t],o=l.$LG(this.getSlideItemId(t)),a=s.poster,g=s.srcset,d=s.sizes,h=s.sources,u=s.src,c=s.video,m=c&&"string"==typeof c?JSON.parse(c):c;if(s.responsive){var p=s.responsive.split(",");u=r.default.getResponsiveSrc(p)||u}var f=s.__slideVideoInfo,v="",y=!!s.iframe,b=!this.lGalleryOn,C=0;if(b&&(C=this.zoomFromOrigin&&this.currentImageSize?this.settings.startAnimationDuration+10:this.settings.backdropDuration+10),!o.hasClass("lg-loaded")){if(f){var I=this.mediaContainerPosition,S=I.top,x=I.bottom,w=r.default.getSize(this.items[t],this.outer,S+x,f&&this.settings.videoMaxSize);v=this.getVideoContStyle(w)}if(y){var E=r.default.getIframeMarkup(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,u,s.iframeTitle);o.prepend(E)}else if(a){var T="";b&&this.zoomFromOrigin&&this.currentImageSize&&(T=this.getDummyImageContent(o,t,""));E=r.default.getVideoPosterMarkup(a,T||"",v,this.settings.strings.playVideo,f);o.prepend(E)}else if(f){E='
';o.prepend(E)}else if(this.setImgMarkup(u,o,t),g||h){var G=o.find(".lg-object");this.initPictureFill(G)}(a||f)&&this.LGel.trigger(n.lGEvents.hasVideo,{index:t,src:u,html5Video:m,hasPoster:!!a}),this.LGel.trigger(n.lGEvents.afterAppendSlide,{index:t}),this.lGalleryOn&&".lg-item"===this.settings.appendSubHtmlTo&&this.addHtml(t)}var L=0;C&&!l.$LG(document.body).hasClass("lg-from-hash")&&(L=C),this.isFirstSlideWithZoomAnimation()&&(setTimeout((function(){o.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")}),this.settings.startAnimationDuration+100),o.hasClass("lg-loaded")||setTimeout((function(){if("image"===i.getSlideType(s)&&(o.find(".lg-img-wrap").append(r.default.getImgMarkup(t,u,"",g,d,s.sources)),g||h)){var e=o.find(".lg-object");i.initPictureFill(e)}("image"===i.getSlideType(s)||"video"===i.getSlideType(s)&&a)&&(i.onLgObjectLoad(o,t,C,L,!0,!1),i.onSlideObjectLoad(o,!(!f||!f.html5||a),(function(){i.loadContentOnFirstSlideLoad(t,o,L)}),(function(){i.loadContentOnFirstSlideLoad(t,o,L)})))}),this.settings.startAnimationDuration+100)),o.addClass("lg-loaded"),this.isFirstSlideWithZoomAnimation()&&("video"!==this.getSlideType(s)||a)||this.onLgObjectLoad(o,t,C,L,b,!(!f||!f.html5||a)),this.zoomFromOrigin&&this.currentImageSize||!o.hasClass("lg-complete_")||this.lGalleryOn||setTimeout((function(){o.addClass("lg-complete")}),this.settings.backdropDuration),this.lGalleryOn=!0,!0===e&&(o.hasClass("lg-complete_")?this.preload(t):o.find(".lg-object").first().on("load.lg error.lg",(function(){i.preload(t)})))},t.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var s=this;setTimeout((function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),s.outer.removeClass("lg-first-slide-loading"),s.isDummyImageRemoved=!0,s.preload(t)}),i+300)},t.prototype.getItemsToBeInsertedToDom=function(t,e,i){var s=this;void 0===i&&(i=0);var n=[],o=Math.max(i,3);o=Math.min(o,this.galleryItems.length);var r="lg-item-"+this.lgId+"-"+e;if(this.galleryItems.length<=3)return this.galleryItems.forEach((function(t,e){n.push("lg-item-"+s.lgId+"-"+e)})),n;if(t<(this.galleryItems.length-1)/2){for(var l=t;l>t-o/2&&l>=0;l--)n.push("lg-item-"+this.lgId+"-"+l);var a=n.length;for(l=0;l
')})),this.currentItemsInDom.forEach((function(t){-1===s.indexOf(t)&&l.$LG("#"+t).remove()})),s},t.prototype.getPreviousSlideIndex=function(){var t=0;try{var e=this.outer.find(".lg-current").first().attr("id");t=parseInt(e.split("-")[3])||0}catch(e){t=0}return t},t.prototype.setDownloadValue=function(t){if(this.settings.download){var e=this.galleryItems[t];if(!1===e.downloadUrl||"false"===e.downloadUrl)this.outer.addClass("lg-hide-download");else{var i=this.getElementById("lg-download");this.outer.removeClass("lg-hide-download"),i.attr("href",e.downloadUrl||e.src),e.download&&i.attr("download",e.download)}}},t.prototype.makeSlideAnimation=function(t,e,i){var s=this;this.lGalleryOn&&i.addClass("lg-slide-progress"),setTimeout((function(){s.outer.addClass("lg-no-trans"),s.outer.find(".lg-item").removeClass("lg-prev-slide lg-next-slide"),"prev"===t?(e.addClass("lg-prev-slide"),i.addClass("lg-next-slide")):(e.addClass("lg-next-slide"),i.addClass("lg-prev-slide")),setTimeout((function(){s.outer.find(".lg-item").removeClass("lg-current"),e.addClass("lg-current"),s.outer.removeClass("lg-no-trans")}),50)}),this.lGalleryOn?this.settings.slideDelay:0)},t.prototype.slide=function(t,e,i,s){var o=this,l=this.getPreviousSlideIndex();if(this.currentItemsInDom=this.organizeSlideItems(t,l),!this.lGalleryOn||l!==t){var a=this.galleryItems.length;if(!this.lgBusy){this.settings.counter&&this.updateCurrentCounter(t);var g=this.getSlideItem(t),d=this.getSlideItem(l),h=this.galleryItems[t],u=h.__slideVideoInfo;if(this.outer.attr("data-lg-slide-type",this.getSlideType(h)),this.setDownloadValue(t),u){var c=this.mediaContainerPosition,m=c.top,p=c.bottom,f=r.default.getSize(this.items[t],this.outer,m+p,u&&this.settings.videoMaxSize);this.resizeVideoSlide(t,f)}if(this.LGel.trigger(n.lGEvents.beforeSlide,{prevIndex:l,index:t,fromTouch:!!e,fromThumb:!!i}),this.lgBusy=!0,clearTimeout(this.hideBarTimeout),this.arrowDisable(t),s||(tl&&(s="next")),e){this.outer.find(".lg-item").removeClass("lg-prev-slide lg-current lg-next-slide");var v=void 0,y=void 0;a>2?(v=t-1,y=t+1,(0===t&&l===a-1||t===a-1&&0===l)&&(y=0,v=a-1)):(v=0,y=1),"prev"===s?this.getSlideItem(y).addClass("lg-next-slide"):this.getSlideItem(v).addClass("lg-prev-slide"),g.addClass("lg-current")}else this.makeSlideAnimation(s,g,d);this.lGalleryOn?setTimeout((function(){o.loadContent(t,!0),".lg-item"!==o.settings.appendSubHtmlTo&&o.addHtml(t)}),this.settings.speed+50+(e?0:this.settings.slideDelay)):this.loadContent(t,!0),setTimeout((function(){o.lgBusy=!1,d.removeClass("lg-slide-progress"),o.LGel.trigger(n.lGEvents.afterSlide,{prevIndex:l,index:t,fromTouch:e,fromThumb:i})}),(this.lGalleryOn?this.settings.speed+100:100)+(e?0:this.settings.slideDelay))}this.index=t}},t.prototype.updateCurrentCounter=function(t){this.getElementById("lg-counter-current").html(t+1+"")},t.prototype.updateCounterTotal=function(){this.getElementById("lg-counter-all").html(this.galleryItems.length+"")},t.prototype.getSlideType=function(t){return t.__slideVideoInfo?"video":t.iframe?"iframe":"image"},t.prototype.touchMove=function(t,e,i){var s=e.pageX-t.pageX,n=e.pageY-t.pageY,o=!1;if(this.swipeDirection?o=!0:Math.abs(s)>15?(this.swipeDirection="horizontal",o=!0):Math.abs(n)>15&&(this.swipeDirection="vertical",o=!0),o){var r=this.getSlideItem(this.index);if("horizontal"===this.swipeDirection){null==i||i.preventDefault(),this.outer.addClass("lg-dragging"),this.setTranslate(r,s,0);var l=r.get().offsetWidth,a=15*l/100-Math.abs(10*s/100);this.setTranslate(this.outer.find(".lg-prev-slide").first(),-l+s-a,0),this.setTranslate(this.outer.find(".lg-next-slide").first(),l+s+a,0)}else if("vertical"===this.swipeDirection&&this.settings.swipeToClose){null==i||i.preventDefault(),this.$container.addClass("lg-dragging-vertical");var g=1-Math.abs(n)/window.innerHeight;this.$backdrop.css("opacity",g);var d=1-Math.abs(n)/(2*window.innerWidth);this.setTranslate(r,0,n,d,d),Math.abs(n)>100&&this.outer.addClass("lg-hide-items").removeClass("lg-components-open")}}},t.prototype.touchEnd=function(t,e,i){var s,o=this;"lg-slide"!==this.settings.mode&&this.outer.addClass("lg-slide"),setTimeout((function(){o.$container.removeClass("lg-dragging-vertical"),o.outer.removeClass("lg-dragging lg-hide-items").addClass("lg-components-open");var r=!0;if("horizontal"===o.swipeDirection){s=t.pageX-e.pageX;var a=Math.abs(t.pageX-e.pageX);s<0&&a>o.settings.swipeThreshold?(o.goToNextSlide(!0),r=!1):s>0&&a>o.settings.swipeThreshold&&(o.goToPrevSlide(!0),r=!1)}else if("vertical"===o.swipeDirection){if(s=Math.abs(t.pageY-e.pageY),o.settings.closable&&o.settings.swipeToClose&&s>100)return void o.closeGallery();o.$backdrop.css("opacity",1)}if(o.outer.find(".lg-item").removeAttr("style"),r&&Math.abs(t.pageX-e.pageX)<5){var g=l.$LG(i.target);o.isPosterElement(g)&&o.LGel.trigger(n.lGEvents.posterClick)}o.swipeDirection=void 0})),setTimeout((function(){o.outer.hasClass("lg-dragging")||"lg-slide"===o.settings.mode||o.outer.removeClass("lg-slide")}),this.settings.speed+100)},t.prototype.enableSwipe=function(){var t=this,e={},i={},s=!1,o=!1;this.settings.enableSwipe&&(this.$inner.on("touchstart.lg",(function(i){t.dragOrSwipeEnabled=!0;var s=t.getSlideItem(t.index);!l.$LG(i.target).hasClass("lg-item")&&!s.get().contains(i.target)||t.outer.hasClass("lg-zoomed")||t.lgBusy||1!==i.targetTouches.length||(o=!0,t.touchAction="swipe",t.manageSwipeClass(),e={pageX:i.targetTouches[0].pageX,pageY:i.targetTouches[0].pageY})})),this.$inner.on("touchmove.lg",(function(n){o&&"swipe"===t.touchAction&&1===n.targetTouches.length&&(i={pageX:n.targetTouches[0].pageX,pageY:n.targetTouches[0].pageY},t.touchMove(e,i,n),s=!0)})),this.$inner.on("touchend.lg",(function(r){if("swipe"===t.touchAction){if(s)s=!1,t.touchEnd(i,e,r);else if(o){var a=l.$LG(r.target);t.isPosterElement(a)&&t.LGel.trigger(n.lGEvents.posterClick)}t.touchAction=void 0,o=!1}})))},t.prototype.enableDrag=function(){var t=this,e={},i={},s=!1,o=!1;this.settings.enableDrag&&(this.outer.on("mousedown.lg",(function(i){t.dragOrSwipeEnabled=!0;var o=t.getSlideItem(t.index);(l.$LG(i.target).hasClass("lg-item")||o.get().contains(i.target))&&(t.outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.lgBusy||(t.manageSwipeClass(),e={pageX:i.pageX,pageY:i.pageY},s=!0,t.outer.get().scrollLeft+=1,t.outer.get().scrollLeft-=1,t.outer.removeClass("lg-grab").addClass("lg-grabbing"),t.LGel.trigger(n.lGEvents.dragStart))))})),l.$LG(window).on("mousemove.lg.global"+this.lgId,(function(r){s&&t.lgOpened&&(o=!0,i={pageX:r.pageX,pageY:r.pageY},t.touchMove(e,i),t.LGel.trigger(n.lGEvents.dragMove))})),l.$LG(window).on("mouseup.lg.global"+this.lgId,(function(r){if(t.lgOpened){var a=l.$LG(r.target);o?(o=!1,t.touchEnd(i,e,r),t.LGel.trigger(n.lGEvents.dragEnd)):t.isPosterElement(a)&&t.LGel.trigger(n.lGEvents.posterClick),s&&(s=!1,t.outer.removeClass("lg-grabbing").addClass("lg-grab"))}})))},t.prototype.triggerPosterClick=function(){var t=this;this.$inner.on("click.lg",(function(e){!t.dragOrSwipeEnabled&&t.isPosterElement(l.$LG(e.target))&&t.LGel.trigger(n.lGEvents.posterClick)}))},t.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1;this.settings.loop&&this.galleryItems.length>2&&(0===this.index?e=this.galleryItems.length-1:this.index===this.galleryItems.length-1&&(t=0)),this.outer.find(".lg-item").removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.getSlideItem(e).addClass("lg-prev-slide"),this.getSlideItem(t).addClass("lg-next-slide")},t.prototype.goToNextSlide=function(t){var e=this,i=this.settings.loop;t&&this.galleryItems.length<3&&(i=!1),this.lgBusy||(this.index+10?(this.index--,this.LGel.trigger(n.lGEvents.beforePrevSlide,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):i?(this.index=this.galleryItems.length-1,this.LGel.trigger(n.lGEvents.beforePrevSlide,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):this.settings.slideEndAnimation&&!t&&(this.outer.addClass("lg-left-end"),setTimeout((function(){e.outer.removeClass("lg-left-end")}),400)))},t.prototype.keyPress=function(){var t=this;l.$LG(window).on("keydown.lg.global"+this.lgId,(function(e){t.lgOpened&&!0===t.settings.escKey&&27===e.keyCode&&(e.preventDefault(),t.settings.allowMediaOverlap&&t.outer.hasClass("lg-can-toggle")&&t.outer.hasClass("lg-components-open")?t.outer.removeClass("lg-components-open"):t.closeGallery()),t.lgOpened&&t.galleryItems.length>1&&(37===e.keyCode&&(e.preventDefault(),t.goToPrevSlide()),39===e.keyCode&&(e.preventDefault(),t.goToNextSlide()))}))},t.prototype.arrow=function(){var t=this;this.getElementById("lg-prev").on("click.lg",(function(){t.goToPrevSlide()})),this.getElementById("lg-next").on("click.lg",(function(){t.goToNextSlide()}))},t.prototype.arrowDisable=function(t){if(!this.settings.loop&&this.settings.hideControlOnEnd){var e=this.getElementById("lg-prev"),i=this.getElementById("lg-next");t+1===this.galleryItems.length?i.attr("disabled","disabled").addClass("disabled"):i.removeAttr("disabled").removeClass("disabled"),0===t?e.attr("disabled","disabled").addClass("disabled"):e.removeAttr("disabled").removeClass("disabled")}},t.prototype.setTranslate=function(t,e,i,s,n){void 0===s&&(s=1),void 0===n&&(n=1),t.css("transform","translate3d("+e+"px, "+i+"px, 0px) scale3d("+s+", "+n+", 1)")},t.prototype.mousewheel=function(){var t=this,e=0;this.outer.on("wheel.lg",(function(i){if(i.deltaY&&!(t.galleryItems.length<2)){i.preventDefault();var s=(new Date).getTime();s-e<1e3||(e=s,i.deltaY>0?t.goToNextSlide():i.deltaY<0&&t.goToPrevSlide())}}))},t.prototype.isSlideElement=function(t){return t.hasClass("lg-outer")||t.hasClass("lg-item")||t.hasClass("lg-img-wrap")},t.prototype.isPosterElement=function(t){var e=this.getSlideItem(this.index).find(".lg-video-play-button").get();return t.hasClass("lg-video-poster")||t.hasClass("lg-video-play-button")||e&&e.contains(t.get())},t.prototype.toggleMaximize=function(){var t=this;this.getElementById("lg-maximize").on("click.lg",(function(){t.$container.toggleClass("lg-inline"),t.refreshOnResize()}))},t.prototype.invalidateItems=function(){for(var t=0;t{i.r(e),i.d(e,{default:()=>u});var s=i(7829);var n=function(){return n=Object.assign||function(t){for(var e,i=1,s=arguments.length;i"fulfilled"==t.status?t.value.default:console.error("加载lightGallery的插件时出错啦!",t.reason);async function u(){const{plugins:t,...e}=_iro.lightGallery;(0,s.Z)(document.querySelector(".entry-content"),{plugins:t&&(await Promise.allSettled(t.map((t=>i(8497)("./"+d(t)+".min.js"))))).map(h),...e})}},8497:(t,e,i)=>{var s={"./autoplay/lg-autoplay.min.js":[539,963],"./comment/lg-comment.min.js":[7590,388],"./fullscreen/lg-fullscreen.min.js":[5606,18],"./hash/lg-hash.min.js":[4153,173],"./mediumZoom/lg-medium-zoom.min.js":[2564,440],"./pager/lg-pager.min.js":[3963,637],"./relativeCaption/lg-relative-caption.min.js":[8999,478],"./rotate/lg-rotate.min.js":[8845,868],"./share/lg-share.min.js":[4,558],"./thumbnail/lg-thumbnail.min.js":[5131,730],"./video/lg-video.min.js":[7647,441],"./zoom/lg-zoom.min.js":[7295,453]};function n(t){if(!i.o(s,t))return Promise.resolve().then((()=>{var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=s[t],n=e[0];return i.e(e[1]).then((()=>i.t(n,23)))}n.keys=()=>Object.keys(s),n.id=8497,t.exports=n}}]); +//# sourceMappingURL=159.js.map \ No newline at end of file diff --git a/js/159.js.map b/js/159.js.map new file mode 100644 index 00000000..b50f2731 --- /dev/null +++ b/js/159.js.map @@ -0,0 +1 @@ +{"version":3,"file":"159.js","mappings":"oHAEA,IAAIA,EAAiB,EAAQ,MAI7BC,EAAQ,EAHR,SAAsBC,EAAIC,GACtB,OAAO,IAAIH,EAAeI,aAAaF,EAAIC,K,aCH/CE,OAAOC,eAAeL,EAAS,aAAc,CAAEM,OAAO,IACtDN,EAAQO,cAAW,EAMnBP,EAAQO,SAAW,CACfC,iBAAkB,qBAClBC,KAAM,SACNC,SAAU,aACVC,gBAAiB,oBACjBC,aAAc,iBACdC,mBAAoB,uBACpBC,WAAY,eACZC,UAAW,cACXC,cAAe,kBACfC,YAAa,gBACbC,WAAY,eACZC,YAAa,gBACbC,UAAW,cACXC,SAAU,aACVC,QAAS,YACTC,gBAAiB,oBACjBC,gBAAiB,oBACjBC,YAAa,gBACbC,WAAY,eACZC,WAAY,eACZC,YAAa,gBACbC,eAAgB,mBAChBC,aAAc,iBACdC,SAAU,aACVC,cAAe,kBACfC,aAAc,mB,aCjClB7B,OAAOC,eAAeL,EAAS,aAAc,CAAEM,OAAO,IACtDN,EAAQkC,8BAA2B,EACnClC,EAAQkC,yBAA2B,CAC/BC,KAAM,WACNC,OAAQ,OACRC,MAAO,IACPC,WAAY,qBACZC,OAAQ,OACRC,MAAO,OACPC,SAAU,GACVC,WAAY,gBACZC,iBAAkB,IAClBC,UAAW,GACXC,uBAAwB,IACxBC,gBAAgB,EAChBC,cAAe,EACfC,cAAe,IACfC,WAAY,EACZC,sBAAsB,EACtBC,mBAAmB,EACnBC,aAAc,WACdC,mBAAmB,EACnBC,qBAAsB,EACtBC,eAAgB,GAChBC,gBAAiB,GACjBC,UAAU,EACVC,cAAc,EACdC,YAAY,EACZC,eAAe,EACfC,kBAAkB,EAClBC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,UAAU,EACVC,mBAAmB,EACnBC,kBAAkB,EAClBC,YAAY,EACZC,0BAA0B,EAC1BC,gBAAiB,eACjBC,yBAAyB,EACzBC,QAAS,EACTC,wBAAyB,GACzBC,SAAU,GACVC,aAAc,GACdC,SAAU,GACVC,SAAU,GACVC,MAAO,EACPC,YAAa,OACbC,aAAc,OACdC,eAAgB,OAChBC,gBAAiB,OACjBC,UAAU,EACVC,SAAS,EACTC,gBAAiB,cACjBC,eAAgB,GAChBC,aAAa,EACbC,YAAY,EACZC,SAAS,EACTC,UAAW,GACXC,WAAY,GACZC,aAAc,GACdC,cAAUC,EACVC,eAAgB,CACZ9B,UAAU,EACVL,eAAe,EACfuB,UAAU,GAEda,QAAS,GACTC,QAAS,CACLC,aAAc,gBACdC,eAAgB,kBAChBC,cAAe,iBACfC,UAAW,aACXlB,SAAU,WACVmB,UAAW,gB,qBC1EnB,IAAIC,EAAkBC,MAAQA,KAAKD,gBAAmB,WAClD,IAAK,IAAIE,EAAI,EAAGC,EAAI,EAAGC,EAAKC,UAAUC,OAAQH,EAAIC,EAAID,IAAKD,GAAKG,UAAUF,GAAGG,OACxE,IAAIC,EAAIC,MAAMN,GAAIO,EAAI,EAA3B,IAA8BN,EAAI,EAAGA,EAAIC,EAAID,IACzC,IAAK,IAAIO,EAAIL,UAAUF,GAAIQ,EAAI,EAAGC,EAAKF,EAAEJ,OAAQK,EAAIC,EAAID,IAAKF,IAC1DF,EAAEE,GAAKC,EAAEC,GACjB,OAAOJ,GAEX1G,OAAOC,eAAeL,EAAS,aAAc,CAAEM,OAAO,IACtDN,EAAQoH,mBAAgB,EACxB,IAAIC,EAAY,EAAQ,MACpBC,EAAwB,CACxB,MACA,UACA,UACA,aACA,OACA,QACA,SACA,YACA,aACA,SACA,QACA,SACA,cACA,WACA,QACA,mBACA,YACA,cACA,kBACA,oBACA,gBACA,SACA,mBACA,aAGJ,SAASF,EAAcG,GAEnB,MAAa,SAATA,EACO,MAIXA,GADAA,GADAA,EAAOA,EAAKC,QAAQ,QAAS,KACjBC,OAAO,GAAGC,cAAgBH,EAAKI,MAAM,IACrCH,QAAQ,aAAa,SAAUI,GAAK,OAAOA,EAAE,GAAGC,iBAGhE7H,EAAQoH,cAAgBA,EACxB,IAAIU,EAAQ,CAIRC,QAAS,SAAU9H,EAAI2C,EAAWoF,EAASC,QACvB,IAAZD,IAAsBA,EAAU,GACpC,IACIE,EADOb,EAAUc,IAAIlI,GACPsH,KAAK,iBAAmBU,EAC1C,GAAKC,EAAL,CAGA,IAAIE,EAAoBF,EAAOG,MAAM,KAErC,GAAID,EAAkB,GAElB,IADA,IAAIE,EAASC,OAAOC,WACX9B,EAAI,EAAGA,EAAI0B,EAAkBvB,OAAQH,IAAK,CAC/C,IAAI+B,EAASL,EAAkB1B,GAE/B,GADsBgC,SAASD,EAAOJ,MAAM,KAAK,GAAI,IAC/BC,EAAQ,CAC1BJ,EAASO,EACT,MAGA/B,IAAM0B,EAAkBvB,OAAS,IACjCqB,EAASO,GAIrB,IAAIE,EAAOT,EAAOG,MAAM,KACpB7F,EAAQkG,SAASC,EAAK,GAAI,IAC1BpG,EAASmG,SAASC,EAAK,GAAI,IAC3BC,EAAShG,EAAUJ,QACnBqG,EAAUjG,EAAUL,SAAWyF,EAC/Bc,EAAWC,KAAKC,IAAIJ,EAAQpG,GAC5ByG,EAAYF,KAAKC,IAAIH,EAAStG,GAC9B2G,EAAQH,KAAKC,IAAIF,EAAWtG,EAAOyG,EAAY1G,GACnD,MAAO,CAAEC,MAAOA,EAAQ0G,EAAO3G,OAAQA,EAAS2G,KAOpDC,aAAc,SAAUlJ,EAAI2C,EAAWwG,EAAKC,EAAQC,GAChD,GAAKA,EAAL,CAGA,IAAIC,EAAOlC,EAAUc,IAAIlI,GAAIuJ,KAAK,OAAOC,QACzC,GAAKF,EAAKG,MAAV,CAGA,IAAIC,EAAgB/G,EAAU8G,MAAME,wBAChCtB,EAASqB,EAAcnH,MAEvBqH,EAAUjH,EAAUL,UAAY6G,EAAMC,GACtCS,EAAUP,EAAK/G,QACfuH,EAAWR,EAAKhH,SAChByH,EAAUT,EAAKU,QACfC,GAAK5B,EAASwB,GAAW,EACzBP,EAAKY,SAASC,MACbC,WAAWL,EAAQM,cAAgB,IACnCD,WAAWL,EAAQO,aAAe,GACnClD,EAAUc,IAAII,QAAQiC,aACtBb,EAAcS,KACdK,GAAKZ,EAAUE,GAAY,EAC3BR,EAAKY,SAASf,KACbiB,WAAWL,EAAQU,aAAe,IAClCL,WAAWL,EAAQW,YAAc,GAClCtD,EAAUc,IAAII,QAAQqC,YACtBxB,EAYJ,MATgB,gBACXc,IAAM,GACP,QACCO,IAAM,GACP,kBANMX,EAAUR,EAAU9G,MAQ1B,KAPMuH,EAAWT,EAAU/G,OAS3B,UAGRsI,gBAAiB,SAAU9F,EAAaC,EAAcC,EAAgBC,EAAiB4F,EAAKC,GAExF,MAAO,yDAA8DhG,EAAc,eAAiBE,EAAiB,aAAeD,EAAe,gBAAkBE,EAAkB,sEAD3K6F,EAAc,UAAYA,EAAc,IAAM,IACiN,SAAYD,EAAM,+DAEjSE,aAAc,SAAUlG,EAAOgG,EAAKG,EAASC,EAAQC,EAAOC,GACxD,IAEIC,EAAY,QAAUJ,EAAU,KAFnBC,EAAS,WAAcA,EAAS,IAAO,IAED,MADvCC,EAAQ,UAAaA,EAAQ,IAAO,IACsB,2CAAgDrG,EAAQ,UAAcgG,EAAM,OAClJQ,EAAY,GACZF,IAEAE,GADmC,iBAAZF,EAAuBG,KAAKC,MAAMJ,GAAWA,GAC9CK,KAAI,SAAUC,GAChC,IAAIC,EAAQ,GAKZ,OAJAvL,OAAOwL,KAAKF,GAAQG,SAAQ,SAAUC,GAElCH,GAAS,IAAMG,EAAM,KAAQJ,EAAOI,GAAO,OAExC,WAAaH,EAAQ,iBAGpC,MAAO,GAAKL,EAAYD,GAG5BU,iBAAkB,SAAUC,GAIxB,IAHA,IAAIC,EAAU,GACVC,EAAQ,GACRpB,EAAM,GACDpE,EAAI,EAAGA,EAAIsF,EAAQnF,OAAQH,IAAK,CACrC,IAAIyF,EAAOH,EAAQtF,GAAG2B,MAAM,KAEZ,KAAZ8D,EAAK,IACLA,EAAKC,OAAO,EAAG,GAEnBF,EAAMG,KAAKF,EAAK,IAChBF,EAAQI,KAAKF,EAAK,IAGtB,IADA,IAAI7D,EAASC,OAAOC,WACXtB,EAAI,EAAGA,EAAI+E,EAAQpF,OAAQK,IAChC,GAAIwB,SAASuD,EAAQ/E,GAAI,IAAMoB,EAAQ,CACnCwC,EAAMoB,EAAMhF,GACZ,MAGR,OAAO4D,GAEXwB,cAAe,SAAUC,GACrB,QAAKA,MAKAA,EAAIC,UAMgB,IAArBD,EAAIE,eAMZC,qBAAsB,SAAUC,EAASC,EAAUC,EAAgBC,EAAiBC,GAWhF,MAAO,8BATHA,GAAYA,EAASC,QACR,iBAERD,GAAYA,EAASE,MACb,eAGA,gBAEmC,YAAgBJ,EAAiB,0PAAsQC,EAAkB,oIAA2IA,EAAkB,ggBAA8hBF,GAAY,IAAM,6DAAkED,EAAU,wBAS1oCO,kBAAmB,SAAUC,EAAOxH,EAAYtB,EAA0BuB,GACtE,IAAIwH,EAAkB,GAClBC,EAA0B9G,EAAee,EAAuB3B,GA6BpE,MA5BA,GAAGkG,QAAQyB,KAAKH,GAAO,SAAUI,GAE7B,IADA,IAAI7H,EAAY,GACPgB,EAAI,EAAGA,EAAI6G,EAAKC,WAAW3G,OAAQH,IAAK,CAC7C,IAAIa,EAAOgG,EAAKC,WAAW9G,GAC3B,GAAIa,EAAKkG,UAAW,CAChB,IAAIC,EAActG,EAAcG,EAAKoG,MACjCC,EAAQ,GACRP,EAAwBQ,QAAQH,IAAgB,IAChDE,EAAQF,GAERE,IACAlI,EAAUkI,GAASrG,EAAKjH,QAIpC,IAAIwN,EAAczG,EAAUc,IAAIoF,GAC5BQ,EAAMD,EAAYtE,KAAK,OAAOC,QAAQlC,KAAK,OAC3CyG,EAAQF,EAAYvG,KAAK,SACzB0G,EAAQrI,EACNkI,EAAYvG,KAAK3B,GACjBkI,EAAYtE,KAAK,OAAOC,QAAQlC,KAAK,OAC3C7B,EAAUuI,MAAQA,EACd5J,IAA6BqB,EAAUwI,UACvCxI,EAAUwI,QAAUF,GAASD,GAAO,IAExCrI,EAAUqI,IAAMA,GAAOC,GAAS,GAChCZ,EAAgBf,KAAK3G,MAElB0H,GAEXvH,SAAU,WACN,MAAO,4BAA4BsI,KAAKC,UAAUC,YAUtDC,QAAS,SAAUxD,EAAKyD,EAAczJ,GAClC,IAAKgG,EACD,OAAIyD,EACO,CACHC,OAAO,QAIXC,QAAQC,MAAM,2DACT5J,EAAQ,GACT,kIAIZ,IAAIkI,EAAUlC,EAAI6D,MAAM,gHACpB1B,EAAQnC,EAAI6D,MAAM,0EAClBC,EAAS9D,EAAI6D,MAAM,4EACvB,OAAI3B,EACO,CACHA,QAASA,GAGRC,EACE,CACHA,MAAOA,GAGN2B,EACE,CACHA,OAAQA,QAFX,IAOb5O,EAAA,QAAkB8H,G,aCpSlB1H,OAAOC,eAAeL,EAAS,aAAc,CAAEM,OAAO,IACtDN,EAAQmI,IAAMnI,EAAQ6O,aAAU,EAyBhC,IAAIA,EAAyB,WACzB,SAASA,EAAQnK,GASb,OARA8B,KAAKsI,kBAAoB,CACrB,qBACA,2BACA,YACA,cAEJtI,KAAK9B,SAAW8B,KAAKuI,aAAarK,GAClC8B,KAAKwI,aAAexI,KAAKyI,cAClBzI,KA8UX,OA5UAqI,EAAQK,aAAe,WACnB,MAAO,uCAAuC1H,QAAQ,SAAS,SAAU2H,GACrE,IAAIrI,EAAqB,GAAhBiC,KAAKqG,SAAiB,EAC/B,OAD2C,KAALD,EAAWrI,EAAS,EAAJA,EAAW,GACxDuI,SAAS,QAG1BR,EAAQS,UAAUP,aAAe,SAAUrK,EAAU6K,GAEjD,YADgB,IAAZA,IAAsBA,EAAUC,UACZ,iBAAb9K,EACAA,GAEX6K,EAAUA,GAAWC,SAEV,MADF9K,EAAS+K,UAAU,EAAG,GAEpBF,EAAQG,cAAchL,GAGtB6K,EAAQI,iBAAiBjL,KAGxCmK,EAAQS,UAAUM,MAAQ,SAAUC,GAChC,OAAKrJ,KAAK9B,eAGmBoB,IAAzBU,KAAK9B,SAASmC,OACd,GAAGgF,QAAQyB,KAAK9G,KAAK9B,SAAUmL,GAG/BA,EAAKrJ,KAAK9B,SAAU,GAEjB8B,MARIA,MAUfqI,EAAQS,UAAUQ,oBAAsB,SAAU7P,EAAI8P,EAAazP,GAE/D,IAAI0P,EAAWD,EAAYvI,QAAQ,cAAc,SAAUf,EAAGwJ,GAC1D,OAAOA,EAAOpI,kBAEgC,IAA9CrB,KAAKsI,kBAAkBjB,QAAQmC,IAC/B/P,EAAGgK,MAAM+F,EAASvI,OAAO,GAAGC,cAAgBsI,EAASrI,MAAM,IAAMrH,EACjEL,EAAGgK,MAAM,SAAW+F,GAAY1P,EAChCL,EAAGgK,MAAM,MAAQ+F,GAAY1P,EAC7BL,EAAGgK,MAAM,KAAO+F,GAAY1P,EAC5BL,EAAGgK,MAAM,IAAM+F,GAAY1P,GAG3BL,EAAGgK,MAAM+F,GAAY1P,GAG7BuO,EAAQS,UAAUL,YAAc,WAC5B,OAAIzI,KAAK9B,eAAqCoB,IAAzBU,KAAK9B,SAASmC,OACxBL,KAAK9B,SAAS,GAGd8B,KAAK9B,UAGpBmK,EAAQS,UAAUY,eAAiB,SAAUC,EAAOC,GAChD,IAAIC,EAAiBD,EAAU/H,MAAM,KACrC,OAAO8H,EACF9H,MAAM,KACNiI,QAAO,SAAUC,GAAK,OAAOA,KAC7BC,OAAM,SAAUD,GACjB,OAAsC,IAA/BF,EAAexC,QAAQ0C,OAGtC1B,EAAQS,UAAU/H,KAAO,SAAUA,EAAMjH,GACrC,YAAcwF,IAAVxF,EACKkG,KAAKwI,aAGHxI,KAAKwI,aAAayB,aAAalJ,GAF3B,IAIff,KAAKoJ,OAAM,SAAU3P,GACjBA,EAAGyQ,aAAanJ,EAAMjH,MAEnBkG,OAEXqI,EAAQS,UAAU9F,KAAO,SAAU9E,GAC/B,OAAOyD,EAAI3B,KAAKuI,aAAarK,EAAU8B,KAAK9B,YAEhDmK,EAAQS,UAAU7F,MAAQ,WACtB,OAAIjD,KAAK9B,eAAqCoB,IAAzBU,KAAK9B,SAASmC,OACxBsB,EAAI3B,KAAK9B,SAAS,IAGlByD,EAAI3B,KAAK9B,WAGxBmK,EAAQS,UAAUqB,GAAK,SAAU7L,GAC7B,OAAOqD,EAAI3B,KAAK9B,SAASI,KAE7B+J,EAAQS,UAAUsB,OAAS,WACvB,OAAOzI,EAAI3B,KAAK9B,SAASmM,gBAE7BhC,EAAQS,UAAU5F,IAAM,WACpB,OAAOlD,KAAKyI,eAEhBJ,EAAQS,UAAUwB,WAAa,SAAUtD,GACrC,IAAI7B,EAAQ6B,EAAWnF,MAAM,KAI7B,OAHA7B,KAAKoJ,OAAM,SAAU3P,GACjB0L,EAAME,SAAQ,SAAUtE,GAAQ,OAAOtH,EAAG8Q,gBAAgBxJ,SAEvDf,MAEXqI,EAAQS,UAAU0B,KAAO,SAAUC,GAC/B,IAAKzK,KAAKwI,aACN,OAAOxI,KAEX,IAAI0K,EAAU1B,SAAS2B,cAAc,OAKrC,OAJAD,EAAQD,UAAYA,EACpBzK,KAAKwI,aAAaoC,WAAWC,aAAaH,EAAS1K,KAAKwI,cACxDxI,KAAKwI,aAAaoC,WAAWE,YAAY9K,KAAKwI,cAC9CkC,EAAQK,YAAY/K,KAAKwI,cAClBxI,MAEXqI,EAAQS,UAAU7M,SAAW,SAAU+O,GAUnC,YATmB,IAAfA,IAAyBA,EAAa,IAC1ChL,KAAKoJ,OAAM,SAAU3P,GAEjBuR,EAAWnJ,MAAM,KAAKwD,SAAQ,SAAUoF,GAChCA,GACAhR,EAAGwR,UAAUC,IAAIT,SAItBzK,MAEXqI,EAAQS,UAAUqC,YAAc,SAAUH,GAStC,OARAhL,KAAKoJ,OAAM,SAAU3P,GAEjBuR,EAAWnJ,MAAM,KAAKwD,SAAQ,SAAUoF,GAChCA,GACAhR,EAAGwR,UAAUG,OAAOX,SAIzBzK,MAEXqI,EAAQS,UAAUuC,SAAW,SAAUZ,GACnC,QAAKzK,KAAKwI,cAGHxI,KAAKwI,aAAayC,UAAUK,SAASb,IAEhDpC,EAAQS,UAAUyC,aAAe,SAAUC,GACvC,QAAKxL,KAAKwI,cAGHxI,KAAKwI,aAAa+C,aAAaC,IAE1CnD,EAAQS,UAAU2C,YAAc,SAAUhB,GACtC,OAAKzK,KAAKwI,cAGNxI,KAAKqL,SAASZ,GACdzK,KAAKmL,YAAYV,GAGjBzK,KAAK/D,SAASwO,GAEXzK,MARIA,MAUfqI,EAAQS,UAAU4C,IAAM,SAAUlC,EAAU1P,GACxC,IAAI6R,EAAQ3L,KAIZ,OAHAA,KAAKoJ,OAAM,SAAU3P,GACjBkS,EAAMrC,oBAAoB7P,EAAI+P,EAAU1P,MAErCkG,MAGXqI,EAAQS,UAAU8C,GAAK,SAAUC,EAAQC,GACrC,IAAIH,EAAQ3L,KACZ,OAAKA,KAAK9B,UAGV2N,EAAOhK,MAAM,KAAKwD,SAAQ,SAAUsE,GAC3BpJ,MAAMwL,QAAQ1D,EAAQ2D,eAAerC,MACtCtB,EAAQ2D,eAAerC,GAAS,IAEpCtB,EAAQ2D,eAAerC,GAAO9D,KAAKiG,GACnCH,EAAMzN,SAAS+N,iBAAiBtC,EAAM9H,MAAM,KAAK,GAAIiK,MAElD9L,MATIA,MAYfqI,EAAQS,UAAUoD,KAAO,SAAUvC,EAAOmC,GACtC,IAAIH,EAAQ3L,KAKZ,OAJAA,KAAK4L,GAAGjC,GAAO,WACXgC,EAAMQ,IAAIxC,GACVmC,EAASnC,MAEN3J,MAEXqI,EAAQS,UAAUqD,IAAM,SAAUxC,GAC9B,IAAIgC,EAAQ3L,KACZ,OAAKA,KAAK9B,UAGVtE,OAAOwL,KAAKiD,EAAQ2D,gBAAgB3G,SAAQ,SAAUuE,GAC9C+B,EAAMjC,eAAeC,EAAOC,KAC5BvB,EAAQ2D,eAAepC,GAAWvE,SAAQ,SAAUyG,GAChDH,EAAMzN,SAASkO,oBAAoBxC,EAAU/H,MAAM,KAAK,GAAIiK,MAEhEzD,EAAQ2D,eAAepC,GAAa,OAGrC5J,MAVIA,MAYfqI,EAAQS,UAAUuD,QAAU,SAAU1C,EAAO2C,GACzC,IAAKtM,KAAKwI,aACN,OAAOxI,KAEX,IAAIuM,EAAc,IAAIC,YAAY7C,EAAM9H,MAAM,KAAK,GAAI,CACnDyK,OAAQA,GAAU,OAGtB,OADAtM,KAAKwI,aAAaiE,cAAcF,GACzBvM,MAGXqI,EAAQS,UAAU4D,KAAO,SAAUC,GAC/B,IAAIhB,EAAQ3L,KAMZ,OALA4M,MAAMD,GACDE,MAAK,SAAUC,GAAO,OAAOA,EAAIC,UACjCF,MAAK,SAAUG,GAChBrB,EAAMzN,SAAS+O,UAAYD,KAExBhN,MAEXqI,EAAQS,UAAUkE,KAAO,SAAUA,GAC/B,YAAa1N,IAAT0N,EACKhN,KAAKwI,aAGHxI,KAAKwI,aAAayE,UAFd,IAIfjN,KAAKoJ,OAAM,SAAU3P,GACjBA,EAAGwT,UAAYD,KAEZhN,OAEXqI,EAAQS,UAAUoE,OAAS,SAAUF,GASjC,OARAhN,KAAKoJ,OAAM,SAAU3P,GACG,iBAATuT,EACPvT,EAAG0T,mBAAmB,YAAaH,GAGnCvT,EAAGsR,YAAYiC,MAGhBhN,MAEXqI,EAAQS,UAAUsE,QAAU,SAAUJ,GAIlC,OAHAhN,KAAKoJ,OAAM,SAAU3P,GACjBA,EAAG0T,mBAAmB,aAAcH,MAEjChN,MAEXqI,EAAQS,UAAUsC,OAAS,WAIvB,OAHApL,KAAKoJ,OAAM,SAAU3P,GACjBA,EAAGmR,WAAWE,YAAYrR,MAEvBuG,MAEXqI,EAAQS,UAAUuE,MAAQ,WAItB,OAHArN,KAAKoJ,OAAM,SAAU3P,GACjBA,EAAGwT,UAAY,MAEZjN,MAEXqI,EAAQS,UAAU1E,UAAY,SAAUA,GACpC,YAAkB9E,IAAd8E,GACA4E,SAASsE,KAAKlJ,UAAYA,EAC1B4E,SAASuE,gBAAgBnJ,UAAYA,EAC9BpE,MAGC+B,OAAOyL,aACXxE,SAASuE,gBAAgBnJ,WACzB4E,SAASsE,KAAKlJ,WACd,GAGZiE,EAAQS,UAAU9E,WAAa,SAAUA,GACrC,YAAmB1E,IAAf0E,GACAgF,SAASsE,KAAKtJ,WAAaA,EAC3BgF,SAASuE,gBAAgBvJ,WAAaA,EAC/BhE,MAGC+B,OAAO0L,aACXzE,SAASuE,gBAAgBvJ,YACzBgF,SAASsE,KAAKtJ,YACd,GAGZqE,EAAQS,UAAUnF,OAAS,WACvB,IAAK3D,KAAKwI,aACN,MAAO,CACH5E,KAAM,EACNhB,IAAK,GAGb,IAAI8K,EAAO1N,KAAKwI,aAAapF,wBACzBuK,EAAiBhM,EAAI,QAAQ8B,QAAQmK,WAEzC,MAAO,CACHhK,KAAM8J,EAAK9J,KAAOC,WAAW8J,GAAkB3N,KAAKgE,aACpDpB,IAAK8K,EAAK9K,IAAM5C,KAAKoE,cAG7BiE,EAAQS,UAAUrF,MAAQ,WACtB,OAAKzD,KAAKwI,aAGFxI,KAAKwI,aAAaqF,cACtB9L,OAAO+L,iBAAiB9N,KAAKwI,cAHtB,IAMfH,EAAQS,UAAU9M,MAAQ,WACtB,IAAIyH,EAAQzD,KAAKyD,QACjB,OAAQzD,KAAKwI,aAAauF,YACtBlK,WAAWJ,EAAMK,aACjBD,WAAWJ,EAAMuK,eAGzB3F,EAAQS,UAAU/M,OAAS,WACvB,IAAI0H,EAAQzD,KAAKyD,QACjB,OAAQzD,KAAKwI,aAAayF,aACtBpK,WAAWJ,EAAMS,YACjBL,WAAWJ,EAAMyK,gBAEzB7F,EAAQ2D,eAAiB,GAClB3D,EAxViB,GA2V5B,SAAS1G,EAAIzD,GAET,OApXA,WACI,GAAkC,mBAAvB6D,OAAOyK,YACd,OAAO,EAWXzK,OAAOyK,YAVP,SAAqB7C,EAAOwE,GACxBA,EAASA,GAAU,CACfC,SAAS,EACTC,YAAY,EACZ/B,OAAQ,MAEZ,IAAIgC,EAAMtF,SAASuF,YAAY,eAE/B,OADAD,EAAIE,gBAAgB7E,EAAOwE,EAAOC,QAASD,EAAOE,WAAYF,EAAO7B,QAC9DgC,GAXf,GAgBSG,QAAQ3F,UAAU4F,UACnBD,QAAQ3F,UAAU4F,QACdD,QAAQ3F,UAAU6F,mBACdF,QAAQ3F,UAAU8F,uBAiW3B,IAAIvG,EAAQnK,GAHvB1E,EAAQ6O,QAAUA,EAKlB7O,EAAQmI,IAAMA,G,qBCzXd,IAAIkN,EAAY7O,MAAQA,KAAK6O,UAAa,WAStC,OARAA,EAAWjV,OAAOkV,QAAU,SAASC,GACjC,IAAK,IAAI9O,EAAGC,EAAI,EAAG8O,EAAI5O,UAAUC,OAAQH,EAAI8O,EAAG9O,IAE5C,IAAK,IAAI+O,KADThP,EAAIG,UAAUF,GACOtG,OAAOkP,UAAUoG,eAAepI,KAAK7G,EAAGgP,KACzDF,EAAEE,GAAKhP,EAAEgP,IAEjB,OAAOF,GAEJF,EAASM,MAAMnP,KAAMI,YAEhCxG,OAAOC,eAAeL,EAAS,aAAc,CAAEM,OAAO,IACtDN,EAAQG,kBAAe,EACvB,IAAIyV,EAAc,EAAQ,MACtBC,EAAgB,EAAQ,MACxBC,EAAa,EAAQ,MACrBzO,EAAY,EAAQ,MAIpB0O,EAAO,EACP5V,EAA8B,WAC9B,SAASA,EAAa6V,EAAS9V,GAkB3B,GAjBAsG,KAAKyP,UAAW,EAChBzP,KAAK1B,MAAQ,EAEb0B,KAAKR,QAAU,GAEfQ,KAAK0P,YAAa,EAElB1P,KAAK2P,QAAS,EACd3P,KAAK4P,kBAAoB,GAEzB5P,KAAK6P,cAAgB,EACrB7P,KAAK8P,qBAAsB,EAC3B9P,KAAK+P,oBAAqB,EAC1B/P,KAAKgQ,uBAAyB,CAC1BpN,IAAK,EACLC,OAAQ,IAEP2M,EACD,OAAOxP,KASX,GAPAuP,IACAvP,KAAKuP,KAAOA,EACZvP,KAAKvG,GAAK+V,EACVxP,KAAK+C,KAAOlC,EAAUc,IAAI6N,GAC1BxP,KAAKiQ,iBAAiBvW,GACtBsG,KAAKkQ,eAEDlQ,KAAKmQ,SAASlR,cACcK,IAA5BU,KAAKmQ,SAASjR,YACbqB,MAAMwL,QAAQ/L,KAAKmQ,SAASjR,WAC7B,KAAM,uEAOV,OALAc,KAAKoQ,aAAepQ,KAAKqQ,WACzBrQ,KAAKsQ,oBAELtQ,KAAK/F,OACL+F,KAAKuQ,kBACEvQ,KA8vDX,OA5vDArG,EAAamP,UAAUmH,iBAAmB,SAAUvW,GAGhD,GADAsG,KAAKmQ,SAAWtB,EAASA,EAAS,GAAIQ,EAAc3T,0BAA2BhC,GAC3EsG,KAAKmQ,SAAS9Q,UACoB,mBAA3BW,KAAKmQ,SAAS9Q,SACnBW,KAAKmQ,SAAS9Q,WACdiQ,EAAWkB,QAAQnR,WAAY,CACjC,IAAIE,EAAiBsP,EAASA,EAAS,GAAI7O,KAAKmQ,SAAS5Q,gBAAiBS,KAAKmQ,SAAS5Q,gBACxFS,KAAKmQ,SAAWtB,EAASA,EAAS,GAAI7O,KAAKmQ,UAAW5Q,KAG9D5F,EAAamP,UAAUwH,kBAAoB,WACnCtQ,KAAKmQ,SAASzS,oBACdsC,KAAKmQ,SAASxS,kBAAmB,GAEhCqC,KAAKmQ,SAASlT,WACf+C,KAAKmQ,SAASjT,cAAe,GAGjC8C,KAAK1D,eAAiB0D,KAAKmQ,SAAS7T,eAGhC0D,KAAKmQ,SAASlR,UACde,KAAK1D,gBAAiB,GAErB0D,KAAKmQ,SAAS/T,YACf4D,KAAKmQ,SAAS/T,UAAY4M,SAASsE,MAGvCtN,KAAKmQ,SAASnS,QAAUuE,KAAKC,IAAIxC,KAAKmQ,SAASnS,QAASgC,KAAKoQ,aAAa/P,SAE9E1G,EAAamP,UAAU7O,KAAO,WAC1B,IAAI0R,EAAQ3L,KACZA,KAAKyQ,kBAAkBzQ,KAAKoQ,cAC5BpQ,KAAK0Q,iBACL1Q,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASE,KAAM,CACzC0W,SAAU3Q,OAEVA,KAAKmQ,SAAS3S,UACdwC,KAAKxC,WAEToT,YAAW,WACPjF,EAAM3M,aACN2M,EAAM5M,cACN4M,EAAMkF,uBACP,IACH7Q,KAAK8Q,QACD9Q,KAAKmQ,SAASvS,YACdoC,KAAKpC,aAEJoC,KAAKmQ,SAASlR,SACfe,KAAK+Q,0BAGbpX,EAAamP,UAAUiI,uBAAyB,WAkB5C,IAjBA,IAAIpF,EAAQ3L,KACRgR,EAAU,SAAU1S,GACpB,IAAIkR,EAAUyB,EAAOtK,MAAMrI,GACvB4S,EAAWrQ,EAAUc,IAAI6N,GAGzB2B,EAAOtQ,EAAUwH,QAAQK,eAC7BwI,EACKnQ,KAAK,aAAcoQ,GACnBvF,GAAG,uBAAyBuF,GAAM,SAAUpH,GAC7CA,EAAEqH,iBACF,IAAIC,EAAmB1F,EAAMwE,SAAS7R,OAASA,EAC/CqN,EAAM2F,YAAYD,EAAkB7B,OAGxCyB,EAASjR,KAEJ1B,EAAQ,EAAGA,EAAQ0B,KAAK2G,MAAMtG,OAAQ/B,IAC3C0S,EAAQ1S,IAShB3E,EAAamP,UAAUoH,aAAe,WAClC,IAAIvE,EAAQ3L,KACZA,KAAKmQ,SAAS3Q,QAAQ6F,SAAQ,SAAUkM,GACpC5F,EAAMnM,QAAQqG,KAAK,IAAI0L,EAAO5F,EAAO9K,EAAUc,UAGvDhI,EAAamP,UAAUyH,gBAAkB,WAChCvQ,KAAKmQ,SAASrU,WAGmB,uBAA7BkE,KAAKmQ,SAASrU,YACnBmM,QAAQuJ,KAAK,iBAAmBxR,KAAKmQ,SAASrU,WAAa,gDAH3DmM,QAAQC,MAAM,uCAMtBvO,EAAamP,UAAU2I,aAAe,SAAUnT,GAC5C,OAAOuC,EAAUc,IAAI3B,KAAK0R,eAAepT,KAE7C3E,EAAamP,UAAU4I,eAAiB,SAAUpT,GAC9C,MAAO,YAAc0B,KAAKuP,KAAO,IAAMjR,GAE3C3E,EAAamP,UAAU6I,UAAY,SAAUC,GACzC,OAAOA,EAAK,IAAM5R,KAAKuP,MAE3B5V,EAAamP,UAAU+I,eAAiB,SAAUD,GAC9C,OAAO/Q,EAAUc,IAAI,IAAM3B,KAAK2R,UAAUC,KAE9CjY,EAAamP,UAAUgJ,2BAA6B,WAC5C9R,KAAKoQ,aAAa/P,OAAS,EAC3BL,KAAK+R,MAAM9V,SAAS,kBAGpB+D,KAAK+R,MAAM5G,YAAY,mBAG/BxR,EAAamP,UAAU4H,eAAiB,WACpC,IAAI/E,EAAQ3L,KAEZ,KADgBA,KAAKgS,YAAchS,KAAKgS,WAAW9O,OACnD,CAGA,IAAIzF,EAAW,GACXwU,EAAc,GAEdjS,KAAKmQ,SAAS1S,WACdA,EAAW,6BAAkCuC,KAAK2R,UAAU,WAAa,iBAAqB3R,KAAKmQ,SAAS1Q,QAAuB,cAAI,8BAAmCO,KAAKmQ,SAAS9R,SAAW,yDAA8D2B,KAAK2R,UAAU,WAAa,iBAAqB3R,KAAKmQ,SAAS1Q,QAAmB,UAAI,8BAAmCO,KAAKmQ,SAAS/R,SAAW,cAEjX,aAAlC4B,KAAKmQ,SAASrS,kBACdmU,EACI,oEAER,IAAIC,EAAa,GACblS,KAAKmQ,SAASxT,oBAEduV,GAAc,qBAElB,IAAInV,EAAiBiD,KAAKmQ,SAASpT,eAC7B,oBAAsBiD,KAAKmQ,SAASpT,eAAiB,IACrD,GACFC,EAAkBgD,KAAKmQ,SAASnT,gBAC9B,qBAAuBgD,KAAKmQ,SAASnT,gBAAkB,IACvD,GACFmV,EAAqB,gBAAkBnS,KAAKmQ,SAASlU,SAAW,KAAO+M,SAASsE,OAAStN,KAAKmQ,SAAS/T,UAAY,YAAc,IACjIgW,EAAYpS,KAAKmQ,SAASlT,UAAY+C,KAAKmQ,SAAS/S,cAClD,qCAA0C4C,KAAKmQ,SAAS1Q,QAAsB,aAAI,SAAaO,KAAK2R,UAAU,YAAc,uCAC5H,GACFU,EAAerS,KAAKmQ,SAAS9S,iBAC3B,qCAA0C2C,KAAKmQ,SAAS1Q,QAAwB,eAAI,SAAaO,KAAK2R,UAAU,eAAiB,0CACjI,GACFW,EAAW,yBAA4BH,EAAqB,SAAanS,KAAK2R,UAAU,gBAAkB,qCAA4C5U,EAAiB,IAAMC,EAAkB,mDAAwDgD,KAAK2R,UAAU,eAAiB,wDAA8D3R,KAAK2R,UAAU,YAAc,uDAA2DO,EAAa,iCAAqClS,KAAK2R,UAAU,cAAgB,mDAAyD3R,KAAK2R,UAAU,YAAc,gEAAqElU,EAAW,oDAAuDuC,KAAK2R,UAAU,cAAgB,uDAA4DU,EAAe,yBAA2BD,EAAY,sDAA0F,cAAlCpS,KAAKmQ,SAASrS,gBACh7BmU,EACA,IAAM,8BAAiCjS,KAAK2R,UAAU,iBAAmB,kDAAyF,iBAAlC3R,KAAKmQ,SAASrS,gBAC9ImU,EACA,IAAM,yEACZpR,EAAUc,IAAI3B,KAAKmQ,SAAS/T,WAAW8Q,OAAOoF,GAC1CtJ,SAASsE,OAAStN,KAAKmQ,SAAS/T,WAChCyE,EAAUc,IAAI3B,KAAKmQ,SAAS/T,WAAWsP,IAAI,WAAY,YAE3D1L,KAAK+R,MAAQ/R,KAAK6R,eAAe,YACjC7R,KAAKuS,cAAgBvS,KAAK6R,eAAe,iBACzC7R,KAAKwS,UAAYxS,KAAK6R,eAAe,eACrC7R,KAAKgS,WAAahS,KAAK6R,eAAe,gBACtC7R,KAAKyS,OAASzS,KAAK6R,eAAe,YAClC7R,KAAK0S,SAAW1S,KAAK6R,eAAe,cACpC7R,KAAK2S,SAAW3S,KAAK6R,eAAe,cACpC7R,KAAKwS,UAAU9G,IAAI,sBAAuB1L,KAAKmQ,SAAShU,iBAAmB,MAC3E,IAAIyW,EAAkB5S,KAAKmQ,SAASxU,KAAO,IAC3CqE,KAAK8R,6BACD9R,KAAKmQ,SAASnR,aACd4T,GAAmB,YAEvB5S,KAAK+R,MAAM9V,SAAS2W,GACpB5S,KAAKyS,OAAO/G,IAAI,6BAA8B1L,KAAKmQ,SAASvU,QAC5DoE,KAAKyS,OAAO/G,IAAI,sBAAuB1L,KAAKmQ,SAAStU,MAAQ,MACzDmE,KAAKmQ,SAASxR,UACdqB,KAAK2S,SAASzF,OAAO,UAAalN,KAAK2R,UAAU,eAAiB,gDAAwD3R,KAAKmQ,SAAS1Q,QAAkB,SAAI,+CAElKO,KAAKpB,UACLiC,EAAUc,IAAII,QAAQ6J,GAAG,mBAAqB5L,KAAKuP,KAAO,+BAAiCvP,KAAKuP,MAAM,WAClG5D,EAAMkH,qBAEV7S,KAAK8S,WACL9S,KAAK+S,qBACL/S,KAAKL,iBACLK,KAAKgT,gBAETrZ,EAAamP,UAAU+J,gBAAkB,WACrC,GAAI7S,KAAKyP,SAAU,CACf,IACIwD,EADqBjT,KAAKoQ,aAAapQ,KAAK1B,OACN2U,iBAC1CjT,KAAKgQ,uBAAyBhQ,KAAKkT,4BACnC,IAAIC,EAAKnT,KAAKgQ,uBAAwBoD,EAAQD,EAAGvQ,IAAKC,EAASsQ,EAAGtQ,OAKlE,GAJA7C,KAAKqT,iBAAmB/D,EAAWkB,QAAQjP,QAAQvB,KAAK2G,MAAM3G,KAAK1B,OAAQ0B,KAAK+R,MAAOqB,EAAQvQ,EAAQoQ,GAAoBjT,KAAKmQ,SAASvT,cACrIqW,GACAjT,KAAKsT,iBAAiBtT,KAAK1B,MAAO0B,KAAKqT,kBAEvCrT,KAAK1D,iBAAmB0D,KAAK8P,oBAAqB,CAClD,IAAIyD,EAAWvT,KAAKwT,kBAAkBxT,KAAKqT,kBAC3CrT,KAAK+R,MACA/O,KAAK,6BACLC,QACAlC,KAAK,QAASwS,GAEvBvT,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASI,mBAG/CR,EAAamP,UAAUwK,iBAAmB,SAAUhV,EAAOwE,GACvD,IAAI2Q,EAAezT,KAAK0T,kBAAkB5Q,GACvB9C,KAAKyR,aAAanT,GACxB0E,KAAK,kBAAkBjC,KAAK,QAAS0S,IA4CtD9Z,EAAamP,UAAU1O,aAAe,SAAUuM,EAAOrI,GAOnD,GANI0B,KAAK1B,MAAQqI,EAAMtG,OAAS,IAC5BL,KAAK1B,MAAQqI,EAAMtG,OAAS,GAEX,IAAjBsG,EAAMtG,SACNL,KAAK1B,MAAQ,GAEZqI,EAAMtG,OAAX,CAIA,IAAIsT,EAAa3T,KAAKoQ,aAAa9R,GAAOgG,IAC1CtE,KAAKoQ,aAAezJ,EACpB3G,KAAK4T,iBACL5T,KAAKyS,OAAOpF,QACZrN,KAAK4P,kBAAoB,GACzB,IAAIiE,EAAS,EAEb7T,KAAKoQ,aAAa0D,MAAK,SAAUC,EAAaC,GAC1C,OAAID,EAAYzP,MAAQqP,IACpBE,EAASG,GACF,MAIfhU,KAAK4P,kBAAoB5P,KAAKiU,mBAAmBJ,GAAS,GAC1D7T,KAAKkU,YAAYL,GAAQ,GACzB7T,KAAKyR,aAAaoC,GAAQ5X,SAAS,cACnC+D,KAAK1B,MAAQuV,EACb7T,KAAKmU,qBAAqBN,GAC1B7T,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASK,mBAtBnC4F,KAAKN,gBAyBb/F,EAAamP,UAAUuH,SAAW,WAG9B,GADArQ,KAAK2G,MAAQ,GACR3G,KAAKmQ,SAASlR,QA0Bf,OAAOe,KAAKmQ,SAASjR,WAAa,GAzBlC,GAA+B,SAA3Bc,KAAKmQ,SAASjS,SACd8B,KAAK2G,MAAMd,KAAK7F,KAAKvG,SAEpB,GAAIuG,KAAKmQ,SAASjS,SACnB,GAAsC,iBAA3B8B,KAAKmQ,SAASjS,SACrB,GAAI8B,KAAKmQ,SAAShS,aAAc,CAC5B,IAAIA,EAAe0C,EAAUc,IAAI3B,KAAKmQ,SAAShS,cAC/C6B,KAAK2G,MAAQxI,EACR6E,KAAKhD,KAAKmQ,SAASjS,UACnBgF,WAGLlD,KAAK2G,MAAQ3G,KAAKvG,GAAG0P,iBAAiBnJ,KAAKmQ,SAASjS,eAIxD8B,KAAK2G,MAAQ3G,KAAKmQ,SAASjS,cAI/B8B,KAAK2G,MAAQ3G,KAAKvG,GAAG2a,SAEzB,OAAO9E,EAAWkB,QAAQ9J,kBAAkB1G,KAAK2G,MAAO3G,KAAKmQ,SAAShR,WAAYa,KAAKmQ,SAAStS,yBAA0BmC,KAAKmQ,SAAS/Q,eAkChJzF,EAAamP,UAAUwI,YAAc,SAAUhT,EAAOkR,GAClD,IAAI7D,EAAQ3L,KAGZ,QAFc,IAAV1B,IAAoBA,EAAQ0B,KAAKmQ,SAAS7R,QAE1C0B,KAAKyP,SAAT,CAEAzP,KAAKyP,UAAW,EAChBzP,KAAK+R,MAAM7O,MAAMmR,QACjBrU,KAAK+R,MAAM5G,YAAY,iBAEvBnL,KAAKgS,WAAW/V,SAAS,WACzB,IAAIqY,EAAyBtU,KAAKuU,0BAA0BjW,EAAOA,GACnE0B,KAAK4P,kBAAoB0E,EACzB,IAAI3N,EAAQ,GACZ2N,EAAuBjP,SAAQ,SAAU0B,GACrCJ,EAAQA,EAAS,YAAeI,EAAO,8BAE3C/G,KAAKyS,OAAOvF,OAAOvG,GACnB3G,KAAKwU,QAAQlW,GACb,IAAImW,EAAY,GAChBzU,KAAKgQ,uBAAyBhQ,KAAKkT,4BACnC,IAAIC,EAAKnT,KAAKgQ,uBAAwBpN,EAAMuQ,EAAGvQ,IAAKC,EAASsQ,EAAGtQ,OAC3D7C,KAAKmQ,SAASxT,mBACfqD,KAAK0U,0BAA0B9R,EAAKC,GAExC,IAAIoQ,EAAmBjT,KAAKoQ,aAAa9R,GAAO2U,iBAC5CjT,KAAK1D,gBAAkBkT,IACvBxP,KAAKqT,iBAAmB/D,EAAWkB,QAAQjP,QAAQiO,EAASxP,KAAK+R,MAAOnP,EAAMC,EAAQoQ,GAAoBjT,KAAKmQ,SAASvT,cACxH6X,EAAYnF,EAAWkB,QAAQ7N,aAAa6M,EAASxP,KAAK+R,MAAOnP,EAAKC,EAAQ7C,KAAKqT,mBAElFrT,KAAK1D,gBAAmBmY,IACzBzU,KAAK+R,MAAM9V,SAAS+D,KAAKmQ,SAASjU,YAClC8D,KAAKyR,aAAanT,GAAO6M,YAAY,gBAEzC,IAAIwJ,EAAU3U,KAAKmQ,SAAS7T,eACtB,IACA0D,KAAKmQ,SAAShU,iBACpByU,YAAW,WACPjF,EAAMoG,MAAM9V,SAAS,wBACtB0Y,GACH3U,KAAK1B,MAAQA,EACb0B,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASO,YAEvC0F,KAAKyR,aAAanT,GAAOrC,SAAS,cAClC+D,KAAK0P,YAAa,EAElB1P,KAAK6P,cAAgBhP,EAAUc,IAAII,QAAQqC,YAC3CwM,YAAW,WAGP,GAAIjF,EAAMrP,gBAAkBmY,EAAW,CACnC,IAAIG,EAAiBjJ,EAAM8F,aAAanT,GACxCsW,EAAelJ,IAAI,YAAa+I,GAChC7D,YAAW,WACPgE,EACK3Y,SAAS,2CACTyP,IAAI,sBAAuBC,EAAMwE,SAAS9T,uBAAyB,MACxEsP,EAAMoG,MAAM9V,SAAS,yBAEzB2U,YAAW,WACPgE,EAAelJ,IAAI,YAAa,0BACjC,KAEPkF,YAAW,WACPjF,EAAM6G,UAAUvW,SAAS,MACzB0P,EAAMqG,WAAW/V,SAAS,gBAC3B,IAEE0P,EAAMrP,gBAAmBmY,GAC1B7D,YAAW,WACPjF,EAAMoG,MAAM9V,SAAS,gBACtB0P,EAAMwE,SAAShU,kBAGtBwP,EAAMkJ,MAAMvW,GAAO,GAAO,GAAO,GACjCqN,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASQ,cAExCyO,SAASsE,OAAStN,KAAKmQ,SAAS/T,WAChCyE,EAAUc,IAAI,QAAQ1F,SAAS,WASvCtC,EAAamP,UAAUoK,0BAA4B,WAC/C,GAAIlT,KAAKmQ,SAASxT,kBACd,MAAO,CACHiG,IAAK,EACLC,OAAQ,GAGhB,IAAID,EAAM5C,KAAK2S,SAASzP,MAAM+K,cAAgB,EAC1CvG,EAAU1H,KAAK+R,MAAM/O,KAAK,+BAA+BE,MACzD4R,EAAgB9U,KAAKmQ,SAASrT,sBAC7B4K,GAAWA,EAAQuG,cACpB,EACA8G,EAAiB/U,KAAK+R,MAAM/O,KAAK,mBAAmBE,MAGxD,MAAO,CACHN,IAAKA,EACLC,QAJckS,EAAiBA,EAAe9G,aAAe,GACtC6G,IAM/Bnb,EAAamP,UAAU4L,0BAA4B,SAAU9R,EAAKC,QAClD,IAARD,IAAkBA,EAAM,QACb,IAAXC,IAAqBA,EAAS,GAClC7C,KAAK0S,SAAShH,IAAI,MAAO9I,EAAM,MAAM8I,IAAI,SAAU7I,EAAS,OAEhElJ,EAAamP,UAAUgK,SAAW,WAC9B,IAAInH,EAAQ3L,KAEZ4Q,YAAW,WACPjF,EAAMoG,MAAM5G,YAAY,iBACpBQ,EAAMwE,SAAS5T,cAAgB,IAC/BoP,EAAMoG,MAAMnG,GAAG,uCAAuC,WAClDD,EAAMoG,MAAM5G,YAAY,iBACxB6J,aAAarJ,EAAMsJ,gBAEnBtJ,EAAMsJ,eAAiBrE,YAAW,WAC9BjF,EAAMoG,MAAM9V,SAAS,mBACtB0P,EAAMwE,SAAS5T,kBAEtBoP,EAAMoG,MAAM1F,QAAQ,mBAEzBrM,KAAKmQ,SAAS3T,gBAErB7C,EAAamP,UAAUoM,gBAAkB,SAAUC,GAC/C,GAAInV,KAAKmQ,SAASzT,qBACd,IACI0Y,YAAY,CACRC,SAAU,CAACF,EAAKjS,SAGxB,MAAO6G,GACH9B,QAAQuJ,KAAK,wJAQzB7X,EAAamP,UAAUlK,QAAU,WAC7B,GAAIoB,KAAKmQ,SAASvR,QAAS,CACvB,IAAI0W,EAAc,wFAAiGtV,KAAK2R,UAAU,sBAAwB,iCAAsC3R,KAAK1B,MAAQ,GAAK,yCAA4C0B,KAAK2R,UAAU,kBAAoB,4BAAiC3R,KAAKoQ,aAAa/P,OAAS,iBAC7VL,KAAK+R,MAAM/O,KAAKhD,KAAKmQ,SAAStR,iBAAiBqO,OAAOoI,KAO9D3b,EAAamP,UAAU0L,QAAU,SAAUlW,GACvC,IAAIoJ,EACA6N,EAOJ,GANIvV,KAAKoQ,aAAa9R,GAAOiX,WACzBA,EAAavV,KAAKoQ,aAAa9R,GAAOiX,WAGtC7N,EAAU1H,KAAKoQ,aAAa9R,GAAOoJ,SAElC6N,EACD,GAAI7N,EAAS,CAGT,IAAI8N,EAAK9N,EAAQuB,UAAU,EAAG,GACnB,MAAPuM,GAAqB,MAAPA,IAGV9N,EAFA1H,KAAKmQ,SAASpS,0BACbiC,KAAKmQ,SAASlR,QACL4B,EAAUc,IAAI3B,KAAK2G,OACxBwD,GAAG7L,GACH0E,KAAK0E,GACLzE,QACA+J,OAGKnM,EAAUc,IAAI+F,GAASzE,QAAQ+J,aAKjDtF,EAAU,GAGlB,GAAsC,aAAlC1H,KAAKmQ,SAASrS,gBACVyX,EACAvV,KAAK+R,MAAM/O,KAAK,gBAAgB0J,KAAK6I,GAGrCvV,KAAK+R,MAAM/O,KAAK,gBAAgBgK,KAAKtF,OAGxC,CACD,IAAI+N,EAAe5U,EAAUc,IAAI3B,KAAK0R,eAAepT,IACjDiX,EACAE,EAAa/I,KAAK6I,GAGlBE,EAAavI,OAAO,4BAAgCxF,EAAU,UAIlE,MAAOA,IACS,KAAZA,EACA1H,KAAK+R,MACA/O,KAAKhD,KAAKmQ,SAASrS,iBACnB7B,SAAS,iBAGd+D,KAAK+R,MACA/O,KAAKhD,KAAKmQ,SAASrS,iBACnBqN,YAAY,kBAGzBnL,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASM,mBAAoB,CACvDiE,MAAOA,KAQf3E,EAAamP,UAAU9K,QAAU,SAAUM,GACvC,IAAK,IAAI4B,EAAI,EAAGA,GAAKF,KAAKmQ,SAASnS,WAC3BkC,GAAKF,KAAKoQ,aAAa/P,OAAS/B,GADI4B,IAIxCF,KAAKkU,YAAY5V,EAAQ4B,GAAG,GAEhC,IAAK,IAAIQ,EAAI,EAAGA,GAAKV,KAAKmQ,SAASnS,WAC3BM,EAAQoC,EAAI,GADwBA,IAIxCV,KAAKkU,YAAY5V,EAAQoC,GAAG,IAGpC/G,EAAamP,UAAU0K,kBAAoB,SAAU1Q,GACjD,OAAKA,EAEE,SAAWA,EAAU9G,MAAQ,sCAAwC8G,EAAU9G,MAAQ,EAAI,qCAAuC8G,EAAU/G,OAAS,EAAI,+BAAiC+G,EAAU/G,OAAS,KADzM,IAGfpC,EAAamP,UAAU4K,kBAAoB,SAAU5Q,GACjD,OAAKA,EAEE,SAAWA,EAAU9G,MAAQ,+BAAiC8G,EAAU/G,OAAS,KAD7E,IAGfpC,EAAamP,UAAU4M,qBAAuB,SAAUC,EAAerX,EAAOiJ,GAC1E,IAAIqO,EAIJ,GAHK5V,KAAKmQ,SAASlR,UACf2W,EAAe/U,EAAUc,IAAI3B,KAAK2G,OAAOwD,GAAG7L,IAE5CsX,EAAc,CACd,IAAIC,OAAe,EAOnB,KAFIA,EAJC7V,KAAKmQ,SAAS/Q,aAIAwW,EAAa7U,KAAKf,KAAKmQ,SAAS/Q,cAHhCwW,EAAa5S,KAAK,OAAOC,QAAQlC,KAAK,QAMrD,MAAO,GACX,IACI+U,EAAkB,QAAUvO,EAAM,WADvBvH,KAAKwT,kBAAkBxT,KAAKqT,kBACoB,+BAAqCwC,EAAe,OAGnH,OAFAF,EAAc1Z,SAAS,kBACvB+D,KAAK+R,MAAM9V,SAAS,0BACb6Z,EAEX,MAAO,IAEXnc,EAAamP,UAAUiN,aAAe,SAAUzR,EAAKqR,EAAerX,GAChE,IAAI0X,EAAqBhW,KAAKoQ,aAAa9R,GACvCiJ,EAAMyO,EAAmBzO,IAAK7C,EAASsR,EAAmBtR,OAAQC,EAAQqR,EAAmBrR,MAAOC,EAAUoR,EAAmBpR,QAIjIH,EAAU8C,EAAM,QAAUA,EAAM,IAAM,GAOtC1C,EAAY,kCANZ7E,KAAKiW,gCACQjW,KAAK0V,qBAAqBC,EAAerX,EAAOmG,GAGhD6K,EAAWkB,QAAQhM,aAAalG,EAAOgG,EAAKG,EAASC,EAAQC,EAAOC,IAEnB,aAClE+Q,EAAcvI,QAAQvI,IAE1BlL,EAAamP,UAAUoN,kBAAoB,SAAUC,EAAQC,EAA2BC,EAAQC,GAC5F,IAAIC,EAAcJ,EAAOnT,KAAK,cAAcC,QACxCqM,EAAWkB,QAAQ1K,cAAcyQ,EAAYrT,QAC7CkT,EACAC,KAGAE,EAAY3K,GAAG,oBAAoB,WAC/ByK,GAAUA,OAEdE,EAAY3K,GAAG,YAAY,WACvB0K,GAAWA,SAYvB3c,EAAamP,UAAU0N,eAAiB,SAAUf,EAAcnX,EAAOmY,EAAO5a,EAAO6a,EAAcN,GAC/F,IAAIzK,EAAQ3L,KACZA,KAAKkW,kBAAkBT,EAAcW,GAA2B,WAC5DzK,EAAMgL,qBAAqBlB,EAAcnX,EAAOmY,EAAO5a,EAAO6a,MAC/D,WACCjB,EAAaxZ,SAAS,4BACtBwZ,EAAazI,KAAK,2EAG1BrT,EAAamP,UAAU6N,qBAAuB,SAAUhB,EAAerX,EAAOmY,EAAO5a,EAAO6a,GACxF,IAAI/K,EAAQ3L,KACRgW,EAAqBhW,KAAKoQ,aAAa9R,GAGvCsY,EAASF,GACiC,UAA1C1W,KAAK6W,aAAab,KACjBA,EAAmBc,OAClBjb,EACA,EACN+U,YAAW,WACP+E,EAAc1Z,SAAS,4BACvB0P,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASS,cAAe,CACnD8D,MAAOA,EACPmY,MAAOA,GAAS,EAChBC,aAAcA,MAEnBE,IAEPjd,EAAamP,UAAUmN,8BAAgC,WACnD,QAAWjW,KAAK0P,aACZ1P,KAAK1D,iBACL0D,KAAKqT,mBAGb1Z,EAAamP,UAAU2H,kBAAoB,SAAU9J,GACjD,IAAIgF,EAAQ3L,KACZ2G,EAAMtB,SAAQ,SAAUmK,EAASlR,GAC7BkR,EAAQyD,iBAAmB3D,EAAWkB,QAAQ1I,QAAQ0H,EAAQlL,MAAOkL,EAAQuH,MAAOzY,GAChFkR,EAAQyD,kBACRtH,EAAMwE,SAAStT,oBACd2S,EAAQsH,QACTtH,EAAQyD,iBAAiBzM,UACzBgJ,EAAQsH,OAAS,wBAA0BtH,EAAQyD,iBAAiBzM,QAAQ,GAAK,0BAU7F7M,EAAamP,UAAUoL,YAAc,SAAU5V,EAAO0Y,GAClD,IAAIrL,EAAQ3L,KACRgW,EAAqBhW,KAAKoQ,aAAa9R,GACvCqX,EAAgB9U,EAAUc,IAAI3B,KAAK0R,eAAepT,IAClDwY,EAASd,EAAmBc,OAAQpS,EAASsR,EAAmBtR,OAAQC,EAAQqR,EAAmBrR,MAAOC,EAAUoR,EAAmBpR,QACvIN,EAAM0R,EAAmB1R,IACzByS,EAAQf,EAAmBe,MAC3BE,EAAcF,GAA0B,iBAAVA,EAAqBhS,KAAKC,MAAM+R,GAASA,EAC3E,GAAIf,EAAmBkB,WAAY,CAC/B,IAAIC,EAAYnB,EAAmBkB,WAAWrV,MAAM,KACpDyC,EAAMgL,EAAWkB,QAAQjL,iBAAiB4R,IAAc7S,EAE5D,IAAI8S,EAAYpB,EAAmB/C,iBAC/BQ,EAAe,GACf4D,IAAWrB,EAAmBqB,OAC9BX,GAAgB1W,KAAK0P,WAErB+G,EAAQ,EASZ,GARIC,IAEID,EADAzW,KAAK1D,gBAAkB0D,KAAKqT,iBACpBrT,KAAKmQ,SAAS9T,uBAAyB,GAGvC2D,KAAKmQ,SAAShU,iBAAmB,KAG5CwZ,EAActK,SAAS,aAAc,CACtC,GAAI+L,EAAW,CACX,IAAIjE,EAAKnT,KAAKgQ,uBAAwBsH,EAAQnE,EAAGvQ,IAAKC,EAASsQ,EAAGtQ,OAC9D0U,EAAYjI,EAAWkB,QAAQjP,QAAQvB,KAAK2G,MAAMrI,GAAQ0B,KAAK+R,MAAOuF,EAAQzU,EAAQuU,GAAapX,KAAKmQ,SAASvT,cACrH6W,EAAezT,KAAK0T,kBAAkB6D,GAE1C,GAAIF,EAAQ,CACR,IAAIG,EAASlI,EAAWkB,QAAQnM,gBAAgBrE,KAAKmQ,SAAS5R,YAAayB,KAAKmQ,SAAS3R,aAAcwB,KAAKmQ,SAAS1R,eAAgBuB,KAAKmQ,SAASzR,gBAAiB4F,EAAK0R,EAAmBzR,aAC5LoR,EAAcvI,QAAQoK,QAErB,GAAIV,EAAQ,CACb,IAAI1Q,EAAW,GACSsQ,GACpB1W,KAAK1D,gBACL0D,KAAKqT,mBAELjN,EAAWpG,KAAK0V,qBAAqBC,EAAerX,EAAO,KAE3DkZ,EAASlI,EAAWkB,QAAQtK,qBAAqB4Q,EAAQ1Q,GAAY,GAAIqN,EAAczT,KAAKmQ,SAAS1Q,QAAmB,UAAG2X,GAC/HzB,EAAcvI,QAAQoK,QAErB,GAAIJ,EAAW,CACZI,EAAS,sCAA2C/D,EAAe,WACvEkC,EAAcvI,QAAQoK,QAItB,GADAxX,KAAK+V,aAAazR,EAAKqR,EAAerX,GAClCoG,GAAUE,EAAS,CACnB,IAAIuQ,EAAOQ,EAAc3S,KAAK,cAC9BhD,KAAKkV,gBAAgBC,IAGzB2B,GAAUM,IACVpX,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASG,SAAU,CAC7CoE,MAAOA,EACPgG,IAAKA,EACLmT,WAAYR,EACZS,YAAaZ,IAGrB9W,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASC,iBAAkB,CAAEsE,MAAOA,IAC9D0B,KAAK0P,YAC6B,aAAlC1P,KAAKmQ,SAASrS,iBACdkC,KAAKwU,QAAQlW,GAIrB,IAAIsY,EAAS,EAGTH,IAAU5V,EAAUc,IAAIqH,SAASsE,MAAMjC,SAAS,kBAChDuL,EAASH,GAGTzW,KAAKiW,kCACLrF,YAAW,WACP+E,EACKxK,YAAY,2CACZb,WAAW,WACjBtK,KAAKmQ,SAAS9T,uBAAyB,KACrCsZ,EAActK,SAAS,cACxBuF,YAAW,WACP,GAA+C,UAA3CjF,EAAMkL,aAAab,KACnBL,EACK3S,KAAK,gBACLkK,OAAOoC,EAAWkB,QAAQhM,aAAalG,EAAOgG,EAAK,GAAII,EAAQC,EAAOqR,EAAmBpR,UAC1FF,GAAUE,GAAS,CACnB,IAAIuQ,EAAOQ,EAAc3S,KAAK,cAC9B2I,EAAMuJ,gBAAgBC,IAGiB,UAA3CxJ,EAAMkL,aAAab,IACyB,UAA3CrK,EAAMkL,aAAab,IAChBc,KACJnL,EAAM6K,eAAeb,EAAerX,EAAOmY,EAAOG,GAAQ,GAAM,GAEhEjL,EAAMuK,kBAAkBP,KAAkByB,IAAaA,EAAUpP,OAAU8O,IAAS,WAChFnL,EAAMgM,4BAA4BrZ,EAAOqX,EAAeiB,MACzD,WACCjL,EAAMgM,4BAA4BrZ,EAAOqX,EAAeiB,SAGjE5W,KAAKmQ,SAAS9T,uBAAyB,MAIlDsZ,EAAc1Z,SAAS,aAClB+D,KAAKiW,kCACqC,UAA1CjW,KAAK6W,aAAab,IAAoCc,IACvD9W,KAAKwW,eAAeb,EAAerX,EAAOmY,EAAOG,EAAQF,KAAiBU,IAAaA,EAAUpP,OAAU8O,IAGzG9W,KAAK1D,gBAAmB0D,KAAKqT,mBAC/BsC,EAActK,SAAS,iBACtBrL,KAAK0P,YACNkB,YAAW,WACP+E,EAAc1Z,SAAS,iBACxB+D,KAAKmQ,SAAShU,kBAIrB6D,KAAK0P,YAAa,GACN,IAARsH,IACKrB,EAActK,SAAS,gBASxBrL,KAAKhC,QAAQM,GARbqX,EACK3S,KAAK,cACLC,QACA2I,GAAG,oBAAoB,WACxBD,EAAM3N,QAAQM,QAe9B3E,EAAamP,UAAU6O,4BAA8B,SAAUrZ,EAAOqX,EAAe9Z,GACjF,IAAI8P,EAAQ3L,KACZ4Q,YAAW,WACP+E,EAAc3S,KAAK,iBAAiBoI,SACpCuK,EAAcxK,YAAY,kBAC1BQ,EAAMoG,MAAM5G,YAAY,0BACxBQ,EAAMmE,qBAAsB,EAC5BnE,EAAM3N,QAAQM,KACfzC,EAAQ,MAEflC,EAAamP,UAAUyL,0BAA4B,SAAUjW,EAAOsZ,EAAWC,GAC3E,IAAIlM,EAAQ3L,UACU,IAAlB6X,IAA4BA,EAAgB,GAChD,IAAIvD,EAAyB,GAEzBwD,EAAwBvV,KAAKwV,IAAIF,EAAe,GACpDC,EAAwBvV,KAAKC,IAAIsV,EAAuB9X,KAAKoQ,aAAa/P,QAC1E,IAAI2X,EAAgB,WAAahY,KAAKuP,KAAO,IAAMqI,EACnD,GAAI5X,KAAKoQ,aAAa/P,QAAU,EAI5B,OAHAL,KAAKoQ,aAAa/K,SAAQ,SAAU4S,EAAU3Z,GAC1CgW,EAAuBzO,KAAK,WAAa8F,EAAM4D,KAAO,IAAMjR,MAEzDgW,EAEX,GAAIhW,GAAS0B,KAAKoQ,aAAa/P,OAAS,GAAK,EAAG,CAC5C,IAAK,IAAI6X,EAAM5Z,EAAO4Z,EAAM5Z,EAAQwZ,EAAwB,GAAKI,GAAO,EAAGA,IACvE5D,EAAuBzO,KAAK,WAAa7F,KAAKuP,KAAO,IAAM2I,GAE/D,IAAIC,EAAwB7D,EAAuBjU,OACnD,IAAS6X,EAAM,EAAGA,EAAMJ,EAAwBK,EAAuBD,IACnE5D,EAAuBzO,KAAK,WAAa7F,KAAKuP,KAAO,KAAOjR,EAAQ4Z,EAAM,QAG7E,CACD,IAASA,EAAM5Z,EAAO4Z,GAAOlY,KAAKoQ,aAAa/P,OAAS,GACpD6X,EAAM5Z,EAAQwZ,EAAwB,EAAGI,IACzC5D,EAAuBzO,KAAK,WAAa7F,KAAKuP,KAAO,IAAM2I,GAG/D,IADIC,EAAwB7D,EAAuBjU,OAC1C6X,EAAM,EAAGA,EAAMJ,EAAwBK,EAAuBD,IACnE5D,EAAuBzO,KAAK,WAAa7F,KAAKuP,KAAO,KAAOjR,EAAQ4Z,EAAM,IAclF,OAXIlY,KAAKmQ,SAAS7S,OACVgB,IAAU0B,KAAKoQ,aAAa/P,OAAS,EACrCiU,EAAuBzO,KAAK,WAAa7F,KAAKuP,KAAlB,MAEb,IAAVjR,GACLgW,EAAuBzO,KAAK,WAAa7F,KAAKuP,KAAO,KAAOvP,KAAKoQ,aAAa/P,OAAS,MAGxC,IAAnDiU,EAAuBjN,QAAQ2Q,IAC/B1D,EAAuBzO,KAAK,WAAa7F,KAAKuP,KAAO,IAAMqI,GAExDtD,GAEX3a,EAAamP,UAAUmL,mBAAqB,SAAU3V,EAAOsZ,GACzD,IAAIjM,EAAQ3L,KACRsU,EAAyBtU,KAAKuU,0BAA0BjW,EAAOsZ,EAAW5X,KAAKmQ,SAASlS,yBAW5F,OAVAqW,EAAuBjP,SAAQ,SAAU0B,IACU,IAA3C4E,EAAMiE,kBAAkBvI,QAAQN,IAChC4E,EAAM8G,OAAOvF,OAAO,YAAenG,EAAO,+BAGlD/G,KAAK4P,kBAAkBvK,SAAQ,SAAU0B,IACS,IAA1CuN,EAAuBjN,QAAQN,IAC/BlG,EAAUc,IAAI,IAAMoF,GAAMqE,YAG3BkJ,GAKX3a,EAAamP,UAAUsP,sBAAwB,WAC3C,IAAIR,EAAY,EAChB,IACI,IAAIS,EAAgBrY,KAAK+R,MACpB/O,KAAK,eACLC,QACAlC,KAAK,MACV6W,EAAY1V,SAASmW,EAAcxW,MAAM,KAAK,KAAO,EAEzD,MAAOqG,GACH0P,EAAY,EAEhB,OAAOA,GAEXje,EAAamP,UAAUwP,iBAAmB,SAAUha,GAChD,GAAI0B,KAAKmQ,SAASxR,SAAU,CACxB,IAAIqX,EAAqBhW,KAAKoQ,aAAa9R,GAG3C,IAFyD,IAAnC0X,EAAmBuC,aACF,UAAnCvC,EAAmBuC,YAEnBvY,KAAK+R,MAAM9V,SAAS,wBAEnB,CACD,IAAIuc,EAAYxY,KAAK6R,eAAe,eACpC7R,KAAK+R,MAAM5G,YAAY,oBACvBqN,EAAUzX,KAAK,OAAQiV,EAAmBuC,aACtCvC,EAAmB1R,KACnB0R,EAAmBrX,UACnB6Z,EAAUzX,KAAK,WAAYiV,EAAmBrX,aAK9DhF,EAAamP,UAAU2P,mBAAqB,SAAUC,EAAWC,EAAkBC,GAC/E,IAAIjN,EAAQ3L,KACRA,KAAK0P,YACLkJ,EAAkB3c,SAAS,qBAE/B2U,YAAW,WAEPjF,EAAMoG,MAAM9V,SAAS,eACrB0P,EAAMoG,MACD/O,KAAK,YACLmI,YAAY,+BACC,SAAduN,GAEAC,EAAiB1c,SAAS,iBAC1B2c,EAAkB3c,SAAS,mBAI3B0c,EAAiB1c,SAAS,iBAC1B2c,EAAkB3c,SAAS,kBAG/B2U,YAAW,WACPjF,EAAMoG,MAAM/O,KAAK,YAAYmI,YAAY,cACzCwN,EAAiB1c,SAAS,cAE1B0P,EAAMoG,MAAM5G,YAAY,iBACzB,MACJnL,KAAK0P,WAAa1P,KAAKmQ,SAAS1T,WAAa,IAepD9C,EAAamP,UAAU+L,MAAQ,SAAUvW,EAAOua,EAAWC,EAAWJ,GAClE,IAAI/M,EAAQ3L,KACR4X,EAAY5X,KAAKoY,wBAGrB,GAFApY,KAAK4P,kBAAoB5P,KAAKiU,mBAAmB3V,EAAOsZ,IAEpD5X,KAAK0P,YAAckI,IAActZ,EAArC,CAGA,IAAIya,EAAuB/Y,KAAKoQ,aAAa/P,OAC7C,IAAKL,KAAK2P,OAAQ,CACV3P,KAAKmQ,SAASvR,SACdoB,KAAKmU,qBAAqB7V,GAE9B,IAAIqa,EAAmB3Y,KAAKyR,aAAanT,GACrC0a,EAAsBhZ,KAAKyR,aAAamG,GACxC5B,EAAqBhW,KAAKoQ,aAAa9R,GACvC8Y,EAAYpB,EAAmB/C,iBAGnC,GAFAjT,KAAK+R,MAAMhR,KAAK,qBAAsBf,KAAK6W,aAAab,IACxDhW,KAAKsY,iBAAiBha,GAClB8Y,EAAW,CACX,IAAIjE,EAAKnT,KAAKgQ,uBAAwBiJ,EAAQ9F,EAAGvQ,IAAKC,EAASsQ,EAAGtQ,OAC9D0U,EAAYjI,EAAWkB,QAAQjP,QAAQvB,KAAK2G,MAAMrI,GAAQ0B,KAAK+R,MAAOkH,EAAQpW,EAAQuU,GAAapX,KAAKmQ,SAASvT,cACrHoD,KAAKsT,iBAAiBhV,EAAOiZ,GAmBjC,GAjBAvX,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASU,YAAa,CAChDmd,UAAWA,EACXtZ,MAAOA,EACPua,YAAaA,EACbC,YAAaA,IAEjB9Y,KAAK2P,QAAS,EACdqF,aAAahV,KAAKiV,gBAClBjV,KAAKkZ,aAAa5a,GACboa,IACGpa,EAAQsZ,EACRc,EAAY,OAEPpa,EAAQsZ,IACbc,EAAY,SAGfG,EAGA,CACD7Y,KAAK+R,MACA/O,KAAK,YACLmI,YAAY,0CACjB,IAAIgO,OAAY,EACZC,OAAY,EACZL,EAAuB,GACvBI,EAAY7a,EAAQ,EACpB8a,EAAY9a,EAAQ,GACN,IAAVA,GAAesZ,IAAcmB,EAAuB,GAK/Cza,IAAUya,EAAuB,GACxB,IAAdnB,KAJAwB,EAAY,EACZD,EAAYJ,EAAuB,KAUvCI,EAAY,EACZC,EAAY,GAEE,SAAdV,EACA1Y,KAAKyR,aAAa2H,GAAWnd,SAAS,iBAGtC+D,KAAKyR,aAAa0H,GAAWld,SAAS,iBAE1C0c,EAAiB1c,SAAS,mBAjC1B+D,KAAKyY,mBAAmBC,EAAWC,EAAkBK,GAoCpDhZ,KAAK0P,WAINkB,YAAW,WACPjF,EAAMuI,YAAY5V,GAAO,GAEc,aAAnCqN,EAAMwE,SAASrS,iBACf6N,EAAM6I,QAAQlW,KAEnB0B,KAAKmQ,SAAStU,MAAQ,IAAMgd,EAAY,EAAI7Y,KAAKmQ,SAAS1T,aAT7DuD,KAAKkU,YAAY5V,GAAO,GAW5BsS,YAAW,WACPjF,EAAMgE,QAAS,EACfqJ,EAAoB7N,YAAY,qBAChCQ,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASW,WAAY,CAChDkd,UAAWA,EACXtZ,MAAOA,EACPua,UAAWA,EACXC,UAAWA,OAEf9Y,KAAK0P,WAAa1P,KAAKmQ,SAAStU,MAAQ,IAAM,MAAQgd,EAAY,EAAI7Y,KAAKmQ,SAAS1T,aAE5FuD,KAAK1B,MAAQA,IAEjB3E,EAAamP,UAAUqL,qBAAuB,SAAU7V,GACpD0B,KAAK6R,eAAe,sBAAsB7E,KAAK1O,EAAQ,EAAI,KAE/D3E,EAAamP,UAAUuQ,mBAAqB,WACxCrZ,KAAK6R,eAAe,kBAAkB7E,KAAKhN,KAAKoQ,aAAa/P,OAAS,KAE1E1G,EAAamP,UAAU+N,aAAe,SAAU9P,GAC5C,OAAIA,EAAKkM,iBACE,QAEFlM,EAAKsQ,OACH,SAGA,SAGf1d,EAAamP,UAAUwQ,UAAY,SAAUC,EAAaC,EAAWzP,GACjE,IAAI0P,EAAYD,EAAUE,MAAQH,EAAYG,MAC1CC,EAAYH,EAAUI,MAAQL,EAAYK,MAC1CC,GAAa,EAcjB,GAbI7Z,KAAK8Z,eACLD,GAAa,EAGTtX,KAAKwX,IAAIN,GAAa,IACtBzZ,KAAK8Z,eAAiB,aACtBD,GAAa,GAERtX,KAAKwX,IAAIJ,GAAa,KAC3B3Z,KAAK8Z,eAAiB,WACtBD,GAAa,GAGhBA,EAAL,CAGA,IAAIlE,EAAgB3V,KAAKyR,aAAazR,KAAK1B,OAC3C,GAA4B,eAAxB0B,KAAK8Z,eAAiC,CACtC/P,MAAAA,GAAsCA,EAAEqH,iBAExCpR,KAAK+R,MAAM9V,SAAS,eAEpB+D,KAAKga,aAAarE,EAAe8D,EAAW,GAE5C,IAAIzd,EAAQ2Z,EAAczS,MAAM+W,YAE5BC,EAD4B,GAARle,EAAc,IACNuG,KAAKwX,IAAiB,GAAZN,EAAkB,KAC5DzZ,KAAKga,aAAaha,KAAK+R,MAAM/O,KAAK,kBAAkBC,SAAUjH,EAAQyd,EAAYS,EAAQ,GAC1Fla,KAAKga,aAAaha,KAAK+R,MAAM/O,KAAK,kBAAkBC,QAASjH,EAAQyd,EAAYS,EAAQ,QAExF,GAA4B,aAAxBla,KAAK8Z,gBACN9Z,KAAKmQ,SAASjT,aAAc,CAC5B6M,MAAAA,GAAsCA,EAAEqH,iBACxCpR,KAAKgS,WAAW/V,SAAS,wBACzB,IAAIke,EAAU,EAAI5X,KAAKwX,IAAIJ,GAAa5X,OAAOqY,YAC/Cpa,KAAKwS,UAAU9G,IAAI,UAAWyO,GAC9B,IAAIE,EAAQ,EAAI9X,KAAKwX,IAAIJ,IAAkC,EAApB5X,OAAOC,YAC9ChC,KAAKga,aAAarE,EAAe,EAAGgE,EAAWU,EAAOA,GAClD9X,KAAKwX,IAAIJ,GAAa,KACtB3Z,KAAK+R,MACA9V,SAAS,iBACTkP,YAAY,yBAKjCxR,EAAamP,UAAUwR,SAAW,SAAUd,EAAWD,EAAa5P,GAChE,IACI4Q,EADA5O,EAAQ3L,KAGe,aAAvBA,KAAKmQ,SAASxU,MACdqE,KAAK+R,MAAM9V,SAAS,YAGxB2U,YAAW,WACPjF,EAAMqG,WAAW7G,YAAY,wBAC7BQ,EAAMoG,MACD5G,YAAY,6BACZlP,SAAS,sBACd,IAAIue,GAAe,EACnB,GAA6B,eAAzB7O,EAAMmO,eAAiC,CACvCS,EAAWf,EAAUE,MAAQH,EAAYG,MACzC,IAAIe,EAAclY,KAAKwX,IAAIP,EAAUE,MAAQH,EAAYG,OACrDa,EAAW,GACXE,EAAc9O,EAAMwE,SAASrR,gBAC7B6M,EAAM+O,eAAc,GACpBF,GAAe,GAEVD,EAAW,GAChBE,EAAc9O,EAAMwE,SAASrR,iBAC7B6M,EAAMgP,eAAc,GACpBH,GAAe,QAGlB,GAA6B,aAAzB7O,EAAMmO,eAA+B,CAE1C,GADAS,EAAWhY,KAAKwX,IAAIP,EAAUI,MAAQL,EAAYK,OAC9CjO,EAAMwE,SAASlT,UACf0O,EAAMwE,SAASjT,cACfqd,EAAW,IAEX,YADA5O,EAAMjM,eAINiM,EAAM6G,UAAU9G,IAAI,UAAW,GAIvC,GADAC,EAAMoG,MAAM/O,KAAK,YAAYsH,WAAW,SACpCkQ,GACAjY,KAAKwX,IAAIP,EAAUE,MAAQH,EAAYG,OAAS,EAAG,CAEnD,IAAIkB,EAAS/Z,EAAUc,IAAIgI,EAAMiR,QAC7BjP,EAAMkP,gBAAgBD,IACtBjP,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASY,aAGhDgR,EAAMmO,oBAAiBxa,KAG3BsR,YAAW,WACFjF,EAAMoG,MAAM1G,SAAS,gBACE,aAAxBM,EAAMwE,SAASxU,MACfgQ,EAAMoG,MAAM5G,YAAY,cAE7BnL,KAAKmQ,SAAStU,MAAQ,MAE7BlC,EAAamP,UAAU/J,YAAc,WACjC,IAAI4M,EAAQ3L,KACRuZ,EAAc,GACdC,EAAY,GACZsB,GAAU,EACVC,GAAY,EACZ/a,KAAKmQ,SAASpR,cACdiB,KAAKyS,OAAO7G,GAAG,iBAAiB,SAAU7B,GACtC4B,EAAMoE,oBAAqB,EAC3B,IAAIiL,EAAQrP,EAAM8F,aAAa9F,EAAMrN,QAChCuC,EAAUc,IAAIoI,EAAE6Q,QAAQvP,SAAS,aAClC2P,EAAM9X,MAAMoI,SAASvB,EAAE6Q,SACtBjP,EAAMoG,MAAM1G,SAAS,cACrBM,EAAMgE,QACoB,IAA3B5F,EAAEkR,cAAc5a,SAChB0a,GAAY,EACZpP,EAAMuP,YAAc,QACpBvP,EAAMwP,mBACN5B,EAAc,CACVG,MAAO3P,EAAEkR,cAAc,GAAGvB,MAC1BE,MAAO7P,EAAEkR,cAAc,GAAGrB,WAItC5Z,KAAKyS,OAAO7G,GAAG,gBAAgB,SAAU7B,GACjCgR,GACsB,UAAtBpP,EAAMuP,aACqB,IAA3BnR,EAAEkR,cAAc5a,SAChBmZ,EAAY,CACRE,MAAO3P,EAAEkR,cAAc,GAAGvB,MAC1BE,MAAO7P,EAAEkR,cAAc,GAAGrB,OAE9BjO,EAAM2N,UAAUC,EAAaC,EAAWzP,GACxC+Q,GAAU,MAGlB9a,KAAKyS,OAAO7G,GAAG,eAAe,SAAUjC,GACpC,GAA0B,UAAtBgC,EAAMuP,YAAyB,CAC/B,GAAIJ,EACAA,GAAU,EACVnP,EAAM2O,SAASd,EAAWD,EAAa5P,QAEtC,GAAIoR,EAAW,CAChB,IAAIH,EAAS/Z,EAAUc,IAAIgI,EAAMiR,QAC7BjP,EAAMkP,gBAAgBD,IACtBjP,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASY,aAGhDgR,EAAMuP,iBAAc5b,EACpByb,GAAY,QAK5BphB,EAAamP,UAAU9J,WAAa,WAChC,IAAI2M,EAAQ3L,KACRuZ,EAAc,GACdC,EAAY,GACZ4B,GAAY,EACZN,GAAU,EACV9a,KAAKmQ,SAASnR,aACdgB,KAAK+R,MAAMnG,GAAG,gBAAgB,SAAU7B,GACpC4B,EAAMoE,oBAAqB,EAC3B,IAAIiL,EAAQrP,EAAM8F,aAAa9F,EAAMrN,QACjCuC,EAAUc,IAAIoI,EAAE6Q,QAAQvP,SAAS,YACjC2P,EAAM9X,MAAMoI,SAASvB,EAAE6Q,WAClBjP,EAAMoG,MAAM1G,SAAS,cAAiBM,EAAMgE,SAC7C5F,EAAEqH,iBACGzF,EAAMgE,SACPhE,EAAMwP,mBACN5B,EAAc,CACVG,MAAO3P,EAAE2P,MACTE,MAAO7P,EAAE6P,OAEbwB,GAAY,EAEZzP,EAAMoG,MAAM7O,MAAMc,YAAc,EAChC2H,EAAMoG,MAAM7O,MAAMc,YAAc,EAEhC2H,EAAMoG,MACD5G,YAAY,WACZlP,SAAS,eACd0P,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASa,iBAKxDiG,EAAUc,IAAII,QAAQ6J,GAAG,sBAAwB5L,KAAKuP,MAAM,SAAUxF,GAC9DqR,GAAazP,EAAM8D,WACnBqL,GAAU,EACVtB,EAAY,CACRE,MAAO3P,EAAE2P,MACTE,MAAO7P,EAAE6P,OAEbjO,EAAM2N,UAAUC,EAAaC,GAC7B7N,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASc,cAGhDgG,EAAUc,IAAII,QAAQ6J,GAAG,oBAAsB5L,KAAKuP,MAAM,SAAU5F,GAChE,GAAKgC,EAAM8D,SAAX,CAGA,IAAImL,EAAS/Z,EAAUc,IAAIgI,EAAMiR,QAC7BE,GACAA,GAAU,EACVnP,EAAM2O,SAASd,EAAWD,EAAa5P,GACvCgC,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASe,UAEnC6Q,EAAMkP,gBAAgBD,IAC3BjP,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASY,aAGxCygB,IACAA,GAAY,EACZzP,EAAMoG,MAAM5G,YAAY,eAAelP,SAAS,kBAKhEtC,EAAamP,UAAU+H,mBAAqB,WACxC,IAAIlF,EAAQ3L,KACZA,KAAKyS,OAAO7G,GAAG,YAAY,SAAUjC,IAC5BgC,EAAMoE,oBACPpE,EAAMkP,gBAAgBha,EAAUc,IAAIgI,EAAMiR,UAC1CjP,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASY,iBAIpDhB,EAAamP,UAAUqS,iBAAmB,WACtC,IAAIE,EAAarb,KAAK1B,MAAQ,EAC1Bgd,EAAatb,KAAK1B,MAAQ,EAC1B0B,KAAKmQ,SAAS7S,MAAQ0C,KAAKoQ,aAAa/P,OAAS,IAC9B,IAAfL,KAAK1B,MACLgd,EAAatb,KAAKoQ,aAAa/P,OAAS,EAEnCL,KAAK1B,QAAU0B,KAAKoQ,aAAa/P,OAAS,IAC/Cgb,EAAa,IAGrBrb,KAAK+R,MAAM/O,KAAK,YAAYmI,YAAY,+BACpCmQ,GAAc,GACdtb,KAAKyR,aAAa6J,GAAYrf,SAAS,iBAE3C+D,KAAKyR,aAAa4J,GAAYpf,SAAS,kBAW3CtC,EAAamP,UAAU4R,cAAgB,SAAU7B,GAC7C,IAAIlN,EAAQ3L,KACRub,EAAQvb,KAAKmQ,SAAS7S,KACtBub,GAAa7Y,KAAKoQ,aAAa/P,OAAS,IACxCkb,GAAQ,GAEPvb,KAAK2P,SACF3P,KAAK1B,MAAQ,EAAI0B,KAAKoQ,aAAa/P,QACnCL,KAAK1B,QACL0B,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASgB,gBAAiB,CACpDuD,MAAO0B,KAAK1B,QAEhB0B,KAAK6U,MAAM7U,KAAK1B,QAASua,GAAW,EAAO,SAGvC0C,GACAvb,KAAK1B,MAAQ,EACb0B,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASgB,gBAAiB,CACpDuD,MAAO0B,KAAK1B,QAEhB0B,KAAK6U,MAAM7U,KAAK1B,QAASua,GAAW,EAAO,SAEtC7Y,KAAKmQ,SAASzS,oBAAsBmb,IACzC7Y,KAAK+R,MAAM9V,SAAS,gBACpB2U,YAAW,WACPjF,EAAMoG,MAAM5G,YAAY,kBACzB,QAenBxR,EAAamP,UAAU6R,cAAgB,SAAU9B,GAC7C,IAAIlN,EAAQ3L,KACRub,EAAQvb,KAAKmQ,SAAS7S,KACtBub,GAAa7Y,KAAKoQ,aAAa/P,OAAS,IACxCkb,GAAQ,GAEPvb,KAAK2P,SACF3P,KAAK1B,MAAQ,GACb0B,KAAK1B,QACL0B,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASiB,gBAAiB,CACpDsD,MAAO0B,KAAK1B,MACZua,UAAWA,IAEf7Y,KAAK6U,MAAM7U,KAAK1B,QAASua,GAAW,EAAO,SAGvC0C,GACAvb,KAAK1B,MAAQ0B,KAAKoQ,aAAa/P,OAAS,EACxCL,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASiB,gBAAiB,CACpDsD,MAAO0B,KAAK1B,MACZua,UAAWA,IAEf7Y,KAAK6U,MAAM7U,KAAK1B,QAASua,GAAW,EAAO,SAEtC7Y,KAAKmQ,SAASzS,oBAAsBmb,IACzC7Y,KAAK+R,MAAM9V,SAAS,eACpB2U,YAAW,WACPjF,EAAMoG,MAAM5G,YAAY,iBACzB,QAKnBxR,EAAamP,UAAUtL,SAAW,WAC9B,IAAImO,EAAQ3L,KACZa,EAAUc,IAAII,QAAQ6J,GAAG,oBAAsB5L,KAAKuP,MAAM,SAAUxF,GAC5D4B,EAAM8D,WACoB,IAA1B9D,EAAMwE,SAAS5S,QACD,KAAdwM,EAAEyR,UACFzR,EAAEqH,iBACEzF,EAAMwE,SAASxT,mBACfgP,EAAMoG,MAAM1G,SAAS,kBACrBM,EAAMoG,MAAM1G,SAAS,sBACrBM,EAAMoG,MAAM5G,YAAY,sBAGxBQ,EAAMjM,gBAGViM,EAAM8D,UAAY9D,EAAMyE,aAAa/P,OAAS,IAC5B,KAAd0J,EAAEyR,UACFzR,EAAEqH,iBACFzF,EAAMgP,iBAEQ,KAAd5Q,EAAEyR,UACFzR,EAAEqH,iBACFzF,EAAM+O,sBAKtB/gB,EAAamP,UAAUgI,MAAQ,WAC3B,IAAInF,EAAQ3L,KACZA,KAAK6R,eAAe,WAAWjG,GAAG,YAAY,WAC1CD,EAAMgP,mBAEV3a,KAAK6R,eAAe,WAAWjG,GAAG,YAAY,WAC1CD,EAAM+O,oBAGd/gB,EAAamP,UAAUoQ,aAAe,SAAU5a,GAE5C,IAAK0B,KAAKmQ,SAAS7S,MAAQ0C,KAAKmQ,SAASxS,iBAAkB,CACvD,IAAI8d,EAAQzb,KAAK6R,eAAe,WAC5B6J,EAAQ1b,KAAK6R,eAAe,WAC5BvT,EAAQ,IAAM0B,KAAKoQ,aAAa/P,OAChCqb,EAAM3a,KAAK,WAAY,YAAY9E,SAAS,YAG5Cyf,EAAMpR,WAAW,YAAYa,YAAY,YAE/B,IAAV7M,EACAmd,EAAM1a,KAAK,WAAY,YAAY9E,SAAS,YAG5Cwf,EAAMnR,WAAW,YAAYa,YAAY,cAIrDxR,EAAamP,UAAUkR,aAAe,SAAU2B,EAAKC,EAAQC,EAAQC,EAAQC,QAC1D,IAAXD,IAAqBA,EAAS,QACnB,IAAXC,IAAqBA,EAAS,GAClCJ,EAAIjQ,IAAI,YAAa,eACjBkQ,EACA,OACAC,EACA,oBACAC,EACA,KACAC,EACA,SAERpiB,EAAamP,UAAUlL,WAAa,WAChC,IAAI+N,EAAQ3L,KACRgc,EAAW,EACfhc,KAAK+R,MAAMnG,GAAG,YAAY,SAAU7B,GAChC,GAAKA,EAAEkS,UAAUtQ,EAAMyE,aAAa/P,OAAS,GAA7C,CAGA0J,EAAEqH,iBACF,IAAI8K,GAAM,IAAIC,MAAOC,UACjBF,EAAMF,EAAW,MAGrBA,EAAWE,EACPnS,EAAEkS,OAAS,EACXtQ,EAAM+O,gBAED3Q,EAAEkS,OAAS,GAChBtQ,EAAMgP,sBAIlBhhB,EAAamP,UAAUuT,eAAiB,SAAUzB,GAC9C,OAAQA,EAAOvP,SAAS,aACpBuP,EAAOvP,SAAS,YAChBuP,EAAOvP,SAAS,gBAExB1R,EAAamP,UAAU+R,gBAAkB,SAAUD,GAC/C,IAAI0B,EAAatc,KAAKyR,aAAazR,KAAK1B,OACnC0E,KAAK,yBACLE,MACL,OAAQ0X,EAAOvP,SAAS,oBACpBuP,EAAOvP,SAAS,yBACfiR,GAAcA,EAAWhR,SAASsP,EAAO1X,QAMlDvJ,EAAamP,UAAUnJ,eAAiB,WACpC,IAAIgM,EAAQ3L,KACZA,KAAK6R,eAAe,eAAejG,GAAG,YAAY,WAC9CD,EAAMqG,WAAWvG,YAAY,aAC7BE,EAAMkH,sBAGdlZ,EAAamP,UAAUyT,gBAAkB,WACrC,IAAK,IAAIje,EAAQ,EAAGA,EAAQ0B,KAAK2G,MAAMtG,OAAQ/B,IAAS,CACpD,IAAIkR,EAAUxP,KAAK2G,MAAMrI,GACrB4S,EAAWrQ,EAAUc,IAAI6N,GAC7B0B,EAAS/E,IAAI,uBAAyB+E,EAASnQ,KAAK,iBAG5DpH,EAAamP,UAAUiK,mBAAqB,WACxC,IAAIpH,EAAQ3L,KACZ,GAAKA,KAAKmQ,SAASlT,SAAnB,CAEA,IAAIuf,GAAY,EAChBxc,KAAK6R,eAAe,YAAYjG,GAAG,YAAY,WAC3CD,EAAMjM,kBAENM,KAAKmQ,SAAShT,aAGd6C,KAAK+R,MAAMnG,GAAG,gBAAgB,SAAU7B,GACpC,IAAI6Q,EAAS/Z,EAAUc,IAAIoI,EAAE6Q,QAEzB4B,IADA7Q,EAAM0Q,eAAezB,MAO7B5a,KAAK+R,MAAMnG,GAAG,gBAAgB,WAC1B4Q,GAAY,KAEhBxc,KAAK+R,MAAMnG,GAAG,cAAc,SAAU7B,GAClC,IAAI6Q,EAAS/Z,EAAUc,IAAIoI,EAAE6Q,QACzBjP,EAAM0Q,eAAezB,IAAW4B,IAC3B7Q,EAAMoG,MAAM1G,SAAS,gBACtBM,EAAMjM,sBAiB1B/F,EAAamP,UAAUpJ,aAAe,SAAU+c,GAC5C,IAAI9Q,EAAQ3L,KACZ,IAAKA,KAAKyP,WAAczP,KAAKmQ,SAASlT,WAAawf,EAC/C,OAAO,EAEXzc,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASkB,aACvC4F,EAAUc,IAAII,QAAQqC,UAAUpE,KAAK6P,eACrC,IACI4E,EADAnN,EAActH,KAAK2G,MAAM3G,KAAK1B,OAElC,GAAI0B,KAAK1D,gBAAkBgL,EAAa,CACpC,IAAI6L,EAAKnT,KAAKgQ,uBAAwB0M,EAAQvJ,EAAGvQ,IAAKC,EAASsQ,EAAGtQ,OAC9D8Z,EAAK3c,KAAKoQ,aAAapQ,KAAK1B,OAAQ2U,EAAmB0J,EAAG1J,iBAAkB6D,EAAS6F,EAAG7F,OACxFhU,EAAYwM,EAAWkB,QAAQjP,QAAQ+F,EAAatH,KAAK+R,MAAO2K,EAAQ7Z,EAAQoQ,GAAoB6D,GAAU9W,KAAKmQ,SAASvT,cAChI6X,EAAYnF,EAAWkB,QAAQ7N,aAAa2E,EAAatH,KAAK+R,MAAO2K,EAAO7Z,EAAQC,GAEpF9C,KAAK1D,gBAAkBmY,GACvBzU,KAAK+R,MAAM9V,SAAS,iCACpB+D,KAAKyR,aAAazR,KAAK1B,OAClBrC,SAAS,yBACTyP,IAAI,sBAAuB1L,KAAKmQ,SAAS9T,uBAAyB,MAClEqP,IAAI,YAAa+I,KAGtBzU,KAAK+R,MAAM9V,SAAS,iBAGpB+D,KAAK+R,MAAM5G,YAAY,uBAK3BnL,KAAK4c,iBACL5c,KAAK0P,YAAa,EAClB1P,KAAK8P,qBAAsB,EAC3B9P,KAAK1D,eAAiB0D,KAAKmQ,SAAS7T,eACpC0Y,aAAahV,KAAKiV,gBAClBjV,KAAKiV,gBAAiB,EACtBpU,EAAUc,IAAI,QAAQwJ,YAAY,SAClCnL,KAAK+R,MAAM5G,YAAY,iCAEvBnL,KAAKwS,UAAUrH,YAAY,MAAMO,IAAI,UAAW,GAChD,IAAImR,EAAgB7c,KAAK1D,gBAAkBmY,EACrClS,KAAKwV,IAAI/X,KAAKmQ,SAAS9T,uBAAwB2D,KAAKmQ,SAAShU,kBAC7D6D,KAAKmQ,SAAShU,iBAyBpB,OAxBA6D,KAAKgS,WAAW7G,YAAY,cAE5ByF,YAAW,WACHjF,EAAMrP,gBAAkBmY,GACxB9I,EAAMoG,MAAM5G,YAAY,sBAE5BQ,EAAMqG,WAAW7G,YAAY,WAE7BQ,EAAM6G,UACDlI,WAAW,SACXoB,IAAI,sBAAuBC,EAAMwE,SAAShU,iBAAmB,MAClEwP,EAAMoG,MAAM5G,YAAY,cAAgBQ,EAAMwE,SAASjU,YACvDyP,EAAM8F,aAAa9F,EAAMrN,OAAO6M,YAAY,yBAC5CQ,EAAM8G,OAAOpF,QACT1B,EAAM8D,UACN9D,EAAM5I,KAAKsJ,QAAQ+C,EAAYrV,SAASmB,WAAY,CAChDyV,SAAUhF,IAGdA,EAAMoG,MAAM7O,OACZyI,EAAMoG,MAAM7O,MAAM4Z,OAEtBnR,EAAM8D,UAAW,IAClBoN,EAAgB,KACZA,EAAgB,KAE3BljB,EAAamP,UAAUkK,YAAc,WACjChT,KAAKR,QAAQ6F,SAAQ,SAAU0X,GAC3B,IACIA,EAAO9iB,OAEX,MAAO+iB,GACH/U,QAAQuJ,KAAK,2EAIzB7X,EAAamP,UAAU8T,eAAiB,SAAUK,GAC9Cjd,KAAKR,QAAQ6F,SAAQ,SAAU0X,GAC3B,IACQE,EACAF,EAAOE,UAGPF,EAAOrd,cAAgBqd,EAAOrd,eAGtC,MAAOsd,GACH/U,QAAQuJ,KAAK,2EAkBzB7X,EAAamP,UAAUoU,QAAU,SAAU9M,GAClCpQ,KAAKmQ,SAASlR,SACfe,KAAKuc,kBAGLvc,KAAKoQ,aADLA,GAIoBpQ,KAAKqQ,WAE7BrQ,KAAK4T,iBACL5T,KAAK+Q,yBACL/Q,KAAK+C,KAAKsJ,QAAQ+C,EAAYrV,SAASK,eAE3CT,EAAamP,UAAU8K,eAAiB,WACpC5T,KAAKyQ,kBAAkBzQ,KAAKoQ,cAC5BpQ,KAAKqZ,qBACLrZ,KAAK8R,8BAeTnY,EAAamP,UAAUmU,QAAU,WAC7B,IAAItR,EAAQ3L,KACRmd,EAAend,KAAKN,cAAa,GAUrC,OATAkR,YAAW,WACPjF,EAAMiR,gBAAe,GAChBjR,EAAMwE,SAASlR,SAChB0M,EAAM4Q,kBAEV1b,EAAUc,IAAII,QAAQoK,IAAI,aAAeR,EAAM4D,MAC/C5D,EAAM5I,KAAKoJ,IAAI,OACfR,EAAMqG,WAAW5G,WAClB+R,GACIA,GAEJxjB,EAryDsB,GAuyDjCH,EAAQG,aAAeA,G,2DC9xDhB,IAAIkV,EAAW,WAQlB,OAPAA,EAAWjV,OAAOkV,QAAU,SAAkBC,GAC1C,IAAK,IAAI9O,EAAGC,EAAI,EAAG8O,EAAI5O,UAAUC,OAAQH,EAAI8O,EAAG9O,IAE5C,IAAK,IAAI+O,KADThP,EAAIG,UAAUF,GACOtG,OAAOkP,UAAUoG,eAAepI,KAAK7G,EAAGgP,KAAIF,EAAEE,GAAKhP,EAAEgP,IAE9E,OAAOF,GAEJF,EAASM,MAAMnP,KAAMI,YAoEHxG,OAAOwjB,OAsGXxjB,OAAOwjB,OCrKzB,SAASC,EAAUC,GACtB,OAAOA,EAAIpc,cC3Cf,IAAIqc,EAAuB,CAAC,qBAAsB,wBAE9CC,EAAuB,eAqB3B,SAASxc,EAAQyc,EAAOC,EAAI5jB,GACxB,OAAI4jB,aAAcC,OACPF,EAAMzc,QAAQ0c,EAAI5jB,GACtB4jB,EAAGE,QAAO,SAAUH,EAAOC,GAAM,OAAOD,EAAMzc,QAAQ0c,EAAI5jB,KAAW2jB,GC1BzE,SAASI,EAAQJ,EAAO/jB,GAE3B,YADgB,IAAZA,IAAsBA,EAAU,IDKjC,SAAgB+jB,EAAO/jB,QACV,IAAZA,IAAsBA,EAAU,IAMpC,IALA,IAAIyZ,EAAKzZ,EAAQokB,YAAaA,OAAqB,IAAP3K,EAAgBoK,EAAuBpK,EAAIwJ,EAAKjjB,EAAQqkB,YAAaA,OAAqB,IAAPpB,EAAgBa,EAAuBb,EAAIqB,EAAKtkB,EAAQ+a,UAAWA,OAAmB,IAAPuJ,EAAgBX,EAAYW,EAAIC,EAAKvkB,EAAQwkB,UAAWA,OAAmB,IAAPD,EAAgB,IAAMA,EACpSE,EAASnd,EAAQA,EAAQyc,EAAOK,EAAa,UAAWC,EAAa,MACrEK,EAAQ,EACRC,EAAMF,EAAO9d,OAEe,OAAzB8d,EAAOld,OAAOmd,IACjBA,IACJ,KAAkC,OAA3BD,EAAOld,OAAOod,EAAM,IACvBA,IAEJ,OAAOF,EAAOhd,MAAMid,EAAOC,GAAKxc,MAAM,MAAMoD,IAAIwP,GAAW6J,KAAKJ,GChBzDK,CAAOd,EAAO5O,EAAS,CAAEqP,UAAW,KAAOxkB,ICH/C,SAAS8kB,EAAgBC,GAC5B,MAAMC,QCCU,IAAZhlB,IAAsBA,EAAU,IAC7BmkB,EDFoBY,ECEL5P,EAAS,CAAEqP,UAAW,KAAOxkB,KAFhD,IAA0BA,EDE7B,MAAO,GADY+kB,EAAW,GAAGvd,cAAgBud,EAAWzd,QAAQ,QAAS,OACrD0d,IAErB,MAAMC,EAAgBR,GAA4B,aAAjBA,EAAOS,OAAwBT,EAAOrkB,MAAM0W,QAAUvI,QAAQC,MAAM,yBAA0BiW,EAAOU,QED9HC,eAAeC,IAC1B,MAAM,QAAEvf,KAAYwf,GAASC,KAAKC,cAClC,OAAalW,SAASE,cAAc,kBAAmB,CACnD1J,QAASA,UAAkB2f,QAAQC,WAAW5f,EAAQyF,KAEtDkC,GAAQ,QAER,KAA0BqX,EAAgBrX,GAAQ,eAC7ClC,IAAI0Z,MACNK,M,eCdX,IAAI/Z,EAAM,CACT,gCAAiC,CAChC,IACA,KAED,8BAA+B,CAC9B,KACA,KAED,oCAAqC,CACpC,KACA,IAED,wBAAyB,CACxB,KACA,KAED,qCAAsC,CACrC,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,+CAAgD,CAC/C,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,0BAA2B,CAC1B,EACA,KAED,kCAAmC,CAClC,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,wBAAyB,CACxB,KACA,MAGF,SAASoa,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEva,EAAKqa,GAC9B,OAAOH,QAAQM,UAAU5S,MAAK,KAC7B,IAAI9C,EAAI,IAAI2V,MAAM,uBAAyBJ,EAAM,KAEjD,MADAvV,EAAE4V,KAAO,mBACH5V,KAIR,IAAI6V,EAAM3a,EAAIqa,GAAM1N,EAAKgO,EAAI,GAC7B,OAAOL,EAAoBxV,EAAE6V,EAAI,IAAI/S,MAAK,IAClC0S,EAAoBxQ,EAAE6C,EAAI,MAGnCyN,EAAoBja,KAAO,IAAOxL,OAAOwL,KAAKH,GAC9Coa,EAAoBzN,GAAK,KACzBmL,EAAOvjB,QAAU6lB","sources":["webpack://sakurairo-scripts/./node_modules/_lightgallery@2.4.0@lightgallery/lib/index.js","webpack://sakurairo-scripts/./node_modules/_lightgallery@2.4.0@lightgallery/lib/lg-events.js","webpack://sakurairo-scripts/./node_modules/_lightgallery@2.4.0@lightgallery/lib/lg-settings.js","webpack://sakurairo-scripts/./node_modules/_lightgallery@2.4.0@lightgallery/lib/lg-utils.js","webpack://sakurairo-scripts/./node_modules/_lightgallery@2.4.0@lightgallery/lib/lgQuery.js","webpack://sakurairo-scripts/./node_modules/_lightgallery@2.4.0@lightgallery/lib/lightgallery.js","webpack://sakurairo-scripts/./node_modules/_tslib@2.3.1@tslib/tslib.es6.js","webpack://sakurairo-scripts/./node_modules/_lower-case@2.0.2@lower-case/dist.es2015/index.js","webpack://sakurairo-scripts/./node_modules/_no-case@3.0.4@no-case/dist.es2015/index.js","webpack://sakurairo-scripts/./node_modules/_dot-case@3.0.4@dot-case/dist.es2015/index.js","webpack://sakurairo-scripts/./src/page/lightGallery/util.ts","webpack://sakurairo-scripts/./node_modules/_param-case@3.0.4@param-case/dist.es2015/index.js","webpack://sakurairo-scripts/./src/page/lightGallery/import.ts","webpack://sakurairo-scripts/./node_modules/lightgallery/plugins|lazy|/^/.*/.min/.js$/|chunkName: lg-|groupOptions: {}|namespace object"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar lightgallery_1 = require(\"./lightgallery\");\nfunction lightGallery(el, options) {\n return new lightgallery_1.LightGallery(el, options);\n}\nexports.default = lightGallery;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lGEvents = void 0;\n/**\n * List of lightGallery events\n * All events should be documented here\n * Below interfaces are used to build the website documentations\n * */\nexports.lGEvents = {\n afterAppendSlide: 'lgAfterAppendSlide',\n init: 'lgInit',\n hasVideo: 'lgHasVideo',\n containerResize: 'lgContainerResize',\n updateSlides: 'lgUpdateSlides',\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\n beforeOpen: 'lgBeforeOpen',\n afterOpen: 'lgAfterOpen',\n slideItemLoad: 'lgSlideItemLoad',\n beforeSlide: 'lgBeforeSlide',\n afterSlide: 'lgAfterSlide',\n posterClick: 'lgPosterClick',\n dragStart: 'lgDragStart',\n dragMove: 'lgDragMove',\n dragEnd: 'lgDragEnd',\n beforeNextSlide: 'lgBeforeNextSlide',\n beforePrevSlide: 'lgBeforePrevSlide',\n beforeClose: 'lgBeforeClose',\n afterClose: 'lgAfterClose',\n rotateLeft: 'lgRotateLeft',\n rotateRight: 'lgRotateRight',\n flipHorizontal: 'lgFlipHorizontal',\n flipVertical: 'lgFlipVertical',\n autoplay: 'lgAutoplay',\n autoplayStart: 'lgAutoplayStart',\n autoplayStop: 'lgAutoplayStop',\n};\n//# sourceMappingURL=lg-events.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lightGalleryCoreSettings = void 0;\nexports.lightGalleryCoreSettings = {\n mode: 'lg-slide',\n easing: 'ease',\n speed: 400,\n licenseKey: '0000-0000-000-0000',\n height: '100%',\n width: '100%',\n addClass: '',\n startClass: 'lg-start-zoom',\n backdropDuration: 300,\n container: '',\n startAnimationDuration: 400,\n zoomFromOrigin: true,\n hideBarsDelay: 0,\n showBarsAfter: 10000,\n slideDelay: 0,\n supportLegacyBrowser: true,\n allowMediaOverlap: false,\n videoMaxSize: '1280-720',\n loadYouTubePoster: true,\n defaultCaptionHeight: 0,\n ariaLabelledby: '',\n ariaDescribedby: '',\n closable: true,\n swipeToClose: true,\n closeOnTap: true,\n showCloseIcon: true,\n showMaximizeIcon: false,\n loop: true,\n escKey: true,\n keyPress: true,\n controls: true,\n slideEndAnimation: true,\n hideControlOnEnd: false,\n mousewheel: false,\n getCaptionFromTitleOrAlt: true,\n appendSubHtmlTo: '.lg-sub-html',\n subHtmlSelectorRelative: false,\n preload: 2,\n numberOfSlideItemsInDom: 10,\n selector: '',\n selectWithin: '',\n nextHtml: '',\n prevHtml: '',\n index: 0,\n iframeWidth: '100%',\n iframeHeight: '100%',\n iframeMaxWidth: '100%',\n iframeMaxHeight: '100%',\n download: true,\n counter: true,\n appendCounterTo: '.lg-toolbar',\n swipeThreshold: 50,\n enableSwipe: true,\n enableDrag: true,\n dynamic: false,\n dynamicEl: [],\n extraProps: [],\n exThumbImage: '',\n isMobile: undefined,\n mobileSettings: {\n controls: false,\n showCloseIcon: false,\n download: false,\n },\n plugins: [],\n strings: {\n closeGallery: 'Close gallery',\n toggleMaximize: 'Toggle maximize',\n previousSlide: 'Previous slide',\n nextSlide: 'Next slide',\n download: 'Download',\n playVideo: 'Play video',\n },\n};\n//# sourceMappingURL=lg-settings.js.map","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToData = void 0;\nvar lgQuery_1 = require(\"./lgQuery\");\nvar defaultDynamicOptions = [\n 'src',\n 'sources',\n 'subHtml',\n 'subHtmlUrl',\n 'html',\n 'video',\n 'poster',\n 'slideName',\n 'responsive',\n 'srcset',\n 'sizes',\n 'iframe',\n 'downloadUrl',\n 'download',\n 'width',\n 'facebookShareUrl',\n 'tweetText',\n 'iframeTitle',\n 'twitterShareUrl',\n 'pinterestShareUrl',\n 'pinterestText',\n 'fbHtml',\n 'disqusIdentifier',\n 'disqusUrl',\n];\n// Convert html data-attribute to camalcase\nfunction convertToData(attr) {\n // FInd a way for lgsize\n if (attr === 'href') {\n return 'src';\n }\n attr = attr.replace('data-', '');\n attr = attr.charAt(0).toLowerCase() + attr.slice(1);\n attr = attr.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });\n return attr;\n}\nexports.convertToData = convertToData;\nvar utils = {\n /**\n * get possible width and height from the lgSize attribute. Used for ZoomFromOrigin option\n */\n getSize: function (el, container, spacing, defaultLgSize) {\n if (spacing === void 0) { spacing = 0; }\n var LGel = lgQuery_1.$LG(el);\n var lgSize = LGel.attr('data-lg-size') || defaultLgSize;\n if (!lgSize) {\n return;\n }\n var isResponsiveSizes = lgSize.split(',');\n // if at-least two viewport sizes are available\n if (isResponsiveSizes[1]) {\n var wWidth = window.innerWidth;\n for (var i = 0; i < isResponsiveSizes.length; i++) {\n var size_1 = isResponsiveSizes[i];\n var responsiveWidth = parseInt(size_1.split('-')[2], 10);\n if (responsiveWidth > wWidth) {\n lgSize = size_1;\n break;\n }\n // take last item as last option\n if (i === isResponsiveSizes.length - 1) {\n lgSize = size_1;\n }\n }\n }\n var size = lgSize.split('-');\n var width = parseInt(size[0], 10);\n var height = parseInt(size[1], 10);\n var cWidth = container.width();\n var cHeight = container.height() - spacing;\n var maxWidth = Math.min(cWidth, width);\n var maxHeight = Math.min(cHeight, height);\n var ratio = Math.min(maxWidth / width, maxHeight / height);\n return { width: width * ratio, height: height * ratio };\n },\n /**\n * @desc Get transform value based on the imageSize. Used for ZoomFromOrigin option\n * @param {jQuery Element}\n * @returns {String} Transform CSS string\n */\n getTransform: function (el, container, top, bottom, imageSize) {\n if (!imageSize) {\n return;\n }\n var LGel = lgQuery_1.$LG(el).find('img').first();\n if (!LGel.get()) {\n return;\n }\n var containerRect = container.get().getBoundingClientRect();\n var wWidth = containerRect.width;\n // using innerWidth to include mobile safari bottom bar\n var wHeight = container.height() - (top + bottom);\n var elWidth = LGel.width();\n var elHeight = LGel.height();\n var elStyle = LGel.style();\n var x = (wWidth - elWidth) / 2 -\n LGel.offset().left +\n (parseFloat(elStyle.paddingLeft) || 0) +\n (parseFloat(elStyle.borderLeft) || 0) +\n lgQuery_1.$LG(window).scrollLeft() +\n containerRect.left;\n var y = (wHeight - elHeight) / 2 -\n LGel.offset().top +\n (parseFloat(elStyle.paddingTop) || 0) +\n (parseFloat(elStyle.borderTop) || 0) +\n lgQuery_1.$LG(window).scrollTop() +\n top;\n var scX = elWidth / imageSize.width;\n var scY = elHeight / imageSize.height;\n var transform = 'translate3d(' +\n (x *= -1) +\n 'px, ' +\n (y *= -1) +\n 'px, 0) scale3d(' +\n scX +\n ', ' +\n scY +\n ', 1)';\n return transform;\n },\n getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) {\n var title = iframeTitle ? 'title=\"' + iframeTitle + '\"' : '';\n return \"
\\n \\n
\";\n },\n getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) {\n var srcsetAttr = srcset ? \"srcset=\\\"\" + srcset + \"\\\"\" : '';\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\"\" : '';\n var imgMarkup = \"\";\n var sourceTag = '';\n if (sources) {\n var sourceObj = typeof sources === 'string' ? JSON.parse(sources) : sources;\n sourceTag = sourceObj.map(function (source) {\n var attrs = '';\n Object.keys(source).forEach(function (key) {\n // Do not remove the first space as it is required to separate the attributes\n attrs += \" \" + key + \"=\\\"\" + source[key] + \"\\\"\";\n });\n return \"\";\n });\n }\n return \"\" + sourceTag + imgMarkup;\n },\n // Get src from responsive src\n getResponsiveSrc: function (srcItms) {\n var rsWidth = [];\n var rsSrc = [];\n var src = '';\n for (var i = 0; i < srcItms.length; i++) {\n var _src = srcItms[i].split(' ');\n // Manage empty space\n if (_src[0] === '') {\n _src.splice(0, 1);\n }\n rsSrc.push(_src[0]);\n rsWidth.push(_src[1]);\n }\n var wWidth = window.innerWidth;\n for (var j = 0; j < rsWidth.length; j++) {\n if (parseInt(rsWidth[j], 10) > wWidth) {\n src = rsSrc[j];\n break;\n }\n }\n return src;\n },\n isImageLoaded: function (img) {\n if (!img)\n return false;\n // During the onload event, IE correctly identifies any images that\n // weren’t downloaded as not complete. Others should too. Gecko-based\n // browsers act like NS4 in that they report this incorrectly.\n if (!img.complete) {\n return false;\n }\n // However, they do have two very useful properties: naturalWidth and\n // naturalHeight. These give the true size of the image. If it failed\n // to load, either of these should be zero.\n if (img.naturalWidth === 0) {\n return false;\n }\n // No other way of checking: assume it’s ok.\n return true;\n },\n getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, playVideoString, _isVideo) {\n var videoClass = '';\n if (_isVideo && _isVideo.youtube) {\n videoClass = 'lg-has-youtube';\n }\n else if (_isVideo && _isVideo.vimeo) {\n videoClass = 'lg-has-vimeo';\n }\n else {\n videoClass = 'lg-has-html5';\n }\n return \"
\\n
\\n \\n \" + playVideoString + \"\\n \\n \\n \\n \\n \\n \\n \\n
\\n \" + (dummyImg || '') + \"\\n \\n
\";\n },\n /**\n * @desc Create dynamic elements array from gallery items when dynamic option is false\n * It helps to avoid frequent DOM interaction\n * and avoid multiple checks for dynamic elments\n *\n * @returns {Array} dynamicEl\n */\n getDynamicOptions: function (items, extraProps, getCaptionFromTitleOrAlt, exThumbImage) {\n var dynamicElements = [];\n var availableDynamicOptions = __spreadArrays(defaultDynamicOptions, extraProps);\n [].forEach.call(items, function (item) {\n var dynamicEl = {};\n for (var i = 0; i < item.attributes.length; i++) {\n var attr = item.attributes[i];\n if (attr.specified) {\n var dynamicAttr = convertToData(attr.name);\n var label = '';\n if (availableDynamicOptions.indexOf(dynamicAttr) > -1) {\n label = dynamicAttr;\n }\n if (label) {\n dynamicEl[label] = attr.value;\n }\n }\n }\n var currentItem = lgQuery_1.$LG(item);\n var alt = currentItem.find('img').first().attr('alt');\n var title = currentItem.attr('title');\n var thumb = exThumbImage\n ? currentItem.attr(exThumbImage)\n : currentItem.find('img').first().attr('src');\n dynamicEl.thumb = thumb;\n if (getCaptionFromTitleOrAlt && !dynamicEl.subHtml) {\n dynamicEl.subHtml = title || alt || '';\n }\n dynamicEl.alt = alt || title || '';\n dynamicElements.push(dynamicEl);\n });\n return dynamicElements;\n },\n isMobile: function () {\n return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\n },\n /**\n * @desc Check the given src is video\n * @param {String} src\n * @return {Object} video type\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\n *\n * @todo - this information can be moved to dynamicEl to avoid frequent calls\n */\n isVideo: function (src, isHTML5VIdeo, index) {\n if (!src) {\n if (isHTML5VIdeo) {\n return {\n html5: true,\n };\n }\n else {\n console.error('lightGallery :- data-src is not provided on slide item ' +\n (index + 1) +\n '. Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/');\n return;\n }\n }\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)([\\&|?][\\S]*)*/i);\n var vimeo = src.match(/\\/\\/(?:www\\.)?(?:player\\.)?vimeo.com\\/(?:video\\/)?([0-9a-z\\-_]+)(.*)?/i);\n var wistia = src.match(/https?:\\/\\/(.+)?(wistia\\.com|wi\\.st)\\/(medias|embed)\\/([0-9a-z\\-_]+)(.*)/);\n if (youtube) {\n return {\n youtube: youtube,\n };\n }\n else if (vimeo) {\n return {\n vimeo: vimeo,\n };\n }\n else if (wistia) {\n return {\n wistia: wistia,\n };\n }\n },\n};\nexports.default = utils;\n//# sourceMappingURL=lg-utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$LG = exports.lgQuery = void 0;\nfunction initLgPolyfills() {\n (function () {\n if (typeof window.CustomEvent === 'function')\n return false;\n function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: null,\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n window.CustomEvent = CustomEvent;\n })();\n (function () {\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n }\n })();\n}\nvar lgQuery = /** @class */ (function () {\n function lgQuery(selector) {\n this.cssVenderPrefixes = [\n 'TransitionDuration',\n 'TransitionTimingFunction',\n 'Transform',\n 'Transition',\n ];\n this.selector = this._getSelector(selector);\n this.firstElement = this._getFirstEl();\n return this;\n }\n lgQuery.generateUUID = function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n };\n lgQuery.prototype._getSelector = function (selector, context) {\n if (context === void 0) { context = document; }\n if (typeof selector !== 'string') {\n return selector;\n }\n context = context || document;\n var fl = selector.substring(0, 1);\n if (fl === '#') {\n return context.querySelector(selector);\n }\n else {\n return context.querySelectorAll(selector);\n }\n };\n lgQuery.prototype._each = function (func) {\n if (!this.selector) {\n return this;\n }\n if (this.selector.length !== undefined) {\n [].forEach.call(this.selector, func);\n }\n else {\n func(this.selector, 0);\n }\n return this;\n };\n lgQuery.prototype._setCssVendorPrefix = function (el, cssProperty, value) {\n // prettier-ignore\n var property = cssProperty.replace(/-([a-z])/gi, function (s, group1) {\n return group1.toUpperCase();\n });\n if (this.cssVenderPrefixes.indexOf(property) !== -1) {\n el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value;\n el.style['webkit' + property] = value;\n el.style['moz' + property] = value;\n el.style['ms' + property] = value;\n el.style['o' + property] = value;\n }\n else {\n el.style[property] = value;\n }\n };\n lgQuery.prototype._getFirstEl = function () {\n if (this.selector && this.selector.length !== undefined) {\n return this.selector[0];\n }\n else {\n return this.selector;\n }\n };\n lgQuery.prototype.isEventMatched = function (event, eventName) {\n var eventNamespace = eventName.split('.');\n return event\n .split('.')\n .filter(function (e) { return e; })\n .every(function (e) {\n return eventNamespace.indexOf(e) !== -1;\n });\n };\n lgQuery.prototype.attr = function (attr, value) {\n if (value === undefined) {\n if (!this.firstElement) {\n return '';\n }\n return this.firstElement.getAttribute(attr);\n }\n this._each(function (el) {\n el.setAttribute(attr, value);\n });\n return this;\n };\n lgQuery.prototype.find = function (selector) {\n return $LG(this._getSelector(selector, this.selector));\n };\n lgQuery.prototype.first = function () {\n if (this.selector && this.selector.length !== undefined) {\n return $LG(this.selector[0]);\n }\n else {\n return $LG(this.selector);\n }\n };\n lgQuery.prototype.eq = function (index) {\n return $LG(this.selector[index]);\n };\n lgQuery.prototype.parent = function () {\n return $LG(this.selector.parentElement);\n };\n lgQuery.prototype.get = function () {\n return this._getFirstEl();\n };\n lgQuery.prototype.removeAttr = function (attributes) {\n var attrs = attributes.split(' ');\n this._each(function (el) {\n attrs.forEach(function (attr) { return el.removeAttribute(attr); });\n });\n return this;\n };\n lgQuery.prototype.wrap = function (className) {\n if (!this.firstElement) {\n return this;\n }\n var wrapper = document.createElement('div');\n wrapper.className = className;\n this.firstElement.parentNode.insertBefore(wrapper, this.firstElement);\n this.firstElement.parentNode.removeChild(this.firstElement);\n wrapper.appendChild(this.firstElement);\n return this;\n };\n lgQuery.prototype.addClass = function (classNames) {\n if (classNames === void 0) { classNames = ''; }\n this._each(function (el) {\n // IE doesn't support multiple arguments\n classNames.split(' ').forEach(function (className) {\n if (className) {\n el.classList.add(className);\n }\n });\n });\n return this;\n };\n lgQuery.prototype.removeClass = function (classNames) {\n this._each(function (el) {\n // IE doesn't support multiple arguments\n classNames.split(' ').forEach(function (className) {\n if (className) {\n el.classList.remove(className);\n }\n });\n });\n return this;\n };\n lgQuery.prototype.hasClass = function (className) {\n if (!this.firstElement) {\n return false;\n }\n return this.firstElement.classList.contains(className);\n };\n lgQuery.prototype.hasAttribute = function (attribute) {\n if (!this.firstElement) {\n return false;\n }\n return this.firstElement.hasAttribute(attribute);\n };\n lgQuery.prototype.toggleClass = function (className) {\n if (!this.firstElement) {\n return this;\n }\n if (this.hasClass(className)) {\n this.removeClass(className);\n }\n else {\n this.addClass(className);\n }\n return this;\n };\n lgQuery.prototype.css = function (property, value) {\n var _this = this;\n this._each(function (el) {\n _this._setCssVendorPrefix(el, property, value);\n });\n return this;\n };\n // Need to pass separate namespaces for separate elements\n lgQuery.prototype.on = function (events, listener) {\n var _this = this;\n if (!this.selector) {\n return this;\n }\n events.split(' ').forEach(function (event) {\n if (!Array.isArray(lgQuery.eventListeners[event])) {\n lgQuery.eventListeners[event] = [];\n }\n lgQuery.eventListeners[event].push(listener);\n _this.selector.addEventListener(event.split('.')[0], listener);\n });\n return this;\n };\n // @todo - test this\n lgQuery.prototype.once = function (event, listener) {\n var _this = this;\n this.on(event, function () {\n _this.off(event);\n listener(event);\n });\n return this;\n };\n lgQuery.prototype.off = function (event) {\n var _this = this;\n if (!this.selector) {\n return this;\n }\n Object.keys(lgQuery.eventListeners).forEach(function (eventName) {\n if (_this.isEventMatched(event, eventName)) {\n lgQuery.eventListeners[eventName].forEach(function (listener) {\n _this.selector.removeEventListener(eventName.split('.')[0], listener);\n });\n lgQuery.eventListeners[eventName] = [];\n }\n });\n return this;\n };\n lgQuery.prototype.trigger = function (event, detail) {\n if (!this.firstElement) {\n return this;\n }\n var customEvent = new CustomEvent(event.split('.')[0], {\n detail: detail || null,\n });\n this.firstElement.dispatchEvent(customEvent);\n return this;\n };\n // Does not support IE\n lgQuery.prototype.load = function (url) {\n var _this = this;\n fetch(url)\n .then(function (res) { return res.text(); })\n .then(function (html) {\n _this.selector.innerHTML = html;\n });\n return this;\n };\n lgQuery.prototype.html = function (html) {\n if (html === undefined) {\n if (!this.firstElement) {\n return '';\n }\n return this.firstElement.innerHTML;\n }\n this._each(function (el) {\n el.innerHTML = html;\n });\n return this;\n };\n lgQuery.prototype.append = function (html) {\n this._each(function (el) {\n if (typeof html === 'string') {\n el.insertAdjacentHTML('beforeend', html);\n }\n else {\n el.appendChild(html);\n }\n });\n return this;\n };\n lgQuery.prototype.prepend = function (html) {\n this._each(function (el) {\n el.insertAdjacentHTML('afterbegin', html);\n });\n return this;\n };\n lgQuery.prototype.remove = function () {\n this._each(function (el) {\n el.parentNode.removeChild(el);\n });\n return this;\n };\n lgQuery.prototype.empty = function () {\n this._each(function (el) {\n el.innerHTML = '';\n });\n return this;\n };\n lgQuery.prototype.scrollTop = function (scrollTop) {\n if (scrollTop !== undefined) {\n document.body.scrollTop = scrollTop;\n document.documentElement.scrollTop = scrollTop;\n return this;\n }\n else {\n return (window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop ||\n 0);\n }\n };\n lgQuery.prototype.scrollLeft = function (scrollLeft) {\n if (scrollLeft !== undefined) {\n document.body.scrollLeft = scrollLeft;\n document.documentElement.scrollLeft = scrollLeft;\n return this;\n }\n else {\n return (window.pageXOffset ||\n document.documentElement.scrollLeft ||\n document.body.scrollLeft ||\n 0);\n }\n };\n lgQuery.prototype.offset = function () {\n if (!this.firstElement) {\n return {\n left: 0,\n top: 0,\n };\n }\n var rect = this.firstElement.getBoundingClientRect();\n var bodyMarginLeft = $LG('body').style().marginLeft;\n // Minus body margin - https://stackoverflow.com/questions/30711548/is-getboundingclientrect-left-returning-a-wrong-value\n return {\n left: rect.left - parseFloat(bodyMarginLeft) + this.scrollLeft(),\n top: rect.top + this.scrollTop(),\n };\n };\n lgQuery.prototype.style = function () {\n if (!this.firstElement) {\n return {};\n }\n return (this.firstElement.currentStyle ||\n window.getComputedStyle(this.firstElement));\n };\n // Width without padding and border even if box-sizing is used.\n lgQuery.prototype.width = function () {\n var style = this.style();\n return (this.firstElement.clientWidth -\n parseFloat(style.paddingLeft) -\n parseFloat(style.paddingRight));\n };\n // Height without padding and border even if box-sizing is used.\n lgQuery.prototype.height = function () {\n var style = this.style();\n return (this.firstElement.clientHeight -\n parseFloat(style.paddingTop) -\n parseFloat(style.paddingBottom));\n };\n lgQuery.eventListeners = {};\n return lgQuery;\n}());\nexports.lgQuery = lgQuery;\nfunction $LG(selector) {\n initLgPolyfills();\n return new lgQuery(selector);\n}\nexports.$LG = $LG;\n//# sourceMappingURL=lgQuery.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightGallery = void 0;\nvar lg_events_1 = require(\"./lg-events\");\nvar lg_settings_1 = require(\"./lg-settings\");\nvar lg_utils_1 = require(\"./lg-utils\");\nvar lgQuery_1 = require(\"./lgQuery\");\n// @ref - https://stackoverflow.com/questions/3971841/how-to-resize-images-proportionally-keeping-the-aspect-ratio\n// @ref - https://2ality.com/2017/04/setting-up-multi-platform-packages.html\n// Unique id for each gallery\nvar lgId = 0;\nvar LightGallery = /** @class */ (function () {\n function LightGallery(element, options) {\n this.lgOpened = false;\n this.index = 0;\n // lightGallery modules\n this.plugins = [];\n // false when lightGallery load first slide content;\n this.lGalleryOn = false;\n // True when a slide animation is in progress\n this.lgBusy = false;\n this.currentItemsInDom = [];\n // Scroll top value before lightGallery is opened\n this.prevScrollTop = 0;\n this.isDummyImageRemoved = false;\n this.dragOrSwipeEnabled = false;\n this.mediaContainerPosition = {\n top: 0,\n bottom: 0,\n };\n if (!element) {\n return this;\n }\n lgId++;\n this.lgId = lgId;\n this.el = element;\n this.LGel = lgQuery_1.$LG(element);\n this.generateSettings(options);\n this.buildModules();\n // When using dynamic mode, ensure dynamicEl is an array\n if (this.settings.dynamic &&\n this.settings.dynamicEl !== undefined &&\n !Array.isArray(this.settings.dynamicEl)) {\n throw 'When using dynamic mode, you must also define dynamicEl as an Array.';\n }\n this.galleryItems = this.getItems();\n this.normalizeSettings();\n // Gallery items\n this.init();\n this.validateLicense();\n return this;\n }\n LightGallery.prototype.generateSettings = function (options) {\n // lightGallery settings\n this.settings = __assign(__assign({}, lg_settings_1.lightGalleryCoreSettings), options);\n if (this.settings.isMobile &&\n typeof this.settings.isMobile === 'function'\n ? this.settings.isMobile()\n : lg_utils_1.default.isMobile()) {\n var mobileSettings = __assign(__assign({}, this.settings.mobileSettings), this.settings.mobileSettings);\n this.settings = __assign(__assign({}, this.settings), mobileSettings);\n }\n };\n LightGallery.prototype.normalizeSettings = function () {\n if (this.settings.slideEndAnimation) {\n this.settings.hideControlOnEnd = false;\n }\n if (!this.settings.closable) {\n this.settings.swipeToClose = false;\n }\n // And reset it on close to get the correct value next time\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\n // At the moment, Zoom from image doesn't support dynamic options\n // @todo add zoomFromOrigin support for dynamic images\n if (this.settings.dynamic) {\n this.zoomFromOrigin = false;\n }\n if (!this.settings.container) {\n this.settings.container = document.body;\n }\n // settings.preload should not be grater than $item.length\n this.settings.preload = Math.min(this.settings.preload, this.galleryItems.length);\n };\n LightGallery.prototype.init = function () {\n var _this = this;\n this.addSlideVideoInfo(this.galleryItems);\n this.buildStructure();\n this.LGel.trigger(lg_events_1.lGEvents.init, {\n instance: this,\n });\n if (this.settings.keyPress) {\n this.keyPress();\n }\n setTimeout(function () {\n _this.enableDrag();\n _this.enableSwipe();\n _this.triggerPosterClick();\n }, 50);\n this.arrow();\n if (this.settings.mousewheel) {\n this.mousewheel();\n }\n if (!this.settings.dynamic) {\n this.openGalleryOnItemClick();\n }\n };\n LightGallery.prototype.openGalleryOnItemClick = function () {\n var _this = this;\n var _loop_1 = function (index) {\n var element = this_1.items[index];\n var $element = lgQuery_1.$LG(element);\n // Using different namespace for click because click event should not unbind if selector is same object('this')\n // @todo manage all event listners - should have namespace that represent element\n var uuid = lgQuery_1.lgQuery.generateUUID();\n $element\n .attr('data-lg-id', uuid)\n .on(\"click.lgcustom-item-\" + uuid, function (e) {\n e.preventDefault();\n var currentItemIndex = _this.settings.index || index;\n _this.openGallery(currentItemIndex, element);\n });\n };\n var this_1 = this;\n // Using for loop instead of using bubbling as the items can be any html element.\n for (var index = 0; index < this.items.length; index++) {\n _loop_1(index);\n }\n };\n /**\n * Module constructor\n * Modules are build incrementally.\n * Gallery should be opened only once all the modules are initialized.\n * use moduleBuildTimeout to make sure this\n */\n LightGallery.prototype.buildModules = function () {\n var _this = this;\n this.settings.plugins.forEach(function (plugin) {\n _this.plugins.push(new plugin(_this, lgQuery_1.$LG));\n });\n };\n LightGallery.prototype.validateLicense = function () {\n if (!this.settings.licenseKey) {\n console.error('Please provide a valid license key');\n }\n else if (this.settings.licenseKey === '0000-0000-000-0000') {\n console.warn(\"lightGallery: \" + this.settings.licenseKey + \" license key is not valid for production use\");\n }\n };\n LightGallery.prototype.getSlideItem = function (index) {\n return lgQuery_1.$LG(this.getSlideItemId(index));\n };\n LightGallery.prototype.getSlideItemId = function (index) {\n return \"#lg-item-\" + this.lgId + \"-\" + index;\n };\n LightGallery.prototype.getIdName = function (id) {\n return id + \"-\" + this.lgId;\n };\n LightGallery.prototype.getElementById = function (id) {\n return lgQuery_1.$LG(\"#\" + this.getIdName(id));\n };\n LightGallery.prototype.manageSingleSlideClassName = function () {\n if (this.galleryItems.length < 2) {\n this.outer.addClass('lg-single-item');\n }\n else {\n this.outer.removeClass('lg-single-item');\n }\n };\n LightGallery.prototype.buildStructure = function () {\n var _this = this;\n var container = this.$container && this.$container.get();\n if (container) {\n return;\n }\n var controls = '';\n var subHtmlCont = '';\n // Create controls\n if (this.settings.controls) {\n controls = \"\\n \";\n }\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\n subHtmlCont =\n '
';\n }\n var addClasses = '';\n if (this.settings.allowMediaOverlap) {\n // Do not remove space before last single quote\n addClasses += 'lg-media-overlap ';\n }\n var ariaLabelledby = this.settings.ariaLabelledby\n ? 'aria-labelledby=\"' + this.settings.ariaLabelledby + '\"'\n : '';\n var ariaDescribedby = this.settings.ariaDescribedby\n ? 'aria-describedby=\"' + this.settings.ariaDescribedby + '\"'\n : '';\n var containerClassName = \"lg-container \" + this.settings.addClass + \" \" + (document.body !== this.settings.container ? 'lg-inline' : '');\n var closeIcon = this.settings.closable && this.settings.showCloseIcon\n ? \"\"\n : '';\n var maximizeIcon = this.settings.showMaximizeIcon\n ? \"\"\n : '';\n var template = \"\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \" + controls + \"\\n
\\n
\\n \" + maximizeIcon + \"\\n \" + closeIcon + \"\\n
\\n \" + (this.settings.appendSubHtmlTo === '.lg-outer'\n ? subHtmlCont\n : '') + \"\\n
\\n \" + (this.settings.appendSubHtmlTo === '.lg-sub-html'\n ? subHtmlCont\n : '') + \"\\n
\\n
\\n
\\n \";\n lgQuery_1.$LG(this.settings.container).append(template);\n if (document.body !== this.settings.container) {\n lgQuery_1.$LG(this.settings.container).css('position', 'relative');\n }\n this.outer = this.getElementById('lg-outer');\n this.$lgComponents = this.getElementById('lg-components');\n this.$backdrop = this.getElementById('lg-backdrop');\n this.$container = this.getElementById('lg-container');\n this.$inner = this.getElementById('lg-inner');\n this.$content = this.getElementById('lg-content');\n this.$toolbar = this.getElementById('lg-toolbar');\n this.$backdrop.css('transition-duration', this.settings.backdropDuration + 'ms');\n var outerClassNames = this.settings.mode + \" \";\n this.manageSingleSlideClassName();\n if (this.settings.enableDrag) {\n outerClassNames += 'lg-grab ';\n }\n this.outer.addClass(outerClassNames);\n this.$inner.css('transition-timing-function', this.settings.easing);\n this.$inner.css('transition-duration', this.settings.speed + 'ms');\n if (this.settings.download) {\n this.$toolbar.append(\"\");\n }\n this.counter();\n lgQuery_1.$LG(window).on(\"resize.lg.global\" + this.lgId + \" orientationchange.lg.global\" + this.lgId, function () {\n _this.refreshOnResize();\n });\n this.hideBars();\n this.manageCloseGallery();\n this.toggleMaximize();\n this.initModules();\n };\n LightGallery.prototype.refreshOnResize = function () {\n if (this.lgOpened) {\n var currentGalleryItem = this.galleryItems[this.index];\n var __slideVideoInfo = currentGalleryItem.__slideVideoInfo;\n this.mediaContainerPosition = this.getMediaContainerPosition();\n var _a = this.mediaContainerPosition, top_1 = _a.top, bottom = _a.bottom;\n this.currentImageSize = lg_utils_1.default.getSize(this.items[this.index], this.outer, top_1 + bottom, __slideVideoInfo && this.settings.videoMaxSize);\n if (__slideVideoInfo) {\n this.resizeVideoSlide(this.index, this.currentImageSize);\n }\n if (this.zoomFromOrigin && !this.isDummyImageRemoved) {\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\n this.outer\n .find('.lg-current .lg-dummy-img')\n .first()\n .attr('style', imgStyle);\n }\n this.LGel.trigger(lg_events_1.lGEvents.containerResize);\n }\n };\n LightGallery.prototype.resizeVideoSlide = function (index, imageSize) {\n var lgVideoStyle = this.getVideoContStyle(imageSize);\n var currentSlide = this.getSlideItem(index);\n currentSlide.find('.lg-video-cont').attr('style', lgVideoStyle);\n };\n /**\n * Update slides dynamically.\n * Add, edit or delete slides dynamically when lightGallery is opened.\n * Modify the current gallery items and pass it via updateSlides method\n * @note\n * - Do not mutate existing lightGallery items directly.\n * - Always pass new list of gallery items\n * - You need to take care of thumbnails outside the gallery if any\n * - user this method only if you want to update slides when the gallery is opened. Otherwise, use `refresh()` method.\n * @param items Gallery items\n * @param index After the update operation, which slide gallery should navigate to\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n *\n * // Adding slides dynamically\n * let galleryItems = [\n * // Access existing lightGallery items\n * // galleryItems are automatically generated internally from the gallery HTML markup\n * // or directly from galleryItems when dynamic gallery is used\n * ...plugin.galleryItems,\n * ...[\n * {\n * src: 'img/img-1.png',\n * thumb: 'img/thumb1.png',\n * },\n * ],\n * ];\n * plugin.updateSlides(\n * galleryItems,\n * plugin.index,\n * );\n *\n *\n * // Remove slides dynamically\n * galleryItems = JSON.parse(\n * JSON.stringify(updateSlideInstance.galleryItems),\n * );\n * galleryItems.shift();\n * updateSlideInstance.updateSlides(galleryItems, 1);\n * @see Demo\n */\n LightGallery.prototype.updateSlides = function (items, index) {\n if (this.index > items.length - 1) {\n this.index = items.length - 1;\n }\n if (items.length === 1) {\n this.index = 0;\n }\n if (!items.length) {\n this.closeGallery();\n return;\n }\n var currentSrc = this.galleryItems[index].src;\n this.galleryItems = items;\n this.updateControls();\n this.$inner.empty();\n this.currentItemsInDom = [];\n var _index = 0;\n // Find the current index based on source value of the slide\n this.galleryItems.some(function (galleryItem, itemIndex) {\n if (galleryItem.src === currentSrc) {\n _index = itemIndex;\n return true;\n }\n return false;\n });\n this.currentItemsInDom = this.organizeSlideItems(_index, -1);\n this.loadContent(_index, true);\n this.getSlideItem(_index).addClass('lg-current');\n this.index = _index;\n this.updateCurrentCounter(_index);\n this.LGel.trigger(lg_events_1.lGEvents.updateSlides);\n };\n // Get gallery items based on multiple conditions\n LightGallery.prototype.getItems = function () {\n // Gallery items\n this.items = [];\n if (!this.settings.dynamic) {\n if (this.settings.selector === 'this') {\n this.items.push(this.el);\n }\n else if (this.settings.selector) {\n if (typeof this.settings.selector === 'string') {\n if (this.settings.selectWithin) {\n var selectWithin = lgQuery_1.$LG(this.settings.selectWithin);\n this.items = selectWithin\n .find(this.settings.selector)\n .get();\n }\n else {\n this.items = this.el.querySelectorAll(this.settings.selector);\n }\n }\n else {\n this.items = this.settings.selector;\n }\n }\n else {\n this.items = this.el.children;\n }\n return lg_utils_1.default.getDynamicOptions(this.items, this.settings.extraProps, this.settings.getCaptionFromTitleOrAlt, this.settings.exThumbImage);\n }\n else {\n return this.settings.dynamicEl || [];\n }\n };\n /**\n * Open lightGallery.\n * Open gallery with specific slide by passing index of the slide as parameter.\n * @category lGPublicMethods\n * @param {Number} index - index of the slide\n * @param {HTMLElement} element - Which image lightGallery should zoom from\n *\n * @example\n * const $dynamicGallery = document.getElementById('dynamic-gallery-demo');\n * const dynamicGallery = lightGallery($dynamicGallery, {\n * dynamic: true,\n * dynamicEl: [\n * {\n * src: 'img/1.jpg',\n * thumb: 'img/thumb-1.jpg',\n * subHtml: '

Image 1 title

Image 1 descriptions.

',\n * },\n * ...\n * ],\n * });\n * $dynamicGallery.addEventListener('click', function () {\n * // Starts with third item.(Optional).\n * // This is useful if you want use dynamic mode with\n * // custom thumbnails (thumbnails outside gallery),\n * dynamicGallery.openGallery(2);\n * });\n *\n */\n LightGallery.prototype.openGallery = function (index, element) {\n var _this = this;\n if (index === void 0) { index = this.settings.index; }\n // prevent accidental double execution\n if (this.lgOpened)\n return;\n this.lgOpened = true;\n this.outer.get().focus();\n this.outer.removeClass('lg-hide-items');\n // Add display block, but still has opacity 0\n this.$container.addClass('lg-show');\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, index);\n this.currentItemsInDom = itemsToBeInsertedToDom;\n var items = '';\n itemsToBeInsertedToDom.forEach(function (item) {\n items = items + (\"
\");\n });\n this.$inner.append(items);\n this.addHtml(index);\n var transform = '';\n this.mediaContainerPosition = this.getMediaContainerPosition();\n var _a = this.mediaContainerPosition, top = _a.top, bottom = _a.bottom;\n if (!this.settings.allowMediaOverlap) {\n this.setMediaContainerPosition(top, bottom);\n }\n var __slideVideoInfo = this.galleryItems[index].__slideVideoInfo;\n if (this.zoomFromOrigin && element) {\n this.currentImageSize = lg_utils_1.default.getSize(element, this.outer, top + bottom, __slideVideoInfo && this.settings.videoMaxSize);\n transform = lg_utils_1.default.getTransform(element, this.outer, top, bottom, this.currentImageSize);\n }\n if (!this.zoomFromOrigin || !transform) {\n this.outer.addClass(this.settings.startClass);\n this.getSlideItem(index).removeClass('lg-complete');\n }\n var timeout = this.settings.zoomFromOrigin\n ? 100\n : this.settings.backdropDuration;\n setTimeout(function () {\n _this.outer.addClass('lg-components-open');\n }, timeout);\n this.index = index;\n this.LGel.trigger(lg_events_1.lGEvents.beforeOpen);\n // add class lg-current to remove initial transition\n this.getSlideItem(index).addClass('lg-current');\n this.lGalleryOn = false;\n // Store the current scroll top value to scroll back after closing the gallery..\n this.prevScrollTop = lgQuery_1.$LG(window).scrollTop();\n setTimeout(function () {\n // Need to check both zoomFromOrigin and transform values as we need to set set the\n // default opening animation if user missed to add the lg-size attribute\n if (_this.zoomFromOrigin && transform) {\n var currentSlide_1 = _this.getSlideItem(index);\n currentSlide_1.css('transform', transform);\n setTimeout(function () {\n currentSlide_1\n .addClass('lg-start-progress lg-start-end-progress')\n .css('transition-duration', _this.settings.startAnimationDuration + 'ms');\n _this.outer.addClass('lg-zoom-from-image');\n });\n setTimeout(function () {\n currentSlide_1.css('transform', 'translate3d(0, 0, 0)');\n }, 100);\n }\n setTimeout(function () {\n _this.$backdrop.addClass('in');\n _this.$container.addClass('lg-show-in');\n }, 10);\n // lg-visible class resets gallery opacity to 1\n if (!_this.zoomFromOrigin || !transform) {\n setTimeout(function () {\n _this.outer.addClass('lg-visible');\n }, _this.settings.backdropDuration);\n }\n // initiate slide function\n _this.slide(index, false, false, false);\n _this.LGel.trigger(lg_events_1.lGEvents.afterOpen);\n });\n if (document.body === this.settings.container) {\n lgQuery_1.$LG('html').addClass('lg-on');\n }\n };\n /**\n * Note - Changing the position of the media on every slide transition creates a flickering effect.\n * Therefore, The height of the caption is calculated dynamically, only once based on the first slide caption.\n * if you have dynamic captions for each media,\n * you can provide an appropriate height for the captions via allowMediaOverlap option\n */\n LightGallery.prototype.getMediaContainerPosition = function () {\n if (this.settings.allowMediaOverlap) {\n return {\n top: 0,\n bottom: 0,\n };\n }\n var top = this.$toolbar.get().clientHeight || 0;\n var subHtml = this.outer.find('.lg-components .lg-sub-html').get();\n var captionHeight = this.settings.defaultCaptionHeight ||\n (subHtml && subHtml.clientHeight) ||\n 0;\n var thumbContainer = this.outer.find('.lg-thumb-outer').get();\n var thumbHeight = thumbContainer ? thumbContainer.clientHeight : 0;\n var bottom = thumbHeight + captionHeight;\n return {\n top: top,\n bottom: bottom,\n };\n };\n LightGallery.prototype.setMediaContainerPosition = function (top, bottom) {\n if (top === void 0) { top = 0; }\n if (bottom === void 0) { bottom = 0; }\n this.$content.css('top', top + 'px').css('bottom', bottom + 'px');\n };\n LightGallery.prototype.hideBars = function () {\n var _this = this;\n // Hide controllers if mouse doesn't move for some period\n setTimeout(function () {\n _this.outer.removeClass('lg-hide-items');\n if (_this.settings.hideBarsDelay > 0) {\n _this.outer.on('mousemove.lg click.lg touchstart.lg', function () {\n _this.outer.removeClass('lg-hide-items');\n clearTimeout(_this.hideBarTimeout);\n // Timeout will be cleared on each slide movement also\n _this.hideBarTimeout = setTimeout(function () {\n _this.outer.addClass('lg-hide-items');\n }, _this.settings.hideBarsDelay);\n });\n _this.outer.trigger('mousemove.lg');\n }\n }, this.settings.showBarsAfter);\n };\n LightGallery.prototype.initPictureFill = function ($img) {\n if (this.settings.supportLegacyBrowser) {\n try {\n picturefill({\n elements: [$img.get()],\n });\n }\n catch (e) {\n console.warn('lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.');\n }\n }\n };\n /**\n * @desc Create image counter\n * Ex: 1/10\n */\n LightGallery.prototype.counter = function () {\n if (this.settings.counter) {\n var counterHtml = \"
\\n \" + (this.index + 1) + \" /\\n \" + this.galleryItems.length + \"
\";\n this.outer.find(this.settings.appendCounterTo).append(counterHtml);\n }\n };\n /**\n * @desc add sub-html into the slide\n * @param {Number} index - index of the slide\n */\n LightGallery.prototype.addHtml = function (index) {\n var subHtml;\n var subHtmlUrl;\n if (this.galleryItems[index].subHtmlUrl) {\n subHtmlUrl = this.galleryItems[index].subHtmlUrl;\n }\n else {\n subHtml = this.galleryItems[index].subHtml;\n }\n if (!subHtmlUrl) {\n if (subHtml) {\n // get first letter of sub-html\n // if first letter starts with . or # get the html form the jQuery object\n var fL = subHtml.substring(0, 1);\n if (fL === '.' || fL === '#') {\n if (this.settings.subHtmlSelectorRelative &&\n !this.settings.dynamic) {\n subHtml = lgQuery_1.$LG(this.items)\n .eq(index)\n .find(subHtml)\n .first()\n .html();\n }\n else {\n subHtml = lgQuery_1.$LG(subHtml).first().html();\n }\n }\n }\n else {\n subHtml = '';\n }\n }\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\n if (subHtmlUrl) {\n this.outer.find('.lg-sub-html').load(subHtmlUrl);\n }\n else {\n this.outer.find('.lg-sub-html').html(subHtml);\n }\n }\n else {\n var currentSlide = lgQuery_1.$LG(this.getSlideItemId(index));\n if (subHtmlUrl) {\n currentSlide.load(subHtmlUrl);\n }\n else {\n currentSlide.append(\"
\" + subHtml + \"
\");\n }\n }\n // Add lg-empty-html class if title doesn't exist\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n if (subHtml === '') {\n this.outer\n .find(this.settings.appendSubHtmlTo)\n .addClass('lg-empty-html');\n }\n else {\n this.outer\n .find(this.settings.appendSubHtmlTo)\n .removeClass('lg-empty-html');\n }\n }\n this.LGel.trigger(lg_events_1.lGEvents.afterAppendSubHtml, {\n index: index,\n });\n };\n /**\n * @desc Preload slides\n * @param {Number} index - index of the slide\n * @todo preload not working for the first slide, Also, should work for the first and last slide as well\n */\n LightGallery.prototype.preload = function (index) {\n for (var i = 1; i <= this.settings.preload; i++) {\n if (i >= this.galleryItems.length - index) {\n break;\n }\n this.loadContent(index + i, false);\n }\n for (var j = 1; j <= this.settings.preload; j++) {\n if (index - j < 0) {\n break;\n }\n this.loadContent(index - j, false);\n }\n };\n LightGallery.prototype.getDummyImgStyles = function (imageSize) {\n if (!imageSize)\n return '';\n return \"width:\" + imageSize.width + \"px;\\n margin-left: -\" + imageSize.width / 2 + \"px;\\n margin-top: -\" + imageSize.height / 2 + \"px;\\n height:\" + imageSize.height + \"px\";\n };\n LightGallery.prototype.getVideoContStyle = function (imageSize) {\n if (!imageSize)\n return '';\n return \"width:\" + imageSize.width + \"px;\\n height:\" + imageSize.height + \"px\";\n };\n LightGallery.prototype.getDummyImageContent = function ($currentSlide, index, alt) {\n var $currentItem;\n if (!this.settings.dynamic) {\n $currentItem = lgQuery_1.$LG(this.items).eq(index);\n }\n if ($currentItem) {\n var _dummyImgSrc = void 0;\n if (!this.settings.exThumbImage) {\n _dummyImgSrc = $currentItem.find('img').first().attr('src');\n }\n else {\n _dummyImgSrc = $currentItem.attr(this.settings.exThumbImage);\n }\n if (!_dummyImgSrc)\n return '';\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\n var dummyImgContent = \"\";\n $currentSlide.addClass('lg-first-slide');\n this.outer.addClass('lg-first-slide-loading');\n return dummyImgContent;\n }\n return '';\n };\n LightGallery.prototype.setImgMarkup = function (src, $currentSlide, index) {\n var currentGalleryItem = this.galleryItems[index];\n var alt = currentGalleryItem.alt, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\n // Use the thumbnail as dummy image which will be resized to actual image size and\n // displayed on top of actual image\n var imgContent = '';\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\n if (this.isFirstSlideWithZoomAnimation()) {\n imgContent = this.getDummyImageContent($currentSlide, index, altAttr);\n }\n else {\n imgContent = lg_utils_1.default.getImgMarkup(index, src, altAttr, srcset, sizes, sources);\n }\n var imgMarkup = \" \" + imgContent + \"\";\n $currentSlide.prepend(imgMarkup);\n };\n LightGallery.prototype.onSlideObjectLoad = function ($slide, isHTML5VideoWithoutPoster, onLoad, onError) {\n var mediaObject = $slide.find('.lg-object').first();\n if (lg_utils_1.default.isImageLoaded(mediaObject.get()) ||\n isHTML5VideoWithoutPoster) {\n onLoad();\n }\n else {\n mediaObject.on('load.lg error.lg', function () {\n onLoad && onLoad();\n });\n mediaObject.on('error.lg', function () {\n onError && onError();\n });\n }\n };\n /**\n *\n * @param $el Current slide item\n * @param index\n * @param delay Delay is 0 except first time\n * @param speed Speed is same as delay, except it is 0 if gallery is opened via hash plugin\n * @param isFirstSlide\n */\n LightGallery.prototype.onLgObjectLoad = function (currentSlide, index, delay, speed, isFirstSlide, isHTML5VideoWithoutPoster) {\n var _this = this;\n this.onSlideObjectLoad(currentSlide, isHTML5VideoWithoutPoster, function () {\n _this.triggerSlideItemLoad(currentSlide, index, delay, speed, isFirstSlide);\n }, function () {\n currentSlide.addClass('lg-complete lg-complete_');\n currentSlide.html('Oops... Failed to load content...');\n });\n };\n LightGallery.prototype.triggerSlideItemLoad = function ($currentSlide, index, delay, speed, isFirstSlide) {\n var _this = this;\n var currentGalleryItem = this.galleryItems[index];\n // Adding delay for video slides without poster for better performance and user experience\n // Videos should start playing once once the gallery is completely loaded\n var _speed = isFirstSlide &&\n this.getSlideType(currentGalleryItem) === 'video' &&\n !currentGalleryItem.poster\n ? speed\n : 0;\n setTimeout(function () {\n $currentSlide.addClass('lg-complete lg-complete_');\n _this.LGel.trigger(lg_events_1.lGEvents.slideItemLoad, {\n index: index,\n delay: delay || 0,\n isFirstSlide: isFirstSlide,\n });\n }, _speed);\n };\n LightGallery.prototype.isFirstSlideWithZoomAnimation = function () {\n return !!(!this.lGalleryOn &&\n this.zoomFromOrigin &&\n this.currentImageSize);\n };\n // Add video slideInfo\n LightGallery.prototype.addSlideVideoInfo = function (items) {\n var _this = this;\n items.forEach(function (element, index) {\n element.__slideVideoInfo = lg_utils_1.default.isVideo(element.src, !!element.video, index);\n if (element.__slideVideoInfo &&\n _this.settings.loadYouTubePoster &&\n !element.poster &&\n element.__slideVideoInfo.youtube) {\n element.poster = \"//img.youtube.com/vi/\" + element.__slideVideoInfo.youtube[1] + \"/maxresdefault.jpg\";\n }\n });\n };\n /**\n * Load slide content into slide.\n * This is used to load content into slides that is not visible too\n * @param {Number} index - index of the slide.\n * @param {Boolean} rec - if true call loadcontent() function again.\n */\n LightGallery.prototype.loadContent = function (index, rec) {\n var _this = this;\n var currentGalleryItem = this.galleryItems[index];\n var $currentSlide = lgQuery_1.$LG(this.getSlideItemId(index));\n var poster = currentGalleryItem.poster, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\n var src = currentGalleryItem.src;\n var video = currentGalleryItem.video;\n var _html5Video = video && typeof video === 'string' ? JSON.parse(video) : video;\n if (currentGalleryItem.responsive) {\n var srcDyItms = currentGalleryItem.responsive.split(',');\n src = lg_utils_1.default.getResponsiveSrc(srcDyItms) || src;\n }\n var videoInfo = currentGalleryItem.__slideVideoInfo;\n var lgVideoStyle = '';\n var iframe = !!currentGalleryItem.iframe;\n var isFirstSlide = !this.lGalleryOn;\n // delay for adding complete class. it is 0 except first time.\n var delay = 0;\n if (isFirstSlide) {\n if (this.zoomFromOrigin && this.currentImageSize) {\n delay = this.settings.startAnimationDuration + 10;\n }\n else {\n delay = this.settings.backdropDuration + 10;\n }\n }\n if (!$currentSlide.hasClass('lg-loaded')) {\n if (videoInfo) {\n var _a = this.mediaContainerPosition, top_2 = _a.top, bottom = _a.bottom;\n var videoSize = lg_utils_1.default.getSize(this.items[index], this.outer, top_2 + bottom, videoInfo && this.settings.videoMaxSize);\n lgVideoStyle = this.getVideoContStyle(videoSize);\n }\n if (iframe) {\n var markup = lg_utils_1.default.getIframeMarkup(this.settings.iframeWidth, this.settings.iframeHeight, this.settings.iframeMaxWidth, this.settings.iframeMaxHeight, src, currentGalleryItem.iframeTitle);\n $currentSlide.prepend(markup);\n }\n else if (poster) {\n var dummyImg = '';\n var hasStartAnimation = isFirstSlide &&\n this.zoomFromOrigin &&\n this.currentImageSize;\n if (hasStartAnimation) {\n dummyImg = this.getDummyImageContent($currentSlide, index, '');\n }\n var markup = lg_utils_1.default.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, this.settings.strings['playVideo'], videoInfo);\n $currentSlide.prepend(markup);\n }\n else if (videoInfo) {\n var markup = \"
\";\n $currentSlide.prepend(markup);\n }\n else {\n this.setImgMarkup(src, $currentSlide, index);\n if (srcset || sources) {\n var $img = $currentSlide.find('.lg-object');\n this.initPictureFill($img);\n }\n }\n if (poster || videoInfo) {\n this.LGel.trigger(lg_events_1.lGEvents.hasVideo, {\n index: index,\n src: src,\n html5Video: _html5Video,\n hasPoster: !!poster,\n });\n }\n this.LGel.trigger(lg_events_1.lGEvents.afterAppendSlide, { index: index });\n if (this.lGalleryOn &&\n this.settings.appendSubHtmlTo === '.lg-item') {\n this.addHtml(index);\n }\n }\n // For first time add some delay for displaying the start animation.\n var _speed = 0;\n // Do not change the delay value because it is required for zoom plugin.\n // If gallery opened from direct url (hash) speed value should be 0\n if (delay && !lgQuery_1.$LG(document.body).hasClass('lg-from-hash')) {\n _speed = delay;\n }\n // Only for first slide and zoomFromOrigin is enabled\n if (this.isFirstSlideWithZoomAnimation()) {\n setTimeout(function () {\n $currentSlide\n .removeClass('lg-start-end-progress lg-start-progress')\n .removeAttr('style');\n }, this.settings.startAnimationDuration + 100);\n if (!$currentSlide.hasClass('lg-loaded')) {\n setTimeout(function () {\n if (_this.getSlideType(currentGalleryItem) === 'image') {\n $currentSlide\n .find('.lg-img-wrap')\n .append(lg_utils_1.default.getImgMarkup(index, src, '', srcset, sizes, currentGalleryItem.sources));\n if (srcset || sources) {\n var $img = $currentSlide.find('.lg-object');\n _this.initPictureFill($img);\n }\n }\n if (_this.getSlideType(currentGalleryItem) === 'image' ||\n (_this.getSlideType(currentGalleryItem) === 'video' &&\n poster)) {\n _this.onLgObjectLoad($currentSlide, index, delay, _speed, true, false);\n // load remaining slides once the slide is completely loaded\n _this.onSlideObjectLoad($currentSlide, !!(videoInfo && videoInfo.html5 && !poster), function () {\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\n }, function () {\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\n });\n }\n }, this.settings.startAnimationDuration + 100);\n }\n }\n // SLide content has been added to dom\n $currentSlide.addClass('lg-loaded');\n if (!this.isFirstSlideWithZoomAnimation() ||\n (this.getSlideType(currentGalleryItem) === 'video' && !poster)) {\n this.onLgObjectLoad($currentSlide, index, delay, _speed, isFirstSlide, !!(videoInfo && videoInfo.html5 && !poster));\n }\n // When gallery is opened once content is loaded (second time) need to add lg-complete class for css styling\n if ((!this.zoomFromOrigin || !this.currentImageSize) &&\n $currentSlide.hasClass('lg-complete_') &&\n !this.lGalleryOn) {\n setTimeout(function () {\n $currentSlide.addClass('lg-complete');\n }, this.settings.backdropDuration);\n }\n // Content loaded\n // Need to set lGalleryOn before calling preload function\n this.lGalleryOn = true;\n if (rec === true) {\n if (!$currentSlide.hasClass('lg-complete_')) {\n $currentSlide\n .find('.lg-object')\n .first()\n .on('load.lg error.lg', function () {\n _this.preload(index);\n });\n }\n else {\n this.preload(index);\n }\n }\n };\n /**\n * @desc Remove dummy image content and load next slides\n * Called only for the first time if zoomFromOrigin animation is enabled\n * @param index\n * @param $currentSlide\n * @param speed\n */\n LightGallery.prototype.loadContentOnFirstSlideLoad = function (index, $currentSlide, speed) {\n var _this = this;\n setTimeout(function () {\n $currentSlide.find('.lg-dummy-img').remove();\n $currentSlide.removeClass('lg-first-slide');\n _this.outer.removeClass('lg-first-slide-loading');\n _this.isDummyImageRemoved = true;\n _this.preload(index);\n }, speed + 300);\n };\n LightGallery.prototype.getItemsToBeInsertedToDom = function (index, prevIndex, numberOfItems) {\n var _this = this;\n if (numberOfItems === void 0) { numberOfItems = 0; }\n var itemsToBeInsertedToDom = [];\n // Minimum 2 items should be there\n var possibleNumberOfItems = Math.max(numberOfItems, 3);\n possibleNumberOfItems = Math.min(possibleNumberOfItems, this.galleryItems.length);\n var prevIndexItem = \"lg-item-\" + this.lgId + \"-\" + prevIndex;\n if (this.galleryItems.length <= 3) {\n this.galleryItems.forEach(function (_element, index) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + _this.lgId + \"-\" + index);\n });\n return itemsToBeInsertedToDom;\n }\n if (index < (this.galleryItems.length - 1) / 2) {\n for (var idx = index; idx > index - possibleNumberOfItems / 2 && idx >= 0; idx--) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\n }\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index + idx + 1));\n }\n }\n else {\n for (var idx = index; idx <= this.galleryItems.length - 1 &&\n idx < index + possibleNumberOfItems / 2; idx++) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\n }\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index - idx - 1));\n }\n }\n if (this.settings.loop) {\n if (index === this.galleryItems.length - 1) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + 0);\n }\n else if (index === 0) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (this.galleryItems.length - 1));\n }\n }\n if (itemsToBeInsertedToDom.indexOf(prevIndexItem) === -1) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + prevIndex);\n }\n return itemsToBeInsertedToDom;\n };\n LightGallery.prototype.organizeSlideItems = function (index, prevIndex) {\n var _this = this;\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, prevIndex, this.settings.numberOfSlideItemsInDom);\n itemsToBeInsertedToDom.forEach(function (item) {\n if (_this.currentItemsInDom.indexOf(item) === -1) {\n _this.$inner.append(\"
\");\n }\n });\n this.currentItemsInDom.forEach(function (item) {\n if (itemsToBeInsertedToDom.indexOf(item) === -1) {\n lgQuery_1.$LG(\"#\" + item).remove();\n }\n });\n return itemsToBeInsertedToDom;\n };\n /**\n * Get previous index of the slide\n */\n LightGallery.prototype.getPreviousSlideIndex = function () {\n var prevIndex = 0;\n try {\n var currentItemId = this.outer\n .find('.lg-current')\n .first()\n .attr('id');\n prevIndex = parseInt(currentItemId.split('-')[3]) || 0;\n }\n catch (error) {\n prevIndex = 0;\n }\n return prevIndex;\n };\n LightGallery.prototype.setDownloadValue = function (index) {\n if (this.settings.download) {\n var currentGalleryItem = this.galleryItems[index];\n var hideDownloadBtn = currentGalleryItem.downloadUrl === false ||\n currentGalleryItem.downloadUrl === 'false';\n if (hideDownloadBtn) {\n this.outer.addClass('lg-hide-download');\n }\n else {\n var $download = this.getElementById('lg-download');\n this.outer.removeClass('lg-hide-download');\n $download.attr('href', currentGalleryItem.downloadUrl ||\n currentGalleryItem.src);\n if (currentGalleryItem.download) {\n $download.attr('download', currentGalleryItem.download);\n }\n }\n }\n };\n LightGallery.prototype.makeSlideAnimation = function (direction, currentSlideItem, previousSlideItem) {\n var _this = this;\n if (this.lGalleryOn) {\n previousSlideItem.addClass('lg-slide-progress');\n }\n setTimeout(function () {\n // remove all transitions\n _this.outer.addClass('lg-no-trans');\n _this.outer\n .find('.lg-item')\n .removeClass('lg-prev-slide lg-next-slide');\n if (direction === 'prev') {\n //prevslide\n currentSlideItem.addClass('lg-prev-slide');\n previousSlideItem.addClass('lg-next-slide');\n }\n else {\n // next slide\n currentSlideItem.addClass('lg-next-slide');\n previousSlideItem.addClass('lg-prev-slide');\n }\n // give 50 ms for browser to add/remove class\n setTimeout(function () {\n _this.outer.find('.lg-item').removeClass('lg-current');\n currentSlideItem.addClass('lg-current');\n // reset all transitions\n _this.outer.removeClass('lg-no-trans');\n }, 50);\n }, this.lGalleryOn ? this.settings.slideDelay : 0);\n };\n /**\n * Goto a specific slide.\n * @param {Number} index - index of the slide\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\n * @param {String} direction - Direction of the slide(next/prev)\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * // to go to 3rd slide\n * plugin.slide(2);\n *\n */\n LightGallery.prototype.slide = function (index, fromTouch, fromThumb, direction) {\n var _this = this;\n var prevIndex = this.getPreviousSlideIndex();\n this.currentItemsInDom = this.organizeSlideItems(index, prevIndex);\n // Prevent multiple call, Required for hsh plugin\n if (this.lGalleryOn && prevIndex === index) {\n return;\n }\n var numberOfGalleryItems = this.galleryItems.length;\n if (!this.lgBusy) {\n if (this.settings.counter) {\n this.updateCurrentCounter(index);\n }\n var currentSlideItem = this.getSlideItem(index);\n var previousSlideItem_1 = this.getSlideItem(prevIndex);\n var currentGalleryItem = this.galleryItems[index];\n var videoInfo = currentGalleryItem.__slideVideoInfo;\n this.outer.attr('data-lg-slide-type', this.getSlideType(currentGalleryItem));\n this.setDownloadValue(index);\n if (videoInfo) {\n var _a = this.mediaContainerPosition, top_3 = _a.top, bottom = _a.bottom;\n var videoSize = lg_utils_1.default.getSize(this.items[index], this.outer, top_3 + bottom, videoInfo && this.settings.videoMaxSize);\n this.resizeVideoSlide(index, videoSize);\n }\n this.LGel.trigger(lg_events_1.lGEvents.beforeSlide, {\n prevIndex: prevIndex,\n index: index,\n fromTouch: !!fromTouch,\n fromThumb: !!fromThumb,\n });\n this.lgBusy = true;\n clearTimeout(this.hideBarTimeout);\n this.arrowDisable(index);\n if (!direction) {\n if (index < prevIndex) {\n direction = 'prev';\n }\n else if (index > prevIndex) {\n direction = 'next';\n }\n }\n if (!fromTouch) {\n this.makeSlideAnimation(direction, currentSlideItem, previousSlideItem_1);\n }\n else {\n this.outer\n .find('.lg-item')\n .removeClass('lg-prev-slide lg-current lg-next-slide');\n var touchPrev = void 0;\n var touchNext = void 0;\n if (numberOfGalleryItems > 2) {\n touchPrev = index - 1;\n touchNext = index + 1;\n if (index === 0 && prevIndex === numberOfGalleryItems - 1) {\n // next slide\n touchNext = 0;\n touchPrev = numberOfGalleryItems - 1;\n }\n else if (index === numberOfGalleryItems - 1 &&\n prevIndex === 0) {\n // prev slide\n touchNext = 0;\n touchPrev = numberOfGalleryItems - 1;\n }\n }\n else {\n touchPrev = 0;\n touchNext = 1;\n }\n if (direction === 'prev') {\n this.getSlideItem(touchNext).addClass('lg-next-slide');\n }\n else {\n this.getSlideItem(touchPrev).addClass('lg-prev-slide');\n }\n currentSlideItem.addClass('lg-current');\n }\n // Do not put load content in set timeout as it needs to load immediately when the gallery is opened\n if (!this.lGalleryOn) {\n this.loadContent(index, true);\n }\n else {\n setTimeout(function () {\n _this.loadContent(index, true);\n // Add title if this.settings.appendSubHtmlTo === lg-sub-html\n if (_this.settings.appendSubHtmlTo !== '.lg-item') {\n _this.addHtml(index);\n }\n }, this.settings.speed + 50 + (fromTouch ? 0 : this.settings.slideDelay));\n }\n setTimeout(function () {\n _this.lgBusy = false;\n previousSlideItem_1.removeClass('lg-slide-progress');\n _this.LGel.trigger(lg_events_1.lGEvents.afterSlide, {\n prevIndex: prevIndex,\n index: index,\n fromTouch: fromTouch,\n fromThumb: fromThumb,\n });\n }, (this.lGalleryOn ? this.settings.speed + 100 : 100) + (fromTouch ? 0 : this.settings.slideDelay));\n }\n this.index = index;\n };\n LightGallery.prototype.updateCurrentCounter = function (index) {\n this.getElementById('lg-counter-current').html(index + 1 + '');\n };\n LightGallery.prototype.updateCounterTotal = function () {\n this.getElementById('lg-counter-all').html(this.galleryItems.length + '');\n };\n LightGallery.prototype.getSlideType = function (item) {\n if (item.__slideVideoInfo) {\n return 'video';\n }\n else if (item.iframe) {\n return 'iframe';\n }\n else {\n return 'image';\n }\n };\n LightGallery.prototype.touchMove = function (startCoords, endCoords, e) {\n var distanceX = endCoords.pageX - startCoords.pageX;\n var distanceY = endCoords.pageY - startCoords.pageY;\n var allowSwipe = false;\n if (this.swipeDirection) {\n allowSwipe = true;\n }\n else {\n if (Math.abs(distanceX) > 15) {\n this.swipeDirection = 'horizontal';\n allowSwipe = true;\n }\n else if (Math.abs(distanceY) > 15) {\n this.swipeDirection = 'vertical';\n allowSwipe = true;\n }\n }\n if (!allowSwipe) {\n return;\n }\n var $currentSlide = this.getSlideItem(this.index);\n if (this.swipeDirection === 'horizontal') {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n // reset opacity and transition duration\n this.outer.addClass('lg-dragging');\n // move current slide\n this.setTranslate($currentSlide, distanceX, 0);\n // move next and prev slide with current slide\n var width = $currentSlide.get().offsetWidth;\n var slideWidthAmount = (width * 15) / 100;\n var gutter = slideWidthAmount - Math.abs((distanceX * 10) / 100);\n this.setTranslate(this.outer.find('.lg-prev-slide').first(), -width + distanceX - gutter, 0);\n this.setTranslate(this.outer.find('.lg-next-slide').first(), width + distanceX + gutter, 0);\n }\n else if (this.swipeDirection === 'vertical') {\n if (this.settings.swipeToClose) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n this.$container.addClass('lg-dragging-vertical');\n var opacity = 1 - Math.abs(distanceY) / window.innerHeight;\n this.$backdrop.css('opacity', opacity);\n var scale = 1 - Math.abs(distanceY) / (window.innerWidth * 2);\n this.setTranslate($currentSlide, 0, distanceY, scale, scale);\n if (Math.abs(distanceY) > 100) {\n this.outer\n .addClass('lg-hide-items')\n .removeClass('lg-components-open');\n }\n }\n }\n };\n LightGallery.prototype.touchEnd = function (endCoords, startCoords, event) {\n var _this = this;\n var distance;\n // keep slide animation for any mode while dragg/swipe\n if (this.settings.mode !== 'lg-slide') {\n this.outer.addClass('lg-slide');\n }\n // set transition duration\n setTimeout(function () {\n _this.$container.removeClass('lg-dragging-vertical');\n _this.outer\n .removeClass('lg-dragging lg-hide-items')\n .addClass('lg-components-open');\n var triggerClick = true;\n if (_this.swipeDirection === 'horizontal') {\n distance = endCoords.pageX - startCoords.pageX;\n var distanceAbs = Math.abs(endCoords.pageX - startCoords.pageX);\n if (distance < 0 &&\n distanceAbs > _this.settings.swipeThreshold) {\n _this.goToNextSlide(true);\n triggerClick = false;\n }\n else if (distance > 0 &&\n distanceAbs > _this.settings.swipeThreshold) {\n _this.goToPrevSlide(true);\n triggerClick = false;\n }\n }\n else if (_this.swipeDirection === 'vertical') {\n distance = Math.abs(endCoords.pageY - startCoords.pageY);\n if (_this.settings.closable &&\n _this.settings.swipeToClose &&\n distance > 100) {\n _this.closeGallery();\n return;\n }\n else {\n _this.$backdrop.css('opacity', 1);\n }\n }\n _this.outer.find('.lg-item').removeAttr('style');\n if (triggerClick &&\n Math.abs(endCoords.pageX - startCoords.pageX) < 5) {\n // Trigger click if distance is less than 5 pix\n var target = lgQuery_1.$LG(event.target);\n if (_this.isPosterElement(target)) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n }\n _this.swipeDirection = undefined;\n });\n // remove slide class once drag/swipe is completed if mode is not slide\n setTimeout(function () {\n if (!_this.outer.hasClass('lg-dragging') &&\n _this.settings.mode !== 'lg-slide') {\n _this.outer.removeClass('lg-slide');\n }\n }, this.settings.speed + 100);\n };\n LightGallery.prototype.enableSwipe = function () {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isMoved = false;\n var isSwiping = false;\n if (this.settings.enableSwipe) {\n this.$inner.on('touchstart.lg', function (e) {\n _this.dragOrSwipeEnabled = true;\n var $item = _this.getSlideItem(_this.index);\n if ((lgQuery_1.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)) &&\n !_this.outer.hasClass('lg-zoomed') &&\n !_this.lgBusy &&\n e.targetTouches.length === 1) {\n isSwiping = true;\n _this.touchAction = 'swipe';\n _this.manageSwipeClass();\n startCoords = {\n pageX: e.targetTouches[0].pageX,\n pageY: e.targetTouches[0].pageY,\n };\n }\n });\n this.$inner.on('touchmove.lg', function (e) {\n if (isSwiping &&\n _this.touchAction === 'swipe' &&\n e.targetTouches.length === 1) {\n endCoords = {\n pageX: e.targetTouches[0].pageX,\n pageY: e.targetTouches[0].pageY,\n };\n _this.touchMove(startCoords, endCoords, e);\n isMoved = true;\n }\n });\n this.$inner.on('touchend.lg', function (event) {\n if (_this.touchAction === 'swipe') {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords, startCoords, event);\n }\n else if (isSwiping) {\n var target = lgQuery_1.$LG(event.target);\n if (_this.isPosterElement(target)) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n }\n _this.touchAction = undefined;\n isSwiping = false;\n }\n });\n }\n };\n LightGallery.prototype.enableDrag = function () {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isDraging = false;\n var isMoved = false;\n if (this.settings.enableDrag) {\n this.outer.on('mousedown.lg', function (e) {\n _this.dragOrSwipeEnabled = true;\n var $item = _this.getSlideItem(_this.index);\n if (lgQuery_1.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)) {\n if (!_this.outer.hasClass('lg-zoomed') && !_this.lgBusy) {\n e.preventDefault();\n if (!_this.lgBusy) {\n _this.manageSwipeClass();\n startCoords = {\n pageX: e.pageX,\n pageY: e.pageY,\n };\n isDraging = true;\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.outer.get().scrollLeft += 1;\n _this.outer.get().scrollLeft -= 1;\n // *\n _this.outer\n .removeClass('lg-grab')\n .addClass('lg-grabbing');\n _this.LGel.trigger(lg_events_1.lGEvents.dragStart);\n }\n }\n }\n });\n lgQuery_1.$LG(window).on(\"mousemove.lg.global\" + this.lgId, function (e) {\n if (isDraging && _this.lgOpened) {\n isMoved = true;\n endCoords = {\n pageX: e.pageX,\n pageY: e.pageY,\n };\n _this.touchMove(startCoords, endCoords);\n _this.LGel.trigger(lg_events_1.lGEvents.dragMove);\n }\n });\n lgQuery_1.$LG(window).on(\"mouseup.lg.global\" + this.lgId, function (event) {\n if (!_this.lgOpened) {\n return;\n }\n var target = lgQuery_1.$LG(event.target);\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords, startCoords, event);\n _this.LGel.trigger(lg_events_1.lGEvents.dragEnd);\n }\n else if (_this.isPosterElement(target)) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n // Prevent execution on click\n if (isDraging) {\n isDraging = false;\n _this.outer.removeClass('lg-grabbing').addClass('lg-grab');\n }\n });\n }\n };\n LightGallery.prototype.triggerPosterClick = function () {\n var _this = this;\n this.$inner.on('click.lg', function (event) {\n if (!_this.dragOrSwipeEnabled &&\n _this.isPosterElement(lgQuery_1.$LG(event.target))) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n });\n };\n LightGallery.prototype.manageSwipeClass = function () {\n var _touchNext = this.index + 1;\n var _touchPrev = this.index - 1;\n if (this.settings.loop && this.galleryItems.length > 2) {\n if (this.index === 0) {\n _touchPrev = this.galleryItems.length - 1;\n }\n else if (this.index === this.galleryItems.length - 1) {\n _touchNext = 0;\n }\n }\n this.outer.find('.lg-item').removeClass('lg-next-slide lg-prev-slide');\n if (_touchPrev > -1) {\n this.getSlideItem(_touchPrev).addClass('lg-prev-slide');\n }\n this.getSlideItem(_touchNext).addClass('lg-next-slide');\n };\n /**\n * Go to next slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * plugin.goToNextSlide();\n * @see Demo\n */\n LightGallery.prototype.goToNextSlide = function (fromTouch) {\n var _this = this;\n var _loop = this.settings.loop;\n if (fromTouch && this.galleryItems.length < 3) {\n _loop = false;\n }\n if (!this.lgBusy) {\n if (this.index + 1 < this.galleryItems.length) {\n this.index++;\n this.LGel.trigger(lg_events_1.lGEvents.beforeNextSlide, {\n index: this.index,\n });\n this.slide(this.index, !!fromTouch, false, 'next');\n }\n else {\n if (_loop) {\n this.index = 0;\n this.LGel.trigger(lg_events_1.lGEvents.beforeNextSlide, {\n index: this.index,\n });\n this.slide(this.index, !!fromTouch, false, 'next');\n }\n else if (this.settings.slideEndAnimation && !fromTouch) {\n this.outer.addClass('lg-right-end');\n setTimeout(function () {\n _this.outer.removeClass('lg-right-end');\n }, 400);\n }\n }\n }\n };\n /**\n * Go to previous slides\n * @param {Boolean} fromTouch - true if slide function called via touch event\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery({});\n * plugin.goToPrevSlide();\n * @see Demo\n *\n */\n LightGallery.prototype.goToPrevSlide = function (fromTouch) {\n var _this = this;\n var _loop = this.settings.loop;\n if (fromTouch && this.galleryItems.length < 3) {\n _loop = false;\n }\n if (!this.lgBusy) {\n if (this.index > 0) {\n this.index--;\n this.LGel.trigger(lg_events_1.lGEvents.beforePrevSlide, {\n index: this.index,\n fromTouch: fromTouch,\n });\n this.slide(this.index, !!fromTouch, false, 'prev');\n }\n else {\n if (_loop) {\n this.index = this.galleryItems.length - 1;\n this.LGel.trigger(lg_events_1.lGEvents.beforePrevSlide, {\n index: this.index,\n fromTouch: fromTouch,\n });\n this.slide(this.index, !!fromTouch, false, 'prev');\n }\n else if (this.settings.slideEndAnimation && !fromTouch) {\n this.outer.addClass('lg-left-end');\n setTimeout(function () {\n _this.outer.removeClass('lg-left-end');\n }, 400);\n }\n }\n }\n };\n LightGallery.prototype.keyPress = function () {\n var _this = this;\n lgQuery_1.$LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\n if (_this.lgOpened &&\n _this.settings.escKey === true &&\n e.keyCode === 27) {\n e.preventDefault();\n if (_this.settings.allowMediaOverlap &&\n _this.outer.hasClass('lg-can-toggle') &&\n _this.outer.hasClass('lg-components-open')) {\n _this.outer.removeClass('lg-components-open');\n }\n else {\n _this.closeGallery();\n }\n }\n if (_this.lgOpened && _this.galleryItems.length > 1) {\n if (e.keyCode === 37) {\n e.preventDefault();\n _this.goToPrevSlide();\n }\n if (e.keyCode === 39) {\n e.preventDefault();\n _this.goToNextSlide();\n }\n }\n });\n };\n LightGallery.prototype.arrow = function () {\n var _this = this;\n this.getElementById('lg-prev').on('click.lg', function () {\n _this.goToPrevSlide();\n });\n this.getElementById('lg-next').on('click.lg', function () {\n _this.goToNextSlide();\n });\n };\n LightGallery.prototype.arrowDisable = function (index) {\n // Disable arrows if settings.hideControlOnEnd is true\n if (!this.settings.loop && this.settings.hideControlOnEnd) {\n var $prev = this.getElementById('lg-prev');\n var $next = this.getElementById('lg-next');\n if (index + 1 === this.galleryItems.length) {\n $next.attr('disabled', 'disabled').addClass('disabled');\n }\n else {\n $next.removeAttr('disabled').removeClass('disabled');\n }\n if (index === 0) {\n $prev.attr('disabled', 'disabled').addClass('disabled');\n }\n else {\n $prev.removeAttr('disabled').removeClass('disabled');\n }\n }\n };\n LightGallery.prototype.setTranslate = function ($el, xValue, yValue, scaleX, scaleY) {\n if (scaleX === void 0) { scaleX = 1; }\n if (scaleY === void 0) { scaleY = 1; }\n $el.css('transform', 'translate3d(' +\n xValue +\n 'px, ' +\n yValue +\n 'px, 0px) scale3d(' +\n scaleX +\n ', ' +\n scaleY +\n ', 1)');\n };\n LightGallery.prototype.mousewheel = function () {\n var _this = this;\n var lastCall = 0;\n this.outer.on('wheel.lg', function (e) {\n if (!e.deltaY || _this.galleryItems.length < 2) {\n return;\n }\n e.preventDefault();\n var now = new Date().getTime();\n if (now - lastCall < 1000) {\n return;\n }\n lastCall = now;\n if (e.deltaY > 0) {\n _this.goToNextSlide();\n }\n else if (e.deltaY < 0) {\n _this.goToPrevSlide();\n }\n });\n };\n LightGallery.prototype.isSlideElement = function (target) {\n return (target.hasClass('lg-outer') ||\n target.hasClass('lg-item') ||\n target.hasClass('lg-img-wrap'));\n };\n LightGallery.prototype.isPosterElement = function (target) {\n var playButton = this.getSlideItem(this.index)\n .find('.lg-video-play-button')\n .get();\n return (target.hasClass('lg-video-poster') ||\n target.hasClass('lg-video-play-button') ||\n (playButton && playButton.contains(target.get())));\n };\n /**\n * Maximize minimize inline gallery.\n * @category lGPublicMethods\n */\n LightGallery.prototype.toggleMaximize = function () {\n var _this = this;\n this.getElementById('lg-maximize').on('click.lg', function () {\n _this.$container.toggleClass('lg-inline');\n _this.refreshOnResize();\n });\n };\n LightGallery.prototype.invalidateItems = function () {\n for (var index = 0; index < this.items.length; index++) {\n var element = this.items[index];\n var $element = lgQuery_1.$LG(element);\n $element.off(\"click.lgcustom-item-\" + $element.attr('data-lg-id'));\n }\n };\n LightGallery.prototype.manageCloseGallery = function () {\n var _this = this;\n if (!this.settings.closable)\n return;\n var mousedown = false;\n this.getElementById('lg-close').on('click.lg', function () {\n _this.closeGallery();\n });\n if (this.settings.closeOnTap) {\n // If you drag the slide and release outside gallery gets close on chrome\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\n this.outer.on('mousedown.lg', function (e) {\n var target = lgQuery_1.$LG(e.target);\n if (_this.isSlideElement(target)) {\n mousedown = true;\n }\n else {\n mousedown = false;\n }\n });\n this.outer.on('mousemove.lg', function () {\n mousedown = false;\n });\n this.outer.on('mouseup.lg', function (e) {\n var target = lgQuery_1.$LG(e.target);\n if (_this.isSlideElement(target) && mousedown) {\n if (!_this.outer.hasClass('lg-dragging')) {\n _this.closeGallery();\n }\n }\n });\n }\n };\n /**\n * Close lightGallery if it is opened.\n *\n * @description If closable is false in the settings, you need to pass true via closeGallery method to force close gallery\n * @return returns the estimated time to close gallery completely including the close animation duration\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * plugin.closeGallery();\n *\n */\n LightGallery.prototype.closeGallery = function (force) {\n var _this = this;\n if (!this.lgOpened || (!this.settings.closable && !force)) {\n return 0;\n }\n this.LGel.trigger(lg_events_1.lGEvents.beforeClose);\n lgQuery_1.$LG(window).scrollTop(this.prevScrollTop);\n var currentItem = this.items[this.index];\n var transform;\n if (this.zoomFromOrigin && currentItem) {\n var _a = this.mediaContainerPosition, top_4 = _a.top, bottom = _a.bottom;\n var _b = this.galleryItems[this.index], __slideVideoInfo = _b.__slideVideoInfo, poster = _b.poster;\n var imageSize = lg_utils_1.default.getSize(currentItem, this.outer, top_4 + bottom, __slideVideoInfo && poster && this.settings.videoMaxSize);\n transform = lg_utils_1.default.getTransform(currentItem, this.outer, top_4, bottom, imageSize);\n }\n if (this.zoomFromOrigin && transform) {\n this.outer.addClass('lg-closing lg-zoom-from-image');\n this.getSlideItem(this.index)\n .addClass('lg-start-end-progress')\n .css('transition-duration', this.settings.startAnimationDuration + 'ms')\n .css('transform', transform);\n }\n else {\n this.outer.addClass('lg-hide-items');\n // lg-zoom-from-image is used for setting the opacity to 1 if zoomFromOrigin is true\n // If the closing item doesn't have the lg-size attribute, remove this class to avoid the closing css conflicts\n this.outer.removeClass('lg-zoom-from-image');\n }\n // Unbind all events added by lightGallery\n // @todo\n //this.$el.off('.lg.tm');\n this.destroyModules();\n this.lGalleryOn = false;\n this.isDummyImageRemoved = false;\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\n clearTimeout(this.hideBarTimeout);\n this.hideBarTimeout = false;\n lgQuery_1.$LG('html').removeClass('lg-on');\n this.outer.removeClass('lg-visible lg-components-open');\n // Resetting opacity to 0 isd required as vertical swipe to close function adds inline opacity.\n this.$backdrop.removeClass('in').css('opacity', 0);\n var removeTimeout = this.zoomFromOrigin && transform\n ? Math.max(this.settings.startAnimationDuration, this.settings.backdropDuration)\n : this.settings.backdropDuration;\n this.$container.removeClass('lg-show-in');\n // Once the closign animation is completed and gallery is invisible\n setTimeout(function () {\n if (_this.zoomFromOrigin && transform) {\n _this.outer.removeClass('lg-zoom-from-image');\n }\n _this.$container.removeClass('lg-show');\n // Need to remove inline opacity as it is used in the stylesheet as well\n _this.$backdrop\n .removeAttr('style')\n .css('transition-duration', _this.settings.backdropDuration + 'ms');\n _this.outer.removeClass(\"lg-closing \" + _this.settings.startClass);\n _this.getSlideItem(_this.index).removeClass('lg-start-end-progress');\n _this.$inner.empty();\n if (_this.lgOpened) {\n _this.LGel.trigger(lg_events_1.lGEvents.afterClose, {\n instance: _this,\n });\n }\n if (_this.outer.get()) {\n _this.outer.get().blur();\n }\n _this.lgOpened = false;\n }, removeTimeout + 100);\n return removeTimeout + 100;\n };\n LightGallery.prototype.initModules = function () {\n this.plugins.forEach(function (module) {\n try {\n module.init();\n }\n catch (err) {\n console.warn(\"lightGallery:- make sure lightGallery module is properly initiated\");\n }\n });\n };\n LightGallery.prototype.destroyModules = function (destroy) {\n this.plugins.forEach(function (module) {\n try {\n if (destroy) {\n module.destroy();\n }\n else {\n module.closeGallery && module.closeGallery();\n }\n }\n catch (err) {\n console.warn(\"lightGallery:- make sure lightGallery module is properly destroyed\");\n }\n });\n };\n /**\n * Refresh lightGallery with new set of children.\n *\n * @description This is useful to update the gallery when the child elements are changed without calling destroy method.\n *\n * If you are using dynamic mode, you can pass the modified array of dynamicEl as the first parameter to refresh the dynamic gallery\n * @see Demo\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * // Delete or add children, then call\n * plugin.refresh();\n *\n */\n LightGallery.prototype.refresh = function (galleryItems) {\n if (!this.settings.dynamic) {\n this.invalidateItems();\n }\n if (galleryItems) {\n this.galleryItems = galleryItems;\n }\n else {\n this.galleryItems = this.getItems();\n }\n this.updateControls();\n this.openGalleryOnItemClick();\n this.LGel.trigger(lg_events_1.lGEvents.updateSlides);\n };\n LightGallery.prototype.updateControls = function () {\n this.addSlideVideoInfo(this.galleryItems);\n this.updateCounterTotal();\n this.manageSingleSlideClassName();\n };\n /**\n * Destroy lightGallery.\n * Destroy lightGallery and its plugin instances completely\n *\n * @description This method also calls CloseGallery function internally. Returns the time takes to completely close and destroy the instance.\n * In case if you want to re-initialize lightGallery right after destroying it, initialize it only once the destroy process is completed.\n * You can use refresh method most of the times.\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * plugin.destroy();\n *\n */\n LightGallery.prototype.destroy = function () {\n var _this = this;\n var closeTimeout = this.closeGallery(true);\n setTimeout(function () {\n _this.destroyModules(true);\n if (!_this.settings.dynamic) {\n _this.invalidateItems();\n }\n lgQuery_1.$LG(window).off(\".lg.global\" + _this.lgId);\n _this.LGel.off('.lg');\n _this.$container.remove();\n }, closeTimeout);\n return closeTimeout;\n };\n return LightGallery;\n}());\nexports.LightGallery = LightGallery;\n//# sourceMappingURL=lightgallery.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function dotCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \".\" }, options));\n}\n//# sourceMappingURL=index.js.map","import { paramCase, } from 'change-case';\r\nexport function solvePluginName(pluginName) {\r\n const fileName = paramCase(pluginName);\r\n const folderName = pluginName[2].toLowerCase() + pluginName.replace(/^lg\\w/, '');\r\n return `${folderName}/${fileName}`;\r\n}\r\nexport const handleResult = (result) => result.status == 'fulfilled' ? result.value.default : console.error('加载lightGallery的插件时出错啦!', result.reason);\r\n","import { __assign } from \"tslib\";\nimport { dotCase } from \"dot-case\";\nexport function paramCase(input, options) {\n if (options === void 0) { options = {}; }\n return dotCase(input, __assign({ delimiter: \"-\" }, options));\n}\n//# sourceMappingURL=index.js.map","//@ts-ignore\r\nimport lightGallery from 'lightgallery/lib/index.js';\r\nimport 'lightgallery/css/lightgallery-bundle.min.css';\r\nimport { handleResult, solvePluginName } from './util';\r\n;\r\nexport default async function initLightGallery() {\r\n const { plugins, ...opts } = _iro.lightGallery;\r\n lightGallery(document.querySelector('.entry-content'), {\r\n plugins: plugins && (await Promise.allSettled(plugins.map(\r\n //moduleNameFormat: lgHash->lg-hash\r\n name => import(\r\n /* webpackChunkName: \"lg-\" */\r\n 'lightgallery/plugins/' + solvePluginName(name) + '.min.js'))))\r\n .map(handleResult),\r\n ...opts\r\n });\r\n}\r\n","var map = {\n\t\"./autoplay/lg-autoplay.min.js\": [\n\t\t539,\n\t\t963\n\t],\n\t\"./comment/lg-comment.min.js\": [\n\t\t7590,\n\t\t388\n\t],\n\t\"./fullscreen/lg-fullscreen.min.js\": [\n\t\t5606,\n\t\t18\n\t],\n\t\"./hash/lg-hash.min.js\": [\n\t\t4153,\n\t\t173\n\t],\n\t\"./mediumZoom/lg-medium-zoom.min.js\": [\n\t\t2564,\n\t\t440\n\t],\n\t\"./pager/lg-pager.min.js\": [\n\t\t3963,\n\t\t637\n\t],\n\t\"./relativeCaption/lg-relative-caption.min.js\": [\n\t\t8999,\n\t\t478\n\t],\n\t\"./rotate/lg-rotate.min.js\": [\n\t\t8845,\n\t\t868\n\t],\n\t\"./share/lg-share.min.js\": [\n\t\t4,\n\t\t558\n\t],\n\t\"./thumbnail/lg-thumbnail.min.js\": [\n\t\t5131,\n\t\t730\n\t],\n\t\"./video/lg-video.min.js\": [\n\t\t7647,\n\t\t441\n\t],\n\t\"./zoom/lg-zoom.min.js\": [\n\t\t7295,\n\t\t453\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 7 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 8497;\nmodule.exports = webpackAsyncContext;"],"names":["lightgallery_1","exports","el","options","LightGallery","Object","defineProperty","value","lGEvents","afterAppendSlide","init","hasVideo","containerResize","updateSlides","afterAppendSubHtml","beforeOpen","afterOpen","slideItemLoad","beforeSlide","afterSlide","posterClick","dragStart","dragMove","dragEnd","beforeNextSlide","beforePrevSlide","beforeClose","afterClose","rotateLeft","rotateRight","flipHorizontal","flipVertical","autoplay","autoplayStart","autoplayStop","lightGalleryCoreSettings","mode","easing","speed","licenseKey","height","width","addClass","startClass","backdropDuration","container","startAnimationDuration","zoomFromOrigin","hideBarsDelay","showBarsAfter","slideDelay","supportLegacyBrowser","allowMediaOverlap","videoMaxSize","loadYouTubePoster","defaultCaptionHeight","ariaLabelledby","ariaDescribedby","closable","swipeToClose","closeOnTap","showCloseIcon","showMaximizeIcon","loop","escKey","keyPress","controls","slideEndAnimation","hideControlOnEnd","mousewheel","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","preload","numberOfSlideItemsInDom","selector","selectWithin","nextHtml","prevHtml","index","iframeWidth","iframeHeight","iframeMaxWidth","iframeMaxHeight","download","counter","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","dynamic","dynamicEl","extraProps","exThumbImage","isMobile","undefined","mobileSettings","plugins","strings","closeGallery","toggleMaximize","previousSlide","nextSlide","playVideo","__spreadArrays","this","s","i","il","arguments","length","r","Array","k","a","j","jl","convertToData","lgQuery_1","defaultDynamicOptions","attr","replace","charAt","toLowerCase","slice","g","toUpperCase","utils","getSize","spacing","defaultLgSize","lgSize","$LG","isResponsiveSizes","split","wWidth","window","innerWidth","size_1","parseInt","size","cWidth","cHeight","maxWidth","Math","min","maxHeight","ratio","getTransform","top","bottom","imageSize","LGel","find","first","get","containerRect","getBoundingClientRect","wHeight","elWidth","elHeight","elStyle","style","x","offset","left","parseFloat","paddingLeft","borderLeft","scrollLeft","y","paddingTop","borderTop","scrollTop","getIframeMarkup","src","iframeTitle","getImgMarkup","altAttr","srcset","sizes","sources","imgMarkup","sourceTag","JSON","parse","map","source","attrs","keys","forEach","key","getResponsiveSrc","srcItms","rsWidth","rsSrc","_src","splice","push","isImageLoaded","img","complete","naturalWidth","getVideoPosterMarkup","_poster","dummyImg","videoContStyle","playVideoString","_isVideo","youtube","vimeo","getDynamicOptions","items","dynamicElements","availableDynamicOptions","call","item","attributes","specified","dynamicAttr","name","label","indexOf","currentItem","alt","title","thumb","subHtml","test","navigator","userAgent","isVideo","isHTML5VIdeo","html5","console","error","match","wistia","lgQuery","cssVenderPrefixes","_getSelector","firstElement","_getFirstEl","generateUUID","c","random","toString","prototype","context","document","substring","querySelector","querySelectorAll","_each","func","_setCssVendorPrefix","cssProperty","property","group1","isEventMatched","event","eventName","eventNamespace","filter","e","every","getAttribute","setAttribute","eq","parent","parentElement","removeAttr","removeAttribute","wrap","className","wrapper","createElement","parentNode","insertBefore","removeChild","appendChild","classNames","classList","add","removeClass","remove","hasClass","contains","hasAttribute","attribute","toggleClass","css","_this","on","events","listener","isArray","eventListeners","addEventListener","once","off","removeEventListener","trigger","detail","customEvent","CustomEvent","dispatchEvent","load","url","fetch","then","res","text","html","innerHTML","append","insertAdjacentHTML","prepend","empty","body","documentElement","pageYOffset","pageXOffset","rect","bodyMarginLeft","marginLeft","currentStyle","getComputedStyle","clientWidth","paddingRight","clientHeight","paddingBottom","params","bubbles","cancelable","evt","createEvent","initCustomEvent","Element","matches","msMatchesSelector","webkitMatchesSelector","__assign","assign","t","n","p","hasOwnProperty","apply","lg_events_1","lg_settings_1","lg_utils_1","lgId","element","lgOpened","lGalleryOn","lgBusy","currentItemsInDom","prevScrollTop","isDummyImageRemoved","dragOrSwipeEnabled","mediaContainerPosition","generateSettings","buildModules","settings","galleryItems","getItems","normalizeSettings","validateLicense","default","addSlideVideoInfo","buildStructure","instance","setTimeout","triggerPosterClick","arrow","openGalleryOnItemClick","_loop_1","this_1","$element","uuid","preventDefault","currentItemIndex","openGallery","plugin","warn","getSlideItem","getSlideItemId","getIdName","id","getElementById","manageSingleSlideClassName","outer","$container","subHtmlCont","addClasses","containerClassName","closeIcon","maximizeIcon","template","$lgComponents","$backdrop","$inner","$content","$toolbar","outerClassNames","refreshOnResize","hideBars","manageCloseGallery","initModules","__slideVideoInfo","getMediaContainerPosition","_a","top_1","currentImageSize","resizeVideoSlide","imgStyle","getDummyImgStyles","lgVideoStyle","getVideoContStyle","currentSrc","updateControls","_index","some","galleryItem","itemIndex","organizeSlideItems","loadContent","updateCurrentCounter","children","focus","itemsToBeInsertedToDom","getItemsToBeInsertedToDom","addHtml","transform","setMediaContainerPosition","timeout","currentSlide_1","slide","captionHeight","thumbContainer","clearTimeout","hideBarTimeout","initPictureFill","$img","picturefill","elements","counterHtml","subHtmlUrl","fL","currentSlide","getDummyImageContent","$currentSlide","$currentItem","_dummyImgSrc","dummyImgContent","setImgMarkup","currentGalleryItem","isFirstSlideWithZoomAnimation","onSlideObjectLoad","$slide","isHTML5VideoWithoutPoster","onLoad","onError","mediaObject","onLgObjectLoad","delay","isFirstSlide","triggerSlideItemLoad","_speed","getSlideType","poster","video","rec","_html5Video","responsive","srcDyItms","videoInfo","iframe","top_2","videoSize","markup","html5Video","hasPoster","loadContentOnFirstSlideLoad","prevIndex","numberOfItems","possibleNumberOfItems","max","prevIndexItem","_element","idx","numberOfExistingItems","getPreviousSlideIndex","currentItemId","setDownloadValue","downloadUrl","$download","makeSlideAnimation","direction","currentSlideItem","previousSlideItem","fromTouch","fromThumb","numberOfGalleryItems","previousSlideItem_1","top_3","arrowDisable","touchPrev","touchNext","updateCounterTotal","touchMove","startCoords","endCoords","distanceX","pageX","distanceY","pageY","allowSwipe","swipeDirection","abs","setTranslate","offsetWidth","gutter","opacity","innerHeight","scale","touchEnd","distance","triggerClick","distanceAbs","goToNextSlide","goToPrevSlide","target","isPosterElement","isMoved","isSwiping","$item","targetTouches","touchAction","manageSwipeClass","isDraging","_touchNext","_touchPrev","_loop","keyCode","$prev","$next","$el","xValue","yValue","scaleX","scaleY","lastCall","deltaY","now","Date","getTime","isSlideElement","playButton","invalidateItems","mousedown","force","top_4","_b","destroyModules","removeTimeout","blur","module","err","destroy","refresh","closeTimeout","create","lowerCase","str","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","input","re","RegExp","reduce","dotCase","splitRegexp","stripRegexp","_c","_d","delimiter","result","start","end","join","noCase","solvePluginName","pluginName","fileName","handleResult","status","reason","async","initLightGallery","opts","_iro","lightGallery","Promise","allSettled","webpackAsyncContext","req","__webpack_require__","o","resolve","Error","code","ids"],"sourceRoot":""} \ No newline at end of file diff --git a/js/16.js b/js/16.js deleted file mode 100644 index bc3bc57d..00000000 --- a/js/16.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(){var t={5229:function(t,r,n){var e=n(7841);t.exports={name:"lab",min:[0,-100,-100],max:[100,100,100],channel:["lightness","a","b"],alias:["LAB","cielab"],xyz:function(t){var r,n,e,o,a=t[0],i=t[1],u=t[2];return a<=8?o=(n=100*a/903.3)/100*7.787+16/116:(n=100*Math.pow((a+16)/116,3),o=Math.pow(n/100,1/3)),[r=r/95.047<=.008856?r=95.047*(i/500+o-16/116)/7.787:95.047*Math.pow(i/500+o,3),n,e=e/108.883<=.008859?e=108.883*(o-u/200-16/116)/7.787:108.883*Math.pow(o-u/200,3)]}},e.lab=function(t){var r=t[0],n=t[1],e=t[2];return n/=100,e/=108.883,r=(r/=95.047)>.008856?Math.pow(r,1/3):7.787*r+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(r-n),200*(n-(e=e>.008856?Math.pow(e,1/3):7.787*e+16/116))]}},2409:function(t){t.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},7841:function(t,r,n){var e=n(2409),o={name:"xyz",min:[0,0,0],channel:["X","Y","Z"],alias:["XYZ","ciexyz","cie1931"],whitepoint:{2:{A:[109.85,100,35.585],C:[98.074,100,118.232],D50:[96.422,100,82.521],D55:[95.682,100,92.149],D65:[95.045592705167,100,108.9057750759878],D75:[94.972,100,122.638],F2:[99.187,100,67.395],F7:[95.044,100,108.755],F11:[100.966,100,64.37],E:[100,100,100]},10:{A:[111.144,100,35.2],C:[97.285,100,116.145],D50:[96.72,100,81.427],D55:[95.799,100,90.926],D65:[94.811,100,107.304],D75:[94.416,100,120.641],F2:[103.28,100,69.026],F7:[95.792,100,107.687],F11:[103.866,100,65.627],E:[100,100,100]}}};o.max=o.whitepoint[2].D65,o.rgb=function(t,r){r=r||o.whitepoint[2].E;var n,e,a,i=t[0]/r[0],u=t[1]/r[1],f=t[2]/r[2];return e=-.96924363628087*i+1.87596750150772*u+.041555057407175*f,a=.055630079696993*i+-.20397695888897*u+1.056971514242878*f,n=(n=3.240969941904521*i+-1.537383177570093*u+-.498610760293*f)>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*=12.92,[255*(n=Math.min(Math.max(0,n),1)),255*(e=Math.min(Math.max(0,e),1)),255*(a=Math.min(Math.max(0,a),1))]},e.xyz=function(t,r){var n=t[0]/255,e=t[1]/255,a=t[2]/255,i=.21263900587151*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.71516867876775*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.072192315360733*(a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92),u=.019330818715591*n+.11919477979462*e+.95053215224966*a;return[(.41239079926595*n+.35758433938387*e+.18048078840183*a)*(r=r||o.whitepoint[2].E)[0],i*r[1],u*r[2]]},t.exports=o},9847:function(t){t.exports=function(t){function r(t,r,n,e){function o(r){"function"!=typeof self.postMessage?t.ports[0].postMessage(r):self.postMessage(r)}n?("undefined"!=typeof console&&"error"in console&&console.error("Worker caught an error:",n),o([r,{message:n.message}])):o([r,null,e])}self.addEventListener("message",(function(n){var e=n.data;if(Array.isArray(e)&&2===e.length){var o=e[0],a=e[1];"function"!=typeof t?r(n,o,new Error("Please pass a function into register().")):function(t,n,e,o){var a,i=function(t,r){try{return{res:t(r)}}catch(t){return{err:t}}}(n,o);i.err?r(t,e,i.err):!(a=i.res)||"object"!=typeof a&&"function"!=typeof a||"function"!=typeof a.then?r(t,e,null,i.res):i.res.then((function(n){r(t,e,null,n)}),(function(n){r(t,e,n)}))}(n,t,o,a)}}))}}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(r,{a:r}),r},n.d=function(t,r){for(var e in r)n.o(r,e)&&!n.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:r[e]})},n.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t=n(2409),r=n(7841);n(5229);function e(t,r,n){var e=t[r++]-n[0],o=t[r++]-n[1],a=t[r++]-n[2],i=t[r++]-n[3];return Math.pow(e,2)+Math.pow(o,2)+Math.pow(a,2)+Math.pow(i,2)}function o(t,r){for(var n=[],e=0;e{const{img:a,k:i,iteration:u}=n;return function(t,r,n,a){void 0===a&&(a=1);for(var i,u,f,s,c,h=[],p=[],l=[],v=0,M=0;M 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n","/**\n * RGB space.\n *\n * @module color-space/rgb\n */\n'use strict'\n\nmodule.exports = {\n\tname: 'rgb',\n\tmin: [0,0,0],\n\tmax: [255,255,255],\n\tchannel: ['red', 'green', 'blue'],\n\talias: ['RGB']\n};\n","/**\n * CIE XYZ\n *\n * @module color-space/xyz\n */\n'use strict'\n\nvar rgb = require('./rgb');\n\nvar xyz = {\n\tname: 'xyz',\n\tmin: [0,0,0],\n\tchannel: ['X','Y','Z'],\n\talias: ['XYZ', 'ciexyz', 'cie1931']\n};\n\n\n/**\n * Whitepoint reference values with observer/illuminant\n *\n * http://en.wikipedia.org/wiki/Standard_illuminant\n */\nxyz.whitepoint = {\n\t//1931 2°\n\t2: {\n\t\t//incadescent\n\t\tA:[109.85, 100, 35.585],\n\t\t// B:[],\n\t\tC: [98.074, 100, 118.232],\n\t\tD50: [96.422, 100, 82.521],\n\t\tD55: [95.682, 100, 92.149],\n\t\t//daylight\n\t\tD65: [95.045592705167, 100, 108.9057750759878],\n\t\tD75: [94.972, 100, 122.638],\n\t\t//flourescent\n\t\t// F1: [],\n\t\tF2: [99.187, 100, 67.395],\n\t\t// F3: [],\n\t\t// F4: [],\n\t\t// F5: [],\n\t\t// F6:[],\n\t\tF7: [95.044, 100, 108.755],\n\t\t// F8: [],\n\t\t// F9: [],\n\t\t// F10: [],\n\t\tF11: [100.966, 100, 64.370],\n\t\t// F12: [],\n\t\tE: [100,100,100]\n\t},\n\n\t//1964 10°\n\t10: {\n\t\t//incadescent\n\t\tA:[111.144, 100, 35.200],\n\t\tC: [97.285, 100, 116.145],\n\t\tD50: [96.720, 100, 81.427],\n\t\tD55: [95.799, 100, 90.926],\n\t\t//daylight\n\t\tD65: [94.811, 100, 107.304],\n\t\tD75: [94.416, 100, 120.641],\n\t\t//flourescent\n\t\tF2: [103.280, 100, 69.026],\n\t\tF7: [95.792, 100, 107.687],\n\t\tF11: [103.866, 100, 65.627],\n\t\tE: [100,100,100]\n\t}\n};\n\n\n/**\n * Top values are the whitepoint’s top values, default are D65\n */\nxyz.max = xyz.whitepoint[2].D65;\n\n\n/**\n * Transform xyz to rgb\n *\n * @param {Array} xyz Array of xyz values\n *\n * @return {Array} RGB values\n */\nxyz.rgb = function (_xyz, white) {\n\t//FIXME: make sure we have to divide like this. Probably we have to replace matrix as well then\n\twhite = white || xyz.whitepoint[2].E;\n\n\tvar x = _xyz[0] / white[0],\n\t\ty = _xyz[1] / white[1],\n\t\tz = _xyz[2] / white[2],\n\t\tr, g, b;\n\n\t// assume sRGB\n\t// http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\tr = (x * 3.240969941904521) + (y * -1.537383177570093) + (z * -0.498610760293);\n\tg = (x * -0.96924363628087) + (y * 1.87596750150772) + (z * 0.041555057407175);\n\tb = (x * 0.055630079696993) + (y * -0.20397695888897) + (z * 1.056971514242878);\n\n\tr = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r = (r * 12.92);\n\n\tg = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g = (g * 12.92);\n\n\tb = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b = (b * 12.92);\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n}\n\n\n\n/**\n * RGB to XYZ\n *\n * @param {Array} rgb RGB channels\n *\n * @return {Array} XYZ channels\n */\nrgb.xyz = function(rgb, white) {\n\tvar r = rgb[0] / 255,\n\t\t\tg = rgb[1] / 255,\n\t\t\tb = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.41239079926595) + (g * 0.35758433938387) + (b * 0.18048078840183);\n\tvar y = (r * 0.21263900587151) + (g * 0.71516867876775) + (b * 0.072192315360733);\n\tvar z = (r * 0.019330818715591) + (g * 0.11919477979462) + (b * 0.95053215224966);\n\n\twhite = white || xyz.whitepoint[2].E;\n\n\treturn [x * white[0], y * white[1], z * white[2]];\n};\n\n\n\nmodule.exports = xyz;\n","'use strict'\n\nfunction isPromise (obj) {\n // via https://unpkg.com/is-promise@2.1.0/index.js\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\n}\n\nfunction registerPromiseWorker (callback) {\n function postOutgoingMessage (e, messageId, error, result) {\n function postMessage (msg) {\n /* istanbul ignore if */\n if (typeof self.postMessage !== 'function') { // service worker\n e.ports[0].postMessage(msg)\n } else { // web worker\n self.postMessage(msg)\n }\n }\n if (error) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined' && 'error' in console) {\n // This is to make errors easier to debug. I think it's important\n // enough to just leave here without giving the user an option\n // to silence it.\n console.error('Worker caught an error:', error)\n }\n postMessage([messageId, {\n message: error.message\n }])\n } else {\n postMessage([messageId, null, result])\n }\n }\n\n function tryCatchFunc (callback, message) {\n try {\n return { res: callback(message) }\n } catch (e) {\n return { err: e }\n }\n }\n\n function handleIncomingMessage (e, callback, messageId, message) {\n var result = tryCatchFunc(callback, message)\n\n if (result.err) {\n postOutgoingMessage(e, messageId, result.err)\n } else if (!isPromise(result.res)) {\n postOutgoingMessage(e, messageId, null, result.res)\n } else {\n result.res.then(function (finalResult) {\n postOutgoingMessage(e, messageId, null, finalResult)\n }, function (finalError) {\n postOutgoingMessage(e, messageId, finalError)\n })\n }\n }\n\n function onIncomingMessage (e) {\n var payload = e.data\n if (!Array.isArray(payload) || payload.length !== 2) {\n // message doens't match communication format; ignore\n return\n }\n var messageId = payload[0]\n var message = payload[1]\n\n if (typeof callback !== 'function') {\n postOutgoingMessage(e, messageId, new Error(\n 'Please pass a function into register().'))\n } else {\n handleIncomingMessage(e, callback, messageId, message)\n }\n }\n\n self.addEventListener('message', onIncomingMessage)\n}\n\nmodule.exports = registerPromiseWorker\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","import r from\"color-space/rgb.js\";import t from\"color-space/xyz.js\";import n from\"color-space/lab.js\";function e(r,t,n){var e=r[t++]-n[0],a=r[t++]-n[1],o=r[t++]-n[2],i=r[t++]-n[3];return Math.pow(e,2)+Math.pow(a,2)+Math.pow(o,2)+Math.pow(i,2)}function a(r,t,n,a){void 0===a&&(a=1);for(var i,u,f,l,c,v=[],h=[],s=[],d=0,m=0;m1){var i=e/Math.sqrt(o),u=a/Math.sqrt(o),f=r(i,u);return null==f||f.drawImage(t,0,0,i,u),null==f?void 0:f.getImageData(0,0,i,u)}var l=r(e,a);return null==l||l.drawImage(t,0,0),null==l?void 0:l.getImageData(0,0,e,a)}function m(r,t){(null==t||t>r.length)&&(t=r.length);for(var n=0,e=new Array(t);n(o=e[1])?o>i?[a,i]:a>i?[a,o]:[i,o]:o>i?i>a?[o,a]:[o,i]:[i,a]),f=u[0],l=u[1],c=f-l,v=f+l;if(0==c)t=0,n=0;else{if(f==r[0]){var h=60*(r[1]-r[2])/c;t=h<0?h+360:h}else t=f==r[1]?60*(r[2]-r[0])/c+120:60*(r[0]-r[1])/c+240;n=0==v?0:v<=1?c/v:c/(2-v)}return[t,n,v/2,r[3]]}var y=function(r){return void 0===r&&(r=[0,1,2,3]),function(t,n){for(var e,a,o=function(r,t){var n=\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(n)return(n=n.call(r)).next.bind(n);if(Array.isArray(r)||(n=function(r,t){if(r){if(\"string\"==typeof r)return m(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);return\"Object\"===n&&r.constructor&&(n=r.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(r):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(r,t):void 0}}(r))){n&&(r=n);var e=0;return function(){return e>=r.length?{done:!0}:{done:!1,value:r[e++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}(r);!(a=o()).done;){var i=a.value;if(0!=(e=t[i]-n[i]))return e}return e}},b=function(r){return\"hsla(\"+r[0]+\"deg,\"+100*r[1]+\"%,\"+100*r[2]+\"%,\"+r[3]+\")\"},w=function(r){return\"rgba(\"+r.map(function(r){return Math.floor(r)}).join(\",\")+\")\"};function M(n){for(var e=[],a=0;a {\n const { img, k, iteration } = data;\n const result = kmeans(convertToLab(img.data), k, iteration);\n return result;\n});\n"],"names":["xyz","module","exports","name","min","max","channel","alias","lab","x","y","z","y2","l","a","b","Math","pow","rgb","A","C","D50","D55","D65","D75","F2","F7","F11","E","whitepoint","_xyz","white","r","g","callback","postOutgoingMessage","e","messageId","error","result","postMessage","msg","self","ports","console","message","addEventListener","payload","data","Array","isArray","length","Error","obj","res","err","tryCatchFunc","then","finalResult","finalError","handleIncomingMessage","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","key","o","Object","defineProperty","enumerable","get","prop","prototype","hasOwnProperty","call","t","i","push","img","k","iteration","u","f","c","v","h","s","m","p","floor","random","from","slice","w","M","I","j","S","sqrt","centroid","fit","label","map","size","q","D","O","apply","concat"],"sourceRoot":""} \ No newline at end of file diff --git a/js/192.js b/js/192.js deleted file mode 100644 index 67f5f72f..00000000 --- a/js/192.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunksakurairo_scripts=self.webpackChunksakurairo_scripts||[]).push([[192],{5192:function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var s=i(5541);e.default=function(t,e){return new s.LightGallery(t,e)}},6259:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.lGEvents=void 0,e.lGEvents={afterAppendSlide:"lgAfterAppendSlide",init:"lgInit",hasVideo:"lgHasVideo",containerResize:"lgContainerResize",updateSlides:"lgUpdateSlides",afterAppendSubHtml:"lgAfterAppendSubHtml",beforeOpen:"lgBeforeOpen",afterOpen:"lgAfterOpen",slideItemLoad:"lgSlideItemLoad",beforeSlide:"lgBeforeSlide",afterSlide:"lgAfterSlide",posterClick:"lgPosterClick",dragStart:"lgDragStart",dragMove:"lgDragMove",dragEnd:"lgDragEnd",beforeNextSlide:"lgBeforeNextSlide",beforePrevSlide:"lgBeforePrevSlide",beforeClose:"lgBeforeClose",afterClose:"lgAfterClose",rotateLeft:"lgRotateLeft",rotateRight:"lgRotateRight",flipHorizontal:"lgFlipHorizontal",flipVertical:"lgFlipVertical"}},4974:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.lightGalleryCoreSettings=void 0,e.lightGalleryCoreSettings={mode:"lg-slide",easing:"ease",speed:400,licenseKey:"0000-0000-000-0000",height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:300,container:"",startAnimationDuration:400,zoomFromOrigin:!0,hideBarsDelay:0,showBarsAfter:1e4,slideDelay:0,supportLegacyBrowser:!0,allowMediaOverlap:!1,videoMaxSize:"1280-720",loadYouTubePoster:!0,defaultCaptionHeight:0,ariaLabelledby:"",ariaDescribedby:"",closable:!0,swipeToClose:!0,closeOnTap:!0,showCloseIcon:!0,showMaximizeIcon:!1,loop:!0,escKey:!0,keyPress:!0,controls:!0,slideEndAnimation:!0,hideControlOnEnd:!1,mousewheel:!1,getCaptionFromTitleOrAlt:!0,appendSubHtmlTo:".lg-sub-html",subHtmlSelectorRelative:!1,preload:2,numberOfSlideItemsInDom:10,selector:"",selectWithin:"",nextHtml:"",prevHtml:"",index:0,iframeWidth:"100%",iframeHeight:"100%",iframeMaxWidth:"100%",iframeMaxHeight:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],extraProps:[],exThumbImage:"",isMobile:void 0,mobileSettings:{controls:!1,showCloseIcon:!1,download:!1},plugins:[]}},9526:function(t,e,i){var s=this&&this.__spreadArrays||function(){for(var t=0,e=0,i=arguments.length;el){o=d;break}a===r.length-1&&(o=d)}var g=o.split("-"),h=parseInt(g[0],10),u=parseInt(g[1],10),c=e.width(),m=e.height()-i,p=Math.min(c,h),f=Math.min(m,u),v=Math.min(p/h,f/u);return{width:h*v,height:u*v}}},getTransform:function(t,e,i,s,o){if(o){var r=n.$LG(t).find("img").first();if(r.get()){var l=e.get().getBoundingClientRect(),a=l.width,d=e.height()-(i+s),g=r.width(),h=r.height(),u=r.style(),c=(a-g)/2-r.offset().left+(parseFloat(u.paddingLeft)||0)+(parseFloat(u.borderLeft)||0)+n.$LG(window).scrollLeft()+l.left,m=(d-h)/2-r.offset().top+(parseFloat(u.paddingTop)||0)+(parseFloat(u.borderTop)||0)+n.$LG(window).scrollTop()+i;return"translate3d("+(c*=-1)+"px, "+(m*=-1)+"px, 0) scale3d("+g/o.width+", "+h/o.height+", 1)"}}},getIframeMarkup:function(t,e,i,s,n,o){return'
\n \n
'},getImgMarkup:function(t,e,i,s,n,o){var r="',l="";o&&(l=("string"==typeof o?JSON.parse(o):o).map((function(t){var e="";return Object.keys(t).forEach((function(i){e+=" "+i+'="'+t[i]+'"'})),""})));return""+l+r},getResponsiveSrc:function(t){for(var e=[],i=[],s="",n=0;nr){s=i[l];break}return s},isImageLoaded:function(t){return!!t&&(!!t.complete&&0!==t.naturalWidth)},getVideoPosterMarkup:function(t,e,i,s){return'
\n
\n \n Play video\n \n \n \n \n \n \n \n
\n '+(e||"")+'\n \n
'},getDynamicOptions:function(t,e,i,l){var a=[],d=s(o,e);return[].forEach.call(t,(function(t){for(var e={},s=0;s-1&&(h=g),h&&(e[h]=o.value)}}var u=n.$LG(t),c=u.find("img").first().attr("alt"),m=u.attr("title"),p=l?u.attr(l):u.find("img").first().attr("src");e.thumb=p,i&&!e.subHtml&&(e.subHtml=m||c||""),e.alt=c||m||"",a.push(e)})),a},isMobile:function(){return/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)},isVideo:function(t,e,i){if(!t)return e?{html5:!0}:void console.error("lightGallery :- data-src is not provided on slide item "+(i+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");var s=t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),n=t.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),o=t.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);return s?{youtube:s}:n?{vimeo:n}:o?{wistia:o}:void 0}};e.default=l},6228:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.$LG=e.lgQuery=void 0;var i=function(){function t(t){return this.cssVenderPrefixes=["TransitionDuration","TransitionTimingFunction","Transform","Transition"],this.selector=this._getSelector(t),this.firstElement=this._getFirstEl(),this}return t.generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))},t.prototype._getSelector=function(t,e){return void 0===e&&(e=document),"string"!=typeof t?t:(e=e||document,"#"===t.substring(0,1)?e.querySelector(t):e.querySelectorAll(t))},t.prototype._each=function(t){return this.selector?(void 0!==this.selector.length?[].forEach.call(this.selector,t):t(this.selector,0),this):this},t.prototype._setCssVendorPrefix=function(t,e,i){var s=e.replace(/-([a-z])/gi,(function(t,e){return e.toUpperCase()}));-1!==this.cssVenderPrefixes.indexOf(s)?(t.style[s.charAt(0).toLowerCase()+s.slice(1)]=i,t.style["webkit"+s]=i,t.style["moz"+s]=i,t.style["ms"+s]=i,t.style["o"+s]=i):t.style[s]=i},t.prototype._getFirstEl=function(){return this.selector&&void 0!==this.selector.length?this.selector[0]:this.selector},t.prototype.isEventMatched=function(t,e){var i=e.split(".");return t.split(".").filter((function(t){return t})).every((function(t){return-1!==i.indexOf(t)}))},t.prototype.attr=function(t,e){return void 0===e?this.firstElement?this.firstElement.getAttribute(t):"":(this._each((function(i){i.setAttribute(t,e)})),this)},t.prototype.find=function(t){return s(this._getSelector(t,this.selector))},t.prototype.first=function(){return this.selector&&void 0!==this.selector.length?s(this.selector[0]):s(this.selector)},t.prototype.eq=function(t){return s(this.selector[t])},t.prototype.parent=function(){return s(this.selector.parentElement)},t.prototype.get=function(){return this._getFirstEl()},t.prototype.removeAttr=function(t){var e=t.split(" ");return this._each((function(t){e.forEach((function(e){return t.removeAttribute(e)}))})),this},t.prototype.wrap=function(t){if(!this.firstElement)return this;var e=document.createElement("div");return e.className=t,this.firstElement.parentNode.insertBefore(e,this.firstElement),this.firstElement.parentNode.removeChild(this.firstElement),e.appendChild(this.firstElement),this},t.prototype.addClass=function(t){return void 0===t&&(t=""),this._each((function(e){t.split(" ").forEach((function(t){t&&e.classList.add(t)}))})),this},t.prototype.removeClass=function(t){return this._each((function(e){t.split(" ").forEach((function(t){t&&e.classList.remove(t)}))})),this},t.prototype.hasClass=function(t){return!!this.firstElement&&this.firstElement.classList.contains(t)},t.prototype.hasAttribute=function(t){return!!this.firstElement&&this.firstElement.hasAttribute(t)},t.prototype.toggleClass=function(t){return this.firstElement?(this.hasClass(t)?this.removeClass(t):this.addClass(t),this):this},t.prototype.css=function(t,e){var i=this;return this._each((function(s){i._setCssVendorPrefix(s,t,e)})),this},t.prototype.on=function(e,i){var s=this;return this.selector?(e.split(" ").forEach((function(e){Array.isArray(t.eventListeners[e])||(t.eventListeners[e]=[]),t.eventListeners[e].push(i),s.selector.addEventListener(e.split(".")[0],i)})),this):this},t.prototype.once=function(t,e){var i=this;return this.on(t,(function(){i.off(t),e(t)})),this},t.prototype.off=function(e){var i=this;return this.selector?(Object.keys(t.eventListeners).forEach((function(s){i.isEventMatched(e,s)&&(t.eventListeners[s].forEach((function(t){i.selector.removeEventListener(s.split(".")[0],t)})),t.eventListeners[s]=[])})),this):this},t.prototype.trigger=function(t,e){if(!this.firstElement)return this;var i=new CustomEvent(t.split(".")[0],{detail:e||null});return this.firstElement.dispatchEvent(i),this},t.prototype.load=function(t){var e=this;return fetch(t).then((function(t){e.selector.innerHTML=t})),this},t.prototype.html=function(t){return void 0===t?this.firstElement?this.firstElement.innerHTML:"":(this._each((function(e){e.innerHTML=t})),this)},t.prototype.append=function(t){return this._each((function(e){"string"==typeof t?e.insertAdjacentHTML("beforeend",t):e.appendChild(t)})),this},t.prototype.prepend=function(t){return this._each((function(e){e.insertAdjacentHTML("afterbegin",t)})),this},t.prototype.remove=function(){return this._each((function(t){t.parentNode.removeChild(t)})),this},t.prototype.empty=function(){return this._each((function(t){t.innerHTML=""})),this},t.prototype.scrollTop=function(t){return void 0!==t?(document.body.scrollTop=t,document.documentElement.scrollTop=t,this):window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},t.prototype.scrollLeft=function(t){return void 0!==t?(document.body.scrollLeft=t,document.documentElement.scrollLeft=t,this):window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0},t.prototype.offset=function(){if(!this.firstElement)return{left:0,top:0};var t=this.firstElement.getBoundingClientRect(),e=s("body").style().marginLeft;return{left:t.left-parseFloat(e)+this.scrollLeft(),top:t.top+this.scrollTop()}},t.prototype.style=function(){return this.firstElement?this.firstElement.currentStyle||window.getComputedStyle(this.firstElement):{}},t.prototype.width=function(){var t=this.style();return this.firstElement.clientWidth-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)},t.prototype.height=function(){var t=this.style();return this.firstElement.clientHeight-parseFloat(t.paddingTop)-parseFloat(t.paddingBottom)},t.eventListeners={},t}();function s(t){return function(){if("function"==typeof window.CustomEvent)return!1;window.CustomEvent=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var i=document.createEvent("CustomEvent");return i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),i}}(),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),new i(t)}e.lgQuery=i,e.$LG=s},5541:function(t,e,i){var s=this&&this.__assign||function(){return(s=Object.assign||function(t){for(var e,i=1,s=arguments.length;i '+this.settings.prevHtml+' \n "),".lg-item"!==this.settings.appendSubHtmlTo&&(i='
');var s="";this.settings.allowMediaOverlap&&(s+="lg-media-overlap ");var n=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",r=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",l="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),a=this.settings.closable&&this.settings.showCloseIcon?'':"",d=this.settings.showMaximizeIcon?'':"",g='\n \n ";o.$LG(this.settings.container).css("position","relative").append(g),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var h=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(h+="lg-grab "),this.outer.addClass(h),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append(''),this.counter(),o.$LG(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,(function(){t.refreshOnResize()})),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},t.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index].__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var e=this.mediaContainerPosition,i=e.top,s=e.bottom;if(this.currentImageSize=n.default.getSize(this.items[this.index],this.outer,i+s,t&&this.settings.videoMaxSize),t&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var o=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",o)}this.LGel.trigger(l.lGEvents.containerResize)}},t.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e);this.getSlideItem(t).find(".lg-video-cont").attr("style",i)},t.prototype.updateSlides=function(t,e){if(this.index>t.length-1&&(this.index=t.length-1),1===t.length&&(this.index=0),t.length){var i=this.galleryItems[e].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some((function(t,e){return t.src===i&&(s=e,!0)})),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(l.lGEvents.updateSlides)}else this.closeGallery()},t.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if("this"===this.settings.selector)this.items.push(this.el);else if(this.settings.selector)if("string"==typeof this.settings.selector)if(this.settings.selectWithin){var t=o.$LG(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return n.default.getDynamicOptions(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},t.prototype.openGallery=function(t,e){var i=this;if(void 0===t&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.get().focus(),this.outer.removeClass("lg-hide-items"),this.$container.addClass("lg-show");var s=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=s;var r="";s.forEach((function(t){r=r+'
'})),this.$inner.append(r),this.addHtml(t);var a="";this.mediaContainerPosition=this.getMediaContainerPosition();var d=this.mediaContainerPosition,g=d.top,h=d.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(g,h);var u=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=n.default.getSize(e,this.outer,g+h,u&&this.settings.videoMaxSize),a=n.default.getTransform(e,this.outer,g,h,this.currentImageSize)),this.zoomFromOrigin&&a||(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var c=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout((function(){i.outer.addClass("lg-components-open")}),c),this.index=t,this.LGel.trigger(l.lGEvents.beforeOpen),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=o.$LG(window).scrollTop(),setTimeout((function(){if(i.zoomFromOrigin&&a){var e=i.getSlideItem(t);e.css("transform",a),setTimeout((function(){e.addClass("lg-start-progress lg-start-end-progress").css("transition-duration",i.settings.startAnimationDuration+"ms"),i.outer.addClass("lg-zoom-from-image")})),setTimeout((function(){e.css("transform","translate3d(0, 0, 0)")}),100)}setTimeout((function(){i.$backdrop.addClass("in"),i.$container.addClass("lg-show-in")}),10),i.zoomFromOrigin&&a||setTimeout((function(){i.outer.addClass("lg-visible")}),i.settings.backdropDuration),i.slide(t,!1,!1,!1),i.LGel.trigger(l.lGEvents.afterOpen)})),document.body===this.settings.container&&o.$LG("html").addClass("lg-on")}},t.prototype.getMediaContainerPosition=function(){if(this.settings.allowMediaOverlap)return{top:0,bottom:0};var t=this.$toolbar.get().clientHeight||0,e=this.outer.find(".lg-components .lg-sub-html").get(),i=this.settings.defaultCaptionHeight||e&&e.clientHeight||0,s=this.outer.find(".lg-thumb-outer").get();return{top:t,bottom:(s?s.clientHeight:0)+i}},t.prototype.setMediaContainerPosition=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.$content.css("top",t+"px").css("bottom",e+"px")},t.prototype.hideBars=function(){var t=this;setTimeout((function(){t.outer.removeClass("lg-hide-items"),t.settings.hideBarsDelay>0&&(t.outer.on("mousemove.lg click.lg touchstart.lg",(function(){t.outer.removeClass("lg-hide-items"),clearTimeout(t.hideBarTimeout),t.hideBarTimeout=setTimeout((function(){t.outer.addClass("lg-hide-items")}),t.settings.hideBarsDelay)})),t.outer.trigger("mousemove.lg"))}),this.settings.showBarsAfter)},t.prototype.initPictureFill=function(t){if(this.settings.supportLegacyBrowser)try{picturefill({elements:[t.get()]})}catch(t){console.warn("lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.")}},t.prototype.counter=function(){if(this.settings.counter){var t='
\n '+(this.index+1)+' /\n '+this.galleryItems.length+"
";this.outer.find(this.settings.appendCounterTo).append(t)}},t.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var s=e.substring(0,1);"."!==s&&"#"!==s||(e=this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?o.$LG(this.items).eq(t).find(e).first().html():o.$LG(e).first().html())}else e="";if(".lg-item"!==this.settings.appendSubHtmlTo)i?this.outer.find(".lg-sub-html").load(i):this.outer.find(".lg-sub-html").html(e);else{var n=o.$LG(this.getSlideItemId(t));i?n.load(i):n.append('
'+e+"
")}null!=e&&(""===e?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger(l.lGEvents.afterAppendSubHtml,{index:t})},t.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},t.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+"px;\n margin-left: -"+t.width/2+"px;\n margin-top: -"+t.height/2+"px;\n height:"+t.height+"px":""},t.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+"px;\n height:"+t.height+"px":""},t.prototype.getDummyImageContent=function(t,e,i){var s;if(this.settings.dynamic||(s=o.$LG(this.items).eq(e)),s){var n=void 0;if(!(n=this.settings.exThumbImage?s.attr(this.settings.exThumbImage):s.find("img").first().attr("src")))return"";var r="';return t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),r}return""},t.prototype.setImgMarkup=function(t,e,i){var s=this.galleryItems[i],o=s.alt,r=s.srcset,l=s.sizes,a=s.sources,d=o?'alt="'+o+'"':"",g=' '+(this.isFirstSlideWithZoomAnimation()?this.getDummyImageContent(e,i,d):n.default.getImgMarkup(i,t,d,r,l,a))+"";e.prepend(g)},t.prototype.onSlideObjectLoad=function(t,e,i,s){var o=t.find(".lg-object").first();n.default.isImageLoaded(o.get())||e?i():(o.on("load.lg error.lg",(function(){i&&i()})),o.on("error.lg",(function(){s&&s()})))},t.prototype.onLgObjectLoad=function(t,e,i,s,n,o){var r=this;this.onSlideObjectLoad(t,o,(function(){r.triggerSlideItemLoad(t,e,i,s,n)}),(function(){t.addClass("lg-complete lg-complete_"),t.html('Oops... Failed to load content...')}))},t.prototype.triggerSlideItemLoad=function(t,e,i,s,n){var o=this,r=this.galleryItems[e],a=n&&"video"===this.getSlideType(r)&&!r.poster?s:0;setTimeout((function(){t.addClass("lg-complete lg-complete_"),o.LGel.trigger(l.lGEvents.slideItemLoad,{index:e,delay:i||0,isFirstSlide:n})}),a)},t.prototype.isFirstSlideWithZoomAnimation=function(){return!(this.lGalleryOn||!this.zoomFromOrigin||!this.currentImageSize)},t.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach((function(t,i){t.__slideVideoInfo=n.default.isVideo(t.src,!!t.video,i),t.__slideVideoInfo&&e.settings.loadYouTubePoster&&!t.poster&&t.__slideVideoInfo.youtube&&(t.poster="//img.youtube.com/vi/"+t.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")}))},t.prototype.loadContent=function(t,e){var i=this,s=this.galleryItems[t],r=o.$LG(this.getSlideItemId(t)),a=s.poster,d=s.srcset,g=s.sizes,h=s.sources,u=s.src,c=s.video,m=c&&"string"==typeof c?JSON.parse(c):c;if(s.responsive){var p=s.responsive.split(",");u=n.default.getResponsiveSrc(p)||u}var f=s.__slideVideoInfo,v="",y=!!s.iframe,b=!this.lGalleryOn,C=0;if(b&&(C=this.zoomFromOrigin&&this.currentImageSize?this.settings.startAnimationDuration+10:this.settings.backdropDuration+10),!r.hasClass("lg-loaded")){if(f){var I=this.mediaContainerPosition,S=I.top,x=I.bottom,w=n.default.getSize(this.items[t],this.outer,S+x,f&&this.settings.videoMaxSize);v=this.getVideoContStyle(w)}if(y){var E=n.default.getIframeMarkup(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,u,s.iframeTitle);r.prepend(E)}else if(a){var T="";b&&this.zoomFromOrigin&&this.currentImageSize&&(T=this.getDummyImageContent(r,t,""));E=n.default.getVideoPosterMarkup(a,T||"",v,f);r.prepend(E)}else if(f){E='
';r.prepend(E)}else if(this.setImgMarkup(u,r,t),d||h){var G=r.find(".lg-object");this.initPictureFill(G)}(a||f)&&this.LGel.trigger(l.lGEvents.hasVideo,{index:t,src:u,html5Video:m,hasPoster:!!a}),this.LGel.trigger(l.lGEvents.afterAppendSlide,{index:t}),this.lGalleryOn&&".lg-item"===this.settings.appendSubHtmlTo&&this.addHtml(t)}var L=0;C&&!o.$LG(document.body).hasClass("lg-from-hash")&&(L=C),this.isFirstSlideWithZoomAnimation()&&(setTimeout((function(){r.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")}),this.settings.startAnimationDuration+100),r.hasClass("lg-loaded")||setTimeout((function(){if("image"===i.getSlideType(s)&&(r.find(".lg-img-wrap").append(n.default.getImgMarkup(t,u,"",d,g,s.sources)),d||h)){var e=r.find(".lg-object");i.initPictureFill(e)}("image"===i.getSlideType(s)||"video"===i.getSlideType(s)&&a)&&(i.onLgObjectLoad(r,t,C,L,!0,!1),i.onSlideObjectLoad(r,!(!f||!f.html5||a),(function(){i.loadContentOnFirstSlideLoad(t,r,L)}),(function(){i.loadContentOnFirstSlideLoad(t,r,L)})))}),this.settings.startAnimationDuration+100)),r.addClass("lg-loaded"),this.isFirstSlideWithZoomAnimation()&&("video"!==this.getSlideType(s)||a)||this.onLgObjectLoad(r,t,C,L,b,!(!f||!f.html5||a)),this.zoomFromOrigin&&this.currentImageSize||!r.hasClass("lg-complete_")||this.lGalleryOn||setTimeout((function(){r.addClass("lg-complete")}),this.settings.backdropDuration),this.lGalleryOn=!0,!0===e&&(r.hasClass("lg-complete_")?this.preload(t):r.find(".lg-object").first().on("load.lg error.lg",(function(){i.preload(t)})))},t.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var s=this;setTimeout((function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),s.outer.removeClass("lg-first-slide-loading"),s.isDummyImageRemoved=!0,s.preload(t)}),i+300)},t.prototype.getItemsToBeInsertedToDom=function(t,e,i){var s=this;void 0===i&&(i=0);var n=[],o=Math.max(i,3);o=Math.min(o,this.galleryItems.length);var r="lg-item-"+this.lgId+"-"+e;if(this.galleryItems.length<=3)return this.galleryItems.forEach((function(t,e){n.push("lg-item-"+s.lgId+"-"+e)})),n;if(t<(this.galleryItems.length-1)/2){for(var l=t;l>t-o/2&&l>=0;l--)n.push("lg-item-"+this.lgId+"-"+l);var a=n.length;for(l=0;l
')})),this.currentItemsInDom.forEach((function(t){-1===s.indexOf(t)&&o.$LG("#"+t).remove()})),s},t.prototype.getPreviousSlideIndex=function(){var t=0;try{var e=this.outer.find(".lg-current").first().attr("id");t=parseInt(e.split("-")[3])||0}catch(e){t=0}return t},t.prototype.setDownloadValue=function(t){if(this.settings.download){var e=this.galleryItems[t];if(!1===e.downloadUrl||"false"===e.downloadUrl)this.outer.addClass("lg-hide-download");else{var i=this.getElementById("lg-download");this.outer.removeClass("lg-hide-download"),i.attr("href",e.downloadUrl||e.src),e.download&&i.attr("download",e.download)}}},t.prototype.makeSlideAnimation=function(t,e,i){var s=this;this.lGalleryOn&&i.addClass("lg-slide-progress"),setTimeout((function(){s.outer.addClass("lg-no-trans"),s.outer.find(".lg-item").removeClass("lg-prev-slide lg-next-slide"),"prev"===t?(e.addClass("lg-prev-slide"),i.addClass("lg-next-slide")):(e.addClass("lg-next-slide"),i.addClass("lg-prev-slide")),setTimeout((function(){s.outer.find(".lg-item").removeClass("lg-current"),e.addClass("lg-current"),s.outer.removeClass("lg-no-trans")}),50)}),this.lGalleryOn?this.settings.slideDelay:0)},t.prototype.slide=function(t,e,i,s){var o=this,r=this.getPreviousSlideIndex();if(this.currentItemsInDom=this.organizeSlideItems(t,r),!this.lGalleryOn||r!==t){var a=this.galleryItems.length;if(!this.lgBusy){this.settings.counter&&this.updateCurrentCounter(t);var d=this.getSlideItem(t),g=this.getSlideItem(r),h=this.galleryItems[t],u=h.__slideVideoInfo;if(this.outer.attr("data-lg-slide-type",this.getSlideType(h)),this.setDownloadValue(t),u){var c=this.mediaContainerPosition,m=c.top,p=c.bottom,f=n.default.getSize(this.items[t],this.outer,m+p,u&&this.settings.videoMaxSize);this.resizeVideoSlide(t,f)}if(this.LGel.trigger(l.lGEvents.beforeSlide,{prevIndex:r,index:t,fromTouch:!!e,fromThumb:!!i}),this.lgBusy=!0,clearTimeout(this.hideBarTimeout),this.arrowDisable(t),s||(tr&&(s="next")),e){this.outer.find(".lg-item").removeClass("lg-prev-slide lg-current lg-next-slide");var v=void 0,y=void 0;a>2?(v=t-1,y=t+1,(0===t&&r===a-1||t===a-1&&0===r)&&(y=0,v=a-1)):(v=0,y=1),"prev"===s?this.getSlideItem(y).addClass("lg-next-slide"):this.getSlideItem(v).addClass("lg-prev-slide"),d.addClass("lg-current")}else this.makeSlideAnimation(s,d,g);this.lGalleryOn?setTimeout((function(){o.loadContent(t,!0),".lg-item"!==o.settings.appendSubHtmlTo&&o.addHtml(t)}),this.settings.speed+50+(e?0:this.settings.slideDelay)):this.loadContent(t,!0),setTimeout((function(){o.lgBusy=!1,g.removeClass("lg-slide-progress"),o.LGel.trigger(l.lGEvents.afterSlide,{prevIndex:r,index:t,fromTouch:e,fromThumb:i})}),(this.lGalleryOn?this.settings.speed+100:100)+(e?0:this.settings.slideDelay))}this.index=t}},t.prototype.updateCurrentCounter=function(t){this.getElementById("lg-counter-current").html(t+1+"")},t.prototype.updateCounterTotal=function(){this.getElementById("lg-counter-all").html(this.galleryItems.length+"")},t.prototype.getSlideType=function(t){return t.__slideVideoInfo?"video":t.iframe?"iframe":"image"},t.prototype.touchMove=function(t,e,i){var s=e.pageX-t.pageX,n=e.pageY-t.pageY,o=!1;if(this.swipeDirection?o=!0:Math.abs(s)>15?(this.swipeDirection="horizontal",o=!0):Math.abs(n)>15&&(this.swipeDirection="vertical",o=!0),o){var r=this.getSlideItem(this.index);if("horizontal"===this.swipeDirection){null==i||i.preventDefault(),this.outer.addClass("lg-dragging"),this.setTranslate(r,s,0);var l=r.get().offsetWidth,a=15*l/100-Math.abs(10*s/100);this.setTranslate(this.outer.find(".lg-prev-slide").first(),-l+s-a,0),this.setTranslate(this.outer.find(".lg-next-slide").first(),l+s+a,0)}else if("vertical"===this.swipeDirection&&this.settings.swipeToClose){null==i||i.preventDefault(),this.$container.addClass("lg-dragging-vertical");var d=1-Math.abs(n)/window.innerHeight;this.$backdrop.css("opacity",d);var g=1-Math.abs(n)/(2*window.innerWidth);this.setTranslate(r,0,n,g,g),Math.abs(n)>100&&this.outer.addClass("lg-hide-items").removeClass("lg-components-open")}}},t.prototype.touchEnd=function(t,e,i){var s,n=this;"lg-slide"!==this.settings.mode&&this.outer.addClass("lg-slide"),setTimeout((function(){n.$container.removeClass("lg-dragging-vertical"),n.outer.removeClass("lg-dragging lg-hide-items").addClass("lg-components-open");var r=!0;if("horizontal"===n.swipeDirection){s=t.pageX-e.pageX;var a=Math.abs(t.pageX-e.pageX);s<0&&a>n.settings.swipeThreshold?(n.goToNextSlide(!0),r=!1):s>0&&a>n.settings.swipeThreshold&&(n.goToPrevSlide(!0),r=!1)}else if("vertical"===n.swipeDirection){if(s=Math.abs(t.pageY-e.pageY),n.settings.closable&&n.settings.swipeToClose&&s>100)return void n.closeGallery();n.$backdrop.css("opacity",1)}if(n.outer.find(".lg-item").removeAttr("style"),r&&Math.abs(t.pageX-e.pageX)<5){var d=o.$LG(i.target);n.isPosterElement(d)&&n.LGel.trigger(l.lGEvents.posterClick)}n.swipeDirection=void 0})),setTimeout((function(){n.outer.hasClass("lg-dragging")||"lg-slide"===n.settings.mode||n.outer.removeClass("lg-slide")}),this.settings.speed+100)},t.prototype.enableSwipe=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableSwipe&&(this.$inner.on("touchstart.lg",(function(i){t.dragOrSwipeEnabled=!0;var s=t.getSlideItem(t.index);!o.$LG(i.target).hasClass("lg-item")&&!s.get().contains(i.target)||t.outer.hasClass("lg-zoomed")||t.lgBusy||1!==i.targetTouches.length||(n=!0,t.touchAction="swipe",t.manageSwipeClass(),e={pageX:i.targetTouches[0].pageX,pageY:i.targetTouches[0].pageY})})),this.$inner.on("touchmove.lg",(function(o){n&&"swipe"===t.touchAction&&1===o.targetTouches.length&&(i={pageX:o.targetTouches[0].pageX,pageY:o.targetTouches[0].pageY},t.touchMove(e,i,o),s=!0)})),this.$inner.on("touchend.lg",(function(r){if("swipe"===t.touchAction){if(s)s=!1,t.touchEnd(i,e,r);else if(n){var a=o.$LG(r.target);t.isPosterElement(a)&&t.LGel.trigger(l.lGEvents.posterClick)}t.touchAction=void 0,n=!1}})))},t.prototype.enableDrag=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableDrag&&(this.outer.on("mousedown.lg",(function(i){t.dragOrSwipeEnabled=!0;var n=t.getSlideItem(t.index);(o.$LG(i.target).hasClass("lg-item")||n.get().contains(i.target))&&(t.outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.lgBusy||(t.manageSwipeClass(),e={pageX:i.pageX,pageY:i.pageY},s=!0,t.outer.get().scrollLeft+=1,t.outer.get().scrollLeft-=1,t.outer.removeClass("lg-grab").addClass("lg-grabbing"),t.LGel.trigger(l.lGEvents.dragStart))))})),o.$LG(window).on("mousemove.lg.global"+this.lgId,(function(o){s&&t.lgOpened&&(n=!0,i={pageX:o.pageX,pageY:o.pageY},t.touchMove(e,i),t.LGel.trigger(l.lGEvents.dragMove))})),o.$LG(window).on("mouseup.lg.global"+this.lgId,(function(r){if(t.lgOpened){var a=o.$LG(r.target);n?(n=!1,t.touchEnd(i,e,r),t.LGel.trigger(l.lGEvents.dragEnd)):t.isPosterElement(a)&&t.LGel.trigger(l.lGEvents.posterClick),s&&(s=!1,t.outer.removeClass("lg-grabbing").addClass("lg-grab"))}})))},t.prototype.triggerPosterClick=function(){var t=this;this.$inner.on("click.lg",(function(e){!t.dragOrSwipeEnabled&&t.isPosterElement(o.$LG(e.target))&&t.LGel.trigger(l.lGEvents.posterClick)}))},t.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1;this.settings.loop&&this.galleryItems.length>2&&(0===this.index?e=this.galleryItems.length-1:this.index===this.galleryItems.length-1&&(t=0)),this.outer.find(".lg-item").removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.getSlideItem(e).addClass("lg-prev-slide"),this.getSlideItem(t).addClass("lg-next-slide")},t.prototype.goToNextSlide=function(t){var e=this,i=this.settings.loop;t&&this.galleryItems.length<3&&(i=!1),this.lgBusy||(this.index+10?(this.index--,this.LGel.trigger(l.lGEvents.beforePrevSlide,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):i?(this.index=this.galleryItems.length-1,this.LGel.trigger(l.lGEvents.beforePrevSlide,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):this.settings.slideEndAnimation&&!t&&(this.outer.addClass("lg-left-end"),setTimeout((function(){e.outer.removeClass("lg-left-end")}),400)))},t.prototype.keyPress=function(){var t=this;o.$LG(window).on("keydown.lg.global"+this.lgId,(function(e){t.lgOpened&&!0===t.settings.escKey&&27===e.keyCode&&(e.preventDefault(),t.settings.allowMediaOverlap&&t.outer.hasClass("lg-can-toggle")&&t.outer.hasClass("lg-components-open")?t.outer.removeClass("lg-components-open"):t.closeGallery()),t.lgOpened&&t.galleryItems.length>1&&(37===e.keyCode&&(e.preventDefault(),t.goToPrevSlide()),39===e.keyCode&&(e.preventDefault(),t.goToNextSlide()))}))},t.prototype.arrow=function(){var t=this;this.getElementById("lg-prev").on("click.lg",(function(){t.goToPrevSlide()})),this.getElementById("lg-next").on("click.lg",(function(){t.goToNextSlide()}))},t.prototype.arrowDisable=function(t){if(!this.settings.loop&&this.settings.hideControlOnEnd){var e=this.getElementById("lg-prev"),i=this.getElementById("lg-next");t+1===this.galleryItems.length?i.attr("disabled","disabled").addClass("disabled"):i.removeAttr("disabled").removeClass("disabled"),0===t?e.attr("disabled","disabled").addClass("disabled"):e.removeAttr("disabled").removeClass("disabled")}},t.prototype.setTranslate=function(t,e,i,s,n){void 0===s&&(s=1),void 0===n&&(n=1),t.css("transform","translate3d("+e+"px, "+i+"px, 0px) scale3d("+s+", "+n+", 1)")},t.prototype.mousewheel=function(){var t=this,e=0;this.outer.on("wheel.lg",(function(i){if(i.deltaY&&!(t.galleryItems.length<2)){i.preventDefault();var s=(new Date).getTime();s-e<1e3||(e=s,i.deltaY>0?t.goToNextSlide():i.deltaY<0&&t.goToPrevSlide())}}))},t.prototype.isSlideElement=function(t){return t.hasClass("lg-outer")||t.hasClass("lg-item")||t.hasClass("lg-img-wrap")},t.prototype.isPosterElement=function(t){var e=this.getSlideItem(this.index).find(".lg-video-play-button").get();return t.hasClass("lg-video-poster")||t.hasClass("lg-video-play-button")||e&&e.contains(t.get())},t.prototype.toggleMaximize=function(){var t=this;this.getElementById("lg-maximize").on("click.lg",(function(){t.$container.toggleClass("lg-inline"),t.refreshOnResize()}))},t.prototype.invalidateItems=function(){for(var t=0;t wWidth) {\n lgSize = size_1;\n break;\n }\n // take last item as last option\n if (i === isResponsiveSizes.length - 1) {\n lgSize = size_1;\n }\n }\n }\n var size = lgSize.split('-');\n var width = parseInt(size[0], 10);\n var height = parseInt(size[1], 10);\n var cWidth = container.width();\n var cHeight = container.height() - spacing;\n var maxWidth = Math.min(cWidth, width);\n var maxHeight = Math.min(cHeight, height);\n var ratio = Math.min(maxWidth / width, maxHeight / height);\n return { width: width * ratio, height: height * ratio };\n },\n /**\n * @desc Get transform value based on the imageSize. Used for ZoomFromOrigin option\n * @param {jQuery Element}\n * @returns {String} Transform CSS string\n */\n getTransform: function (el, container, top, bottom, imageSize) {\n if (!imageSize) {\n return;\n }\n var LGel = lgQuery_1.$LG(el).find('img').first();\n if (!LGel.get()) {\n return;\n }\n var containerRect = container.get().getBoundingClientRect();\n var wWidth = containerRect.width;\n // using innerWidth to include mobile safari bottom bar\n var wHeight = container.height() - (top + bottom);\n var elWidth = LGel.width();\n var elHeight = LGel.height();\n var elStyle = LGel.style();\n var x = (wWidth - elWidth) / 2 -\n LGel.offset().left +\n (parseFloat(elStyle.paddingLeft) || 0) +\n (parseFloat(elStyle.borderLeft) || 0) +\n lgQuery_1.$LG(window).scrollLeft() +\n containerRect.left;\n var y = (wHeight - elHeight) / 2 -\n LGel.offset().top +\n (parseFloat(elStyle.paddingTop) || 0) +\n (parseFloat(elStyle.borderTop) || 0) +\n lgQuery_1.$LG(window).scrollTop() +\n top;\n var scX = elWidth / imageSize.width;\n var scY = elHeight / imageSize.height;\n var transform = 'translate3d(' +\n (x *= -1) +\n 'px, ' +\n (y *= -1) +\n 'px, 0) scale3d(' +\n scX +\n ', ' +\n scY +\n ', 1)';\n return transform;\n },\n getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) {\n var title = iframeTitle ? 'title=\"' + iframeTitle + '\"' : '';\n return \"
\\n \\n
\";\n },\n getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) {\n var srcsetAttr = srcset ? \"srcset=\\\"\" + srcset + \"\\\"\" : '';\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\"\" : '';\n var imgMarkup = \"\";\n var sourceTag = '';\n if (sources) {\n var sourceObj = typeof sources === 'string' ? JSON.parse(sources) : sources;\n sourceTag = sourceObj.map(function (source) {\n var attrs = '';\n Object.keys(source).forEach(function (key) {\n // Do not remove the first space as it is required to separate the attributes\n attrs += \" \" + key + \"=\\\"\" + source[key] + \"\\\"\";\n });\n return \"\";\n });\n }\n return \"\" + sourceTag + imgMarkup;\n },\n // Get src from responsive src\n getResponsiveSrc: function (srcItms) {\n var rsWidth = [];\n var rsSrc = [];\n var src = '';\n for (var i = 0; i < srcItms.length; i++) {\n var _src = srcItms[i].split(' ');\n // Manage empty space\n if (_src[0] === '') {\n _src.splice(0, 1);\n }\n rsSrc.push(_src[0]);\n rsWidth.push(_src[1]);\n }\n var wWidth = window.innerWidth;\n for (var j = 0; j < rsWidth.length; j++) {\n if (parseInt(rsWidth[j], 10) > wWidth) {\n src = rsSrc[j];\n break;\n }\n }\n return src;\n },\n isImageLoaded: function (img) {\n if (!img)\n return false;\n // During the onload event, IE correctly identifies any images that\n // weren’t downloaded as not complete. Others should too. Gecko-based\n // browsers act like NS4 in that they report this incorrectly.\n if (!img.complete) {\n return false;\n }\n // However, they do have two very useful properties: naturalWidth and\n // naturalHeight. These give the true size of the image. If it failed\n // to load, either of these should be zero.\n if (img.naturalWidth === 0) {\n return false;\n }\n // No other way of checking: assume it’s ok.\n return true;\n },\n getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, _isVideo) {\n var videoClass = '';\n if (_isVideo && _isVideo.youtube) {\n videoClass = 'lg-has-youtube';\n }\n else if (_isVideo && _isVideo.vimeo) {\n videoClass = 'lg-has-vimeo';\n }\n else {\n videoClass = 'lg-has-html5';\n }\n return \"
\\n
\\n \\n Play video\\n \\n \\n \\n \\n \\n \\n \\n
\\n \" + (dummyImg || '') + \"\\n \\n
\";\n },\n /**\n * @desc Create dynamic elements array from gallery items when dynamic option is false\n * It helps to avoid frequent DOM interaction\n * and avoid multiple checks for dynamic elments\n *\n * @returns {Array} dynamicEl\n */\n getDynamicOptions: function (items, extraProps, getCaptionFromTitleOrAlt, exThumbImage) {\n var dynamicElements = [];\n var availableDynamicOptions = __spreadArrays(defaultDynamicOptions, extraProps);\n [].forEach.call(items, function (item) {\n var dynamicEl = {};\n for (var i = 0; i < item.attributes.length; i++) {\n var attr = item.attributes[i];\n if (attr.specified) {\n var dynamicAttr = convertToData(attr.name);\n var label = '';\n if (availableDynamicOptions.indexOf(dynamicAttr) > -1) {\n label = dynamicAttr;\n }\n if (label) {\n dynamicEl[label] = attr.value;\n }\n }\n }\n var currentItem = lgQuery_1.$LG(item);\n var alt = currentItem.find('img').first().attr('alt');\n var title = currentItem.attr('title');\n var thumb = exThumbImage\n ? currentItem.attr(exThumbImage)\n : currentItem.find('img').first().attr('src');\n dynamicEl.thumb = thumb;\n if (getCaptionFromTitleOrAlt && !dynamicEl.subHtml) {\n dynamicEl.subHtml = title || alt || '';\n }\n dynamicEl.alt = alt || title || '';\n dynamicElements.push(dynamicEl);\n });\n return dynamicElements;\n },\n isMobile: function () {\n return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\n },\n /**\n * @desc Check the given src is video\n * @param {String} src\n * @return {Object} video type\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\n *\n * @todo - this information can be moved to dynamicEl to avoid frequent calls\n */\n isVideo: function (src, isHTML5VIdeo, index) {\n if (!src) {\n if (isHTML5VIdeo) {\n return {\n html5: true,\n };\n }\n else {\n console.error('lightGallery :- data-src is not provided on slide item ' +\n (index + 1) +\n '. Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/');\n return;\n }\n }\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)([\\&|?][\\S]*)*/i);\n var vimeo = src.match(/\\/\\/(?:www\\.)?(?:player\\.)?vimeo.com\\/(?:video\\/)?([0-9a-z\\-_]+)(.*)?/i);\n var wistia = src.match(/https?:\\/\\/(.+)?(wistia\\.com|wi\\.st)\\/(medias|embed)\\/([0-9a-z\\-_]+)(.*)/);\n if (youtube) {\n return {\n youtube: youtube,\n };\n }\n else if (vimeo) {\n return {\n vimeo: vimeo,\n };\n }\n else if (wistia) {\n return {\n wistia: wistia,\n };\n }\n },\n};\nexports.default = utils;\n//# sourceMappingURL=lg-utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$LG = exports.lgQuery = void 0;\nfunction initLgPolyfills() {\n (function () {\n if (typeof window.CustomEvent === 'function')\n return false;\n function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: null,\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n window.CustomEvent = CustomEvent;\n })();\n (function () {\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n }\n })();\n}\nvar lgQuery = /** @class */ (function () {\n function lgQuery(selector) {\n this.cssVenderPrefixes = [\n 'TransitionDuration',\n 'TransitionTimingFunction',\n 'Transform',\n 'Transition',\n ];\n this.selector = this._getSelector(selector);\n this.firstElement = this._getFirstEl();\n return this;\n }\n lgQuery.generateUUID = function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n };\n lgQuery.prototype._getSelector = function (selector, context) {\n if (context === void 0) { context = document; }\n if (typeof selector !== 'string') {\n return selector;\n }\n context = context || document;\n var fl = selector.substring(0, 1);\n if (fl === '#') {\n return context.querySelector(selector);\n }\n else {\n return context.querySelectorAll(selector);\n }\n };\n lgQuery.prototype._each = function (func) {\n if (!this.selector) {\n return this;\n }\n if (this.selector.length !== undefined) {\n [].forEach.call(this.selector, func);\n }\n else {\n func(this.selector, 0);\n }\n return this;\n };\n lgQuery.prototype._setCssVendorPrefix = function (el, cssProperty, value) {\n // prettier-ignore\n var property = cssProperty.replace(/-([a-z])/gi, function (s, group1) {\n return group1.toUpperCase();\n });\n if (this.cssVenderPrefixes.indexOf(property) !== -1) {\n el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value;\n el.style['webkit' + property] = value;\n el.style['moz' + property] = value;\n el.style['ms' + property] = value;\n el.style['o' + property] = value;\n }\n else {\n el.style[property] = value;\n }\n };\n lgQuery.prototype._getFirstEl = function () {\n if (this.selector && this.selector.length !== undefined) {\n return this.selector[0];\n }\n else {\n return this.selector;\n }\n };\n lgQuery.prototype.isEventMatched = function (event, eventName) {\n var eventNamespace = eventName.split('.');\n return event\n .split('.')\n .filter(function (e) { return e; })\n .every(function (e) {\n return eventNamespace.indexOf(e) !== -1;\n });\n };\n lgQuery.prototype.attr = function (attr, value) {\n if (value === undefined) {\n if (!this.firstElement) {\n return '';\n }\n return this.firstElement.getAttribute(attr);\n }\n this._each(function (el) {\n el.setAttribute(attr, value);\n });\n return this;\n };\n lgQuery.prototype.find = function (selector) {\n return $LG(this._getSelector(selector, this.selector));\n };\n lgQuery.prototype.first = function () {\n if (this.selector && this.selector.length !== undefined) {\n return $LG(this.selector[0]);\n }\n else {\n return $LG(this.selector);\n }\n };\n lgQuery.prototype.eq = function (index) {\n return $LG(this.selector[index]);\n };\n lgQuery.prototype.parent = function () {\n return $LG(this.selector.parentElement);\n };\n lgQuery.prototype.get = function () {\n return this._getFirstEl();\n };\n lgQuery.prototype.removeAttr = function (attributes) {\n var attrs = attributes.split(' ');\n this._each(function (el) {\n attrs.forEach(function (attr) { return el.removeAttribute(attr); });\n });\n return this;\n };\n lgQuery.prototype.wrap = function (className) {\n if (!this.firstElement) {\n return this;\n }\n var wrapper = document.createElement('div');\n wrapper.className = className;\n this.firstElement.parentNode.insertBefore(wrapper, this.firstElement);\n this.firstElement.parentNode.removeChild(this.firstElement);\n wrapper.appendChild(this.firstElement);\n return this;\n };\n lgQuery.prototype.addClass = function (classNames) {\n if (classNames === void 0) { classNames = ''; }\n this._each(function (el) {\n // IE doesn't support multiple arguments\n classNames.split(' ').forEach(function (className) {\n if (className) {\n el.classList.add(className);\n }\n });\n });\n return this;\n };\n lgQuery.prototype.removeClass = function (classNames) {\n this._each(function (el) {\n // IE doesn't support multiple arguments\n classNames.split(' ').forEach(function (className) {\n if (className) {\n el.classList.remove(className);\n }\n });\n });\n return this;\n };\n lgQuery.prototype.hasClass = function (className) {\n if (!this.firstElement) {\n return false;\n }\n return this.firstElement.classList.contains(className);\n };\n lgQuery.prototype.hasAttribute = function (attribute) {\n if (!this.firstElement) {\n return false;\n }\n return this.firstElement.hasAttribute(attribute);\n };\n lgQuery.prototype.toggleClass = function (className) {\n if (!this.firstElement) {\n return this;\n }\n if (this.hasClass(className)) {\n this.removeClass(className);\n }\n else {\n this.addClass(className);\n }\n return this;\n };\n lgQuery.prototype.css = function (property, value) {\n var _this = this;\n this._each(function (el) {\n _this._setCssVendorPrefix(el, property, value);\n });\n return this;\n };\n // Need to pass separate namespaces for separate elements\n lgQuery.prototype.on = function (events, listener) {\n var _this = this;\n if (!this.selector) {\n return this;\n }\n events.split(' ').forEach(function (event) {\n if (!Array.isArray(lgQuery.eventListeners[event])) {\n lgQuery.eventListeners[event] = [];\n }\n lgQuery.eventListeners[event].push(listener);\n _this.selector.addEventListener(event.split('.')[0], listener);\n });\n return this;\n };\n // @todo - test this\n lgQuery.prototype.once = function (event, listener) {\n var _this = this;\n this.on(event, function () {\n _this.off(event);\n listener(event);\n });\n return this;\n };\n lgQuery.prototype.off = function (event) {\n var _this = this;\n if (!this.selector) {\n return this;\n }\n Object.keys(lgQuery.eventListeners).forEach(function (eventName) {\n if (_this.isEventMatched(event, eventName)) {\n lgQuery.eventListeners[eventName].forEach(function (listener) {\n _this.selector.removeEventListener(eventName.split('.')[0], listener);\n });\n lgQuery.eventListeners[eventName] = [];\n }\n });\n return this;\n };\n lgQuery.prototype.trigger = function (event, detail) {\n if (!this.firstElement) {\n return this;\n }\n var customEvent = new CustomEvent(event.split('.')[0], {\n detail: detail || null,\n });\n this.firstElement.dispatchEvent(customEvent);\n return this;\n };\n // Does not support IE\n lgQuery.prototype.load = function (url) {\n var _this = this;\n fetch(url).then(function (res) {\n _this.selector.innerHTML = res;\n });\n return this;\n };\n lgQuery.prototype.html = function (html) {\n if (html === undefined) {\n if (!this.firstElement) {\n return '';\n }\n return this.firstElement.innerHTML;\n }\n this._each(function (el) {\n el.innerHTML = html;\n });\n return this;\n };\n lgQuery.prototype.append = function (html) {\n this._each(function (el) {\n if (typeof html === 'string') {\n el.insertAdjacentHTML('beforeend', html);\n }\n else {\n el.appendChild(html);\n }\n });\n return this;\n };\n lgQuery.prototype.prepend = function (html) {\n this._each(function (el) {\n el.insertAdjacentHTML('afterbegin', html);\n });\n return this;\n };\n lgQuery.prototype.remove = function () {\n this._each(function (el) {\n el.parentNode.removeChild(el);\n });\n return this;\n };\n lgQuery.prototype.empty = function () {\n this._each(function (el) {\n el.innerHTML = '';\n });\n return this;\n };\n lgQuery.prototype.scrollTop = function (scrollTop) {\n if (scrollTop !== undefined) {\n document.body.scrollTop = scrollTop;\n document.documentElement.scrollTop = scrollTop;\n return this;\n }\n else {\n return (window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop ||\n 0);\n }\n };\n lgQuery.prototype.scrollLeft = function (scrollLeft) {\n if (scrollLeft !== undefined) {\n document.body.scrollLeft = scrollLeft;\n document.documentElement.scrollLeft = scrollLeft;\n return this;\n }\n else {\n return (window.pageXOffset ||\n document.documentElement.scrollLeft ||\n document.body.scrollLeft ||\n 0);\n }\n };\n lgQuery.prototype.offset = function () {\n if (!this.firstElement) {\n return {\n left: 0,\n top: 0,\n };\n }\n var rect = this.firstElement.getBoundingClientRect();\n var bodyMarginLeft = $LG('body').style().marginLeft;\n // Minus body margin - https://stackoverflow.com/questions/30711548/is-getboundingclientrect-left-returning-a-wrong-value\n return {\n left: rect.left - parseFloat(bodyMarginLeft) + this.scrollLeft(),\n top: rect.top + this.scrollTop(),\n };\n };\n lgQuery.prototype.style = function () {\n if (!this.firstElement) {\n return {};\n }\n return (this.firstElement.currentStyle ||\n window.getComputedStyle(this.firstElement));\n };\n // Width without padding and border even if box-sizing is used.\n lgQuery.prototype.width = function () {\n var style = this.style();\n return (this.firstElement.clientWidth -\n parseFloat(style.paddingLeft) -\n parseFloat(style.paddingRight));\n };\n // Height without padding and border even if box-sizing is used.\n lgQuery.prototype.height = function () {\n var style = this.style();\n return (this.firstElement.clientHeight -\n parseFloat(style.paddingTop) -\n parseFloat(style.paddingBottom));\n };\n lgQuery.eventListeners = {};\n return lgQuery;\n}());\nexports.lgQuery = lgQuery;\nfunction $LG(selector) {\n initLgPolyfills();\n return new lgQuery(selector);\n}\nexports.$LG = $LG;\n//# sourceMappingURL=lgQuery.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightGallery = void 0;\nvar lg_utils_1 = require(\"./lg-utils\");\nvar lgQuery_1 = require(\"./lgQuery\");\nvar lg_settings_1 = require(\"./lg-settings\");\nvar lg_events_1 = require(\"./lg-events\");\n// @ref - https://stackoverflow.com/questions/3971841/how-to-resize-images-proportionally-keeping-the-aspect-ratio\n// @ref - https://2ality.com/2017/04/setting-up-multi-platform-packages.html\n// Unique id for each gallery\nvar lgId = 0;\nvar LightGallery = /** @class */ (function () {\n function LightGallery(element, options) {\n this.lgOpened = false;\n this.index = 0;\n // lightGallery modules\n this.plugins = [];\n // false when lightGallery load first slide content;\n this.lGalleryOn = false;\n // True when a slide animation is in progress\n this.lgBusy = false;\n this.currentItemsInDom = [];\n // Scroll top value before lightGallery is opened\n this.prevScrollTop = 0;\n this.isDummyImageRemoved = false;\n this.dragOrSwipeEnabled = false;\n this.mediaContainerPosition = {\n top: 0,\n bottom: 0,\n };\n if (!element) {\n return this;\n }\n lgId++;\n this.lgId = lgId;\n this.el = element;\n this.LGel = lgQuery_1.$LG(element);\n this.generateSettings(options);\n this.buildModules();\n // When using dynamic mode, ensure dynamicEl is an array\n if (this.settings.dynamic &&\n this.settings.dynamicEl !== undefined &&\n !Array.isArray(this.settings.dynamicEl)) {\n throw 'When using dynamic mode, you must also define dynamicEl as an Array.';\n }\n this.galleryItems = this.getItems();\n this.normalizeSettings();\n // Gallery items\n this.init();\n this.validateLicense();\n return this;\n }\n LightGallery.prototype.generateSettings = function (options) {\n // lightGallery settings\n this.settings = __assign(__assign({}, lg_settings_1.lightGalleryCoreSettings), options);\n if (this.settings.isMobile &&\n typeof this.settings.isMobile === 'function'\n ? this.settings.isMobile()\n : lg_utils_1.default.isMobile()) {\n var mobileSettings = __assign(__assign({}, this.settings.mobileSettings), this.settings.mobileSettings);\n this.settings = __assign(__assign({}, this.settings), mobileSettings);\n }\n };\n LightGallery.prototype.normalizeSettings = function () {\n if (this.settings.slideEndAnimation) {\n this.settings.hideControlOnEnd = false;\n }\n if (!this.settings.closable) {\n this.settings.swipeToClose = false;\n }\n // And reset it on close to get the correct value next time\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\n // At the moment, Zoom from image doesn't support dynamic options\n // @todo add zoomFromOrigin support for dynamic images\n if (this.settings.dynamic) {\n this.zoomFromOrigin = false;\n }\n if (!this.settings.container) {\n this.settings.container = document.body;\n }\n // settings.preload should not be grater than $item.length\n this.settings.preload = Math.min(this.settings.preload, this.galleryItems.length);\n };\n LightGallery.prototype.init = function () {\n var _this = this;\n this.addSlideVideoInfo(this.galleryItems);\n this.buildStructure();\n this.LGel.trigger(lg_events_1.lGEvents.init, {\n instance: this,\n });\n if (this.settings.keyPress) {\n this.keyPress();\n }\n setTimeout(function () {\n _this.enableDrag();\n _this.enableSwipe();\n _this.triggerPosterClick();\n }, 50);\n this.arrow();\n if (this.settings.mousewheel) {\n this.mousewheel();\n }\n if (!this.settings.dynamic) {\n this.openGalleryOnItemClick();\n }\n };\n LightGallery.prototype.openGalleryOnItemClick = function () {\n var _this = this;\n var _loop_1 = function (index) {\n var element = this_1.items[index];\n var $element = lgQuery_1.$LG(element);\n // Using different namespace for click because click event should not unbind if selector is same object('this')\n // @todo manage all event listners - should have namespace that represent element\n var uuid = lgQuery_1.lgQuery.generateUUID();\n $element\n .attr('data-lg-id', uuid)\n .on(\"click.lgcustom-item-\" + uuid, function (e) {\n e.preventDefault();\n var currentItemIndex = _this.settings.index || index;\n _this.openGallery(currentItemIndex, element);\n });\n };\n var this_1 = this;\n // Using for loop instead of using bubbling as the items can be any html element.\n for (var index = 0; index < this.items.length; index++) {\n _loop_1(index);\n }\n };\n /**\n * Module constructor\n * Modules are build incrementally.\n * Gallery should be opened only once all the modules are initialized.\n * use moduleBuildTimeout to make sure this\n */\n LightGallery.prototype.buildModules = function () {\n var _this = this;\n this.settings.plugins.forEach(function (plugin) {\n _this.plugins.push(new plugin(_this, lgQuery_1.$LG));\n });\n };\n LightGallery.prototype.validateLicense = function () {\n if (!this.settings.licenseKey) {\n console.error('Please provide a valid license key');\n }\n else if (this.settings.licenseKey === '0000-0000-000-0000') {\n console.warn(\"lightGallery: \" + this.settings.licenseKey + \" license key is not valid for production use\");\n }\n };\n LightGallery.prototype.getSlideItem = function (index) {\n return lgQuery_1.$LG(this.getSlideItemId(index));\n };\n LightGallery.prototype.getSlideItemId = function (index) {\n return \"#lg-item-\" + this.lgId + \"-\" + index;\n };\n LightGallery.prototype.getIdName = function (id) {\n return id + \"-\" + this.lgId;\n };\n LightGallery.prototype.getElementById = function (id) {\n return lgQuery_1.$LG(\"#\" + this.getIdName(id));\n };\n LightGallery.prototype.manageSingleSlideClassName = function () {\n if (this.galleryItems.length < 2) {\n this.outer.addClass('lg-single-item');\n }\n else {\n this.outer.removeClass('lg-single-item');\n }\n };\n LightGallery.prototype.buildStructure = function () {\n var _this = this;\n var container = this.$container && this.$container.get();\n if (container) {\n return;\n }\n var controls = '';\n var subHtmlCont = '';\n // Create controls\n if (this.settings.controls) {\n controls = \"\\n \";\n }\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\n subHtmlCont =\n '
';\n }\n var addClasses = '';\n if (this.settings.allowMediaOverlap) {\n // Do not remove space before last single quote\n addClasses += 'lg-media-overlap ';\n }\n var ariaLabelledby = this.settings.ariaLabelledby\n ? 'aria-labelledby=\"' + this.settings.ariaLabelledby + '\"'\n : '';\n var ariaDescribedby = this.settings.ariaDescribedby\n ? 'aria-describedby=\"' + this.settings.ariaDescribedby + '\"'\n : '';\n var containerClassName = \"lg-container \" + this.settings.addClass + \" \" + (document.body !== this.settings.container ? 'lg-inline' : '');\n var closeIcon = this.settings.closable && this.settings.showCloseIcon\n ? \"\"\n : '';\n var maximizeIcon = this.settings.showMaximizeIcon\n ? \"\"\n : '';\n var template = \"\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \" + controls + \"\\n
\\n
\\n \" + maximizeIcon + \"\\n \" + closeIcon + \"\\n
\\n \" + (this.settings.appendSubHtmlTo === '.lg-outer'\n ? subHtmlCont\n : '') + \"\\n
\\n \" + (this.settings.appendSubHtmlTo === '.lg-sub-html'\n ? subHtmlCont\n : '') + \"\\n
\\n
\\n
\\n \";\n lgQuery_1.$LG(this.settings.container)\n .css('position', 'relative')\n .append(template);\n this.outer = this.getElementById('lg-outer');\n this.$lgComponents = this.getElementById('lg-components');\n this.$backdrop = this.getElementById('lg-backdrop');\n this.$container = this.getElementById('lg-container');\n this.$inner = this.getElementById('lg-inner');\n this.$content = this.getElementById('lg-content');\n this.$toolbar = this.getElementById('lg-toolbar');\n this.$backdrop.css('transition-duration', this.settings.backdropDuration + 'ms');\n var outerClassNames = this.settings.mode + \" \";\n this.manageSingleSlideClassName();\n if (this.settings.enableDrag) {\n outerClassNames += 'lg-grab ';\n }\n this.outer.addClass(outerClassNames);\n this.$inner.css('transition-timing-function', this.settings.easing);\n this.$inner.css('transition-duration', this.settings.speed + 'ms');\n if (this.settings.download) {\n this.$toolbar.append(\"\");\n }\n this.counter();\n lgQuery_1.$LG(window).on(\"resize.lg.global\" + this.lgId + \" orientationchange.lg.global\" + this.lgId, function () {\n _this.refreshOnResize();\n });\n this.hideBars();\n this.manageCloseGallery();\n this.toggleMaximize();\n this.initModules();\n };\n LightGallery.prototype.refreshOnResize = function () {\n if (this.lgOpened) {\n var currentGalleryItem = this.galleryItems[this.index];\n var __slideVideoInfo = currentGalleryItem.__slideVideoInfo;\n this.mediaContainerPosition = this.getMediaContainerPosition();\n var _a = this.mediaContainerPosition, top_1 = _a.top, bottom = _a.bottom;\n this.currentImageSize = lg_utils_1.default.getSize(this.items[this.index], this.outer, top_1 + bottom, __slideVideoInfo && this.settings.videoMaxSize);\n if (__slideVideoInfo) {\n this.resizeVideoSlide(this.index, this.currentImageSize);\n }\n if (this.zoomFromOrigin && !this.isDummyImageRemoved) {\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\n this.outer\n .find('.lg-current .lg-dummy-img')\n .first()\n .attr('style', imgStyle);\n }\n this.LGel.trigger(lg_events_1.lGEvents.containerResize);\n }\n };\n LightGallery.prototype.resizeVideoSlide = function (index, imageSize) {\n var lgVideoStyle = this.getVideoContStyle(imageSize);\n var currentSlide = this.getSlideItem(index);\n currentSlide.find('.lg-video-cont').attr('style', lgVideoStyle);\n };\n /**\n * Update slides dynamically.\n * Add, edit or delete slides dynamically when lightGallery is opened.\n * Modify the current gallery items and pass it via updateSlides method\n * @note\n * - Do not mutate existing lightGallery items directly.\n * - Always pass new list of gallery items\n * - You need to take care of thumbnails outside the gallery if any\n * - user this method only if you want to update slides when the gallery is opened. Otherwise, use `refresh()` method.\n * @param items Gallery items\n * @param index After the update operation, which slide gallery should navigate to\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n *\n * // Adding slides dynamically\n * let galleryItems = [\n * // Access existing lightGallery items\n * // galleryItems are automatically generated internally from the gallery HTML markup\n * // or directly from galleryItems when dynamic gallery is used\n * ...plugin.galleryItems,\n * ...[\n * {\n * src: 'img/img-1.png',\n * thumb: 'img/thumb1.png',\n * },\n * ],\n * ];\n * plugin.updateSlides(\n * galleryItems,\n * plugin.index,\n * );\n *\n *\n * // Remove slides dynamically\n * galleryItems = JSON.parse(\n * JSON.stringify(updateSlideInstance.galleryItems),\n * );\n * galleryItems.shift();\n * updateSlideInstance.updateSlides(galleryItems, 1);\n * @see Demo\n */\n LightGallery.prototype.updateSlides = function (items, index) {\n if (this.index > items.length - 1) {\n this.index = items.length - 1;\n }\n if (items.length === 1) {\n this.index = 0;\n }\n if (!items.length) {\n this.closeGallery();\n return;\n }\n var currentSrc = this.galleryItems[index].src;\n this.galleryItems = items;\n this.updateControls();\n this.$inner.empty();\n this.currentItemsInDom = [];\n var _index = 0;\n // Find the current index based on source value of the slide\n this.galleryItems.some(function (galleryItem, itemIndex) {\n if (galleryItem.src === currentSrc) {\n _index = itemIndex;\n return true;\n }\n return false;\n });\n this.currentItemsInDom = this.organizeSlideItems(_index, -1);\n this.loadContent(_index, true);\n this.getSlideItem(_index).addClass('lg-current');\n this.index = _index;\n this.updateCurrentCounter(_index);\n this.LGel.trigger(lg_events_1.lGEvents.updateSlides);\n };\n // Get gallery items based on multiple conditions\n LightGallery.prototype.getItems = function () {\n // Gallery items\n this.items = [];\n if (!this.settings.dynamic) {\n if (this.settings.selector === 'this') {\n this.items.push(this.el);\n }\n else if (this.settings.selector) {\n if (typeof this.settings.selector === 'string') {\n if (this.settings.selectWithin) {\n var selectWithin = lgQuery_1.$LG(this.settings.selectWithin);\n this.items = selectWithin\n .find(this.settings.selector)\n .get();\n }\n else {\n this.items = this.el.querySelectorAll(this.settings.selector);\n }\n }\n else {\n this.items = this.settings.selector;\n }\n }\n else {\n this.items = this.el.children;\n }\n return lg_utils_1.default.getDynamicOptions(this.items, this.settings.extraProps, this.settings.getCaptionFromTitleOrAlt, this.settings.exThumbImage);\n }\n else {\n return this.settings.dynamicEl || [];\n }\n };\n /**\n * Open lightGallery.\n * Open gallery with specific slide by passing index of the slide as parameter.\n * @category lGPublicMethods\n * @param {Number} index - index of the slide\n * @param {HTMLElement} element - Which image lightGallery should zoom from\n *\n * @example\n * const $dynamicGallery = document.getElementById('dynamic-gallery-demo');\n * const dynamicGallery = lightGallery($dynamicGallery, {\n * dynamic: true,\n * dynamicEl: [\n * {\n * src: 'img/1.jpg',\n * thumb: 'img/thumb-1.jpg',\n * subHtml: '

Image 1 title

Image 1 descriptions.

',\n * },\n * ...\n * ],\n * });\n * $dynamicGallery.addEventListener('click', function () {\n * // Starts with third item.(Optional).\n * // This is useful if you want use dynamic mode with\n * // custom thumbnails (thumbnails outside gallery),\n * dynamicGallery.openGallery(2);\n * });\n *\n */\n LightGallery.prototype.openGallery = function (index, element) {\n var _this = this;\n if (index === void 0) { index = this.settings.index; }\n // prevent accidental double execution\n if (this.lgOpened)\n return;\n this.lgOpened = true;\n this.outer.get().focus();\n this.outer.removeClass('lg-hide-items');\n // Add display block, but still has opacity 0\n this.$container.addClass('lg-show');\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, index);\n this.currentItemsInDom = itemsToBeInsertedToDom;\n var items = '';\n itemsToBeInsertedToDom.forEach(function (item) {\n items = items + (\"
\");\n });\n this.$inner.append(items);\n this.addHtml(index);\n var transform = '';\n this.mediaContainerPosition = this.getMediaContainerPosition();\n var _a = this.mediaContainerPosition, top = _a.top, bottom = _a.bottom;\n if (!this.settings.allowMediaOverlap) {\n this.setMediaContainerPosition(top, bottom);\n }\n var __slideVideoInfo = this.galleryItems[index].__slideVideoInfo;\n if (this.zoomFromOrigin && element) {\n this.currentImageSize = lg_utils_1.default.getSize(element, this.outer, top + bottom, __slideVideoInfo && this.settings.videoMaxSize);\n transform = lg_utils_1.default.getTransform(element, this.outer, top, bottom, this.currentImageSize);\n }\n if (!this.zoomFromOrigin || !transform) {\n this.outer.addClass(this.settings.startClass);\n this.getSlideItem(index).removeClass('lg-complete');\n }\n var timeout = this.settings.zoomFromOrigin\n ? 100\n : this.settings.backdropDuration;\n setTimeout(function () {\n _this.outer.addClass('lg-components-open');\n }, timeout);\n this.index = index;\n this.LGel.trigger(lg_events_1.lGEvents.beforeOpen);\n // add class lg-current to remove initial transition\n this.getSlideItem(index).addClass('lg-current');\n this.lGalleryOn = false;\n // Store the current scroll top value to scroll back after closing the gallery..\n this.prevScrollTop = lgQuery_1.$LG(window).scrollTop();\n setTimeout(function () {\n // Need to check both zoomFromOrigin and transform values as we need to set set the\n // default opening animation if user missed to add the lg-size attribute\n if (_this.zoomFromOrigin && transform) {\n var currentSlide_1 = _this.getSlideItem(index);\n currentSlide_1.css('transform', transform);\n setTimeout(function () {\n currentSlide_1\n .addClass('lg-start-progress lg-start-end-progress')\n .css('transition-duration', _this.settings.startAnimationDuration + 'ms');\n _this.outer.addClass('lg-zoom-from-image');\n });\n setTimeout(function () {\n currentSlide_1.css('transform', 'translate3d(0, 0, 0)');\n }, 100);\n }\n setTimeout(function () {\n _this.$backdrop.addClass('in');\n _this.$container.addClass('lg-show-in');\n }, 10);\n // lg-visible class resets gallery opacity to 1\n if (!_this.zoomFromOrigin || !transform) {\n setTimeout(function () {\n _this.outer.addClass('lg-visible');\n }, _this.settings.backdropDuration);\n }\n // initiate slide function\n _this.slide(index, false, false, false);\n _this.LGel.trigger(lg_events_1.lGEvents.afterOpen);\n });\n if (document.body === this.settings.container) {\n lgQuery_1.$LG('html').addClass('lg-on');\n }\n };\n /**\n * Note - Changing the position of the media on every slide transition creates a flickering effect.\n * Therefore, The height of the caption is calculated dynamically, only once based on the first slide caption.\n * if you have dynamic captions for each media,\n * you can provide an appropriate height for the captions via allowMediaOverlap option\n */\n LightGallery.prototype.getMediaContainerPosition = function () {\n if (this.settings.allowMediaOverlap) {\n return {\n top: 0,\n bottom: 0,\n };\n }\n var top = this.$toolbar.get().clientHeight || 0;\n var subHtml = this.outer.find('.lg-components .lg-sub-html').get();\n var captionHeight = this.settings.defaultCaptionHeight ||\n (subHtml && subHtml.clientHeight) ||\n 0;\n var thumbContainer = this.outer.find('.lg-thumb-outer').get();\n var thumbHeight = thumbContainer ? thumbContainer.clientHeight : 0;\n var bottom = thumbHeight + captionHeight;\n return {\n top: top,\n bottom: bottom,\n };\n };\n LightGallery.prototype.setMediaContainerPosition = function (top, bottom) {\n if (top === void 0) { top = 0; }\n if (bottom === void 0) { bottom = 0; }\n this.$content.css('top', top + 'px').css('bottom', bottom + 'px');\n };\n LightGallery.prototype.hideBars = function () {\n var _this = this;\n // Hide controllers if mouse doesn't move for some period\n setTimeout(function () {\n _this.outer.removeClass('lg-hide-items');\n if (_this.settings.hideBarsDelay > 0) {\n _this.outer.on('mousemove.lg click.lg touchstart.lg', function () {\n _this.outer.removeClass('lg-hide-items');\n clearTimeout(_this.hideBarTimeout);\n // Timeout will be cleared on each slide movement also\n _this.hideBarTimeout = setTimeout(function () {\n _this.outer.addClass('lg-hide-items');\n }, _this.settings.hideBarsDelay);\n });\n _this.outer.trigger('mousemove.lg');\n }\n }, this.settings.showBarsAfter);\n };\n LightGallery.prototype.initPictureFill = function ($img) {\n if (this.settings.supportLegacyBrowser) {\n try {\n picturefill({\n elements: [$img.get()],\n });\n }\n catch (e) {\n console.warn('lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.');\n }\n }\n };\n /**\n * @desc Create image counter\n * Ex: 1/10\n */\n LightGallery.prototype.counter = function () {\n if (this.settings.counter) {\n var counterHtml = \"
\\n \" + (this.index + 1) + \" /\\n \" + this.galleryItems.length + \"
\";\n this.outer.find(this.settings.appendCounterTo).append(counterHtml);\n }\n };\n /**\n * @desc add sub-html into the slide\n * @param {Number} index - index of the slide\n */\n LightGallery.prototype.addHtml = function (index) {\n var subHtml;\n var subHtmlUrl;\n if (this.galleryItems[index].subHtmlUrl) {\n subHtmlUrl = this.galleryItems[index].subHtmlUrl;\n }\n else {\n subHtml = this.galleryItems[index].subHtml;\n }\n if (!subHtmlUrl) {\n if (subHtml) {\n // get first letter of sub-html\n // if first letter starts with . or # get the html form the jQuery object\n var fL = subHtml.substring(0, 1);\n if (fL === '.' || fL === '#') {\n if (this.settings.subHtmlSelectorRelative &&\n !this.settings.dynamic) {\n subHtml = lgQuery_1.$LG(this.items)\n .eq(index)\n .find(subHtml)\n .first()\n .html();\n }\n else {\n subHtml = lgQuery_1.$LG(subHtml).first().html();\n }\n }\n }\n else {\n subHtml = '';\n }\n }\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\n if (subHtmlUrl) {\n this.outer.find('.lg-sub-html').load(subHtmlUrl);\n }\n else {\n this.outer.find('.lg-sub-html').html(subHtml);\n }\n }\n else {\n var currentSlide = lgQuery_1.$LG(this.getSlideItemId(index));\n if (subHtmlUrl) {\n currentSlide.load(subHtmlUrl);\n }\n else {\n currentSlide.append(\"
\" + subHtml + \"
\");\n }\n }\n // Add lg-empty-html class if title doesn't exist\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n if (subHtml === '') {\n this.outer\n .find(this.settings.appendSubHtmlTo)\n .addClass('lg-empty-html');\n }\n else {\n this.outer\n .find(this.settings.appendSubHtmlTo)\n .removeClass('lg-empty-html');\n }\n }\n this.LGel.trigger(lg_events_1.lGEvents.afterAppendSubHtml, {\n index: index,\n });\n };\n /**\n * @desc Preload slides\n * @param {Number} index - index of the slide\n * @todo preload not working for the first slide, Also, should work for the first and last slide as well\n */\n LightGallery.prototype.preload = function (index) {\n for (var i = 1; i <= this.settings.preload; i++) {\n if (i >= this.galleryItems.length - index) {\n break;\n }\n this.loadContent(index + i, false);\n }\n for (var j = 1; j <= this.settings.preload; j++) {\n if (index - j < 0) {\n break;\n }\n this.loadContent(index - j, false);\n }\n };\n LightGallery.prototype.getDummyImgStyles = function (imageSize) {\n if (!imageSize)\n return '';\n return \"width:\" + imageSize.width + \"px;\\n margin-left: -\" + imageSize.width / 2 + \"px;\\n margin-top: -\" + imageSize.height / 2 + \"px;\\n height:\" + imageSize.height + \"px\";\n };\n LightGallery.prototype.getVideoContStyle = function (imageSize) {\n if (!imageSize)\n return '';\n return \"width:\" + imageSize.width + \"px;\\n height:\" + imageSize.height + \"px\";\n };\n LightGallery.prototype.getDummyImageContent = function ($currentSlide, index, alt) {\n var $currentItem;\n if (!this.settings.dynamic) {\n $currentItem = lgQuery_1.$LG(this.items).eq(index);\n }\n if ($currentItem) {\n var _dummyImgSrc = void 0;\n if (!this.settings.exThumbImage) {\n _dummyImgSrc = $currentItem.find('img').first().attr('src');\n }\n else {\n _dummyImgSrc = $currentItem.attr(this.settings.exThumbImage);\n }\n if (!_dummyImgSrc)\n return '';\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\n var dummyImgContent = \"\";\n $currentSlide.addClass('lg-first-slide');\n this.outer.addClass('lg-first-slide-loading');\n return dummyImgContent;\n }\n return '';\n };\n LightGallery.prototype.setImgMarkup = function (src, $currentSlide, index) {\n var currentGalleryItem = this.galleryItems[index];\n var alt = currentGalleryItem.alt, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\n // Use the thumbnail as dummy image which will be resized to actual image size and\n // displayed on top of actual image\n var imgContent = '';\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\n if (this.isFirstSlideWithZoomAnimation()) {\n imgContent = this.getDummyImageContent($currentSlide, index, altAttr);\n }\n else {\n imgContent = lg_utils_1.default.getImgMarkup(index, src, altAttr, srcset, sizes, sources);\n }\n var imgMarkup = \" \" + imgContent + \"\";\n $currentSlide.prepend(imgMarkup);\n };\n LightGallery.prototype.onSlideObjectLoad = function ($slide, isHTML5VideoWithoutPoster, onLoad, onError) {\n var mediaObject = $slide.find('.lg-object').first();\n if (lg_utils_1.default.isImageLoaded(mediaObject.get()) ||\n isHTML5VideoWithoutPoster) {\n onLoad();\n }\n else {\n mediaObject.on('load.lg error.lg', function () {\n onLoad && onLoad();\n });\n mediaObject.on('error.lg', function () {\n onError && onError();\n });\n }\n };\n /**\n *\n * @param $el Current slide item\n * @param index\n * @param delay Delay is 0 except first time\n * @param speed Speed is same as delay, except it is 0 if gallery is opened via hash plugin\n * @param isFirstSlide\n */\n LightGallery.prototype.onLgObjectLoad = function (currentSlide, index, delay, speed, isFirstSlide, isHTML5VideoWithoutPoster) {\n var _this = this;\n this.onSlideObjectLoad(currentSlide, isHTML5VideoWithoutPoster, function () {\n _this.triggerSlideItemLoad(currentSlide, index, delay, speed, isFirstSlide);\n }, function () {\n currentSlide.addClass('lg-complete lg-complete_');\n currentSlide.html('Oops... Failed to load content...');\n });\n };\n LightGallery.prototype.triggerSlideItemLoad = function ($currentSlide, index, delay, speed, isFirstSlide) {\n var _this = this;\n var currentGalleryItem = this.galleryItems[index];\n // Adding delay for video slides without poster for better performance and user experience\n // Videos should start playing once once the gallery is completely loaded\n var _speed = isFirstSlide &&\n this.getSlideType(currentGalleryItem) === 'video' &&\n !currentGalleryItem.poster\n ? speed\n : 0;\n setTimeout(function () {\n $currentSlide.addClass('lg-complete lg-complete_');\n _this.LGel.trigger(lg_events_1.lGEvents.slideItemLoad, {\n index: index,\n delay: delay || 0,\n isFirstSlide: isFirstSlide,\n });\n }, _speed);\n };\n LightGallery.prototype.isFirstSlideWithZoomAnimation = function () {\n return !!(!this.lGalleryOn &&\n this.zoomFromOrigin &&\n this.currentImageSize);\n };\n // Add video slideInfo\n LightGallery.prototype.addSlideVideoInfo = function (items) {\n var _this = this;\n items.forEach(function (element, index) {\n element.__slideVideoInfo = lg_utils_1.default.isVideo(element.src, !!element.video, index);\n if (element.__slideVideoInfo &&\n _this.settings.loadYouTubePoster &&\n !element.poster &&\n element.__slideVideoInfo.youtube) {\n element.poster = \"//img.youtube.com/vi/\" + element.__slideVideoInfo.youtube[1] + \"/maxresdefault.jpg\";\n }\n });\n };\n /**\n * Load slide content into slide.\n * This is used to load content into slides that is not visible too\n * @param {Number} index - index of the slide.\n * @param {Boolean} rec - if true call loadcontent() function again.\n */\n LightGallery.prototype.loadContent = function (index, rec) {\n var _this = this;\n var currentGalleryItem = this.galleryItems[index];\n var $currentSlide = lgQuery_1.$LG(this.getSlideItemId(index));\n var poster = currentGalleryItem.poster, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\n var src = currentGalleryItem.src;\n var video = currentGalleryItem.video;\n var _html5Video = video && typeof video === 'string' ? JSON.parse(video) : video;\n if (currentGalleryItem.responsive) {\n var srcDyItms = currentGalleryItem.responsive.split(',');\n src = lg_utils_1.default.getResponsiveSrc(srcDyItms) || src;\n }\n var videoInfo = currentGalleryItem.__slideVideoInfo;\n var lgVideoStyle = '';\n var iframe = !!currentGalleryItem.iframe;\n var isFirstSlide = !this.lGalleryOn;\n // delay for adding complete class. it is 0 except first time.\n var delay = 0;\n if (isFirstSlide) {\n if (this.zoomFromOrigin && this.currentImageSize) {\n delay = this.settings.startAnimationDuration + 10;\n }\n else {\n delay = this.settings.backdropDuration + 10;\n }\n }\n if (!$currentSlide.hasClass('lg-loaded')) {\n if (videoInfo) {\n var _a = this.mediaContainerPosition, top_2 = _a.top, bottom = _a.bottom;\n var videoSize = lg_utils_1.default.getSize(this.items[index], this.outer, top_2 + bottom, videoInfo && this.settings.videoMaxSize);\n lgVideoStyle = this.getVideoContStyle(videoSize);\n }\n if (iframe) {\n var markup = lg_utils_1.default.getIframeMarkup(this.settings.iframeWidth, this.settings.iframeHeight, this.settings.iframeMaxWidth, this.settings.iframeMaxHeight, src, currentGalleryItem.iframeTitle);\n $currentSlide.prepend(markup);\n }\n else if (poster) {\n var dummyImg = '';\n var hasStartAnimation = isFirstSlide &&\n this.zoomFromOrigin &&\n this.currentImageSize;\n if (hasStartAnimation) {\n dummyImg = this.getDummyImageContent($currentSlide, index, '');\n }\n var markup = lg_utils_1.default.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, videoInfo);\n $currentSlide.prepend(markup);\n }\n else if (videoInfo) {\n var markup = \"
\";\n $currentSlide.prepend(markup);\n }\n else {\n this.setImgMarkup(src, $currentSlide, index);\n if (srcset || sources) {\n var $img = $currentSlide.find('.lg-object');\n this.initPictureFill($img);\n }\n }\n if (poster || videoInfo) {\n this.LGel.trigger(lg_events_1.lGEvents.hasVideo, {\n index: index,\n src: src,\n html5Video: _html5Video,\n hasPoster: !!poster,\n });\n }\n this.LGel.trigger(lg_events_1.lGEvents.afterAppendSlide, { index: index });\n if (this.lGalleryOn &&\n this.settings.appendSubHtmlTo === '.lg-item') {\n this.addHtml(index);\n }\n }\n // For first time add some delay for displaying the start animation.\n var _speed = 0;\n // Do not change the delay value because it is required for zoom plugin.\n // If gallery opened from direct url (hash) speed value should be 0\n if (delay && !lgQuery_1.$LG(document.body).hasClass('lg-from-hash')) {\n _speed = delay;\n }\n // Only for first slide and zoomFromOrigin is enabled\n if (this.isFirstSlideWithZoomAnimation()) {\n setTimeout(function () {\n $currentSlide\n .removeClass('lg-start-end-progress lg-start-progress')\n .removeAttr('style');\n }, this.settings.startAnimationDuration + 100);\n if (!$currentSlide.hasClass('lg-loaded')) {\n setTimeout(function () {\n if (_this.getSlideType(currentGalleryItem) === 'image') {\n $currentSlide\n .find('.lg-img-wrap')\n .append(lg_utils_1.default.getImgMarkup(index, src, '', srcset, sizes, currentGalleryItem.sources));\n if (srcset || sources) {\n var $img = $currentSlide.find('.lg-object');\n _this.initPictureFill($img);\n }\n }\n if (_this.getSlideType(currentGalleryItem) === 'image' ||\n (_this.getSlideType(currentGalleryItem) === 'video' &&\n poster)) {\n _this.onLgObjectLoad($currentSlide, index, delay, _speed, true, false);\n // load remaining slides once the slide is completely loaded\n _this.onSlideObjectLoad($currentSlide, !!(videoInfo && videoInfo.html5 && !poster), function () {\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\n }, function () {\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\n });\n }\n }, this.settings.startAnimationDuration + 100);\n }\n }\n // SLide content has been added to dom\n $currentSlide.addClass('lg-loaded');\n if (!this.isFirstSlideWithZoomAnimation() ||\n (this.getSlideType(currentGalleryItem) === 'video' && !poster)) {\n this.onLgObjectLoad($currentSlide, index, delay, _speed, isFirstSlide, !!(videoInfo && videoInfo.html5 && !poster));\n }\n // When gallery is opened once content is loaded (second time) need to add lg-complete class for css styling\n if ((!this.zoomFromOrigin || !this.currentImageSize) &&\n $currentSlide.hasClass('lg-complete_') &&\n !this.lGalleryOn) {\n setTimeout(function () {\n $currentSlide.addClass('lg-complete');\n }, this.settings.backdropDuration);\n }\n // Content loaded\n // Need to set lGalleryOn before calling preload function\n this.lGalleryOn = true;\n if (rec === true) {\n if (!$currentSlide.hasClass('lg-complete_')) {\n $currentSlide\n .find('.lg-object')\n .first()\n .on('load.lg error.lg', function () {\n _this.preload(index);\n });\n }\n else {\n this.preload(index);\n }\n }\n };\n /**\n * @desc Remove dummy image content and load next slides\n * Called only for the first time if zoomFromOrigin animation is enabled\n * @param index\n * @param $currentSlide\n * @param speed\n */\n LightGallery.prototype.loadContentOnFirstSlideLoad = function (index, $currentSlide, speed) {\n var _this = this;\n setTimeout(function () {\n $currentSlide.find('.lg-dummy-img').remove();\n $currentSlide.removeClass('lg-first-slide');\n _this.outer.removeClass('lg-first-slide-loading');\n _this.isDummyImageRemoved = true;\n _this.preload(index);\n }, speed + 300);\n };\n LightGallery.prototype.getItemsToBeInsertedToDom = function (index, prevIndex, numberOfItems) {\n var _this = this;\n if (numberOfItems === void 0) { numberOfItems = 0; }\n var itemsToBeInsertedToDom = [];\n // Minimum 2 items should be there\n var possibleNumberOfItems = Math.max(numberOfItems, 3);\n possibleNumberOfItems = Math.min(possibleNumberOfItems, this.galleryItems.length);\n var prevIndexItem = \"lg-item-\" + this.lgId + \"-\" + prevIndex;\n if (this.galleryItems.length <= 3) {\n this.galleryItems.forEach(function (_element, index) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + _this.lgId + \"-\" + index);\n });\n return itemsToBeInsertedToDom;\n }\n if (index < (this.galleryItems.length - 1) / 2) {\n for (var idx = index; idx > index - possibleNumberOfItems / 2 && idx >= 0; idx--) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\n }\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index + idx + 1));\n }\n }\n else {\n for (var idx = index; idx <= this.galleryItems.length - 1 &&\n idx < index + possibleNumberOfItems / 2; idx++) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\n }\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index - idx - 1));\n }\n }\n if (this.settings.loop) {\n if (index === this.galleryItems.length - 1) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + 0);\n }\n else if (index === 0) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (this.galleryItems.length - 1));\n }\n }\n if (itemsToBeInsertedToDom.indexOf(prevIndexItem) === -1) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + prevIndex);\n }\n return itemsToBeInsertedToDom;\n };\n LightGallery.prototype.organizeSlideItems = function (index, prevIndex) {\n var _this = this;\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, prevIndex, this.settings.numberOfSlideItemsInDom);\n itemsToBeInsertedToDom.forEach(function (item) {\n if (_this.currentItemsInDom.indexOf(item) === -1) {\n _this.$inner.append(\"
\");\n }\n });\n this.currentItemsInDom.forEach(function (item) {\n if (itemsToBeInsertedToDom.indexOf(item) === -1) {\n lgQuery_1.$LG(\"#\" + item).remove();\n }\n });\n return itemsToBeInsertedToDom;\n };\n /**\n * Get previous index of the slide\n */\n LightGallery.prototype.getPreviousSlideIndex = function () {\n var prevIndex = 0;\n try {\n var currentItemId = this.outer\n .find('.lg-current')\n .first()\n .attr('id');\n prevIndex = parseInt(currentItemId.split('-')[3]) || 0;\n }\n catch (error) {\n prevIndex = 0;\n }\n return prevIndex;\n };\n LightGallery.prototype.setDownloadValue = function (index) {\n if (this.settings.download) {\n var currentGalleryItem = this.galleryItems[index];\n var hideDownloadBtn = currentGalleryItem.downloadUrl === false ||\n currentGalleryItem.downloadUrl === 'false';\n if (hideDownloadBtn) {\n this.outer.addClass('lg-hide-download');\n }\n else {\n var $download = this.getElementById('lg-download');\n this.outer.removeClass('lg-hide-download');\n $download.attr('href', currentGalleryItem.downloadUrl ||\n currentGalleryItem.src);\n if (currentGalleryItem.download) {\n $download.attr('download', currentGalleryItem.download);\n }\n }\n }\n };\n LightGallery.prototype.makeSlideAnimation = function (direction, currentSlideItem, previousSlideItem) {\n var _this = this;\n if (this.lGalleryOn) {\n previousSlideItem.addClass('lg-slide-progress');\n }\n setTimeout(function () {\n // remove all transitions\n _this.outer.addClass('lg-no-trans');\n _this.outer\n .find('.lg-item')\n .removeClass('lg-prev-slide lg-next-slide');\n if (direction === 'prev') {\n //prevslide\n currentSlideItem.addClass('lg-prev-slide');\n previousSlideItem.addClass('lg-next-slide');\n }\n else {\n // next slide\n currentSlideItem.addClass('lg-next-slide');\n previousSlideItem.addClass('lg-prev-slide');\n }\n // give 50 ms for browser to add/remove class\n setTimeout(function () {\n _this.outer.find('.lg-item').removeClass('lg-current');\n currentSlideItem.addClass('lg-current');\n // reset all transitions\n _this.outer.removeClass('lg-no-trans');\n }, 50);\n }, this.lGalleryOn ? this.settings.slideDelay : 0);\n };\n /**\n * Goto a specific slide.\n * @param {Number} index - index of the slide\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\n * @param {String} direction - Direction of the slide(next/prev)\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * // to go to 3rd slide\n * plugin.slide(2);\n *\n */\n LightGallery.prototype.slide = function (index, fromTouch, fromThumb, direction) {\n var _this = this;\n var prevIndex = this.getPreviousSlideIndex();\n this.currentItemsInDom = this.organizeSlideItems(index, prevIndex);\n // Prevent multiple call, Required for hsh plugin\n if (this.lGalleryOn && prevIndex === index) {\n return;\n }\n var numberOfGalleryItems = this.galleryItems.length;\n if (!this.lgBusy) {\n if (this.settings.counter) {\n this.updateCurrentCounter(index);\n }\n var currentSlideItem = this.getSlideItem(index);\n var previousSlideItem_1 = this.getSlideItem(prevIndex);\n var currentGalleryItem = this.galleryItems[index];\n var videoInfo = currentGalleryItem.__slideVideoInfo;\n this.outer.attr('data-lg-slide-type', this.getSlideType(currentGalleryItem));\n this.setDownloadValue(index);\n if (videoInfo) {\n var _a = this.mediaContainerPosition, top_3 = _a.top, bottom = _a.bottom;\n var videoSize = lg_utils_1.default.getSize(this.items[index], this.outer, top_3 + bottom, videoInfo && this.settings.videoMaxSize);\n this.resizeVideoSlide(index, videoSize);\n }\n this.LGel.trigger(lg_events_1.lGEvents.beforeSlide, {\n prevIndex: prevIndex,\n index: index,\n fromTouch: !!fromTouch,\n fromThumb: !!fromThumb,\n });\n this.lgBusy = true;\n clearTimeout(this.hideBarTimeout);\n this.arrowDisable(index);\n if (!direction) {\n if (index < prevIndex) {\n direction = 'prev';\n }\n else if (index > prevIndex) {\n direction = 'next';\n }\n }\n if (!fromTouch) {\n this.makeSlideAnimation(direction, currentSlideItem, previousSlideItem_1);\n }\n else {\n this.outer\n .find('.lg-item')\n .removeClass('lg-prev-slide lg-current lg-next-slide');\n var touchPrev = void 0;\n var touchNext = void 0;\n if (numberOfGalleryItems > 2) {\n touchPrev = index - 1;\n touchNext = index + 1;\n if (index === 0 && prevIndex === numberOfGalleryItems - 1) {\n // next slide\n touchNext = 0;\n touchPrev = numberOfGalleryItems - 1;\n }\n else if (index === numberOfGalleryItems - 1 &&\n prevIndex === 0) {\n // prev slide\n touchNext = 0;\n touchPrev = numberOfGalleryItems - 1;\n }\n }\n else {\n touchPrev = 0;\n touchNext = 1;\n }\n if (direction === 'prev') {\n this.getSlideItem(touchNext).addClass('lg-next-slide');\n }\n else {\n this.getSlideItem(touchPrev).addClass('lg-prev-slide');\n }\n currentSlideItem.addClass('lg-current');\n }\n // Do not put load content in set timeout as it needs to load immediately when the gallery is opened\n if (!this.lGalleryOn) {\n this.loadContent(index, true);\n }\n else {\n setTimeout(function () {\n _this.loadContent(index, true);\n // Add title if this.settings.appendSubHtmlTo === lg-sub-html\n if (_this.settings.appendSubHtmlTo !== '.lg-item') {\n _this.addHtml(index);\n }\n }, this.settings.speed + 50 + (fromTouch ? 0 : this.settings.slideDelay));\n }\n setTimeout(function () {\n _this.lgBusy = false;\n previousSlideItem_1.removeClass('lg-slide-progress');\n _this.LGel.trigger(lg_events_1.lGEvents.afterSlide, {\n prevIndex: prevIndex,\n index: index,\n fromTouch: fromTouch,\n fromThumb: fromThumb,\n });\n }, (this.lGalleryOn ? this.settings.speed + 100 : 100) + (fromTouch ? 0 : this.settings.slideDelay));\n }\n this.index = index;\n };\n LightGallery.prototype.updateCurrentCounter = function (index) {\n this.getElementById('lg-counter-current').html(index + 1 + '');\n };\n LightGallery.prototype.updateCounterTotal = function () {\n this.getElementById('lg-counter-all').html(this.galleryItems.length + '');\n };\n LightGallery.prototype.getSlideType = function (item) {\n if (item.__slideVideoInfo) {\n return 'video';\n }\n else if (item.iframe) {\n return 'iframe';\n }\n else {\n return 'image';\n }\n };\n LightGallery.prototype.touchMove = function (startCoords, endCoords, e) {\n var distanceX = endCoords.pageX - startCoords.pageX;\n var distanceY = endCoords.pageY - startCoords.pageY;\n var allowSwipe = false;\n if (this.swipeDirection) {\n allowSwipe = true;\n }\n else {\n if (Math.abs(distanceX) > 15) {\n this.swipeDirection = 'horizontal';\n allowSwipe = true;\n }\n else if (Math.abs(distanceY) > 15) {\n this.swipeDirection = 'vertical';\n allowSwipe = true;\n }\n }\n if (!allowSwipe) {\n return;\n }\n var $currentSlide = this.getSlideItem(this.index);\n if (this.swipeDirection === 'horizontal') {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n // reset opacity and transition duration\n this.outer.addClass('lg-dragging');\n // move current slide\n this.setTranslate($currentSlide, distanceX, 0);\n // move next and prev slide with current slide\n var width = $currentSlide.get().offsetWidth;\n var slideWidthAmount = (width * 15) / 100;\n var gutter = slideWidthAmount - Math.abs((distanceX * 10) / 100);\n this.setTranslate(this.outer.find('.lg-prev-slide').first(), -width + distanceX - gutter, 0);\n this.setTranslate(this.outer.find('.lg-next-slide').first(), width + distanceX + gutter, 0);\n }\n else if (this.swipeDirection === 'vertical') {\n if (this.settings.swipeToClose) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n this.$container.addClass('lg-dragging-vertical');\n var opacity = 1 - Math.abs(distanceY) / window.innerHeight;\n this.$backdrop.css('opacity', opacity);\n var scale = 1 - Math.abs(distanceY) / (window.innerWidth * 2);\n this.setTranslate($currentSlide, 0, distanceY, scale, scale);\n if (Math.abs(distanceY) > 100) {\n this.outer\n .addClass('lg-hide-items')\n .removeClass('lg-components-open');\n }\n }\n }\n };\n LightGallery.prototype.touchEnd = function (endCoords, startCoords, event) {\n var _this = this;\n var distance;\n // keep slide animation for any mode while dragg/swipe\n if (this.settings.mode !== 'lg-slide') {\n this.outer.addClass('lg-slide');\n }\n // set transition duration\n setTimeout(function () {\n _this.$container.removeClass('lg-dragging-vertical');\n _this.outer\n .removeClass('lg-dragging lg-hide-items')\n .addClass('lg-components-open');\n var triggerClick = true;\n if (_this.swipeDirection === 'horizontal') {\n distance = endCoords.pageX - startCoords.pageX;\n var distanceAbs = Math.abs(endCoords.pageX - startCoords.pageX);\n if (distance < 0 &&\n distanceAbs > _this.settings.swipeThreshold) {\n _this.goToNextSlide(true);\n triggerClick = false;\n }\n else if (distance > 0 &&\n distanceAbs > _this.settings.swipeThreshold) {\n _this.goToPrevSlide(true);\n triggerClick = false;\n }\n }\n else if (_this.swipeDirection === 'vertical') {\n distance = Math.abs(endCoords.pageY - startCoords.pageY);\n if (_this.settings.closable &&\n _this.settings.swipeToClose &&\n distance > 100) {\n _this.closeGallery();\n return;\n }\n else {\n _this.$backdrop.css('opacity', 1);\n }\n }\n _this.outer.find('.lg-item').removeAttr('style');\n if (triggerClick &&\n Math.abs(endCoords.pageX - startCoords.pageX) < 5) {\n // Trigger click if distance is less than 5 pix\n var target = lgQuery_1.$LG(event.target);\n if (_this.isPosterElement(target)) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n }\n _this.swipeDirection = undefined;\n });\n // remove slide class once drag/swipe is completed if mode is not slide\n setTimeout(function () {\n if (!_this.outer.hasClass('lg-dragging') &&\n _this.settings.mode !== 'lg-slide') {\n _this.outer.removeClass('lg-slide');\n }\n }, this.settings.speed + 100);\n };\n LightGallery.prototype.enableSwipe = function () {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isMoved = false;\n var isSwiping = false;\n if (this.settings.enableSwipe) {\n this.$inner.on('touchstart.lg', function (e) {\n _this.dragOrSwipeEnabled = true;\n var $item = _this.getSlideItem(_this.index);\n if ((lgQuery_1.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)) &&\n !_this.outer.hasClass('lg-zoomed') &&\n !_this.lgBusy &&\n e.targetTouches.length === 1) {\n isSwiping = true;\n _this.touchAction = 'swipe';\n _this.manageSwipeClass();\n startCoords = {\n pageX: e.targetTouches[0].pageX,\n pageY: e.targetTouches[0].pageY,\n };\n }\n });\n this.$inner.on('touchmove.lg', function (e) {\n if (isSwiping &&\n _this.touchAction === 'swipe' &&\n e.targetTouches.length === 1) {\n endCoords = {\n pageX: e.targetTouches[0].pageX,\n pageY: e.targetTouches[0].pageY,\n };\n _this.touchMove(startCoords, endCoords, e);\n isMoved = true;\n }\n });\n this.$inner.on('touchend.lg', function (event) {\n if (_this.touchAction === 'swipe') {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords, startCoords, event);\n }\n else if (isSwiping) {\n var target = lgQuery_1.$LG(event.target);\n if (_this.isPosterElement(target)) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n }\n _this.touchAction = undefined;\n isSwiping = false;\n }\n });\n }\n };\n LightGallery.prototype.enableDrag = function () {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isDraging = false;\n var isMoved = false;\n if (this.settings.enableDrag) {\n this.outer.on('mousedown.lg', function (e) {\n _this.dragOrSwipeEnabled = true;\n var $item = _this.getSlideItem(_this.index);\n if (lgQuery_1.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)) {\n if (!_this.outer.hasClass('lg-zoomed') && !_this.lgBusy) {\n e.preventDefault();\n if (!_this.lgBusy) {\n _this.manageSwipeClass();\n startCoords = {\n pageX: e.pageX,\n pageY: e.pageY,\n };\n isDraging = true;\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.outer.get().scrollLeft += 1;\n _this.outer.get().scrollLeft -= 1;\n // *\n _this.outer\n .removeClass('lg-grab')\n .addClass('lg-grabbing');\n _this.LGel.trigger(lg_events_1.lGEvents.dragStart);\n }\n }\n }\n });\n lgQuery_1.$LG(window).on(\"mousemove.lg.global\" + this.lgId, function (e) {\n if (isDraging && _this.lgOpened) {\n isMoved = true;\n endCoords = {\n pageX: e.pageX,\n pageY: e.pageY,\n };\n _this.touchMove(startCoords, endCoords);\n _this.LGel.trigger(lg_events_1.lGEvents.dragMove);\n }\n });\n lgQuery_1.$LG(window).on(\"mouseup.lg.global\" + this.lgId, function (event) {\n if (!_this.lgOpened) {\n return;\n }\n var target = lgQuery_1.$LG(event.target);\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords, startCoords, event);\n _this.LGel.trigger(lg_events_1.lGEvents.dragEnd);\n }\n else if (_this.isPosterElement(target)) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n // Prevent execution on click\n if (isDraging) {\n isDraging = false;\n _this.outer.removeClass('lg-grabbing').addClass('lg-grab');\n }\n });\n }\n };\n LightGallery.prototype.triggerPosterClick = function () {\n var _this = this;\n this.$inner.on('click.lg', function (event) {\n if (!_this.dragOrSwipeEnabled &&\n _this.isPosterElement(lgQuery_1.$LG(event.target))) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n });\n };\n LightGallery.prototype.manageSwipeClass = function () {\n var _touchNext = this.index + 1;\n var _touchPrev = this.index - 1;\n if (this.settings.loop && this.galleryItems.length > 2) {\n if (this.index === 0) {\n _touchPrev = this.galleryItems.length - 1;\n }\n else if (this.index === this.galleryItems.length - 1) {\n _touchNext = 0;\n }\n }\n this.outer.find('.lg-item').removeClass('lg-next-slide lg-prev-slide');\n if (_touchPrev > -1) {\n this.getSlideItem(_touchPrev).addClass('lg-prev-slide');\n }\n this.getSlideItem(_touchNext).addClass('lg-next-slide');\n };\n /**\n * Go to next slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * plugin.goToNextSlide();\n * @see Demo\n */\n LightGallery.prototype.goToNextSlide = function (fromTouch) {\n var _this = this;\n var _loop = this.settings.loop;\n if (fromTouch && this.galleryItems.length < 3) {\n _loop = false;\n }\n if (!this.lgBusy) {\n if (this.index + 1 < this.galleryItems.length) {\n this.index++;\n this.LGel.trigger(lg_events_1.lGEvents.beforeNextSlide, {\n index: this.index,\n });\n this.slide(this.index, !!fromTouch, false, 'next');\n }\n else {\n if (_loop) {\n this.index = 0;\n this.LGel.trigger(lg_events_1.lGEvents.beforeNextSlide, {\n index: this.index,\n });\n this.slide(this.index, !!fromTouch, false, 'next');\n }\n else if (this.settings.slideEndAnimation && !fromTouch) {\n this.outer.addClass('lg-right-end');\n setTimeout(function () {\n _this.outer.removeClass('lg-right-end');\n }, 400);\n }\n }\n }\n };\n /**\n * Go to previous slides\n * @param {Boolean} fromTouch - true if slide function called via touch event\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery({});\n * plugin.goToPrevSlide();\n * @see Demo\n *\n */\n LightGallery.prototype.goToPrevSlide = function (fromTouch) {\n var _this = this;\n var _loop = this.settings.loop;\n if (fromTouch && this.galleryItems.length < 3) {\n _loop = false;\n }\n if (!this.lgBusy) {\n if (this.index > 0) {\n this.index--;\n this.LGel.trigger(lg_events_1.lGEvents.beforePrevSlide, {\n index: this.index,\n fromTouch: fromTouch,\n });\n this.slide(this.index, !!fromTouch, false, 'prev');\n }\n else {\n if (_loop) {\n this.index = this.galleryItems.length - 1;\n this.LGel.trigger(lg_events_1.lGEvents.beforePrevSlide, {\n index: this.index,\n fromTouch: fromTouch,\n });\n this.slide(this.index, !!fromTouch, false, 'prev');\n }\n else if (this.settings.slideEndAnimation && !fromTouch) {\n this.outer.addClass('lg-left-end');\n setTimeout(function () {\n _this.outer.removeClass('lg-left-end');\n }, 400);\n }\n }\n }\n };\n LightGallery.prototype.keyPress = function () {\n var _this = this;\n lgQuery_1.$LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\n if (_this.lgOpened &&\n _this.settings.escKey === true &&\n e.keyCode === 27) {\n e.preventDefault();\n if (_this.settings.allowMediaOverlap &&\n _this.outer.hasClass('lg-can-toggle') &&\n _this.outer.hasClass('lg-components-open')) {\n _this.outer.removeClass('lg-components-open');\n }\n else {\n _this.closeGallery();\n }\n }\n if (_this.lgOpened && _this.galleryItems.length > 1) {\n if (e.keyCode === 37) {\n e.preventDefault();\n _this.goToPrevSlide();\n }\n if (e.keyCode === 39) {\n e.preventDefault();\n _this.goToNextSlide();\n }\n }\n });\n };\n LightGallery.prototype.arrow = function () {\n var _this = this;\n this.getElementById('lg-prev').on('click.lg', function () {\n _this.goToPrevSlide();\n });\n this.getElementById('lg-next').on('click.lg', function () {\n _this.goToNextSlide();\n });\n };\n LightGallery.prototype.arrowDisable = function (index) {\n // Disable arrows if settings.hideControlOnEnd is true\n if (!this.settings.loop && this.settings.hideControlOnEnd) {\n var $prev = this.getElementById('lg-prev');\n var $next = this.getElementById('lg-next');\n if (index + 1 === this.galleryItems.length) {\n $next.attr('disabled', 'disabled').addClass('disabled');\n }\n else {\n $next.removeAttr('disabled').removeClass('disabled');\n }\n if (index === 0) {\n $prev.attr('disabled', 'disabled').addClass('disabled');\n }\n else {\n $prev.removeAttr('disabled').removeClass('disabled');\n }\n }\n };\n LightGallery.prototype.setTranslate = function ($el, xValue, yValue, scaleX, scaleY) {\n if (scaleX === void 0) { scaleX = 1; }\n if (scaleY === void 0) { scaleY = 1; }\n $el.css('transform', 'translate3d(' +\n xValue +\n 'px, ' +\n yValue +\n 'px, 0px) scale3d(' +\n scaleX +\n ', ' +\n scaleY +\n ', 1)');\n };\n LightGallery.prototype.mousewheel = function () {\n var _this = this;\n var lastCall = 0;\n this.outer.on('wheel.lg', function (e) {\n if (!e.deltaY || _this.galleryItems.length < 2) {\n return;\n }\n e.preventDefault();\n var now = new Date().getTime();\n if (now - lastCall < 1000) {\n return;\n }\n lastCall = now;\n if (e.deltaY > 0) {\n _this.goToNextSlide();\n }\n else if (e.deltaY < 0) {\n _this.goToPrevSlide();\n }\n });\n };\n LightGallery.prototype.isSlideElement = function (target) {\n return (target.hasClass('lg-outer') ||\n target.hasClass('lg-item') ||\n target.hasClass('lg-img-wrap'));\n };\n LightGallery.prototype.isPosterElement = function (target) {\n var playButton = this.getSlideItem(this.index)\n .find('.lg-video-play-button')\n .get();\n return (target.hasClass('lg-video-poster') ||\n target.hasClass('lg-video-play-button') ||\n (playButton && playButton.contains(target.get())));\n };\n /**\n * Maximize minimize inline gallery.\n * @category lGPublicMethods\n */\n LightGallery.prototype.toggleMaximize = function () {\n var _this = this;\n this.getElementById('lg-maximize').on('click.lg', function () {\n _this.$container.toggleClass('lg-inline');\n _this.refreshOnResize();\n });\n };\n LightGallery.prototype.invalidateItems = function () {\n for (var index = 0; index < this.items.length; index++) {\n var element = this.items[index];\n var $element = lgQuery_1.$LG(element);\n $element.off(\"click.lgcustom-item-\" + $element.attr('data-lg-id'));\n }\n };\n LightGallery.prototype.manageCloseGallery = function () {\n var _this = this;\n if (!this.settings.closable)\n return;\n var mousedown = false;\n this.getElementById('lg-close').on('click.lg', function () {\n _this.closeGallery();\n });\n if (this.settings.closeOnTap) {\n // If you drag the slide and release outside gallery gets close on chrome\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\n this.outer.on('mousedown.lg', function (e) {\n var target = lgQuery_1.$LG(e.target);\n if (_this.isSlideElement(target)) {\n mousedown = true;\n }\n else {\n mousedown = false;\n }\n });\n this.outer.on('mousemove.lg', function () {\n mousedown = false;\n });\n this.outer.on('mouseup.lg', function (e) {\n var target = lgQuery_1.$LG(e.target);\n if (_this.isSlideElement(target) && mousedown) {\n if (!_this.outer.hasClass('lg-dragging')) {\n _this.closeGallery();\n }\n }\n });\n }\n };\n /**\n * Close lightGallery if it is opened.\n *\n * @description If closable is false in the settings, you need to pass true via closeGallery method to force close gallery\n * @return returns the estimated time to close gallery completely including the close animation duration\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * plugin.closeGallery();\n *\n */\n LightGallery.prototype.closeGallery = function (force) {\n var _this = this;\n if (!this.lgOpened || (!this.settings.closable && !force)) {\n return 0;\n }\n this.LGel.trigger(lg_events_1.lGEvents.beforeClose);\n lgQuery_1.$LG(window).scrollTop(this.prevScrollTop);\n var currentItem = this.items[this.index];\n var transform;\n if (this.zoomFromOrigin && currentItem) {\n var _a = this.mediaContainerPosition, top_4 = _a.top, bottom = _a.bottom;\n var _b = this.galleryItems[this.index], __slideVideoInfo = _b.__slideVideoInfo, poster = _b.poster;\n var imageSize = lg_utils_1.default.getSize(currentItem, this.outer, top_4 + bottom, __slideVideoInfo && poster && this.settings.videoMaxSize);\n transform = lg_utils_1.default.getTransform(currentItem, this.outer, top_4, bottom, imageSize);\n }\n if (this.zoomFromOrigin && transform) {\n this.outer.addClass('lg-closing lg-zoom-from-image');\n this.getSlideItem(this.index)\n .addClass('lg-start-end-progress')\n .css('transition-duration', this.settings.startAnimationDuration + 'ms')\n .css('transform', transform);\n }\n else {\n this.outer.addClass('lg-hide-items');\n // lg-zoom-from-image is used for setting the opacity to 1 if zoomFromOrigin is true\n // If the closing item doesn't have the lg-size attribute, remove this class to avoid the closing css conflicts\n this.outer.removeClass('lg-zoom-from-image');\n }\n // Unbind all events added by lightGallery\n // @todo\n //this.$el.off('.lg.tm');\n this.destroyModules();\n this.lGalleryOn = false;\n this.isDummyImageRemoved = false;\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\n clearTimeout(this.hideBarTimeout);\n this.hideBarTimeout = false;\n lgQuery_1.$LG('html').removeClass('lg-on');\n this.outer.removeClass('lg-visible lg-components-open');\n // Resetting opacity to 0 isd required as vertical swipe to close function adds inline opacity.\n this.$backdrop.removeClass('in').css('opacity', 0);\n var removeTimeout = this.zoomFromOrigin && transform\n ? Math.max(this.settings.startAnimationDuration, this.settings.backdropDuration)\n : this.settings.backdropDuration;\n this.$container.removeClass('lg-show-in');\n // Once the closign animation is completed and gallery is invisible\n setTimeout(function () {\n if (_this.zoomFromOrigin && transform) {\n _this.outer.removeClass('lg-zoom-from-image');\n }\n _this.$container.removeClass('lg-show');\n // Need to remove inline opacity as it is used in the stylesheet as well\n _this.$backdrop\n .removeAttr('style')\n .css('transition-duration', _this.settings.backdropDuration + 'ms');\n _this.outer.removeClass(\"lg-closing \" + _this.settings.startClass);\n _this.getSlideItem(_this.index).removeClass('lg-start-end-progress');\n _this.$inner.empty();\n if (_this.lgOpened) {\n _this.LGel.trigger(lg_events_1.lGEvents.afterClose, {\n instance: _this,\n });\n }\n if (_this.outer.get()) {\n _this.outer.get().blur();\n }\n _this.lgOpened = false;\n }, removeTimeout + 100);\n return removeTimeout + 100;\n };\n LightGallery.prototype.initModules = function () {\n this.plugins.forEach(function (module) {\n try {\n module.init();\n }\n catch (err) {\n console.warn(\"lightGallery:- make sure lightGallery module is properly initiated\");\n }\n });\n };\n LightGallery.prototype.destroyModules = function (destroy) {\n this.plugins.forEach(function (module) {\n try {\n if (destroy) {\n module.destroy();\n }\n else {\n module.closeGallery && module.closeGallery();\n }\n }\n catch (err) {\n console.warn(\"lightGallery:- make sure lightGallery module is properly destroyed\");\n }\n });\n };\n /**\n * Refresh lightGallery with new set of children.\n *\n * @description This is useful to update the gallery when the child elements are changed without calling destroy method.\n *\n * If you are using dynamic mode, you can pass the modified array of dynamicEl as the first parameter to refresh the dynamic gallery\n * @see Demo\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * // Delete or add children, then call\n * plugin.refresh();\n *\n */\n LightGallery.prototype.refresh = function (galleryItems) {\n if (!this.settings.dynamic) {\n this.invalidateItems();\n }\n if (galleryItems) {\n this.galleryItems = galleryItems;\n }\n else {\n this.galleryItems = this.getItems();\n }\n this.updateControls();\n this.openGalleryOnItemClick();\n this.LGel.trigger(lg_events_1.lGEvents.updateSlides);\n };\n LightGallery.prototype.updateControls = function () {\n this.addSlideVideoInfo(this.galleryItems);\n this.updateCounterTotal();\n this.manageSingleSlideClassName();\n };\n /**\n * Destroy lightGallery.\n * Destroy lightGallery and its plugin instances completely\n *\n * @description This method also calls CloseGallery function internally. Returns the time takes to completely close and destroy the instance.\n * In case if you want to re-initialize lightGallery right after destroying it, initialize it only once the destroy process is completed.\n * You can use refresh method most of the times.\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * plugin.destroy();\n *\n */\n LightGallery.prototype.destroy = function () {\n var _this = this;\n var closeTimeout = this.closeGallery(true);\n setTimeout(function () {\n _this.destroyModules(true);\n if (!_this.settings.dynamic) {\n _this.invalidateItems();\n }\n lgQuery_1.$LG(window).off(\".lg.global\" + _this.lgId);\n _this.LGel.off('.lg');\n _this.$container.remove();\n }, closeTimeout);\n return closeTimeout;\n };\n return LightGallery;\n}());\nexports.LightGallery = LightGallery;\n//# sourceMappingURL=lightgallery.js.map"],"names":["Object","defineProperty","exports","value","lightgallery_1","el","options","LightGallery","lGEvents","afterAppendSlide","init","hasVideo","containerResize","updateSlides","afterAppendSubHtml","beforeOpen","afterOpen","slideItemLoad","beforeSlide","afterSlide","posterClick","dragStart","dragMove","dragEnd","beforeNextSlide","beforePrevSlide","beforeClose","afterClose","rotateLeft","rotateRight","flipHorizontal","flipVertical","lightGalleryCoreSettings","mode","easing","speed","licenseKey","height","width","addClass","startClass","backdropDuration","container","startAnimationDuration","zoomFromOrigin","hideBarsDelay","showBarsAfter","slideDelay","supportLegacyBrowser","allowMediaOverlap","videoMaxSize","loadYouTubePoster","defaultCaptionHeight","ariaLabelledby","ariaDescribedby","closable","swipeToClose","closeOnTap","showCloseIcon","showMaximizeIcon","loop","escKey","keyPress","controls","slideEndAnimation","hideControlOnEnd","mousewheel","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","preload","numberOfSlideItemsInDom","selector","selectWithin","nextHtml","prevHtml","index","iframeWidth","iframeHeight","iframeMaxWidth","iframeMaxHeight","download","counter","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","dynamic","dynamicEl","extraProps","exThumbImage","isMobile","undefined","mobileSettings","plugins","__spreadArrays","this","s","i","il","arguments","length","r","Array","k","a","j","jl","convertToData","lgQuery_1","defaultDynamicOptions","attr","replace","charAt","toLowerCase","slice","g","toUpperCase","utils","getSize","spacing","defaultLgSize","lgSize","$LG","isResponsiveSizes","split","wWidth","window","innerWidth","size_1","parseInt","size","cWidth","cHeight","maxWidth","Math","min","maxHeight","ratio","getTransform","top","bottom","imageSize","LGel","find","first","get","containerRect","getBoundingClientRect","wHeight","elWidth","elHeight","elStyle","style","x","offset","left","parseFloat","paddingLeft","borderLeft","scrollLeft","y","paddingTop","borderTop","scrollTop","getIframeMarkup","src","iframeTitle","getImgMarkup","altAttr","srcset","sizes","sources","imgMarkup","sourceTag","JSON","parse","map","source","attrs","keys","forEach","key","getResponsiveSrc","srcItms","rsWidth","rsSrc","_src","splice","push","isImageLoaded","img","complete","naturalWidth","getVideoPosterMarkup","_poster","dummyImg","videoContStyle","_isVideo","youtube","vimeo","getDynamicOptions","items","dynamicElements","availableDynamicOptions","call","item","attributes","specified","dynamicAttr","name","label","indexOf","currentItem","alt","title","thumb","subHtml","test","navigator","userAgent","isVideo","isHTML5VIdeo","html5","console","error","match","wistia","lgQuery","cssVenderPrefixes","_getSelector","firstElement","_getFirstEl","generateUUID","c","random","toString","prototype","context","document","substring","querySelector","querySelectorAll","_each","func","_setCssVendorPrefix","cssProperty","property","group1","isEventMatched","event","eventName","eventNamespace","filter","e","every","getAttribute","setAttribute","eq","parent","parentElement","removeAttr","removeAttribute","wrap","className","wrapper","createElement","parentNode","insertBefore","removeChild","appendChild","classNames","classList","add","removeClass","remove","hasClass","contains","hasAttribute","attribute","toggleClass","css","_this","on","events","listener","isArray","eventListeners","addEventListener","once","off","removeEventListener","trigger","detail","customEvent","CustomEvent","dispatchEvent","load","url","fetch","then","res","innerHTML","html","append","insertAdjacentHTML","prepend","empty","body","documentElement","pageYOffset","pageXOffset","rect","bodyMarginLeft","marginLeft","currentStyle","getComputedStyle","clientWidth","paddingRight","clientHeight","paddingBottom","params","bubbles","cancelable","evt","createEvent","initCustomEvent","Element","matches","msMatchesSelector","webkitMatchesSelector","__assign","assign","t","n","p","hasOwnProperty","apply","lg_utils_1","lg_settings_1","lg_events_1","lgId","element","lgOpened","lGalleryOn","lgBusy","currentItemsInDom","prevScrollTop","isDummyImageRemoved","dragOrSwipeEnabled","mediaContainerPosition","generateSettings","buildModules","settings","galleryItems","getItems","normalizeSettings","validateLicense","default","addSlideVideoInfo","buildStructure","instance","setTimeout","triggerPosterClick","arrow","openGalleryOnItemClick","_loop_1","this_1","$element","uuid","preventDefault","currentItemIndex","openGallery","plugin","warn","getSlideItem","getSlideItemId","getIdName","id","getElementById","manageSingleSlideClassName","outer","$container","subHtmlCont","addClasses","containerClassName","closeIcon","maximizeIcon","template","$lgComponents","$backdrop","$inner","$content","$toolbar","outerClassNames","refreshOnResize","hideBars","manageCloseGallery","toggleMaximize","initModules","__slideVideoInfo","getMediaContainerPosition","_a","top_1","currentImageSize","resizeVideoSlide","imgStyle","getDummyImgStyles","lgVideoStyle","getVideoContStyle","currentSrc","updateControls","_index","some","galleryItem","itemIndex","organizeSlideItems","loadContent","updateCurrentCounter","closeGallery","children","focus","itemsToBeInsertedToDom","getItemsToBeInsertedToDom","addHtml","transform","setMediaContainerPosition","timeout","currentSlide_1","slide","captionHeight","thumbContainer","clearTimeout","hideBarTimeout","initPictureFill","$img","picturefill","elements","counterHtml","subHtmlUrl","fL","currentSlide","getDummyImageContent","$currentSlide","$currentItem","_dummyImgSrc","dummyImgContent","setImgMarkup","currentGalleryItem","isFirstSlideWithZoomAnimation","onSlideObjectLoad","$slide","isHTML5VideoWithoutPoster","onLoad","onError","mediaObject","onLgObjectLoad","delay","isFirstSlide","triggerSlideItemLoad","_speed","getSlideType","poster","video","rec","_html5Video","responsive","srcDyItms","videoInfo","iframe","top_2","videoSize","markup","html5Video","hasPoster","loadContentOnFirstSlideLoad","prevIndex","numberOfItems","possibleNumberOfItems","max","prevIndexItem","_element","idx","numberOfExistingItems","getPreviousSlideIndex","currentItemId","setDownloadValue","downloadUrl","$download","makeSlideAnimation","direction","currentSlideItem","previousSlideItem","fromTouch","fromThumb","numberOfGalleryItems","previousSlideItem_1","top_3","arrowDisable","touchPrev","touchNext","updateCounterTotal","touchMove","startCoords","endCoords","distanceX","pageX","distanceY","pageY","allowSwipe","swipeDirection","abs","setTranslate","offsetWidth","gutter","opacity","innerHeight","scale","touchEnd","distance","triggerClick","distanceAbs","goToNextSlide","goToPrevSlide","target","isPosterElement","isMoved","isSwiping","$item","targetTouches","touchAction","manageSwipeClass","isDraging","_touchNext","_touchPrev","_loop","keyCode","$prev","$next","$el","xValue","yValue","scaleX","scaleY","lastCall","deltaY","now","Date","getTime","isSlideElement","playButton","invalidateItems","mousedown","force","top_4","_b","destroyModules","removeTimeout","blur","module","err","destroy","refresh","closeTimeout"],"sourceRoot":""} \ No newline at end of file diff --git a/js/223.js b/js/223.js deleted file mode 100644 index 896fbf8d..00000000 --- a/js/223.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunksakurairo_scripts=self.webpackChunksakurairo_scripts||[]).push([[223],{2446:function(e){e.exports=function(e){const n=/[a-zA-Z@][a-zA-Z0-9_]*/,E={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:{$pattern:n,keyword:["int","float","while","char","export","sizeof","typedef","const","struct","for","union","unsigned","long","volatile","static","bool","mutable","if","do","return","goto","void","enum","else","break","extern","asm","case","short","default","double","register","explicit","signed","typename","this","switch","continue","wchar_t","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","super","unichar","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["BOOL","dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"]},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+E.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:E,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}},7552:function(e){e.exports=function(e){return{name:"OCaml",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/->/}]}}},6277:function(e){e.exports=function(e){const n={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},E={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},t=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={className:"function",beginKeywords:"module function",end:/=|\{/,contains:[{className:"params",begin:"\\(",end:"\\)",contains:["self",E,t,n,{className:"literal",begin:"false|true|PI|undef"}]},e.UNDERSCORE_TITLE_MODE]};return{name:"OpenSCAD",aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,E,{className:"meta",keywords:{keyword:"include use"},begin:"include|use <",end:">"},t,n,{begin:"[*!#%]",relevance:0},a]}}},136:function(e){e.exports=function(e){const n={$pattern:/\.?\w+/,keyword:"abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained"},E=e.COMMENT(/\{/,/\}/,{relevance:0}),t=e.COMMENT("\\(\\*","\\*\\)",{relevance:10}),a={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},s={className:"string",begin:"(#\\d+)+"},r={className:"function",beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",keywords:n,contains:[a,s]},E,t]};return{name:"Oxygene",case_insensitive:!0,keywords:n,illegal:'("|\\$[G-Zg-z]|\\/\\*||->)',contains:[E,t,e.C_LINE_COMMENT_MODE,a,s,e.NUMBER_MODE,r,{className:"class",begin:"=\\bclass\\b",end:"end;",keywords:n,contains:[a,s,E,t,e.C_LINE_COMMENT_MODE,r]}]}}},3412:function(e){e.exports=function(e){const n=e.COMMENT(/\{/,/\}/,{contains:["self"]});return{name:"Parser3",subLanguage:"xml",relevance:0,contains:[e.COMMENT("^#","$"),e.COMMENT(/\^rem\{/,/\}/,{relevance:10,contains:[n]}),{className:"meta",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$",relevance:10},{className:"title",begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{className:"variable",begin:/\$\{?[\w\-.:]+\}?/},{className:"keyword",begin:/\^[\w\-.:]+/},{className:"number",begin:"\\^#[0-9a-fA-F]+"},e.C_NUMBER_MODE]}}},2482:function(e){e.exports=function(e){const n=e.regex,E=/[dualxmsipngr]{0,12}/,t={$pattern:/[\w.]+/,keyword:["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"].join(" ")},a={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:t},s={begin:/->\{/,end:/\}/},r={variants:[{begin:/\$\d/},{begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,a,r],_=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],T=(e,t,a="\\1")=>{const s="\\1"===a?a:n.concat(a,t);return n.concat(n.concat("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,/(?:\\.|[^\\\/])*?/,a,E)},N=(e,t,a)=>n.concat(n.concat("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,a,E),o=[r,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),s,{className:"string",contains:i,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:T("s|tr|y",n.either(..._,{capture:!0}))},{begin:T("s|tr|y","\\(","\\)")},{begin:T("s|tr|y","\\[","\\]")},{begin:T("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:N("(?:m|qr)?",/\//,/\//)},{begin:N("m|qr",n.either(..._,{capture:!0}),/\1/)},{begin:N("m|qr",/\(/,/\)/)},{begin:N("m|qr",/\[/,/\]/)},{begin:N("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return a.contains=o,s.contains=o,{name:"Perl",aliases:["pl","pm"],keywords:t,contains:o}}},4485:function(e){e.exports=function(e){return{name:"Packet Filter config",aliases:["pf.conf"],keywords:{$pattern:/[a-z0-9_<>-]+/,built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to route allow-opts divert-packet divert-reply divert-to flags group icmp-type icmp6-type label once probability recieved-on rtable prio queue tos tag tagged user keep fragment for os drop af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin source-hash static-port dup-to reply-to route-to parent bandwidth default min max qlimit block-policy debug fingerprints hostid limit loginterface optimization reassemble ruleset-optimization basic none profile skip state-defaults state-policy timeout const counters persist no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy source-track global rule max-src-nodes max-src-states max-src-conn max-src-conn-rate overload flush scrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},contains:[e.HASH_COMMENT_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE,{className:"variable",begin:/\$[\w\d#@][\w\d_]*/},{className:"variable",begin:/<(?!\/)/,end:/>/}]}}},9814:function(e){e.exports=function(e){const n=e.COMMENT("--","$"),E="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",t="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",a=t.trim().split(" ").map((function(e){return e.split("|")[0]})).join("|"),s="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST ".trim().split(" ").map((function(e){return e.split("|")[0]})).join("|");return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql",case_insensitive:!0,keywords:{keyword:"ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ",built_in:"CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED "},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/,contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{begin:/\bGROUPING\s+SETS\b/},{begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/,keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/},{begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR"}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE",end:e.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE"},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type",begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/},{begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,keywords:{keyword:"RETURNS",type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER"}},{begin:"\\b("+s+")\\s*\\("},{begin:"\\.("+a+")\\b"},{begin:"\\b("+a+")\\s+PATH\\b",keywords:{keyword:"PATH",type:t.replace("PATH ","")}},{className:"type",begin:"\\b("+a+")\\b"},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}],relevance:10},e.END_SAME_AS_BEGIN({begin:E,end:E,contains:[{subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"],endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"meta",variants:[{begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{className:"symbol",begin:"<<\\s*[a-zA-Z_][a-zA-Z_0-9$]*\\s*>>",relevance:10}]}}},5112:function(e){e.exports=function(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}},2656:function(e){e.exports=function(e){const n={className:"variable",begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*(?![A-Za-z0-9])(?![$])"},E={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},t={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},a=e.inherit(e.APOS_STRING_MODE,{illegal:null}),s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(t)}),r=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(t)}),i={className:"string",contains:[e.BACKSLASH_ESCAPE,E],variants:[e.inherit(a,{begin:"b'",end:"'"}),e.inherit(s,{begin:'b"',end:'"'}),s,a,r]},_={className:"number",variants:[{begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"}],relevance:0},T={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{case_insensitive:!0,keywords:T,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[E]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),E,{className:"keyword",begin:/\$this\b/},n,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:T,contains:["self",n,e.C_BLOCK_COMMENT_MODE,i,_]}]},{className:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",contains:[e.UNDERSCORE_TITLE_MODE]},i,_]}}},2437:function(e){e.exports=function(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}},6874:function(e){e.exports=function(e){return{name:"Pony",keywords:{keyword:"actor addressof and as be break class compile_error compile_intrinsic consume continue delegate digestof do else elseif embed end error for fun if ifdef in interface is isnt lambda let match new not object or primitive recover repeat return struct then trait try type until use var where while with xor",meta:"iso val tag trn box ref",literal:"this false true"},contains:[{className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE],relevance:0},{begin:e.IDENT_RE+"'",relevance:0},{className:"number",begin:"(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}},5040:function(e){e.exports=function(e){const n={$pattern:/-?[A-z\.\-]+\b/,keyword:"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter",built_in:"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write"},E={begin:"`[\\s\\S]",relevance:0},t={className:"variable",variants:[{begin:/\$\B/},{className:"keyword",begin:/\$this/},{begin:/\$[\w\d][\w\d_:]*/}]},a={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[E,t,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},s={className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},r=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],contains:[{className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]}]}),i={className:"built_in",variants:[{begin:"(".concat("Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where",")+(-)[\\w\\d]+")}]},_={className:"class",beginKeywords:"class enum",end:/\s*[{]/,excludeEnd:!0,relevance:0,contains:[e.TITLE_MODE]},T={className:"function",begin:/function\s+/,end:/\s*\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0,contains:[{begin:"function",relevance:0,className:"keyword"},{className:"title",begin:/\w[\w\d]*((-)[\w\d]+)*/,relevance:0},{begin:/\(/,end:/\)/,className:"params",relevance:0,contains:[t]}]},N={begin:/using\s/,end:/$/,returnBegin:!0,contains:[a,s,{className:"keyword",begin:/(using|assembly|command|module|namespace|type)/}]},o={variants:[{className:"operator",begin:"(".concat("-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor",")\\b")},{className:"literal",begin:/(-){1,2}[\w\d-]+/,relevance:0}]},l={className:"function",begin:/\[.*\]\s*[\w]+[ ]??\(/,end:/$/,returnBegin:!0,relevance:0,contains:[{className:"keyword",begin:"(".concat(n.keyword.toString().replace(/\s/g,"|"),")\\b"),endsParent:!0,relevance:0},e.inherit(e.TITLE_MODE,{endsParent:!0})]},A=[l,r,E,e.NUMBER_MODE,a,s,i,t,{className:"literal",begin:/\$(null|true|false)\b/},{className:"selector-tag",begin:/@\B/,relevance:0}],R={begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat("self",A,{begin:"("+["string","char","byte","int","long","bool","decimal","single","double","DateTime","xml","array","hashtable","void"].join("|")+")",className:"built_in",relevance:0},{className:"type",begin:/[\.\w\d]+/,relevance:0})};return l.contains.unshift(R),{name:"PowerShell",aliases:["pwsh","ps","ps1"],case_insensitive:!0,keywords:n,contains:A.concat(_,T,N,o,R)}}},5371:function(e){e.exports=function(e){const n=e.regex,E=["displayHeight","displayWidth","mouseY","mouseX","mousePressed","pmouseX","pmouseY","key","keyCode","pixels","focused","frameCount","frameRate","height","width","size","createGraphics","beginDraw","createShape","loadShape","PShape","arc","ellipse","line","point","quad","rect","triangle","bezier","bezierDetail","bezierPoint","bezierTangent","curve","curveDetail","curvePoint","curveTangent","curveTightness","shape","shapeMode","beginContour","beginShape","bezierVertex","curveVertex","endContour","endShape","quadraticVertex","vertex","ellipseMode","noSmooth","rectMode","smooth","strokeCap","strokeJoin","strokeWeight","mouseClicked","mouseDragged","mouseMoved","mousePressed","mouseReleased","mouseWheel","keyPressed","keyPressedkeyReleased","keyTyped","print","println","save","saveFrame","day","hour","millis","minute","month","second","year","background","clear","colorMode","fill","noFill","noStroke","stroke","alpha","blue","brightness","color","green","hue","lerpColor","red","saturation","modelX","modelY","modelZ","screenX","screenY","screenZ","ambient","emissive","shininess","specular","add","createImage","beginCamera","camera","endCamera","frustum","ortho","perspective","printCamera","printProjection","cursor","frameRate","noCursor","exit","loop","noLoop","popStyle","pushStyle","redraw","binary","boolean","byte","char","float","hex","int","str","unbinary","unhex","join","match","matchAll","nf","nfc","nfp","nfs","split","splitTokens","trim","append","arrayCopy","concat","expand","reverse","shorten","sort","splice","subset","box","sphere","sphereDetail","createInput","createReader","loadBytes","loadJSONArray","loadJSONObject","loadStrings","loadTable","loadXML","open","parseXML","saveTable","selectFolder","selectInput","beginRaw","beginRecord","createOutput","createWriter","endRaw","endRecord","PrintWritersaveBytes","saveJSONArray","saveJSONObject","saveStream","saveStrings","saveXML","selectOutput","popMatrix","printMatrix","pushMatrix","resetMatrix","rotate","rotateX","rotateY","rotateZ","scale","shearX","shearY","translate","ambientLight","directionalLight","lightFalloff","lights","lightSpecular","noLights","normal","pointLight","spotLight","image","imageMode","loadImage","noTint","requestImage","tint","texture","textureMode","textureWrap","blend","copy","filter","get","loadPixels","set","updatePixels","blendMode","loadShader","PShaderresetShader","shader","createFont","loadFont","text","textFont","textAlign","textLeading","textMode","textSize","textWidth","textAscent","textDescent","abs","ceil","constrain","dist","exp","floor","lerp","log","mag","map","max","min","norm","pow","round","sq","sqrt","acos","asin","atan","atan2","cos","degrees","radians","sin","tan","noise","noiseDetail","noiseSeed","random","randomGaussian","randomSeed"],t=e.IDENT_RE,a={variants:[{match:n.concat(n.either(...E),n.lookahead(/\s*\(/)),className:"built_in"},{relevance:0,match:n.concat(/\b(?!for|if|while)/,t,n.lookahead(/\s*\(/)),className:"title.function"}]},s={match:[/new\s+/,t],className:{1:"keyword",2:"class.title"}},r={relevance:0,match:[/\./,t],className:{2:"property"}},i={variants:[{match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,t]},{match:[/class/,/\s+/,t]}],className:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}};return{name:"Processing",aliases:["pde"],keywords:{keyword:["abstract","assert","break","case","catch","const","continue","default","else","enum","final","finally","for","if","import","instanceof","long","native","new","package","private","private","protected","protected","public","public","return","static","strictfp","switch","synchronized","throw","throws","transient","try","void","volatile","while"],literal:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI null true false",title:"setup draw",variable:"super this",built_in:[...E,"BufferedReader","PVector","PFont","PImage","PGraphics","HashMap","String","Array","FloatDict","ArrayList","FloatList","IntDict","IntList","JSONArray","JSONObject","Object","StringDict","StringList","Table","TableRow","XML"],type:["boolean","byte","char","color","double","float","int","long","short"]},contains:[i,s,a,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},3476:function(e){e.exports=function(e){return{name:"Python profiler",contains:[e.C_NUMBER_MODE,{begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",end:":",excludeEnd:!0},{begin:"(ncalls|tottime|cumtime)",end:"$",keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{begin:"function calls",end:"$",contains:[e.C_NUMBER_MODE],relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\(",end:"\\)$",excludeBegin:!0,excludeEnd:!0,relevance:0}]}}},3944:function(e){e.exports=function(e){const n={begin:/\(/,end:/\)/,relevance:0},E={begin:/\[/,end:/\]/},t={className:"comment",begin:/%/,end:/$/,contains:[e.PHRASAL_WORDS_MODE]},a={className:"string",begin:/`/,end:/`/,contains:[e.BACKSLASH_ESCAPE]},s=[{begin:/[a-z][A-Za-z0-9_]*/,relevance:0},{className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},n,{begin:/:-/},E,t,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,a,{className:"string",begin:/0'(\\'|.)/},{className:"string",begin:/0'\\s/},e.C_NUMBER_MODE];return n.contains=s,E.contains=s,{name:"Prolog",contains:s.concat([{begin:/\.$/}])}}},7546:function(e){e.exports=function(e){const n="[ \\t\\f]*",E=n+"[:=]"+n,t="[ \\t\\f]+",a="([^\\\\:= \\t\\f\\n]|\\\\.)+",s={end:"([ \\t\\f]*[:=][ \\t\\f]*|[ \\t\\f]+)",relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",disableAutodetect:!0,case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{returnBegin:!0,variants:[{begin:a+E},{begin:a+t}],contains:[{className:"attr",begin:a,endsParent:!0}],starts:s},{className:"attr",begin:a+n+"$"}]}}},5559:function(e){e.exports=function(e){return{name:"Protocol Buffers",keywords:{keyword:"package import option optional required repeated group oneof",built_in:"double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool string bytes",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"message enum service",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}},3867:function(e){e.exports=function(e){const n=e.COMMENT("#","$"),E="([A-Za-z_]|::)(\\w|::)*",t=e.inherit(e.TITLE_MODE,{begin:E}),a={className:"variable",begin:"\\$"+E},s={className:"string",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{name:"Puppet",aliases:["pp"],contains:[n,a,s,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[t,n]},{beginKeywords:"define",end:/\{/,contains:[{className:"section",begin:e.IDENT_RE,endsParent:!0}]},{begin:e.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{className:"keyword",begin:e.IDENT_RE},{begin:/\{/,end:/\}/,keywords:{keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ",literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted",built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"},relevance:0,contains:[s,n,{begin:"[a-zA-Z_]+\\s*=>",returnBegin:!0,end:"=>",contains:[{className:"attr",begin:e.IDENT_RE}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},a]}],relevance:0}]}}},2938:function(e){e.exports=function(e){return{name:"PureBASIC",aliases:["pb","pbi"],keywords:"Align And Array As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount Map Module NewList NewMap Next Not Or Procedure ProcedureC ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim Read Repeat Restore Return Runtime Select Shared Static Step Structure StructureUnion Swap Threaded To UndefineMacro Until Until UnuseModule UseModule Wend While With XIncludeFile XOr",contains:[e.COMMENT(";","$",{relevance:0}),{className:"function",begin:"\\b(Procedure|Declare)(C|CDLL|DLL)?\\b",end:"\\(",excludeEnd:!0,returnBegin:!0,contains:[{className:"keyword",begin:"(Procedure|Declare)(C|CDLL|DLL)?",excludeEnd:!0},{className:"type",begin:"\\.\\w*"},e.UNDERSCORE_TITLE_MODE]},{className:"string",begin:'(~)?"',end:'"',illegal:"\\n"},{className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"}]}}},3722:function(e){e.exports=function(e){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}},8245:function(e){e.exports=function(e){const n=e.regex,E=/[\p{XID_Start}_]\p{XID_Continue}*/u,t={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},a={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,end:/\}/,keywords:t,illegal:/#/},r={begin:/\{\{/,relevance:0},i={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,r,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,r,s]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,r,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},_="[0-9](_?[0-9])*",T=`(\\b(${_}))?\\.(${_})|\\b(${_})\\.`,N={className:"number",relevance:0,variants:[{begin:`(\\b(${_})|(${T}))[eE][+-]?(${_})[jJ]?\\b`},{begin:`(${T})[jJ]?`},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${_})[jJ]\\b`}]},o={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:t,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},l={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:["self",a,N,i,e.HASH_COMMENT_MODE]}]};return s.contains=[i,N,a],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:t,illegal:/(<\/|->|\?)|=>/,contains:[a,N,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},i,o,e.HASH_COMMENT_MODE,{match:[/def/,/\s+/,E],scope:{1:"keyword",3:"title.function"},contains:[l]},{variants:[{match:[/class/,/\s+/,E,/\s*/,/\(\s*/,E,/\s*\)/]},{match:[/class/,/\s+/,E]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[N,l,i]}]}}}}]); -//# sourceMappingURL=223.js.map \ No newline at end of file diff --git a/js/223.js.map b/js/223.js.map deleted file mode 100644 index 06911f65..00000000 --- a/js/223.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"223.js","mappings":"0GAyPAA,EAAOC,QAjPP,SAAoBC,GAClB,MAIMC,EAAgB,yBA2JhBC,EAAiB,CACrBC,SAAUF,EACVG,QAAS,CACP,aACA,SACA,YACA,oBAGJ,MAAO,CACLC,KAAM,cACNC,QAAS,CACP,KACA,OACA,QACA,UACA,iBAEFC,SAxBe,CACfJ,SAAUF,EACVG,QAtJU,CACV,MACA,QACA,QACA,OACA,SACA,SACA,UACA,QACA,SACA,MACA,QACA,WACA,OACA,WACA,SACA,OACA,UACA,KACA,KACA,SACA,OACA,OACA,OACA,OACA,QACA,SACA,MACA,OACA,QACA,UACA,SACA,WACA,WACA,SACA,WACA,OACA,SACA,WACA,UACA,SACA,WACA,SACA,YACA,OACA,gBACA,KACA,SACA,YACA,QACA,UACA,WACA,WACA,SACA,OACA,OACA,KACA,MACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,kBACA,WACA,aACA,UACA,OACA,YACA,OACA,SACA,SACA,WACA,mBACA,cACA,WACA,YACA,YACA,YACA,UACA,WACA,UACA,QACA,uBACA,WACA,oBACA,oBACA,kBACA,cACA,kBACA,WACA,WACA,YACA,oBACA,eACA,sBACA,gBACA,SACA,SACA,SACA,oBACA,UACA,WACA,mBACA,kBACA,QACA,eACA,4BACA,iBACA,oBACA,2BACA,YACA,eACA,gBACA,UACA,aACA,uBACA,0BACA,wBACA,uBACA,gBACA,mBACA,YACA,aACA,gBACA,iBACA,iBAuBAI,QArBe,CACf,QACA,OACA,QACA,OACA,MACA,MACA,KACA,QAcAC,SAZgB,CAChB,OACA,kBACA,mBACA,gBACA,iBACA,kBA2BAC,QAAS,KACTC,SAAU,CAnLM,CAChBC,UAAW,WACXC,MAAO,wEAmLLb,EAAKc,oBACLd,EAAKe,qBACLf,EAAKgB,cACLhB,EAAKiB,kBACLjB,EAAKkB,iBACL,CACEN,UAAW,SACXO,SAAU,CACR,CACEN,MAAO,KACPO,IAAK,IACLV,QAAS,MACTC,SAAU,CAAEX,EAAKqB,qBAIvB,CACET,UAAW,OA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hB,CACE9B,UAAW,OACXC,MAAO,gCACPS,UAAW,IAEb,CACEV,UAAW,QACXC,MAAO,4DAET,CACED,UAAW,WACXC,MAAO,qBAET,CACED,UAAW,UACXC,MAAO,eAET,CACED,UAAW,SACXC,MAAO,oBAETb,EAAKgB,kB,iBC2aXlB,EAAOC,QAtdP,SAAcC,GACZ,MAAM4C,EAAQ5C,EAAK4C,MA2ObC,EAAkB,uBAClBC,EAAgB,CACpB3C,SAAU,SACVC,QA7Oe,CACf,MACA,SACA,QACA,MACA,QACA,OACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,UACA,WACA,MACA,QACA,WACA,UACA,UACA,SACA,MACA,KACA,OACA,OACA,OACA,QACA,WACA,aACA,YACA,cACA,WACA,aACA,MACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,MACA,UACA,OACA,SACA,WACA,OACA,WACA,WACA,WACA,gBACA,gBACA,aACA,WACA,eACA,eACA,YACA,cACA,UACA,cACA,iBACA,mBACA,cACA,WACA,WACA,WACA,gBACA,gBACA,aACA,cACA,aACA,QACA,OACA,SACA,OACA,OACA,KACA,MACA,KACA,QACA,MACA,QACA,OACA,OACA,OACA,OACA,KACA,UACA,SACA,OACA,SACA,QACA,YACA,MACA,QACA,KACA,KACA,MACA,QACA,SACA,SACA,SACA,SACA,KACA,KACA,OACA,KACA,MACA,MACA,OACA,UACA,KACA,MACA,MACA,OACA,UACA,OACA,MACA,MACA,QACA,SACA,YACA,OACA,MACA,KACA,YACA,KACA,KACA,OACA,OACA,UACA,WACA,WACA,WACA,OACA,OACA,MACA,SACA,UACA,QACA,SACA,UACA,YACA,SACA,QACA,MACA,SACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,WACA,aACA,YACA,UACA,cACA,cACA,WACA,aACA,aACA,QACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,SACA,aACA,OACA,SACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,OACA,UACA,MACA,OACA,OACA,QACA,KACA,WACA,KACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,QACA,MACA,QACA,SACA,MACA,OACA,UACA,YACA,OACA,OACA,QACA,QACA,MACA,MACA,OAOkBoB,KAAK,MAEnBuB,EAAQ,CACZnC,UAAW,QACXC,MAAO,UACPO,IAAK,MACLb,SAAUuC,GAENE,EAAS,CACbnC,MAAO,OACPO,IAAK,MAGD6B,EAAM,CACV9B,SAAU,CACR,CACEN,MAAO,QAET,CACEA,MAAO+B,EAAMM,OACX,iDAGA,0BAGJ,CACErC,MAAO,gBACPS,UAAW,KAIX6B,EAAkB,CACtBnD,EAAKqB,iBACL0B,EACAE,GAEIG,EAAe,CACnB,IACA,KACA,KACA,KACA,IACA,IACA,KAOIC,EAAmB,CAACC,EAAQC,EAAMC,EAAQ,SAC9C,MAAMC,EAAoB,QAAVD,EACZA,EACAZ,EAAMM,OAAOM,EAAOD,GACxB,OAAOX,EAAMM,OACXN,EAAMM,OAAO,MAAOI,EAAQ,KAC5BC,EACA,oBACAE,EACA,oBACAD,EACAX,IAQEa,EAAY,CAACJ,EAAQC,EAAMC,IACxBZ,EAAMM,OACXN,EAAMM,OAAO,MAAOI,EAAQ,KAC5BC,EACA,oBACAC,EACAX,GAGEc,EAAwB,CAC5BV,EACAjD,EAAK4D,kBACL5D,EAAK4B,QACH,OACA,OACA,CACEiC,gBAAgB,IAGpBb,EACA,CACEpC,UAAW,SACXD,SAAUwC,EACVhC,SAAU,CACR,CACEN,MAAO,kBACPO,IAAK,MACLE,UAAW,GAEb,CACET,MAAO,kBACPO,IAAK,MACLE,UAAW,GAEb,CACET,MAAO,kBACPO,IAAK,MACLE,UAAW,GAEb,CACET,MAAO,kBACPO,IAAK,MACLE,UAAW,GAEb,CACET,MAAO,gBACPO,IAAK,IACLE,UAAW,GAEb,CACET,MAAO,UACPO,IAAK,IACLE,UAAW,GAEb,CACET,MAAO,IACPO,IAAK,IACLT,SAAU,CAAEX,EAA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lB,MAAM4C,EAAQ5C,EAAK4C,MACbkE,EAAY,CAChB,gBACA,eACA,SACA,SACA,eACA,UACA,UACA,MACA,UACA,SACA,UACA,aACA,YACA,SACA,QACA,OACA,iBACA,YACA,cACA,YACA,SACA,MACA,UACA,OACA,QACA,OACA,OACA,WACA,SACA,eACA,cACA,gBACA,QACA,cACA,aACA,eACA,iBACA,QACA,YACA,eACA,aACA,eACA,cACA,aACA,WACA,kBACA,SACA,cACA,WACA,WACA,SACA,YACA,aACA,eACA,eACA,eACA,aACA,eACA,gBACA,aACA,aACA,wBACA,WACA,QACA,UACA,OACA,YACA,MACA,OACA,SACA,SACA,QACA,SACA,OACA,aACA,QACA,YACA,OACA,SACA,WACA,SACA,QACA,OACA,aACA,QACA,QACA,MACA,YACA,MACA,aACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,WACA,YACA,WACA,MACA,cACA,cACA,SACA,YACA,UACA,QACA,cACA,cACA,kBACA,SACA,YACA,WACA,OACA,OACA,SACA,WACA,YACA,SACA,SACA,UACA,OACA,OACA,QACA,MACA,MACA,MACA,WACA,QACA,OACA,QACA,WACA,KACA,MACA,MACA,MACA,QACA,cACA,OACA,SACA,YACA,SACA,SACA,UACA,UACA,OACA,SACA,SACA,MACA,SACA,eACA,cACA,eACA,YACA,gBACA,iBACA,cACA,YACA,UACA,OACA,WACA,YACA,eACA,cACA,WACA,cACA,eACA,eACA,SACA,YACA,uBACA,gBACA,iBACA,aACA,cACA,UACA,eACA,YACA,cACA,aACA,cACA,SACA,UACA,UACA,UACA,QACA,SACA,SACA,YACA,eACA,mBACA,eACA,SACA,gBACA,WACA,SACA,aACA,YACA,QACA,YACA,YACA,SACA,eACA,OACA,UACA,cACA,cACA,QACA,OACA,SACA,MACA,aACA,MACA,eACA,YACA,aACA,qBACA,SACA,aACA,WACA,OACA,WACA,YACA,cACA,WACA,WACA,YACA,aACA,cACA,MACA,OACA,YACA,OACA,MACA,QACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,QACA,KACA,OACA,OACA,OACA,OACA,QACA,MACA,UACA,UACA,MACA,MACA,QACA,cACA,YACA,SACA,iBACA,cAEIC,EAAQ/G,EAAK8F,SACbkB,EAAY,CAChB7F,SAAU,CACR,CACE8F,MAAOrE,EAAMM,OAAON,EAAMmB,UAAU+C,GAAYlE,EAAMsE,UAAU,UAChEtG,UAAW,YAEb,CACEU,UAAW,EACX2F,MAAOrE,EAAMM,OACX,qBACA6D,EAAOnE,EAAMsE,UAAU,UACzBtG,UAAW,oBAIXuG,EAAY,CAChBF,MAAO,CACL,SACAF,GAEFnG,UAAW,CACT,EAAG,UACH,EAAG,gBAGDwG,EAAW,CACf9F,UAAW,EACX2F,MAAO,CACL,KACAF,GAEFnG,UAAW,CACT,EAAG,aAGDyG,EAAQ,CACZlG,SAAU,CACR,CACE8F,MAAO,CACL,QACA,MACAF,EACA,MACA,UACA,MACAA,IAGJ,CACEE,MAAO,CACL,QACA,MACAF,KAINnG,UAAW,CACT,EAAG,UACH,EAAG,cACH,EAAG,UACH,EAAG,0BA+EP,MAAO,CACLP,KAAM,aACNC,QAAS,CAAE,OACXC,SAAU,CACRH,QAAS,CA5CX,WACA,SACA,QACA,OACA,QACA,QACA,WACA,UACA,OACA,OACA,QACA,UACA,MACA,KACA,SACA,aACA,OACA,SACA,MACA,UACA,UACA,UACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,SACA,eACA,QACA,SACA,YACA,MACA,OACA,WACA,SAUEI,QAAS,2DACT8G,MAAO,aACPC,SAAU,aACV9G,SAAU,IACLqG,EA1EP,iBACA,UACA,QACA,SACA,YACA,UACA,SACA,QACA,YACA,YACA,YACA,UACA,UACA,YACA,aACA,SACA,aACA,aACA,QACA,WACA,OAyDEhC,KAzFU,CACZ,UACA,OACA,OACA,QACA,SACA,QACA,MACA,OACA,UAkFAnE,SAAU,CACR0G,EACAF,EACAH,EACAI,EACApH,EAAKc,oBACLd,EAAKe,qB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ACA,QACA,OACA,SA0GAK,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,OAmCAD,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,QA2BAsE,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,UAWIuD,EAAS,CACbzH,UAAW,OACXC,MAAO,kBAGHkC,EAAQ,CACZnC,UAAW,QACXC,MAAO,KACPO,IAAK,KACLb,SAAUkF,EACV/E,QAAS,KAGL4H,EAAkB,CACtBzH,MAAO,OACPS,UAAW,GAGPS,EAAS,CACbnB,UAAW,SACXD,SAAU,CAAEX,EAAKqB,kBACjBF,SAAU,CACR,CACEN,MAAO,yCACPO,IAAK,MACLT,SAAU,CACRX,EAAKqB,iBACLgH,GAEF/G,UAAW,IAEb,CACET,MAAO,yCACPO,IAAK,MACLT,SAAU,CACRX,EAAKqB,iBACLgH,GAEF/G,UAAW,IAEb,CACET,MAAO,8BACPO,IAAK,MACLT,SAAU,CACRX,EAAKqB,iBACLgH,EACAC,EACAvF,IAGJ,CACElC,MAAO,8BACPO,IAAK,MACLT,SAAU,CACRX,EAAKqB,iBACLgH,EACAC,EACAvF,IAGJ,CACElC,MAAO,eACPO,IAAK,IACLE,UAAW,IAEb,CACET,MAAO,eACPO,IAAK,IACLE,UAAW,IAEb,CACET,MAAO,4BACPO,IAAK,KAEP,CACEP,MAAO,4BACPO,IAAK,KAEP,CACEP,MAAO,4BACPO,IAAK,IACLT,SAAU,CACRX,EAAKqB,iBACLiH,EACAvF,IAGJ,CACElC,MAAO,4BACPO,IAAK,IACLT,SAAU,CACRX,EAAKqB,iBACLiH,EACAvF,IAGJ/C,EAAKkB,iBACLlB,EAAKiB,oBAKHsH,EAAY,kBACZC,EAAa,QAAQD,WAAmBA,UAAkBA,QAC1D/C,EAAS,CACb5E,UAAW,SACXU,UAAW,EACXH,SAAU,CAWR,CACEN,MAAO,QAAQ0H,OAAeC,gBAAyBD,cAEzD,CACE1H,MAAO,IAAI2H,WASb,CACE3H,MAAO,2CAET,CACEA,MAAO,6BAET,CACEA,MAAO,8BAET,CACEA,MAAO,oCAKT,CACEA,MAAO,OAAO0H,eAIdE,EAAe,CACnB7H,UAAW,UACXC,MAAO+B,EAAMsE,UAAU,WACvB9F,IAAK,IACLb,SAAUkF,EACV9E,SAAU,CACR,CACEE,MAAO,WAGT,CACEA,MAAO,IACPO,IAAK,OACLyC,gBAAgB,KAIhB6E,EAAS,CACb9H,UAAW,SACXO,SAAU,CAER,CACEP,UAAW,GACXC,MAAO,UACPqE,MAAM,GAER,CACErE,MAAO,KACPO,IAAK,KACLuE,cAAc,EACdlE,YAAY,EACZlB,SAAUkF,EACV9E,SAAU,CACR,OACA0H,EACA7C,EACAzD,EACA/B,EAAK4D,sBAWb,OANAb,EAAMpC,SAAW,CACfoB,EACAyD,EACA6C,GAGK,CACLhI,KAAM,SACNC,QAAS,CACP,KACA,MACA,WAEFqI,cAAc,EACdpI,SAAUkF,EACV/E,QAAS,iBACTC,SAAU,CACR0H,EACA7C,EACA,CAEE3E,MAAO,YAET,CAGEoB,cAAe,KACfX,UAAW,GAEbS,EACA0G,EACAzI,EAAK4D,kBACL,CACEqD,MAAO,CACL,MAAO,MACPnB,GAEF8C,MAAO,CACL,EAAG,UACH,EAAG,kBAELjI,SAAU,CAAE+H,IAEd,CACEvH,SAAU,CACR,CACE8F,MAAO,CACL,QAAS,MACTnB,EAAU,MACV,QAASA,EAAS,UAGtB,CACEmB,MAAO,CACL,QAAS,MACTnB,KAIN8C,MAAO,CACL,EAAG,UACH,EAAG,cACH,EAAG,0BAGP,CACEhI,UAAW,OACXC,MAAO,WACPO,IAAK,UACLT,SAAU,CACR6E,EACAkD,EACA3G","sources":["webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/objectivec.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/ocaml.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/openscad.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/oxygene.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/parser3.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/perl.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/pf.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/pgsql.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/php-template.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/php.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/plaintext.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/pony.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/powershell.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/processing.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/profile.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/prolog.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/properties.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/protobuf.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/puppet.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/purebasic.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/python-repl.js","webpack://sakurairo-scripts/./node_modules/highlight.js/lib/languages/python.js"],"sourcesContent":["/*\nLanguage: Objective-C\nAuthor: Valerii Hiora \nContributors: Angel G. Olloqui , Matt Diephouse , Andrew Farmer , Minh Nguyễn \nWebsite: https://developer.apple.com/documentation/objectivec\nCategory: common\n*/\n\nfunction objectivec(hljs) {\n const API_CLASS = {\n className: 'built_in',\n begin: '\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+'\n };\n const IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/;\n const KWS = [\n \"int\",\n \"float\",\n \"while\",\n \"char\",\n \"export\",\n \"sizeof\",\n \"typedef\",\n \"const\",\n \"struct\",\n \"for\",\n \"union\",\n \"unsigned\",\n \"long\",\n \"volatile\",\n \"static\",\n \"bool\",\n \"mutable\",\n \"if\",\n \"do\",\n \"return\",\n \"goto\",\n \"void\",\n \"enum\",\n \"else\",\n \"break\",\n \"extern\",\n \"asm\",\n \"case\",\n \"short\",\n \"default\",\n \"double\",\n \"register\",\n \"explicit\",\n \"signed\",\n \"typename\",\n \"this\",\n \"switch\",\n \"continue\",\n \"wchar_t\",\n \"inline\",\n \"readonly\",\n \"assign\",\n \"readwrite\",\n \"self\",\n \"@synchronized\",\n \"id\",\n \"typeof\",\n \"nonatomic\",\n \"super\",\n \"unichar\",\n \"IBOutlet\",\n \"IBAction\",\n \"strong\",\n \"weak\",\n \"copy\",\n \"in\",\n \"out\",\n \"inout\",\n \"bycopy\",\n \"byref\",\n \"oneway\",\n \"__strong\",\n \"__weak\",\n \"__block\",\n \"__autoreleasing\",\n \"@private\",\n \"@protected\",\n \"@public\",\n \"@try\",\n \"@property\",\n \"@end\",\n \"@throw\",\n \"@catch\",\n \"@finally\",\n \"@autoreleasepool\",\n \"@synthesize\",\n \"@dynamic\",\n \"@selector\",\n \"@optional\",\n \"@required\",\n \"@encode\",\n \"@package\",\n \"@import\",\n \"@defs\",\n \"@compatibility_alias\",\n \"__bridge\",\n \"__bridge_transfer\",\n \"__bridge_retained\",\n \"__bridge_retain\",\n \"__covariant\",\n \"__contravariant\",\n \"__kindof\",\n \"_Nonnull\",\n \"_Nullable\",\n \"_Null_unspecified\",\n \"__FUNCTION__\",\n \"__PRETTY_FUNCTION__\",\n \"__attribute__\",\n \"getter\",\n \"setter\",\n \"retain\",\n \"unsafe_unretained\",\n \"nonnull\",\n \"nullable\",\n \"null_unspecified\",\n \"null_resettable\",\n \"class\",\n \"instancetype\",\n \"NS_DESIGNATED_INITIALIZER\",\n \"NS_UNAVAILABLE\",\n \"NS_REQUIRES_SUPER\",\n \"NS_RETURNS_INNER_POINTER\",\n \"NS_INLINE\",\n \"NS_AVAILABLE\",\n \"NS_DEPRECATED\",\n \"NS_ENUM\",\n \"NS_OPTIONS\",\n \"NS_SWIFT_UNAVAILABLE\",\n \"NS_ASSUME_NONNULL_BEGIN\",\n \"NS_ASSUME_NONNULL_END\",\n \"NS_REFINED_FOR_SWIFT\",\n \"NS_SWIFT_NAME\",\n \"NS_SWIFT_NOTHROW\",\n \"NS_DURING\",\n \"NS_HANDLER\",\n \"NS_ENDHANDLER\",\n \"NS_VALUERETURN\",\n \"NS_VOIDRETURN\"\n ];\n const LITERALS = [\n \"false\",\n \"true\",\n \"FALSE\",\n \"TRUE\",\n \"nil\",\n \"YES\",\n \"NO\",\n \"NULL\"\n ];\n const BUILT_INS = [\n \"BOOL\",\n \"dispatch_once_t\",\n \"dispatch_queue_t\",\n \"dispatch_sync\",\n \"dispatch_async\",\n \"dispatch_once\"\n ];\n const KEYWORDS = {\n $pattern: IDENTIFIER_RE,\n keyword: KWS,\n literal: LITERALS,\n built_in: BUILT_INS\n };\n const CLASS_KEYWORDS = {\n $pattern: IDENTIFIER_RE,\n keyword: [\n \"@interface\",\n \"@class\",\n \"@protocol\",\n \"@implementation\"\n ]\n };\n return {\n name: 'Objective-C',\n aliases: [\n 'mm',\n 'objc',\n 'obj-c',\n 'obj-c++',\n 'objective-c++'\n ],\n keywords: KEYWORDS,\n illegal: '/,\n end: /$/,\n illegal: '\\\\n'\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n className: 'class',\n begin: '(' + CLASS_KEYWORDS.keyword.join('|') + ')\\\\b',\n end: /(\\{|$)/,\n excludeEnd: true,\n keywords: CLASS_KEYWORDS,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n begin: '\\\\.' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = objectivec;\n","/*\nLanguage: OCaml\nAuthor: Mehdi Dogguy \nContributors: Nicolas Braud-Santoni , Mickael Delahaye \nDescription: OCaml language definition.\nWebsite: https://ocaml.org\nCategory: functional\n*/\n\nfunction ocaml(hljs) {\n /* missing support for heredoc-like string (OCaml 4.0.2+) */\n return {\n name: 'OCaml',\n aliases: ['ml'],\n keywords: {\n $pattern: '[a-z_]\\\\w*!?',\n keyword:\n 'and as assert asr begin class constraint do done downto else end ' +\n 'exception external for fun function functor if in include ' +\n 'inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method ' +\n 'mod module mutable new object of open! open or private rec sig struct ' +\n 'then to try type val! val virtual when while with ' +\n /* camlp4 */\n 'parser value',\n built_in:\n /* built-in types */\n 'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit ' +\n /* (some) types in Pervasives */\n 'in_channel out_channel ref',\n literal:\n 'true false'\n },\n illegal: /\\/\\/|>>/,\n contains: [\n {\n className: 'literal',\n begin: '\\\\[(\\\\|\\\\|)?\\\\]|\\\\(\\\\)',\n relevance: 0\n },\n hljs.COMMENT(\n '\\\\(\\\\*',\n '\\\\*\\\\)',\n {\n contains: ['self']\n }\n ),\n { /* type variable */\n className: 'symbol',\n begin: '\\'[A-Za-z_](?!\\')[\\\\w\\']*'\n /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */\n },\n { /* polymorphic variant */\n className: 'type',\n begin: '`[A-Z][\\\\w\\']*'\n },\n { /* module or constructor */\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w\\']*',\n relevance: 0\n },\n { /* don't color identifiers, but safely catch all identifiers with '*/\n begin: '[a-z_]\\\\w*\\'[\\\\w\\']*', relevance: 0\n },\n hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),\n {\n className: 'number',\n begin:\n '\\\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +\n '0[oO][0-7_]+[Lln]?|' +\n '0[bB][01_]+[Lln]?|' +\n '[0-9][0-9_]*([Lln]|(\\\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',\n relevance: 0\n },\n {\n begin: /->/ // relevance booster\n }\n ]\n }\n}\n\nmodule.exports = ocaml;\n","/*\nLanguage: OpenSCAD\nAuthor: Dan Panzarella \nDescription: OpenSCAD is a language for the 3D CAD modeling software of the same name.\nWebsite: https://www.openscad.org\nCategory: scientific\n*/\n\nfunction openscad(hljs) {\n const SPECIAL_VARS = {\n className: 'keyword',\n begin: '\\\\$(f[asn]|t|vp[rtd]|children)'\n };\n const LITERALS = {\n className: 'literal',\n begin: 'false|true|PI|undef'\n };\n const NUMBERS = {\n className: 'number',\n begin: '\\\\b\\\\d+(\\\\.\\\\d+)?(e-?\\\\d+)?', // adds 1e5, 1e-10\n relevance: 0\n };\n const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null\n });\n const PREPRO = {\n className: 'meta',\n keywords: {\n keyword: 'include use'\n },\n begin: 'include|use <',\n end: '>'\n };\n const PARAMS = {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n contains: [\n 'self',\n NUMBERS,\n STRING,\n SPECIAL_VARS,\n LITERALS\n ]\n };\n const MODIFIERS = {\n begin: '[*!#%]',\n relevance: 0\n };\n const FUNCTIONS = {\n className: 'function',\n beginKeywords: 'module function',\n end: /=|\\{/,\n contains: [\n PARAMS,\n hljs.UNDERSCORE_TITLE_MODE\n ]\n };\n\n return {\n name: 'OpenSCAD',\n aliases: [ 'scad' ],\n keywords: {\n keyword: 'function module include use for intersection_for if else \\\\%',\n literal: 'false true PI undef',\n built_in: 'circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n PREPRO,\n STRING,\n SPECIAL_VARS,\n MODIFIERS,\n FUNCTIONS\n ]\n };\n}\n\nmodule.exports = openscad;\n","/*\nLanguage: Oxygene\nAuthor: Carlo Kok \nDescription: Oxygene is built on the foundation of Object Pascal, revamped and extended to be a modern language for the twenty-first century.\nWebsite: https://www.elementscompiler.com/elements/default.aspx\n*/\n\nfunction oxygene(hljs) {\n const OXYGENE_KEYWORDS = {\n $pattern: /\\.?\\w+/,\n keyword:\n 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue ' +\n 'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false ' +\n 'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited ' +\n 'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of ' +\n 'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly ' +\n 'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple ' +\n 'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal ' +\n 'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained'\n };\n const CURLY_COMMENT = hljs.COMMENT(\n /\\{/,\n /\\}/,\n {\n relevance: 0\n }\n );\n const PAREN_COMMENT = hljs.COMMENT(\n '\\\\(\\\\*',\n '\\\\*\\\\)',\n {\n relevance: 10\n }\n );\n const STRING = {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n contains: [\n {\n begin: '\\'\\''\n }\n ]\n };\n const CHAR_STRING = {\n className: 'string',\n begin: '(#\\\\d+)+'\n };\n const FUNCTION = {\n className: 'function',\n beginKeywords: 'function constructor destructor procedure method',\n end: '[:;]',\n keywords: 'function constructor|10 destructor|10 procedure|10 method|10',\n contains: [\n hljs.TITLE_MODE,\n {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n keywords: OXYGENE_KEYWORDS,\n contains: [\n STRING,\n CHAR_STRING\n ]\n },\n CURLY_COMMENT,\n PAREN_COMMENT\n ]\n };\n return {\n name: 'Oxygene',\n case_insensitive: true,\n keywords: OXYGENE_KEYWORDS,\n illegal: '(\"|\\\\$[G-Zg-z]|\\\\/\\\\*||->)',\n contains: [\n CURLY_COMMENT,\n PAREN_COMMENT,\n hljs.C_LINE_COMMENT_MODE,\n STRING,\n CHAR_STRING,\n hljs.NUMBER_MODE,\n FUNCTION,\n {\n className: 'class',\n begin: '=\\\\bclass\\\\b',\n end: 'end;',\n keywords: OXYGENE_KEYWORDS,\n contains: [\n STRING,\n CHAR_STRING,\n CURLY_COMMENT,\n PAREN_COMMENT,\n hljs.C_LINE_COMMENT_MODE,\n FUNCTION\n ]\n }\n ]\n };\n}\n\nmodule.exports = oxygene;\n","/*\nLanguage: Parser3\nRequires: xml.js\nAuthor: Oleg Volchkov \nWebsite: https://www.parser.ru/en/\nCategory: template\n*/\n\nfunction parser3(hljs) {\n const CURLY_SUBCOMMENT = hljs.COMMENT(\n /\\{/,\n /\\}/,\n {\n contains: [ 'self' ]\n }\n );\n return {\n name: 'Parser3',\n subLanguage: 'xml',\n relevance: 0,\n contains: [\n hljs.COMMENT('^#', '$'),\n hljs.COMMENT(\n /\\^rem\\{/,\n /\\}/,\n {\n relevance: 10,\n contains: [ CURLY_SUBCOMMENT ]\n }\n ),\n {\n className: 'meta',\n begin: '^@(?:BASE|USE|CLASS|OPTIONS)$',\n relevance: 10\n },\n {\n className: 'title',\n begin: '@[\\\\w\\\\-]+\\\\[[\\\\w^;\\\\-]*\\\\](?:\\\\[[\\\\w^;\\\\-]*\\\\])?(?:.*)$'\n },\n {\n className: 'variable',\n begin: /\\$\\{?[\\w\\-.:]+\\}?/\n },\n {\n className: 'keyword',\n begin: /\\^[\\w\\-.:]+/\n },\n {\n className: 'number',\n begin: '\\\\^#[0-9a-fA-F]+'\n },\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = parser3;\n","/*\nLanguage: Perl\nAuthor: Peter Leonov \nWebsite: https://www.perl.org\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction perl(hljs) {\n const regex = hljs.regex;\n const KEYWORDS = [\n 'abs',\n 'accept',\n 'alarm',\n 'and',\n 'atan2',\n 'bind',\n 'binmode',\n 'bless',\n 'break',\n 'caller',\n 'chdir',\n 'chmod',\n 'chomp',\n 'chop',\n 'chown',\n 'chr',\n 'chroot',\n 'close',\n 'closedir',\n 'connect',\n 'continue',\n 'cos',\n 'crypt',\n 'dbmclose',\n 'dbmopen',\n 'defined',\n 'delete',\n 'die',\n 'do',\n 'dump',\n 'each',\n 'else',\n 'elsif',\n 'endgrent',\n 'endhostent',\n 'endnetent',\n 'endprotoent',\n 'endpwent',\n 'endservent',\n 'eof',\n 'eval',\n 'exec',\n 'exists',\n 'exit',\n 'exp',\n 'fcntl',\n 'fileno',\n 'flock',\n 'for',\n 'foreach',\n 'fork',\n 'format',\n 'formline',\n 'getc',\n 'getgrent',\n 'getgrgid',\n 'getgrnam',\n 'gethostbyaddr',\n 'gethostbyname',\n 'gethostent',\n 'getlogin',\n 'getnetbyaddr',\n 'getnetbyname',\n 'getnetent',\n 'getpeername',\n 'getpgrp',\n 'getpriority',\n 'getprotobyname',\n 'getprotobynumber',\n 'getprotoent',\n 'getpwent',\n 'getpwnam',\n 'getpwuid',\n 'getservbyname',\n 'getservbyport',\n 'getservent',\n 'getsockname',\n 'getsockopt',\n 'given',\n 'glob',\n 'gmtime',\n 'goto',\n 'grep',\n 'gt',\n 'hex',\n 'if',\n 'index',\n 'int',\n 'ioctl',\n 'join',\n 'keys',\n 'kill',\n 'last',\n 'lc',\n 'lcfirst',\n 'length',\n 'link',\n 'listen',\n 'local',\n 'localtime',\n 'log',\n 'lstat',\n 'lt',\n 'ma',\n 'map',\n 'mkdir',\n 'msgctl',\n 'msgget',\n 'msgrcv',\n 'msgsnd',\n 'my',\n 'ne',\n 'next',\n 'no',\n 'not',\n 'oct',\n 'open',\n 'opendir',\n 'or',\n 'ord',\n 'our',\n 'pack',\n 'package',\n 'pipe',\n 'pop',\n 'pos',\n 'print',\n 'printf',\n 'prototype',\n 'push',\n 'q|0',\n 'qq',\n 'quotemeta',\n 'qw',\n 'qx',\n 'rand',\n 'read',\n 'readdir',\n 'readline',\n 'readlink',\n 'readpipe',\n 'recv',\n 'redo',\n 'ref',\n 'rename',\n 'require',\n 'reset',\n 'return',\n 'reverse',\n 'rewinddir',\n 'rindex',\n 'rmdir',\n 'say',\n 'scalar',\n 'seek',\n 'seekdir',\n 'select',\n 'semctl',\n 'semget',\n 'semop',\n 'send',\n 'setgrent',\n 'sethostent',\n 'setnetent',\n 'setpgrp',\n 'setpriority',\n 'setprotoent',\n 'setpwent',\n 'setservent',\n 'setsockopt',\n 'shift',\n 'shmctl',\n 'shmget',\n 'shmread',\n 'shmwrite',\n 'shutdown',\n 'sin',\n 'sleep',\n 'socket',\n 'socketpair',\n 'sort',\n 'splice',\n 'split',\n 'sprintf',\n 'sqrt',\n 'srand',\n 'stat',\n 'state',\n 'study',\n 'sub',\n 'substr',\n 'symlink',\n 'syscall',\n 'sysopen',\n 'sysread',\n 'sysseek',\n 'system',\n 'syswrite',\n 'tell',\n 'telldir',\n 'tie',\n 'tied',\n 'time',\n 'times',\n 'tr',\n 'truncate',\n 'uc',\n 'ucfirst',\n 'umask',\n 'undef',\n 'unless',\n 'unlink',\n 'unpack',\n 'unshift',\n 'untie',\n 'until',\n 'use',\n 'utime',\n 'values',\n 'vec',\n 'wait',\n 'waitpid',\n 'wantarray',\n 'warn',\n 'when',\n 'while',\n 'write',\n 'x|0',\n 'xor',\n 'y|0'\n ];\n\n // https://perldoc.perl.org/perlre#Modifiers\n const REGEX_MODIFIERS = /[dualxmsipngr]{0,12}/; // aa and xx are valid, making max length 12\n const PERL_KEYWORDS = {\n $pattern: /[\\w.]+/,\n keyword: KEYWORDS.join(\" \")\n };\n const SUBST = {\n className: 'subst',\n begin: '[$@]\\\\{',\n end: '\\\\}',\n keywords: PERL_KEYWORDS\n };\n const METHOD = {\n begin: /->\\{/,\n end: /\\}/\n // contains defined later\n };\n const VAR = {\n variants: [\n {\n begin: /\\$\\d/\n },\n {\n begin: regex.concat(\n /[$%@](\\^\\w\\b|#\\w+(::\\w+)*|\\{\\w+\\}|\\w+(::\\w*)*)/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![A-Za-z])(?![@$%])`\n )\n },\n {\n begin: /[$%@][^\\s\\w{]/,\n relevance: 0\n }\n ]\n };\n const STRING_CONTAINS = [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n VAR\n ];\n const REGEX_DELIMS = [\n /!/,\n /\\//,\n /\\|/,\n /\\?/,\n /'/,\n /\"/, // valid but infrequent and weird\n /#/ // valid but infrequent and weird\n ];\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_DOUBLE_RE = (prefix, open, close = '\\\\1') => {\n const middle = (close === '\\\\1')\n ? close\n : regex.concat(close, open);\n return regex.concat(\n regex.concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n middle,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_RE = (prefix, open, close) => {\n return regex.concat(\n regex.concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n const PERL_DEFAULT_CONTAINS = [\n VAR,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT(\n /^=\\w/,\n /=cut/,\n {\n endsWithParent: true\n }\n ),\n METHOD,\n {\n className: 'string',\n contains: STRING_CONTAINS,\n variants: [\n {\n begin: 'q[qwxr]?\\\\s*\\\\(',\n end: '\\\\)',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\[',\n end: '\\\\]',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\{',\n end: '\\\\}',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\|',\n end: '\\\\|',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*<',\n end: '>',\n relevance: 5\n },\n {\n begin: 'qw\\\\s+q',\n end: 'q',\n relevance: 5\n },\n {\n begin: '\\'',\n end: '\\'',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: '`',\n end: '`',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: /\\{\\w+\\}/,\n relevance: 0\n },\n {\n begin: '-?\\\\w+\\\\s*=>',\n relevance: 0\n }\n ]\n },\n {\n className: 'number',\n begin: '(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',\n relevance: 0\n },\n { // regexp container\n begin: '(\\\\/\\\\/|' + hljs.RE_STARTERS_RE + '|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*',\n keywords: 'split return print reverse grep',\n relevance: 0,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'regexp',\n variants: [\n // allow matching common delimiters\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", regex.either(...REGEX_DELIMS, { capture: true })) },\n // and then paired delmis\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\(\", \"\\\\)\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\[\", \"\\\\]\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\{\", \"\\\\}\") }\n ],\n relevance: 2\n },\n {\n className: 'regexp',\n variants: [\n {\n // could be a comment in many languages so do not count\n // as relevant\n begin: /(m|qr)\\/\\//,\n relevance: 0\n },\n // prefix is optional with /regex/\n { begin: PAIRED_RE(\"(?:m|qr)?\", /\\//, /\\//)},\n // allow matching common delimiters\n { begin: PAIRED_RE(\"m|qr\", regex.either(...REGEX_DELIMS, { capture: true }), /\\1/)},\n // allow common paired delmins\n { begin: PAIRED_RE(\"m|qr\", /\\(/, /\\)/)},\n { begin: PAIRED_RE(\"m|qr\", /\\[/, /\\]/)},\n { begin: PAIRED_RE(\"m|qr\", /\\{/, /\\}/)}\n ]\n }\n ]\n },\n {\n className: 'function',\n beginKeywords: 'sub',\n end: '(\\\\s*\\\\(.*?\\\\))?[;{]',\n excludeEnd: true,\n relevance: 5,\n contains: [ hljs.TITLE_MODE ]\n },\n {\n begin: '-\\\\w\\\\b',\n relevance: 0\n },\n {\n begin: \"^__DATA__$\",\n end: \"^__END__$\",\n subLanguage: 'mojolicious',\n contains: [\n {\n begin: \"^@@.*\",\n end: \"$\",\n className: \"comment\"\n }\n ]\n }\n ];\n SUBST.contains = PERL_DEFAULT_CONTAINS;\n METHOD.contains = PERL_DEFAULT_CONTAINS;\n\n return {\n name: 'Perl',\n aliases: [\n 'pl',\n 'pm'\n ],\n keywords: PERL_KEYWORDS,\n contains: PERL_DEFAULT_CONTAINS\n };\n}\n\nmodule.exports = perl;\n","/*\nLanguage: Packet Filter config\nDescription: pf.conf — packet filter configuration file (OpenBSD)\nAuthor: Peter Piwowarski \nWebsite: http://man.openbsd.org/pf.conf\nCategory: config\n*/\n\nfunction pf(hljs) {\n const MACRO = {\n className: 'variable',\n begin: /\\$[\\w\\d#@][\\w\\d_]*/\n };\n const TABLE = {\n className: 'variable',\n begin: /<(?!\\/)/,\n end: />/\n };\n\n return {\n name: 'Packet Filter config',\n aliases: [ 'pf.conf' ],\n keywords: {\n $pattern: /[a-z0-9_<>-]+/,\n built_in: /* block match pass are \"actions\" in pf.conf(5), the rest are\n * lexically similar top-level commands.\n */\n 'block match pass load anchor|5 antispoof|10 set table',\n keyword:\n 'in out log quick on rdomain inet inet6 proto from port os to route ' +\n 'allow-opts divert-packet divert-reply divert-to flags group icmp-type ' +\n 'icmp6-type label once probability recieved-on rtable prio queue ' +\n 'tos tag tagged user keep fragment for os drop ' +\n 'af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin ' +\n 'source-hash static-port ' +\n 'dup-to reply-to route-to ' +\n 'parent bandwidth default min max qlimit ' +\n 'block-policy debug fingerprints hostid limit loginterface optimization ' +\n 'reassemble ruleset-optimization basic none profile skip state-defaults ' +\n 'state-policy timeout ' +\n 'const counters persist ' +\n 'no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy ' +\n 'source-track global rule max-src-nodes max-src-states max-src-conn ' +\n 'max-src-conn-rate overload flush ' +\n 'scrub|5 max-mss min-ttl no-df|10 random-id',\n literal:\n 'all any no-route self urpf-failed egress|5 unknown'\n },\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n MACRO,\n TABLE\n ]\n };\n}\n\nmodule.exports = pf;\n","/*\nLanguage: PostgreSQL and PL/pgSQL\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nWebsite: https://www.postgresql.org/docs/11/sql.html\nDescription:\n This language incorporates both PostgreSQL SQL dialect and PL/pgSQL language.\n It is based on PostgreSQL version 11. Some notes:\n - Text in double-dollar-strings is _always_ interpreted as some programming code. Text\n in ordinary quotes is _never_ interpreted that way and highlighted just as a string.\n - There are quite a bit \"special cases\". That's because many keywords are not strictly\n they are keywords in some contexts and ordinary identifiers in others. Only some\n of such cases are handled; you still can get some of your identifiers highlighted\n wrong way.\n - Function names deliberately are not highlighted. There is no way to tell function\n call from other constructs, hence we can't highlight _all_ function names. And\n some names highlighted while others not looks ugly.\n*/\n\nfunction pgsql(hljs) {\n const COMMENT_MODE = hljs.COMMENT('--', '$');\n const UNQUOTED_IDENT = '[a-zA-Z_][a-zA-Z_0-9$]*';\n const DOLLAR_STRING = '\\\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\\\$';\n const LABEL = '<<\\\\s*' + UNQUOTED_IDENT + '\\\\s*>>';\n\n const SQL_KW =\n // https://www.postgresql.org/docs/11/static/sql-keywords-appendix.html\n // https://www.postgresql.org/docs/11/static/sql-commands.html\n // SQL commands (starting words)\n 'ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE ' +\n 'DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY ' +\n 'PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW ' +\n 'START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES ' +\n // SQL commands (others)\n 'AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN ' +\n 'WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS ' +\n 'FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM ' +\n 'TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS ' +\n 'METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION ' +\n 'INDEX PROCEDURE ASSERTION ' +\n // additional reserved key words\n 'ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK ' +\n 'COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS ' +\n 'DEFERRABLE RANGE ' +\n 'DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ' +\n 'ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT ' +\n 'NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY ' +\n 'REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN ' +\n 'TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH ' +\n // some of non-reserved (which are used in clauses or as PL/pgSQL keyword)\n 'BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN ' +\n 'BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT ' +\n 'TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN ' +\n 'EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH ' +\n 'REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ' +\n 'ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED ' +\n 'INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 ' +\n 'INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ' +\n 'ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES ' +\n 'RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS ' +\n 'UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF ' +\n // some parameters of VACUUM/ANALYZE/EXPLAIN\n 'FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING ' +\n //\n 'RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED ' +\n 'OF NOTHING NONE EXCLUDE ATTRIBUTE ' +\n // from GRANT (not keywords actually)\n 'USAGE ROUTINES ' +\n // actually literals, but look better this way (due to IS TRUE, IS FALSE, ISNULL etc)\n 'TRUE FALSE NAN INFINITY ';\n\n const ROLE_ATTRS = // only those not in keywrods already\n 'SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT ' +\n 'LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ';\n\n const PLPGSQL_KW =\n 'ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS ' +\n 'STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT ' +\n 'OPEN ';\n\n const TYPES =\n // https://www.postgresql.org/docs/11/static/datatype.html\n 'BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR ' +\n 'CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 ' +\n 'MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 ' +\n 'SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 ' +\n 'TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR ' +\n 'INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ' +\n // pseudotypes\n 'ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL ' +\n 'RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR ' +\n // spec. type\n 'NAME ' +\n // OID-types\n 'OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 ' +\n 'REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ';// +\n\n const TYPES_RE =\n TYPES.trim()\n .split(' ')\n .map(function(val) { return val.split('|')[0]; })\n .join('|');\n\n const SQL_BI =\n 'CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP ' +\n 'CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC ';\n\n const PLPGSQL_BI =\n 'FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 ' +\n 'TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ' +\n // get diagnostics\n 'ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME ' +\n 'PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 ' +\n 'PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 ';\n\n const PLPGSQL_EXCEPTIONS =\n // exceptions https://www.postgresql.org/docs/current/static/errcodes-appendix.html\n 'SQLSTATE SQLERRM|10 ' +\n 'SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING ' +\n 'NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED ' +\n 'STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED ' +\n 'SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE ' +\n 'SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION ' +\n 'TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED ' +\n 'INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR ' +\n 'INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION ' +\n 'STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION ' +\n 'DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW ' +\n 'DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW ' +\n 'INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION ' +\n 'INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION ' +\n 'INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST ' +\n 'INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE ' +\n 'NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE ' +\n 'INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE ' +\n 'INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT ' +\n 'INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH ' +\n 'NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE ' +\n 'SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION ' +\n 'SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING ' +\n 'FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION ' +\n 'BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT ' +\n 'INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION ' +\n 'INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION ' +\n 'UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE ' +\n 'INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE ' +\n 'HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION ' +\n 'INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION ' +\n 'NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION ' +\n 'SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION ' +\n 'IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME ' +\n 'TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD ' +\n 'DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST ' +\n 'INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT ' +\n 'MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED ' +\n 'READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION ' +\n 'CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED ' +\n 'PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED ' +\n 'EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED ' +\n 'TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED ' +\n 'SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME ' +\n 'INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION ' +\n 'SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED ' +\n 'SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE ' +\n 'GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME ' +\n 'NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH ' +\n 'INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN ' +\n 'UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT ' +\n 'DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION ' +\n 'DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS ' +\n 'DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS ' +\n 'INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION ' +\n 'INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION ' +\n 'INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION ' +\n 'INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL ' +\n 'OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED ' +\n 'STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE ' +\n 'OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION ' +\n 'QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED ' +\n 'SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR ' +\n 'LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED ' +\n 'FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION ' +\n 'FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER ' +\n 'FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS ' +\n 'FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX ' +\n 'FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH ' +\n 'FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES ' +\n 'FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE ' +\n 'FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION ' +\n 'FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR ' +\n 'RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED ' +\n 'INDEX_CORRUPTED ';\n\n const FUNCTIONS =\n // https://www.postgresql.org/docs/11/static/functions-aggregate.html\n 'ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG ' +\n 'JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG ' +\n 'CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE ' +\n 'REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP ' +\n 'PERCENTILE_CONT PERCENTILE_DISC ' +\n // https://www.postgresql.org/docs/11/static/functions-window.html\n 'ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE ' +\n // https://www.postgresql.org/docs/11/static/functions-comparison.html\n 'NUM_NONNULLS NUM_NULLS ' +\n // https://www.postgresql.org/docs/11/static/functions-math.html\n 'ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT ' +\n 'TRUNC WIDTH_BUCKET ' +\n 'RANDOM SETSEED ' +\n 'ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND ' +\n // https://www.postgresql.org/docs/11/static/functions-string.html\n 'BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ' +\n 'ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP ' +\n 'LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 ' +\n 'QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY ' +\n 'REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR ' +\n 'TO_ASCII TO_HEX TRANSLATE ' +\n // https://www.postgresql.org/docs/11/static/functions-binarystring.html\n 'OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE ' +\n // https://www.postgresql.org/docs/11/static/functions-formatting.html\n 'TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP ' +\n // https://www.postgresql.org/docs/11/static/functions-datetime.html\n 'AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL ' +\n 'MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 ' +\n 'TIMEOFDAY TRANSACTION_TIMESTAMP|10 ' +\n // https://www.postgresql.org/docs/11/static/functions-enum.html\n 'ENUM_FIRST ENUM_LAST ENUM_RANGE ' +\n // https://www.postgresql.org/docs/11/static/functions-geometry.html\n 'AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH ' +\n 'BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ' +\n // https://www.postgresql.org/docs/11/static/functions-net.html\n 'ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY ' +\n 'INET_MERGE MACADDR8_SET7BIT ' +\n // https://www.postgresql.org/docs/11/static/functions-textsearch.html\n 'ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY ' +\n 'QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE ' +\n 'TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY ' +\n 'TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN ' +\n // https://www.postgresql.org/docs/11/static/functions-xml.html\n 'XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT ' +\n 'XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT ' +\n 'XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES ' +\n 'TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA ' +\n 'QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA ' +\n 'CURSOR_TO_XML CURSOR_TO_XMLSCHEMA ' +\n 'SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA ' +\n 'DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA ' +\n 'XMLATTRIBUTES ' +\n // https://www.postgresql.org/docs/11/static/functions-json.html\n 'TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT ' +\n 'JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH ' +\n 'JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH ' +\n 'JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET ' +\n 'JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT ' +\n 'JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET ' +\n 'JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY ' +\n // https://www.postgresql.org/docs/11/static/functions-sequence.html\n 'CURRVAL LASTVAL NEXTVAL SETVAL ' +\n // https://www.postgresql.org/docs/11/static/functions-conditional.html\n 'COALESCE NULLIF GREATEST LEAST ' +\n // https://www.postgresql.org/docs/11/static/functions-array.html\n 'ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ' +\n 'ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY ' +\n 'STRING_TO_ARRAY UNNEST ' +\n // https://www.postgresql.org/docs/11/static/functions-range.html\n 'ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE ' +\n // https://www.postgresql.org/docs/11/static/functions-srf.html\n 'GENERATE_SERIES GENERATE_SUBSCRIPTS ' +\n // https://www.postgresql.org/docs/11/static/functions-info.html\n 'CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT ' +\n 'INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE ' +\n 'TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE ' +\n 'COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION ' +\n 'TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX ' +\n 'TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS ' +\n // https://www.postgresql.org/docs/11/static/functions-admin.html\n 'CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE ' +\n 'GIN_CLEAN_PENDING_LIST ' +\n // https://www.postgresql.org/docs/11/static/functions-trigger.html\n 'SUPPRESS_REDUNDANT_UPDATES_TRIGGER ' +\n // ihttps://www.postgresql.org/docs/devel/static/lo-funcs.html\n 'LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE ' +\n //\n 'GROUPING CAST ';\n\n const FUNCTIONS_RE =\n FUNCTIONS.trim()\n .split(' ')\n .map(function(val) { return val.split('|')[0]; })\n .join('|');\n\n return {\n name: 'PostgreSQL',\n aliases: [\n 'postgres',\n 'postgresql'\n ],\n supersetOf: \"sql\",\n case_insensitive: true,\n keywords: {\n keyword:\n SQL_KW + PLPGSQL_KW + ROLE_ATTRS,\n built_in:\n SQL_BI + PLPGSQL_BI + PLPGSQL_EXCEPTIONS\n },\n // Forbid some cunstructs from other languages to improve autodetect. In fact\n // \"[a-z]:\" is legal (as part of array slice), but improbabal.\n illegal: /:==|\\W\\s*\\(\\*|(^|\\s)\\$[a-z]|\\{\\{|[a-z]:\\s*$|\\.\\.\\.|TO:|DO:/,\n contains: [\n // special handling of some words, which are reserved only in some contexts\n {\n className: 'keyword',\n variants: [\n {\n begin: /\\bTEXT\\s*SEARCH\\b/\n },\n {\n begin: /\\b(PRIMARY|FOREIGN|FOR(\\s+NO)?)\\s+KEY\\b/\n },\n {\n begin: /\\bPARALLEL\\s+(UNSAFE|RESTRICTED|SAFE)\\b/\n },\n {\n begin: /\\bSTORAGE\\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\\b/\n },\n {\n begin: /\\bMATCH\\s+(FULL|PARTIAL|SIMPLE)\\b/\n },\n {\n begin: /\\bNULLS\\s+(FIRST|LAST)\\b/\n },\n {\n begin: /\\bEVENT\\s+TRIGGER\\b/\n },\n {\n begin: /\\b(MAPPING|OR)\\s+REPLACE\\b/\n },\n {\n begin: /\\b(FROM|TO)\\s+(PROGRAM|STDIN|STDOUT)\\b/\n },\n {\n begin: /\\b(SHARE|EXCLUSIVE)\\s+MODE\\b/\n },\n {\n begin: /\\b(LEFT|RIGHT)\\s+(OUTER\\s+)?JOIN\\b/\n },\n {\n begin: /\\b(FETCH|MOVE)\\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\\b/\n },\n {\n begin: /\\bPRESERVE\\s+ROWS\\b/\n },\n {\n begin: /\\bDISCARD\\s+PLANS\\b/\n },\n {\n begin: /\\bREFERENCING\\s+(OLD|NEW)\\b/\n },\n {\n begin: /\\bSKIP\\s+LOCKED\\b/\n },\n {\n begin: /\\bGROUPING\\s+SETS\\b/\n },\n {\n begin: /\\b(BINARY|INSENSITIVE|SCROLL|NO\\s+SCROLL)\\s+(CURSOR|FOR)\\b/\n },\n {\n begin: /\\b(WITH|WITHOUT)\\s+HOLD\\b/\n },\n {\n begin: /\\bWITH\\s+(CASCADED|LOCAL)\\s+CHECK\\s+OPTION\\b/\n },\n {\n begin: /\\bEXCLUDE\\s+(TIES|NO\\s+OTHERS)\\b/\n },\n {\n begin: /\\bFORMAT\\s+(TEXT|XML|JSON|YAML)\\b/\n },\n {\n begin: /\\bSET\\s+((SESSION|LOCAL)\\s+)?NAMES\\b/\n },\n {\n begin: /\\bIS\\s+(NOT\\s+)?UNKNOWN\\b/\n },\n {\n begin: /\\bSECURITY\\s+LABEL\\b/\n },\n {\n begin: /\\bSTANDALONE\\s+(YES|NO|NO\\s+VALUE)\\b/\n },\n {\n begin: /\\bWITH\\s+(NO\\s+)?DATA\\b/\n },\n {\n begin: /\\b(FOREIGN|SET)\\s+DATA\\b/\n },\n {\n begin: /\\bSET\\s+(CATALOG|CONSTRAINTS)\\b/\n },\n {\n begin: /\\b(WITH|FOR)\\s+ORDINALITY\\b/\n },\n {\n begin: /\\bIS\\s+(NOT\\s+)?DOCUMENT\\b/\n },\n {\n begin: /\\bXML\\s+OPTION\\s+(DOCUMENT|CONTENT)\\b/\n },\n {\n begin: /\\b(STRIP|PRESERVE)\\s+WHITESPACE\\b/\n },\n {\n begin: /\\bNO\\s+(ACTION|MAXVALUE|MINVALUE)\\b/\n },\n {\n begin: /\\bPARTITION\\s+BY\\s+(RANGE|LIST|HASH)\\b/\n },\n {\n begin: /\\bAT\\s+TIME\\s+ZONE\\b/\n },\n {\n begin: /\\bGRANTED\\s+BY\\b/\n },\n {\n begin: /\\bRETURN\\s+(QUERY|NEXT)\\b/\n },\n {\n begin: /\\b(ATTACH|DETACH)\\s+PARTITION\\b/\n },\n {\n begin: /\\bFORCE\\s+ROW\\s+LEVEL\\s+SECURITY\\b/\n },\n {\n begin: /\\b(INCLUDING|EXCLUDING)\\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\\b/\n },\n {\n begin: /\\bAS\\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\\b/\n }\n ]\n },\n // functions named as keywords, followed by '('\n {\n begin: /\\b(FORMAT|FAMILY|VERSION)\\s*\\(/\n // keywords: { built_in: 'FORMAT FAMILY VERSION' }\n },\n // INCLUDE ( ... ) in index_parameters in CREATE TABLE\n {\n begin: /\\bINCLUDE\\s*\\(/,\n keywords: 'INCLUDE'\n },\n // not highlight RANGE if not in frame_clause (not 100% correct, but seems satisfactory)\n {\n begin: /\\bRANGE(?!\\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/\n },\n // disable highlighting in commands CREATE AGGREGATE/COLLATION/DATABASE/OPERTOR/TEXT SEARCH .../TYPE\n // and in PL/pgSQL RAISE ... USING\n {\n begin: /\\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\\s*=/\n },\n // PG_smth; HAS_some_PRIVILEGE\n {\n // className: 'built_in',\n begin: /\\b(PG_\\w+?|HAS_[A-Z_]+_PRIVILEGE)\\b/,\n relevance: 10\n },\n // extract\n {\n begin: /\\bEXTRACT\\s*\\(/,\n end: /\\bFROM\\b/,\n returnEnd: true,\n keywords: {\n // built_in: 'EXTRACT',\n type: 'CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS ' +\n 'MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR ' +\n 'TIMEZONE_MINUTE WEEK YEAR'\n }\n },\n // xmlelement, xmlpi - special NAME\n {\n begin: /\\b(XMLELEMENT|XMLPI)\\s*\\(\\s*NAME/,\n keywords: {\n // built_in: 'XMLELEMENT XMLPI',\n keyword: 'NAME'\n }\n },\n // xmlparse, xmlserialize\n {\n begin: /\\b(XMLPARSE|XMLSERIALIZE)\\s*\\(\\s*(DOCUMENT|CONTENT)/,\n keywords: {\n // built_in: 'XMLPARSE XMLSERIALIZE',\n keyword: 'DOCUMENT CONTENT'\n }\n },\n // Sequences. We actually skip everything between CACHE|INCREMENT|MAXVALUE|MINVALUE and\n // nearest following numeric constant. Without with trick we find a lot of \"keywords\"\n // in 'avrasm' autodetection test...\n {\n beginKeywords: 'CACHE INCREMENT MAXVALUE MINVALUE',\n end: hljs.C_NUMBER_RE,\n returnEnd: true,\n keywords: 'BY CACHE INCREMENT MAXVALUE MINVALUE'\n },\n // WITH|WITHOUT TIME ZONE as part of datatype\n {\n className: 'type',\n begin: /\\b(WITH|WITHOUT)\\s+TIME\\s+ZONE\\b/\n },\n // INTERVAL optional fields\n {\n className: 'type',\n begin: /\\bINTERVAL\\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\\s+TO\\s+(MONTH|HOUR|MINUTE|SECOND))?\\b/\n },\n // Pseudo-types which allowed only as return type\n {\n begin: /\\bRETURNS\\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\\b/,\n keywords: {\n keyword: 'RETURNS',\n type: 'LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER'\n }\n },\n // Known functions - only when followed by '('\n {\n begin: '\\\\b(' + FUNCTIONS_RE + ')\\\\s*\\\\('\n // keywords: { built_in: FUNCTIONS }\n },\n // Types\n {\n begin: '\\\\.(' + TYPES_RE + ')\\\\b' // prevent highlight as type, say, 'oid' in 'pgclass.oid'\n },\n {\n begin: '\\\\b(' + TYPES_RE + ')\\\\s+PATH\\\\b', // in XMLTABLE\n keywords: {\n keyword: 'PATH', // hopefully no one would use PATH type in XMLTABLE...\n type: TYPES.replace('PATH ', '')\n }\n },\n {\n className: 'type',\n begin: '\\\\b(' + TYPES_RE + ')\\\\b'\n },\n // Strings, see https://www.postgresql.org/docs/11/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS\n {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n contains: [\n {\n begin: '\\'\\''\n }\n ]\n },\n {\n className: 'string',\n begin: '(e|E|u&|U&)\\'',\n end: '\\'',\n contains: [\n {\n begin: '\\\\\\\\.'\n }\n ],\n relevance: 10\n },\n hljs.END_SAME_AS_BEGIN({\n begin: DOLLAR_STRING,\n end: DOLLAR_STRING,\n contains: [\n {\n // actually we want them all except SQL; listed are those with known implementations\n // and XML + JSON just in case\n subLanguage: [\n 'pgsql',\n 'perl',\n 'python',\n 'tcl',\n 'r',\n 'lua',\n 'java',\n 'php',\n 'ruby',\n 'bash',\n 'scheme',\n 'xml',\n 'json'\n ],\n endsWithParent: true\n }\n ]\n }),\n // identifiers in quotes\n {\n begin: '\"',\n end: '\"',\n contains: [\n {\n begin: '\"\"'\n }\n ]\n },\n // numbers\n hljs.C_NUMBER_MODE,\n // comments\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n // PL/pgSQL staff\n // %ROWTYPE, %TYPE, $n\n {\n className: 'meta',\n variants: [\n { // %TYPE, %ROWTYPE\n begin: '%(ROW)?TYPE',\n relevance: 10\n },\n { // $n\n begin: '\\\\$\\\\d+'\n },\n { // #compiler option\n begin: '^#\\\\w',\n end: '$'\n }\n ]\n },\n // <>\n {\n className: 'symbol',\n begin: LABEL,\n relevance: 10\n }\n ]\n };\n}\n\nmodule.exports = pgsql;\n","/*\nLanguage: PHP Template\nRequires: xml.js, php.js\nAuthor: Josh Goebel \nWebsite: https://www.php.net\nCategory: common\n*/\n\nfunction phpTemplate(hljs) {\n return {\n name: \"PHP template\",\n subLanguage: 'xml',\n contains: [\n {\n begin: /<\\?(php|=)?/,\n end: /\\?>/,\n subLanguage: 'php',\n contains: [\n // We don't want the php closing tag ?> to close the PHP block when\n // inside any of the following blocks:\n {\n begin: '/\\\\*',\n end: '\\\\*/',\n skip: true\n },\n {\n begin: 'b\"',\n end: '\"',\n skip: true\n },\n {\n begin: 'b\\'',\n end: '\\'',\n skip: true\n },\n hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n })\n ]\n }\n ]\n };\n}\n\nmodule.exports = phpTemplate;\n","/*\nLanguage: PHP\nAuthor: Victor Karamzin \nContributors: Evgeny Stepanischev , Ivan Sagalaev \nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const VARIABLE = {\n className: 'variable',\n begin: '\\\\$+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*' +\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![A-Za-z0-9])(?![$])`\n };\n const PREPROCESSOR = {\n className: 'meta',\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?[=]?/ },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n className: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n { begin: /\\{\\$/, end: /\\}/ }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null,\n });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n const HEREDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*(\\w+)\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n const STRING = {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE, PREPROCESSOR],\n variants: [\n hljs.inherit(SINGLE_QUOTED, {\n begin: \"b'\", end: \"'\",\n }),\n hljs.inherit(DOUBLE_QUOTED, {\n begin: 'b\"', end: '\"',\n }),\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC\n ]\n };\n const NUMBER = {\n className: 'number',\n variants: [\n { begin: `\\\\b0b[01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0o[0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0x[\\\\da-f]+(?:_[\\\\da-f]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:e[+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const KEYWORDS = {\n keyword:\n // Magic constants:\n // \n '__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ ' +\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n 'die echo exit include include_once print require require_once ' +\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // \n // \n 'array abstract and as binary bool boolean break callable case catch class clone const continue declare ' +\n 'default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends ' +\n 'final finally float for foreach from global goto if implements instanceof insteadof int integer interface ' +\n 'isset iterable list match|0 mixed new object or private protected public real return string switch throw trait ' +\n 'try unset use var void while xor yield',\n literal: 'false null true',\n built_in:\n // Standard PHP library:\n // \n 'Error|0 ' + // error is too common a name esp since PHP is case in-sensitive\n 'AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ' +\n // Reserved interfaces:\n // \n 'ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap ' +\n // Reserved classes:\n // \n 'Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass'\n };\n return {\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$', {contains: [PREPROCESSOR]}),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n {\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n hljs.COMMENT(\n '__halt_compiler.+?;',\n false,\n {\n endsWithParent: true,\n keywords: '__halt_compiler'\n }\n ),\n PREPROCESSOR,\n {\n className: 'keyword', begin: /\\$this\\b/\n },\n VARIABLE,\n {\n // swallow composed identifiers to avoid parsing them as keywords\n begin: /(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/\n },\n {\n className: 'function',\n relevance: 0,\n beginKeywords: 'fn function', end: /[;{]/, excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n {\n beginKeywords: 'use',\n },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n className: 'params',\n begin: '\\\\(', end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n VARIABLE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n }\n ]\n },\n {\n className: 'class',\n variants: [\n { beginKeywords: \"enum\", illegal: /[($\"]/ },\n { beginKeywords: \"class interface trait\", illegal: /[:($\"]/ }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n {beginKeywords: 'extends implements'},\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [hljs.UNDERSCORE_TITLE_MODE]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [hljs.UNDERSCORE_TITLE_MODE]\n },\n STRING,\n NUMBER\n ]\n };\n}\n\nmodule.exports = php;\n","/*\nLanguage: Plain text\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nDescription: Plain text without any highlighting.\nCategory: common\n*/\n\nfunction plaintext(hljs) {\n return {\n name: 'Plain text',\n aliases: [\n 'text',\n 'txt'\n ],\n disableAutodetect: true\n };\n}\n\nmodule.exports = plaintext;\n","/*\nLanguage: Pony\nAuthor: Joe Eli McIlvain \nDescription: Pony is an open-source, object-oriented, actor-model,\n capabilities-secure, high performance programming language.\nWebsite: https://www.ponylang.io\n*/\n\nfunction pony(hljs) {\n const KEYWORDS = {\n keyword:\n 'actor addressof and as be break class compile_error compile_intrinsic ' +\n 'consume continue delegate digestof do else elseif embed end error ' +\n 'for fun if ifdef in interface is isnt lambda let match new not object ' +\n 'or primitive recover repeat return struct then trait try type until ' +\n 'use var where while with xor',\n meta:\n 'iso val tag trn box ref',\n literal:\n 'this false true'\n };\n\n const TRIPLE_QUOTE_STRING_MODE = {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 10\n };\n\n const QUOTE_STRING_MODE = {\n className: 'string',\n begin: '\"',\n end: '\"',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n\n const SINGLE_QUOTE_CHAR_MODE = {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n };\n\n const TYPE_NAME = {\n className: 'type',\n begin: '\\\\b_?[A-Z][\\\\w]*',\n relevance: 0\n };\n\n const PRIMED_NAME = {\n begin: hljs.IDENT_RE + '\\'',\n relevance: 0\n };\n\n const NUMBER_MODE = {\n className: 'number',\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9]+|\\\\b0[bB][01]+|(\\\\b\\\\d+(_\\\\d+)?(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)',\n relevance: 0\n };\n\n /**\n * The `FUNCTION` and `CLASS` modes were intentionally removed to simplify\n * highlighting and fix cases like\n * ```\n * interface Iterator[A: A]\n * fun has_next(): Bool\n * fun next(): A?\n * ```\n * where it is valid to have a function head without a body\n */\n\n return {\n name: 'Pony',\n keywords: KEYWORDS,\n contains: [\n TYPE_NAME,\n TRIPLE_QUOTE_STRING_MODE,\n QUOTE_STRING_MODE,\n SINGLE_QUOTE_CHAR_MODE,\n PRIMED_NAME,\n NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = pony;\n","/*\nLanguage: PowerShell\nDescription: PowerShell is a task-based command-line shell and scripting language built on .NET.\nAuthor: David Mohundro \nContributors: Nicholas Blumhardt , Victor Zhou , Nicolas Le Gall \nWebsite: https://docs.microsoft.com/en-us/powershell/\n*/\n\nfunction powershell(hljs) {\n const TYPES = [\n \"string\",\n \"char\",\n \"byte\",\n \"int\",\n \"long\",\n \"bool\",\n \"decimal\",\n \"single\",\n \"double\",\n \"DateTime\",\n \"xml\",\n \"array\",\n \"hashtable\",\n \"void\"\n ];\n\n // https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands\n const VALID_VERBS =\n 'Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|' +\n 'Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|' +\n 'Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|' +\n 'Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|' +\n 'ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|' +\n 'Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|' +\n 'Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|' +\n 'Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|' +\n 'Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|' +\n 'Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|' +\n 'Unprotect|Use|ForEach|Sort|Tee|Where';\n\n const COMPARISON_OPERATORS =\n '-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|' +\n '-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|' +\n '-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|' +\n '-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|' +\n '-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|' +\n '-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|' +\n '-split|-wildcard|-xor';\n\n const KEYWORDS = {\n $pattern: /-?[A-z\\.\\-]+\\b/,\n keyword:\n 'if else foreach return do while until elseif begin for trap data dynamicparam ' +\n 'end break throw param continue finally in switch exit filter try process catch ' +\n 'hidden static parameter',\n // \"echo\" relevance has been set to 0 to avoid auto-detect conflicts with shell transcripts\n built_in:\n 'ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp ' +\n 'cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx ' +\n 'fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group ' +\n 'gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi ' +\n 'iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh ' +\n 'popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp ' +\n 'rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp ' +\n 'spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write'\n // TODO: 'validate[A-Z]+' can't work in keywords\n };\n\n const TITLE_NAME_RE = /\\w[\\w\\d]*((-)[\\w\\d]+)*/;\n\n const BACKTICK_ESCAPE = {\n begin: '`[\\\\s\\\\S]',\n relevance: 0\n };\n\n const VAR = {\n className: 'variable',\n variants: [\n {\n begin: /\\$\\B/\n },\n {\n className: 'keyword',\n begin: /\\$this/\n },\n {\n begin: /\\$[\\w\\d][\\w\\d_:]*/\n }\n ]\n };\n\n const LITERAL = {\n className: 'literal',\n begin: /\\$(null|true|false)\\b/\n };\n\n const QUOTE_STRING = {\n className: \"string\",\n variants: [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /@\"/,\n end: /^\"@/\n }\n ],\n contains: [\n BACKTICK_ESCAPE,\n VAR,\n {\n className: 'variable',\n begin: /\\$[A-z]/,\n end: /[^A-z]/\n }\n ]\n };\n\n const APOS_STRING = {\n className: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /@'/,\n end: /^'@/\n }\n ]\n };\n\n const PS_HELPTAGS = {\n className: \"doctag\",\n variants: [\n /* no paramater help tags */\n {\n begin: /\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/\n },\n /* one parameter help tags */\n {\n begin: /\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/\n }\n ]\n };\n\n const PS_COMMENT = hljs.inherit(\n hljs.COMMENT(null, null),\n {\n variants: [\n /* single-line comment */\n {\n begin: /#/,\n end: /$/\n },\n /* multi-line comment */\n {\n begin: /<#/,\n end: /#>/\n }\n ],\n contains: [ PS_HELPTAGS ]\n }\n );\n\n const CMDLETS = {\n className: 'built_in',\n variants: [\n {\n begin: '('.concat(VALID_VERBS, ')+(-)[\\\\w\\\\d]+')\n }\n ]\n };\n\n const PS_CLASS = {\n className: 'class',\n beginKeywords: 'class enum',\n end: /\\s*[{]/,\n excludeEnd: true,\n relevance: 0,\n contains: [ hljs.TITLE_MODE ]\n };\n\n const PS_FUNCTION = {\n className: 'function',\n begin: /function\\s+/,\n end: /\\s*\\{|$/,\n excludeEnd: true,\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n begin: \"function\",\n relevance: 0,\n className: \"keyword\"\n },\n {\n className: \"title\",\n begin: TITLE_NAME_RE,\n relevance: 0\n },\n {\n begin: /\\(/,\n end: /\\)/,\n className: \"params\",\n relevance: 0,\n contains: [ VAR ]\n }\n // CMDLETS\n ]\n };\n\n // Using statment, plus type, plus assembly name.\n const PS_USING = {\n begin: /using\\s/,\n end: /$/,\n returnBegin: true,\n contains: [\n QUOTE_STRING,\n APOS_STRING,\n {\n className: 'keyword',\n begin: /(using|assembly|command|module|namespace|type)/\n }\n ]\n };\n\n // Comperison operators & function named parameters.\n const PS_ARGUMENTS = {\n variants: [\n // PS literals are pretty verbose so it's a good idea to accent them a bit.\n {\n className: 'operator',\n begin: '('.concat(COMPARISON_OPERATORS, ')\\\\b')\n },\n {\n className: 'literal',\n begin: /(-){1,2}[\\w\\d-]+/,\n relevance: 0\n }\n ]\n };\n\n const HASH_SIGNS = {\n className: 'selector-tag',\n begin: /@\\B/,\n relevance: 0\n };\n\n // It's a very general rule so I'll narrow it a bit with some strict boundaries\n // to avoid any possible false-positive collisions!\n const PS_METHODS = {\n className: 'function',\n begin: /\\[.*\\]\\s*[\\w]+[ ]??\\(/,\n end: /$/,\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'keyword',\n begin: '('.concat(\n KEYWORDS.keyword.toString().replace(/\\s/g, '|'\n ), ')\\\\b'),\n endsParent: true,\n relevance: 0\n },\n hljs.inherit(hljs.TITLE_MODE, {\n endsParent: true\n })\n ]\n };\n\n const GENTLEMANS_SET = [\n // STATIC_MEMBER,\n PS_METHODS,\n PS_COMMENT,\n BACKTICK_ESCAPE,\n hljs.NUMBER_MODE,\n QUOTE_STRING,\n APOS_STRING,\n // PS_NEW_OBJECT_TYPE,\n CMDLETS,\n VAR,\n LITERAL,\n HASH_SIGNS\n ];\n\n const PS_TYPE = {\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n contains: [].concat(\n 'self',\n GENTLEMANS_SET,\n {\n begin: \"(\" + TYPES.join(\"|\") + \")\",\n className: \"built_in\",\n relevance: 0\n },\n {\n className: 'type',\n begin: /[\\.\\w\\d]+/,\n relevance: 0\n }\n )\n };\n\n PS_METHODS.contains.unshift(PS_TYPE);\n\n return {\n name: 'PowerShell',\n aliases: [\n \"pwsh\",\n \"ps\",\n \"ps1\"\n ],\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: GENTLEMANS_SET.concat(\n PS_CLASS,\n PS_FUNCTION,\n PS_USING,\n PS_ARGUMENTS,\n PS_TYPE\n )\n };\n}\n\nmodule.exports = powershell;\n","/*\nLanguage: Processing\nDescription: Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts.\nAuthor: Erik Paluka \nWebsite: https://processing.org\nCategory: graphics\n*/\n\nfunction processing(hljs) {\n const regex = hljs.regex;\n const BUILT_INS = [\n \"displayHeight\",\n \"displayWidth\",\n \"mouseY\",\n \"mouseX\",\n \"mousePressed\",\n \"pmouseX\",\n \"pmouseY\",\n \"key\",\n \"keyCode\",\n \"pixels\",\n \"focused\",\n \"frameCount\",\n \"frameRate\",\n \"height\",\n \"width\",\n \"size\",\n \"createGraphics\",\n \"beginDraw\",\n \"createShape\",\n \"loadShape\",\n \"PShape\",\n \"arc\",\n \"ellipse\",\n \"line\",\n \"point\",\n \"quad\",\n \"rect\",\n \"triangle\",\n \"bezier\",\n \"bezierDetail\",\n \"bezierPoint\",\n \"bezierTangent\",\n \"curve\",\n \"curveDetail\",\n \"curvePoint\",\n \"curveTangent\",\n \"curveTightness\",\n \"shape\",\n \"shapeMode\",\n \"beginContour\",\n \"beginShape\",\n \"bezierVertex\",\n \"curveVertex\",\n \"endContour\",\n \"endShape\",\n \"quadraticVertex\",\n \"vertex\",\n \"ellipseMode\",\n \"noSmooth\",\n \"rectMode\",\n \"smooth\",\n \"strokeCap\",\n \"strokeJoin\",\n \"strokeWeight\",\n \"mouseClicked\",\n \"mouseDragged\",\n \"mouseMoved\",\n \"mousePressed\",\n \"mouseReleased\",\n \"mouseWheel\",\n \"keyPressed\",\n \"keyPressedkeyReleased\",\n \"keyTyped\",\n \"print\",\n \"println\",\n \"save\",\n \"saveFrame\",\n \"day\",\n \"hour\",\n \"millis\",\n \"minute\",\n \"month\",\n \"second\",\n \"year\",\n \"background\",\n \"clear\",\n \"colorMode\",\n \"fill\",\n \"noFill\",\n \"noStroke\",\n \"stroke\",\n \"alpha\",\n \"blue\",\n \"brightness\",\n \"color\",\n \"green\",\n \"hue\",\n \"lerpColor\",\n \"red\",\n \"saturation\",\n \"modelX\",\n \"modelY\",\n \"modelZ\",\n \"screenX\",\n \"screenY\",\n \"screenZ\",\n \"ambient\",\n \"emissive\",\n \"shininess\",\n \"specular\",\n \"add\",\n \"createImage\",\n \"beginCamera\",\n \"camera\",\n \"endCamera\",\n \"frustum\",\n \"ortho\",\n \"perspective\",\n \"printCamera\",\n \"printProjection\",\n \"cursor\",\n \"frameRate\",\n \"noCursor\",\n \"exit\",\n \"loop\",\n \"noLoop\",\n \"popStyle\",\n \"pushStyle\",\n \"redraw\",\n \"binary\",\n \"boolean\",\n \"byte\",\n \"char\",\n \"float\",\n \"hex\",\n \"int\",\n \"str\",\n \"unbinary\",\n \"unhex\",\n \"join\",\n \"match\",\n \"matchAll\",\n \"nf\",\n \"nfc\",\n \"nfp\",\n \"nfs\",\n \"split\",\n \"splitTokens\",\n \"trim\",\n \"append\",\n \"arrayCopy\",\n \"concat\",\n \"expand\",\n \"reverse\",\n \"shorten\",\n \"sort\",\n \"splice\",\n \"subset\",\n \"box\",\n \"sphere\",\n \"sphereDetail\",\n \"createInput\",\n \"createReader\",\n \"loadBytes\",\n \"loadJSONArray\",\n \"loadJSONObject\",\n \"loadStrings\",\n \"loadTable\",\n \"loadXML\",\n \"open\",\n \"parseXML\",\n \"saveTable\",\n \"selectFolder\",\n \"selectInput\",\n \"beginRaw\",\n \"beginRecord\",\n \"createOutput\",\n \"createWriter\",\n \"endRaw\",\n \"endRecord\",\n \"PrintWritersaveBytes\",\n \"saveJSONArray\",\n \"saveJSONObject\",\n \"saveStream\",\n \"saveStrings\",\n \"saveXML\",\n \"selectOutput\",\n \"popMatrix\",\n \"printMatrix\",\n \"pushMatrix\",\n \"resetMatrix\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"scale\",\n \"shearX\",\n \"shearY\",\n \"translate\",\n \"ambientLight\",\n \"directionalLight\",\n \"lightFalloff\",\n \"lights\",\n \"lightSpecular\",\n \"noLights\",\n \"normal\",\n \"pointLight\",\n \"spotLight\",\n \"image\",\n \"imageMode\",\n \"loadImage\",\n \"noTint\",\n \"requestImage\",\n \"tint\",\n \"texture\",\n \"textureMode\",\n \"textureWrap\",\n \"blend\",\n \"copy\",\n \"filter\",\n \"get\",\n \"loadPixels\",\n \"set\",\n \"updatePixels\",\n \"blendMode\",\n \"loadShader\",\n \"PShaderresetShader\",\n \"shader\",\n \"createFont\",\n \"loadFont\",\n \"text\",\n \"textFont\",\n \"textAlign\",\n \"textLeading\",\n \"textMode\",\n \"textSize\",\n \"textWidth\",\n \"textAscent\",\n \"textDescent\",\n \"abs\",\n \"ceil\",\n \"constrain\",\n \"dist\",\n \"exp\",\n \"floor\",\n \"lerp\",\n \"log\",\n \"mag\",\n \"map\",\n \"max\",\n \"min\",\n \"norm\",\n \"pow\",\n \"round\",\n \"sq\",\n \"sqrt\",\n \"acos\",\n \"asin\",\n \"atan\",\n \"atan2\",\n \"cos\",\n \"degrees\",\n \"radians\",\n \"sin\",\n \"tan\",\n \"noise\",\n \"noiseDetail\",\n \"noiseSeed\",\n \"random\",\n \"randomGaussian\",\n \"randomSeed\"\n ];\n const IDENT = hljs.IDENT_RE;\n const FUNC_NAME = {\n variants: [\n {\n match: regex.concat(regex.either(...BUILT_INS), regex.lookahead(/\\s*\\(/)),\n className: \"built_in\"\n },\n {\n relevance: 0,\n match: regex.concat(\n /\\b(?!for|if|while)/,\n IDENT, regex.lookahead(/\\s*\\(/)),\n className: \"title.function\"\n }\n ]\n };\n const NEW_CLASS = {\n match: [\n /new\\s+/,\n IDENT\n ],\n className: {\n 1: \"keyword\",\n 2: \"class.title\"\n }\n };\n const PROPERTY = {\n relevance: 0,\n match: [\n /\\./,\n IDENT\n ],\n className: {\n 2: \"property\"\n }\n };\n const CLASS = {\n variants: [\n {\n match: [\n /class/,\n /\\s+/,\n IDENT,\n /\\s+/,\n /extends/,\n /\\s+/,\n IDENT\n ]\n },\n {\n match: [\n /class/,\n /\\s+/,\n IDENT\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n };\n\n const TYPES = [\n \"boolean\",\n \"byte\",\n \"char\",\n \"color\",\n \"double\",\n \"float\",\n \"int\",\n \"long\",\n \"short\",\n ];\n const CLASSES = [\n \"BufferedReader\",\n \"PVector\",\n \"PFont\",\n \"PImage\",\n \"PGraphics\",\n \"HashMap\",\n \"String\",\n \"Array\",\n \"FloatDict\",\n \"ArrayList\",\n \"FloatList\",\n \"IntDict\",\n \"IntList\",\n \"JSONArray\",\n \"JSONObject\",\n \"Object\",\n \"StringDict\",\n \"StringList\",\n \"Table\",\n \"TableRow\",\n \"XML\"\n ];\n const JAVA_KEYWORDS = [\n \"abstract\",\n \"assert\",\n \"break\",\n \"case\",\n \"catch\",\n \"const\",\n \"continue\",\n \"default\",\n \"else\",\n \"enum\",\n \"final\",\n \"finally\",\n \"for\",\n \"if\",\n \"import\",\n \"instanceof\",\n \"long\",\n \"native\",\n \"new\",\n \"package\",\n \"private\",\n \"private\",\n \"protected\",\n \"protected\",\n \"public\",\n \"public\",\n \"return\",\n \"static\",\n \"strictfp\",\n \"switch\",\n \"synchronized\",\n \"throw\",\n \"throws\",\n \"transient\",\n \"try\",\n \"void\",\n \"volatile\",\n \"while\"\n ];\n\n return {\n name: 'Processing',\n aliases: [ 'pde' ],\n keywords: {\n keyword: [\n ...JAVA_KEYWORDS\n ],\n literal: 'P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI null true false',\n title: 'setup draw',\n variable: \"super this\",\n built_in: [\n ...BUILT_INS,\n ...CLASSES\n ],\n type: TYPES\n },\n contains: [\n CLASS,\n NEW_CLASS,\n FUNC_NAME,\n PROPERTY,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = processing;\n","/*\nLanguage: Python profiler\nDescription: Python profiler results\nAuthor: Brian Beck \n*/\n\nfunction profile(hljs) {\n return {\n name: 'Python profiler',\n contains: [\n hljs.C_NUMBER_MODE,\n {\n begin: '[a-zA-Z_][\\\\da-zA-Z_]+\\\\.[\\\\da-zA-Z_]{1,3}',\n end: ':',\n excludeEnd: true\n },\n {\n begin: '(ncalls|tottime|cumtime)',\n end: '$',\n keywords: 'ncalls tottime|10 cumtime|10 filename',\n relevance: 10\n },\n {\n begin: 'function calls',\n end: '$',\n contains: [ hljs.C_NUMBER_MODE ],\n relevance: 10\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\\\(',\n end: '\\\\)$',\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = profile;\n","/*\nLanguage: Prolog\nDescription: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.\nAuthor: Raivo Laanemets \nWebsite: https://en.wikipedia.org/wiki/Prolog\n*/\n\nfunction prolog(hljs) {\n const ATOM = {\n\n begin: /[a-z][A-Za-z0-9_]*/,\n relevance: 0\n };\n\n const VAR = {\n\n className: 'symbol',\n variants: [\n {\n begin: /[A-Z][a-zA-Z0-9_]*/\n },\n {\n begin: /_[A-Za-z0-9_]*/\n }\n ],\n relevance: 0\n };\n\n const PARENTED = {\n\n begin: /\\(/,\n end: /\\)/,\n relevance: 0\n };\n\n const LIST = {\n\n begin: /\\[/,\n end: /\\]/\n };\n\n const LINE_COMMENT = {\n\n className: 'comment',\n begin: /%/,\n end: /$/,\n contains: [ hljs.PHRASAL_WORDS_MODE ]\n };\n\n const BACKTICK_STRING = {\n\n className: 'string',\n begin: /`/,\n end: /`/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n\n const CHAR_CODE = {\n className: 'string', // 0'a etc.\n begin: /0'(\\\\'|.)/\n };\n\n const SPACE_CODE = {\n className: 'string',\n begin: /0'\\\\s/ // 0'\\s\n };\n\n const PRED_OP = { // relevance booster\n begin: /:-/\n };\n\n const inner = [\n\n ATOM,\n VAR,\n PARENTED,\n PRED_OP,\n LIST,\n LINE_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n BACKTICK_STRING,\n CHAR_CODE,\n SPACE_CODE,\n hljs.C_NUMBER_MODE\n ];\n\n PARENTED.contains = inner;\n LIST.contains = inner;\n\n return {\n name: 'Prolog',\n contains: inner.concat([\n { // relevance booster\n begin: /\\.$/\n }\n ])\n };\n}\n\nmodule.exports = prolog;\n","/*\nLanguage: .properties\nContributors: Valentin Aitken , Egor Rogov \nWebsite: https://en.wikipedia.org/wiki/.properties\nCategory: config\n*/\n\n/** @type LanguageFn */\nfunction properties(hljs) {\n // whitespaces: space, tab, formfeed\n const WS0 = '[ \\\\t\\\\f]*';\n const WS1 = '[ \\\\t\\\\f]+';\n // delimiter\n const EQUAL_DELIM = WS0 + '[:=]' + WS0;\n const WS_DELIM = WS1;\n const DELIM = '(' + EQUAL_DELIM + '|' + WS_DELIM + ')';\n const KEY = '([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+';\n\n const DELIM_AND_VALUE = {\n // skip DELIM\n end: DELIM,\n relevance: 0,\n starts: {\n // value: everything until end of line (again, taking into account backslashes)\n className: 'string',\n end: /$/,\n relevance: 0,\n contains: [\n {\n begin: '\\\\\\\\\\\\\\\\'\n },\n {\n begin: '\\\\\\\\\\\\n'\n }\n ]\n }\n };\n\n return {\n name: '.properties',\n disableAutodetect: true,\n case_insensitive: true,\n illegal: /\\S/,\n contains: [\n hljs.COMMENT('^\\\\s*[!#]', '$'),\n // key: everything until whitespace or = or : (taking into account backslashes)\n // case of a key-value pair\n {\n returnBegin: true,\n variants: [\n {\n begin: KEY + EQUAL_DELIM\n },\n {\n begin: KEY + WS_DELIM\n }\n ],\n contains: [\n {\n className: 'attr',\n begin: KEY,\n endsParent: true\n }\n ],\n starts: DELIM_AND_VALUE\n },\n // case of an empty key\n {\n className: 'attr',\n begin: KEY + WS0 + '$'\n }\n ]\n };\n}\n\nmodule.exports = properties;\n","/*\nLanguage: Protocol Buffers\nAuthor: Dan Tao \nDescription: Protocol buffer message definition format\nWebsite: https://developers.google.com/protocol-buffers/docs/proto3\nCategory: protocols\n*/\n\nfunction protobuf(hljs) {\n return {\n name: 'Protocol Buffers',\n keywords: {\n keyword: 'package import option optional required repeated group oneof',\n built_in: 'double float int32 int64 uint32 uint64 sint32 sint64 ' +\n 'fixed32 fixed64 sfixed32 sfixed64 bool string bytes',\n literal: 'true false'\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'class',\n beginKeywords: 'message enum service', end: /\\{/,\n illegal: /\\n/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title\n })\n ]\n },\n {\n className: 'function',\n beginKeywords: 'rpc',\n end: /[{;]/, excludeEnd: true,\n keywords: 'rpc returns'\n },\n { // match enum items (relevance)\n // BLAH = ...;\n begin: /^\\s*[A-Z_]+(?=\\s*=[^\\n]+;$)/\n }\n ]\n };\n}\n\nmodule.exports = protobuf;\n","/*\nLanguage: Puppet\nAuthor: Jose Molina Colmenero \nWebsite: https://puppet.com/docs\nCategory: config\n*/\n\nfunction puppet(hljs) {\n const PUPPET_KEYWORDS = {\n keyword:\n /* language keywords */\n 'and case default else elsif false if in import enherits node or true undef unless main settings $string ',\n literal:\n /* metaparameters */\n 'alias audit before loglevel noop require subscribe tag ' +\n /* normal attributes */\n 'owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check ' +\n 'en_address ip_address realname command environment hour monute month monthday special target weekday ' +\n 'creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore ' +\n 'links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source ' +\n 'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ' +\n 'ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel ' +\n 'native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options ' +\n 'device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use ' +\n 'message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform ' +\n 'responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running ' +\n 'start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age ' +\n 'password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled ' +\n 'enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist ' +\n 'priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey ' +\n 'sslverify mounted',\n built_in:\n /* core facts */\n 'architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers ' +\n 'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ' +\n 'ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion ' +\n 'kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease ' +\n 'lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major ' +\n 'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease ' +\n 'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion ' +\n 'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced ' +\n 'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime ' +\n 'uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version'\n };\n\n const COMMENT = hljs.COMMENT('#', '$');\n\n const IDENT_RE = '([A-Za-z_]|::)(\\\\w|::)*';\n\n const TITLE = hljs.inherit(hljs.TITLE_MODE, {\n begin: IDENT_RE\n });\n\n const VARIABLE = {\n className: 'variable',\n begin: '\\\\$' + IDENT_RE\n };\n\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VARIABLE\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n }\n ]\n };\n\n return {\n name: 'Puppet',\n aliases: [ 'pp' ],\n contains: [\n COMMENT,\n VARIABLE,\n STRING,\n {\n beginKeywords: 'class',\n end: '\\\\{|;',\n illegal: /=/,\n contains: [\n TITLE,\n COMMENT\n ]\n },\n {\n beginKeywords: 'define',\n end: /\\{/,\n contains: [\n {\n className: 'section',\n begin: hljs.IDENT_RE,\n endsParent: true\n }\n ]\n },\n {\n begin: hljs.IDENT_RE + '\\\\s+\\\\{',\n returnBegin: true,\n end: /\\S/,\n contains: [\n {\n className: 'keyword',\n begin: hljs.IDENT_RE\n },\n {\n begin: /\\{/,\n end: /\\}/,\n keywords: PUPPET_KEYWORDS,\n relevance: 0,\n contains: [\n STRING,\n COMMENT,\n {\n begin: '[a-zA-Z_]+\\\\s*=>',\n returnBegin: true,\n end: '=>',\n contains: [\n {\n className: 'attr',\n begin: hljs.IDENT_RE\n }\n ]\n },\n {\n className: 'number',\n begin: '(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',\n relevance: 0\n },\n VARIABLE\n ]\n }\n ],\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = puppet;\n","/*\nLanguage: PureBASIC\nAuthor: Tristano Ajmone \nDescription: Syntax highlighting for PureBASIC (v.5.00-5.60). No inline ASM highlighting. (v.1.2, May 2017)\nCredits: I've taken inspiration from the PureBasic language file for GeSHi, created by Gustavo Julio Fiorenza (GuShH).\nWebsite: https://www.purebasic.com\n*/\n\n// Base deafult colors in PB IDE: background: #FFFFDF; foreground: #000000;\n\nfunction purebasic(hljs) {\n const STRINGS = { // PB IDE color: #0080FF (Azure Radiance)\n className: 'string',\n begin: '(~)?\"',\n end: '\"',\n illegal: '\\\\n'\n };\n const CONSTANTS = { // PB IDE color: #924B72 (Cannon Pink)\n // \"#\" + a letter or underscore + letters, digits or underscores + (optional) \"$\"\n className: 'symbol',\n begin: '#[a-zA-Z_]\\\\w*\\\\$?'\n };\n\n return {\n name: 'PureBASIC',\n aliases: [\n 'pb',\n 'pbi'\n ],\n keywords: // PB IDE color: #006666 (Blue Stone) + Bold\n // Keywords from all version of PureBASIC 5.00 upward ...\n 'Align And Array As Break CallDebugger Case CompilerCase CompilerDefault ' +\n 'CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError ' +\n 'CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug ' +\n 'DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default ' +\n 'Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM ' +\n 'EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration ' +\n 'EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect ' +\n 'EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends ' +\n 'FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC ' +\n 'IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount ' +\n 'Map Module NewList NewMap Next Not Or Procedure ProcedureC ' +\n 'ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim ' +\n 'Read Repeat Restore Return Runtime Select Shared Static Step Structure ' +\n 'StructureUnion Swap Threaded To UndefineMacro Until Until UnuseModule ' +\n 'UseModule Wend While With XIncludeFile XOr',\n contains: [\n // COMMENTS | PB IDE color: #00AAAA (Persian Green)\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n\n { // PROCEDURES DEFINITIONS\n className: 'function',\n begin: '\\\\b(Procedure|Declare)(C|CDLL|DLL)?\\\\b',\n end: '\\\\(',\n excludeEnd: true,\n returnBegin: true,\n contains: [\n { // PROCEDURE KEYWORDS | PB IDE color: #006666 (Blue Stone) + Bold\n className: 'keyword',\n begin: '(Procedure|Declare)(C|CDLL|DLL)?',\n excludeEnd: true\n },\n { // PROCEDURE RETURN TYPE SETTING | PB IDE color: #000000 (Black)\n className: 'type',\n begin: '\\\\.\\\\w*'\n // end: ' ',\n },\n hljs.UNDERSCORE_TITLE_MODE // PROCEDURE NAME | PB IDE color: #006666 (Blue Stone)\n ]\n },\n STRINGS,\n CONSTANTS\n ]\n };\n}\n\n/* ==============================================================================\n CHANGELOG\n ==============================================================================\n - v.1.2 (2017-05-12)\n -- BUG-FIX: Some keywords were accidentally joyned together. Now fixed.\n - v.1.1 (2017-04-30)\n -- Updated to PureBASIC 5.60.\n -- Keywords list now built by extracting them from the PureBASIC SDK's\n \"SyntaxHilighting.dll\" (from each PureBASIC version). Tokens from each\n version are added to the list, and renamed or removed tokens are kept\n for the sake of covering all versions of the language from PureBASIC\n v5.00 upward. (NOTE: currently, there are no renamed or deprecated\n tokens in the keywords list). For more info, see:\n -- http://www.purebasic.fr/english/viewtopic.php?&p=506269\n -- https://github.com/tajmone/purebasic-archives/tree/master/syntax-highlighting/guidelines\n - v.1.0 (April 2016)\n -- First release\n -- Keywords list taken and adapted from GuShH's (Gustavo Julio Fiorenza)\n PureBasic language file for GeSHi:\n -- https://github.com/easybook/geshi/blob/master/geshi/purebasic.php\n*/\n\nmodule.exports = purebasic;\n","/*\nLanguage: Python REPL\nRequires: python.js\nAuthor: Josh Goebel \nCategory: common\n*/\n\nfunction pythonRepl(hljs) {\n return {\n aliases: [ 'pycon' ],\n contains: [\n {\n className: 'meta',\n starts: {\n // a space separates the REPL prefix from the actual code\n // this is purely for cleaner HTML output\n end: / |$/,\n starts: {\n end: '$',\n subLanguage: 'python'\n }\n },\n variants: [\n {\n begin: /^>>>(?=[ ]|$)/\n },\n {\n begin: /^\\.\\.\\.(?=[ ]|$)/\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = pythonRepl;\n","/*\nLanguage: Python\nDescription: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.\nWebsite: https://www.python.org\nCategory: common\n*/\n\nfunction python(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[\\p{XID_Start}_]\\p{XID_Continue}*/u;\n const RESERVED_WORDS = [\n 'and',\n 'as',\n 'assert',\n 'async',\n 'await',\n 'break',\n 'class',\n 'continue',\n 'def',\n 'del',\n 'elif',\n 'else',\n 'except',\n 'finally',\n 'for',\n 'from',\n 'global',\n 'if',\n 'import',\n 'in',\n 'is',\n 'lambda',\n 'nonlocal|10',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'return',\n 'try',\n 'while',\n 'with',\n 'yield'\n ];\n\n const BUILT_INS = [\n '__import__',\n 'abs',\n 'all',\n 'any',\n 'ascii',\n 'bin',\n 'bool',\n 'breakpoint',\n 'bytearray',\n 'bytes',\n 'callable',\n 'chr',\n 'classmethod',\n 'compile',\n 'complex',\n 'delattr',\n 'dict',\n 'dir',\n 'divmod',\n 'enumerate',\n 'eval',\n 'exec',\n 'filter',\n 'float',\n 'format',\n 'frozenset',\n 'getattr',\n 'globals',\n 'hasattr',\n 'hash',\n 'help',\n 'hex',\n 'id',\n 'input',\n 'int',\n 'isinstance',\n 'issubclass',\n 'iter',\n 'len',\n 'list',\n 'locals',\n 'map',\n 'max',\n 'memoryview',\n 'min',\n 'next',\n 'object',\n 'oct',\n 'open',\n 'ord',\n 'pow',\n 'print',\n 'property',\n 'range',\n 'repr',\n 'reversed',\n 'round',\n 'set',\n 'setattr',\n 'slice',\n 'sorted',\n 'staticmethod',\n 'str',\n 'sum',\n 'super',\n 'tuple',\n 'type',\n 'vars',\n 'zip'\n ];\n\n const LITERALS = [\n '__debug__',\n 'Ellipsis',\n 'False',\n 'None',\n 'NotImplemented',\n 'True'\n ];\n\n // https://docs.python.org/3/library/typing.html\n // TODO: Could these be supplemented by a CamelCase matcher in certain\n // contexts, leaving these remaining only for relevance hinting?\n const TYPES = [\n \"Any\",\n \"Callable\",\n \"Coroutine\",\n \"Dict\",\n \"List\",\n \"Literal\",\n \"Generic\",\n \"Optional\",\n \"Sequence\",\n \"Set\",\n \"Tuple\",\n \"Type\",\n \"Union\"\n ];\n\n const KEYWORDS = {\n $pattern: /[A-Za-z]\\w+|__\\w+__/,\n keyword: RESERVED_WORDS,\n built_in: BUILT_INS,\n literal: LITERALS,\n type: TYPES\n };\n\n const PROMPT = {\n className: 'meta',\n begin: /^(>>>|\\.\\.\\.) /\n };\n\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS,\n illegal: /#/\n };\n\n const LITERAL_BRACKET = {\n begin: /\\{\\{/,\n relevance: 0\n };\n\n const STRING = {\n className: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([uU]|[rR])'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /([uU]|[rR])\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])'/,\n end: /'/\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])\"/,\n end: /\"/\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'/,\n end: /'/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n\n // https://docs.python.org/3.9/reference/lexical_analysis.html#numeric-literals\n const digitpart = '[0-9](_?[0-9])*';\n const pointfloat = `(\\\\b(${digitpart}))?\\\\.(${digitpart})|\\\\b(${digitpart})\\\\.`;\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // exponentfloat, pointfloat\n // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals\n // optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n // Note: no leading \\b because floats can start with a decimal point\n // and we don't want to mishandle e.g. `fn(.5)`,\n // no trailing \\b for pointfloat because it can end with a decimal point\n // and we don't want to mishandle e.g. `0..hex()`; this should be safe\n // because both MUST contain a decimal point and so cannot be confused with\n // the interior part of an identifier\n {\n begin: `(\\\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?\\\\b`\n },\n {\n begin: `(${pointfloat})[jJ]?`\n },\n\n // decinteger, bininteger, octinteger, hexinteger\n // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals\n // optionally \"long\" in Python 2\n // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals\n // decinteger is optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: '\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\\\b'\n },\n {\n begin: '\\\\b0[bB](_?[01])+[lL]?\\\\b'\n },\n {\n begin: '\\\\b0[oO](_?[0-7])+[lL]?\\\\b'\n },\n {\n begin: '\\\\b0[xX](_?[0-9a-fA-F])+[lL]?\\\\b'\n },\n\n // imagnumber (digitpart-based)\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b(${digitpart})[jJ]\\\\b`\n }\n ]\n };\n const COMMENT_TYPE = {\n className: \"comment\",\n begin: regex.lookahead(/# type:/),\n end: /$/,\n keywords: KEYWORDS,\n contains: [\n { // prevent keywords from coloring `type`\n begin: /# type:/\n },\n // comment within a datatype comment includes no keywords\n {\n begin: /#/,\n end: /\\b\\B/,\n endsWithParent: true\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n variants: [\n // Exclude params in functions without params\n {\n className: \"\",\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n PROMPT,\n NUMBER,\n STRING,\n hljs.HASH_COMMENT_MODE\n ]\n }\n ]\n };\n SUBST.contains = [\n STRING,\n NUMBER,\n PROMPT\n ];\n\n return {\n name: 'Python',\n aliases: [\n 'py',\n 'gyp',\n 'ipython'\n ],\n unicodeRegex: true,\n keywords: KEYWORDS,\n illegal: /(<\\/|->|\\?)|=>/,\n contains: [\n PROMPT,\n NUMBER,\n {\n // very common convention\n begin: /\\bself\\b/\n },\n {\n // eat \"if\" prior to string so that it won't accidentally be\n // labeled as an f-string\n beginKeywords: \"if\",\n relevance: 0\n },\n STRING,\n COMMENT_TYPE,\n hljs.HASH_COMMENT_MODE,\n {\n match: [\n /def/, /\\s+/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [ PARAMS ]\n },\n {\n variants: [\n {\n match: [\n /class/, /\\s+/,\n IDENT_RE, /\\s*/,\n /\\(\\s*/, IDENT_RE,/\\s*\\)/\n ],\n },\n {\n match: [\n /class/, /\\s+/,\n IDENT_RE\n ],\n }\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 6: \"title.class.inherited\",\n }\n },\n {\n className: 'meta',\n begin: /^[\\t ]*@/,\n end: /(?=#)|$/,\n contains: [\n NUMBER,\n PARAMS,\n STRING\n ]\n }\n ]\n };\n}\n\nmodule.exports = python;\n"],"names":["module","exports","hljs","IDENTIFIER_RE","CLASS_KEYWORDS","$pattern","keyword","name","aliases","keywords","literal","built_in","illegal","contains","className","begin","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","C_NUMBER_MODE","QUOTE_STRING_MODE","APOS_STRING_MODE","variants","end","BACKSLASH_ESCAPE","relevance","inherit","join","excludeEnd","UNDERSCORE_TITLE_MODE","UNDERSCORE_IDENT_RE","COMMENT","SPECIAL_VARS","NUMBERS","STRING","FUNCTIONS","beginKeywords","OXYGENE_KEYWORDS","CURLY_COMMENT","PAREN_COMMENT","CHAR_STRING","FUNCTION","TITLE_MODE","case_insensitive","NUMBER_MODE","CURLY_SUBCOMMENT","subLanguage","regex","REGEX_MODIFIERS","PERL_KEYWORDS","SUBST","METHOD","VAR","concat","STRING_CONTAINS","REGEX_DELIMS","PAIRED_DOUBLE_RE","prefix","open","close","middle","PAIRED_RE","PERL_DEFAULT_CONTAINS","HASH_COMMENT_MODE","endsWithParent","RE_STARTERS_RE","either","capture","COMMENT_MODE","DOLLAR_STRING","TYPES","TYPES_RE","trim","split","map","val","FUNCTIONS_RE","supersetOf","SQL_KW","SQL_BI","returnEnd","type","C_NUMBER_RE","replace","END_SAME_AS_BEGIN","skip","VARIABLE","PREPROCESSOR","SINGLE_QUOTED","DOUBLE_QUOTED","HEREDOC","NUMBER","KEYWORDS","endsParent","excludeBegin","disableAutodetect","meta","IDENT_RE","BACKTICK_ESCAPE","QUOTE_STRING","APOS_STRING","PS_COMMENT","CMDLETS","PS_CLASS","PS_FUNCTION","returnBegin","PS_USING","PS_ARGUMENTS","PS_METHODS","toString","GENTLEMANS_SET","PS_TYPE","unshift","BUILT_INS","IDENT","FUNC_NAME","match","lookahead","NEW_CLASS","PROPERTY","CLASS","title","variable","PARENTED","LIST","LINE_COMMENT","PHRASAL_WORDS_MODE","BACKTICK_STRING","inner","WS0","EQUAL_DELIM","WS_DELIM","KEY","DELIM_AND_VALUE","starts","TITLE","PROMPT","LITERAL_BRACKET","digitpart","pointfloat","COMMENT_TYPE","PARAMS","unicodeRegex","scope"],"sourceRoot":""} \ No newline at end of file diff --git a/js/236.js b/js/236.js new file mode 100644 index 00000000..89022120 --- /dev/null +++ b/js/236.js @@ -0,0 +1,3 @@ +/*! For license information please see 236.js.LICENSE.txt */ +(globalThis.webpackChunksakurairo_scripts=globalThis.webpackChunksakurairo_scripts||[]).push([[236],{236:(e,t,a)=>{a.r(t);var s=a(6129),n=a.n(s);a(3822),a(2936),a(7058),a(4708);window.Prism=n()},3822:()=>{!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e={javascript:"clike",actionscript:"javascript",apex:["clike","sql"],arduino:"cpp",aspnet:["markup","csharp"],birb:"clike",bison:"c",c:"clike",csharp:"clike",cpp:"c",cfscript:"clike",chaiscript:["clike","cpp"],coffeescript:"javascript",crystal:"ruby","css-extras":"css",d:"clike",dart:"clike",django:"markup-templating",ejs:["javascript","markup-templating"],etlua:["lua","markup-templating"],erb:["ruby","markup-templating"],fsharp:"clike","firestore-security-rules":"clike",flow:"javascript",ftl:"markup-templating",gml:"clike",glsl:"c",go:"clike",groovy:"clike",haml:"ruby",handlebars:"markup-templating",haxe:"clike",hlsl:"c",idris:"haskell",java:"clike",javadoc:["markup","java","javadoclike"],jolie:"clike",jsdoc:["javascript","javadoclike","typescript"],"js-extras":"javascript",json5:"json",jsonp:"json","js-templates":"javascript",kotlin:"clike",latte:["clike","markup-templating","php"],less:"css",lilypond:"scheme",liquid:"markup-templating",markdown:"markup","markup-templating":"markup",mongodb:"javascript",n4js:"javascript",objectivec:"c",opencl:"c",parser:"markup",php:"markup-templating",phpdoc:["php","javadoclike"],"php-extras":"php",plsql:"sql",processing:"clike",protobuf:"clike",pug:["markup","javascript"],purebasic:"clike",purescript:"haskell",qsharp:"clike",qml:"javascript",qore:"clike",racket:"scheme",cshtml:["markup","csharp"],jsx:["markup","javascript"],tsx:["jsx","typescript"],reason:"clike",ruby:"clike",sass:"css",scss:"css",scala:"java","shell-session":"bash",smarty:"markup-templating",solidity:"clike",soy:"markup-templating",sparql:"turtle",sqf:"clike",squirrel:"clike","t4-cs":["t4-templating","csharp"],"t4-vb":["t4-templating","vbnet"],tap:"yaml",tt2:["clike","markup-templating"],textile:"markup",twig:"markup-templating",typescript:"javascript",v:"clike",vala:"clike",vbnet:"basic",velocity:"markup",wiki:"markup",xeora:"markup","xml-doc":"markup",xquery:"markup"},t={html:"markup",xml:"markup",svg:"markup",mathml:"markup",ssml:"markup",atom:"markup",rss:"markup",js:"javascript",g4:"antlr4",ino:"arduino",adoc:"asciidoc",avs:"avisynth",avdl:"avro-idl",shell:"bash",shortcode:"bbcode",rbnf:"bnf",oscript:"bsl",cs:"csharp",dotnet:"csharp",cfc:"cfscript",coffee:"coffeescript",conc:"concurnas",jinja2:"django","dns-zone":"dns-zone-file",dockerfile:"docker",gv:"dot",eta:"ejs",xlsx:"excel-formula",xls:"excel-formula",gamemakerlanguage:"gml",gni:"gn","go-mod":"go-module",hbs:"handlebars",hs:"haskell",idr:"idris",gitignore:"ignore",hgignore:"ignore",npmignore:"ignore",webmanifest:"json",kt:"kotlin",kts:"kotlin",kum:"kumir",tex:"latex",context:"latex",ly:"lilypond",emacs:"lisp",elisp:"lisp","emacs-lisp":"lisp",md:"markdown",moon:"moonscript",n4jsd:"n4js",nani:"naniscript",objc:"objectivec",qasm:"openqasm",objectpascal:"pascal",px:"pcaxis",pcode:"peoplecode",pq:"powerquery",mscript:"powerquery",pbfasm:"purebasic",purs:"purescript",py:"python",qs:"qsharp",rkt:"racket",razor:"cshtml",rpy:"renpy",robot:"robotframework",rb:"ruby","sh-session":"shell-session",shellsession:"shell-session",smlnj:"sml",sol:"solidity",sln:"solution-file",rq:"sparql",t4:"t4-cs",trickle:"tremor",troy:"tremor",trig:"turtle",ts:"typescript",tsconfig:"typoscript",uscript:"unrealscript",uc:"unrealscript",url:"uri",vb:"visual-basic",vba:"visual-basic",webidl:"web-idl",mathematica:"wolfram",nb:"wolfram",wl:"wolfram",xeoracube:"xeora",yml:"yaml"},a={},s="components/",n=Prism.util.currentScript();if(n){var r=/\bplugins\/autoloader\/prism-autoloader\.(?:min\.)?js(?:\?[^\r\n/]*)?$/i,i=/(^|\/)[\w-]+\.(?:min\.)?js(?:\?[^\r\n/]*)?$/i,o=n.getAttribute("data-autoloader-path");if(null!=o)s=o.trim().replace(/\/?$/,"/");else{var l=n.src;r.test(l)?s=l.replace(r,"components/"):i.test(l)&&(s=l.replace(i,"$1components/"))}}var u=Prism.plugins.autoloader={languages_path:s,use_minified:!0,loadLanguages:g};Prism.hooks.add("complete",(function(e){var t=e.element,a=e.language;if(t&&a&&"none"!==a){var s=function(e){var t=(e.getAttribute("data-dependencies")||"").trim();if(!t){var a=e.parentElement;a&&"pre"===a.tagName.toLowerCase()&&(t=(a.getAttribute("data-dependencies")||"").trim())}return t?t.split(/\s*,\s*/g):[]}(t);/^diff-./i.test(a)?(s.push("diff"),s.push(a.substr("diff-".length))):s.push(a),s.every(c)||g(s,(function(){Prism.highlightElement(t)}))}}))}function c(e){if(e.indexOf("!")>=0)return!1;if((e=t[e]||e)in Prism.languages)return!0;var s=a[e];return s&&!s.error&&!1===s.loading}function g(s,n,r){"string"==typeof s&&(s=[s]);var i=s.length,o=0,l=!1;function d(){l||++o===i&&n&&n(s)}0!==i?s.forEach((function(s){!function(s,n,r){var i=s.indexOf("!")>=0;function o(){var e=a[s];e||(e=a[s]={callbacks:[]}),e.callbacks.push({success:n,error:r}),!i&&c(s)?p(s,"success"):!i&&e.error?p(s,"error"):!i&&e.loading||(e.loading=!0,e.error=!1,function(e,t,a){var s=document.createElement("script");s.src=e,s.async=!0,s.onload=function(){document.body.removeChild(s),t&&t()},s.onerror=function(){document.body.removeChild(s),a&&a()},document.body.appendChild(s)}(function(e){return u.languages_path+"prism-"+e+(u.use_minified?".min":"")+".js"}(s),(function(){e.loading=!1,p(s,"success")}),(function(){e.loading=!1,e.error=!0,p(s,"error")})))}s=s.replace("!","");var l=e[s=t[s]||s];l&&l.length?g(l,o,r):o()}(s,d,(function(){l||(l=!0,r&&r(s))}))})):n&&setTimeout(n,0)}function p(e,t){if(a[e]){for(var s=a[e].callbacks,n=0,r=s.length;n{!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document&&Function.prototype.bind){var e,t,a={gradient:{create:(e={},t=function(t){if(e[t])return e[t];var a=t.match(/^(\b|\B-[a-z]{1,10}-)((?:repeating-)?(?:linear|radial)-gradient)/),s=a&&a[1],n=a&&a[2],r=t.replace(/^(?:\b|\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\(|\)$/g,"").split(/\s*,\s*/);return n.indexOf("linear")>=0?e[t]=function(e,t,a){var s="180deg";return/^(?:-?(?:\d+(?:\.\d+)?|\.\d+)(?:deg|rad)|to\b|top|right|bottom|left)/.test(a[0])&&(s=a.shift()).indexOf("to ")<0&&(s.indexOf("top")>=0?s=s.indexOf("left")>=0?"to bottom right":s.indexOf("right")>=0?"to bottom left":"to bottom":s.indexOf("bottom")>=0?s=s.indexOf("left")>=0?"to top right":s.indexOf("right")>=0?"to top left":"to top":s.indexOf("left")>=0?s="to right":s.indexOf("right")>=0?s="to left":e&&(s.indexOf("deg")>=0?s=90-parseFloat(s)+"deg":s.indexOf("rad")>=0&&(s=Math.PI/2-parseFloat(s)+"rad"))),t+"("+s+","+a.join(",")+")"}(s,n,r):n.indexOf("radial")>=0?e[t]=function(e,t,a){if(a[0].indexOf("at")<0){var s="center",n="ellipse",r="farthest-corner";if(/\b(?:bottom|center|left|right|top)\b|^\d+/.test(a[0])&&(s=a.shift().replace(/\s*-?\d+(?:deg|rad)\s*/,"")),/\b(?:circle|closest|contain|cover|ellipse|farthest)\b/.test(a[0])){var i=a.shift().split(/\s+/);!i[0]||"circle"!==i[0]&&"ellipse"!==i[0]||(n=i.shift()),i[0]&&(r=i.shift()),"cover"===r?r="farthest-corner":"contain"===r&&(r="clothest-side")}return t+"("+n+" "+r+" at "+s+","+a.join(",")+")"}return t+"("+a.join(",")+")"}(0,n,r):e[t]=n+"("+r.join(",")+")"},function(){new Prism.plugins.Previewer("gradient",(function(e){return this.firstChild.style.backgroundImage="",this.firstChild.style.backgroundImage=t(e),!!this.firstChild.style.backgroundImage}),"*",(function(){this._elt.innerHTML="
"}))}),tokens:{gradient:{pattern:/(?:\b|\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\((?:(?:hsl|rgb)a?\(.+?\)|[^\)])+\)/gi,inside:{function:/[\w-]+(?=\()/,punctuation:/[(),]/}}},languages:{css:!0,less:!0,sass:[{lang:"sass",before:"punctuation",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]},{lang:"sass",before:"punctuation",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]}],scss:!0,stylus:[{lang:"stylus",before:"func",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"func",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}},angle:{create:function(){new Prism.plugins.Previewer("angle",(function(e){var t,a,s=parseFloat(e),n=e.match(/[a-z]+$/i);if(!s||!n)return!1;switch(n=n[0]){case"deg":t=360;break;case"grad":t=400;break;case"rad":t=2*Math.PI;break;case"turn":t=1}return a=100*s/t,a%=100,this[(s<0?"set":"remove")+"Attribute"]("data-negative",""),this.querySelector("circle").style.strokeDasharray=Math.abs(a)+",500",!0}),"*",(function(){this._elt.innerHTML=''}))},tokens:{angle:/(?:\b|\B-|(?=\B\.))(?:\d+(?:\.\d+)?|\.\d+)(?:deg|g?rad|turn)\b/i},languages:{css:!0,less:!0,markup:{lang:"markup",before:"punctuation",inside:"inside",root:Prism.languages.markup&&Prism.languages.markup.tag.inside["attr-value"]},sass:[{lang:"sass",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]},{lang:"sass",before:"operator",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]}],scss:!0,stylus:[{lang:"stylus",before:"func",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"func",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}},color:{create:function(){new Prism.plugins.Previewer("color",(function(e){return this.style.backgroundColor="",this.style.backgroundColor=e,!!this.style.backgroundColor}))},tokens:{color:[Prism.languages.css.hexcode].concat(Prism.languages.css.color)},languages:{css:!1,less:!0,markup:{lang:"markup",before:"punctuation",inside:"inside",root:Prism.languages.markup&&Prism.languages.markup.tag.inside["attr-value"]},sass:[{lang:"sass",before:"punctuation",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]},{lang:"sass",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]}],scss:!1,stylus:[{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}},easing:{create:function(){new Prism.plugins.Previewer("easing",(function(e){var t=(e={linear:"0,0,1,1",ease:".25,.1,.25,1","ease-in":".42,0,1,1","ease-out":"0,0,.58,1","ease-in-out":".42,0,.58,1"}[e]||e).match(/-?(?:\d+(?:\.\d+)?|\.\d+)/g);if(4===t.length){t=t.map((function(e,t){return 100*(t%2?1-e:e)})),this.querySelector("path").setAttribute("d","M0,100 C"+t[0]+","+t[1]+", "+t[2]+","+t[3]+", 100,0");var a=this.querySelectorAll("line");return a[0].setAttribute("x2",t[0]),a[0].setAttribute("y2",t[1]),a[1].setAttribute("x2",t[2]),a[1].setAttribute("y2",t[3]),!0}return!1}),"*",(function(){this._elt.innerHTML=''}))},tokens:{easing:{pattern:/\bcubic-bezier\((?:-?(?:\d+(?:\.\d+)?|\.\d+),\s*){3}-?(?:\d+(?:\.\d+)?|\.\d+)\)\B|\b(?:ease(?:-in)?(?:-out)?|linear)(?=\s|[;}]|$)/i,inside:{function:/[\w-]+(?=\()/,punctuation:/[(),]/}}},languages:{css:!0,less:!0,sass:[{lang:"sass",inside:"inside",before:"punctuation",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]},{lang:"sass",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]}],scss:!0,stylus:[{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}},time:{create:function(){new Prism.plugins.Previewer("time",(function(e){var t=parseFloat(e),a=e.match(/[a-z]+$/i);return!(!t||!a)&&(a=a[0],this.querySelector("circle").style.animationDuration=2*t+a,!0)}),"*",(function(){this._elt.innerHTML=''}))},tokens:{time:/(?:\b|\B-|(?=\B\.))(?:\d+(?:\.\d+)?|\.\d+)m?s\b/i},languages:{css:!0,less:!0,markup:{lang:"markup",before:"punctuation",inside:"inside",root:Prism.languages.markup&&Prism.languages.markup.tag.inside["attr-value"]},sass:[{lang:"sass",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]},{lang:"sass",before:"operator",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]}],scss:!0,stylus:[{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}}},s="token",n="active",r="flipped",i=function(e,t,a,s){this._elt=null,this._type=e,this._token=null,this.updater=t,this._mouseout=this.mouseout.bind(this),this.initializer=s;var n=this;a||(a=["*"]),Array.isArray(a)||(a=[a]),a.forEach((function(e){"string"!=typeof e&&(e=e.lang),i.byLanguages[e]||(i.byLanguages[e]=[]),i.byLanguages[e].indexOf(n)<0&&i.byLanguages[e].push(n)})),i.byType[e]=this};for(var o in i.prototype.init=function(){this._elt||(this._elt=document.createElement("div"),this._elt.className="prism-previewer prism-previewer-"+this._type,document.body.appendChild(this._elt),this.initializer&&this.initializer())},i.prototype.isDisabled=function(e){do{if(e.hasAttribute&&e.hasAttribute("data-previewers"))return-1===(e.getAttribute("data-previewers")||"").split(/\s+/).indexOf(this._type)}while(e=e.parentNode);return!1},i.prototype.check=function(e){if(!e.classList.contains(s)||!this.isDisabled(e)){do{if(e.classList&&e.classList.contains(s)&&e.classList.contains(this._type))break}while(e=e.parentNode);e&&e!==this._token&&(this._token=e,this.show())}},i.prototype.mouseout=function(){this._token.removeEventListener("mouseout",this._mouseout,!1),this._token=null,this.hide()},i.prototype.show=function(){var e,t,a,s,i;if(this._elt||this.init(),this._token)if(this.updater.call(this._elt,this._token.textContent)){this._token.addEventListener("mouseout",this._mouseout,!1);var o=(e=this._token,t=e.getBoundingClientRect(),a=t.left,s=t.top,i=document.documentElement.getBoundingClientRect(),a-=i.left,{top:s-=i.top,right:innerWidth-a-t.width,bottom:innerHeight-s-t.height,left:a,width:t.width,height:t.height});this._elt.classList.add(n),o.top-this._elt.offsetHeight>0?(this._elt.classList.remove(r),this._elt.style.top=o.top+"px",this._elt.style.bottom=""):(this._elt.classList.add(r),this._elt.style.bottom=o.bottom+"px",this._elt.style.top=""),this._elt.style.left=o.left+Math.min(200,o.width/2)+"px"}else this.hide()},i.prototype.hide=function(){this._elt.classList.remove(n)},i.byLanguages={},i.byType={},i.initEvents=function(e,t){var a=[];i.byLanguages[t]&&(a=a.concat(i.byLanguages[t])),i.byLanguages["*"]&&(a=a.concat(i.byLanguages["*"])),e.addEventListener("mouseover",(function(e){var t=e.target;a.forEach((function(e){e.check(t)}))}),!1)},Prism.plugins.Previewer=i,Prism.hooks.add("before-highlight",(function(e){for(var t in a){var s=a[t].languages;if(e.language&&s[e.language]&&!s[e.language].initialized){var n=s[e.language];Array.isArray(n)||(n=[n]),n.forEach((function(n){var r,i,o,l;!0===n?(r="important",i=e.language,n=e.language):(r=n.before||"important",i=n.inside||n.lang,o=n.root||Prism.languages,l=n.skip,n=e.language),!l&&Prism.languages[n]&&(Prism.languages.insertBefore(i,r,a[t].tokens,o),e.grammar=Prism.languages[n],s[e.language]={initialized:!0})}))}}})),Prism.hooks.add("after-highlight",(function(e){(i.byLanguages["*"]||i.byLanguages[e.language])&&i.initEvents(e.element,e.language)})),a)a[o].create()}}()},4708:()=>{!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document)if(Prism.plugins.toolbar){var e={none:"Plain text",plain:"Plain text",plaintext:"Plain text",text:"Plain text",txt:"Plain text",html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",rss:"RSS",css:"CSS",clike:"C-like",js:"JavaScript",abap:"ABAP",abnf:"ABNF",al:"AL",antlr4:"ANTLR4",g4:"ANTLR4",apacheconf:"Apache Configuration",apl:"APL",aql:"AQL",ino:"Arduino",arff:"ARFF",asciidoc:"AsciiDoc",adoc:"AsciiDoc",aspnet:"ASP.NET (C#)",asm6502:"6502 Assembly",asmatmel:"Atmel AVR Assembly",autohotkey:"AutoHotkey",autoit:"AutoIt",avisynth:"AviSynth",avs:"AviSynth","avro-idl":"Avro IDL",avdl:"Avro IDL",basic:"BASIC",bbcode:"BBcode",bnf:"BNF",rbnf:"RBNF",bsl:"BSL (1C:Enterprise)",oscript:"OneScript",csharp:"C#",cs:"C#",dotnet:"C#",cpp:"C++",cfscript:"CFScript",cfc:"CFScript",cil:"CIL",cmake:"CMake",cobol:"COBOL",coffee:"CoffeeScript",conc:"Concurnas",csp:"Content-Security-Policy","css-extras":"CSS Extras",csv:"CSV",dataweave:"DataWeave",dax:"DAX",django:"Django/Jinja2",jinja2:"Django/Jinja2","dns-zone-file":"DNS zone file","dns-zone":"DNS zone file",dockerfile:"Docker",dot:"DOT (Graphviz)",gv:"DOT (Graphviz)",ebnf:"EBNF",editorconfig:"EditorConfig",ejs:"EJS",etlua:"Embedded Lua templating",erb:"ERB","excel-formula":"Excel Formula",xlsx:"Excel Formula",xls:"Excel Formula",fsharp:"F#","firestore-security-rules":"Firestore security rules",ftl:"FreeMarker Template Language",gml:"GameMaker Language",gamemakerlanguage:"GameMaker Language",gap:"GAP (CAS)",gcode:"G-code",gdscript:"GDScript",gedcom:"GEDCOM",glsl:"GLSL",gn:"GN",gni:"GN","go-module":"Go module","go-mod":"Go module",graphql:"GraphQL",hbs:"Handlebars",hs:"Haskell",hcl:"HCL",hlsl:"HLSL",http:"HTTP",hpkp:"HTTP Public-Key-Pins",hsts:"HTTP Strict-Transport-Security",ichigojam:"IchigoJam","icu-message-format":"ICU Message Format",idr:"Idris",ignore:".ignore",gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore",inform7:"Inform 7",javadoc:"JavaDoc",javadoclike:"JavaDoc-like",javastacktrace:"Java stack trace",jq:"JQ",jsdoc:"JSDoc","js-extras":"JS Extras",json:"JSON",webmanifest:"Web App Manifest",json5:"JSON5",jsonp:"JSONP",jsstacktrace:"JS stack trace","js-templates":"JS Templates",keepalived:"Keepalived Configure",kts:"Kotlin Script",kt:"Kotlin",kumir:"KuMir (КуМир)",kum:"KuMir (КуМир)",latex:"LaTeX",tex:"TeX",context:"ConTeXt",lilypond:"LilyPond",ly:"LilyPond",emacs:"Lisp",elisp:"Lisp","emacs-lisp":"Lisp",llvm:"LLVM IR",log:"Log file",lolcode:"LOLCODE",magma:"Magma (CAS)",md:"Markdown","markup-templating":"Markup templating",matlab:"MATLAB",maxscript:"MAXScript",mel:"MEL",mongodb:"MongoDB",moon:"MoonScript",n1ql:"N1QL",n4js:"N4JS",n4jsd:"N4JS","nand2tetris-hdl":"Nand To Tetris HDL",naniscript:"Naninovel Script",nani:"Naninovel Script",nasm:"NASM",neon:"NEON",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",objc:"Objective-C",ocaml:"OCaml",opencl:"OpenCL",openqasm:"OpenQasm",qasm:"OpenQasm",parigp:"PARI/GP",objectpascal:"Object Pascal",psl:"PATROL Scripting Language",pcaxis:"PC-Axis",px:"PC-Axis",peoplecode:"PeopleCode",pcode:"PeopleCode",php:"PHP",phpdoc:"PHPDoc","php-extras":"PHP Extras",plsql:"PL/SQL",powerquery:"PowerQuery",pq:"PowerQuery",mscript:"PowerQuery",powershell:"PowerShell",promql:"PromQL",properties:".properties",protobuf:"Protocol Buffers",purebasic:"PureBasic",pbfasm:"PureBasic",purs:"PureScript",py:"Python",qsharp:"Q#",qs:"Q#",q:"Q (kdb+ database)",qml:"QML",rkt:"Racket",cshtml:"Razor C#",razor:"Razor C#",jsx:"React JSX",tsx:"React TSX",renpy:"Ren'py",rpy:"Ren'py",rest:"reST (reStructuredText)",robotframework:"Robot Framework",robot:"Robot Framework",rb:"Ruby",sas:"SAS",sass:"Sass (Sass)",scss:"Sass (Scss)","shell-session":"Shell session","sh-session":"Shell session",shellsession:"Shell session",sml:"SML",smlnj:"SML/NJ",solidity:"Solidity (Ethereum)",sol:"Solidity (Ethereum)","solution-file":"Solution file",sln:"Solution file",soy:"Soy (Closure Template)",sparql:"SPARQL",rq:"SPARQL","splunk-spl":"Splunk SPL",sqf:"SQF: Status Quo Function (Arma 3)",sql:"SQL",iecst:"Structured Text (IEC 61131-3)",systemd:"Systemd configuration file","t4-templating":"T4 templating","t4-cs":"T4 Text Templates (C#)",t4:"T4 Text Templates (C#)","t4-vb":"T4 Text Templates (VB)",tap:"TAP",tt2:"Template Toolkit 2",toml:"TOML",trickle:"trickle",troy:"troy",trig:"TriG",ts:"TypeScript",tsconfig:"TSConfig",uscript:"UnrealScript",uc:"UnrealScript",uri:"URI",url:"URL",vbnet:"VB.Net",vhdl:"VHDL",vim:"vim","visual-basic":"Visual Basic",vba:"VBA",vb:"Visual Basic",wasm:"WebAssembly","web-idl":"Web IDL",webidl:"Web IDL",wiki:"Wiki markup",wolfram:"Wolfram language",nb:"Mathematica Notebook",wl:"Wolfram language",xeoracube:"XeoraCube","xml-doc":"XML doc (.net)",xojo:"Xojo (REALbasic)",xquery:"XQuery",yaml:"YAML",yml:"YAML",yang:"YANG"};Prism.plugins.toolbar.registerButton("show-language",(function(t){var a=t.element.parentNode;if(a&&/pre/i.test(a.nodeName)){var s,n=a.getAttribute("data-language")||e[t.language]||((s=t.language)?(s.substring(0,1).toUpperCase()+s.substring(1)).replace(/s(?=cript)/,"S"):s);if(n){var r=document.createElement("span");return r.textContent=n,r}}}))}else console.warn("Show Languages plugin loaded before Toolbar plugin.")}()},7058:()=>{!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e=[],t={},a=function(){};Prism.plugins.toolbar={};var s=Prism.plugins.toolbar.registerButton=function(a,s){var n;n="function"==typeof s?s:function(e){var t;return"function"==typeof s.onClick?((t=document.createElement("button")).type="button",t.addEventListener("click",(function(){s.onClick.call(this,e)}))):"string"==typeof s.url?(t=document.createElement("a")).href=s.url:t=document.createElement("span"),s.className&&t.classList.add(s.className),t.textContent=s.text,t},a in t?console.warn('There is a button with the key "'+a+'" registered already.'):e.push(t[a]=n)},n=Prism.plugins.toolbar.hook=function(s){var n=s.element.parentNode;if(n&&/pre/i.test(n.nodeName)&&!n.parentNode.classList.contains("code-toolbar")){var r=document.createElement("div");r.classList.add("code-toolbar"),n.parentNode.insertBefore(r,n),r.appendChild(n);var i=document.createElement("div");i.classList.add("toolbar");var o=e,l=function(e){for(;e;){var t=e.getAttribute("data-toolbar-order");if(null!=t)return(t=t.trim()).length?t.split(/\s*,\s*/g):[];e=e.parentElement}}(s.element);l&&(o=l.map((function(e){return t[e]||a}))),o.forEach((function(e){var t=e(s);if(t){var a=document.createElement("div");a.classList.add("toolbar-item"),a.appendChild(t),i.appendChild(a)}})),r.appendChild(i)}};s("label",(function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-label")){var a,s,n=t.getAttribute("data-label");try{s=document.querySelector("template#"+n)}catch(e){}return s?a=s.content:(t.hasAttribute("data-url")?(a=document.createElement("a")).href=t.getAttribute("data-url"):a=document.createElement("span"),a.textContent=n),a}})),Prism.hooks.add("complete",n)}}()},6129:(e,t,a)=>{var s=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,a=0,s={},n={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof r?new r(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=g.reach);A+=w.value.length,w=w.next){var P=w.value;if(t.length>e.length)return;if(!(P instanceof r)){var S,F=1;if(v){if(!(S=i(x,A,e,b))||S.index>=e.length)break;var j=S.index,L=S.index+S[0].length,C=A;for(C+=w.value.length;j>=C;)C+=(w=w.next).value.length;if(A=C-=w.value.length,w.value instanceof r)continue;for(var E=w;E!==t.tail&&(Cg.reach&&(g.reach=O);var M=w.prev;if(T&&(M=u(t,M,T),A+=T.length),c(t,M,F),w=u(t,M,new r(p,f?n.tokenize(_,f):_,y,_)),$&&u(t,w,$),F>1){var N={cause:p+","+m,reach:O};o(e,t,a,w.prev,A,N),g&&N.reach>g.reach&&(g.reach=N.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function u(e,t,a){var s=t.next,n={value:a,prev:t,next:s};return t.next=n,s.prev=n,e.length++,n}function c(e,t,a){for(var s=t.next,n=0;n"+r.content+""},!e.document)return e.addEventListener?(n.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var a=JSON.parse(t.data),s=a.language,r=a.code,i=a.immediateClose;e.postMessage(n.highlight(r,n.languages[s],s)),i&&e.close()}),!1),n):n;var g=n.util.currentScript();function p(){n.manual||n.highlightAll()}if(g&&(n.filename=g.src,g.hasAttribute("data-manual")&&(n.manual=!0)),!n.manual){var d=document.readyState;"loading"===d||"interactive"===d&&g&&g.defer?document.addEventListener("DOMContentLoaded",p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return n}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=s),void 0!==a.g&&(a.g.Prism=s),s.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},s.languages.markup.tag.inside["attr-value"].inside.entity=s.languages.markup.entity,s.languages.markup.doctype.inside["internal-subset"].inside=s.languages.markup,s.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(s.languages.markup.tag,"addInlined",{value:function(e,t){var a={};a["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:s.languages[t]},a.cdata=/^$/i;var n={"included-cdata":{pattern://i,inside:a}};n["language-"+t]={pattern:/[\s\S]+/,inside:s.languages[t]};var r={};r[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},s.languages.insertBefore("markup","cdata",r)}}),Object.defineProperty(s.languages.markup.tag,"addAttribute",{value:function(e,t){s.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:s.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),s.languages.html=s.languages.markup,s.languages.mathml=s.languages.markup,s.languages.svg=s.languages.markup,s.languages.xml=s.languages.extend("markup",{}),s.languages.ssml=s.languages.xml,s.languages.atom=s.languages.xml,s.languages.rss=s.languages.xml,function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var a=e.languages.markup;a&&(a.tag.addInlined("style","css"),a.tag.addAttribute("style","css"))}(s),s.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},s.languages.javascript=s.languages.extend("clike",{"class-name":[s.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),s.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,s.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:s.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:s.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:s.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:s.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:s.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),s.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:s.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),s.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),s.languages.markup&&(s.languages.markup.tag.addInlined("script","javascript"),s.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),s.languages.js=s.languages.javascript,function(){if(void 0!==s&&"undefined"!=typeof document){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},t="data-src-status",a="loading",n="loaded",r='pre[data-src]:not([data-src-status="loaded"]):not([data-src-status="loading"])';s.hooks.add("before-highlightall",(function(e){e.selector+=", "+r})),s.hooks.add("before-sanity-check",(function(i){var o=i.element;if(o.matches(r)){i.code="",o.setAttribute(t,a);var l=o.appendChild(document.createElement("CODE"));l.textContent="Loading…";var u=o.getAttribute("data-src"),c=i.language;if("none"===c){var g=(/\.(\w+)$/.exec(u)||[,"none"])[1];c=e[g]||g}s.util.setLanguage(l,c),s.util.setLanguage(o,c);var p=s.plugins.autoloader;p&&p.loadLanguages(c),function(e,t,a){var s=new XMLHttpRequest;s.open("GET",e,!0),s.onreadystatechange=function(){4==s.readyState&&(s.status<400&&s.responseText?t(s.responseText):s.status>=400?a("✖ Error "+s.status+" while fetching file: "+s.statusText):a("✖ Error: File does not exist or is empty"))},s.send(null)}(u,(function(e){o.setAttribute(t,n);var a=function(e){var t=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||"");if(t){var a=Number(t[1]),s=t[2],n=t[3];return s?n?[a,Number(n)]:[a,void 0]:[a,a]}}(o.getAttribute("data-range"));if(a){var r=e.split(/\r\n?|\n/g),i=a[0],u=null==a[1]?r.length:a[1];i<0&&(i+=r.length),i=Math.max(0,Math.min(i-1,r.length)),u<0&&(u+=r.length),u=Math.max(0,Math.min(u,r.length)),e=r.slice(i,u).join("\n"),o.hasAttribute("data-start")||o.setAttribute("data-start",String(i+1))}l.textContent=e,s.highlightElement(l)}),(function(e){o.setAttribute(t,"failed"),l.textContent=e}))}})),s.plugins.fileHighlight={highlight:function(e){for(var t,a=(e||document).querySelectorAll(r),n=0;t=a[n++];)s.highlightElement(t)}};var i=!1;s.fileHighlight=function(){i||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),i=!0),s.plugins.fileHighlight.highlight.apply(this,arguments)}}}()}}]); +//# sourceMappingURL=236.js.map \ No newline at end of file diff --git a/js/953.js.LICENSE.txt b/js/236.js.LICENSE.txt similarity index 100% rename from js/953.js.LICENSE.txt rename to js/236.js.LICENSE.txt diff --git a/js/236.js.map b/js/236.js.map new file mode 100644 index 00000000..86aff671 --- /dev/null +++ b/js/236.js.map @@ -0,0 +1 @@ +{"version":3,"file":"236.js","mappings":"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","sources":["webpack://sakurairo-scripts/./src/page/prism_pack.js","webpack://sakurairo-scripts/./node_modules/_prismjs@1.26.0@prismjs/plugins/autoloader/prism-autoloader.js","webpack://sakurairo-scripts/./node_modules/_prismjs@1.26.0@prismjs/plugins/previewers/prism-previewers.js","webpack://sakurairo-scripts/./node_modules/_prismjs@1.26.0@prismjs/plugins/show-language/prism-show-language.js","webpack://sakurairo-scripts/./node_modules/_prismjs@1.26.0@prismjs/plugins/toolbar/prism-toolbar.js","webpack://sakurairo-scripts/./node_modules/_prismjs@1.26.0@prismjs/prism.js"],"sourcesContent":["import Prism from 'prismjs'\r\nwindow.Prism = Prism\r\n\r\nimport 'prismjs/plugins/autoloader/prism-autoloader'\r\nimport 'prismjs/plugins/previewers/prism-previewers'\r\nimport 'prismjs/plugins/toolbar/prism-toolbar'\r\nimport 'prismjs/plugins/show-language/prism-show-language'","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t/* eslint-disable */\n\n\t/**\n\t * The dependencies map is built automatically with gulp.\n\t *\n\t * @type {Object}\n\t */\n\tvar lang_dependencies = /*dependencies_placeholder[*/{\n\t\t\"javascript\": \"clike\",\n\t\t\"actionscript\": \"javascript\",\n\t\t\"apex\": [\n\t\t\t\"clike\",\n\t\t\t\"sql\"\n\t\t],\n\t\t\"arduino\": \"cpp\",\n\t\t\"aspnet\": [\n\t\t\t\"markup\",\n\t\t\t\"csharp\"\n\t\t],\n\t\t\"birb\": \"clike\",\n\t\t\"bison\": \"c\",\n\t\t\"c\": \"clike\",\n\t\t\"csharp\": \"clike\",\n\t\t\"cpp\": \"c\",\n\t\t\"cfscript\": \"clike\",\n\t\t\"chaiscript\": [\n\t\t\t\"clike\",\n\t\t\t\"cpp\"\n\t\t],\n\t\t\"coffeescript\": \"javascript\",\n\t\t\"crystal\": \"ruby\",\n\t\t\"css-extras\": \"css\",\n\t\t\"d\": \"clike\",\n\t\t\"dart\": \"clike\",\n\t\t\"django\": \"markup-templating\",\n\t\t\"ejs\": [\n\t\t\t\"javascript\",\n\t\t\t\"markup-templating\"\n\t\t],\n\t\t\"etlua\": [\n\t\t\t\"lua\",\n\t\t\t\"markup-templating\"\n\t\t],\n\t\t\"erb\": [\n\t\t\t\"ruby\",\n\t\t\t\"markup-templating\"\n\t\t],\n\t\t\"fsharp\": \"clike\",\n\t\t\"firestore-security-rules\": \"clike\",\n\t\t\"flow\": \"javascript\",\n\t\t\"ftl\": \"markup-templating\",\n\t\t\"gml\": \"clike\",\n\t\t\"glsl\": \"c\",\n\t\t\"go\": \"clike\",\n\t\t\"groovy\": \"clike\",\n\t\t\"haml\": \"ruby\",\n\t\t\"handlebars\": \"markup-templating\",\n\t\t\"haxe\": \"clike\",\n\t\t\"hlsl\": \"c\",\n\t\t\"idris\": \"haskell\",\n\t\t\"java\": \"clike\",\n\t\t\"javadoc\": [\n\t\t\t\"markup\",\n\t\t\t\"java\",\n\t\t\t\"javadoclike\"\n\t\t],\n\t\t\"jolie\": \"clike\",\n\t\t\"jsdoc\": [\n\t\t\t\"javascript\",\n\t\t\t\"javadoclike\",\n\t\t\t\"typescript\"\n\t\t],\n\t\t\"js-extras\": \"javascript\",\n\t\t\"json5\": \"json\",\n\t\t\"jsonp\": \"json\",\n\t\t\"js-templates\": \"javascript\",\n\t\t\"kotlin\": \"clike\",\n\t\t\"latte\": [\n\t\t\t\"clike\",\n\t\t\t\"markup-templating\",\n\t\t\t\"php\"\n\t\t],\n\t\t\"less\": \"css\",\n\t\t\"lilypond\": \"scheme\",\n\t\t\"liquid\": \"markup-templating\",\n\t\t\"markdown\": \"markup\",\n\t\t\"markup-templating\": \"markup\",\n\t\t\"mongodb\": \"javascript\",\n\t\t\"n4js\": \"javascript\",\n\t\t\"objectivec\": \"c\",\n\t\t\"opencl\": \"c\",\n\t\t\"parser\": \"markup\",\n\t\t\"php\": \"markup-templating\",\n\t\t\"phpdoc\": [\n\t\t\t\"php\",\n\t\t\t\"javadoclike\"\n\t\t],\n\t\t\"php-extras\": \"php\",\n\t\t\"plsql\": \"sql\",\n\t\t\"processing\": \"clike\",\n\t\t\"protobuf\": \"clike\",\n\t\t\"pug\": [\n\t\t\t\"markup\",\n\t\t\t\"javascript\"\n\t\t],\n\t\t\"purebasic\": \"clike\",\n\t\t\"purescript\": \"haskell\",\n\t\t\"qsharp\": \"clike\",\n\t\t\"qml\": \"javascript\",\n\t\t\"qore\": \"clike\",\n\t\t\"racket\": \"scheme\",\n\t\t\"cshtml\": [\n\t\t\t\"markup\",\n\t\t\t\"csharp\"\n\t\t],\n\t\t\"jsx\": [\n\t\t\t\"markup\",\n\t\t\t\"javascript\"\n\t\t],\n\t\t\"tsx\": [\n\t\t\t\"jsx\",\n\t\t\t\"typescript\"\n\t\t],\n\t\t\"reason\": \"clike\",\n\t\t\"ruby\": \"clike\",\n\t\t\"sass\": \"css\",\n\t\t\"scss\": \"css\",\n\t\t\"scala\": \"java\",\n\t\t\"shell-session\": \"bash\",\n\t\t\"smarty\": \"markup-templating\",\n\t\t\"solidity\": \"clike\",\n\t\t\"soy\": \"markup-templating\",\n\t\t\"sparql\": \"turtle\",\n\t\t\"sqf\": \"clike\",\n\t\t\"squirrel\": \"clike\",\n\t\t\"t4-cs\": [\n\t\t\t\"t4-templating\",\n\t\t\t\"csharp\"\n\t\t],\n\t\t\"t4-vb\": [\n\t\t\t\"t4-templating\",\n\t\t\t\"vbnet\"\n\t\t],\n\t\t\"tap\": \"yaml\",\n\t\t\"tt2\": [\n\t\t\t\"clike\",\n\t\t\t\"markup-templating\"\n\t\t],\n\t\t\"textile\": \"markup\",\n\t\t\"twig\": \"markup-templating\",\n\t\t\"typescript\": \"javascript\",\n\t\t\"v\": \"clike\",\n\t\t\"vala\": \"clike\",\n\t\t\"vbnet\": \"basic\",\n\t\t\"velocity\": \"markup\",\n\t\t\"wiki\": \"markup\",\n\t\t\"xeora\": \"markup\",\n\t\t\"xml-doc\": \"markup\",\n\t\t\"xquery\": \"markup\"\n\t}/*]*/;\n\n\tvar lang_aliases = /*aliases_placeholder[*/{\n\t\t\"html\": \"markup\",\n\t\t\"xml\": \"markup\",\n\t\t\"svg\": \"markup\",\n\t\t\"mathml\": \"markup\",\n\t\t\"ssml\": \"markup\",\n\t\t\"atom\": \"markup\",\n\t\t\"rss\": \"markup\",\n\t\t\"js\": \"javascript\",\n\t\t\"g4\": \"antlr4\",\n\t\t\"ino\": \"arduino\",\n\t\t\"adoc\": \"asciidoc\",\n\t\t\"avs\": \"avisynth\",\n\t\t\"avdl\": \"avro-idl\",\n\t\t\"shell\": \"bash\",\n\t\t\"shortcode\": \"bbcode\",\n\t\t\"rbnf\": \"bnf\",\n\t\t\"oscript\": \"bsl\",\n\t\t\"cs\": \"csharp\",\n\t\t\"dotnet\": \"csharp\",\n\t\t\"cfc\": \"cfscript\",\n\t\t\"coffee\": \"coffeescript\",\n\t\t\"conc\": \"concurnas\",\n\t\t\"jinja2\": \"django\",\n\t\t\"dns-zone\": \"dns-zone-file\",\n\t\t\"dockerfile\": \"docker\",\n\t\t\"gv\": \"dot\",\n\t\t\"eta\": \"ejs\",\n\t\t\"xlsx\": \"excel-formula\",\n\t\t\"xls\": \"excel-formula\",\n\t\t\"gamemakerlanguage\": \"gml\",\n\t\t\"gni\": \"gn\",\n\t\t\"go-mod\": \"go-module\",\n\t\t\"hbs\": \"handlebars\",\n\t\t\"hs\": \"haskell\",\n\t\t\"idr\": \"idris\",\n\t\t\"gitignore\": \"ignore\",\n\t\t\"hgignore\": \"ignore\",\n\t\t\"npmignore\": \"ignore\",\n\t\t\"webmanifest\": \"json\",\n\t\t\"kt\": \"kotlin\",\n\t\t\"kts\": \"kotlin\",\n\t\t\"kum\": \"kumir\",\n\t\t\"tex\": \"latex\",\n\t\t\"context\": \"latex\",\n\t\t\"ly\": \"lilypond\",\n\t\t\"emacs\": \"lisp\",\n\t\t\"elisp\": \"lisp\",\n\t\t\"emacs-lisp\": \"lisp\",\n\t\t\"md\": \"markdown\",\n\t\t\"moon\": \"moonscript\",\n\t\t\"n4jsd\": \"n4js\",\n\t\t\"nani\": \"naniscript\",\n\t\t\"objc\": \"objectivec\",\n\t\t\"qasm\": \"openqasm\",\n\t\t\"objectpascal\": \"pascal\",\n\t\t\"px\": \"pcaxis\",\n\t\t\"pcode\": \"peoplecode\",\n\t\t\"pq\": \"powerquery\",\n\t\t\"mscript\": \"powerquery\",\n\t\t\"pbfasm\": \"purebasic\",\n\t\t\"purs\": \"purescript\",\n\t\t\"py\": \"python\",\n\t\t\"qs\": \"qsharp\",\n\t\t\"rkt\": \"racket\",\n\t\t\"razor\": \"cshtml\",\n\t\t\"rpy\": \"renpy\",\n\t\t\"robot\": \"robotframework\",\n\t\t\"rb\": \"ruby\",\n\t\t\"sh-session\": \"shell-session\",\n\t\t\"shellsession\": \"shell-session\",\n\t\t\"smlnj\": \"sml\",\n\t\t\"sol\": \"solidity\",\n\t\t\"sln\": \"solution-file\",\n\t\t\"rq\": \"sparql\",\n\t\t\"t4\": \"t4-cs\",\n\t\t\"trickle\": \"tremor\",\n\t\t\"troy\": \"tremor\",\n\t\t\"trig\": \"turtle\",\n\t\t\"ts\": \"typescript\",\n\t\t\"tsconfig\": \"typoscript\",\n\t\t\"uscript\": \"unrealscript\",\n\t\t\"uc\": \"unrealscript\",\n\t\t\"url\": \"uri\",\n\t\t\"vb\": \"visual-basic\",\n\t\t\"vba\": \"visual-basic\",\n\t\t\"webidl\": \"web-idl\",\n\t\t\"mathematica\": \"wolfram\",\n\t\t\"nb\": \"wolfram\",\n\t\t\"wl\": \"wolfram\",\n\t\t\"xeoracube\": \"xeora\",\n\t\t\"yml\": \"yaml\"\n\t}/*]*/;\n\n\t/* eslint-enable */\n\n\t/**\n\t * @typedef LangDataItem\n\t * @property {{ success?: () => void, error?: () => void }[]} callbacks\n\t * @property {boolean} [error]\n\t * @property {boolean} [loading]\n\t */\n\t/** @type {Object} */\n\tvar lang_data = {};\n\n\tvar ignored_language = 'none';\n\tvar languages_path = 'components/';\n\n\tvar script = Prism.util.currentScript();\n\tif (script) {\n\t\tvar autoloaderFile = /\\bplugins\\/autoloader\\/prism-autoloader\\.(?:min\\.)?js(?:\\?[^\\r\\n/]*)?$/i;\n\t\tvar prismFile = /(^|\\/)[\\w-]+\\.(?:min\\.)?js(?:\\?[^\\r\\n/]*)?$/i;\n\n\t\tvar autoloaderPath = script.getAttribute('data-autoloader-path');\n\t\tif (autoloaderPath != null) {\n\t\t\t// data-autoloader-path is set, so just use it\n\t\t\tlanguages_path = autoloaderPath.trim().replace(/\\/?$/, '/');\n\t\t} else {\n\t\t\tvar src = script.src;\n\t\t\tif (autoloaderFile.test(src)) {\n\t\t\t\t// the script is the original autoloader script in the usual Prism project structure\n\t\t\t\tlanguages_path = src.replace(autoloaderFile, 'components/');\n\t\t\t} else if (prismFile.test(src)) {\n\t\t\t\t// the script is part of a bundle like a custom prism.js from the download page\n\t\t\t\tlanguages_path = src.replace(prismFile, '$1components/');\n\t\t\t}\n\t\t}\n\t}\n\n\tvar config = Prism.plugins.autoloader = {\n\t\tlanguages_path: languages_path,\n\t\tuse_minified: true,\n\t\tloadLanguages: loadLanguages\n\t};\n\n\n\t/**\n\t * Lazily loads an external script.\n\t *\n\t * @param {string} src\n\t * @param {() => void} [success]\n\t * @param {() => void} [error]\n\t */\n\tfunction addScript(src, success, error) {\n\t\tvar s = document.createElement('script');\n\t\ts.src = src;\n\t\ts.async = true;\n\t\ts.onload = function () {\n\t\t\tdocument.body.removeChild(s);\n\t\t\tsuccess && success();\n\t\t};\n\t\ts.onerror = function () {\n\t\t\tdocument.body.removeChild(s);\n\t\t\terror && error();\n\t\t};\n\t\tdocument.body.appendChild(s);\n\t}\n\n\t/**\n\t * Returns all additional dependencies of the given element defined by the `data-dependencies` attribute.\n\t *\n\t * @param {Element} element\n\t * @returns {string[]}\n\t */\n\tfunction getDependencies(element) {\n\t\tvar deps = (element.getAttribute('data-dependencies') || '').trim();\n\t\tif (!deps) {\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.tagName.toLowerCase() === 'pre') {\n\t\t\t\tdeps = (parent.getAttribute('data-dependencies') || '').trim();\n\t\t\t}\n\t\t}\n\t\treturn deps ? deps.split(/\\s*,\\s*/g) : [];\n\t}\n\n\t/**\n\t * Returns whether the given language is currently loaded.\n\t *\n\t * @param {string} lang\n\t * @returns {boolean}\n\t */\n\tfunction isLoaded(lang) {\n\t\tif (lang.indexOf('!') >= 0) {\n\t\t\t// forced reload\n\t\t\treturn false;\n\t\t}\n\n\t\tlang = lang_aliases[lang] || lang; // resolve alias\n\n\t\tif (lang in Prism.languages) {\n\t\t\t// the given language is already loaded\n\t\t\treturn true;\n\t\t}\n\n\t\t// this will catch extensions like CSS extras that don't add a grammar to Prism.languages\n\t\tvar data = lang_data[lang];\n\t\treturn data && !data.error && data.loading === false;\n\t}\n\n\t/**\n\t * Returns the path to a grammar, using the language_path and use_minified config keys.\n\t *\n\t * @param {string} lang\n\t * @returns {string}\n\t */\n\tfunction getLanguagePath(lang) {\n\t\treturn config.languages_path + 'prism-' + lang + (config.use_minified ? '.min' : '') + '.js';\n\t}\n\n\t/**\n\t * Loads all given grammars concurrently.\n\t *\n\t * @param {string[]|string} languages\n\t * @param {(languages: string[]) => void} [success]\n\t * @param {(language: string) => void} [error] This callback will be invoked on the first language to fail.\n\t */\n\tfunction loadLanguages(languages, success, error) {\n\t\tif (typeof languages === 'string') {\n\t\t\tlanguages = [languages];\n\t\t}\n\n\t\tvar total = languages.length;\n\t\tvar completed = 0;\n\t\tvar failed = false;\n\n\t\tif (total === 0) {\n\t\t\tif (success) {\n\t\t\t\tsetTimeout(success, 0);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tfunction successCallback() {\n\t\t\tif (failed) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcompleted++;\n\t\t\tif (completed === total) {\n\t\t\t\tsuccess && success(languages);\n\t\t\t}\n\t\t}\n\n\t\tlanguages.forEach(function (lang) {\n\t\t\tloadLanguage(lang, successCallback, function () {\n\t\t\t\tif (failed) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfailed = true;\n\t\t\t\terror && error(lang);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Loads a grammar with its dependencies.\n\t *\n\t * @param {string} lang\n\t * @param {() => void} [success]\n\t * @param {() => void} [error]\n\t */\n\tfunction loadLanguage(lang, success, error) {\n\t\tvar force = lang.indexOf('!') >= 0;\n\n\t\tlang = lang.replace('!', '');\n\t\tlang = lang_aliases[lang] || lang;\n\n\t\tfunction load() {\n\t\t\tvar data = lang_data[lang];\n\t\t\tif (!data) {\n\t\t\t\tdata = lang_data[lang] = {\n\t\t\t\t\tcallbacks: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tdata.callbacks.push({\n\t\t\t\tsuccess: success,\n\t\t\t\terror: error\n\t\t\t});\n\n\t\t\tif (!force && isLoaded(lang)) {\n\t\t\t\t// the language is already loaded and we aren't forced to reload\n\t\t\t\tlanguageCallback(lang, 'success');\n\t\t\t} else if (!force && data.error) {\n\t\t\t\t// the language failed to load before and we don't reload\n\t\t\t\tlanguageCallback(lang, 'error');\n\t\t\t} else if (force || !data.loading) {\n\t\t\t\t// the language isn't currently loading and/or we are forced to reload\n\t\t\t\tdata.loading = true;\n\t\t\t\tdata.error = false;\n\n\t\t\t\taddScript(getLanguagePath(lang), function () {\n\t\t\t\t\tdata.loading = false;\n\t\t\t\t\tlanguageCallback(lang, 'success');\n\n\t\t\t\t}, function () {\n\t\t\t\t\tdata.loading = false;\n\t\t\t\t\tdata.error = true;\n\t\t\t\t\tlanguageCallback(lang, 'error');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tvar dependencies = lang_dependencies[lang];\n\t\tif (dependencies && dependencies.length) {\n\t\t\tloadLanguages(dependencies, load, error);\n\t\t} else {\n\t\t\tload();\n\t\t}\n\t}\n\n\t/**\n\t * Runs all callbacks of the given type for the given language.\n\t *\n\t * @param {string} lang\n\t * @param {\"success\" | \"error\"} type\n\t */\n\tfunction languageCallback(lang, type) {\n\t\tif (lang_data[lang]) {\n\t\t\tvar callbacks = lang_data[lang].callbacks;\n\t\t\tfor (var i = 0, l = callbacks.length; i < l; i++) {\n\t\t\t\tvar callback = callbacks[i][type];\n\t\t\t\tif (callback) {\n\t\t\t\t\tsetTimeout(callback, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcallbacks.length = 0;\n\t\t}\n\t}\n\n\tPrism.hooks.add('complete', function (env) {\n\t\tvar element = env.element;\n\t\tvar language = env.language;\n\t\tif (!element || !language || language === ignored_language) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar deps = getDependencies(element);\n\t\tif (/^diff-./i.test(language)) {\n\t\t\t// the \"diff-xxxx\" format is used by the Diff Highlight plugin\n\t\t\tdeps.push('diff');\n\t\t\tdeps.push(language.substr('diff-'.length));\n\t\t} else {\n\t\t\tdeps.push(language);\n\t\t}\n\n\t\tif (!deps.every(isLoaded)) {\n\t\t\t// the language or some dependencies aren't loaded\n\t\t\tloadLanguages(deps, function () {\n\t\t\t\tPrism.highlightElement(element);\n\t\t\t});\n\t\t}\n\t});\n\n}());\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined' || !Function.prototype.bind) {\n\t\treturn;\n\t}\n\n\tvar previewers = {\n\t\t// gradient must be defined before color and angle\n\t\t'gradient': {\n\t\t\tcreate: (function () {\n\n\t\t\t\t// Stores already processed gradients so that we don't\n\t\t\t\t// make the conversion every time the previewer is shown\n\t\t\t\tvar cache = {};\n\n\t\t\t\t/**\n\t\t\t\t * Returns a W3C-valid linear gradient\n\t\t\t\t *\n\t\t\t\t * @param {string} prefix Vendor prefix if any (\"-moz-\", \"-webkit-\", etc.)\n\t\t\t\t * @param {string} func Gradient function name (\"linear-gradient\")\n\t\t\t\t * @param {string[]} values Array of the gradient function parameters ([\"0deg\", \"red 0%\", \"blue 100%\"])\n\t\t\t\t */\n\t\t\t\tvar convertToW3CLinearGradient = function (prefix, func, values) {\n\t\t\t\t\t// Default value for angle\n\t\t\t\t\tvar angle = '180deg';\n\n\t\t\t\t\tif (/^(?:-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:deg|rad)|to\\b|top|right|bottom|left)/.test(values[0])) {\n\t\t\t\t\t\tangle = values.shift();\n\t\t\t\t\t\tif (angle.indexOf('to ') < 0) {\n\t\t\t\t\t\t\t// Angle uses old keywords\n\t\t\t\t\t\t\t// W3C syntax uses \"to\" + opposite keywords\n\t\t\t\t\t\t\tif (angle.indexOf('top') >= 0) {\n\t\t\t\t\t\t\t\tif (angle.indexOf('left') >= 0) {\n\t\t\t\t\t\t\t\t\tangle = 'to bottom right';\n\t\t\t\t\t\t\t\t} else if (angle.indexOf('right') >= 0) {\n\t\t\t\t\t\t\t\t\tangle = 'to bottom left';\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tangle = 'to bottom';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (angle.indexOf('bottom') >= 0) {\n\t\t\t\t\t\t\t\tif (angle.indexOf('left') >= 0) {\n\t\t\t\t\t\t\t\t\tangle = 'to top right';\n\t\t\t\t\t\t\t\t} else if (angle.indexOf('right') >= 0) {\n\t\t\t\t\t\t\t\t\tangle = 'to top left';\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tangle = 'to top';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (angle.indexOf('left') >= 0) {\n\t\t\t\t\t\t\t\tangle = 'to right';\n\t\t\t\t\t\t\t} else if (angle.indexOf('right') >= 0) {\n\t\t\t\t\t\t\t\tangle = 'to left';\n\t\t\t\t\t\t\t} else if (prefix) {\n\t\t\t\t\t\t\t\t// Angle is shifted by 90deg in prefixed gradients\n\t\t\t\t\t\t\t\tif (angle.indexOf('deg') >= 0) {\n\t\t\t\t\t\t\t\t\tangle = (90 - parseFloat(angle)) + 'deg';\n\t\t\t\t\t\t\t\t} else if (angle.indexOf('rad') >= 0) {\n\t\t\t\t\t\t\t\t\tangle = (Math.PI / 2 - parseFloat(angle)) + 'rad';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn func + '(' + angle + ',' + values.join(',') + ')';\n\t\t\t\t};\n\n\t\t\t\t/**\n\t\t\t\t * Returns a W3C-valid radial gradient\n\t\t\t\t *\n\t\t\t\t * @param {string} prefix Vendor prefix if any (\"-moz-\", \"-webkit-\", etc.)\n\t\t\t\t * @param {string} func Gradient function name (\"linear-gradient\")\n\t\t\t\t * @param {string[]} values Array of the gradient function parameters ([\"0deg\", \"red 0%\", \"blue 100%\"])\n\t\t\t\t */\n\t\t\t\tvar convertToW3CRadialGradient = function (prefix, func, values) {\n\t\t\t\t\tif (values[0].indexOf('at') < 0) {\n\t\t\t\t\t\t// Looks like old syntax\n\n\t\t\t\t\t\t// Default values\n\t\t\t\t\t\tvar position = 'center';\n\t\t\t\t\t\tvar shape = 'ellipse';\n\t\t\t\t\t\tvar size = 'farthest-corner';\n\n\t\t\t\t\t\tif (/\\b(?:bottom|center|left|right|top)\\b|^\\d+/.test(values[0])) {\n\t\t\t\t\t\t\t// Found a position\n\t\t\t\t\t\t\t// Remove angle value, if any\n\t\t\t\t\t\t\tposition = values.shift().replace(/\\s*-?\\d+(?:deg|rad)\\s*/, '');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (/\\b(?:circle|closest|contain|cover|ellipse|farthest)\\b/.test(values[0])) {\n\t\t\t\t\t\t\t// Found a shape and/or size\n\t\t\t\t\t\t\tvar shapeSizeParts = values.shift().split(/\\s+/);\n\t\t\t\t\t\t\tif (shapeSizeParts[0] && (shapeSizeParts[0] === 'circle' || shapeSizeParts[0] === 'ellipse')) {\n\t\t\t\t\t\t\t\tshape = shapeSizeParts.shift();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (shapeSizeParts[0]) {\n\t\t\t\t\t\t\t\tsize = shapeSizeParts.shift();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Old keywords are converted to their synonyms\n\t\t\t\t\t\t\tif (size === 'cover') {\n\t\t\t\t\t\t\t\tsize = 'farthest-corner';\n\t\t\t\t\t\t\t} else if (size === 'contain') {\n\t\t\t\t\t\t\t\tsize = 'clothest-side';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn func + '(' + shape + ' ' + size + ' at ' + position + ',' + values.join(',') + ')';\n\t\t\t\t\t}\n\t\t\t\t\treturn func + '(' + values.join(',') + ')';\n\t\t\t\t};\n\n\t\t\t\t/**\n\t\t\t\t * Converts a gradient to a W3C-valid one\n\t\t\t\t * Does not support old webkit syntax (-webkit-gradient(linear...) and -webkit-gradient(radial...))\n\t\t\t\t *\n\t\t\t\t * @param {string} gradient The CSS gradient\n\t\t\t\t */\n\t\t\t\tvar convertToW3CGradient = function (gradient) {\n\t\t\t\t\tif (cache[gradient]) {\n\t\t\t\t\t\treturn cache[gradient];\n\t\t\t\t\t}\n\t\t\t\t\tvar parts = gradient.match(/^(\\b|\\B-[a-z]{1,10}-)((?:repeating-)?(?:linear|radial)-gradient)/);\n\t\t\t\t\t// \"\", \"-moz-\", etc.\n\t\t\t\t\tvar prefix = parts && parts[1];\n\t\t\t\t\t// \"linear-gradient\", \"radial-gradient\", etc.\n\t\t\t\t\tvar func = parts && parts[2];\n\n\t\t\t\t\tvar values = gradient.replace(/^(?:\\b|\\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\\(|\\)$/g, '').split(/\\s*,\\s*/);\n\n\t\t\t\t\tif (func.indexOf('linear') >= 0) {\n\t\t\t\t\t\treturn cache[gradient] = convertToW3CLinearGradient(prefix, func, values);\n\t\t\t\t\t} else if (func.indexOf('radial') >= 0) {\n\t\t\t\t\t\treturn cache[gradient] = convertToW3CRadialGradient(prefix, func, values);\n\t\t\t\t\t}\n\t\t\t\t\treturn cache[gradient] = func + '(' + values.join(',') + ')';\n\t\t\t\t};\n\n\t\t\t\treturn function () {\n\t\t\t\t\tnew Prism.plugins.Previewer('gradient', function (value) {\n\t\t\t\t\t\tthis.firstChild.style.backgroundImage = '';\n\t\t\t\t\t\tthis.firstChild.style.backgroundImage = convertToW3CGradient(value);\n\t\t\t\t\t\treturn !!this.firstChild.style.backgroundImage;\n\t\t\t\t\t}, '*', function () {\n\t\t\t\t\t\tthis._elt.innerHTML = '
';\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t}()),\n\t\t\ttokens: {\n\t\t\t\t'gradient': {\n\t\t\t\t\tpattern: /(?:\\b|\\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\\((?:(?:hsl|rgb)a?\\(.+?\\)|[^\\)])+\\)/gi,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'function': /[\\w-]+(?=\\()/,\n\t\t\t\t\t\t'punctuation': /[(),]/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tlanguages: {\n\t\t\t\t'css': true,\n\t\t\t\t'less': true,\n\t\t\t\t'sass': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tbefore: 'punctuation',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['variable-line']\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tbefore: 'punctuation',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['property-line']\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t'scss': true,\n\t\t\t\t'stylus': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'func',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'func',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t'angle': {\n\t\t\tcreate: function () {\n\t\t\t\tnew Prism.plugins.Previewer('angle', function (value) {\n\t\t\t\t\tvar num = parseFloat(value);\n\t\t\t\t\tvar unit = value.match(/[a-z]+$/i);\n\t\t\t\t\tvar max; var percentage;\n\t\t\t\t\tif (!num || !unit) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tunit = unit[0];\n\n\t\t\t\t\tswitch (unit) {\n\t\t\t\t\t\tcase 'deg':\n\t\t\t\t\t\t\tmax = 360;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'grad':\n\t\t\t\t\t\t\tmax = 400;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'rad':\n\t\t\t\t\t\t\tmax = 2 * Math.PI;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'turn':\n\t\t\t\t\t\t\tmax = 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tpercentage = 100 * num / max;\n\t\t\t\t\tpercentage %= 100;\n\n\t\t\t\t\tthis[(num < 0 ? 'set' : 'remove') + 'Attribute']('data-negative', '');\n\t\t\t\t\tthis.querySelector('circle').style.strokeDasharray = Math.abs(percentage) + ',500';\n\t\t\t\t\treturn true;\n\t\t\t\t}, '*', function () {\n\t\t\t\t\tthis._elt.innerHTML = '' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'';\n\t\t\t\t});\n\t\t\t},\n\t\t\ttokens: {\n\t\t\t\t'angle': /(?:\\b|\\B-|(?=\\B\\.))(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:deg|g?rad|turn)\\b/i\n\t\t\t},\n\t\t\tlanguages: {\n\t\t\t\t'css': true,\n\t\t\t\t'less': true,\n\t\t\t\t'markup': {\n\t\t\t\t\tlang: 'markup',\n\t\t\t\t\tbefore: 'punctuation',\n\t\t\t\t\tinside: 'inside',\n\t\t\t\t\troot: Prism.languages.markup && Prism.languages.markup['tag'].inside['attr-value']\n\t\t\t\t},\n\t\t\t\t'sass': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['property-line']\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tbefore: 'operator',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['variable-line']\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t'scss': true,\n\t\t\t\t'stylus': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'func',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'func',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t'color': {\n\t\t\tcreate: function () {\n\t\t\t\tnew Prism.plugins.Previewer('color', function (value) {\n\t\t\t\t\tthis.style.backgroundColor = '';\n\t\t\t\t\tthis.style.backgroundColor = value;\n\t\t\t\t\treturn !!this.style.backgroundColor;\n\t\t\t\t});\n\t\t\t},\n\t\t\ttokens: {\n\t\t\t\t'color': [Prism.languages.css['hexcode']].concat(Prism.languages.css['color'])\n\t\t\t},\n\t\t\tlanguages: {\n\t\t\t\t// CSS extras is required, so css and scss are not necessary\n\t\t\t\t'css': false,\n\t\t\t\t'less': true,\n\t\t\t\t'markup': {\n\t\t\t\t\tlang: 'markup',\n\t\t\t\t\tbefore: 'punctuation',\n\t\t\t\t\tinside: 'inside',\n\t\t\t\t\troot: Prism.languages.markup && Prism.languages.markup['tag'].inside['attr-value']\n\t\t\t\t},\n\t\t\t\t'sass': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tbefore: 'punctuation',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['variable-line']\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['property-line']\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t'scss': false,\n\t\t\t\t'stylus': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'hexcode',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'hexcode',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t'easing': {\n\t\t\tcreate: function () {\n\t\t\t\tnew Prism.plugins.Previewer('easing', function (value) {\n\n\t\t\t\t\tvalue = {\n\t\t\t\t\t\t'linear': '0,0,1,1',\n\t\t\t\t\t\t'ease': '.25,.1,.25,1',\n\t\t\t\t\t\t'ease-in': '.42,0,1,1',\n\t\t\t\t\t\t'ease-out': '0,0,.58,1',\n\t\t\t\t\t\t'ease-in-out': '.42,0,.58,1'\n\t\t\t\t\t}[value] || value;\n\n\t\t\t\t\tvar p = value.match(/-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/g);\n\n\t\t\t\t\tif (p.length === 4) {\n\t\t\t\t\t\tp = p.map(function (p, i) { return (i % 2 ? 1 - p : p) * 100; });\n\n\t\t\t\t\t\tthis.querySelector('path').setAttribute('d', 'M0,100 C' + p[0] + ',' + p[1] + ', ' + p[2] + ',' + p[3] + ', 100,0');\n\n\t\t\t\t\t\tvar lines = this.querySelectorAll('line');\n\t\t\t\t\t\tlines[0].setAttribute('x2', p[0]);\n\t\t\t\t\t\tlines[0].setAttribute('y2', p[1]);\n\t\t\t\t\t\tlines[1].setAttribute('x2', p[2]);\n\t\t\t\t\t\tlines[1].setAttribute('y2', p[3]);\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}, '*', function () {\n\t\t\t\t\tthis._elt.innerHTML = '' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'';\n\t\t\t\t});\n\t\t\t},\n\t\t\ttokens: {\n\t\t\t\t'easing': {\n\t\t\t\t\tpattern: /\\bcubic-bezier\\((?:-?(?:\\d+(?:\\.\\d+)?|\\.\\d+),\\s*){3}-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)\\)\\B|\\b(?:ease(?:-in)?(?:-out)?|linear)(?=\\s|[;}]|$)/i,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'function': /[\\w-]+(?=\\()/,\n\t\t\t\t\t\t'punctuation': /[(),]/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tlanguages: {\n\t\t\t\t'css': true,\n\t\t\t\t'less': true,\n\t\t\t\t'sass': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\tbefore: 'punctuation',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['variable-line']\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['property-line']\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t'scss': true,\n\t\t\t\t'stylus': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'hexcode',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'hexcode',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\n\t\t'time': {\n\t\t\tcreate: function () {\n\t\t\t\tnew Prism.plugins.Previewer('time', function (value) {\n\t\t\t\t\tvar num = parseFloat(value);\n\t\t\t\t\tvar unit = value.match(/[a-z]+$/i);\n\t\t\t\t\tif (!num || !unit) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tunit = unit[0];\n\t\t\t\t\tthis.querySelector('circle').style.animationDuration = 2 * num + unit;\n\t\t\t\t\treturn true;\n\t\t\t\t}, '*', function () {\n\t\t\t\t\tthis._elt.innerHTML = '' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'';\n\t\t\t\t});\n\t\t\t},\n\t\t\ttokens: {\n\t\t\t\t'time': /(?:\\b|\\B-|(?=\\B\\.))(?:\\d+(?:\\.\\d+)?|\\.\\d+)m?s\\b/i\n\t\t\t},\n\t\t\tlanguages: {\n\t\t\t\t'css': true,\n\t\t\t\t'less': true,\n\t\t\t\t'markup': {\n\t\t\t\t\tlang: 'markup',\n\t\t\t\t\tbefore: 'punctuation',\n\t\t\t\t\tinside: 'inside',\n\t\t\t\t\troot: Prism.languages.markup && Prism.languages.markup['tag'].inside['attr-value']\n\t\t\t\t},\n\t\t\t\t'sass': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['property-line']\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'sass',\n\t\t\t\t\t\tbefore: 'operator',\n\t\t\t\t\t\tinside: 'inside',\n\t\t\t\t\t\troot: Prism.languages.sass && Prism.languages.sass['variable-line']\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t'scss': true,\n\t\t\t\t'stylus': [\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'hexcode',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlang: 'stylus',\n\t\t\t\t\t\tbefore: 'hexcode',\n\t\t\t\t\t\tinside: 'rest',\n\t\t\t\t\t\troot: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Returns the absolute X, Y offsets for an element\n\t *\n\t * @param {HTMLElement} element\n\t * @returns {{top: number, right: number, bottom: number, left: number, width: number, height: number}}\n\t */\n\tvar getOffset = function (element) {\n\t\tvar elementBounds = element.getBoundingClientRect();\n\t\tvar left = elementBounds.left;\n\t\tvar top = elementBounds.top;\n\t\tvar documentBounds = document.documentElement.getBoundingClientRect();\n\t\tleft -= documentBounds.left;\n\t\ttop -= documentBounds.top;\n\n\t\treturn {\n\t\t\ttop: top,\n\t\t\tright: innerWidth - left - elementBounds.width,\n\t\t\tbottom: innerHeight - top - elementBounds.height,\n\t\t\tleft: left,\n\t\t\twidth: elementBounds.width,\n\t\t\theight: elementBounds.height\n\t\t};\n\t};\n\n\tvar TOKEN_CLASS = 'token';\n\tvar ACTIVE_CLASS = 'active';\n\tvar FLIPPED_CLASS = 'flipped';\n\n\t/**\n\t * Previewer constructor\n\t *\n\t * @param {string} type Unique previewer type\n\t * @param {Function} updater Function that will be called on mouseover.\n\t * @param {string[]|string} [supportedLanguages] Aliases of the languages this previewer must be enabled for. Defaults to \"*\", all languages.\n\t * @param {Function} [initializer] Function that will be called on initialization.\n\t * @class\n\t */\n\tvar Previewer = function (type, updater, supportedLanguages, initializer) {\n\t\tthis._elt = null;\n\t\tthis._type = type;\n\t\tthis._token = null;\n\t\tthis.updater = updater;\n\t\tthis._mouseout = this.mouseout.bind(this);\n\t\tthis.initializer = initializer;\n\n\t\tvar self = this;\n\n\t\tif (!supportedLanguages) {\n\t\t\tsupportedLanguages = ['*'];\n\t\t}\n\t\tif (!Array.isArray(supportedLanguages)) {\n\t\t\tsupportedLanguages = [supportedLanguages];\n\t\t}\n\t\tsupportedLanguages.forEach(function (lang) {\n\t\t\tif (typeof lang !== 'string') {\n\t\t\t\tlang = lang.lang;\n\t\t\t}\n\t\t\tif (!Previewer.byLanguages[lang]) {\n\t\t\t\tPreviewer.byLanguages[lang] = [];\n\t\t\t}\n\t\t\tif (Previewer.byLanguages[lang].indexOf(self) < 0) {\n\t\t\t\tPreviewer.byLanguages[lang].push(self);\n\t\t\t}\n\t\t});\n\t\tPreviewer.byType[type] = this;\n\t};\n\n\t/**\n\t * Creates the HTML element for the previewer.\n\t */\n\tPreviewer.prototype.init = function () {\n\t\tif (this._elt) {\n\t\t\treturn;\n\t\t}\n\t\tthis._elt = document.createElement('div');\n\t\tthis._elt.className = 'prism-previewer prism-previewer-' + this._type;\n\t\tdocument.body.appendChild(this._elt);\n\t\tif (this.initializer) {\n\t\t\tthis.initializer();\n\t\t}\n\t};\n\n\t/**\n\t * @param {Element} token\n\t * @returns {boolean}\n\t */\n\tPreviewer.prototype.isDisabled = function (token) {\n\t\tdo {\n\t\t\tif (token.hasAttribute && token.hasAttribute('data-previewers')) {\n\t\t\t\tvar previewers = token.getAttribute('data-previewers');\n\t\t\t\treturn (previewers || '').split(/\\s+/).indexOf(this._type) === -1;\n\t\t\t}\n\t\t} while ((token = token.parentNode));\n\t\treturn false;\n\t};\n\n\t/**\n\t * Checks the class name of each hovered element\n\t *\n\t * @param {Element} token\n\t */\n\tPreviewer.prototype.check = function (token) {\n\t\tif (token.classList.contains(TOKEN_CLASS) && this.isDisabled(token)) {\n\t\t\treturn;\n\t\t}\n\t\tdo {\n\t\t\tif (token.classList && token.classList.contains(TOKEN_CLASS) && token.classList.contains(this._type)) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while ((token = token.parentNode));\n\n\t\tif (token && token !== this._token) {\n\t\t\tthis._token = token;\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\t/**\n\t * Called on mouseout\n\t */\n\tPreviewer.prototype.mouseout = function () {\n\t\tthis._token.removeEventListener('mouseout', this._mouseout, false);\n\t\tthis._token = null;\n\t\tthis.hide();\n\t};\n\n\t/**\n\t * Shows the previewer positioned properly for the current token.\n\t */\n\tPreviewer.prototype.show = function () {\n\t\tif (!this._elt) {\n\t\t\tthis.init();\n\t\t}\n\t\tif (!this._token) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.updater.call(this._elt, this._token.textContent)) {\n\t\t\tthis._token.addEventListener('mouseout', this._mouseout, false);\n\n\t\t\tvar offset = getOffset(this._token);\n\t\t\tthis._elt.classList.add(ACTIVE_CLASS);\n\n\t\t\tif (offset.top - this._elt.offsetHeight > 0) {\n\t\t\t\tthis._elt.classList.remove(FLIPPED_CLASS);\n\t\t\t\tthis._elt.style.top = offset.top + 'px';\n\t\t\t\tthis._elt.style.bottom = '';\n\t\t\t} else {\n\t\t\t\tthis._elt.classList.add(FLIPPED_CLASS);\n\t\t\t\tthis._elt.style.bottom = offset.bottom + 'px';\n\t\t\t\tthis._elt.style.top = '';\n\t\t\t}\n\n\t\t\tthis._elt.style.left = offset.left + Math.min(200, offset.width / 2) + 'px';\n\t\t} else {\n\t\t\tthis.hide();\n\t\t}\n\t};\n\n\t/**\n\t * Hides the previewer.\n\t */\n\tPreviewer.prototype.hide = function () {\n\t\tthis._elt.classList.remove(ACTIVE_CLASS);\n\t};\n\n\t/**\n\t * Map of all registered previewers by language\n\t *\n\t * @type {{}}\n\t */\n\tPreviewer.byLanguages = {};\n\n\t/**\n\t * Map of all registered previewers by type\n\t *\n\t * @type {{}}\n\t */\n\tPreviewer.byType = {};\n\n\t/**\n\t * Initializes the mouseover event on the code block.\n\t *\n\t * @param {HTMLElement} elt The code block (env.element)\n\t * @param {string} lang The language (env.language)\n\t */\n\tPreviewer.initEvents = function (elt, lang) {\n\t\tvar previewers = [];\n\t\tif (Previewer.byLanguages[lang]) {\n\t\t\tpreviewers = previewers.concat(Previewer.byLanguages[lang]);\n\t\t}\n\t\tif (Previewer.byLanguages['*']) {\n\t\t\tpreviewers = previewers.concat(Previewer.byLanguages['*']);\n\t\t}\n\t\telt.addEventListener('mouseover', function (e) {\n\t\t\tvar target = e.target;\n\t\t\tpreviewers.forEach(function (previewer) {\n\t\t\t\tpreviewer.check(target);\n\t\t\t});\n\t\t}, false);\n\t};\n\tPrism.plugins.Previewer = Previewer;\n\n\tPrism.hooks.add('before-highlight', function (env) {\n\t\tfor (var previewer in previewers) {\n\t\t\tvar languages = previewers[previewer].languages;\n\t\t\tif (env.language && languages[env.language] && !languages[env.language].initialized) {\n\t\t\t\tvar lang = languages[env.language];\n\t\t\t\tif (!Array.isArray(lang)) {\n\t\t\t\t\tlang = [lang];\n\t\t\t\t}\n\t\t\t\tlang.forEach(function (lang) {\n\t\t\t\t\tvar before; var inside; var root; var skip;\n\t\t\t\t\tif (lang === true) {\n\t\t\t\t\t\tbefore = 'important';\n\t\t\t\t\t\tinside = env.language;\n\t\t\t\t\t\tlang = env.language;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbefore = lang.before || 'important';\n\t\t\t\t\t\tinside = lang.inside || lang.lang;\n\t\t\t\t\t\troot = lang.root || Prism.languages;\n\t\t\t\t\t\tskip = lang.skip;\n\t\t\t\t\t\tlang = env.language;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!skip && Prism.languages[lang]) {\n\t\t\t\t\t\tPrism.languages.insertBefore(inside, before, previewers[previewer].tokens, root);\n\t\t\t\t\t\tenv.grammar = Prism.languages[lang];\n\n\t\t\t\t\t\tlanguages[env.language] = { initialized: true };\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\n\t// Initialize the previewers only when needed\n\tPrism.hooks.add('after-highlight', function (env) {\n\t\tif (Previewer.byLanguages['*'] || Previewer.byLanguages[env.language]) {\n\t\t\tPreviewer.initEvents(env.element, env.language);\n\t\t}\n\t});\n\n\tfor (var previewer in previewers) {\n\t\tpreviewers[previewer].create();\n\t}\n\n}());\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\tif (!Prism.plugins.toolbar) {\n\t\tconsole.warn('Show Languages plugin loaded before Toolbar plugin.');\n\n\t\treturn;\n\t}\n\n\t/* eslint-disable */\n\n\t// The languages map is built automatically with gulp\n\tvar Languages = /*languages_placeholder[*/{\n\t\t\"none\": \"Plain text\",\n\t\t\"plain\": \"Plain text\",\n\t\t\"plaintext\": \"Plain text\",\n\t\t\"text\": \"Plain text\",\n\t\t\"txt\": \"Plain text\",\n\t\t\"html\": \"HTML\",\n\t\t\"xml\": \"XML\",\n\t\t\"svg\": \"SVG\",\n\t\t\"mathml\": \"MathML\",\n\t\t\"ssml\": \"SSML\",\n\t\t\"rss\": \"RSS\",\n\t\t\"css\": \"CSS\",\n\t\t\"clike\": \"C-like\",\n\t\t\"js\": \"JavaScript\",\n\t\t\"abap\": \"ABAP\",\n\t\t\"abnf\": \"ABNF\",\n\t\t\"al\": \"AL\",\n\t\t\"antlr4\": \"ANTLR4\",\n\t\t\"g4\": \"ANTLR4\",\n\t\t\"apacheconf\": \"Apache Configuration\",\n\t\t\"apl\": \"APL\",\n\t\t\"aql\": \"AQL\",\n\t\t\"ino\": \"Arduino\",\n\t\t\"arff\": \"ARFF\",\n\t\t\"asciidoc\": \"AsciiDoc\",\n\t\t\"adoc\": \"AsciiDoc\",\n\t\t\"aspnet\": \"ASP.NET (C#)\",\n\t\t\"asm6502\": \"6502 Assembly\",\n\t\t\"asmatmel\": \"Atmel AVR Assembly\",\n\t\t\"autohotkey\": \"AutoHotkey\",\n\t\t\"autoit\": \"AutoIt\",\n\t\t\"avisynth\": \"AviSynth\",\n\t\t\"avs\": \"AviSynth\",\n\t\t\"avro-idl\": \"Avro IDL\",\n\t\t\"avdl\": \"Avro IDL\",\n\t\t\"basic\": \"BASIC\",\n\t\t\"bbcode\": \"BBcode\",\n\t\t\"bnf\": \"BNF\",\n\t\t\"rbnf\": \"RBNF\",\n\t\t\"bsl\": \"BSL (1C:Enterprise)\",\n\t\t\"oscript\": \"OneScript\",\n\t\t\"csharp\": \"C#\",\n\t\t\"cs\": \"C#\",\n\t\t\"dotnet\": \"C#\",\n\t\t\"cpp\": \"C++\",\n\t\t\"cfscript\": \"CFScript\",\n\t\t\"cfc\": \"CFScript\",\n\t\t\"cil\": \"CIL\",\n\t\t\"cmake\": \"CMake\",\n\t\t\"cobol\": \"COBOL\",\n\t\t\"coffee\": \"CoffeeScript\",\n\t\t\"conc\": \"Concurnas\",\n\t\t\"csp\": \"Content-Security-Policy\",\n\t\t\"css-extras\": \"CSS Extras\",\n\t\t\"csv\": \"CSV\",\n\t\t\"dataweave\": \"DataWeave\",\n\t\t\"dax\": \"DAX\",\n\t\t\"django\": \"Django/Jinja2\",\n\t\t\"jinja2\": \"Django/Jinja2\",\n\t\t\"dns-zone-file\": \"DNS zone file\",\n\t\t\"dns-zone\": \"DNS zone file\",\n\t\t\"dockerfile\": \"Docker\",\n\t\t\"dot\": \"DOT (Graphviz)\",\n\t\t\"gv\": \"DOT (Graphviz)\",\n\t\t\"ebnf\": \"EBNF\",\n\t\t\"editorconfig\": \"EditorConfig\",\n\t\t\"ejs\": \"EJS\",\n\t\t\"etlua\": \"Embedded Lua templating\",\n\t\t\"erb\": \"ERB\",\n\t\t\"excel-formula\": \"Excel Formula\",\n\t\t\"xlsx\": \"Excel Formula\",\n\t\t\"xls\": \"Excel Formula\",\n\t\t\"fsharp\": \"F#\",\n\t\t\"firestore-security-rules\": \"Firestore security rules\",\n\t\t\"ftl\": \"FreeMarker Template Language\",\n\t\t\"gml\": \"GameMaker Language\",\n\t\t\"gamemakerlanguage\": \"GameMaker Language\",\n\t\t\"gap\": \"GAP (CAS)\",\n\t\t\"gcode\": \"G-code\",\n\t\t\"gdscript\": \"GDScript\",\n\t\t\"gedcom\": \"GEDCOM\",\n\t\t\"glsl\": \"GLSL\",\n\t\t\"gn\": \"GN\",\n\t\t\"gni\": \"GN\",\n\t\t\"go-module\": \"Go module\",\n\t\t\"go-mod\": \"Go module\",\n\t\t\"graphql\": \"GraphQL\",\n\t\t\"hbs\": \"Handlebars\",\n\t\t\"hs\": \"Haskell\",\n\t\t\"hcl\": \"HCL\",\n\t\t\"hlsl\": \"HLSL\",\n\t\t\"http\": \"HTTP\",\n\t\t\"hpkp\": \"HTTP Public-Key-Pins\",\n\t\t\"hsts\": \"HTTP Strict-Transport-Security\",\n\t\t\"ichigojam\": \"IchigoJam\",\n\t\t\"icu-message-format\": \"ICU Message Format\",\n\t\t\"idr\": \"Idris\",\n\t\t\"ignore\": \".ignore\",\n\t\t\"gitignore\": \".gitignore\",\n\t\t\"hgignore\": \".hgignore\",\n\t\t\"npmignore\": \".npmignore\",\n\t\t\"inform7\": \"Inform 7\",\n\t\t\"javadoc\": \"JavaDoc\",\n\t\t\"javadoclike\": \"JavaDoc-like\",\n\t\t\"javastacktrace\": \"Java stack trace\",\n\t\t\"jq\": \"JQ\",\n\t\t\"jsdoc\": \"JSDoc\",\n\t\t\"js-extras\": \"JS Extras\",\n\t\t\"json\": \"JSON\",\n\t\t\"webmanifest\": \"Web App Manifest\",\n\t\t\"json5\": \"JSON5\",\n\t\t\"jsonp\": \"JSONP\",\n\t\t\"jsstacktrace\": \"JS stack trace\",\n\t\t\"js-templates\": \"JS Templates\",\n\t\t\"keepalived\": \"Keepalived Configure\",\n\t\t\"kts\": \"Kotlin Script\",\n\t\t\"kt\": \"Kotlin\",\n\t\t\"kumir\": \"KuMir (КуМир)\",\n\t\t\"kum\": \"KuMir (КуМир)\",\n\t\t\"latex\": \"LaTeX\",\n\t\t\"tex\": \"TeX\",\n\t\t\"context\": \"ConTeXt\",\n\t\t\"lilypond\": \"LilyPond\",\n\t\t\"ly\": \"LilyPond\",\n\t\t\"emacs\": \"Lisp\",\n\t\t\"elisp\": \"Lisp\",\n\t\t\"emacs-lisp\": \"Lisp\",\n\t\t\"llvm\": \"LLVM IR\",\n\t\t\"log\": \"Log file\",\n\t\t\"lolcode\": \"LOLCODE\",\n\t\t\"magma\": \"Magma (CAS)\",\n\t\t\"md\": \"Markdown\",\n\t\t\"markup-templating\": \"Markup templating\",\n\t\t\"matlab\": \"MATLAB\",\n\t\t\"maxscript\": \"MAXScript\",\n\t\t\"mel\": \"MEL\",\n\t\t\"mongodb\": \"MongoDB\",\n\t\t\"moon\": \"MoonScript\",\n\t\t\"n1ql\": \"N1QL\",\n\t\t\"n4js\": \"N4JS\",\n\t\t\"n4jsd\": \"N4JS\",\n\t\t\"nand2tetris-hdl\": \"Nand To Tetris HDL\",\n\t\t\"naniscript\": \"Naninovel Script\",\n\t\t\"nani\": \"Naninovel Script\",\n\t\t\"nasm\": \"NASM\",\n\t\t\"neon\": \"NEON\",\n\t\t\"nginx\": \"nginx\",\n\t\t\"nsis\": \"NSIS\",\n\t\t\"objectivec\": \"Objective-C\",\n\t\t\"objc\": \"Objective-C\",\n\t\t\"ocaml\": \"OCaml\",\n\t\t\"opencl\": \"OpenCL\",\n\t\t\"openqasm\": \"OpenQasm\",\n\t\t\"qasm\": \"OpenQasm\",\n\t\t\"parigp\": \"PARI/GP\",\n\t\t\"objectpascal\": \"Object Pascal\",\n\t\t\"psl\": \"PATROL Scripting Language\",\n\t\t\"pcaxis\": \"PC-Axis\",\n\t\t\"px\": \"PC-Axis\",\n\t\t\"peoplecode\": \"PeopleCode\",\n\t\t\"pcode\": \"PeopleCode\",\n\t\t\"php\": \"PHP\",\n\t\t\"phpdoc\": \"PHPDoc\",\n\t\t\"php-extras\": \"PHP Extras\",\n\t\t\"plsql\": \"PL/SQL\",\n\t\t\"powerquery\": \"PowerQuery\",\n\t\t\"pq\": \"PowerQuery\",\n\t\t\"mscript\": \"PowerQuery\",\n\t\t\"powershell\": \"PowerShell\",\n\t\t\"promql\": \"PromQL\",\n\t\t\"properties\": \".properties\",\n\t\t\"protobuf\": \"Protocol Buffers\",\n\t\t\"purebasic\": \"PureBasic\",\n\t\t\"pbfasm\": \"PureBasic\",\n\t\t\"purs\": \"PureScript\",\n\t\t\"py\": \"Python\",\n\t\t\"qsharp\": \"Q#\",\n\t\t\"qs\": \"Q#\",\n\t\t\"q\": \"Q (kdb+ database)\",\n\t\t\"qml\": \"QML\",\n\t\t\"rkt\": \"Racket\",\n\t\t\"cshtml\": \"Razor C#\",\n\t\t\"razor\": \"Razor C#\",\n\t\t\"jsx\": \"React JSX\",\n\t\t\"tsx\": \"React TSX\",\n\t\t\"renpy\": \"Ren'py\",\n\t\t\"rpy\": \"Ren'py\",\n\t\t\"rest\": \"reST (reStructuredText)\",\n\t\t\"robotframework\": \"Robot Framework\",\n\t\t\"robot\": \"Robot Framework\",\n\t\t\"rb\": \"Ruby\",\n\t\t\"sas\": \"SAS\",\n\t\t\"sass\": \"Sass (Sass)\",\n\t\t\"scss\": \"Sass (Scss)\",\n\t\t\"shell-session\": \"Shell session\",\n\t\t\"sh-session\": \"Shell session\",\n\t\t\"shellsession\": \"Shell session\",\n\t\t\"sml\": \"SML\",\n\t\t\"smlnj\": \"SML/NJ\",\n\t\t\"solidity\": \"Solidity (Ethereum)\",\n\t\t\"sol\": \"Solidity (Ethereum)\",\n\t\t\"solution-file\": \"Solution file\",\n\t\t\"sln\": \"Solution file\",\n\t\t\"soy\": \"Soy (Closure Template)\",\n\t\t\"sparql\": \"SPARQL\",\n\t\t\"rq\": \"SPARQL\",\n\t\t\"splunk-spl\": \"Splunk SPL\",\n\t\t\"sqf\": \"SQF: Status Quo Function (Arma 3)\",\n\t\t\"sql\": \"SQL\",\n\t\t\"iecst\": \"Structured Text (IEC 61131-3)\",\n\t\t\"systemd\": \"Systemd configuration file\",\n\t\t\"t4-templating\": \"T4 templating\",\n\t\t\"t4-cs\": \"T4 Text Templates (C#)\",\n\t\t\"t4\": \"T4 Text Templates (C#)\",\n\t\t\"t4-vb\": \"T4 Text Templates (VB)\",\n\t\t\"tap\": \"TAP\",\n\t\t\"tt2\": \"Template Toolkit 2\",\n\t\t\"toml\": \"TOML\",\n\t\t\"trickle\": \"trickle\",\n\t\t\"troy\": \"troy\",\n\t\t\"trig\": \"TriG\",\n\t\t\"ts\": \"TypeScript\",\n\t\t\"tsconfig\": \"TSConfig\",\n\t\t\"uscript\": \"UnrealScript\",\n\t\t\"uc\": \"UnrealScript\",\n\t\t\"uri\": \"URI\",\n\t\t\"url\": \"URL\",\n\t\t\"vbnet\": \"VB.Net\",\n\t\t\"vhdl\": \"VHDL\",\n\t\t\"vim\": \"vim\",\n\t\t\"visual-basic\": \"Visual Basic\",\n\t\t\"vba\": \"VBA\",\n\t\t\"vb\": \"Visual Basic\",\n\t\t\"wasm\": \"WebAssembly\",\n\t\t\"web-idl\": \"Web IDL\",\n\t\t\"webidl\": \"Web IDL\",\n\t\t\"wiki\": \"Wiki markup\",\n\t\t\"wolfram\": \"Wolfram language\",\n\t\t\"nb\": \"Mathematica Notebook\",\n\t\t\"wl\": \"Wolfram language\",\n\t\t\"xeoracube\": \"XeoraCube\",\n\t\t\"xml-doc\": \"XML doc (.net)\",\n\t\t\"xojo\": \"Xojo (REALbasic)\",\n\t\t\"xquery\": \"XQuery\",\n\t\t\"yaml\": \"YAML\",\n\t\t\"yml\": \"YAML\",\n\t\t\"yang\": \"YANG\"\n\t}/*]*/;\n\n\t/* eslint-enable */\n\n\tPrism.plugins.toolbar.registerButton('show-language', function (env) {\n\t\tvar pre = env.element.parentNode;\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * Tries to guess the name of a language given its id.\n\t\t *\n\t\t * @param {string} id The language id.\n\t\t * @returns {string}\n\t\t */\n\t\tfunction guessTitle(id) {\n\t\t\tif (!id) {\n\t\t\t\treturn id;\n\t\t\t}\n\t\t\treturn (id.substring(0, 1).toUpperCase() + id.substring(1)).replace(/s(?=cript)/, 'S');\n\t\t}\n\n\t\tvar language = pre.getAttribute('data-language') || Languages[env.language] || guessTitle(env.language);\n\n\t\tif (!language) {\n\t\t\treturn;\n\t\t}\n\t\tvar element = document.createElement('span');\n\t\telement.textContent = language;\n\n\t\treturn element;\n\t});\n\n}());\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\tvar callbacks = [];\n\tvar map = {};\n\tvar noop = function () {};\n\n\tPrism.plugins.toolbar = {};\n\n\t/**\n\t * @typedef ButtonOptions\n\t * @property {string} text The text displayed.\n\t * @property {string} [url] The URL of the link which will be created.\n\t * @property {Function} [onClick] The event listener for the `click` event of the created button.\n\t * @property {string} [className] The class attribute to include with element.\n\t */\n\n\t/**\n\t * Register a button callback with the toolbar.\n\t *\n\t * @param {string} key\n\t * @param {ButtonOptions|Function} opts\n\t */\n\tvar registerButton = Prism.plugins.toolbar.registerButton = function (key, opts) {\n\t\tvar callback;\n\n\t\tif (typeof opts === 'function') {\n\t\t\tcallback = opts;\n\t\t} else {\n\t\t\tcallback = function (env) {\n\t\t\t\tvar element;\n\n\t\t\t\tif (typeof opts.onClick === 'function') {\n\t\t\t\t\telement = document.createElement('button');\n\t\t\t\t\telement.type = 'button';\n\t\t\t\t\telement.addEventListener('click', function () {\n\t\t\t\t\t\topts.onClick.call(this, env);\n\t\t\t\t\t});\n\t\t\t\t} else if (typeof opts.url === 'string') {\n\t\t\t\t\telement = document.createElement('a');\n\t\t\t\t\telement.href = opts.url;\n\t\t\t\t} else {\n\t\t\t\t\telement = document.createElement('span');\n\t\t\t\t}\n\n\t\t\t\tif (opts.className) {\n\t\t\t\t\telement.classList.add(opts.className);\n\t\t\t\t}\n\n\t\t\t\telement.textContent = opts.text;\n\n\t\t\t\treturn element;\n\t\t\t};\n\t\t}\n\n\t\tif (key in map) {\n\t\t\tconsole.warn('There is a button with the key \"' + key + '\" registered already.');\n\t\t\treturn;\n\t\t}\n\n\t\tcallbacks.push(map[key] = callback);\n\t};\n\n\t/**\n\t * Returns the callback order of the given element.\n\t *\n\t * @param {HTMLElement} element\n\t * @returns {string[] | undefined}\n\t */\n\tfunction getOrder(element) {\n\t\twhile (element) {\n\t\t\tvar order = element.getAttribute('data-toolbar-order');\n\t\t\tif (order != null) {\n\t\t\t\torder = order.trim();\n\t\t\t\tif (order.length) {\n\t\t\t\t\treturn order.split(/\\s*,\\s*/g);\n\t\t\t\t} else {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t}\n\t\t\telement = element.parentElement;\n\t\t}\n\t}\n\n\t/**\n\t * Post-highlight Prism hook callback.\n\t *\n\t * @param env\n\t */\n\tvar hook = Prism.plugins.toolbar.hook = function (env) {\n\t\t// Check if inline or actual code block (credit to line-numbers plugin)\n\t\tvar pre = env.element.parentNode;\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Autoloader rehighlights, so only do this once.\n\t\tif (pre.parentNode.classList.contains('code-toolbar')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Create wrapper for
 to prevent scrolling toolbar with content\n\t\tvar wrapper = document.createElement('div');\n\t\twrapper.classList.add('code-toolbar');\n\t\tpre.parentNode.insertBefore(wrapper, pre);\n\t\twrapper.appendChild(pre);\n\n\t\t// Setup the toolbar\n\t\tvar toolbar = document.createElement('div');\n\t\ttoolbar.classList.add('toolbar');\n\n\t\t// order callbacks\n\t\tvar elementCallbacks = callbacks;\n\t\tvar order = getOrder(env.element);\n\t\tif (order) {\n\t\t\telementCallbacks = order.map(function (key) {\n\t\t\t\treturn map[key] || noop;\n\t\t\t});\n\t\t}\n\n\t\telementCallbacks.forEach(function (callback) {\n\t\t\tvar element = callback(env);\n\n\t\t\tif (!element) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = document.createElement('div');\n\t\t\titem.classList.add('toolbar-item');\n\n\t\t\titem.appendChild(element);\n\t\t\ttoolbar.appendChild(item);\n\t\t});\n\n\t\t// Add our toolbar to the currently created wrapper of 
 tag\n\t\twrapper.appendChild(toolbar);\n\t};\n\n\tregisterButton('label', function (env) {\n\t\tvar pre = env.element.parentNode;\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!pre.hasAttribute('data-label')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar element; var template;\n\t\tvar text = pre.getAttribute('data-label');\n\t\ttry {\n\t\t\t// Any normal text will blow up this selector.\n\t\t\ttemplate = document.querySelector('template#' + text);\n\t\t} catch (e) { /* noop */ }\n\n\t\tif (template) {\n\t\t\telement = template.content;\n\t\t} else {\n\t\t\tif (pre.hasAttribute('data-url')) {\n\t\t\t\telement = document.createElement('a');\n\t\t\t\telement.href = pre.getAttribute('data-url');\n\t\t\t} else {\n\t\t\t\telement = document.createElement('span');\n\t\t\t}\n\n\t\t\telement.textContent = text;\n\t\t}\n\n\t\treturn element;\n\t});\n\n\t/**\n\t * Register the toolbar with Prism.\n\t */\n\tPrism.hooks.add('complete', hook);\n}());\n","\n/* **********************************************\n     Begin prism-core.js\n********************************************** */\n\n/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window   // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {}   // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new \r\n","\r\n    \r\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/page-photo.js b/js/page-photo.js
new file mode 100644
index 00000000..5841eb44
--- /dev/null
+++ b/js/page-photo.js
@@ -0,0 +1,2 @@
+(()=>{var e={2637:(e,t)=>{t.Z=(e,t)=>{const n=e.__vccOpts||e;for(const[e,o]of t)n[e]=o;return n}}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),(()=>{function e(e,t){const n=Object.create(null),o=e.split(",");for(let e=0;e!!n[e.toLowerCase()]:e=>!!n[e]}const t="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",o=e(t);function r(e){return!!e||""===e}function s(e){if(C(e)){const t={};for(let n=0;n{if(e){const n=e.split(l);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function a(e){let t="";if(T(e))t=e;else if(C(e))for(let n=0;nT(e)?e:null==e?"":C(e)||A(e)&&(e.toString===L||!E(e.toString))?JSON.stringify(e,f,2):String(e),f=(e,t)=>t&&t.__v_isRef?f(e,t.value):O(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:S(t)?{[`Set(${t.size})`]:[...t.values()]}:!A(t)||C(t)||F(t)?t:String(t),p={},d=[],h=()=>{},_=()=>!1,v=/^on[^a-z]/,m=e=>v.test(e),g=e=>e.startsWith("onUpdate:"),y=Object.assign,b=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},w=Object.prototype.hasOwnProperty,x=(e,t)=>w.call(e,t),C=Array.isArray,O=e=>"[object Map]"===V(e),S=e=>"[object Set]"===V(e),E=e=>"function"==typeof e,T=e=>"string"==typeof e,P=e=>"symbol"==typeof e,A=e=>null!==e&&"object"==typeof e,k=e=>A(e)&&E(e.then)&&E(e.catch),L=Object.prototype.toString,V=e=>L.call(e),F=e=>"[object Object]"===V(e),M=e=>T(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,I=e(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),R=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},$=/-(\w)/g,U=R((e=>e.replace($,((e,t)=>t?t.toUpperCase():"")))),j=/\B([A-Z])/g,D=R((e=>e.replace(j,"-$1").toLowerCase())),N=R((e=>e.charAt(0).toUpperCase()+e.slice(1))),B=R((e=>e?`on${N(e)}`:"")),H=(e,t)=>!Object.is(e,t),W=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Y=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let X;const K=()=>X||(X="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{});let q;class Z{constructor(e=!1){this.active=!0,this.effects=[],this.cleanups=[],!e&&q&&(this.parent=q,this.index=(q.scopes||(q.scopes=[])).push(this)-1)}run(e){if(this.active)try{return q=this,e()}finally{q=this.parent}else 0}on(){q=this}off(){q=this.parent}stop(e){if(this.active){let t,n;for(t=0,n=this.effects.length;t{const t=new Set(e);return t.w=0,t.n=0,t},Q=e=>(e.w&oe)>0,ee=e=>(e.n&oe)>0,te=new WeakMap;let ne=0,oe=1;let re;const se=Symbol(""),ie=Symbol("");class le{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,G(this,n)}run(){if(!this.active)return this.fn();let e=re,t=ae;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=re,re=this,ae=!0,oe=1<<++ne,ne<=30?(({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o{("length"===t||t>=o)&&l.push(e)}));else switch(void 0!==n&&l.push(i.get(n)),t){case"add":C(e)?M(n)&&l.push(i.get("length")):(l.push(i.get(se)),O(e)&&l.push(i.get(ie)));break;case"delete":C(e)||(l.push(i.get(se)),O(e)&&l.push(i.get(ie)));break;case"set":O(e)&&l.push(i.get(se))}if(1===l.length)l[0]&&ve(l[0]);else{const e=[];for(const t of l)t&&e.push(...t);ve(J(e))}}function ve(e,t){for(const t of C(e)?e:[...e])(t!==re||t.allowRecurse)&&(t.scheduler?t.scheduler():t.run())}const me=e("__proto__,__v_isRef,__isVue"),ge=new Set(Object.getOwnPropertyNames(Symbol).map((e=>Symbol[e])).filter(P)),ye=Oe(),be=Oe(!1,!0),we=Oe(!0),xe=Ce();function Ce(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=ct(this);for(let e=0,t=this.length;e{e[t]=function(...e){fe();const n=ct(this)[t].apply(this,e);return pe(),n}})),e}function Oe(e=!1,t=!1){return function(n,o,r){if("__v_isReactive"===o)return!e;if("__v_isReadonly"===o)return e;if("__v_isShallow"===o)return t;if("__v_raw"===o&&r===(e?t?Qe:Je:t?Ge:Ze).get(n))return n;const s=C(n);if(!e&&s&&x(xe,o))return Reflect.get(xe,o,r);const i=Reflect.get(n,o,r);if(P(o)?ge.has(o):me(o))return i;if(e||de(n,0,o),t)return i;if(ht(i)){return!s||!M(o)?i.value:i}return A(i)?e?nt(i):tt(i):i}}function Se(e=!1){return function(t,n,o,r){let s=t[n];if(st(s)&&ht(s)&&!ht(o))return!1;if(!e&&!st(o)&&(it(o)||(o=ct(o),s=ct(s)),!C(t)&&ht(s)&&!ht(o)))return s.value=o,!0;const i=C(t)&&M(n)?Number(n)!0,deleteProperty:(e,t)=>!0},Pe=y({},Ee,{get:be,set:Se(!0)}),Ae=e=>e,ke=e=>Reflect.getPrototypeOf(e);function Le(e,t,n=!1,o=!1){const r=ct(e=e.__v_raw),s=ct(t);t!==s&&!n&&de(r,0,t),!n&&de(r,0,s);const{has:i}=ke(r),l=o?Ae:n?ft:ut;return i.call(r,t)?l(e.get(t)):i.call(r,s)?l(e.get(s)):void(e!==r&&e.get(t))}function Ve(e,t=!1){const n=this.__v_raw,o=ct(n),r=ct(e);return e!==r&&!t&&de(o,0,e),!t&&de(o,0,r),e===r?n.has(e):n.has(e)||n.has(r)}function Fe(e,t=!1){return e=e.__v_raw,!t&&de(ct(e),0,se),Reflect.get(e,"size",e)}function Me(e){e=ct(e);const t=ct(this);return ke(t).has.call(t,e)||(t.add(e),_e(t,"add",e,e)),this}function Ie(e,t){t=ct(t);const n=ct(this),{has:o,get:r}=ke(n);let s=o.call(n,e);s||(e=ct(e),s=o.call(n,e));const i=r.call(n,e);return n.set(e,t),s?H(t,i)&&_e(n,"set",e,t):_e(n,"add",e,t),this}function Re(e){const t=ct(this),{has:n,get:o}=ke(t);let r=n.call(t,e);r||(e=ct(e),r=n.call(t,e));o&&o.call(t,e);const s=t.delete(e);return r&&_e(t,"delete",e,void 0),s}function $e(){const e=ct(this),t=0!==e.size,n=e.clear();return t&&_e(e,"clear",void 0,void 0),n}function Ue(e,t){return function(n,o){const r=this,s=r.__v_raw,i=ct(s),l=t?Ae:e?ft:ut;return!e&&de(i,0,se),s.forEach(((e,t)=>n.call(o,l(e),l(t),r)))}}function je(e,t,n){return function(...o){const r=this.__v_raw,s=ct(r),i=O(s),l="entries"===e||e===Symbol.iterator&&i,c="keys"===e&&i,a=r[e](...o),u=n?Ae:t?ft:ut;return!t&&de(s,0,c?ie:se),{next(){const{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:l?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function De(e){return function(...t){return"delete"!==e&&this}}function Ne(){const e={get(e){return Le(this,e)},get size(){return Fe(this)},has:Ve,add:Me,set:Ie,delete:Re,clear:$e,forEach:Ue(!1,!1)},t={get(e){return Le(this,e,!1,!0)},get size(){return Fe(this)},has:Ve,add:Me,set:Ie,delete:Re,clear:$e,forEach:Ue(!1,!0)},n={get(e){return Le(this,e,!0)},get size(){return Fe(this,!0)},has(e){return Ve.call(this,e,!0)},add:De("add"),set:De("set"),delete:De("delete"),clear:De("clear"),forEach:Ue(!0,!1)},o={get(e){return Le(this,e,!0,!0)},get size(){return Fe(this,!0)},has(e){return Ve.call(this,e,!0)},add:De("add"),set:De("set"),delete:De("delete"),clear:De("clear"),forEach:Ue(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((r=>{e[r]=je(r,!1,!1),n[r]=je(r,!0,!1),t[r]=je(r,!1,!0),o[r]=je(r,!0,!0)})),[e,n,t,o]}const[Be,He,We,ze]=Ne();function Ye(e,t){const n=t?e?ze:We:e?He:Be;return(t,o,r)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(x(n,o)&&o in t?n:t,o,r)}const Xe={get:Ye(!1,!1)},Ke={get:Ye(!1,!0)},qe={get:Ye(!0,!1)};const Ze=new WeakMap,Ge=new WeakMap,Je=new WeakMap,Qe=new WeakMap;function et(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>V(e).slice(8,-1))(e))}function tt(e){return st(e)?e:ot(e,!1,Ee,Xe,Ze)}function nt(e){return ot(e,!0,Te,qe,Je)}function ot(e,t,n,o,r){if(!A(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const s=r.get(e);if(s)return s;const i=et(e);if(0===i)return e;const l=new Proxy(e,2===i?o:n);return r.set(e,l),l}function rt(e){return st(e)?rt(e.__v_raw):!(!e||!e.__v_isReactive)}function st(e){return!(!e||!e.__v_isReadonly)}function it(e){return!(!e||!e.__v_isShallow)}function lt(e){return rt(e)||st(e)}function ct(e){const t=e&&e.__v_raw;return t?ct(t):e}function at(e){return z(e,"__v_skip",!0),e}const ut=e=>A(e)?tt(e):e,ft=e=>A(e)?nt(e):e;function pt(e){ae&&re&&he((e=ct(e)).dep||(e.dep=J()))}function dt(e,t){(e=ct(e)).dep&&ve(e.dep)}function ht(e){return!(!e||!0!==e.__v_isRef)}const _t={get:(e,t,n)=>function(e){return ht(e)?e.value:e}(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return ht(r)&&!ht(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function vt(e){return rt(e)?e:new Proxy(e,_t)}class mt{constructor(e,t,n,o){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new le(e,(()=>{this._dirty||(this._dirty=!0,dt(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=n}get value(){const e=ct(this);return pt(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}Promise.resolve();function gt(e,t,n,o){let r;try{r=o?e(...o):e()}catch(e){bt(e,t,n)}return r}function yt(e,t,n,o){if(E(e)){const r=gt(e,t,n,o);return r&&k(r)&&r.catch((e=>{bt(e,t,n)})),r}const r=[];for(let s=0;s>>1;Nt(Ct[o])Nt(e)-Nt(t))),kt=0;ktnull==e.id?1/0:e.id;function Bt(e){xt=!1,wt=!0,jt(e),Ct.sort(((e,t)=>Nt(e)-Nt(t)));try{for(Ot=0;OtHt.emit(e,...t))),Wt=[];else if("undefined"!=typeof window&&window.HTMLElement&&!(null===(o=null===(n=window.navigator)||void 0===n?void 0:n.userAgent)||void 0===o?void 0:o.includes("jsdom"))){(t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push((e=>{Xt(e,t)})),setTimeout((()=>{Ht||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,zt=!0,Wt=[])}),3e3)}else zt=!0,Wt=[]}const Kt=Gt("component:added"),qt=Gt("component:updated"),Zt=Gt("component:removed");function Gt(e){return t=>{Yt(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}function Jt(e,t,...n){const o=e.vnode.props||p;let r=n;const s=t.startsWith("update:"),i=s&&t.slice(7);if(i&&i in o){const e=`${"modelValue"===i?"model":i}Modifiers`,{number:t,trim:s}=o[e]||p;s?r=n.map((e=>e.trim())):t&&(r=n.map(Y))}let l;__VUE_PROD_DEVTOOLS__&&function(e,t,n){Yt("component:emit",e.appContext.app,e,t,n)}(e,t,r);let c=o[l=B(t)]||o[l=B(U(t))];!c&&s&&(c=o[l=B(D(t))]),c&&yt(c,e,6,r);const a=o[l+"Once"];if(a){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,yt(a,e,6,r)}}function Qt(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(void 0!==r)return r;const s=e.emits;let i={},l=!1;if(__VUE_OPTIONS_API__&&!E(e)){const o=e=>{const n=Qt(e,t,!0);n&&(l=!0,y(i,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return s||l?(C(s)?s.forEach((e=>i[e]=null)):y(i,s),o.set(e,i),i):(o.set(e,null),null)}function en(e,t){return!(!e||!m(t))&&(t=t.slice(2).replace(/Once$/,""),x(e,t[0].toLowerCase()+t.slice(1))||x(e,D(t))||x(e,t))}let tn=null,nn=null;function on(e){const t=tn;return tn=e,nn=e&&e.type.__scopeId||null,t}function rn(e,t=tn,n){if(!t)return e;if(e._n)return e;const o=(...n)=>{o._d&&Bo(-1);const r=on(t),s=e(...n);return on(r),o._d&&Bo(1),__VUE_PROD_DEVTOOLS__&&qt(t),s};return o._n=!0,o._c=!0,o._d=!0,o}function sn(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:s,propsOptions:[i],slots:l,attrs:c,emit:a,render:u,renderCache:f,data:p,setupState:d,ctx:h,inheritAttrs:_}=e;let v,m;const y=on(e);try{if(4&n.shapeFlag){const e=r||o;v=or(u.call(e,e,f,s,d,p,h)),m=c}else{const e=t;0,v=or(e.length>1?e(s,{attrs:c,slots:l,emit:a}):e(s,null)),m=t.props?c:ln(c)}}catch(t){$o.length=0,bt(t,e,1),v=Jo(Io)}let b=v;if(m&&!1!==_){const e=Object.keys(m),{shapeFlag:t}=b;e.length&&7&t&&(i&&e.some(g)&&(m=cn(m,i)),b=er(b,m))}return n.dirs&&(b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&(b.transition=n.transition),v=b,on(y),v}const ln=e=>{let t;for(const n in e)("class"===n||"style"===n||m(n))&&((t||(t={}))[n]=e[n]);return t},cn=(e,t)=>{const n={};for(const o in e)g(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function an(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let r=0;r1)return n&&E(t)?t.call(o.proxy):t}else 0}const dn={};function hn(e,t,n){return _n(e,t,n)}function _n(e,t,{immediate:n,deep:o,flush:r,onTrack:s,onTrigger:i}=p){const l=vr;let c,a,u=!1,f=!1;if(ht(e)?(c=()=>e.value,u=it(e)):rt(e)?(c=()=>e,o=!0):C(e)?(f=!0,u=e.some(rt),c=()=>e.map((e=>ht(e)?e.value:rt(e)?gn(e):E(e)?gt(e,l,2):void 0))):c=E(e)?t?()=>gt(e,l,2):()=>{if(!l||!l.isUnmounted)return a&&a(),yt(e,l,3,[d])}:h,t&&o){const e=c;c=()=>gn(e())}let d=e=>{a=g.onStop=()=>{gt(e,l,4)}};if(Cr)return d=h,t?n&&yt(t,l,3,[c(),f?[]:void 0,d]):c(),h;let _=f?[]:dn;const v=()=>{if(g.active)if(t){const e=g.run();(o||u||(f?e.some(((e,t)=>H(e,_[t]))):H(e,_)))&&(a&&a(),yt(t,l,3,[e,_===dn?void 0:_,d]),_=e)}else g.run()};let m;v.allowRecurse=!!t,m="sync"===r?v:"post"===r?()=>So(v,l&&l.suspense):()=>{!l||l.isMounted?function(e){$t(e,Et,St,Tt)}(v):v()};const g=new le(c,m);return t?n?v():_=g.run():"post"===r?So(g.run.bind(g),l&&l.suspense):g.run(),()=>{g.stop(),l&&l.scope&&b(l.scope.effects,g)}}function vn(e,t,n){const o=this.proxy,r=T(e)?e.includes(".")?mn(o,e):()=>o[e]:e.bind(o,o);let s;E(t)?s=t:(s=t.handler,n=t);const i=vr;gr(this);const l=_n(r,s.bind(o),n);return i?gr(i):yr(),l}function mn(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e{gn(e,t)}));else if(F(e))for(const n in e)gn(e[n],t);return e}function yn(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Dn((()=>{e.isMounted=!0})),Hn((()=>{e.isUnmounting=!0})),e}const bn=[Function,Array],wn={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:bn,onEnter:bn,onAfterEnter:bn,onEnterCancelled:bn,onBeforeLeave:bn,onLeave:bn,onAfterLeave:bn,onLeaveCancelled:bn,onBeforeAppear:bn,onAppear:bn,onAfterAppear:bn,onAppearCancelled:bn},setup(e,{slots:t}){const n=mr(),o=yn();let r;return()=>{const s=t.default&&Tn(t.default(),!0);if(!s||!s.length)return;const i=ct(e),{mode:l}=i;const c=s[0];if(o.isLeaving)return On(c);const a=Sn(c);if(!a)return On(c);const u=Cn(a,i,o,n);En(a,u);const f=n.subTree,p=f&&Sn(f);let d=!1;const{getTransitionKey:h}=a.type;if(h){const e=h();void 0===r?r=e:e!==r&&(r=e,d=!0)}if(p&&p.type!==Io&&(!Xo(a,p)||d)){const e=Cn(p,i,o,n);if(En(p,e),"out-in"===l)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,n.update()},On(c);"in-out"===l&&a.type!==Io&&(e.delayLeave=(e,t,n)=>{xn(o,p)[String(p.key)]=p,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=n})}return c}}};function xn(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Cn(e,t,n,o){const{appear:r,mode:s,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:u,onBeforeLeave:f,onLeave:p,onAfterLeave:d,onLeaveCancelled:h,onBeforeAppear:_,onAppear:v,onAfterAppear:m,onAppearCancelled:g}=t,y=String(e.key),b=xn(n,e),w=(e,t)=>{e&&yt(e,o,9,t)},x={mode:s,persisted:i,beforeEnter(t){let o=l;if(!n.isMounted){if(!r)return;o=_||l}t._leaveCb&&t._leaveCb(!0);const s=b[y];s&&Xo(e,s)&&s.el._leaveCb&&s.el._leaveCb(),w(o,[t])},enter(e){let t=c,o=a,s=u;if(!n.isMounted){if(!r)return;t=v||c,o=m||a,s=g||u}let i=!1;const l=e._enterCb=t=>{i||(i=!0,w(t?s:o,[e]),x.delayedLeave&&x.delayedLeave(),e._enterCb=void 0)};t?(t(e,l),t.length<=1&&l()):l()},leave(t,o){const r=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return o();w(f,[t]);let s=!1;const i=t._leaveCb=n=>{s||(s=!0,o(),w(n?h:d,[t]),t._leaveCb=void 0,b[r]===e&&delete b[r])};b[r]=e,p?(p(t,i),p.length<=1&&i()):i()},clone:e=>Cn(e,t,n,o)};return x}function On(e){if(An(e))return(e=er(e)).children=null,e}function Sn(e){return An(e)?e.children?e.children[0]:void 0:e}function En(e,t){6&e.shapeFlag&&e.component?En(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Tn(e,t=!1){let n=[],o=0;for(let r=0;r1)for(let e=0;e!!e.type.__asyncLoader;const An=e=>e.type.__isKeepAlive;RegExp,RegExp;function kn(e,t){return C(e)?e.some((e=>kn(e,t))):T(e)?e.split(",").includes(t):!!e.test&&e.test(t)}function Ln(e,t){Fn(e,"a",t)}function Vn(e,t){Fn(e,"da",t)}function Fn(e,t,n=vr){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if($n(t,o,n),n){let e=n.parent;for(;e&&e.parent;)An(e.parent.vnode)&&Mn(o,t,n,e),e=e.parent}}function Mn(e,t,n,o){const r=$n(t,e,o,!0);Wn((()=>{b(o[t],r)}),n)}function In(e){let t=e.shapeFlag;256&t&&256,512&t&&512,e.shapeFlag=t}function Rn(e){return 128&e.shapeFlag?e.ssContent:e}function $n(e,t,n=vr,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;fe(),gr(n);const r=yt(t,n,e,o);return yr(),pe(),r});return o?r.unshift(s):r.push(s),s}}const Un=e=>(t,n=vr)=>(!Cr||"sp"===e)&&$n(e,t,n),jn=Un("bm"),Dn=Un("m"),Nn=Un("bu"),Bn=Un("u"),Hn=Un("bum"),Wn=Un("um"),zn=Un("sp"),Yn=Un("rtg"),Xn=Un("rtc");function Kn(e,t=vr){$n("ec",e,t)}let qn=!0;function Zn(e){const t=Qn(e),n=e.proxy,o=e.ctx;qn=!1,t.beforeCreate&&Gn(t.beforeCreate,e,"bc");const{data:r,computed:s,methods:i,watch:l,provide:c,inject:a,created:u,beforeMount:f,mounted:p,beforeUpdate:d,updated:_,activated:v,deactivated:m,beforeDestroy:g,beforeUnmount:y,destroyed:b,unmounted:w,render:x,renderTracked:O,renderTriggered:S,errorCaptured:T,serverPrefetch:P,expose:k,inheritAttrs:L,components:V,directives:F,filters:M}=t;if(a&&function(e,t,n=h,o=!1){C(e)&&(e=oo(e));for(const n in e){const r=e[n];let s;s=A(r)?"default"in r?pn(r.from||n,r.default,!0):pn(r.from||n):pn(r),ht(s)&&o?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e}):t[n]=s}}(a,o,null,e.appContext.config.unwrapInjectedRef),i)for(const e in i){const t=i[e];E(t)&&(o[e]=t.bind(n))}if(r){0;const t=r.call(n,n);0,A(t)&&(e.data=tt(t))}if(qn=!0,s)for(const e in s){const t=s[e],r=E(t)?t.bind(n,n):E(t.get)?t.get.bind(n,n):h;0;const i=!E(t)&&E(t.set)?t.set.bind(n):h,l=Lr({get:r,set:i});Object.defineProperty(o,e,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e})}if(l)for(const e in l)Jn(l[e],o,n,e);if(c){const e=E(c)?c.call(n):c;Reflect.ownKeys(e).forEach((t=>{!function(e,t){if(vr){let n=vr.provides;const o=vr.parent&&vr.parent.provides;o===n&&(n=vr.provides=Object.create(o)),n[e]=t}}(t,e[t])}))}function I(e,t){C(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(u&&Gn(u,e,"c"),I(jn,f),I(Dn,p),I(Nn,d),I(Bn,_),I(Ln,v),I(Vn,m),I(Kn,T),I(Xn,O),I(Yn,S),I(Hn,y),I(Wn,w),I(zn,P),C(k))if(k.length){const t=e.exposed||(e.exposed={});k.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});x&&e.render===h&&(e.render=x),null!=L&&(e.inheritAttrs=L),V&&(e.components=V),F&&(e.directives=F)}function Gn(e,t,n){yt(C(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function Jn(e,t,n,o){const r=o.includes(".")?mn(n,o):()=>n[o];if(T(e)){const n=t[e];E(n)&&hn(r,n)}else if(E(e))hn(r,e.bind(n));else if(A(e))if(C(e))e.forEach((e=>Jn(e,t,n,o)));else{const o=E(e.handler)?e.handler.bind(n):t[e.handler];E(o)&&hn(r,o,e)}else 0}function Qn(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let c;return l?c=l:r.length||n||o?(c={},r.length&&r.forEach((e=>eo(c,e,i,!0))),eo(c,t,i)):c=t,s.set(t,c),c}function eo(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&eo(e,s,n,!0),r&&r.forEach((t=>eo(e,t,n,!0)));for(const r in t)if(o&&"expose"===r);else{const o=to[r]||n&&n[r];e[r]=o?o(e[r],t[r]):t[r]}return e}const to={data:no,props:so,emits:so,methods:so,computed:so,beforeCreate:ro,created:ro,beforeMount:ro,mounted:ro,beforeUpdate:ro,updated:ro,beforeDestroy:ro,beforeUnmount:ro,destroyed:ro,unmounted:ro,activated:ro,deactivated:ro,errorCaptured:ro,serverPrefetch:ro,components:so,directives:so,watch:function(e,t){if(!e)return t;if(!t)return e;const n=y(Object.create(null),e);for(const o in t)n[o]=ro(e[o],t[o]);return n},provide:no,inject:function(e,t){return so(oo(e),oo(t))}};function no(e,t){return t?e?function(){return y(E(e)?e.call(this,this):e,E(t)?t.call(this,this):t)}:t:e}function oo(e){if(C(e)){const t={};for(let n=0;n{c=!0;const[n,o]=ao(e,t,!0);y(i,n),o&&l.push(...o)};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}if(!s&&!c)return o.set(e,d),d;if(C(s))for(let e=0;e-1,o[1]=n<0||e-1||x(o,"default"))&&l.push(t)}}}}const a=[i,l];return o.set(e,a),a}function uo(e){return"$"!==e[0]}function fo(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:null===e?"null":""}function po(e,t){return fo(e)===fo(t)}function ho(e,t){return C(t)?t.findIndex((t=>po(t,e))):E(t)&&po(t,e)?0:-1}const _o=e=>"_"===e[0]||"$stable"===e,vo=e=>C(e)?e.map(or):[or(e)],mo=(e,t,n)=>{const o=rn(((...e)=>vo(t(...e))),n);return o._c=!1,o},go=(e,t,n)=>{const o=e._ctx;for(const n in e){if(_o(n))continue;const r=e[n];if(E(r))t[n]=mo(0,r,o);else if(null!=r){0;const e=vo(r);t[n]=()=>e}}},yo=(e,t)=>{const n=vo(t);e.slots.default=()=>n};function bo(e,t,n,o){const r=e.dirs,s=t&&t.dirs;for(let i=0;i(s.has(e)||(e&&E(e.install)?(s.add(e),e.install(l,...t)):E(e)&&(s.add(e),e(l,...t))),l),mixin:e=>(__VUE_OPTIONS_API__&&(r.mixins.includes(e)||r.mixins.push(e)),l),component:(e,t)=>t?(r.components[e]=t,l):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,l):r.directives[e],mount(s,c,a){if(!i){const u=Jo(n,o);return u.appContext=r,c&&t?t(u,s):e(u,s,a),i=!0,l._container=s,s.__vue_app__=l,__VUE_PROD_DEVTOOLS__&&(l._instance=u.component,function(e,t){Yt("app:init",e,t,{Fragment:Fo,Text:Mo,Comment:Io,Static:Ro})}(l,Vr)),Pr(u.component)||u.component.proxy}},unmount(){i&&(e(null,l._container),__VUE_PROD_DEVTOOLS__&&(l._instance=null,function(e){Yt("app:unmount",e)}(l)),delete l._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,l)};return l}}function Oo(e,t,n,o,r=!1){if(C(e))return void e.forEach(((e,s)=>Oo(e,t&&(C(t)?t[s]:t),n,o,r)));if(Pn(o)&&!r)return;const s=4&o.shapeFlag?Pr(o.component)||o.component.proxy:o.el,i=r?null:s,{i:l,r:c}=e;const a=t&&t.r,u=l.refs===p?l.refs={}:l.refs,f=l.setupState;if(null!=a&&a!==c&&(T(a)?(u[a]=null,x(f,a)&&(f[a]=null)):ht(a)&&(a.value=null)),E(c))gt(c,l,12,[i,u]);else{const t=T(c),o=ht(c);if(t||o){const o=()=>{if(e.f){const n=t?u[c]:c.value;r?C(n)&&b(n,s):C(n)?n.includes(s)||n.push(s):t?u[c]=[s]:(c.value=[s],e.k&&(u[e.k]=c.value))}else t?(u[c]=i,x(f,c)&&(f[c]=i)):ht(c)&&(c.value=i,e.k&&(u[e.k]=i))};i?(o.id=-1,So(o,n)):o()}else 0}}const So=fn;function Eo(e,t){"boolean"!=typeof __VUE_OPTIONS_API__&&(K().__VUE_OPTIONS_API__=!0),"boolean"!=typeof __VUE_PROD_DEVTOOLS__&&(K().__VUE_PROD_DEVTOOLS__=!1);const n=K();n.__VUE__=!0,__VUE_PROD_DEVTOOLS__&&Xt(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);const{insert:o,remove:r,patchProp:s,createElement:i,createText:l,createComment:c,setText:a,setElementText:u,parentNode:f,nextSibling:_,setScopeId:v=h,cloneNode:m,insertStaticContent:g}=e,b=(e,t,n,o=null,r=null,s=null,i=!1,l=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Xo(e,t)&&(o=Q(e),X(e,r,s,!0),e=null),-2===t.patchFlag&&(c=!1,t.dynamicChildren=null);const{type:a,ref:u,shapeFlag:f}=t;switch(a){case Mo:w(e,t,n,o);break;case Io:C(e,t,n,o);break;case Ro:null==e&&O(t,n,o,i);break;case Fo:F(e,t,n,o,r,s,i,l,c);break;default:1&f?E(e,t,n,o,r,s,i,l,c):6&f?M(e,t,n,o,r,s,i,l,c):(64&f||128&f)&&a.process(e,t,n,o,r,s,i,l,c,te)}null!=u&&r&&Oo(u,e&&e.ref,s,t||e,!t)},w=(e,t,n,r)=>{if(null==e)o(t.el=l(t.children),n,r);else{const n=t.el=e.el;t.children!==e.children&&a(n,t.children)}},C=(e,t,n,r)=>{null==e?o(t.el=c(t.children||""),n,r):t.el=e.el},O=(e,t,n,o)=>{[e.el,e.anchor]=g(e.children,t,n,o,e.el,e.anchor)},S=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=_(e),r(e),e=n;r(t)},E=(e,t,n,o,r,s,i,l,c)=>{i=i||"svg"===t.type,null==e?T(t,n,o,r,s,i,l,c):k(e,t,r,s,i,l,c)},T=(e,t,n,r,l,c,a,f)=>{let p,d;const{type:h,props:_,shapeFlag:v,transition:g,patchFlag:y,dirs:b}=e;if(e.el&&void 0!==m&&-1===y)p=e.el=m(e.el);else{if(p=e.el=i(e.type,c,_&&_.is,_),8&v?u(p,e.children):16&v&&A(e.children,p,null,r,l,c&&"foreignObject"!==h,a,f),b&&bo(e,null,r,"created"),_){for(const t in _)"value"===t||I(t)||s(p,t,null,_[t],c,e.children,r,l,J);"value"in _&&s(p,"value",null,_.value),(d=_.onVnodeBeforeMount)&&ir(d,r,e)}P(p,e,e.scopeId,a,r)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(p,"__vnode",{value:e,enumerable:!1}),Object.defineProperty(p,"__vueParentComponent",{value:r,enumerable:!1})),b&&bo(e,null,r,"beforeMount");const w=(!l||l&&!l.pendingBranch)&&g&&!g.persisted;w&&g.beforeEnter(p),o(p,t,n),((d=_&&_.onVnodeMounted)||w||b)&&So((()=>{d&&ir(d,r,e),w&&g.enter(p),b&&bo(e,null,r,"mounted")}),l)},P=(e,t,n,o,r)=>{if(n&&v(e,n),o)for(let t=0;t{for(let a=c;a{const c=t.el=e.el;let{patchFlag:a,dynamicChildren:f,dirs:d}=t;a|=16&e.patchFlag;const h=e.props||p,_=t.props||p;let v;n&&To(n,!1),(v=_.onVnodeBeforeUpdate)&&ir(v,n,t,e),d&&bo(t,e,n,"beforeUpdate"),n&&To(n,!0);const m=r&&"foreignObject"!==t.type;if(f?L(e.dynamicChildren,f,c,n,o,m,i):l||B(e,t,c,null,n,o,m,i,!1),a>0){if(16&a)V(c,t,h,_,n,o,r);else if(2&a&&h.class!==_.class&&s(c,"class",null,_.class,r),4&a&&s(c,"style",h.style,_.style,r),8&a){const i=t.dynamicProps;for(let t=0;t{v&&ir(v,n,t,e),d&&bo(t,e,n,"updated")}),o)},L=(e,t,n,o,r,s,i)=>{for(let l=0;l{if(n!==o){for(const c in o){if(I(c))continue;const a=o[c],u=n[c];a!==u&&"value"!==c&&s(e,c,u,a,l,t.children,r,i,J)}if(n!==p)for(const c in n)I(c)||c in o||s(e,c,n[c],null,l,t.children,r,i,J);"value"in o&&s(e,"value",n.value,o.value)}},F=(e,t,n,r,s,i,c,a,u)=>{const f=t.el=e?e.el:l(""),p=t.anchor=e?e.anchor:l("");let{patchFlag:d,dynamicChildren:h,slotScopeIds:_}=t;_&&(a=a?a.concat(_):_),null==e?(o(f,n,r),o(p,n,r),A(t.children,n,p,s,i,c,a,u)):d>0&&64&d&&h&&e.dynamicChildren?(L(e.dynamicChildren,h,n,s,i,c,a),(null!=t.key||s&&t===s.subTree)&&Po(e,t,!0)):B(e,t,n,p,s,i,c,a,u)},M=(e,t,n,o,r,s,i,l,c)=>{t.slotScopeIds=l,null==e?512&t.shapeFlag?r.ctx.activate(t,n,o,i,c):R(t,n,o,r,s,i,c):$(e,t,c)},R=(e,t,n,o,r,s,i)=>{const l=e.component=_r(e,o,r);if(An(e)&&(l.ctx.renderer=te),Or(l),l.asyncDep){if(r&&r.registerDep(l,j),!e.el){const e=l.subTree=Jo(Io);C(null,e,t,n)}}else j(l,e,t,n,r,s,i)},$=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:r,component:s}=e,{props:i,children:l,patchFlag:c}=t,a=s.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&c>=0))return!(!r&&!l||l&&l.$stable)||o!==i&&(o?!i||an(o,i,a):!!i);if(1024&c)return!0;if(16&c)return o?an(o,i,a):!!i;if(8&c){const e=t.dynamicProps;for(let t=0;tOt&&Ct.splice(t,1)}(o.update),o.update()}else t.component=e.component,t.el=e.el,o.vnode=t},j=(e,t,n,o,r,s,i)=>{const l=e.effect=new le((()=>{if(e.isMounted){let t,{next:n,bu:o,u:l,parent:c,vnode:a}=e,u=n;0,To(e,!1),n?(n.el=a.el,N(e,n,i)):n=a,o&&W(o),(t=n.props&&n.props.onVnodeBeforeUpdate)&&ir(t,c,n,a),To(e,!0);const p=sn(e);0;const d=e.subTree;e.subTree=p,b(d,p,f(d.el),Q(d),e,r,s),n.el=p.el,null===u&&un(e,p.el),l&&So(l,r),(t=n.props&&n.props.onVnodeUpdated)&&So((()=>ir(t,c,n,a)),r),__VUE_PROD_DEVTOOLS__&&qt(e)}else{let i;const{el:l,props:c}=t,{bm:a,m:u,parent:f}=e,p=Pn(t);if(To(e,!1),a&&W(a),!p&&(i=c&&c.onVnodeBeforeMount)&&ir(i,f,t),To(e,!0),l&&oe){const n=()=>{e.subTree=sn(e),oe(l,e.subTree,e,r,null)};p?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{0;const i=e.subTree=sn(e);0,b(null,i,n,o,e,r,s),t.el=i.el}if(u&&So(u,r),!p&&(i=c&&c.onVnodeMounted)){const e=t;So((()=>ir(i,f,e)),r)}256&t.shapeFlag&&e.a&&So(e.a,r),e.isMounted=!0,__VUE_PROD_DEVTOOLS__&&Kt(e),t=n=o=null}}),(()=>It(e.update)),e.scope),c=e.update=l.run.bind(l);c.id=e.uid,To(e,!0),c()},N=(e,t,n)=>{t.component=e;const o=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:i}}=e,l=ct(r),[c]=e.propsOptions;let a=!1;if(!(o||i>0)||16&i){let o;lo(e,t,r,s)&&(a=!0);for(const s in l)t&&(x(t,s)||(o=D(s))!==s&&x(t,o))||(c?!n||void 0===n[s]&&void 0===n[o]||(r[s]=co(c,l,s,void 0,e,!0)):delete r[s]);if(s!==l)for(const e in s)t&&x(t,e)||(delete s[e],a=!0)}else if(8&i){const n=e.vnode.dynamicProps;for(let o=0;o{const{vnode:o,slots:r}=e;let s=!0,i=p;if(32&o.shapeFlag){const e=t._;e?n&&1===e?s=!1:(y(r,t),n||1!==e||delete r._):(s=!t.$stable,go(t,r)),i=t}else t&&(yo(e,t),i={default:1});if(s)for(const e in r)_o(e)||e in i||delete r[e]})(e,t.children,n),fe(),jt(void 0,e.update),pe()},B=(e,t,n,o,r,s,i,l,c=!1)=>{const a=e&&e.children,f=e?e.shapeFlag:0,p=t.children,{patchFlag:d,shapeFlag:h}=t;if(d>0){if(128&d)return void z(a,p,n,o,r,s,i,l,c);if(256&d)return void H(a,p,n,o,r,s,i,l,c)}8&h?(16&f&&J(a,r,s),p!==a&&u(n,p)):16&f?16&h?z(a,p,n,o,r,s,i,l,c):J(a,r,s,!0):(8&f&&u(n,""),16&h&&A(p,n,o,r,s,i,l,c))},H=(e,t,n,o,r,s,i,l,c)=>{t=t||d;const a=(e=e||d).length,u=t.length,f=Math.min(a,u);let p;for(p=0;pu?J(e,r,s,!0,!1,f):A(t,n,o,r,s,i,l,c,f)},z=(e,t,n,o,r,s,i,l,c)=>{let a=0;const u=t.length;let f=e.length-1,p=u-1;for(;a<=f&&a<=p;){const o=e[a],u=t[a]=c?rr(t[a]):or(t[a]);if(!Xo(o,u))break;b(o,u,n,null,r,s,i,l,c),a++}for(;a<=f&&a<=p;){const o=e[f],a=t[p]=c?rr(t[p]):or(t[p]);if(!Xo(o,a))break;b(o,a,n,null,r,s,i,l,c),f--,p--}if(a>f){if(a<=p){const e=p+1,f=ep)for(;a<=f;)X(e[a],r,s,!0),a++;else{const h=a,_=a,v=new Map;for(a=_;a<=p;a++){const e=t[a]=c?rr(t[a]):or(t[a]);null!=e.key&&v.set(e.key,a)}let m,g=0;const y=p-_+1;let w=!1,x=0;const C=new Array(y);for(a=0;a=y){X(o,r,s,!0);continue}let u;if(null!=o.key)u=v.get(o.key);else for(m=_;m<=p;m++)if(0===C[m-_]&&Xo(o,t[m])){u=m;break}void 0===u?X(o,r,s,!0):(C[u-_]=a+1,u>=x?x=u:w=!0,b(o,t[u],n,null,r,s,i,l,c),g++)}const O=w?function(e){const t=e.slice(),n=[0];let o,r,s,i,l;const c=e.length;for(o=0;o>1,e[n[l]]0&&(t[o]=n[s-1]),n[s]=o)}}s=n.length,i=n[s-1];for(;s-- >0;)n[s]=i,i=t[i];return n}(C):d;for(m=O.length-1,a=y-1;a>=0;a--){const e=_+a,f=t[e],p=e+1{const{el:i,type:l,transition:c,children:a,shapeFlag:u}=e;if(6&u)return void Y(e.component.subTree,t,n,r);if(128&u)return void e.suspense.move(t,n,r);if(64&u)return void l.move(e,t,n,te);if(l===Fo){o(i,t,n);for(let e=0;e{let s;for(;e&&e!==t;)s=_(e),o(e,n,r),e=s;o(t,n,r)})(e,t,n);if(2!==r&&1&u&&c)if(0===r)c.beforeEnter(i),o(i,t,n),So((()=>c.enter(i)),s);else{const{leave:e,delayLeave:r,afterLeave:s}=c,l=()=>o(i,t,n),a=()=>{e(i,(()=>{l(),s&&s()}))};r?r(i,l,a):a()}else o(i,t,n)},X=(e,t,n,o=!1,r=!1)=>{const{type:s,props:i,ref:l,children:c,dynamicChildren:a,shapeFlag:u,patchFlag:f,dirs:p}=e;if(null!=l&&Oo(l,null,n,e,!0),256&u)return void t.ctx.deactivate(e);const d=1&u&&p,h=!Pn(e);let _;if(h&&(_=i&&i.onVnodeBeforeUnmount)&&ir(_,t,e),6&u)G(e.component,n,o);else{if(128&u)return void e.suspense.unmount(n,o);d&&bo(e,null,t,"beforeUnmount"),64&u?e.type.remove(e,t,n,r,te,o):a&&(s!==Fo||f>0&&64&f)?J(a,t,n,!1,!0):(s===Fo&&384&f||!r&&16&u)&&J(c,t,n),o&&q(e)}(h&&(_=i&&i.onVnodeUnmounted)||d)&&So((()=>{_&&ir(_,t,e),d&&bo(e,null,t,"unmounted")}),n)},q=e=>{const{type:t,el:n,anchor:o,transition:s}=e;if(t===Fo)return void Z(n,o);if(t===Ro)return void S(e);const i=()=>{r(n),s&&!s.persisted&&s.afterLeave&&s.afterLeave()};if(1&e.shapeFlag&&s&&!s.persisted){const{leave:t,delayLeave:o}=s,r=()=>t(n,i);o?o(e.el,i,r):r()}else i()},Z=(e,t)=>{let n;for(;e!==t;)n=_(e),r(e),e=n;r(t)},G=(e,t,n)=>{const{bum:o,scope:r,update:s,subTree:i,um:l}=e;o&&W(o),r.stop(),s&&(s.active=!1,X(i,e,t,n)),l&&So(l,t),So((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve()),__VUE_PROD_DEVTOOLS__&&Zt(e)},J=(e,t,n,o=!1,r=!1,s=0)=>{for(let i=s;i6&e.shapeFlag?Q(e.component.subTree):128&e.shapeFlag?e.suspense.next():_(e.anchor||e.el),ee=(e,t,n)=>{null==e?t._vnode&&X(t._vnode,null,null,!0):b(t._vnode||null,e,t,null,null,null,n),Dt(),t._vnode=e},te={p:b,um:X,m:Y,r:q,mt:R,mc:A,pc:B,pbc:L,n:Q,o:e};let ne,oe;return t&&([ne,oe]=t(te)),{render:ee,hydrate:ne,createApp:Co(ee,ne)}}function To({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Po(e,t,n=!1){const o=e.children,r=t.children;if(C(o)&&C(r))for(let e=0;e0?Uo||d:null,Do(),No>0&&Uo&&Uo.push(e),e}function Wo(e,t,n,o,r,s){return Ho(Go(e,t,n,o,r,s,!0))}function zo(e,t,n,o,r){return Ho(Jo(e,t,n,o,r,!0))}function Yo(e){return!!e&&!0===e.__v_isVNode}function Xo(e,t){return e.type===t.type&&e.key===t.key}const Ko="__vInternal",qo=({key:e})=>null!=e?e:null,Zo=({ref:e,ref_key:t,ref_for:n})=>null!=e?T(e)||ht(e)||E(e)?{i:tn,r:e,k:t,f:!!n}:e:null;function Go(e,t=null,n=null,o=0,r=null,s=(e===Fo?0:1),i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qo(t),ref:t&&Zo(t),scopeId:nn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null};return l?(sr(c,n),128&s&&e.normalize(c)):n&&(c.shapeFlag|=T(n)?8:16),No>0&&!i&&Uo&&(c.patchFlag>0||6&s)&&32!==c.patchFlag&&Uo.push(c),c}const Jo=Qo;function Qo(e,t=null,n=null,o=0,r=null,i=!1){if(e&&e!==ko||(e=Io),Yo(e)){const o=er(e,t,!0);return n&&sr(o,n),o}if(kr(e)&&(e=e.__vccOpts),t){t=function(e){return e?lt(e)||Ko in e?y({},e):e:null}(t);let{class:e,style:n}=t;e&&!T(e)&&(t.class=a(e)),A(n)&&(lt(n)&&!C(n)&&(n=y({},n)),t.style=s(n))}return Go(e,t,n,o,r,T(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:A(e)?4:E(e)?2:0,i,!0)}function er(e,t,n=!1){const{props:o,ref:r,patchFlag:i,children:l}=e,c=t?function(...e){const t={};for(let n=0;nt(e,n,void 0,s&&s[n])));else{const n=Object.keys(e);r=new Array(n.length);for(let o=0,i=n.length;o!Yo(e)||e.type!==Io&&!(e.type===Fo&&!ar(e.children))))?e:null}const ur=e=>e?br(e)?Pr(e)||e.proxy:ur(e.parent):null,fr=y(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ur(e.parent),$root:e=>ur(e.root),$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?Qn(e):e.type,$forceUpdate:e=>()=>It(e.update),$nextTick:e=>Mt.bind(e.proxy),$watch:e=>__VUE_OPTIONS_API__?vn.bind(e):h}),pr={get({_:e},t){const{ctx:n,setupState:o,data:r,props:s,accessCache:i,type:l,appContext:c}=e;let a;if("$"!==t[0]){const l=i[t];if(void 0!==l)switch(l){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(o!==p&&x(o,t))return i[t]=1,o[t];if(r!==p&&x(r,t))return i[t]=2,r[t];if((a=e.propsOptions[0])&&x(a,t))return i[t]=3,s[t];if(n!==p&&x(n,t))return i[t]=4,n[t];__VUE_OPTIONS_API__&&!qn||(i[t]=0)}}const u=fr[t];let f,d;return u?("$attrs"===t&&de(e,0,t),u(e)):(f=l.__cssModules)&&(f=f[t])?f:n!==p&&x(n,t)?(i[t]=4,n[t]):(d=c.config.globalProperties,x(d,t)?d[t]:void 0)},set({_:e},t,n){const{data:o,setupState:r,ctx:s}=e;return r!==p&&x(r,t)?(r[t]=n,!0):o!==p&&x(o,t)?(o[t]=n,!0):!x(e.props,t)&&(("$"!==t[0]||!(t.slice(1)in e))&&(s[t]=n,!0))},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,propsOptions:s}},i){let l;return!!n[i]||e!==p&&x(e,i)||t!==p&&x(t,i)||(l=s[0])&&x(l,i)||x(o,i)||x(fr,i)||x(r.config.globalProperties,i)},defineProperty(e,t,n){return null!=n.get?this.set(e,t,n.get(),null):null!=n.value&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};const dr=wo();let hr=0;function _r(e,t,n){const o=e.type,r=(t?t.appContext:e.appContext)||dr,s={uid:hr++,vnode:e,type:o,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,scope:new Z(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:ao(o,r),emitsOptions:Qt(o,r),emit:null,emitted:null,propsDefaults:p,inheritAttrs:o.inheritAttrs,ctx:p,data:p,props:p,attrs:p,slots:p,refs:p,setupState:p,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=Jt.bind(null,s),e.ce&&e.ce(s),s}let vr=null;const mr=()=>vr||tn,gr=e=>{vr=e,e.scope.on()},yr=()=>{vr&&vr.scope.off(),vr=null};function br(e){return 4&e.vnode.shapeFlag}let wr,xr,Cr=!1;function Or(e,t=!1){Cr=t;const{props:n,children:o}=e.vnode,r=br(e);io(e,n,r,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=ct(t),z(t,"_",n)):go(t,e.slots={})}else e.slots={},t&&yo(e,t);z(e.slots,Ko,1)})(e,o);const s=r?function(e,t){const n=e.type;0;e.accessCache=Object.create(null),e.proxy=at(new Proxy(e.ctx,pr)),!1;const{setup:o}=n;if(o){const n=e.setupContext=o.length>1?Tr(e):null;gr(e),fe();const r=gt(o,e,0,[e.props,n]);if(pe(),yr(),k(r)){if(r.then(yr,yr),t)return r.then((n=>{Sr(e,n,t)})).catch((t=>{bt(t,e,0)}));e.asyncDep=r}else Sr(e,r,t)}else Er(e,t)}(e,t):void 0;return Cr=!1,s}function Sr(e,t,n){E(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:A(t)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=t),e.setupState=vt(t)),Er(e,n)}function Er(e,t,n){const o=e.type;if(!e.render){if(!t&&wr&&!o.render){const t=o.template;if(t){0;const{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:s,compilerOptions:i}=o,l=y(y({isCustomElement:n,delimiters:s},r),i);o.render=wr(t,l)}}e.render=o.render||h,xr&&xr(e)}__VUE_OPTIONS_API__&&(gr(e),fe(),Zn(e),pe(),yr())}function Tr(e){const t=t=>{e.exposed=t||{}};let n;return{get attrs(){return n||(n=function(e){return new Proxy(e.attrs,{get:(t,n)=>(de(e,0,"$attrs"),t[n])})}(e))},slots:e.slots,emit:e.emit,expose:t}}function Pr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(vt(at(e.exposed)),{get:(t,n)=>n in t?t[n]:n in fr?fr[n](e):void 0}))}function Ar(e){return E(e)&&e.displayName||e.name}function kr(e){return E(e)&&"__vccOpts"in e}const Lr=(e,t)=>function(e,t,n=!1){let o,r;const s=E(e);return s?(o=e,r=h):(o=e.get,r=e.set),new mt(o,r,s||!r,n)}(e,0,Cr);Symbol("");const Vr="3.2.31",Fr="undefined"!=typeof document?document:null,Mr=Fr&&Fr.createElement("template"),Ir={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t?Fr.createElementNS("http://www.w3.org/2000/svg",e):Fr.createElement(e,n?{is:n}:void 0);return"select"===e&&o&&null!=o.multiple&&r.setAttribute("multiple",o.multiple),r},createText:e=>Fr.createTextNode(e),createComment:e=>Fr.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Fr.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,o,r,s){const i=n?n.previousSibling:t.lastChild;if(r&&(r===s||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==s&&(r=r.nextSibling););else{Mr.innerHTML=o?`${e}`:e;const r=Mr.content;if(o){const e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};const Rr=/\s*!important$/;function $r(e,t,n){if(C(n))n.forEach((n=>$r(e,t,n)));else if(t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=jr[t];if(n)return n;let o=U(t);if("filter"!==o&&o in e)return jr[t]=o;o=N(o);for(let n=0;ndocument.createEvent("Event").timeStamp&&(Nr=()=>performance.now());const e=navigator.userAgent.match(/firefox\/(\d+)/i);Br=!!(e&&Number(e[1])<=53)}let Hr=0;const Wr=Promise.resolve(),zr=()=>{Hr=0};function Yr(e,t,n,o){e.addEventListener(t,n,o)}function Xr(e,t,n,o,r=null){const s=e._vei||(e._vei={}),i=s[t];if(o&&i)i.value=o;else{const[n,l]=function(e){let t;if(Kr.test(e)){let n;for(t={};n=e.match(Kr);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[D(e.slice(2)),t]}(t);if(o){const i=s[t]=function(e,t){const n=e=>{const o=e.timeStamp||Nr();(Br||o>=n.attached-1)&&yt(function(e,t){if(C(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=(()=>Hr||(Wr.then(zr),Hr=Nr()))(),n}(o,r);Yr(e,n,i,l)}else i&&(!function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,i,l),s[t]=void 0)}}const Kr=/(?:Once|Passive|Capture)$/;const qr=/^on[a-z]/;"undefined"!=typeof HTMLElement&&HTMLElement;const Zr="transition",Gr="animation",Jr=(e,{slots:t})=>function(e,t,n){const o=arguments.length;return 2===o?A(t)&&!C(t)?Yo(t)?Jo(e,null,[t]):Jo(e,t):Jo(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&Yo(n)&&(n=[n]),Jo(e,t,n))}(wn,ns(e),t);Jr.displayName="Transition";const Qr={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},es=(Jr.props=y({},wn.props,Qr),(e,t=[])=>{C(e)?e.forEach((e=>e(...t))):e&&e(...t)}),ts=e=>!!e&&(C(e)?e.some((e=>e.length>1)):e.length>1);function ns(e){const t={};for(const n in e)n in Qr||(t[n]=e[n]);if(!1===e.css)return t;const{name:n="v",type:o,duration:r,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=s,appearActiveClass:a=i,appearToClass:u=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;if(A(e))return[os(e.enter),os(e.leave)];{const t=os(e);return[t,t]}}(r),_=h&&h[0],v=h&&h[1],{onBeforeEnter:m,onEnter:g,onEnterCancelled:b,onLeave:w,onLeaveCancelled:x,onBeforeAppear:C=m,onAppear:O=g,onAppearCancelled:S=b}=t,E=(e,t,n)=>{ss(e,t?u:l),ss(e,t?a:i),n&&n()},T=(e,t)=>{ss(e,d),ss(e,p),t&&t()},P=e=>(t,n)=>{const r=e?O:g,i=()=>E(t,e,n);es(r,[t,i]),is((()=>{ss(t,e?c:s),rs(t,e?u:l),ts(r)||cs(t,o,_,i)}))};return y(t,{onBeforeEnter(e){es(m,[e]),rs(e,s),rs(e,i)},onBeforeAppear(e){es(C,[e]),rs(e,c),rs(e,a)},onEnter:P(!1),onAppear:P(!0),onLeave(e,t){const n=()=>T(e,t);rs(e,f),ps(),rs(e,p),is((()=>{ss(e,f),rs(e,d),ts(w)||cs(e,o,v,n)})),es(w,[e,n])},onEnterCancelled(e){E(e,!1),es(b,[e])},onAppearCancelled(e){E(e,!0),es(S,[e])},onLeaveCancelled(e){T(e),es(x,[e])}})}function os(e){return Y(e)}function rs(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function ss(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function is(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let ls=0;function cs(e,t,n,o){const r=e._endId=++ls,s=()=>{r===e._endId&&o()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:c}=as(e,t);if(!i)return o();const a=i+"end";let u=0;const f=()=>{e.removeEventListener(a,p),s()},p=t=>{t.target===e&&++u>=c&&f()};setTimeout((()=>{u(n[e]||"").split(", "),r=o("transitionDelay"),s=o("transitionDuration"),i=us(r,s),l=o("animationDelay"),c=o("animationDuration"),a=us(l,c);let u=null,f=0,p=0;t===Zr?i>0&&(u=Zr,f=i,p=s.length):t===Gr?a>0&&(u=Gr,f=a,p=c.length):(f=Math.max(i,a),u=f>0?i>a?Zr:Gr:null,p=u?u===Zr?s.length:c.length:0);return{type:u,timeout:f,propCount:p,hasTransform:u===Zr&&/\b(transform|all)(,|$)/.test(n.transitionProperty)}}function us(e,t){for(;e.lengthfs(t)+fs(e[n]))))}function fs(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function ps(){return document.body.offsetHeight}new WeakMap,new WeakMap;const ds=y({patchProp:(e,t,n,s,i=!1,l,c,a,u)=>{"class"===t?function(e,t,n){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,s,i):"style"===t?function(e,t,n){const o=e.style,r=T(n);if(n&&!r){for(const e in n)$r(o,e,n[e]);if(t&&!T(t))for(const e in t)null==n[e]&&$r(o,e,"")}else{const s=o.display;r?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=s)}}(e,n,s):m(t)?g(t)||Xr(e,t,0,s,c):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,o){if(o)return"innerHTML"===t||"textContent"===t||!!(t in e&&qr.test(t)&&E(n));if("spellcheck"===t||"draggable"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if(qr.test(t)&&T(n))return!1;return t in e}(e,t,s,i))?function(e,t,n,o,s,i,l){if("innerHTML"===t||"textContent"===t)return o&&l(o,s,i),void(e[t]=null==n?"":n);if("value"===t&&"PROGRESS"!==e.tagName&&!e.tagName.includes("-")){e._value=n;const o=null==n?"":n;return e.value===o&&"OPTION"!==e.tagName||(e.value=o),void(null==n&&e.removeAttribute(t))}if(""===n||null==n){const o=typeof e[t];if("boolean"===o)return void(e[t]=r(n));if(null==n&&"string"===o)return e[t]="",void e.removeAttribute(t);if("number"===o){try{e[t]=0}catch(e){}return void e.removeAttribute(t)}}try{e[t]=n}catch(e){}}(e,t,s,l,c,a,u):("true-value"===t?e._trueValue=s:"false-value"===t&&(e._falseValue=s),function(e,t,n,s,i){if(s&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(Dr,t.slice(6,t.length)):e.setAttributeNS(Dr,t,n);else{const s=o(t);null==n||s&&!r(n)?e.removeAttribute(t):e.setAttribute(t,s?"":n)}}(e,t,s,i))}},Ir);let hs;function _s(){return hs||(hs=Eo(ds))}function vs(e){if(T(e)){return document.querySelector(e)}return e}const ms={class:"container-siroi"},gs={key:1},ys=[Go("h1",null,"未上传图片或图片设置异常",-1),Go("p",null,"请在模板页设置如下类似如下格式的 img 标签,支持本地上传和外部引入",-1),Go("p",null,[tr(" 如下代码会被渲染成 "),Go("a",{href:"https://www.siroi.top/photo/",target:"_blank"},"展示页")],-1),Go("pre",null,'        \r\n        \r\n        \r\n        \r\n        \r\n            ',-1),Go("ol",null,[tr(" img 参数说明 "),Go("li",null,"data-header:标题"),Go("li",null,"data-info:内容"),Go("li",null,"vertical:是否竖向排列(默认竖向即vertical=true)")],-1)];const bs={async mounted(){const e=await fetch("/wp-admin/admin-ajax.php?action=getPhoto&post="+this.$data.id);try{if(e.ok){const{imgs:t,code:n}=await e.json();200==n?(this.imgs=t,this.showError=t.length<=0):console.error(n)}else console.error("HTTP "+e.status)}catch(e){console.error(e)}}};var ws=n(2637);const xs=(0,ws.Z)(bs,[["render",function(e,t,n,o,r,s){const i=Lo(Ao,l="siroi",!0,c)||l;var l,c;return jo(),Wo("div",ms,[!1===e.showError?(jo(!0),Wo(Fo,{key:0},lr(e.imgs,(e=>(jo(),zo(i,{"data-image":e.img,key:e.img,vertical:null==e.vertical||!0===e.vertical},{default:rn((()=>[Go("h1",null,u(e.header),1),Go("p",null,u(e.info),1)])),_:2},1032,["data-image","vertical"])))),128)):nr("v-if",!0),e.showError?(jo(),Wo("div",gs,ys)):nr("v-if",!0)])}]]),Cs={class:"siroi-info"};const Os={props:["dataImage","vertical"],mounted(){this.vertical?(this.$refs.siroichild.style.width="240px",this.$refs.siroichild.style.height="320px"):(this.$refs.siroichild.style.width="320px",this.$refs.siroichild.style.height="240px"),this.width=this.$refs.siroi.offsetWidth,this.height=this.$refs.siroi.offsetHeight},data:()=>({width:0,height:0,mouseX:0,mouseY:0,mouseLeaveDelay:null}),computed:{mousePX(){return this.mouseX/this.width},mousePY(){return this.mouseY/this.height},siroiStyle(){return{transform:`rotateY(${30*this.mousePX}deg) rotateX(${-30*this.mousePY}deg)`}},siroiBgTransform(){return{transform:`translateX(${-40*this.mousePX}px) translateY(${-40*this.mousePY}px)`}},siroiBgImage(){return this.vertical?{width:"280px",height:"360px",backgroundImage:`url(${this.dataImage})`}:{width:"360px",height:"280px",backgroundImage:`url(${this.dataImage})`}}},methods:{handleMouseMove(e){this.mouseX=e.pageX-this.$refs.siroi.offsetLeft-this.width/2,this.mouseY=e.pageY-this.$refs.siroi.offsetTop-this.height/2},handleMouseEnter(){clearTimeout(this.mouseLeaveDelay)},handleMouseLeave(){this.mouseLeaveDelay=setTimeout((()=>{this.mouseX=0,this.mouseY=0}),1e3)}}},Ss=(0,ws.Z)(Os,[["render",function(e,t,n,o,r,i){return jo(),Wo("div",{class:"siroi-wrap",onMousemove:t[0]||(t[0]=function(){return i.handleMouseMove&&i.handleMouseMove(...arguments)}),onMouseenter:t[1]||(t[1]=function(){return i.handleMouseEnter&&i.handleMouseEnter(...arguments)}),onMouseleave:t[2]||(t[2]=function(){return i.handleMouseLeave&&i.handleMouseLeave(...arguments)}),ref:"siroi"},[Go("div",{class:"siroi",style:s(i.siroiStyle),ref:"siroichild"},[Go("div",{class:"siroi-bg",style:s([i.siroiBgTransform,i.siroiBgImage])},null,4),Go("div",Cs,[cr(e.$slots,"header"),cr(e.$slots,"content")])],4)],544)}]]),Es=document.getElementById("photo-container"),Ts=Es.dataset.id;((...e)=>{const t=_s().createApp(...e);const{mount:n}=t;return t.mount=e=>{const o=vs(e);if(!o)return;const r=t._component;E(r)||r.render||r.template||(r.template=o.innerHTML),o.innerHTML="";const s=n(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),s},t})({...xs,data:()=>({id:Ts,imgs:null,showError:!1})}).component("siroi",Ss).mount(Es)})()})();
+//# sourceMappingURL=page-photo.js.map
\ No newline at end of file
diff --git a/js/page-photo.js.map b/js/page-photo.js.map
new file mode 100644
index 00000000..d40bcac1
--- /dev/null
+++ b/js/page-photo.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"page-photo.js","mappings":"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","sources":["webpack://sakurairo-scripts/./node_modules/_vue-loader@17.0.0@vue-loader/dist/exportHelper.js","webpack://sakurairo-scripts/webpack/bootstrap","webpack://sakurairo-scripts/webpack/runtime/global","webpack://sakurairo-scripts/./node_modules/_@vue_shared@3.2.31@@vue/shared/dist/shared.esm-bundler.js","webpack://sakurairo-scripts/./node_modules/_@vue_reactivity@3.2.31@@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://sakurairo-scripts/./node_modules/_@vue_runtime-core@3.2.31@@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://sakurairo-scripts/./node_modules/_@vue_runtime-dom@3.2.31@@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://sakurairo-scripts/./src/page-photo/app.vue","webpack://sakurairo-scripts/./src/page-photo/app.vue?9915","webpack://sakurairo-scripts/./src/page-photo/siroi.vue","webpack://sakurairo-scripts/./src/page-photo/siroi.vue?42c0","webpack://sakurairo-scripts/./src/page-photo/index.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n    const target = sfc.__vccOpts || sfc;\n    for (const [key, val] of props) {\n        target[key] = val;\n    }\n    return target;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n * IMPORTANT: all calls of this function must be prefixed with\r\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\r\n * So that rollup can tree-shake them if necessary.\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n    const map = Object.create(null);\r\n    const list = str.split(',');\r\n    for (let i = 0; i < list.length; i++) {\r\n        map[list[i]] = true;\r\n    }\r\n    return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\r\n}\n\n/**\r\n * dev only flag -> name mapping\r\n */\r\nconst PatchFlagNames = {\r\n    [1 /* TEXT */]: `TEXT`,\r\n    [2 /* CLASS */]: `CLASS`,\r\n    [4 /* STYLE */]: `STYLE`,\r\n    [8 /* PROPS */]: `PROPS`,\r\n    [16 /* FULL_PROPS */]: `FULL_PROPS`,\r\n    [32 /* HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\r\n    [64 /* STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\r\n    [128 /* KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\r\n    [256 /* UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\r\n    [512 /* NEED_PATCH */]: `NEED_PATCH`,\r\n    [1024 /* DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\r\n    [2048 /* DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\r\n    [-1 /* HOISTED */]: `HOISTED`,\r\n    [-2 /* BAIL */]: `BAIL`\r\n};\n\n/**\r\n * Dev only\r\n */\r\nconst slotFlagsText = {\r\n    [1 /* STABLE */]: 'STABLE',\r\n    [2 /* DYNAMIC */]: 'DYNAMIC',\r\n    [3 /* FORWARDED */]: 'FORWARDED'\r\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\r\n    'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\r\n    'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\r\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n    // Split the content into individual lines but capture the newline sequence\r\n    // that separated each line. This is important because the actual sequence is\r\n    // needed to properly take into account the full line length for offset\r\n    // comparison\r\n    let lines = source.split(/(\\r?\\n)/);\r\n    // Separate the lines and newline sequences into separate arrays for easier referencing\r\n    const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\r\n    lines = lines.filter((_, idx) => idx % 2 === 0);\r\n    let count = 0;\r\n    const res = [];\r\n    for (let i = 0; i < lines.length; i++) {\r\n        count +=\r\n            lines[i].length +\r\n                ((newlineSequences[i] && newlineSequences[i].length) || 0);\r\n        if (count >= start) {\r\n            for (let j = i - range; j <= i + range || end > count; j++) {\r\n                if (j < 0 || j >= lines.length)\r\n                    continue;\r\n                const line = j + 1;\r\n                res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`);\r\n                const lineLength = lines[j].length;\r\n                const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\r\n                if (j === i) {\r\n                    // push underline\r\n                    const pad = start - (count - (lineLength + newLineSeqLength));\r\n                    const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n                    res.push(`   |  ` + ' '.repeat(pad) + '^'.repeat(length));\r\n                }\r\n                else if (j > i) {\r\n                    if (end > count) {\r\n                        const length = Math.max(Math.min(end - count, lineLength), 1);\r\n                        res.push(`   |  ` + '^'.repeat(length));\r\n                    }\r\n                    count += lineLength + newLineSeqLength;\r\n                }\r\n            }\r\n            break;\r\n        }\r\n    }\r\n    return res.join('\\n');\r\n}\n\n/**\r\n * On the client we only need to offer special cases for boolean attributes that\r\n * have different names from their corresponding dom properties:\r\n * - itemscope -> N/A\r\n * - allowfullscreen -> allowFullscreen\r\n * - formnovalidate -> formNoValidate\r\n * - ismap -> isMap\r\n * - nomodule -> noModule\r\n * - novalidate -> noValidate\r\n * - readonly -> readOnly\r\n */\r\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\r\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\r\n/**\r\n * The full list is needed during SSR to produce the correct initial markup.\r\n */\r\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\r\n    `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\r\n    `loop,open,required,reversed,scoped,seamless,` +\r\n    `checked,muted,multiple,selected`);\r\n/**\r\n * Boolean attributes should be included if the value is truthy or ''.\r\n * e.g. `\r\n        const forcePatchValue = (type === 'input' && dirs) || type === 'option';\r\n        // skip props & children if this is hoisted static nodes\r\n        // #5405 in dev, always hydrate children for HMR\r\n        if ((process.env.NODE_ENV !== 'production') || forcePatchValue || patchFlag !== -1 /* HOISTED */) {\r\n            if (dirs) {\r\n                invokeDirectiveHook(vnode, null, parentComponent, 'created');\r\n            }\r\n            // props\r\n            if (props) {\r\n                if (forcePatchValue ||\r\n                    !optimized ||\r\n                    patchFlag & (16 /* FULL_PROPS */ | 32 /* HYDRATE_EVENTS */)) {\r\n                    for (const key in props) {\r\n                        if ((forcePatchValue && key.endsWith('value')) ||\r\n                            (isOn(key) && !isReservedProp(key))) {\r\n                            patchProp(el, key, null, props[key], false, undefined, parentComponent);\r\n                        }\r\n                    }\r\n                }\r\n                else if (props.onClick) {\r\n                    // Fast path for click listeners (which is most often) to avoid\r\n                    // iterating through props.\r\n                    patchProp(el, 'onClick', null, props.onClick, false, undefined, parentComponent);\r\n                }\r\n            }\r\n            // vnode / directive hooks\r\n            let vnodeHooks;\r\n            if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\r\n                invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n            }\r\n            if (dirs) {\r\n                invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\r\n            }\r\n            if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\r\n                queueEffectWithSuspense(() => {\r\n                    vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n                    dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\r\n                }, parentSuspense);\r\n            }\r\n            // children\r\n            if (shapeFlag & 16 /* ARRAY_CHILDREN */ &&\r\n                // skip if element has innerHTML / textContent\r\n                !(props && (props.innerHTML || props.textContent))) {\r\n                let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n                let hasWarned = false;\r\n                while (next) {\r\n                    hasMismatch = true;\r\n                    if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n                        warn(`Hydration children mismatch in <${vnode.type}>: ` +\r\n                            `server rendered element contains more child nodes than client vdom.`);\r\n                        hasWarned = true;\r\n                    }\r\n                    // The SSRed DOM contains more nodes than it should. Remove them.\r\n                    const cur = next;\r\n                    next = next.nextSibling;\r\n                    remove(cur);\r\n                }\r\n            }\r\n            else if (shapeFlag & 8 /* TEXT_CHILDREN */) {\r\n                if (el.textContent !== vnode.children) {\r\n                    hasMismatch = true;\r\n                    (process.env.NODE_ENV !== 'production') &&\r\n                        warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\r\n                            `- Client: ${el.textContent}\\n` +\r\n                            `- Server: ${vnode.children}`);\r\n                    el.textContent = vnode.children;\r\n                }\r\n            }\r\n        }\r\n        return el.nextSibling;\r\n    };\r\n    const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n        optimized = optimized || !!parentVNode.dynamicChildren;\r\n        const children = parentVNode.children;\r\n        const l = children.length;\r\n        let hasWarned = false;\r\n        for (let i = 0; i < l; i++) {\r\n            const vnode = optimized\r\n                ? children[i]\r\n                : (children[i] = normalizeVNode(children[i]));\r\n            if (node) {\r\n                node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n            }\r\n            else if (vnode.type === Text && !vnode.children) {\r\n                continue;\r\n            }\r\n            else {\r\n                hasMismatch = true;\r\n                if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n                    warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\r\n                        `server rendered element contains fewer child nodes than client vdom.`);\r\n                    hasWarned = true;\r\n                }\r\n                // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\r\n                patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\r\n            }\r\n        }\r\n        return node;\r\n    };\r\n    const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n        const { slotScopeIds: fragmentSlotScopeIds } = vnode;\r\n        if (fragmentSlotScopeIds) {\r\n            slotScopeIds = slotScopeIds\r\n                ? slotScopeIds.concat(fragmentSlotScopeIds)\r\n                : fragmentSlotScopeIds;\r\n        }\r\n        const container = parentNode(node);\r\n        const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n        if (next && isComment(next) && next.data === ']') {\r\n            return nextSibling((vnode.anchor = next));\r\n        }\r\n        else {\r\n            // fragment didn't hydrate successfully, since we didn't get a end anchor\r\n            // back. This should have led to node/children mismatch warnings.\r\n            hasMismatch = true;\r\n            // since the anchor is missing, we need to create one and insert it\r\n            insert((vnode.anchor = createComment(`]`)), container, next);\r\n            return next;\r\n        }\r\n    };\r\n    const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\r\n        hasMismatch = true;\r\n        (process.env.NODE_ENV !== 'production') &&\r\n            warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* TEXT */\r\n                ? `(text)`\r\n                : isComment(node) && node.data === '['\r\n                    ? `(start of fragment)`\r\n                    : ``);\r\n        vnode.el = null;\r\n        if (isFragment) {\r\n            // remove excessive fragment nodes\r\n            const end = locateClosingAsyncAnchor(node);\r\n            while (true) {\r\n                const next = nextSibling(node);\r\n                if (next && next !== end) {\r\n                    remove(next);\r\n                }\r\n                else {\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n        const next = nextSibling(node);\r\n        const container = parentNode(node);\r\n        remove(node);\r\n        patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\r\n        return next;\r\n    };\r\n    const locateClosingAsyncAnchor = (node) => {\r\n        let match = 0;\r\n        while (node) {\r\n            node = nextSibling(node);\r\n            if (node && isComment(node)) {\r\n                if (node.data === '[')\r\n                    match++;\r\n                if (node.data === ']') {\r\n                    if (match === 0) {\r\n                        return nextSibling(node);\r\n                    }\r\n                    else {\r\n                        match--;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        return node;\r\n    };\r\n    return [hydrate, hydrateNode];\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet supported;\r\nlet perf;\r\nfunction startMeasure(instance, type) {\r\n    if (instance.appContext.config.performance && isSupported()) {\r\n        perf.mark(`vue-${type}-${instance.uid}`);\r\n    }\r\n    if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n        devtoolsPerfStart(instance, type, supported ? perf.now() : Date.now());\r\n    }\r\n}\r\nfunction endMeasure(instance, type) {\r\n    if (instance.appContext.config.performance && isSupported()) {\r\n        const startTag = `vue-${type}-${instance.uid}`;\r\n        const endTag = startTag + `:end`;\r\n        perf.mark(endTag);\r\n        perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\r\n        perf.clearMarks(startTag);\r\n        perf.clearMarks(endTag);\r\n    }\r\n    if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n        devtoolsPerfEnd(instance, type, supported ? perf.now() : Date.now());\r\n    }\r\n}\r\nfunction isSupported() {\r\n    if (supported !== undefined) {\r\n        return supported;\r\n    }\r\n    if (typeof window !== 'undefined' && window.performance) {\r\n        supported = true;\r\n        perf = window.performance;\r\n    }\r\n    else {\r\n        supported = false;\r\n    }\r\n    return supported;\r\n}\n\n/**\r\n * This is only called in esm-bundler builds.\r\n * It is called when a renderer is created, in `baseCreateRenderer` so that\r\n * importing runtime-core is side-effects free.\r\n *\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n    const needWarn = [];\r\n    if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\r\n        (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_OPTIONS_API__`);\r\n        getGlobalThis().__VUE_OPTIONS_API__ = true;\r\n    }\r\n    if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\r\n        (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\r\n        getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\r\n    }\r\n    if ((process.env.NODE_ENV !== 'production') && needWarn.length) {\r\n        const multi = needWarn.length > 1;\r\n        console.warn(`Feature flag${multi ? `s` : ``} ${needWarn.join(', ')} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, ` +\r\n            `which expects these compile-time feature flags to be globally injected ` +\r\n            `via the bundler config in order to get better tree-shaking in the ` +\r\n            `production bundle.\\n\\n` +\r\n            `For more details, see https://link.vuejs.org/feature-flags.`);\r\n    }\r\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense\r\n    ;\r\n/**\r\n * The createRenderer function accepts two generic arguments:\r\n * HostNode and HostElement, corresponding to Node and Element types in the\r\n * host environment. For example, for runtime-dom, HostNode would be the DOM\r\n * `Node` interface and HostElement would be the DOM `Element` interface.\r\n *\r\n * Custom renderers can pass in the platform specific types like this:\r\n *\r\n * ``` js\r\n * const { render, createApp } = createRenderer({\r\n *   patchProp,\r\n *   ...nodeOps\r\n * })\r\n * ```\r\n */\r\nfunction createRenderer(options) {\r\n    return baseCreateRenderer(options);\r\n}\r\n// Separate API for creating hydration-enabled renderer.\r\n// Hydration logic is only used when calling this function, making it\r\n// tree-shakable.\r\nfunction createHydrationRenderer(options) {\r\n    return baseCreateRenderer(options, createHydrationFunctions);\r\n}\r\n// implementation\r\nfunction baseCreateRenderer(options, createHydrationFns) {\r\n    // compile-time feature flags check\r\n    {\r\n        initFeatureFlags();\r\n    }\r\n    const target = getGlobalThis();\r\n    target.__VUE__ = true;\r\n    if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n        setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\r\n    }\r\n    const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;\r\n    // Note: functions inside this closure should use `const xxx = () => {}`\r\n    // style in order to prevent being inlined by minifiers.\r\n    const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = (process.env.NODE_ENV !== 'production') && isHmrUpdating ? false : !!n2.dynamicChildren) => {\r\n        if (n1 === n2) {\r\n            return;\r\n        }\r\n        // patching & not same type, unmount old tree\r\n        if (n1 && !isSameVNodeType(n1, n2)) {\r\n            anchor = getNextHostNode(n1);\r\n            unmount(n1, parentComponent, parentSuspense, true);\r\n            n1 = null;\r\n        }\r\n        if (n2.patchFlag === -2 /* BAIL */) {\r\n            optimized = false;\r\n            n2.dynamicChildren = null;\r\n        }\r\n        const { type, ref, shapeFlag } = n2;\r\n        switch (type) {\r\n            case Text:\r\n                processText(n1, n2, container, anchor);\r\n                break;\r\n            case Comment:\r\n                processCommentNode(n1, n2, container, anchor);\r\n                break;\r\n            case Static:\r\n                if (n1 == null) {\r\n                    mountStaticNode(n2, container, anchor, isSVG);\r\n                }\r\n                else if ((process.env.NODE_ENV !== 'production')) {\r\n                    patchStaticNode(n1, n2, container, isSVG);\r\n                }\r\n                break;\r\n            case Fragment:\r\n                processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\r\n                break;\r\n            default:\r\n                if (shapeFlag & 1 /* ELEMENT */) {\r\n                    processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\r\n                }\r\n                else if (shapeFlag & 6 /* COMPONENT */) {\r\n                    processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\r\n                }\r\n                else if (shapeFlag & 64 /* TELEPORT */) {\r\n                    type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\r\n                }\r\n                else if (shapeFlag & 128 /* SUSPENSE */) {\r\n                    type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\r\n                }\r\n                else if ((process.env.NODE_ENV !== 'production')) {\r\n                    warn('Invalid VNode type:', type, `(${typeof type})`);\r\n                }\r\n        }\r\n        // set ref\r\n        if (ref != null && parentComponent) {\r\n            setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\r\n        }\r\n    };\r\n    const processText = (n1, n2, container, anchor) => {\r\n        if (n1 == null) {\r\n            hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\r\n        }\r\n        else {\r\n            const el = (n2.el = n1.el);\r\n            if (n2.children !== n1.children) {\r\n                hostSetText(el, n2.children);\r\n            }\r\n        }\r\n    };\r\n    const processCommentNode = (n1, n2, container, anchor) => {\r\n        if (n1 == null) {\r\n            hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\r\n        }\r\n        else {\r\n            // there's no support for dynamic comments\r\n            n2.el = n1.el;\r\n        }\r\n    };\r\n    const mountStaticNode = (n2, container, anchor, isSVG) => {\r\n        [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);\r\n    };\r\n    /**\r\n     * Dev / HMR only\r\n     */\r\n    const patchStaticNode = (n1, n2, container, isSVG) => {\r\n        // static nodes are only patched during dev for HMR\r\n        if (n2.children !== n1.children) {\r\n            const anchor = hostNextSibling(n1.anchor);\r\n            // remove existing\r\n            removeStaticNode(n1);\r\n            [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n        }\r\n        else {\r\n            n2.el = n1.el;\r\n            n2.anchor = n1.anchor;\r\n        }\r\n    };\r\n    const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\r\n        let next;\r\n        while (el && el !== anchor) {\r\n            next = hostNextSibling(el);\r\n            hostInsert(el, container, nextSibling);\r\n            el = next;\r\n        }\r\n        hostInsert(anchor, container, nextSibling);\r\n    };\r\n    const removeStaticNode = ({ el, anchor }) => {\r\n        let next;\r\n        while (el && el !== anchor) {\r\n            next = hostNextSibling(el);\r\n            hostRemove(el);\r\n            el = next;\r\n        }\r\n        hostRemove(anchor);\r\n    };\r\n    const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\r\n        isSVG = isSVG || n2.type === 'svg';\r\n        if (n1 == null) {\r\n            mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\r\n        }\r\n        else {\r\n            patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\r\n        }\r\n    };\r\n    const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\r\n        let el;\r\n        let vnodeHook;\r\n        const { type, props, shapeFlag, transition, patchFlag, dirs } = vnode;\r\n        if (!(process.env.NODE_ENV !== 'production') &&\r\n            vnode.el &&\r\n            hostCloneNode !== undefined &&\r\n            patchFlag === -1 /* HOISTED */) {\r\n            // If a vnode has non-null el, it means it's being reused.\r\n            // Only static vnodes can be reused, so its mounted DOM nodes should be\r\n            // exactly the same, and we can simply do a clone here.\r\n            // only do this in production since cloned trees cannot be HMR updated.\r\n            el = vnode.el = hostCloneNode(vnode.el);\r\n        }\r\n        else {\r\n            el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);\r\n            // mount children first, since some props may rely on child content\r\n            // being already rendered, e.g. `