/
pattern.96c09463.map
1 lines (1 loc) · 403 KB
/
pattern.96c09463.map
1
{"version":3,"sources":["..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\$.js","..\\node_modules\\riot\\lib\\browser\\common\\global-variables.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\make-element.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\set-attribute.js","..\\node_modules\\riot\\lib\\browser\\tag\\styleManager.js","..\\node_modules\\riot-tmpl\\dist\\es6.tmpl.js","..\\node_modules\\riot-observable\\dist\\observable.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\get-prop-descriptor.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-undefined.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-writable.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\extend.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\object-create.js","..\\node_modules\\riot\\lib\\settings.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\$$.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\create-placeholder.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\toggle-visibility.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\get-attribute.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\remove-attribute.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\set-inner-HTML.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\walk-attributes.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\create-fragment.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\safe-insert.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\style-object-to-string.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\walk-nodes.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\dom\\index.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-nil.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-blank.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-function.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-object.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-svg.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-array.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-boolean-attribute.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\is-string.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\checks\\index.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\contains.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\each.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\starts-with.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\uid.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\define.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\to-camel.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\warn.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\index.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\arrayish-add.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\get.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\get-name.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\inherit-parent-properties.js","..\\node_modules\\riot\\lib\\browser\\tag\\mkdom.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\misc\\is-event-attribute.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\get-immediate-custom-parent.js","..\\node_modules\\riot\\lib\\browser\\tag\\setEventHandler.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\init-child.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\arrayish-remove.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\make-virtual.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\replace-virtual.js","..\\node_modules\\riot\\lib\\browser\\tag\\update.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\update-options.js","..\\node_modules\\riot\\lib\\browser\\tag\\component\\update.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\query.js","..\\node_modules\\riot\\lib\\browser\\tag\\core.js","..\\node_modules\\riot\\lib\\browser\\tag\\component\\mixin.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\move-child.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\move-virtual.js","..\\node_modules\\riot\\lib\\browser\\tag\\each.js","..\\node_modules\\riot\\lib\\browser\\tag\\ref.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\create-ref-directive.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\unmount-all.js","..\\node_modules\\riot\\lib\\browser\\tag\\if.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\create-if-directive.js","..\\node_modules\\riot\\lib\\browser\\tag\\parse.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\set-mount-state.js","..\\node_modules\\riot\\lib\\browser\\tag\\component\\mount.js","..\\node_modules\\riot\\lib\\browser\\tag\\component\\unmount.js","..\\node_modules\\riot\\lib\\browser\\tag\\tag.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\mount.js","..\\node_modules\\riot\\lib\\browser\\common\\util\\tags\\index.js","..\\node_modules\\riot\\lib\\riot.js","..\\node_modules\\am-mocktimes\\src\\app\\parts\\question.tag.js","..\\node_modules\\dependency-inject\\built\\utils.js","..\\node_modules\\dependency-inject\\built\\container.js","..\\node_modules\\dependency-inject\\built\\decorators.js","..\\node_modules\\dependency-inject\\built\\helper.js","..\\node_modules\\dependency-inject\\built\\index.js","..\\node_modules\\dob\\built\\src\\event\\index.js","..\\node_modules\\dob\\built\\src\\global-state.js","..\\node_modules\\dob\\built\\src\\built-ins\\map.js","..\\node_modules\\dob\\built\\src\\built-ins\\set.js","..\\node_modules\\dob\\built\\src\\built-ins\\weak-map.js","..\\node_modules\\dob\\built\\src\\built-ins\\weak-set.js","..\\node_modules\\dob\\built\\src\\built-ins\\index.js","..\\node_modules\\dob\\built\\src\\utils.js","..\\node_modules\\dob\\built\\src\\reaction.js","..\\node_modules\\dob\\built\\src\\observer.js","..\\node_modules\\dob\\built\\src\\atom.js","..\\node_modules\\lodash.clonedeep\\index.js","..\\node_modules\\dob\\built\\src\\debug.js","..\\node_modules\\dob\\built\\src\\index.js","..\\node_modules\\am-mocktimes\\src\\state\\index.js","..\\node_modules\\am-mocktimes\\node_modules\\strict-uri-encode\\index.js","..\\node_modules\\decode-uri-component\\index.js","..\\node_modules\\am-mocktimes\\node_modules\\query-string\\index.js","..\\node_modules\\am-mocktimes\\src\\const\\reserved-key.js","..\\node_modules\\am-mocktimes\\src\\utils\\pattern.js","..\\node_modules\\am-mocktimes\\src\\actions\\index.js","..\\node_modules\\am-mocktimes\\src\\app\\parts\\header.tag.js","..\\node_modules\\am-mocktimes\\src\\app\\parts\\overlay.tag.js","..\\node_modules\\am-mocktimes\\src\\app\\parts\\icons\\octocat.tag.js","..\\node_modules\\am-mocktimes\\src\\app\\parts\\help.tag.js","..\\node_modules\\am-mocktimes\\src\\app\\parts\\iframe-mock.tag.js","..\\node_modules\\am-mocktimes\\src\\app\\parts\\icons\\open-close.tag.js","..\\node_modules\\riot-route\\lib\\index.js","..\\node_modules\\am-mocktimes\\src\\app\\parts\\tree.tag.js","..\\node_modules\\am-mocktimes\\src\\app\\parts\\mockbox.tag.js","..\\node_modules\\am-mocktimes\\src\\app\\root.tag.js","..\\node_modules\\keyboardjs\\lib\\key-combo.js","..\\node_modules\\keyboardjs\\lib\\locale.js","..\\node_modules\\keyboardjs\\lib\\keyboard.js","..\\node_modules\\keyboardjs\\locales\\us.js","..\\node_modules\\keyboardjs\\index.js","..\\node_modules\\am-mocktimes\\src\\tools\\keyboard.js","..\\node_modules\\am-mocktimes\\src\\main.js","pattern.js"],"names":["$","selector","ctx","document","querySelector","__TAGS_CACHE","__TAG_IMPL","YIELD_TAG","GLOBAL_MIXIN","ATTRS_PREFIX","REF_DIRECTIVES","IS_DIRECTIVE","CONDITIONAL_DIRECTIVE","LOOP_DIRECTIVE","LOOP_NO_REORDER_DIRECTIVE","SHOW_DIRECTIVE","HIDE_DIRECTIVE","KEY_DIRECTIVE","RIOT_EVENTS_KEY","T_STRING","T_OBJECT","T_UNDEF","T_FUNCTION","XLINK_NS","SVG_NS","XLINK_REGEX","WIN","window","undefined","RE_SPECIAL_TAGS","RE_SPECIAL_TAGS_NO_OPTION","RE_EVENTS_PREFIX","RE_HTML_ATTRS","CASE_SENSITIVE_ATTRIBUTES","RE_BOOL_ATTRS","IE_VERSION","documentMode","makeElement","name","createElementNS","createElement","setAttribute","dom","val","xlink","exec","setAttributeNS","styleNode","cssTextProp","byName","needsInject","newNode","userNode","id","parentNode","replaceChild","head","appendChild","styleSheet","add","css","inject","style","Object","keys","map","k","join","cssText","innerHTML","remove","skipRegex","beforeReChars","beforeReWords","wordsLastChar","reduce","s","w","slice","RE_REGEX","RE_VN_CHAR","prev","code","pos","test","_skipRegex","start","re","lastIndex","match","next","length","c","indexOf","end","brackets","UNDEF","REGLOB","R_MLCOMMS","R_STRINGS","S_QBLOCKS","source","UNSUPPORTED","RegExp","NEED_ESCAPE","S_QBLOCK2","FINDBRACES","DEFAULT","_pairs","cachedBrackets","_regex","_cache","_settings","_loopback","_rewrite","bp","replace","global","_create","pair","arr","split","Error","concat","_brackets","reOrIdx","str","tmpl","_bp","parts","isexpr","qblocks","prevStr","mark","index","ch","rech","ix","pushQBlock","unescapeStr","push","_pos","_lastIndex","slash","hasExpr","loopKeys","expr","m","key","trim","array","_reset","_setSettings","o","b","defineProperty","set","get","enumerable","settings","riot","_tmpl","data","call","_logErr","bind","clearCache","errorHandler","err","riotData","tagName","__","_riot_id","console","error","message","log","_getTmpl","Function","RE_DQUOTE","RE_QBMARK","qstr","i","j","list","_parseExpr","_","RE_CSNAME","RE_BREND","asText","cnt","jsb","rightContext","skipBraces","_wrapExpr","mm","lv","ir","JS_CONTEXT","JS_VARNAME","JS_NOPROPS","tb","p","mvar","version","getPropDescriptor","getOwnPropertyDescriptor","isUndefined","value","isWritable","obj","descriptor","writable","extend","src","args","arguments","l","create","skipAnonymousTags","autoUpdate","$$","querySelectorAll","createDOMPlaceholder","createTextNode","toggleVisibility","show","display","hidden","getAttribute","removeAttribute","setInnerHTML","container","html","isSvg","node","ownerDocument","importNode","DOMParser","parseFromString","documentElement","walkAttributes","fn","toLowerCase","createFragment","createDocumentFragment","safeInsert","root","curr","insertBefore","styleObjectToString","acc","prop","walkNodes","context","res","firstChild","nextSibling","default","isNil","isBlank","isFunction","isObject","el","owner","ownerSVGElement","isArray","Array","isBoolAttr","isString","contains","item","each","len","startsWith","uid","define","options","configurable","toCamel","toUpperCase","warn","arrayishAdd","ensureArray","dest","isArr","hasIndex","oldIndex","splice","getName","skipDataIs","child","namedTag","inheritParentProps","parent","mkdom","reHasYield","reYieldAll","reYieldSrc","reYieldDest","rootEls","tr","th","td","col","tblTags","GENERIC","SVG","specialTags","select","selectedIndex","tname","childElementCount","replaceYield","ref","text","def","isEventAttribute","EVENT_ATTR_RE","attribute","getImmediateCustomParent","tag","ptag","isAnonymous","setEventHandler","handleEvent","handler","e","currentTarget","target","srcElement","which","charCode","keyCode","preventUpdate","isMounted","update","eventName","cb","listeners","removeEventListener","addEventListener","initChild","opts","tags","arrayishRemove","makeVirtual","tail","frag","sib","virts","makeReplaceVirtual","updateDataIs","normalizeAttrName","updateExpression","_tag","isVirtual","unmount","impl","attrs","a","mount","onUnmount","delName","dataIs","attrName","attr","isToggle","isStyleAttr","isClassAttr","wasCreated","hasValue","isObj","JSON","stringify","wasParsedOnce","bool","isRtag","nodeValue","expressions","updateOpts","isLoop","instAttrs","componentUpdate","nextOpts","canTrigger","skipAnonymous","apply","shouldUpdate","trigger","query","filter","t","Tag","tag2","mixin","unregister","onCreate","class","constructor","styleManager","elem","allTags","pushTagsTo","riotTag","nodeList","_el","mixins","globals","mixins_id","mix","g","store","prototype","componentMixin","instance","props","propsBlacklist","proto","getPrototypeOf","getOwnPropertyNames","hasGetterSetter","hasOwnProperty","init","moveChild","newPos","moveVirtual","_each","mkitem","unmountRedundant","items","filteredItemsCount","moveNestedTags","move","nextTag","insert","append","getItemId","keyAttr","originalItem","keyedItem","hasKeyAttrExpr","mustReorder","placeholder","ifExpr","oldItems","removeChild","updateEach","tmpItems","hasKeys","_item","itemId","doReorder","oldPos","isNew","mustAppend","mustCreate","cloneNode","attrValue","rawValue","hasExp","old","customParent","tagOrDom","__ref","refs","createRefDirective","RefExpr","unmountAll","stub","pristine","current","parseExpressions","updateAllExpressions","createIfDirective","IfExpr","parseAttributes","mustIncludeRoot","type","nodeType","tagImpl","attributes","parentElement","outerHTML","hasIsDirective","setMountState","off","componentMount","isPrototypeOf","v","implAttrs","globalMixin","isInline","one","tagUnmount","mustKeepRoot","tagIndex","forEach","createTag","conf","implClass","_innerHTML","check","misc","core","util","vdom","observable","state","mock","lastExecutedUrl","url","pattern","mdAction","help","isOpen","module","exports","encodeURIComponent","x","charCodeAt","toString","token","singleMatcher","multiMatcher","decodeComponents","components","decodeURIComponent","left","right","decode","input","tokens","customDecodeURIComponent","replaceMap","result","entries","encodedURI","TypeError","strictUriEncode","require","decodeComponent","encoderForArrayFormat","arrayFormat","encode","parserForArrayFormat","accumulator","strict","keysSorter","sort","Number","extract","queryStart","parse","assign","formatter","ret","param","Boolean","defaults","value2","parseUrl","PATTERN","MOCK","ReservedKey","isReservedKey","some","reservedKey","isActionKey","getActionKeys","isFunc","actionValue","isFuncs","getPatternInfo","funcs","func","getInitialPath","mockTimesElm","dataset","amMocktimesPath","href","getMockUrl","mockTimesActions","parsed","queryString","__amMocktimes__","getSwitchAction","switchItem","description","getRoutePath","mockUrl","getActions","location","search","getParentMdAction","parentAction","handleMdActionRecursively","currentMdAction","mdActions","currentChildMdAction","setCurrentUrl","currentUrl","openAll","closeAll","level","closeByLevel","setMockUrl","addMocktimesFuncs","setMocktimesAction","parentMocktimesActions","selectedSwitchName","switchs","currentMocktimesActions","selectedMocktimesAction","find","setSwitchNameRecursively","childMdAction","setSelectedSwitchName","parentMdAction","openActionBox","closeActionBox","toggleActionBox","setRecursivelyMdAction","levelName","switch","mdActionKey","currentPattern","currentAction","setPattern","openHelp","closeHelp","RE_ORIGIN","EVENT_LISTENER","REMOVE_EVENT_LISTENER","ADD_EVENT_LISTENER","HAS_ATTRIBUTE","POPSTATE","HASHCHANGE","TRIGGER","MAX_EMIT_STACK_LEVEL","win","doc","hist","history","loc","prot","Router","clickEvent","ontouchstart","central","started","routeFound","debouncedEmit","base","parser","secondParser","emitStack","emitStackLevel","DEFAULT_PARSER","path","DEFAULT_SECOND_PARSER","f","debounce","delay","clearTimeout","setTimeout","autoExec","emit","click","on","normalize","getPathFromRoot","getPathFromBase","force","isRoot","first","shift","metaKey","ctrlKey","shiftKey","defaultPrevented","nodeName","go","title","preventDefault","shouldReplace","replaceState","pushState","second","third","r","action","mainRouter","route","newSubRouter","router","stop","arg","fn2","q","readyState","onreadystatechange","Actions","openIframe","getOpenCloseIconStyle","visibility","getChildTreeStyle","getLabelClass","focus","switchLabel","getDescription","isHelpOpen","hashTag","hash","initialUrl","keyboardjs","removeEvent","reset","generateList","app"],"mappings":";;;;;;kBAMwBA;AANxB;;;kBEMwBqC;ADLxB;AACE,ACFF,kBCOwBI;AFJtB,ADGa,SAASzC,CAAT,CAAWC,QAAX,EAAqBC,GAArB,EAA0B;ACFvC,ADGA,AENF,ACDA,SHOS,CAACA,OAAOC,QAAR,EAAkBC,aAAlB,CAAgCH,QAAhC,CAAP;AMPF,ALKEI,ADGD,AIRD,sCHKiB,EAJjB;AKAA,AHAA;AGCA,ADDA,AJKE;AKHF,ALIEC,kCAAa,EANf;AKGA,ALHA,ACKe,AELf,MHOEC,GCFsB8B,WAAT,CAAqBC,IAArB,EAA2B,WDE5B,OAPd;AKIA,AJEE,SAAOA,SAAS,KAAT,GAAiBnC,SAASoC,eAAT,CAAyBf,uBAAzB,EAAiCc,IAAjC,CAAjB,GAA0DnC,SAASqC,aAAT,CAAuBF,IAAvB,CAAjE;AIDF,AJEC;AIDD,ADDA,AJIE,AEHa,IEDXiC,KFCoB9B,OEDP,KFCF,CAAsBC,GAAtB,EAA2BJ,CEDb,GFCd,EAAiCK,GAAjC,EAAsC;AGCrD,ADF+B,AFE7B,ACNF,QDMQC,QAAQnB,6BAAYoB,IAAZ,CAAiBP,IAAjB,CAAd;AGCF,AHAE,MAAIM,SAASA,MAAM,CAAN,CAAb,EACEF,IAAII,cAAJ,CAAmBvB,yBAAnB,EAA6BqB,MAAM,CAAN,CAA7B,EAAuCD,GAAvC,EADF,KAGED,IAAID,YAAJ,CAAiBH,IAAjB,EAAuBK,GAAvB;AGFJ,ADFE,AJKAnC,AEAD,MELKgE,gBAAgB,gBJKL,GILf,aJPF;AKUA;AACA,ADFE,ADPF,MCOMC,gBAAgB,CAClB,MADkB,EAElB,SAFkB,EAGlB,IAHkB,EAIlB,MAJkB,EAKlB,IALkB,EAMlB,YANkB,EAOlB,QAPkB,EAQlB,QARkB,EASlB,QATkB,EAUlB,MAVkB,EAWlB,OAXkB,CAApB;ACGF,ALEE;AKDF,ADUE,AJRAhE,MIQIiE,gBAAgBD,cAAcE,EJRnB,IIQK,CAAqB,EJvB3C,QIuBqDC,CAAV,EAAaC,CAAb,EAAgB;ACT3D,ADUI,WAAOD,IAAIC,EAAEC,KAAF,CAAQ,CAAC,CAAT,CAAX;ACTJ,ADUG,ADrBH,GCmBsB,CDnBlB/B,CCqBC,EAFiB,CAApB,KDnBF;AEYA,ALCE,AGZF;AEYA,ADUE,AJTArC,AGZF,IAAIsC,ECqBE+B,SDrBN,ECqBiB,yBJTE,CAAC,KAAD,EAAQ,UAAR,CAlBnB,gCI2BE;ACTF,ADUE,AJ5BF,AGOA,IAAI9B,ECqBE+B,AJTJrE,OGZW,EAAb,ICqBmB,OAAjB,kBJTe,SAnBjB;AKmBA,ALnBA,AGQA,IAAIuC,EHYFtC,YGZgB,KAAlB,uCHY0B,IApB1B;AKoBA,ADUE,AJ9BF,MAqBEC,KISSoE,IAAT,CAAeC,IAAf,EAAqBC,GAArB,EAA0B,qBJTT,MArBnB;AKqBA,ADUI,AJ/BJ,AGUA,MHYErE,KISS,EAAEqE,GAAF,IAAS,CAAT,IAAc,KAAKC,IAAL,CAAUF,KAAKC,GAAL,CAAV,CAArB,CAA0C,wBJThB,YAtB9B;AKsBA,ADUI,AJhCJ,AGWA,IAAIzD,EHYFX,KISSoE,GAAP,UDrBJ,EAAS,sBHYU,MAvBnB;AKuBA,ADUG,AJjCH,AGYEpC,MHYA/B,QGZY,CAAE,MAAM,2BHYH,MAxBnB;AKwBA,ALxBA,AGaI,MHYFC,wCAAgB,KAzBlB;AKyBA,ADUE,AJnCF,AGcI,MHYFC,IGZQiC,CCqBCkC,SDrBS,CCqBlB,CAAqBH,IAArB,EAA2BI,KAA3B,EAAkC,YDrBJ,GHYZ,IGZA,CAAhB,YHdJ;AK0BA,AFXI;AEYJ,ADUI,ADrBA,QCqBIC,EDrBEnC,GCqBG,KAAT,GDrBiB,iBAAE,kBAAF,CAAjB;AEYJ,ADUI,AJVF,QIUM+B,MAAMI,GAAGC,SAAH,GAAeF,OAAzB;ACTJ,ADUI,AJVFnE,AGXE,QCqBIsE,QAAQF,GAAG1C,IAAH,CAAQqC,IAAR,EAAc,AJVjB,CIUG,CDrBC/B,CCqBgBsC,KAAjB,AJvChB,CIuCuCV,ADrBnC,EAAsB,MCqBV,ADrBZ,CCqBA,CDrB8B,UAA9B;AEYJ,AL9BA,AGmBI,MHWF3D,8BAAW,QA9Bb;AK+BA,ADUI,AJzCJ,AGoBI,MHWFC,EIUMoE,ADrBArC,KCqBJ,EAAW,CDrBX,EAAc,gBHWL,WA/Bb;AKgCA,ADUM,AJ1CN,AGqBM,MHWJ9B,IIUQoE,ADrBAtC,OCqBO+B,EDrBE9B,EAAb,E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,EAAgC;AAChD;AACA,QAAI,CAACA,GAAL,EAAUA,MAAMjB,MAAN;;AAEV,QACEkB,QAAQ,EADV;AAAA,QAEExC,KAFF,KE7KoBoH;AF6KpB,AEhLJ,QFmLM3E,MAHF;AAAA,QAIE5C,KAJF;AAAA,QAKEH,GALF;AAAA,AE7KW,QFmLTI,CEnLkBsH,IFmLb7E,IAAI,CAAJ,AI9KaiF,CJwKpB,OE7KW,CAA4BxD,CAA5B,EAA+BvF,CAA/B,EAAkC;AAC/C,SAAOH,OAAO+I,ECGQC,sBDHf,CAAgCtD,CAAhC,EAAmCvF,CAAnC,CAAP;AFoLE,AIxLJ,AFKC,QFmLOiE,UAAU,AK5KMkF,EL4KpB;AACA,AGzLJ,QHyLQjF,UAAU,EAAd;AACA,AK1LJ,QL0LQC,IAAJ,EAAU7C,IMvLUkI,KNuLpB;AGxLJ,AGFA;AN4LIxF,AI3LJ,aJ2La5C,QAAQC,GAAGC,SAAH,GAAe,CAAhC;AO5LJ;AP8LI,AM3LW,SAASkI,EN2LZjI,IM3LG,CAAgB6H,EEGPO,CRwLJtI,AM3LL,EAAqB,CN2Lb1C,IAAH,CAAQiF,GAAR,CAAhB,EAA+B;AQ9LnC,AFIE,SAAO/D,OAAO2J,MAAP,CAAcJ,GAAd,CAAP;AN4LI9H,AGzLS,AELf,ACGC,SHEuBuH,SHyLNxH,AS5LMwI,ENGT,CHyLMvI,AGzLewH,KAArB,EAA4B,EHyLrC;AACA7H,AGzLJ,AMRF,AFCA,SJOS,GHyLGM,KGzLIuH,CHyLE1E,IGzLT,CHyLH,wCGzLU0E,KAAP,OAAiB3L,wBAAxB;AACD,ACPD,kBMIwB4M;AV6LlB,AUnMN,UVmMU/F,MAAJ,EAAY;kBW7LMmG;AX+LhB,AQ/LO,ACFA,AEJf,AJEA,SCIwBR,ACFAE,EDET,CR+LHtI,AQ/LexF,MR+LT,CAAN,CAAJ,AQ/LO,ER+LO,AQ/LeC,GAAtB,EAA2B,ECF3B,GAAgC;ADG7C,ACFA,SDEO,ACFAC,GDEG2E,KAAH,CAASqF,ACFA6D,AGAMM,IJEf,CAAc,CAACpO,OAAOC,CCFtB,CAAwB,EAAxB,CAAP,GDEqB,EAAkB2N,gBAAlB,CAAmC7N,QAAnC,CAAd,CAAP;ARgMQ,AQ/LT,ACFA,AGND,cZuMcsI,KAAK9C,MAAM,CAAN,CAAT;AACA,AIhMK,SAASwH,KJgMVzE,Ia/LU+F,CTDT,CAAoBrB,CJgMdxG,EIhMN,EAAyB0C,GAAzB,EAA8B,EJgMbb,EAAX,CAAX;AACA,AIhMR,AMHa,QNGP4E,CMHgBc,KVmMVxF,IOrMC,CPqMI,CAAT,CIhMW,IMHN,CAA0B/F,GAA1B,EAA+BwL,IAA/B,EAAqC,GHF9B,cHKiBhB,GAAlB,EAAuB9D,GAAvB,CAAnB,KGL2BrD,mBAASgE,QAAhB,CAAP,EAAkC;AHM/C,ASVF,AHOErH,ALKa,AEPbiL,MGEI7J,GNGG,ACEeuJ,EKLtB,CAAUc,GLKG,CAAgBb,ESNP2B,CJCtB,ALKa,EAAqB,AEPf,CGECf,GHH2B,IGGpB,EAAP,GAAY,ENGbhB,IAAI9D,AMHvB,GNGmB,CAAZ,KAAyB+D,cAAcA,WAAWC,QAAzD;AJiMQ5E,AIhMT,AOLc,ADEb9F,ALKA,AEPA,MGEI0L,ALKAlB,GMPkBmB,ANOtB,GKLA,GVmMa7I,AUnMA0I,MCFA,CAAsBxL,ADEf,EVmMZ,CWrMK,EXqMY8C,AWrMelD,ADE3B,GAAe,CCFf,EAAiC,CDE9C,EVmMQ;AACA,AWrMR,ACFa,ACHf,AHOC,AITD,ATcE,AEPAsL,MFOItC,GMPG5I,ACFe4L,CPSd,CAAR,EMPWD,CJAC,GPqMI5I,CexMM2J,MHCT,CZuMW5G,AWrMjB,ACF+B9F,CDEdJ,ECFX,EZuMgBO,AWrMtB,ACFoCP,CDE3C,GXqMwB,AYvMX,CZuMqBwF,CYvMe,EZuMzB,CAAhB,EAAiC;AAC/B,Ae7MZ,AJQC,ACFCpF,APSA,AEX+C,CAAlC,KKET4L,EPSEf,OAAOC,CL8LC/H,KYvMd,CZuMoB,AYvMAnD,CZuMN,CAAJ,AK9LV,EL8LwB,AYvMxB;AZwMY,AYvMb,AEND,ATeE,QAAMmL,IAAIF,KAAK5H,CL8LCF,AgBxMM6J,KXUtB,CL8LsB,CAAN,MAAa/G,EAAjB,EAAqB,EAAEE,EAAF,CAArB,KACK,IAAI,CAAC,GAAEA,EAAP,EAAW;AACjB,AgBhNb,ahB6MY,MAGO;AACLD,AK/LZ,SAAO8C,IAAImC,CAAX,EAAcnC,EYXQoE,CjB0MLlK,AK/LjB,EAAmB,OL+LP,GAAiBkD,WAAWjD,MAAM6C,KAAjB,EAAwBE,KAAKhD,SAA7B,EAAwCC,MAAM,CAAN,CAAxC,CAAjB;AACD,Ae9ME,AEJf,AZmBI,QAAIyH,CUfgBkC,KVeV7B,KAAKjC,CAAL,CAAV,EUfW,AVeQ,GUfkB;Af+M9B,Ae9MT,AFGF,ARYM,SUfGnL,EVeE,MAAMiJ,CUfCiG,AGCMQ,EbclB,IAAkB3C,GAAlB,EAAuB,WUfpB,EAAP;Af+MQ3H,Ae9MT,AFGc,ACHA,AINf,AbqBQ,SQZgBgJ,ACHAU,Id8MXzJ,Qa3ME,Cb2ML,Aa3M2BgJ,CCHtB,CAAwBC,Cd8MdhG,Gc9MV,Ed8MeX,Ac9MeoH,CDG9B,CCHA,CDGiCT,Cb2Md9I,Ac9Me,GDGlC,EAAuC+I,Cb2M7B,GAAkBlG,Ca3M5B,EAA8C,Eb2MbhD,SAAtC;AACA,Aa3MR,ACHA,ATeM,MSfF,CAACiJ,IAAL,CTeU,CSfC,yBTeUnB,GAAX,EAAgBlE,GAAhB,CAAJ,EACEkE,IAAIlE,GAAJ,IAAW8D,IAAI9D,GAAJ,CAAX;AL+LD,AgBhNM,AHKb,ACHA,ATgBK,MQbDsF,ACHAvF,CAAJ,EEFsBmG,EHKtB,EAAW,MGLE,CAAoBC,IAApB,EAA0BC,IAA1B,EAAgC9J,IAAhC,EAAsC;AACnD6J,AHKE,ACHF,ATgBG,OWlBEE,EFEEtG,CDGCwF,GCHG3M,IDGIwM,COLO2B,CJAtB,CAAkBX,IAAlB,EAAwB9J,CHKCkJ,IGLItL,SHKd,CGLS,AHKeuL,GCHdhM,CEFkB6C,GFEhC,CEFX,AFE8B+I,EDGf,CACX,CCJO,CAAX,EDIQK,ACHNI,GAAG/F,EAAE,CAAF,EAAKgG,CDGN,GACGJ,OCJF,EAAH,EAAuB5F,EAAE,CAAF,CDGrB,ICH6BA,EAAE,CAAF,CAAR,IAAgBA,EAAE,CAAF,CAAvC,EDIqC3H,uBADnC,UACgDiN,IADhD,aAC+D,iBAD/D,EAEGO,eAHQ,EAIX,IAJW,CAAb;Ab4MI,AgBhNP,AFGA,ATeE,YL8LS,CAACvJ,MAAM,CAAN,CAAL,EAAe;AACbF,AoBzNV,APmBIiJ,AIZW,AZoBb,SYpBsBkB,AZoBfpC,GAAP,CL8LW9H,CatMC/B,IQZU2M,IrBkNd,GAAe1H,AatMrB,CAAsBiG,EIZX,CAA6B7K,CJYxC,IIZW,EjBkNqBqB,AiBlNe,GjBkN1B,EAAgBK,SAAhB,EAA2BC,MAAM,CAAN,CAA3B,CAAf;AACA,AatMP,AIZD,ACFa,AbsBd,GQjBC,MASO,AIZA1B,ACFe8L,ODER7L,ECFD,CAAmBtB,CDEzB,CAAYoB,CCFN,EAAwBoL,EDE9B,ACFM,EDEavK,ACFemL,MDElC,CAA0B,ACFpB,CDEqBH,CCFgB,EDEjB,EAAMC,IAAN,KAAe;AjBmNzC,AqB3NT,ARqBIpB,AIZA,ACFF,MAAI9L,GAAJ,EDEYiN,ACFH,GLcGtL,AIZV,SJYA,AIZiBuL,GJYKnB,CIZtB,GJYA,OIZ0B3K,EETrBoM,IFS2BN,IAAN,CAA1B;AjBmNG,AatMJ,AIZA,ACFC,GDAK,EAEJ,EAFI,CAAP,ECAQG,MAAMb,GAAGxM,GAAH,EAAQoN,OAAR,CAAZ;ALeH,AIZA,ACFG,QAAIpK,IAAJ;AlBqNE,AkBpNF,UlBoNM,CAACD,MAAM,CAAN,AsBxNa4K,CtBwNlB,EAAe;AACb1H,AoB7NR,AFSI,QAAIoH,QAAQ,EMNQrB,ExB0NJ5G,CkBpNhB,EAAmB,ClBoNChD,KAAJ,CAAUQ,KAAV,EAAiBH,GAAjB,CAAZ;AACAG,AsBhOR,AEAA,gBxBgOgBC,EuBxNQ+K,CvBwNL9K,SAAX;AACAD,AqB/NR,AHWI7C,UAAMA,GlBoNGsF,CkBpNCgI,GlBoNG,CyB5NOU,IzB4NFxI,EkBpNlB,QlBoN4B,CAAf,CAAJ,CAAL;AACA3C,AyBlOR,AHCA,ACDA,WvBkOWC,SAAH,GAAeF,KAAf;AACD,AkBpNH,WAAO5C,GAAP,EAAY,EQTQkO;A1B8NnB,AoB7NU,AGLf,ALcMlL,SETkByK,IFSXzN,CETE,CAAesK,EFSbiD,GETF,EAAsB,MFS/B,UCfGC;AODT,ANQE,AIHa,ANYTL,SETG,AIHenB,KAAT,CAAe6B,CNYd7N,CMZD,EAAmB,ANY5B,EAAewM,EAAf,EAAmBa,GAAnB,QETe/C,KAAZ,KAAsBA,UAAU,IAAvC;ApB8NE,AqB/NW,ADEd,AIHC,ANYItK,QlBoNEoF,AwBhOA0I,CHCgBJ,GHWZ1K,GlBoNGJ,CqB/NA,AGDCiL,ANYV,CGX0BvD,EGDbyD,GHCJ,CrB+NQ3I,CqB/NgB,GrB+NZnC,MAAvB,CwBhOF,CxBgOiC;AAC7BgD,AyBlOS,AJGb,AKPF,AJKe,AECb,ANYG,SOdmB+H,AJGf,ACFeL,AECf,CAAC,CAACG,KCFI,ADEN,CCFuBxD,CzBkOdlF,CsBjOH,CAAoBkF,AECfwD,ExBgOE1L,AyBlOP,EAAwB,CHCxB,EtBiOG,AsBjOwB,CtBiOdQ,EqB/Nb0H,AGDe,GxBgOZ,CAAZ,AwBhOJ,CHCO,KAAgBA,UAAU,EAAjC;ArBgOG,AyBlOH,AJGD,ACFC,AECD,ANYE,SOdM2D,AHCA,MGDMD,EHCC1D,CKAQ6D,IFDf,AHCA,CGDc7D,KAAd,KAAwBA,iBAAiB2D,KAAhD,QHCc3D,KAAP,OAAiB1L,2BAAxB;AGAD,AHCA,AJaA,kBWfuBwP;A7BoOpB7I,AuBlOW,AIRf,AEAA,SNQwBqI,CvBkOdnI,OAAN,AuBlOW,CAAkB6E,EvBkOb7E,GuBlOL,EAAyB,EvBkOpC;AuBjOF,SAAO6E,SAAS,AOHMgE,QPGChE,KAAP,yCAAOA,KAAP,OAAiB5L,yBAAjC,CADsC,CACI;AvBmOxC,A0BtOW,AHId,AIRD,AGFA,SJMwBwP,E1BsOb3I,KAAP,G0BtOW,CAAoB+E,KAApB,EAA2B;AACxC,SAAO9K,SKDegP,sBLCD9L,IEPd8K,AFOA,CAAmBlD,KAAnB,CAAP,GPLOkD;AnB4OL,A0BtOH,AKRD,a/B8OavH,WAAT,CAAsB/D,CAAtB,EAAyB;AACvB,UAAIwD,OAAJ,EAAa;AACXxD,A6B1OO,AGNf,SHMwBkM,G7B0OZ1I,K6B1OG,CAAkBkB,I7B0OX1E,CAAd,A6B1OO,EAAyBmM,IAAzB,EAA+B;A7B2OtC3I,A2B1OO,AEAb,SFAsByI,AEAfvH,MAAMzD,EFAA,C3B0OG,A2B1OemH,E3B0OzB,E6B1OC,CFAM,AEAQ+D,EFAiB,EEA/B,MAAwB,CAAC,CAAhC;A7B2OK,A2B1OL,AEAD,ACFc,SHEN,AGFeC,IAAT,CAAcxF,GHEbwB,CGFD,EAAoBkC,EHE1B,AGFM,EAAwB,uCHEvBlC,KAAP,OAAiB7L,yBAAxB;A3B2OI,A2B1OL,AGFC,QAAM8P,E9B4OElJ,I8B5OIyD,I9B4OItD,AiCzOMkJ,GHHH5F,G9B4Of,EAAoB,A8B5OA7F,MAAZ,GAAqB,CAAjC;A9B6OMsC,A8B5ON,ACFa,MDETqD,GCFkB4F,CDEd,CAAR,G9B4OYtI,IAAN,AkC/OgB2I,AFDR,ChCgPG3M,A+B9OJ,CAAoBkD,GAApB,C/B8OSlD,C+B9OgBoI,C/B8Od5F,CgChPD+J,GDEV,ACFC,EDE+B,C/B8OvB,AgChPO,ChCgPGnJ,IAAI,CAAJ,CAAV,EAAkB,IAAlB,CAAhB;AACD,AiCrPP,AHSE,ACFA,AGPF,AFKE,MAAIsD,ChC8OA,E8B1OGA,ACFAxD,CCFC,CAAC,CAAT,ChCgPW,A8B5OAmJ,ACFAnM,GDEX,EAAgBwG,ACFT,CAAU,CAAV,CDEP,CCFoB0B,CDECkC,GAAG1D,ECFE7F,GDEG2F,CAAL,CAAH,CCFd,CDE0BA,CAAZ,ICFiB0B,KAAtC;A/B+OM/E,A8B5ON,ACFD,ACFC,SFIOuD,AEJA,IFIP,C9B4OY5C,CgChPC,EAAE0C,ChCgPT,AgChPN,AGFsBmG,CnCkPL7M,CAAX,2B4BrPCsL,CTEAA;AnBoPF,A8B5ON,AEJA,AGPD,CHIe;AhCoPV;;AAED,AkCrPW,SAASqB,IlCqPX7I,GkCrPE,CAAiBZ,CGOR4J,EHPT,EAAsB,ClCqPjC,CAAoB7I,IAApB,EAA0BC,UAA1B,EAAsCC,KAAtC,EAA6C;AAAE,AiCxPnD,ACIE,ACFa,SDENjB,ACFe2J,IDEXrK,ACFE,CAAc2D,MDEpB,CAAY,ACFN,EAAuB,MDE7B,EAAsB,CAACW,CAAD,EAAI9F,CAAJ,KAAUA,EAAE4L,WAAF,EAAhC,CAAP;AlCqPI,AkCpPL,ACFC,AELF,MFKM3G,InCsPI9B,KAAJ,EAAW,AmCtPA8B,CGGOhB,OHHC4H,IAAvB,EAA6B5G,QAAQ4G,IAAR,CAAa1G,OAAb;AnCuPvBjC,AmCtPP,qBnCsPoBvE,UAAUuD,GAAV,EAAee,IAAf,CAAb;AACD,AsC7PP,kBCUwBoJ,2BHVf/B;6CREAA,ITEAA;AnB2PH,AqC9PN,AEDA,ADCA,UtC8PUnI,QAAQe,AwCxPMuJ,axCwPOxJ,OAAO,CAAhC,EAAmC;AACjCR,eAAO,WAAWF,QAAQxC,MAAnB,GAA4B,GAAnC;AACAwC,AuChQR,ACDA,gBxCiQgBS,EyCvKQ2J,EzCuKhB,CAAazK,IAAIhD,KAAJ,CAAU+D,IAAV,EAAgBC,UAAhB,CAAb;AACAV,AiCxPO,SAASgJ,MAAT,CAAgBb,EAAhB,CjCwPIzI,CiCxPgBsB,GjCwPZtE,AiCxPR,EAAyBkI,GjCwPrB,CAAU1H,CiCxPd,EAAgC+L,EjCwP5B,EAAiBxI,GiCxPrB,CjCwPI,CiCxPqC,GjCwPZR,IAApC;AACA/C,AiCxPNvB,AMTF,AEFA,SRWS4F,OjCwPOb,E0C5PQ+K,KTItB,CAAsBtD,EjCwPhB,AiCxPN,EAA0BnH,GAA1B,EAA+B,sBAAO;AjCyPjC,AiCxPH4D,ASZJ,MAAM8G,UTWkC,MSXlB,KAAtB;A1CqQM,AiCxPFhK,AIVJ,ACAA,AEFA,axCoQahB,GiCxPG,EURQkL,GVMgB,EjC0PlC;AACD,AiCxPD5G,ASZJ,ACFA,cVcc,KAH0B,sBGV/B8C;ApCsQN,AiCxPCoB,AMZJ,AEFA,GzC2KE,eiC7JgB,AWoCM8C,wBhBhDflE,WTEAA;AcM+B,GAAP,EAK5BmB,OAL4B,CAA/B;AjC8PAzJ,AiCxPA,AWjBF,SXiBS2I,EAAP,CjCwPUvH,OAAV,GAAoB,SAASA,OAAT,CAAkBlB,GAAlB,EAAuB;AACzC,AiCxPH,AKVc,SAAS+B,EtCkQb9C,CsClQI,CAAarE,GAAb,EtCkQG,AsClQe,CtCkQtB,EAAU0C,IAAV,CAAe0C,GAAf,CAAP;AACD,A0CpQY,ACFA,ALIb,AEPF,ACAA,GzCuQE,M0ClQsB+L,ACFAG,ALIftR,IAAIgI,KOKW4K,EPLf,IAAehV,CIFT,CAA0ByT,OCF1B,CAAkCE,CDElC,EAAqC,ACFrC,EAAuC,aLInB,4BAAQvR,GAAR,EAAa/B,6BAAb,KAC/B,4BAAQ+B,GAAR,EAAa/B,6BAAb,CAD+B,IACD+B,IAAIgI,OAAJ,CAAYyE,WAAZ,EADV,CAAtB;AIDA,ACFA,ALKD,MKLK+E,GDEGJ,ICFIG,GAAX,EGIsBwB,KJFDrQ,IAAd,CAAmB2O,SAAnB,CAAP;A1CqQAnM,A0CpQD,ACFC,AJHF,AMJA,ADCA,SDMSsM,G3CsQGjL,E2CtQE0B,EAAL,CAAQwJ,G3CsQf,GAAqB,K2CtQrB,EAA4B,E3CsQElL,QAAT,CAAmBC,IAAnB,EAAyB;AAC5C,AqClQW,ASZf,AHQI,Q3CsQIC,A2CtQA,CNIgBuI,AMJfwC,G3CsQGhL,E2CtQEoJ,G3CsQG7M,C+CtQOiQ,EVIT,AMJX,CNIgCxI,CrCkQxB,A2CtQU,C3CsQCnG,CqClQR,EAA0BqC,GAA1B,CrCkQe,CAAP,AqClQuB4D,CrCkQlC,CAAR,GqClQW,EAAsC2E,WAAtC,EAAmDrJ,KAAnD,EAA0D;AACvE,AMJE4L,AFLJ,QJSQtC,GMJGsC,INIIhH,CMJCoF,GNIGlJ,GAAJ,AMJX,CNIF,+BDXO8G;ApC8QL,AqClQF,AMJC,AHHY,AOPf,QVcQ2B,CGPgBQ,ExCyQblJ,IACH,CqCnQQ,CrCmQNC,CgDzQc2M,IhDyQT5M,EAAE,CAAF,CAAP,CwC1QO,CxC0QMhE,EwC1QwB,GxC0QnBgE,EAAE,CAAF,CAAlB,EAAwBxG,AqCnQRiP,IAAR,CrCmQqB7K,AqCnQnC,GTVOmJ,ETEAA,EnB2QmC,CAAP,IAAY/G,EAAE,CAAF,EAAKE,IAAL,EAAZ,GAA0BtC,OAAO,CAAP,CAAvD,EADG,GAEH,EAAEpE,KAAKuG,KAAKG,IAAL,EAAP,EAFJ;AAGD,AqCpQD,AMJA,AHHA,AKPF,ADCA,G5C2QE,GwCrQI,EHOEyI,CMJCoC,EHHE5B,EGGT,IHHA,EHOiB,AGPA,CHOC,MGPM,qBHOMhK,CGPC,IHOb,CAAlB,uBGPsC,IAAP,CAAP,EAAqB,KAAKgK,MAA1B,CAAP;AGIlB,AHHC,AQTF,QCuCgB0D,CT9BP,IAAP,US8BcA;AjD8OdpO,AqCpQA,AEPa,ACAd,ACAD,AGPA,MPcMgK,EYoFUqE,CV3FQhE,GvC2QZ3I,EqCpQEsI,EEPC,CvC2Qb,AuC3Q8BlP,GvC2QZ,AuC3QL,EAAsBwP,CFOdlF,KAArB,AYoFciJ,CjDgLa3M,CqCpQC,EEPf,EvC2QK,AuC3Q6B,CvC2Qb/B,IAAhB,EAAsB;AACtC,A8CpRJ,APSE,AQVF,QRUQ4K,AUuGQ+D,GjDoKL3O,KuC3QK,EvC2QED,AkDtQMsQ,QlDsQErQ,CiDpKV2O,GjDoKE,CAAP,GAAuBnP,CuC3QdrE,GAAJ,CAAd,CvC2QE;AACD,AqCpQD,AEPA,AMVF,G7CmRE,KuCzQM0P,UUkOgB4C,CVlOL,CAAC9C,UAAD,IAAe,4BAAaxP,GAAb,EAAkB/B,6BAAlB,CAAhC;AFQA,AEPA,ASZF,AEDA,MboBM,CAACiR,EEPEQ,EFOH,IAAST,GcRSoG,GZCH,CAAChQ,IFOpB,EAA0BmF,IAAI9D,GAAJ,EEPDJ,EFOY,CAACgE,IEPlB,CFOiB,AEPJoF,CFOP,CAA1B,KACK,CERe,CAAb,EFQE,CAACR,AEPRQ,IFOG,EAAWlF,EERT,EFQa9D,CEPP+I,EFOG,IAAWnF,EEPNmF,GFOL,GEPW7P,IAAd,GAAqBI,IAAIgI,OAAJ,CAAYyE,WAAZ,EADlC;AvC4QA,AqCnQA,AEPD,AKXD,AKJA,WjDyRW5F,MAAT,CAAiBhC,IAAjB,EAAuB;AACrB,AqCrQG,AcrBP,OduBO,CrCmQC,CAACA,SAASA,AoDhRM+Q,OpDgRC3R,OAAhB,CAAD,MAA+BI,OAAO,CAAP,AoCvR9BmJ,CpCuRL,EAA8C;AAC5CnJ,AqCnQF,AQrBJ,AJaA,AQfA,MRgBEyL,IJOMX,KrCmQOvK,AqCnQX,EAAW,EIPC,IzC0QOC,IAAR,CAAT,EyC3QN,cbXS2I,QTEAA;AnBqRHpJ,AqCnQA,AUvBN,AKFA,AFCA,ATeA,MAEE2L,QJOUV,CrCmQGxK,IyC1QC,KzC0QQZ,CqCnQDiL,KAAK/L,CrCmQb,GAAmBoB,GqCnQX,CAAa+F,KrCmQrB,AqCnQQ,CAAjB,ErCmQwC9F,QAAxC,WyC5QN;AzC6QMH,AqCnQA,AIVN,MAGE2L,EYOc+F,KrDmQH,CAAP,AqDnQUA,IrDmQE3R,CyC1QF,MzC0QSF,OAAO,CAAP,CAAP,CAAZ,2CyC7QN;AzC8QK,AqCnQC,ASjBS,AMLf,AJHA,AEAA,ACDA,AVeA,MAIE+L,EYiCcsB,CP3CQwB,GTiBd1D,EgB0BMkC,IC1CQ6F,EbSR,GKVD,CAAwB5M,CTiBhB5E,ESjBR,EAA6Bc,CTiBtC,EAAwB,ASjBf,EAAkC4D,KAAlC,EAAyC2E,WAAzC,EAAsD,oCLMrE;AzC+QI9K,AqCnQE,ASjBJ,ADPF,AJYA,AGVA,AKJA,MHSM,ALUJ+L,EYiEc8F,OAAAA,CZjEJ,EAAE7F,GzC0QOtL,CyC1QH,GzC0Qd,I8CpRU2F,ALUF,EAAe4F,EKVT1J,ELUa,CKVjB,CAAR,CAAJ,CLUU,CKVa,CLUY2J,IAAI,IAA7B,EAAmCC,KAAK,UAAxC,EALZ;AzCgRG,AqCnQG,ASjBF,AQZJ,AbgBA,MAMEC,EKVM3K,AOyFQmO,IhBxEN1E,ISjBM7E,AOyFAuJ,AZ/EJtU,EcdYqY,ETIJpR,GAAJ,ETiBO,ASjBEvD,CTiBD,CAAlB,EAAqB+L,GSjBX,CAAiB5E,CTiBDgF,ISjBhB,CAAZ,CTiBuB,CAAYD,MIPb5P,EJOC,EAAsB,CAAtB,yBIPY,EAA3B,GAAgCN,gCAAhC,GAAkDC,0CAN9D;AJcM,ASjBF,ALGJ,MAOEoR,EKVM5K,AO2KQqQ,QAAAA,AZjKJ,EKVM,CAAC,CAAf,CLGJ,CKHsBzL,IAAI9D,GAAJ,EAAS4I,MAAT,CAAgB1J,KAAhB,EAAuB,CAAvB;A9CqRpB,AqCnQI,ASjBF,ACNW,AQRf,ALGA,AIFA,AHCA,AVcA,MAQE6K,EKVM,AOqMQ6B,CPrMP9H,ACNewI,E/C0RblM,CqCnQDsI,AIPF,CKVK1I,GAAJ,COqMO4L,AZnMhB,CKFkBrP,AUPM+U,EnBwBlB,AUvBS,CAAqBpN,CVuBhB,CrCmQlB,CAAuB7D,A8CpRrB,ACNW,C/C0Rb,C8CpRwB,ACNegL,C/C0Rb,K+C1Rb,CDMkBvH,CCNgB,GDMZ9D,GAAJ,CAAP,CAAtB,KACK,IAAI8D,IAAI9D,GAAJ,EAASzD,MAAT,KAAoB,CAApB,IAAyB,CAACgM,WAA9B,EAA2CzE,IAAI9D,GAAJ,IAAW8D,IAAI9D,GAAJ,EAAS,CAAT,CAAX;A9CoRhD,AqCnQIwI,AShBL,ACPD,AKCa,AHNf,GHOE,K9CwRMlI,A+C1RAlG,AM8MQoV,CrD4EZ,A8CnRK,AMNeN,INMXpL,CMNE,CfsBF8E,AUvBE,AKCewD,ENMbpM,EMNF,CNMF,CTgBL,AetB4B,AC6MpBwP,ChBvLItQ,IShBM0E,CTgBlB,EAAmB,CAAnB,CShBC,CTgBqBA,CSf1B,ITeI,GD5BCkD,AUaEhD,IAAI9D,GAAJ,CAAP,CAPiE,ACDnE,CDQkB;ATgBb,ASfN,ACRC,ASVF,AJWE,AJHa,AEJf,ATuBA,QMjBQuM,CVqBF,AWvBkBI,MXyBX,AUvBE,YCFA,CAA4B9B,GAA5B,EAAiCP,GAAjC,EAAsC,W7BA5CxD,A4BEP,MnBJOA;A5B+RLzG,AqCnQImI,AQ5BR,AEKE,AKCA,AJHA,AKTF,ATYA,MQAM,CAAC4D,CpDyRC/L,A+C1RAmM,ACFAA,CJGCvB,EQAP,EpDyRW,AoDzRA,EpDyRT,AqCnQSzL,AUvBE,ACFA,IXyBP,CAAUoE,AOtBlB,CAAqBtK,GAArB,CPsBQ,COtBkB4R,OAA1B,EAAmCC,CAAnC,EAAsC,QGDpC,ACFA;AhD6RE7K,AqCnQG,AUvBL,AQXF,AHYI,AJHFgM,AMRF,AHCA,APUE,MGDIG,AHCA3B,E5CyREzK,C+C1RN,C/C0RQ1D,AoDzRA/B,GRAG,IQAID,CpDyRb,A4CzRc4G,EAAL,CAAQ2H,GQAGtO,AJHVmG,GJGZ,CQAe,AJHf,CIG2B7J,AJHV2T,GAAjB,EAAsB2B,IAAtB,kBIGe,CAAb;ApD0RA7R,AqCnQC,AUvBH,AKCE,AJHF2P,AUXF,AdcE,AKTF,MFQMnD,ACFAjN,AJGAyN,CPUF,CUXF,G/C0RSpH,AoDzRA3F,EfsBAkJ,AOtBE,GIHX,CXyBa9D,AWzBE7F,CIGC+U,AK+IMqC,Ab/INhQ,EPsBP,AOtBE,CAAQoG,GPsBC,AetBE/M,CpDyRpB,AqCnQmB4N,AOtBrB,C5CyRwBnI,CAAtB,CoDzRc,CpDyRW,AqCnQP,AetBlB,AJHF,CAA4BmM,CXyBD5I,GWzB3B,EXyBoB,AWzBc0G,CXyBzB,ErCmQP,AgD5RF,EhD4RuC;AACnC9J,AqCnQH,AetBA,AJHF,APmBD,SAASwJ,EzCyQE7J,MAD8B,C2D5RjB2T,ElBoBxB,CAAqB3M,EAArB,EAAyBxI,IAAzB,EAA+B2C,OAA/B,EAAwC;AzC0QlCb,AqCnQL,AUvBC,AMdF,AIDA,ACCA,AdeE,MAAI,CGDC0F,AHCAwB,I5CyRI,A+C1RT,AHCA,CGDUtB,CHER,OAAOyE,G5CwRY,C+C1RrB,CAAuB1Q,GHEN,CGFjB,AHEkBuN,EGFW,EHE3B,EAAsB,CGFUxB,IAAL,CAAUS,UAAvC;A/C0RuB,A2DzSzB,AZgBE,ASfF,AJgBE,AFXF,AIHA,Ab8BE,AGfIe,MHgBFsC,CMlBG9D,EKCEiG,ELDP,AHEWtB,CGFDzQ,EKEP8U,CpDuR2B1R,AyCvQnB6D,CGhBKC,EgBZMyS,AhBYX,CAAQrM,CQDZ,CACGyH,ELFV,ANkBmB,AGhBf,CGFkB7C,ANkBX,EWhBI,CAAC,CLFhB,C/CyRuB,CyCvQG,GAD1B,GWfyBvQ,IAAT,CAAcoT,CAAd,CADT,EAEJ7T,MAFI,CAEG,CAAC6G,IAAD,EAAOgN,CAAP,KAAa;ApDsRuB,AoDrR1C,AKVN,AhBuBE,AGdItE,AKbN,MR6BI5B,CzCoQqC,GoDnR7BhQ,CRDC4R,IHgBAb,CGhBK1I,CQCC6N,CRDN,CQCQnP,ARDAiJ,IQCF,CXeG,CGhBhB,CQCsBnD,OXef,GAAqB,CWff,EAAb,KXaJ;AzCyQIrF,A+CxRJ,AQhBF,AHmBM,AQrBN,ATKA,APeK,OGFEa,EAAL,CAAQnH,CKGGgI,GLHX,GAAe+E,C/CwRC,I+CxRI/M,IAApB,AKGuB7C,iBhBhBhBuP,YgBgBI,UAA6B5N,IAA7B,QAAP;ApDkRmC,A6CzR1B,AEKb,AKGG,ACpBL,AQFA,ApBqCE,AiBnCF,GNeS,EpDsRL,AoDjRG,ELHAqI,AKFE,CAAP,CPHsB2K,AEKtB,CAAQK,IAAR,GAAeA,CFLF,CAAmBxD,EEKhC,GFLa,EAA0BoD,IAA1B,EAAgClR,SAAhC,CjBPN6L,CiBOiDoC,MAA3C,E1BLNpC,A0BKyD;A7C8R9DlJ,A2D3SJ,AdcE,AOQD,AEnBD,AbkCE,AGhBA,QCPMiN,MAAM,E7C6RExK,CAAZ,C8DlSoBiU,ejBKAvL,KAAV,EAAiBoD,IAAjB,EAAuBlR,SAAvB,CAAZ;A7C8REkF,A6C7RF,AEKA,AUVF,AhB4BEgH,AGhBA,AKhBF,KRgCKlM,GIvBGqG,CEKC6F,E/CwRE7G,A+CxRT,C/CwRE,C+CxRS,CNkBX,GAAe,CIvBC6L,KAAK7K,AJuBA4H,MAAN,CIvBC,EJuBcvK,EIvBE,GJuBGsB,IAAL,EAAf,GAA6B,IAA7B,GAAoCiJ,IIvBXiD,EJuBxC,GIvB6ChG,IAAb,EAAmB,IAAnB,CAAhC;A7C8RC,A8D9SH,AjBiBE,AEKEsG,ASfW,AfiCbvD,AGhBA,MAAI,ECPE4B,AkBaQsJ,CPvBQ9C,CTednK,CNkBCA,EMlBEN,CNkBCD,CIvBC,KWVA,CAAqB1C,GTehC,ASfW,AfiCb,EejCuCmH,COuBzB+I,KPvBD,AZiBEjJ,CAAX,CYjB2C,CZiB7B,eAAd,CAAJ,EAAoCA,ECPEjC,ADOAkC,MCPzB,CAAb,MDOoC,GAAkB9R,GAAlB;ACNpC,AEKEkT,ASfF,AHLF,AQFA,AHEA,AdsBE,MYjBIrF,EO+HUqN,ChBhHPna,ESfE,KAAKkH,EAAL,CAAQnH,CTef,CAAiB+M,EAAjB,ASfF,GO+HcqN;A/DyKd7Z,A6C7RA,AEKE,AQhBW,ACCb,AIPF,ANGA,AbqCE,AGhBA,MYjBI8R,AZiBA,G5CsRGlM,A+CxRAgB,AQhBe6P,ACCtB,ETeE,CAAQ1E,KAAR,CAAclN,AQhBH,CAAmB8B,GRgB9B,C/CwRF,A+CxRqB6F,C/CwRC3I,A6C7RfqM,CEKL,CQhBW,CVWb,AEEW,CAGc,AQhBgBwG,CVW7B,GDOGlG,C5CsRf,A4CtRI,CWlBS,CvDwSoB,A4CtRf,CWlB+B,CVWjD,EAAsBL,IAAtB,ADOI,CAAJ,C5CsRA,C4CtR6BK,C5CsRgB,C4CtRdE,MAAF,GAAWF,EAAEG,UAAb;A5CuR3B9K,A6C7RF,AEKE2G,AQhBF,ACCA,ALEa,AMAf,AhB+BE,AsB3CF,AnB2BE,AKlBF,QMAQ+B,ACCAsD,CxDuSCpM,A+CxRAqM,AIbekC,GJapB,GSfW,EDDE,IvDuS8B,CuDvSzBzF,EJGP,CAAyB2B,GIHtC,AJGa,EAA8B/J,IAA9B,EAAoCyN,UKFjD,CLEa,EAAiD;AnDsS5D9N,A8DjTJ,AHEA,AdkBE,AEKC,AQhBD,ALMa,ACHb,AV+BA,AGhBA,MWlBI2L,AXkBA,EOfE7K,CnDqSC,AkDlSeiN,CKNtB,GJGW3D,IAAItJ,CaNO0T,CdST,ACHb,CDGiCxG,ClDkSd,KkDlSN,EAA4BvF,INY1BiC,CAAX,CMZS,CNYK,CMZ+BJ,MNY7C,CAAJ,EAA4BI,EMZf,ANYiBI,EMZgCY,GNYlC,CMZf,EAAuDuC,ANY9BvD,EAAEK,OMZ3B,CNYyB,CMZyC,GNY3BL,EAAEM,OAA1B;A5CsRP,A6C5RrB,AUXA,ACCA,ANKA,ACHA,AEVF,AQFA,ApB2CE,AiBzCF,MjByCMxB,EU/BE2E,CKFCzH,EAAP,CfiCA,CzCqQ4BvJ,AwDtSjB,CfiCC,KU/BK,EAAjB,CnDoSqB,2BoC5SdkJ;ApC4SgC,A6C3RvC+D,AEKA,AQhBA,ACCE4B,AQbJ,AJMe,AVYb,ACHA,AV+BEvD,AGhBFiC,IAAExD,ECPEpG,AEKA8J,AQhBA,CAACnC,CVWL,AMRM2F,APeN,CCPO3F,AejBe8K,CJOd7M,CfiCC+C,AGhBAvC,CGFT,CQhBA,ACCWd,CTgBT3C,CFNF,AUXa,AXkBb,GCPgBgF,AEMV7C,CavBO,CAAoBkI,CTSd1D,GNQnB,AWVE,AfiCA,CU/BqBc,EV+BE,CAAC,CAAxB,CMjBA,ANgBU,CMhBOa,AavBN,AnBwCgB,EmBxCiB,CTS3B,CJcjB,EAAuBnB,CIdW,CAAC9J,GAAGuN,EJcRvN,CnBrBzBuF,CmBqBkB,CAAU1M,I5BnB5B0M,A4BmBL,EADF,EIbA,GJgBE5C,IAAI7J,WAAJ,CAAgBmS,IAAhB;A/CiR2C,A+ChR9C,ASlBGA,AIPF,AVYA,AONF,AhBkCG,AsB9CH,AdSA,GjDsSE,AyCnQA,Me/BOnS,AfiCA,SwB3Be8a,ETNpB,CAAiBhO,CIPdoH,CJOH,UIPF,EAAkBzO,QAAQ;AfkB1B,AUXAsM,ACCEjF,AIPA,AVYF,AIbF,AHUE,AV+BE,AGhBF+D,MMZIuD,EUZE3O,CLMCoJ,ACCAuD,CZiBC1L,EYjBN,CIPSkM,ChBwBX,CAAa,CWlBCb,ALMArB,EgBIQ2K,CtBQtB,CWlBO,AKNL,CLMiBpU,AXkBA6J,CgBxBCrL,AhBwBpB,KgBxByBmN,AVYzB,CKNO,CAAP,ALM2B,KUZP,CAAa,IAAb,EAAlB,KACK,IAAInN,KAAKwB,OAAT,EAAkBxB,KAAK+K,GAAL,CAASoC,OAAT,CAAiB,IAAjB,EAAlB,KACA,IAAInN,KAAKmN,OAAT,EAAkBnN,KAAKmN,OAAL;A5D2SzB,A6C3RA,AWVE,AILD,AVUD,AerBF,AdkBE,AEbF,AQFA,ApB8CI,AsB/CJ,ALIA,GECE,GTWI1L,EKFE4F,ANKArQ,CCHCiU,CV+BCZ,IS5BIsE,CMLC,GfiCGjF,EejCEjI,ALEd,EKFS,CAAQgL,ANKAtD,CCHC1H,EV+BED,CejCtB,ALEuB4H,ENQb4B,AWVe,ILE3B,AV+BgB,CIvBCsB,AJuBf,CU/B+B,GNQjC,EAAuB9K,OAAvB,EAAgCuJ,GAAhC,KKLwC9J,ACHA8J,GAAP,CDGZ,CAAwB,ACHAtJ,GAAG2H,CDG3B,CAAT,GAAyCA,CCHpB,SDG8B,IAA/D;AlDiSA1K,A8DnTF,APaE,ACCIgO,AILL,AMZD,AfmBE,AV+BE,AGhBF,MWlBI,EdkCErC,GejCG9P,CxDqSCsG,KyCpQKuI,GzCoQf,EwDrSI,CxDqSiB,AwDrSA/B,CLEd0D,AV+BeT,CejClB,ELEJ,EIHYgC,AJGAtL,CnDmSgBF,GuDtSxB,AJGJ,CnDmSqB,AuDtSrB,EACEwL,GvDqSmC,EuDrS9BxD,AdiCQ,KAA6B,CcjC1C,AdiCA,CcjCYyI,CdiCiCnI,CzCoQ1B,IAA+BtI,AuDrSlD,EAAoB,CAApB,CdiCsD,CzCoQCD,AuDrShCyL,KAAKxD,GvDqST,GuDrSI,CvDqS4C,AuDrShCwD,EvDqSrC,EyCpQ0DjC,CcjChB1N,IdiCc,EAASyM,CcjC5B,CAAa,IAAb,AdiCmB,CcjC/B,AdiCsB,EcjCU,CAAhC,EAAmC,CAAnC,CAAvB,EADF,KAEK,2BAAYA,OAAOkD,IAAnB,EAAyB9K,OAAzB,EAAkC,IAAlC;AvDqSL9C,A6C3RA,AUTD,ACDK0F,ANKJ,AetBF,ARaA,AhBqCG,AsBzCH,AnByBE,AKxBF,MLwBM,CAACvD,GYjBG0F,ExDqSE7F,GAAV,GAAgBL,IwDrSZ,ANKCuO,CMLgBlC,CxDqSrB,E4CpRchI,CYjBV,EAAuB6G,ENK3B,EAAiBqC,GMLiBnM,AZiBlC,CMZgB,CMLW,AZiBD,CYjBWnH,ENKX,EMLtB;AxDsSJoE,A2D7Sa,AdkBb,AWVI,AQjBN,AdsBI,AIbW,AYLf,AfeEgQ,AV+BA,MIvBI1D,EKLE4C,CSbgBoG,ALAApD,AbyCfxH,GzCoQG/N,CkDhSC2E,ELKEoJ,AJuBb,ES5BE,CiBJoB4M,CjBILhJ,ElDgSjB,A6C3RA,EACE,ASnBW,CtD6SS3R,AsD7Se0P,EHU1BkE,CQVE,ALAA,CKA4BzV,CLAC,EKA7B,ARUb,CGV6C6W,AHU5BtF,CnDmSjB,A2D7S8CA,ERU9C,CQVa,CRUS,CQV6B4C,ALAtC,AHUUlM,EGV8B,CHU3BkN,GDGQ1N,ESbrB,CRUS,CQVuCuS,ATa5C,CAAsBxc,ACHLyK,CNSpB2H,EKNG,ACHoBA,EDGOwE,GSb/B,AdmBQtB,CMTC,CQVkD,ATavBtM,CCHJyB,CNS3C,EAAyBD,AKNV,ACH+ByJ,ONS9C,EAAkCF,EMTd,CNSpB,CMT2D+D,QAAvC,EAAiDrN,GAAGmN,SAApD,CAAtB;AQTA,AHQG,ANKD,AIbF,ADNF,AQFA,ApBiDC,AGhBC,MAAI,CAACvD,EezBE,AfyBAO,SwBpBe2B,AVLT,IJAR8C,AVyBL,EAAsB,IUzBtB,EAAcG,GAAD,IKACyD,ALAQ,aKAf,EAAgB5C,IAAhB,CAAqB7X,GAArB,EAA0BuR,GAA1B,EAA+B4C,QAA/B,EAAyC6F,SAAzC,CAAP;A3D8SA9U,A2D7SD,AdmBC,AWXC,ANKC2N,AIbA,AHUF,AOVAgF,AdyBE,AuBtCJ,MhBwBItC,AOZW,EJCP8B,CTmBC9F,AKNA,CNYCvH,E5CoREvG,A6C1RV,EDMY,EUzBV,EIAGzD,EPYHuR,CnDiSF,A0D9Sa,EACH3B,C1D6SYnM,AmDjShB4O,KObO,EACK8B,CRaHC,ClDgSf,AmDlSE,IDEkBxU,ACAlB,EOdW,ERcN,AQbqBoa,EtBNrBxM,AcmBmB9I,OAAnB,AQdM,CRcqB3G,CQbK,EdyBF,IAAzB,CAAV,IOZWwT,IAAImE,YAAf,CDAK,ACFL,EDE8C,EAAzC,ACA2B,CDAhC,ACAiCnE,IDAoB6C,ACAhBsB,KDAqBlP,IAAL,GAAY4N,ACAhC,CAAiB5M,IDAoBhB,ACArC,EAAuB8O,EDAS,CAAUhL,KAAtB,ACApB,CAHnC,EDGqF8J,ACCnF,KDDwF9J,KAAxF;AlDiSFpF,A6C1RD,AuBjCD,AZsBC,ANKE,AIbC,AWZJ,Ad0BI,AMbJ,AIVA,ApBkDA,AsB5CA,ALGI,AdyBA,AK3BJ,GCWE,KITMsF,CIACxK,EJAL,AHcOuR,CnD+RC/N,A0D7SR,EPcA,COdWxD,GAAX,G1D6SF,GAAsBwD,SAAtB,cmBhTOgK,CSFAA;A5BmTPtI,AkDhSD,AIbG,AYRJ,AfsBG,AOdC,AdyBA,QUzBIoS,AVyBAtN,CczBCoK,CdyBC/B,E5CoRE3O,C0D7SR,GJAY,AIAAyQ,EJAZ,CVyBA,E5CoRF,A4CpRmBnK,EAAEsI,C5CoRC5O,A0D7SpB,KdyBiB,I5CoRnB;AACAwB,A8DnTa,AMNf,AJGe,ACHf,AZGA,AQDA,AHUI,AdyBD,SkB/BqB8V,AEHAW,ANSf1B,G1D6SGlW,K0D7SR,GAAgBiW,C1D6SlB,CgEtTa,CAAuB1P,ChEsTdvG,E8DnTT,CAA2B/D,CEH3B,CNSX,CINW,AEH8B,EFGEuR,C9DmT7C,E8DnTa,EAAqC6C,IAArC,EAA2C;ASV1D,ATWE,AEHA,AVSE,AHcF,AOdE,AdyBH,AuBzCD,QHOQ,CFGC,AJMAxE,CMTC6B,KNSN,GAAc7B,MPcT2B,AOdL,IPcSsB,IAAX,EavBM,AbuBWyC,GWpBH2F,EEHU,GbuBxB,EavB6BhT,EAA7B,GFGO,EAAe4P,IAAf,CAAoB7X,GAApB,EAAyBuR,GAAzB,EAA8B6C,IAA9B,CAAP;A9DoTA,A8DnTD,ARMG,AWZJ,ARUA,AITA,ApBoDA,AsB/CA,ALMI,ATLJ,AqBbA,StE+TSlP,AyCpQA6L,AiBzCAmJ,CJAC3C,KIAN,G1D6SF,A0D7SgBlS,GjByClB,CAAsBA,IAAtB,CazC2B,CAAC,AbyCA0G,IAA5B,CiBzCuBzF,CJAI,AbyCO,EazCE,IIAlB,CAAa0T,MJAJ,CAAvB,EIAc,CAAd;AclBJ,AxEiUC,AgEvTC,AEFF,AfyBE,AV2BA,AiBzCE,AdyBJ,C5CoDe,EAAf,GmD/DMzE,KOdK,IAAP,CPcF,EAAgBhE,IAAIoE,EavBb,IAAP,CbuBgB,CavBH,AbuBe,QAAZ,EAAsBnO,CavBtC,EAA0B8C,CbuBV,IavBhB;AQTF,AJIA,AdeI0M,AHcF1E,AE1BF,AZqDE,AiBzCC,GARY,GjBiDT,CAACxC,GazCG,QbyCQpN,CU3BT+E,GV2BF,CU3BL,AV2BqBpC,CU3BTkM,GAAZ,AV2BK,CAAL,CU3BiB0D,CV2BW,IazCX+B,GAAT,AbyC2B3R,GU3BnC,CGdwB,AbyCI,O4B7DrBmI,UfoBuBwJ,GAAN,CAAhB,GAA6BA,GAAnC;AkBlBJ,AxEiUA,AgEvTE,AbuBA,AOdA1E,ASnBF,MHUM,AbuBAiD,CavBC9D,CNAQ,QPuBb,EavBA,AbuBgBF,EavBE,EbuBEoE,AOdX,OPcO,CAAY,SAAZ;AqBhClB,ARUI,AVSA,AWfJ,ARWA,AhB6CE,AsBlDF,ALSI,ATRJ,AqBbA,QNYQrL,ENSE6P,GMTN,EAAW,CNSC,IMTIxE,CNSCrL,KAAjB,CMTW,CAAa,OAAb,EAAX,KACK,E5BNAkD;AmCNTlG,ACEA,ARWM,AVQF,AYdJ,Af4BE,AV2BA,AiBzCE,QJAI,AbyCAsD,CU3BC2G,COdC6I,CMRCzE,CbsBT,EV2BY,C8B9DTK,C9B8DH,EuBjDI,CObN,APamB,CObT,KbqBe,GMRnB,ENQwBpG,IJAXoH,EiBrBnB,AbqByB,CJAjB,CiBrBoB,AjBqBxB,EAAqB,AIAe,gBvCX/BxJ,uBuCW2D,KAAKoC,MAAjC,CAApC,ypBarBJ,EAA4uB,EAA5uB,EAAgvB,wIAAhvB,EAA03B,UAASiD,IAAT,EAAe,CACx4B,CADD;ACGA,AJCA,AJUM,AVQA,AHcL,AE7BD,AKeI,AYtBJ,WNcW+I,GAAL,CAAS,GAAT,AHPS;AWHf,ARWM,AVQAvE,AOfJQ,ApBwDA9L,AiBzCE,AStBJ,MNMe,GpByDNA,CiBzCCsO,CMRCpS,EAAL,CAAQuM,GVQG,AbyCAzI,CoBxDV/L,GPecgX,AOhBN,AHgBM,CjByCCtS,CoBxDV6M,CGON,AVQW,EAAX,AOhBS,AHgBWvR,CMRC,CHPVwG,CpBwDA,AiBzCI,CjByCSwJ,AiBzCAsK,EMRxB,AHRS,EACQ,CHeF,IAAkB,CjByCtB,EAAyB,EiBzCE/I,GAAvB,IAA8B,CjByCCvI,CAAV,EAAagI,CiBzCChR,EjByCd,CiBzCtC,CjByCwDiR,IAAlB,EAAwB;A+B3DlE,ARWK,AVQA,AWjBL,ARUA,AIRI,ApBwDArG,AsBrDJ,AnBqCe,AKpCf,KKQI,Gb4CIoG,CGhBgBU,EUzBb2F,AbyCP,IAAWzM,IAAIoG,GazCGgG,AbyCP,EGhBA,CUzBJ,AVyB6BpX,EHgBbqR,EGhBZ,EHgBX,AGhB0CW,CHeoB,CAChC,EoBxDd5R,GAAhB,AjBwCW,EiBxCU9B,AjBwC8B8B,GAAxC,EAA6CuR,GAA7C,EAAkD,4BiBxC7D;AWHJ,ARWG,AETH,ALEI,ApBwDA,AiBzCA,AdyBF,MAAIgB,GczBGjI,EjByCE,EAAP,CiBzCA,CdyBF,EczBe,KAAK4P,IGfX,EHeM,EGfb,CHe2B,CGfd,EAAE3I,QAAF,EAAO/K,OHeY,GGfnB,EAAamU,AHeWV,MGfL,EHeL,EAAoB,KAAKrK,MAAzB,CAAd,GAAiD,KAAKqK,QAAnE,EGfa,EAAuCW,UAAU5a,GAAjD,EAAb;AWHJ,AJFA,AJaC,AVQG,ADlBJ,AQGI,ApBwDD,AGhBD,A0BlDF,G7B+DiB,EAGZ2G,GGhBG6L,CHaS,CatCPgF,AOfAxN,CpBqDR,EGbW2H,CiBxCC3R,IPeIqB,AOfAT,OPeO6W,AVyBA9P,GiBxCrB,CjBwCS,CAAiB4J,GAAjB,EAAsBvR,GAAtB,CUzBK,CAAsBqX,AVyBAzF,OAA3B,CUzBK,AVyBhB,CUzBE;AkBlBJ,AxEkUA,A6D9TI5H,AHeA,ASzBJ,InEwUI3E,E6D9TE0H,YAAF,CAAe,KAAK4N,E7D8TZ,E6D9TR,EAA0B3a,GAA1B,K7D8ToB,MqE3UfwN;AGUT,AlBmBI,AWpBJ,ARUA,AILIxD,ApBwDF,AsBxDF,ALeI,AdyBF,AKtCF,MYFMoP,EHeE,CjByCC/T,AiBzCA,KjB0CJX,GoBzDD,CAAc1E,GAAd,ApBwDK,CACIiQ,UiB1CIkK,CjByCR,EACiB,AiB1CjB,CAAD,IAAiBC,KjB0CWpR,CAAV,EAAagI,GAAb,CiB1CtB,CjB0CwCE,CiB1CL,EjB0Cb,EAAuB,sBiB1CKkJ,aAAaG,IAA5B,EAAkCJ,GAAlC,EAAuCE,QAAvC;AclBvC,AxEkUE,AsD/SE,AYnBJ,AzB4DoD,AiBzChD,AdyBF,M5CsRIhW,CsD/SCiT,CIAC,CAAC,M1D+SM,AsD/SAA,EtD+Sb,IsD/SmBrS,MAAN,CAAa5D,IIAX,GJAkBqW,EIAbpN,ItBtBbkD,CsBsBA,CAAD,IAAwB,OJAJ,CAA2BhD,OAAO6M,QAAlC,CAAb,AIA0B,CJAlC,CAAH,GIA0C/M,KJCnCE,AIDqB,CAA5B,EAAkD,GJCrCnJ,OAAOoW,cAAP,CAAsBjN,OAAO6M,QAA7B,CADb;AkBlBJ,AnBFA,AQMI,ApBwDE,AiBzCA,AdyBJrX,A0BrDF,M1BqDMJ,IAAJ,CiBxCS,ApBwDEgL,GGhBC,CiBxCV,ApBwDaoG,GAAJ,AGhBX,KHgBuBE,GAAZ,IAAmB,EAA1B,ctB5DG1D;AqDCT,AxEkUE,AsD9SE,AOhBD,ApBwDE,AiBzCC,AS5BN,GNIe,ApB8DN,EAIJ9I,KiB1CK0V,C1D+SC7S,CyCzQF,CAIIwI,GzCqQX,CAAgB3K,GAAhB,EAAqBoC,A0D/SjB,CjBsCG,CiBtCe,CjB0CC,CzCqQvB,EAA2B,OyCrQMwB,CAAV,EAAakI,GAAb,EAAkB,IiBzCnCkJ,aAAaG,IADG,EAEhB,KAAKjQ,KAFW,EAGhB+P,QAHgB;AclBxB,AxEkUI,AoExUJ,Ad0BI,AWvBJ,ARSA,AIFE/H,ApBwDkD,AsB3DpD,ALqBQ,AdsBN,AKxCF,AqBdA,QtE4UQ,A6DxUO,C7DwUNlN,GAAL,EAAU,OAAOA,C6D9TV,E7D8TG,AsD9SLkS,KAAL,EAAa5Q,GAAD,IAAS;AkBnBzB,AlBoBM,AYtBN,ALMI,ApBwDE,AiBtCE,AdsBN6L,SiBxCOjI,CHae,CjB2CXyB,CiBrCL,EGnBJ,AjBwCUnM,GiBxCG,AHmBJgQ,EjBqCQsB,AGhBFxM,GHgBN,CiBrCL,CAAYuD,EjBqCQ,AiBrCpB,AdqBM,CcrBSrC,AdqBIvG,CHgBrB,IiB3CkB,KGbF,KAAKmH,IAAV,EAAgB,KAAK+K,GAArB,CAAb,GjBwCU,EAA+B,EAA/B,CAAZ;A4B3CF,AxEkUI,AsD9SE,ADxBN,AZgEK,GANI,CAAP,A6BlEUvR,OtE8UD,CAACqE,OAAOe,GAAP,MAAgBf,OAAOe,GAAP,IAAcR,QAAQQ,GAAR,CAA9B,CAAD,EAA8CqC,IAA9C,CACLD,IADK,EACCE,QAAQC,IAAR,CAAa;AwElUzB,AxEmUQH,AsD/SF,AOhBF,ApBwDH,AiBpCK,AdoBJ,AuBxDF,QNgBQ,EPgBE,AIIA,CJJC,CtD+SGA,C6D/TD8C,EHoBEA,C1D0SU,E6D9TjB,EHoBE,EGpBY,CAAC,EHoBE6P,GGpBGU,AHoBtB,EAAwB,KJJVtD,AOhBhB,EAAiC,YPgB1B,EAAyB7Q,GAAzB,CAAL,EAAoC;AkBnB1C,AxEmUQrB,AsD/SA,AW1BR,ARUA,AIDuC,AELvC,AL0BQ,AdoBN,AK3CF,AqBdA,M1ByDM,CAAC,K5CuROD,mB4CvREmM,IAAItJ,CcpBC,CdoBL,CAAOwK,GcpBGzS,GAAlB,EAAuB,CdoBxB,EAA2BA,EcpBEoU,CdoB7B,CAAL,EcpBM,AdoBgC7C,EcpBE,EdoBEtJ,CyB7DnCuF,CzB6D+B,CcpBOlD,AdoBAmI,KcpBvC,IdoBgC,CAAiBvM,IAAjB,CAAsBlG,GAAtB;A4B3CxC,AxEgUyB,AsD5SjB,AYzBR,ALQM,ApByDN,AiBpCO,AdoBL,K5CoRU,CADD,A4CnRL,C5CmRF,A4CnRGA,IiBzCI6a,AjByCArc,GUxBGiM,IOjBR,GAAe,KAAKmQ,CPiBC,OOjBN,CAAcb,QjByC5B,CiBzCc,AjByCnB,CiBzC2C,CjByChB/Z,GiBzCR,CAAf,AjByC2BxB,UUxBY6Y,QAAlB,EAA4B3Q,GAA5B,KAAoC,IVwBlC,IAAuB,EAAvB,uBUxBoD8Q,KAAlB,EAAyB9Q,GAAzB,CAAvD;AkBnBR,AxEoUG,AsDhTK,ADrBR,AQIM,AHqBD,AdoBH,I0B3DUkW,CZyBR,CdkCE5c,IAAIxB,CiBzCCmc,AHqBA,GJJGhD,COjBR,CAAU/W,UAAV,CAAqBmM,KPiBKtC,OOjB1B,CAAkC,EjByClC,EAAqB7K,CiBzCkBib,EPiBEpQ,CVwBzC,CAAJ,EAAgCzK,CiBzC5B,EAAgD,CjByChB0S,GUxBoBvL,COjBCwT,EPiBZ,EOjBzC,EPiB2DlQ,SVwB/B,CAAwB8H,CUxBkBrL,GAA5C,CAAxB,IVwB0B,EAAmClH,IAAIxB,gCAAJ,EAAqBoB,IAArB,CAAnC;A4B3ClC,AXGM,AHqBA,ASvCN,WNkBWqV,WAAL,GAAmB6F,YHqBH,KAAK9a,GAArB,EAA0B,EGrBUyV,GHqBLrB,EGrBZ,CAAuB,CHqB1C,IGrB+C7C,GAA5B,EAAiC,CAAC,KAAKsJ,OAAN,EAAe,IAAf,CAAjC,CAAnB;AWFN,AxEoUEtT,AoE1Ua,Ad0BP,AW7BR,ARUA,AIEK,AERL,AL6BK,AdoBHvH,AK9CF,AqBdA,KTeI,CjB6CExB,E5CwRE8H,CoE1UgByN,EPSb,GOTI,CpE0Ub,AoE1U4BlH,APSf,CAAC,E7DiUExJ,CoE1UH,EAAqB2E,APSfsC,KAAN,C7DiUYhE,CoE1UZ,EAA8BuM,APSf,I7DiU5B,AoE1Ua,CPSoBgI,COTgBrd,ExBkDjD,CwBlDa,CxBkDQoC,CwBlDiC,CPS7C,EAAiC,AjByC1C,IAA6B4S,EAA7B;A4B3CF,AJNE,Ad0BM,AY5BR,ALU8C,AjB0C5CxS,MAAI2S,EwBlDEiB,Id0BI,CAACrC,Ec1BE3T,Ed0BEga,KVwBf,CAAqBrF,QUxBV,CAAmB7L,AVwB9B,EAAgC8L,CUxBrB,CAAD,AVwBV,EAAoC,EUxBEmF,Gc1Bd3P,AxBkDxB,OwBlDa,CAAb,Id0BM,EAAiD;AtDiTvDT,AoE1UA,Ad0BQlG,AOlBJ,AHsBF,AdoBH,I0B9DWwb,ItEsVJtW,AoE1UAmW,GPQG/I,K7DkUT,CsDhTe1M,COlBX,C7DkUa5D,CoE1UCzF,QpE0UQ2I,GsDhTlB,CAAsBgL,GAAtB,CtDgTR,CsDhTmC7K,GAA3B,EAAgC+D,Mc1BXzC,Id0BrB,Gc1BU,EAAoBoO,KAAtC;AKnBF,ALoBE,Ad0BO,AOlBH,AHsBF,AS1CJ,QCYQhJ,CdwBA,EOhBGyN,IPkBI,Gc1BGrd,APQZ,GAAe,IAAf,CORoBkf,YAAY,4BAAOA,UAAUvF,SAAjB,CAAZ,GAA0C,EAAlD,CAAhB;AKnBF,AzE8VE,AoE1UA,Ad0BQ5F,ADrBH,AIDP,AIIM,AEVN,ALgCI,AT7BJ,AqBdA,QZ2CQ,CLzBQwE,AKyBP,EGtBEd,CRHJ,CAAapH,CCqBNnH,AIIA1G,CLzBP,ECqBG,ADrBc6S,AKyBf,CAASyH,GJJG,ADrBd,CQGD,CRHwB,AKyB1B,EGtBqB,AHsBA,EGtBnB,GHsBwBta,GAAL,CAASsa,KAAT,GAAiBD,KJJVhD,GIIP,MJJgB3Q,GAAT,CAAX,IACT2Q,SAAS3Q,GAAT,EAAciB,IAAd,CAAmB4J,GAAnB,CADS,GAET8F,SAAS3Q,GAAT,CAFF;AmB7CV,AzE8VEa,AoE1UA,Ad4BO,ADvBP,AQGG,AHsBF,GAxCY,K1DoVPK,AoE1UAjG,UpE0UN,EoE1UkBkL,CpE0UC,IoE1UI8P,QpE0UQ,EoE1Ub,GAAkB9P,ICnB7BW,CDmBkCmP,UAAL,IAAmB9P,KAAKlL,SAA5D;AKnBF,AzE6VmC0C,AoEzUjC,Ad4BK,AWnCP,AZYE,AKyBAsP,IY7CUb,IFeJ2J,AfKA,CKhBO,CLgBN7c,GrDoUmC,EAAT,AoEzUpB,KfKP,EAAOyF,CKyBH,SLzBJ,EAAanE,GeLC,EAAE2L,GfKhB,EAAkBgH,KeLJ,EAAQhB,KfKtB,EAAyBsD,GeLX,EAAc/I,afK5B,GeLc,EAAP,AfK8B,EeLE,EAAEwC,AfK/C,QeLuDiD,OAAOA,KAAKjD,MAAZ,GAAqB,IAA/B,EAAhC,CAAb;AKnBF,AzE4VgD,AoExU9C,Ad4BG,AYjCL,AbUE,AQGE,ApB0DW,AiBpCX,AS7CJ,GnEuVE,EsD7TE,CcXE2B,EPQE,CORN,A3BkEsB1B,CiBpCdwK,GGtBG/P,CpB0DE,CAAejF,GoB1D1B,CpB0DW,CoB1DK0V,CpB0DgBhP,AiBpCf,IjBoCN,CiBpCWwF,CjBoCgBvF,EiBpCrB,GjBoCN,CiBpCkB,CjBoCgB,GoB1DRvE,CHsBHzH,GGtBlB,AHsBhB,CGtB0C,KAAKuR,GAA/B,EAAoC,KAAK0D,WAAzC;AY3BpB,ApByBE,AIJF,AIOG,ApB0DD,AsBvEF,ALmCI,AT/BJ,AqBfA,GTAe,GRqBT,CAACrX,CZ6DCmF,EiBpCEqX,MjBoCQ/U,QAAQA,CiBpCD,IjBoCMtC,CiBpCD6M,IjBoCJ,CY7DRhQ,AZ6DmB,CiBpCZ,GLzBlB,CAAL,AKyBsC,ELzBf,QZ6DC,CAAxB,4BiBpCkE,KAAKgQ,MAAjC,CAApC;AejDJ,AzE4VErI,AoExUA,Ad4BE,ADvBAgK,AQGFoC,ApB0DA,AiBpCE,MU9BEC,EpEwUE/L,AqDnUAjI,AZ6DCoI,AiBpCD,CG/CO,AH+CN,GLzBL,EeLU6E,AfKAxH,IeLZ,AfKE,AZ6DetC,EzCsQjB,AoExUkBwO,AfKArQ,GrDmUG,AqDnUnB,AQGQ,ERHa2S,CeLC,CpEwUxB,AyCtQ0B9Q,GY7DxB,EAA4BoT,AKyBf,CjBoCiB,CAAN,EAAS1J,CiBpCfnC,GLzBlB,EKyBK,CAAD,EU9B4BsJ,E3BkER,AiBpCIwG,EU9BN,A3BkExB,E2BlEwCqC,IAAhB,EAAsB9a,EV8B5C,EACE,KU/BoB,CAAN,oBV+BCyY,aAAaG,IAA5B,EAAkC,KAAKjQ,KAAvC,EAA8C+P,QAA9C;AelDN,AnBgDI,AWnCW,AZYX,AQGA,ApB0DF,AiBnCC,IYjDSyC,E7BoFNjP,EatCEwJ,AOpBA,CIfgBwE,ExByEb,EoB1DEhB,IPoBIhD,GOpBb,CPoBA,COpBkB,CPqBhBR,AWpCS,CAAwB9F,GAAxB,EAA6BvR,GXoC7B6X,AWpCA,EAAkC5C,EXoC3C,CAActN,CbqCGqE,GarCjB,CAAmBuF,GAAnB,AWpCS,CxByEgBd,CarCDc,AWpCgCsB,ExByEvC,EarCWA,AWpCnB,CxByEsBrC,CwBzE+B,EXoC9D,IbqCK,CAAT;AgCrFF,AzE4VE,AoExUA,Ad6BC,AWpCD,AZYE5S,AQGE,AHxBS,ASFf,GbEE,GcgBI2T,EHPEtJ,EJeE,C7DgUCP,EoExUE6J,AHPAA,EJeEsJ,EORE9G,AHPA9L,CjE+Uf,CAAkBH,AiE/UlB,GjE+UA,AoExUA,APQQ,CAAa2L,C7DgUEjW,AoExUD,GpEwUtB,A6DhUI,E7DgUwB,A6DhUD,GRHdoC,IAAX,EAAiBwW,KAAjB,GAAyB,KAAKC,WAA9B;AoBxBJ,ALoBI9E,AHPF,ACEa,AbUZ,AIPH,AIUQ,ApB0DN,AsB1EF,AdYA,QmBJQwC,AHPAlH,CCEgBuP,IEKpB,APQSvB,CORC,CHPC5S,GGOX,AHPc4E,CCEH,CAAoB0E,ALa3B,CAAakC,CIfnB,CCEa,EAAyB4I,ALahC,CAAkB1I,OAAlB,IKbO,EAAuCsB,WAAvC,EAAoD;AOdnE,AzE4VInN,AoExUA,Ad6BF,AWpCA+E,ACEA,ALaK,ApB0DLxH,OwBzEKoO,AJaD,C7DkUE1L,AkE7UAE,CZkCCsJ,AbqCAR,EwBzEP,CXoCA,CYlCWQ,ALaA,CIfCA,EjE+UV,CiE/UF,ACEetJ,ALaA,CIlBmD,CjEkVjD,AiE/UD,ACEhB,GLaoB4S,ApB0DAxV,IAAb,EAAmB0G,CoB1DX,CAAanL,EpB0DrB,CAAP,OoB1DW,EAA6B;AY3B1C,AzE4VMoH,AoExUF,Ad6BH,AYlCC,AbUA,AQGM,QORA,AFLA6E,CEKC,IPQIgO,E7DgUErd,AkE7UAyK,GAAG4E,ELaV,CAAajM,C7DgUCpD,AkE7UpB,IlE6UwByK,EAAX,G6DhUP,C7DgUwBzK,A6DhUA4b,CORdzb,GpEwUkBsK,EAAJ,CAAOD,GqEnW9BwF,CRmCD,CAAoC,E7D+TzB,G6D/T8BqN,OAAzC,MORC,EAAuBtJ,GAAvB,CAAL,EAAkC5T,8BAAauI,IAAb,CAAkBqL,GAAlB;AKnBtC,AzE4VMrJ,AoExUH,AHPD,ACEA,AbUA,AQGK,ApB0DL,A0BvFF,QDgBQoU,QlE6UQ9e,GkE7UGG,IlE6UIH,AqDnUbqQ,EAAR,ErDmUyB3F,AqDnUbtI,IAAZ,EAAkBiT,ErDiUD,CAEkB,CqDnUnC,EAAwB,IAAxB,MaV8B1P,OAAb,CAAqBoO,GAArB,CAAjB;AOdF,AzEyVmB,AiE5UjB2J,ACEA,AbUA,AIVF,AIaK,ApB0DH,A6BxFF,KtE2VI,CyCnQE3K,EyBvEEvG,IAAI6C,EzBuEEnK,GyBvEG9B,CzBuEX,CAAaoH,MwBzEDyN,CxByEZ,CyBvEJ,AzBuEA,EACE5H,CwB1EF,CAAsB5F,GAAG2H,AxB0ElBc,MwB1EP,EAAiC,CAAC7D,GxB0EfgB,CwB1Ec,CxB0E1B,CwB1EiChB,CxB0EjBxH,IwB1EsBkW,AxB0EtC,EAAsBvT,OAAtB,CwB1E0B,AxB0E/B,CADF,CwBzEyD,CAACoM,GxB4ExD,CwB5EuD,EAAO5N,IAAP,KAAgB,gBxB4E1DqH,EAAb,EAAiBxI,IAAjB,EAAuB2G,KAAvB;AgCxFJ,ALoBE,AHPE,AZYF,MAAI9K,EYZE,CGOCqQ,AHPAtJ,AZYP,EAASqO,CeLT,AHPU7E,WAAJ,IAAmBgJ,OZYHtZ,MAAb,CYZwB2a,aAAR,CAAsBtV,IAAtB,CAAvB,EAAoDA,KAAK+K,GAAL,GAAWA,GAAX;AQZxD,AzE4VI,AoExUH,AHPG6C,ACEF,ALaE,ApB6DF,AsBjFF,AdgBO,MiBTD,CAACnM,ClE6UCV,CiE/UCf,AxB4EAqH,AQjEOyF,CiBTNkC,CzB0ER,EwB5EE,CjE+UU3N,EiE/UErB,IAAZ,ChBWG,CAAsBA,CiBT3B,EAAuB+K,ClE6UrB,AiDpUG,EjDoUqBhK,AiDpUOqI,CiBTN+F,CLad,I7DgUmB9N,AiDpU3B,CYIaoN,CKbK,AjBSkBjN,CiBTN,MjBS9B,EAA6C,CjDoUxB,A6DhUb,C7DgUgCF,GAAnB,A6DhUO,E7DgU/B,A6DhUA,CKbqB,IlE8UhB,IACH,OAAOK,OAAP,KAAmB,WAAnB,IACA,OAAOA,QAAQC,KAAf,KAAyB,UAFtB,EAGH;AyE/VN,AzEgWMD,AiEnVFF,AZYF,AQGC,ApB6DF,AQjEC,AqB1BK,MrB0BDsJ,AqB1BOlK,CLeN+N,EZYE,GJDG5O,CICV,CrDuUY4B,EiEnVV,CAAalC,AhBWAqL,EjDwUX,CAAczJ,AiDxUR,CgBXR,CAAkBsM,EjEmVE/L,AiDxUA7B,EgBXpB,GhBWyBxG,EjDwUvB,CiDxUkB,CAASyT,GqB1BTvR,CrB0BtB,iBqB1BK,EAR+C;AGWtD,AzEgWMiG,AiEnVH,ACED,AbUD,AIbD,AIpBe,AZgCb,AqB1BK,GLW4B,CAAjC,EhBeI6I,AqB1BO+L,GrB0BX,KjDwUYzU,GAAR,CAAY,SAAZ,CsElWc,CtEkWSR,IAAIC,QAAJ,CAAaC,OAAb,IAAwB,aAA/C,EAA8D,KAAK3C,IAAnE,EAFA,CAEyE;AyE/V/E,AzEgWM8C,AkEjVJ,ACpBF,AGGE9C,ctEkWYiD,GAAR,CAAY,IsEnWE,CtEmWGd,IAAjB,EAHA,CAGuB,EkEjVZS,GAAG2L,IAAH,CAAQC,KAAvB,EAA+BjU,IAAD,IAAU;AOd1C,AzEgWK,AiEnVH,ACEE,AbUJ,AJDE,AqB1BAyD,QJiBM,AjBSA,EAAEvC,UAAF,KAAWyQ,KqB5BC,CrB4BKA,GiBTN3R,CjBSUqI,EAAV,CiBTX,EAAiBlK,AjBSS,EAAhC,2BiBTM,CAAJ,EACE6B,OAAOA,KAAKwC,KAAL,CAAWrE,8BAAakF,MAAxB,CAAP;AOfN,AzEgWG,AiEnVD,AhBWA,AqB1BAqT,QrB0BM5C,YAAYlN,KAAKxG,GAAL,CAASgI,GgBXZC,GAAG2L,ChBWA,EqB7BA,CLkBH,CAAQC,ChBWgB,IgBXvC,EAA8B,CAACrS,CAAD,ChBW9B,CoBvCOgM,AJ4B2BuO,CAAJ,KAAU;AQZ1C,ARY4C9T,ACIxC,ATNJ,AaZE+U,OLc6ChB,SAAH,CAAa9V,IAAb,CAAkB,EAACtG,MAAM4B,CAAP,EAAU8I,ECIpDuC,EItBA,EJsBhB,CDJ2EkP,CAAjB,ACIpCnc,EDJkB,ECIxC;AOfJ,AzEgWE,AiErVkF,ACKjF,AHRI,AdgBL,AqB1BAS,GLaA,ACAA,GjBaIkR,GchBUuJ,E/DwVLlW,EiDxUE4B,AqB1BA8P,KtEkWX,AiDxUgBtO,CjDwUE5C,GAAlB,EAAuB,C+DxVlB,AdgBM,CchBoByH,IAA1B,AdgBuB7E,EchBSmT,IOVb9a,CrB0BxB,EAAqC,MqB/BnB,EPeb,EAAiD;AUPxD,AzEgWI,AiErVF6a,AFHA,AdgBE3J,AqB1BF,QtEkWM/K,A+DxVAyO,AdgBA3C,MAAJ,CjDwUW/J,O+DxVO,E/DwVEnD,A+DxVtB,CEGgBqQ,EjEqVH,CAAX,EiErVF,CAAsBlE,GAAtB,EAA2B,CAAC1E,IAAD,EAAO5E,GAAG+T,SAAV,EAAqB,CAAC5H,IAAD,EAAO5N,IAAP,KAAgB;AQVlE,ARWI,ACKF,AjBQE,AqB1BFxG,QLaMwG,EKpBY,ELoBhB,EAAUyO,YAAY/O,IAAZ,CAAiBM,IAAjB,EAAV,KACK,4BAAaqG,IAAb,EAAmBuH,KAAKxU,IAAxB,EAA8BwU,KAAK9J,KAAnC;AQXT,AzEgWI,AiEpVD,ACIDiH,ATTF,AMCE,AIba,AlB6BZ,AqB1BDqL,GLW2B,CAA3B,ECOI3U,ElEgVEzB,AkEhVN,CAAOiM,ACrBe+J,InEqWXpa,CsE1WO,ItE0WZ,AkEhVN,ACrBa,CnEqWI,AkEhVAma,ACrBe3I,CnEqW1B,EAAc,EAAd,EkEhVN,ACrBuC,CDqBb5T,AHRhB6M,CIbG,EnEqWe,AkEhVH,ACrBkB4P,CJa3C,EAAiBzc,CGQiB,EHRlB,CIbkC,EAArC,CJaY,CIb6B2B,EnEqWpD,EAAyC6E,KmErW9B,EnEqWqC,AmErWe,YnEqWHA,IAAnB;AyE/V7C,APgBInF,AHRA,AIbF,AGGAwb,QHHMtL,EJaE6J,CGQC9Z,CI3BS,EHMNmb,CDqBV,CAAYzc,CHRCA,EIbEoN,CDqBC5O,CHRC6c,KIbP,GJaV,CIb0B,EAA5B,oBDqBc,CAAZ,EAAkCkB,OAAlC,CAA2ChK,SAAD,IAAe;AOf7D,AzEgWI,AiEpVF,ACIIvS,AHRF,AIbF,AlB6BA,AqB1BA8S,QPUMsB,AIbAvB,EDqBEH,ClEgVC,C+DxVP,G/DwVWlK,AmErWAiU,KAAK5J,GnEqWT,CAAa,AmErWT,GnEqWJ,CmErWiB,CnEqWCrM,AkEhVvB,CAAwB+L,ACrB5B,MnEqWkC,GAAzB,AkEhVL,ClEgVF,CALqB,AkE3UgBvS,ClEgVG,GkEhVCxB,gCAAJ,EAAqB+T,SAArB,CAAnC;AOfN,AzEgWG,AiEpVD2C,ACIG,AbSE,AUjBH,AIbF,AlB6BA,KiBVE,CjBUE3D,EchBE+J,AIbA1L,Cd8BQ2B,AJDd,EAAS,CICJ,CAAa3R,EUjBhB,EViBG,Ac9BU6c,Ed8BSpX,Gc9BJuK,Cd8Bf,EAAyB1O,CYbnBuU,EZaN,Ac9BL,Ed8BmC5B,CYbnC,CAAiBtC,GAAjB,AZaK,EYbiB,AZaoB/E,CYbnBvE,CZalB,EYbqBkN,AZaoB,MYbxB,EAAYlN,GAAG2H,MAAf,EAAuB3H,GAAGwJ,WAA1B,EAAuCoB,IAAvC,EAA6C5K,GAAGmN,SAAhD,CAAtB;AQXF,APgBG,AbSD,AInBF,AUXE,AlB6BE,AqBzBJ,GJaE,GbaI,Ec9BED,SAASsH,KAAKtH,MAApB,Id8BetB,KAAX,CAAJ,EgBhDOrG,AhBgDgB;AoBxBzB,AzEgWE,AiEpVA,AZaEhB,AUjBA,AIbF,AlB6BE,AqBvCgB,CAAb,CAcA,ItEiWD/D,E+DxVE,AIbAgJ,AlB6BDiC,AqBzBMqC,CjB0BJlC,AUjBAsH,KViBL,GJDA,CjDwUc,CiDxUA,GkB7BI,CAAC,CJaf,AIbgBsB,GnEqWtB,C+DxV0Bzc,AOTT8c,CHJUrL,IGILsE,GPSYlJ,AOT7B,IPSH,AIbF,EJawC;AUP1C,AzEgWE,AiEpVA,ACIA,ACrBA,AlB6BImE,AqBzBC,MtEiWDtI,AsEjWO6I,ELaL0K,AEjBAzG,IlB6BI,MjDwUM,IiEpVI,EEjBEnO,EGILyV,KAAKvL,EtEiWtB,CsEjWK,KLaqBzT,IEjBKmN,GlB6B3B,ckB7BkB,IAA8BwG,IFiBhC,CAApB,MEjBA;AMMF,APgBE,AbSE,AUjBA,AIbF,AlB6BI3Q,AqBzBC,MJiBDwb,AIjBOtG,EjB0BL,Ac9BA3H,GlB6BGzN,IkB7BI6b,IDqBI,CAAC,ACrBApO,CDqBlB,AjBQI,CICgB3L,AJDAqK,CiBRCpP,CCrBrB,Ed8BM,CAAmBuD,CiB1BP4b,EjB0BZ,CAAJ,EAA6B,AiB1BR9G,CrByBnB,CAA6BhF,EqBzB5B,CrByBD,EAAkClQ,IAAlC,SiBR8BwO,MAAb,CAAoBgN,QAApB,EAA8B,CAA9B;AOfvB,AzEgWE,AiEpVA,AZaIzI,AUjBF,AIbF,AlB6BG,AqBzBE,MLaDoI,AKbOlI,EPSLqH,G/DwVG7S,GqDvUGrH,GAAR,AUjBW,CAAT,C/DwVN,CAAmBkE,CiEpVA,CAAC6C,AFJAjI,C/DwVpB,EAAwB,AiEpVDwV,CFJC5U,IOTLkc,KAAK/I,CPSJ,CAAe/L,CEInC,EAAsC,AKbjC,IPSe,KAA2B,OAAzC,IAAoD3C,eAAKiB,OAAL,CAAatG,IAAIgV,SAAjB,CAAxD,EACEC,YAAY/O,IAAZ,CAAiB,EAAClG,QAAD,EAAMwG,MAAMxG,IAAIgV,SAAhB,EAAjB;AURN,AzEgWI,AiEpVA,ACIF,AbSI9T,Ac9BJ,AGIK,MAAM+U,EtEiWL1Q,AmErWAK,CFiBC,GZaG,EAAN,CYbSgD,CjEoVCvF,AiEpVZ,AEjBYoZ,IFiBIR,CEjBCrW,InEqWIb,CmErWvB,InEqWc,AsEjWK+X,CtEiWU1X,AiEpV3B,EAA6B,EjEoVEV,AsEjWTuR,KAAnB,EtEiWwB,CAAYxN,SAAZ,EAAuB,GAAvB,CAAf,EAA4C,CAA5C,CAAZ;AyE/VJ,AzEgWI,AiEpVE,ACIJ,AbSG,AUhBD,AIdF,AlB6BE8I,AqBzBG,KjBuBH,CaNEtJ,AIjBOqK,EtEiWL3J,A+DvVAyS,AdeAzH,CiBRC/D,CDJCqM,CZcJpI,IrDsUStO,AkEhVT,AjBQF,CAAY,CcfC,CAAb,CGOe,AbUL,CaVM0C,AHPA,AdehB,CjDwUiBxC,AqDtUf,CYdgBmS,CCICnG,KlEgVnB,IsEjWkBqL,EJiBpB,EDJQ,ACI0B,CDJClU,AKbV0J,CLajB,CAAJ,EAAmC,EKblC;AGEP,AzEgWI,AiEpVIf,ACIJ,AbUD,Ac/BD,AlB6BC,AqBzBI,MAAM2E,EtEiWL1P,AmErWA4O,EDqBE5D,ElEgVN,AiEpVQyE,KAAJ,ACIS,CDJCgG,EEjBE,EAAlB,QFiB4BrT,CAAZ,CAAV,QKbkBkU,KAAK5G,UAAxB,EJiBmCjO,GAAG2H,MAA5B,CAAb;AOfJ,ARYO,AFHH,AIdF,AGIK,MAAM1F,IPUHwJ,YAAY1T,IAAIgI,OAAJ,COVC8U,IPUe,COVV5S,OAArB,CPUH;AURJ,AzEgWI,AiEpVC,ACID,AbUF,Ac/BA,AlB6BA,AqBzBK,MjB2BDhJ,AiB3BO+b,EtEiWL1X,AkEhVA0C,ACrBA+T,Cd+BN,EaVStI,AbUA,GrDsUGzQ,MAAN,AkEhVJ,ACrBgB,EDqBE,ACrBpB,CnEqWqB,CAAf,IAAoBsC,MAAM,CAAN,CAAxB,EAAkC,EsEjWZwB,MD9BjByG,kBC8BF;AGEP,AzEgWM,AiEpVH,ACIGnM,AbUF,AUjBA,AIdF,AlB6BA,MAAI,CAAC,CIEC,Ac/BAgE,EnEqWEuD,CAAJ,EkE/UGtH,ECtBMsS,EDqBT,CACQrC,ECtBMlM,EDsBFyN,ECtBhB,EDqBI,EAEGyJ,GjBMOvU,GIEG9G,CaVb,CAEW8G,CbQT,CAAJ,AJFG,CAAL,CIGIwE,CJHoB,IIGftL,EaTiB,CbStB,CADF,KAGEoV,uBaXqC9E,AbWxBvQ,GAAb,CAAiBC,CaXyB4R,EbW1C,EaXsB,AbWAlT,EaX0BoI,EbWhD,KaXsB,EAAmCuJ,IAAIuB,IAAJ,CAAS9K,OAAT,CAAnC,CAFtB;AOfN,AzE+VM,AkE7UD,AbWF,AUpBC,AIdF,KDmBE,GHLIoM,AIdAa,EnEoWKpM,CAAP,AkE7UK,IHTI,GOVAgU,IHJO,CGIFlS,CHJlB,KGIa,CAAY,EAAZ,EAAgBmS,IAAhB,EAAsB,GPUT9c,GAAb,EAAkB7B,+BAAlB,CAAX,EAA8C;AURlD,AzE8VM,AiElVJ,ACMI,ATZN,AMGM,AIdJ,AlB6BAqI,AqBzBAyW,MLaIhV,ChBYC2L,CkB7BC/G,CFiBC+G,ARNAsE,CzDwVOpP,A+DrVP4K,CdeP,EgBZI,CAAQlH,AhBYA5O,AqBzBAmJ,CbOd,AUXe0V,CFiBb,ARNcjW,CzDwVO,CiElVLyB,CjEkVZ,A+DrVA,CNHN,AUXoB4E,CFiBC+G,AFHD,CNHElN,EUXpB,CFiBgB,ARNlB,CQM0B8F,CRNCvM,CQMT,CAAWwH,CRN7B,EAAgC,CQMd,CAAgB8J,ECMbC,CDNH,CKdmB,CLcEqB,ECMbC,CjBMD9K,CgBZP,ECMZ,EAA0BC,EHTCjI,AdenB,CiBNqBgI,AjBMjC,EcfkB,EAAkB,GGShC,EAAsCuJ,GAAtC,KHTc,EAAiC,IAAjC,EAD8B,CACS;AUR3D,APkBK,AbWH3R,AIvBA,AMGIqV,AIdJ,AGIA5N,QbOMgH,AUXArG,CdkCCpI,KAAK6M,CIvBC,EAAb,CMGgBvG,AIdAuW,EGEmB,EPY/B,CAAiB,AIdAzU,EdkCd,EAAP,GclCgB,IAAgB,SJcLhI,GAAN,EAAW,IAAX,EAAiBoU,GIdKvH,CJctB,CAAjB,EId4B,CAAhC;AMMF,AzE8VM,AiElVJ,ACMC,AbWDjP,AIvBAyQ,AMGI,AIdJ,AlB6BA,AqBzBA0O,MLaI,CAAC9U,ARNAzB,CUXCkN,EFiBE8B,CjEkVC5M,CyDxVClC,CMGC,E/DqVEmC,AyDxVb,GMGI,C/DqVa,AyDxVAnC,CzDwVb,AmEnWcsB,EnEmWEY,AyDxVpB,CQMA,EAAuB2I,CjEkVChM,GiElVGoQ,CZiBhB/V,ErDiUmBqD,AmEnWA,EdkC9B,EYjBuB,CAAY,CjEkV/B,AqDjUe,ErDiUmB,AqDjUjBrD,CclCrB,CnEmWwCgJ,CAApC,EAAuC,KqDjUxB,CYjBI,CZiBIvD,UAAR,EAAcwO,YAAd,EAAqBrH,MAArB,EAAnB;AoB5BF,AhBME,AMGG,AIdH,AlB6BA,AqB7BmC,CAAtB,KbWThG,ARkBA,CAACA,CkB7BC0V,GVWGzZ,CRkBCmR,EQlBV,EAAcvF,ARkBd,EAAgB,CkB7BC,CAACqF,CVWClN,KAAK/D,GAAV,AUXG,IVWcxC,AUXA,CAACoF,EVWlB,EUXd;AMMF,AzE8VQmB,AiElVN,ACMA,AbWA,AIvBA,AUXA,MAAIxG,GdkCGJ,AIvBAyO,AUXP,IdkCA,AIvBA,EzDwVa9I,MAAMqD,CAAN,CAAP;AyE7VR,ARYE,ACMA,AbWD,AIvBA,AMGG,AdeFpC,MiBNI+K,CjBMCA,GiBNGtJ,AjBMR,EiBNI,CAAOmL,AjBMA7B,KiBNX,CjBMiB,CiBNC,EDNbuJ,sBhBaHtU,EgBboBiP,GhBaf7B,EgBbF,CAAuBrC,ChBYX,EgBZZ,AhBaQ,EgBboB,CAACvR,GAAD,EAAMiI,GAAGwJ,WAAT,CAA5B,CAAL,EAAyDI,KAAKoD,YAAY/O,IAAZ,CAAiB2L,CAAjB,CAA9D;AQXF,AzE8VQ,AkE5UJ,AHTA,AIdF,AlB8BIhF,MkB9BAqP,IlB8BM1V,EjDqUAA,GiDrUKxG,GkB9BCmV,AlB6BH,GjDsUM3O,GkE5UZ+K,IlE4UmB3I,AkE5UfX,ACvBewJ,EDuBnB,CAAO2B,ClE4UgB,CAAJ,GAEdrK,AkE9UV,EAAoBgT,CAAD,ACvBrB,EAAuC,EDuBX,GGzDrBvO,CrEuYgBhH,IAAX,EAAiB,CAAjB,EAAoBmC,IAApB,CAFc,GAId,MAAMnC,KACH9B,OADG,CACK,KADL,EACY,MADZ,EAEHA,OAFG,CAEK,WAFL,EAEkB,KAFlB,EAGHA,OAHG,CAGK,IAHL,EAGW,KAHX,CAAN,GAIA,GARF,CAAJ,EAUKoE,KAAKD,GAAL,IAAYrC,IAAZ;AyEvWb,AzEyWO,AiE7VL+K,ACMI,AbWN,AIvBA,AMGI,AIdAvR,AlB8BE4P,MgBbA0C,EFHE8B,EGSE2H,ACvBAlP,EFiBR,ACMUjM,CDNCqH,CEjBT,CJcW,CEGCoG,EhBWD,EgBXb,ECMI,EAAkB0N,EAAEnb,UAAF,CAAawY,MHTTpZ,GAAb,EGSS,AHTS9B,CGSgB6d,CAAzB,oCHTT,CAAX,EAAqD;AURzD,APkBK,AHTC9G,AIdH,AlB8BGjN,GkBhCJ,EDuBE,ICrBK,SJcS9B,IAAZ,CAAiB,iCAAkBlG,GAAlB,EAAuB,IAAvB,EAA6BoU,IAA7B,CAAjB;AURN,AzEyWM5N,AiE7VJ,ACMC,AHTG,AIdF,AlB0BW,GADI,EAMfA,CgBdE,CAACyB,CEjBC,CAACyL,CFiBCjC,AhBcDzR,GjD+UI6I,A+DhWA,AdiBT,CAASlH,GjD+UI,CAAJ,A+DhWP,AIdF,EAAgBkL,CnE8WC/D,AiE7Vf,EhBQa,EgBRM,AEjBAnH,AlBgCrBiO,CjD8UsB,AiE7VA3H,CjE6VL,CAAR,CiE7VgBiU,EjE8VhB,AiDtVM,CAAjB,EkBzBkB,GnE+WDpT,AiE9VjB,AEjBmC,EFiBE,AEjBnB,GnE+WIrH,IAAL,CAAU,GAAV,CAAN,GAAuB,YAD9B;AyExWN,AzE2WK,AiE/VD,AFHC,AIdDzB,KnEwVA,KmExVM,CnEgXC,AiE/VAA,IAAIsN,UAAX,EAAuBT,IEjBXxH,CFiBgBtE,GEjBtB,EAAYY,MFiBK,CAAiB3B,EEjBlC,EFiBsCsN,AEjBf,UFiBN,WEjBYT,IAAN,CAAvB,CAAN;AMMJ,ARYG,ACMD,ACvBC,AlBiCD,sBAAKrG,KAAKqN,KAAV,EAAiBC,KAAK,4BAAavC,IAAI1E,IAAjB,EAAuBiH,EAAElU,IAAzB,EAA+BkU,EAAExJ,KAAjC,CAAtB;AwB3BF,AzE2WM9D,AkEzVJ,ATZF,AMGI,AdmBFA,OAAKwB,CcnBCoM,CNHC+D,IzDqWIpP,CiD/UX,CcnBa,EdmBEf,OjD+UOzC,AiD/UtB,CQtBF,CAA0B6S,ESYbnD,ElEyViB,CAAN,AyDrWxB,CzDqWa,CyDrWoBnC,CzDqWC,CAArB,EAAwBnK,AyDrWrC,ESYE,ATZqC0P,EzDqW1B,CAAP,C+DlWsBrY,GAAb,EAAkB/B,SNHjC,EAA2D,kBMG5C,CAAX,EAA4C;AURhD,AzE2WK,AiE/VH,ACMA,ATZA,AMGI,AIdJ,AlBiCAsT,MQtBI3I,ARsBAmL,IQtBIjB,AMGAzN,CdmBR,IQtBapC,MAAb,CSYKgF,EDNEsJ,CCMC6D,AHTK9O,EEGb,EAAY,GFHJ,CAAa8N,CGSrB,CDNA,CCMmBN,CDNCjH,AFHZ,CAAJ,EAAwB,CEG5B,ACMwBiH,EAAEtN,IAAF,IAAUsN,EAAEtN,IAAF,CAAOmN,OAAjB,IAA4BG,EAAEtN,IAAF,CAAOmN,OAAP,EAApD;AOjBF,AhBME,AMGMsB,AIdN,MAAI,CAACO,CVWC3M,IAAIuP,MAAMnV,EMGEiD,AIdlB,EAAoB,EVWV,AMGJ,CAAiB,ENHEmS,kBAAzB,OUX+B9G,GAAX;AMMtB,AzE2WI,AiE/VF,ACMA,AHTQwD,AdmBR,QjD+UMpM,KAAK1F,K+DlWK,C/DkWd,EAAiB,C+DnWI,6BMvDhBuK;AIgDT,AzE2WMhH,AiE/VJ,ACMA,AbWK,AIvBL,AMGQA,AIdR,AlBiCA,MgBhBI,ACMA6V,AjBUA3I,CgBhBCzL,EZiBS+N,AIvBPpN,CQMC4M,GjE+VGhP,AqD9UN,AIvBMqC,CJuBQjJ,AIvBnB,CRsBA,CQtBc,AMGAwU,CdmBC,CjD+UC1P,AkEzVhB,AbWK,EaXa,AbWOW,AUtBF,GEKnB,CZiBC,CrD8UM,CAAaqD,AqD9UOxH,CYjBNqQ,EZiBpB,EYjBwB3B,AZiBOiE,IrD8UzB,CqD9UN,CrD8U8B,AiE/VnC,CZiB2CrH,CYjBN,CZiBhC,EAA0C,KrD8UFxD,AiD/UfuI,CjD+UK,AkEzVJ1E,ElEyViBpK,AiD/UjC,EiBVG,AjBUiBuO,CjD+UA,CkEzVE,ClEyVgB,CkEzVnC,GjBUwBO,IAAI1E,IAA/B;AwB3BjB,AzE2WQ,AiE/VJ,ACMF,AbWA,AIvBEjE,AMGM5I,AIdR,MdkCIkB,AclCA0S,GdkCJ,CYjBQ5J,CZiBCsM,AclCA1W,GFiBG,CjE+VC+I,AmEhXT,GJWmB,CIXNkE,CnEgXCpK,GAAL,CmEhXSgR,CnEiXb/O,GmEjXT,EAA4BmI,EnEgXf,CACI,CqD/UK5L,CclCWwS,EdkCxB,CrD8UI,AqD9UavS,CclCE,CnEiXJ,AmEjXcyS,CdkC7B,EAAsB/T,ErD8UlB,EAEJ8E,AqDhVA,AclCmB,CAAkB,IAAlB,EnEgXf,AiE/VwB6M,CjEiWpB,GiEjWwB3B,EjE+V5B,EAEW,EiEjWZ,CAAV,EjE+VW,CAAP;AyE1WR,AzE6WO,AiEjWH5F,ACIF,ATVEpI,AMGMiS,AdmBR,MgBhBIsI,CjE6VO,AkEvVN,ClEuVD,CiE7VF,CAAM,CAACnS,ACMAA,ATZAyL,CSYJ,CDNMpD,CCMCrI,EAAEoP,ATZZ,CAAatG,AMGA,GAAG1Q,EEGV,ARNYwG,CAAL,CAAb,CQMqB,AFHR,CNHS,AMGAnB,CGSZ,ATZaqL,CSYCjG,EHTX,CNHS,AMGK7M,CEGrB,ACMI,CTZmB4I,CAAP,CQMS,ARN/B,AMG+B2S,SEG/B,CFHa,CEG6B,MAAM;AQXpD,AzE6WK,AiEjWCI,AZiBJ/d,AIvBC,AMFsB,AITvB,AlBiCAgS,ScxBM,AdwBC3H,EAAP,CAAU+L,SAAV,GkBjCOzC,AlBiCe,GkBjCtB,EAAY,CFiBM9J,AZiBP7H,AJDiB,GkBjC5B,CFiBI,AZiBJ,CYjBuB2R,AEjBL,GFiBd,AZiBe,EYjBS,AZiBP3R,IYjBjB,MZiBe,EAAQyF,UAAR,EAAcwO,YAAd,EAAqBrH,MAArB,EAAnB;AoB5BF,AzE6WI,AiEjWC,ACMH,ATZD,AUXGoH,AlBiCA,KgBlBA,KhBkBMK,CjDiVCzN,GmEnXS,CnEmXhB,KiDjVgB+K,IAAIsB,IAAJ,CAASqB,MAAzB;AwB3BJ,AzE6WG,AiEjWA,ACMD,AbWA,AUpBM,AIdJrH,AlBiCA,GgBrBF,GCWI5E,GDNG,ACMA+L,AbWApU,IAAP,CcpCkB,CJgBL,GGSb,EAAkBqI,AHTZ,GGSe+L,SAAH,EjBUDzC,IAAI3B,MAAJ,CAAWkD,IAA1B,EAAgCmB,OAAhC,EAAyC1C,GAAzC;AwB3BJ,ARYI,AZiBH,AItBD,AMEO,AIdHiE,AlBiCA,gCkBpCgB,ElBoCDjE,IAAItJ,EAAJ,CAAO2H,MAAP,CAAckD,IAA7B,EAAmCmB,OAAnC,EAA4C1C,GAA5C;AwB3BJ,AzE6WE,AiEjWEoK,ACMF,AHTG,AIdDK,AlBiCAzK,MjDiVEtI,EiDjVE0K,OAAJ,GjDiVc,MmEtXE,IFqBFlM,IAAd,CAAmB8J,GAAnB,EAAwB,IAAxB,kCjEiWF;AyE5WF,AzE6WE,AiEjWC,ACMD,AbWF,AclCIE,AlBiCD,GALD,GjDuVEvI,WAAW,WmExXK,iCE7CXsE;AIwDT,AzE8WM,AkE5VJ,AHTE,AIdA4H,AlBiCH,SjDkVU,OADI,QmExXK;AMYpB,AzE8WM,AiElWJ7D,ACMA,AHTE,AIdA5P,MFiBEsG,ACMA,CAACsJ,CDNL,CjEkWS,AiElWFiD,ECMEnC,MlE0VI,EiEhWb,CCMA,EDNoB,ACMAsJ,EC9BF,EFwBlB,oBCMkClU,IAAd,CAAmB8J,GAAnB,EAAwB,IAAxB;AOjBtB,AzE8WM,A+DrWF+J,AIdAtT,AlBiCJ,SjDkVW,K+DrWG,MItBM,aJsBChI,GAAP,CAAV;AURJ,AzE0We,AiE9Vb,ACMA2b,ATXF,AUZI/V,GnE8WF,MiE7VO2L,ARLA3P,GQKP,GRLF,CAAgBkR,AUrBI,IVqBpB,EAAsBlK,CAAtB,EAAyB,CSWTnB,IAAd,CAAmB8J,GAAnB,EAAwB,KAAxB;AOjBF,ARYC,ARLCuB,AMEE,AIdAqC,OVYG7F,CMEAoE,KNFL,CAAY9K,CAAZ,EAAe,AMEb,CNFF,AUtBkB,CJwBF;AURlB,AzE8WE,AkE5VA,ATXA,AMEI,AIdFsT,OVYGvI,ESWE9G,CHTA,C/DqWE9D,GkE5VG0K,ATXZ,ISWA,GlE4VA,CAAqBjN,AmE9XH,InE8XlB,EAA2B2C,MAA3B,EAAmCR,E+DrWf3I,E/DqWpB,C+DrWO,C/DqWkC,C+DrWhB,aAAlB,CAAH,EAAqC;AUR3C,ApB6BO,AItBL,AMC0CA,AIbxCqO,SdkCY0F,GUrBgCyH,EVqBzC,Ac9Ca,Cd8CEje,QAAf,EAAyByK,AUrBY,CAAkBoR,MVqBvD,AItBU,EJsBwBvG,GItBnBjD,AMCsB,CVqBrC,AUrBmE5P,EVqB3B,CUrBH,END1C,EAA4B,IAA5B,EAAkC,KAAKiI,EAAL,CAAQD,OAA1C,EAAmD,IAAnD;AgBNF,AzE8WIxB,AkE5VF,AbWA,AItBD,AMA+E,AIZ5EoJ,AlBiCG,OctBW,CVuBVkD,AUtByE,CGWxEvB,AjBUOgC,EjDkVL/M,CkE5VT,GbWa,CrDkVR9B,CqDlVL,Cc/CkB,KnEgYT,CACI,EiDnVR,CAA2ByP,GjDkVvB,EACY,GADZ,AiDlVJ,EjDmVqBxN,AiDnVgB,IjDkVjC,GAEJjC,OAFI,CAEI,uBAFJ,EAE6B,IAF7B,CAAP;AyE7WJ,APkBC,AbWC,AUtBI,AIZF,AlBiCF,MICI6R,AJDA,CAACpC,GICL,AUtBO,CAACmH,CVsBE9E,GJDV,EAAe,CcrBR,CVsBP,GUtBmB,CAAC,CdqBE,IAAP,oBoB3FRhJ,GNsE0BxN,GAAb,EAAkB,aAAlB,CAAb,IAAiD,CAAC,4BAAaA,GAAb,EAAkB,aAAlB,CAArD,EAAwF;AUN9F,AzEgXI,AyDzWJ,AMAQsb,AIZJ,AlBiCFnH,QjDoVM3N,IAAJ,CiDpVS2N,CjDoVC,I+DzWI,EAAE9O,EdqBEX,IcrBI1E,GdqBb,CcrBiByb,AdqBA1d,ScrBZ,EAAV,kBdqBK,EAA+B,EAA/B,CAAX;AwB3BF,AzEgXM,AqDnVJ,AUtBG,AIZD0U,AlBiCF,MAAIlT,IjDqVEuJ,CqDpVG2N,IclCI,EnEsXA,AmEtYK,EnEqYd,EqDnVJ,CAAoB5J,IAApB,EAA0B,qBJDIsH,QAA1B,CAAJ,EAAyCA,WAAW5U,2CAA0B4U,QAA1B,CAAX;AwB3B3C,AzE+WM,AqDlVF,AclCA,AlBiCF,QICMtH,CJDCsH,CjDqVD/K,GqDpVKpB,GrDoVC,CAFR,AiDnVJ,GICE,EAAkB;AoB5BtB,AzE8WM,AqDjVA,AUtBF,AIZAoL,AlBiCH,QcrBOkI,E/D0WAvY,AqDpVE2T,CclCC,EAlBS,EnEqYd,KqDjVc,AUtBA1W,QAAQ6M,IAAR,IAAgBsO,YVsBHtO,GUtBzB,CVsBY,AUtBhB,EVsBmC5O,AUtBe,6BVsBlC,CAAd;AoB5BN,ApB4BM,AUrBA,AIZFuW,UdiCkDjD,EUrB1CmK,CVqBN,GcjCU,KAnBI,QJ+BS,4BAAa1b,GAAb,EAAkB/B,6BAAlB,CAAvB;AUNN,AzEiXM,AyD1WN,AMAM,AIZFgV,AlBiCJ,SQrBSqF,CMAA5E,AIZC,GnEsXGlN,CmE1YO,QnE2YPzD,CyD3Wb,AMAsB,CNAE6F,AMAD8S,CNAvB,EAA2B,GzD2WNlV,KAAKzD,G+D3WpB,E/D2We,A+D3WkB,C/D2WPkG,SAAX,CADR,KAED,CAAClG,MAAM6C,KAFb,EAGI;AyEnXV,AzEoXQ,AqDxVF,AIrBJ,AMDuC,AIXrC9E,UAAM,EnE0XA4F,GADF,OyD7WDrF,OAAOC,IAAP,CAAY,KAAKwR,IAA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D,ClBuBgB9D,IkBvBjC,ClBuBsC4N,CkBvBdvB,GlBuBT,CkBvBf,AlBuBF,GcfUyI,OADF,EAEE;AWhGZ,AXiGczO,AITV,AlBuBF,QAAMwH,GkBvBGpH,GAAP,EJSgBjN,GADR,AdeO,wBAAS,CAAC3B,GoB3GpBmP,4BpB2GmB,EAAiBlP,+BAAjB,CAAT,EAA2C6V,QAA3C,CAAjB;AyB9GF,A1EwcQrL,AqDvVN,AIvBF,AMOc8G,AITX,AlBuBD,GkBzCO,EAkBJ,GlBuBG8D,CQrBC6E,IzD8WInP,AyD9Wb,CAAcyD,IzD8WN,AyD9WR,AMOsB,ENPF2L,ARqBAhS,EjDyVEgD,GiDzVGqD,EQrBzB,AUFY0E,EVEiBmC,ARqBT,CkBvBf,EnEgX2BrK,AmEhXfgF,ClBuBgB7H,EjDyVX,CmEhXjB,CnEgXgC,AmElY5B,CnEkYa,AyD9WtB,AUpBE,AlByCoCqG,EjDyVEnG,AyD9WA,ERqBP,CjDyVX,AiDzVqBsB,CjDyVnC,MiDzVyB,KAAsB,SAArD;AyB9GF,A1EwcO,AqDvVLsO,AIvBA,AMIU,AINX,AlBuBC,MQrBI5C,ERqBE,CcnBE,CdmBAjC,CcbEzR,INRV,AMQc2B,ENPZqW,OMCM,CVqBK7W,CUdH,IAPF,CVqBR,AUtBM,GdoBA,KQpBQsU,ARoBU,KQpBtB,ARoB2BxN,CQpBT,CRoBpB,GQpBE,EAAwB,CAAC4E,IAAD,EAAO2L,OAAP,CAAxB,EADF,KAGE,0BAAW3L,IAAX,EAAiB,KAAKA,IAAtB,EAA4B2L,QAAQ3L,IAApC;AiB5FJ,AjB6FC,AMQO,AdUN,QAAM+C,OcVO,EdUE5P,GcVT,KdUiBwG,KAAKoJ,MAAL,IAAe5P,IAAIY,UAA3B,CAAf;AyB9GF,A1EwcM4F,AqDvVJ,AUZK,AdUL,MIEI,OrDuVO,CAAC4C,GAAD,GAAOI,UAAUhD,AqDvVfwB,IrDuVK,EAAgBmB,CqDvV9B,CAAJ,EAAuB,ErDuVL,CAAP,GACAC,MAAM,CAAN,GAAU,MAAMN,KAAKrH,IAAL,CAAU,GAAV,CAAN,GAAuB,oBAAjC,GAAwDqH,KAAK,CAAL,CAD/D;A0EvcN,A1EycK,AqDxVD+J,AIpBJ,AMQK,AdUH,QAAMyB,GIEGtM,OAAP,IJFkBmM,aAAa,OAAjC;AyB9GF,A1EycI,AqDxVAnM,AJFF,QAAMuM,GjD0VG/N,GqDxVG,CrDwVV,AqDxVA,OJFkB2N,aAAa,OAAjC;AyB9GF,ArBiHG,AUZC;AWpGJ,A1EycI,A+DpWA+G,AdUF,MAAI5Q,KAAJ,EjD0VWf,O+DpWOkM,G/DoWhB,CAAqB5P,C+DpWrB,C/DoWA,A+DpWsB,E/DoWGhD,EAAzB,A+DpWA,E/DoW6B,A+DpWD,CAAC7C,GAAD,EAAMA,IAAIub,UAAV,EAAsB,CAACnH,IAAD,EAAO5N,IAAP,KAAgB;AWpGtE,A1EycM,AqDxVJ,AUZI,U/DqWEiD,A+DrWE,CAACjD,C/DoWL,G+DpWA,EAAW,qCMzGRgH;AKKT,A1EwcM,AqDvVJ,AUZIyH,AdUJ,MIEI,IrDyVEvL,KAAK,CAFP,E+DnWYxD,IAAZ,CAAiBM,IAAjB,GVYSjJ,QAAT,CAAJ,EAAwB;AqBhH1B,A1EucM,AqDtVFA,AUZC,AdUH,Kcb8B,CAA5B,AdaEiJ,IjD2VEmD,CiD3VGzB,IjD2VEgB,AqDzVE3L,IJFb,EAAmB,GjD2VCsI,EAAT,CAHP,CqDtVsB,GAAb;AqBhHf,ArBiHM,AIpBN,AMQG,AdUC,GcnGF,KdmGMW,CQlBCiS,IRkBIxQ,EQlBb,ARkBQ,CQlBQ4E,ARkBA2H,IQlBhB,EAAsBgE,IRkBlB,EAAwB,CQlB5B,EAA+B9E,SAA/B,EAA0C;AzD8WpC/J,AqDzVA,AIpBJ,ARkBInD,MQlBAkN,GzD6WG5Q,EiD3VEwP,IQlBT,EACEU,ARiBE,CjD2VA,GAAenQ,GAAGC,SAAlB,MyD5WU2S,KAAZ,CAAkB,IAAlB,EAAwB,CAAC5I,IAAD,EAAO2L,OAAP,CAAxB,EADF,KAGE,0BAAW3L,IAAX,EAAiB,KAAKA,IAAtB,EAA4B2L,QAAQ3L,IAApC;AkBtHJ,A3EieM,AqDzVA2J,AIjBL,AMKC,AdUE,ScVKvB,I/DqWIxL,CqDzVG,IrDyVEE,E+DrWhB,C/DqWmBxJ,IAAH,CAAQqG,IAAR,CAAZ,EAA2B,GqD5VlB;AsBpIf,A3EieQ,AqDzVF,AUZL,AdUI,KAHD,MAGO,CjD2VCiD,GAAG,CAAH,MAAU5D,EAAd,EAAkB,EAAE6D,EAAF,CAAlB,KACK,IAAI,CAAC,GAAEA,EAAP,EAAW;A2EjexB,A3EkeO,AqD1VDnM,AIjBN,AReMiJ,WAAKuN,IIEM,CJFX,oBIEiBxW,SAASwH,KAAT,CAAe,KAAf,CAAN,CALb;AsBlIJ,A3EkeMlC,A+DtWN,AdUM,SjD4VGC,CiD5VC4Q,QjD4VJ,CiD5VA,EjD4VehK,AiD5VA,KjD4VKlD,KAAKvD,MAAV,GAAmB0G,GAAG7G,SAArC;A2EjeN,A3EkeK,AqD1VD,AJFI,sCAAe0D,IAAf,EAAqBA,KAAKqG,IAA1B,EoB3HCW;AMVT,A3EkeG,AqD1VC,AJFG;A0BrIP,AtBwII+I,AJFC,WIEMhZ,WAAW,kBAAGA,QAAH,CAAX,GAA0B,EAAjC;AsBvIJ,A3EkeE,AqD1VC,AJFC,GITF;AsB5HF,A3EkeE,AqDzVE,AIlBJ,AReG,MjD4VG,GyD3WGmb,MAAT,CAAgB7L,IAAhB,EAAsB6G,SAAtB,EAAiC;AkBtHjC,A3EkeI9J,AqDzVA2M,AIlBF,MAAI7C,KJkBKnW,IrDyVM,AyD3Wf,EACEyV,EJiBA,gBrDyViC,IyD1WrBvL,GzD0W4BxI,CyD1WxC,CAAiB,IzD0WgB,AyD1WjC,EAAuB4N,GzD0W4B,CyD1WnD,EADF,KzD2WmC,AyDxWjCA,GzDwW8D,EyDxWzD9L,MzDwW4B,GAAwC,EyDxWzE,CAAiB,KzDwWJ,AyDxWS8L,IzDwW+D,AyDxWrF,IzDuWF;A2EheF,A3EgeE,AyDtWD,ARYC,MjD4VEhD,aAAa,mKAFf;A2E/dF,A3E+dE,AqDtVA,AUbK,AdUL,MjD4VEC,AiD5VEtD,GcVU0U,EdUL5I,MAAT,EjD4Ve,AiD5VE,KcVZ,CAAyBtS,CdUNwG,EcVnB,EAA8BqN,CdUNvB,IcVxB,EAAqC9F,AdUlB,EcVnB,AdUY,EcV6B,S/DmW9C;A2E9dF,AtByIE,AIfF,AMEE,MVaIxE,YAAY,GAAhB,CUbK6L,CVagB,IUbrB,EAAaO,IAAD,IAAU;AY3HxB,A3EkeE,AqDzVE,AUbA,AdUF,QcVM,AdUAhH,CcVCgH,E/DsWE5K,E+DtWP,EAAW,GdUG6K,EjD4VhB,CAAoB7N,C+DtWA,G/DsWpB,EAA0B2C,A+DtWb,GdUe,CAACsI,EjD4V7B,EAAkC/K,GAAlC,EAAuC,EiD5VvB,GAA2BiJ,kCAAmBlI,IAAnB,CAAwB,IAAxB,CAA3B,GAA2D,IAA3E;A0BrIF,A3EkeI,AqDzVAO,QrDyVI+B,EAAJ,IqDzVUyM,WAAW,sBAArB;AsBxIJ,AtByII,AUbA,AdUF,UcVQ5W,OAAOwU,KAAKxU,IAAlB;AY3HJ,A3EkeI4G,AqDzVA,AUbA,AdUF8D,QIGMiM,EUbEzB,AdUA,CjD4VCtO,EqDzVEwB,GrDyVGtD,C+DtWC,GVab,EACE6R,CrDwVK,CAAa1M,KqDxVX,CJJErD,IjD4VJ,CiD5VSA,CjD4VgB,GiD5V1B,EAAgB4G,KjD4VoBrK,CqDxV9BiF,CJJN,CAAR,EjD4VkC,A+DtWRpI,E/DsWyBoK,CAAjB,AqDxVvB,CUdI,C/DsWuCC,AqDxV/BsM,AUdrB,I/DsWgC,AqDxVvB,CAAP,CrDwVwD9T,AqDzV1D,GrDyVgC,EAA+BP,AqDvV1D,CrDuV2B,EAAkC;A2EjetE,A3EkeM,AqDvVA,AUfF,QAAIsE,E/DsWEyD,E+DtWN,E/DsWE,EAAU;A2EjehB,A3EkeQxH,AqDvVF,AJLJ,QAAMgS,EIKEkC,IrDuVI5M,KAAK,AiD5VA,CjD4VL,AiD5VM,CIKC,ErDuVEtH,AqDvVjB,MrDuVuBM,MAAME,MAA3B,EiD5VoBqH,KAAR,CAAlB;A0BrIF,AZ4HI,AdUF,QcVM,AdUAoK,QAAQ,gBcVC1W,QdUQsM,KAAT,CAAd,iBcVM,EAAyB1K,IAAzB,KAAkCI,IAAIgI,OAAJ,CAAYyE,WAAZ,OAA8B5O,0BAApE,EAA+E;AY3HnF,A3EkeQ,AqDvVF,AIjBN,AMEM2I,SNFGmS,GzDwWG1O,C+DtWE,KNFd,CAAmB2O,EzDwWE,KqDvVVrC,AIjBX,CzDwWY,CyDxWgBsC,EJiBtB,CrDuVyB5O,CqDvVd2M,OAAOD,CrDuVgB,AyDxWxC,EAA0CmC,KMET9Y,C/DsWrB,AqDvVqBkG,EUfnB,CNFd,CzDwWoD+D,AqDvV5B,AUfc,CVeA,AIjBe8O,GMEvC,EAA8BnZ,G/DsWiB,C+DtW/C,EAAoCwU,GNFlD,EzDwWQ,AyDxW6D,AMEd9J,E/DsWgB,AqDvV9BtC,GUf3B,CAAR,GVegC,EAAY4O,GAAZ,CAAd,CAAlB;AsB1IN,A3EkeU7T,AyDxWR,AMEG,AdUH,KcZE,CNAE6V,KMEK,ENFT,EAAa,AMEAvT,G/DsWG2E,IAAI,IAAJ,GAAWC,C+DtWT3D,G/DsWF,GAAkBsD,C+DtWrB,CAAawK,KAAK9J,G/DsWf,E+DtWH,C/DsWkCL,A+DtWtC,EAA8B,E/DsW/B;A2EjeV,A3EkeU,AqDvVJsM,AIjBF,AMEE/P,AdUJ,MAAIkO,KQZKqE,ARYT,EIKWpC,AUfA,AdUA,CjD4VClU,C+DtWAzC,E/DsWJ,EAAS+J,EqDvVb,EUfO,C/DsWW,CAAC7H,A+DtWNsE,GNFU,CzDwWAtE,EAAEO,A+DtWN2R,G/DsWI,CAAL,C+DtWM9J,K/DsWW,A+DtW5B,EAAwB8J,C/DsWb,IAAwBlS,AyDxWd0W,CMEShZ,IAA9B,C/DsWyC,CyDxWzB,AMEoBkV,E/DsWzB,AyDxWmBgE,IzDwWkB5W,I+DtWhD,CNFgB,CzDwWsC,AyDxWxD,AMEL,G/DsWa,AyDxWsC2W,aAAaD,OAAb,CAArD;AkBzHJ,A3EkeS,AqDvVJ,AIjBF,AMEE,AdUD,QAAIrE,CjDyVA,MAGO,IAAI9R,AiD5Vf,EAAiB,CjD4VN,EAAS;A2EjexB,A3EkeUsH,AqDvVN,AJLEO,cAAQ,CjD4VC,CAACR,WAAWpH,IAAX,CAAgBR,EAAEE,AiD5VfuS,KjD4Va,AiD5VRC,CjD4VgBnS,GAAR,CAAhB,CAAN,GiD5VS,CAAe6H,KAAf,CAAL,EAA4B,IAA5B,CAAR;A0BrIN,A3EkeS,AqDvVLtC,AIjBF,AMEEwE,AdUC,KAFD,EcRG4H,ENFEyE,EMEL,AdUO,EcVErS,CVeC,CAAV,AJLW8N,EcVX,INFF,KRYS,EAAiB;A0BrI5B,A3EkeO,AqDvVJ,AIjBF,AMEE,AdUGhK,GcxBJ,WdwBY,mCAAoBA,KAApB,CAAR;A0BrIN,A3EkeM,A+DtWL,AdUI,ajD4VQvH,KAAP;A2EjeN,A3EkeK,AqDvVH0T,AIjBF,ARYG,KjDgVQ,CAAP,OqD3USF,IAAX;AsB1IF;AACA,A3EkeI,AqDvVF,AJLA,QjD4VMxM,CqDvVC+I,CrDuVL,EAAQ,CqDvVV;ArDwVItM,AqDvVL,AJLC,MAAIA,KAAK4N,EjD4VE,EiD5VP,KAAc,CAAC5N,KAAKqO,GjD4VGrO,IAAhB,GAAuB,GiD5VhB,IAAuB,CAACiO,QAAxB,IAAoCnK,EjD4VlD,QiD5V4D,KAA5D,CAAJ,EAAwE;A2BrK1E,A5EkgBK,AiD5VD;A2BrKJ,AvB2KA,AJLI,mCAAgBtK,GAAhB,EAAqB,4BAAaA,GAAb,EAAkBwG,KAAK4N,IAAvB,IAA+B5N,KAAK4N,IAApC,GAA2CD,QAAhE;A2BrKJ,A5EkgBI,AqDvVJ,AJLG,MIKG0C,ErDuVEnQ,GAAJ,EAAS,EqDvVE,EAAf;AuB1KA,AvB2KA,AIjBe,MJiBToQ,GIjBkBmB,KAAT,CAAejY,CJiBd6W,EIjBD,EAAoBjH,GJiBZ9R,GIjBR,EAA4B0I,IAA5B,EAAkC,kBJiBjC,IAAuB,EAAvC;AuB1KA,A5EkgBMA,AqDvVN,AIjBE,ARYA,IIKEuQ,IIjBIiC,KzDwWK,CAACjP,EqDvVE,CAAhB,ErDwVY,GyDzWU,QAAO,KzDyWDvD,IAAhB,GAAuB,cADrB,EyDxW4BxG,CzDyWU,EyDzWvB,EAAkB5B,EzDyWWoI,IAAN,GAAa,GADpD,IAED,IAFC,GAEME,GAFN,GAEY,MAFnB,OyDxWuB,CAAP,MAAwDjI,yBAAxD,IAAoE,+BAAgBuB,GAAhB,EAAqB5B,0CAArB,CAAxF;AmBzJF,A5EqgBK,AyD3WH,ARYA,KjDyVE,GyDrWIwa,GzD2WG,IAAIzP,GyD3WG,GzD2WP,EAAY,uByD3WQnJ,GAAb,EAAkBzB,8BAAlB,CAAhB;AmBzJF,AvB2KA,AIjBE,ARYA,MAAIiI,EQZEuS,GRYGjE,IAAT,EAAexK,QQZQsO,ARYAtO,QAAQ6J,EQZE9O,MRYV,GAAmB,KAA3B,CQZuBiB,OAAL,CAAasS,OAAb,CAAV,GAAkC,KAAzD;AmBzJF,A5EqgBMpS,AyD3WJ,ARYA,MAAIA,EQZEwB,GRYG+M,EjD+VE,IiD/VX,CQZgB,CRYC,OAAOzB,KjD+VKvJ,KACnBvD,GiDhW2BA,EjDgWtB9B,AyD5WY1E,ERYH,CQZR,CAAhB,ARY2C,GjDgWjC,CAAa,AiDhWC,EAAyBsK,KAAzB,CAAP,CjDgWP,EAAwB,IAAxB,CADmB,GACa,QAAQ9D,IAAR,GAAe,GAD9C,IAED,mCAFN;A4EpgBN,A5EugBK,AyD7WH,ARYA,MAAIA,EQZEoN,GRYGiB,IQZIjX,SRYT,IAAsB4I,KAAK8D,KAAL,KQZFtC,ARYiBsC,KAAzC,EQZa,ARYmC,CQZhD;AmBzJF,AnB0JE,QAAM1J,aAAaZ,IAAIY,UAAvB;AzD8WE,AyD7WF,ARYA,QQZMqY,GzD6WGzS,IAAP,OyD7WkB,kCAApB;AoBpKF,A7EkhBG,AyD7WD,ARYAA,OAAK8D,CQZCmF,IRYN,GAAanF,CQZC,IRYd,eQZqBtK,GAAP,CAAd;AoBpKF,ApBqKE,ARYAwG,OAAKqO,CQZCqE,SAAS,GRYf,GAAqB,IAArB,kBQZ4BlZ,GAAb,EAAkB9B,sCAAlB,CAAf;AoBpKF,A7EkhBEqJ,AqD5VK,AIjBL,QzD6WM2C,AyD7WA4I,CJiBQmD,KAAT,CrD4VL,AqD5VoBrW,AIjBP,EAAb,CzD6WgByD,CqD5VX,EAAqB2T,GAArB,EAA0BC,CrD4VN/M,AqD5VpB,EAA6B,KrD4VlB,GAAmB,QAAnC;A6EjhBF,AxBsLE,AIjBA,ARYA,QQZMiL,SAAS,IAAf;AoBpKF,A7EkhBE,AqD5VA,AIjBA,ARYA,MIKI,AJLAT,EQZE/S,CzD6WC4F,KAAP,CiDjWa,CAACgN,IQZIvU,IAAI2B,GRYlB,GIKS/B,CJLgB,CAAC0U,CQZ9B,CJiBI,CAAJ,EAAoB,MJLhB,IAAyC,CAACD,QAA9C,EAAwD;A4BhL1D,A7EmhBC,AqD7VG4B,AIjBF,ARYA,CjDsJS,EAAX,KyDlKQxE,SJiBOsF,KIjBO,CAACnZ,KJiBnB,SAA4BgC,IAA5B,EAAkC,IAAlC,IIjB8BoI,OAAX,CAArB;AoBpKF,AxBsLI,AIjBF,ARYA,MAAI,CAACyM,CQZCf,ORYN,EAAepJ,GQZGtK,IAAIgI,CRYC,EAAR,IQZG,KAAgB,SAAlC;AoBpKF,AxBsLG,AIjBD,MAAImR,WAAW,EAAf;AoBpKF,A5BiLE;A4BhLF,AxBsLE,AIjBA,ARYA,MAAI,CAAChF,CIKC+C,OJL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J,AtB0SG,GAFD;AsBvSF;AACA,AtB0SE,SAAOnN,IAAP;AsBzSF,AtB0SC;AsBzSD;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvFA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvFA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3EA;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;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;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;;ACnGA;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;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;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;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;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;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzRA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AChDA;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;;ACptDA;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;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;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;;;;AE3BA;;AACAkX,ACDA,ODCOC,OAAP,GAAiBvY,OAAOwY,mBAAmBxY,GAAnB,EAAwBV,OAAxB,CAAgC,UAAhC,EAA4CmZ,WAASA,EAAEC,UAAF,CAAa,CAAb,EAAgBC,QAAhB,CAAyB,EAAzB,EAA6BjP,WAA7B,EAArD,CAAxB;;AEDA,AHAA,AECA,IAAIkP,QAAQ,cAAZ;AACA,IAAIC,gBAAgB,IAAIpa,MAAJ,CAAWma,KAAX,EAAkB,IAAlB,CAApB;AFAA,AECA,IAAIE,EFDEhB,QAAQ,KECK,IAAIrZ,MAAJ,CAAW,KFDL,CECWma,KAAN,GAAc,IAAzB,EAA+B,IAA/B,CAAnB;AFAEb,QAAM;AGFR,AHGIC,AECJ,ICJM6B,KDIGd,YFDY,CGHGe,CHEhB,EEER,CAA0Bd,ICJM,MDIhC,EAAsCrZ,KAAtC,EAA6C,ICJrB,CAAxB;AACA,AHGIsY,AECH,ICJK8B,CDID,IFDI,EAFD,WGDgBD,QAAQ,sBAAR,CAAxB;AHII5B,AECF,aFDW,EAHL;AGCR,AHGIC,AECF,SCJO6B,ADIAf,KFDK,IIPC,UFQaD,ECJ5B,CAA+BzP,OAA/B,CDIuClN,CCJC,GDIZ,CAAgB,EAAhB,CAA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L,AMXFY,AGFA,Ab2BC,AW3BD,KX2BK,CIdCmb,SMXDzM,GNWH,CMXF,CAAU,wBAAV,EAAoC,yaAApC,EAA+c,wTAA/c,EAAywB,EAAzwB,EAA6wB,UAASnD,IAAT,EAAe,CAC3xB,CADD;ATyCC,AG7BC6P,ADJK,AHkBL,MGlBW3B,GFiCJpS,ADfA0P,QCeQgB,WAAhB,AG7B2BnC,AJcAuB,KAAnB,CAAP,UIdgCtB,EDJLG,ECID,CAAWC,QAArC,ADJsClc,ECISshB,KDJFrhB,IAAP,CAAYgc,OAAZ,ECI4B,ADJPzH,MAArB,CAA4BiL,WAA5B,CAAjC;AFkCL,AG7BE6B,AIRJrb,AINA,AEDA,Ad6BE,Ae7BF,Ef2BC,CAEE,ICeI,GDfGQ,GAAP,CCeD,COrCGkO,ARsBU,IQtBf,CJQoB4M,AIRV,SJQN,CAA0BrG,EIR9B,EAAwB,GJQpB,CAAkCsG,wBAAwB,whBIR9D,EAA8kB,qnCAA9kB,EAAqsD,EAArsD,EAAysD,UAAShQ,IAAT,EAAe;APsCrtD,AG7BG,ADJC,AHkBL,Ae7BF,MZWamO,AHkBPtC,ICeI,AG7BAnB,KJcKkB,KCeJ/X,CDfU3D,ECeX,AG7Ba8f,EH6BPvY,CDfD,CAAY2T,GCejB,EAAauB,AEjCDyB,QHkBP,CAAb,ECeQ,AG7BJ,EH6BiC,AG7BMwB,EDH3CxU,MAAMD,OCGoD2U,ADH1D,CAAc1B,WAAd,GCG2C,EDHb,CAAChT,MAAMD,OAAN,CAAciT,YAAY,CAAZ,CAAd,CAD1B;AFkCHpC,AG7BC,AIRDxd,AKRJ,ADQA,AGPA,KXaI,IINO2e,IPqCE,EOrCT,CAAc,IAAd,EAAoB,IPqCE7f,IAAb,CAAkBuG,GAAlB,CAAT;AG5BD,AIRGke,ALKC,AHiBL,Ae7BF,GXWE,GDCW1D,CHiBN,IAAItY,IAAI,CAAb,EAAgBA,IAAI8V,OAAOzb,KGjBNge,CHiBrB,EAAmCrY,GAAnC,EAAwC,OGhBxCqF,MAAMD,OAAN,CAAciT,WAAd,KAA8BD,OAAOC,YAAY,CAAZ,CAAP,CADzB;AFiCHva,AOvCoB,AKNxB,ADOA,AETA,AdgCG+X,Ae7BH,AJFA,GHOI,CGPAoG,MV8CMne,CDfCyX,GCeGzZ,EU9CE,KV8CN,CAAY,MDfMga,ICelB,AU9CV,EV8CkC,ADfvB,ECeD,ADf0B9V,CCehC,ADfO,EAA4BnH,IAA5B,CAAiC,EAAjC,CAAR;AIbD,AIRD,ALMM,AYbP,AJHA,CHKA,GGJEqjB,EReW3D,GCEJsB,YAAP,AOjBiB,eADnB,YRgB8BnF,WAAW;AFgCrC,AG7BH,AUnBD,AXiBE,AHgBCoB,Ae7BH,AJJA,CPUO,GORLqG,EReI7D,EF+BE,CAACrC,GDfGJ,EGhBEnB,CF+BV,EAAa,CDfCva,GGhBZ,CAAJ,CHgBU,CGhBY,AHgBAkb,IW/BE,SX+Bd,CAAT,CW/BkC6G,cAFrC;AViDKtF,AE/BD,AHgBD,Ae7BH,AJLA,IAGEwF,OReS,MF+BMte,GAAZ,IAAmB4D,CU9CD,IV8ClB,IU9C0Bwa,cAH/B;AVkDK,AG7BE,AQZP,AERA,AXkBM1D,AYbN,AJNA,IAIE6D,EPiBWnC,ODFAxF,OQfK,cAJlB,YPqB6BD,OAAO;AH8B/B,AG7BHF,ADJS,AHkBT,Ae7BF,AJPA,IAKE+H,CRaE,ECIGnC,EJcEtE,KAAP,CW/BW,EPiBX,GAAkBpB,GAAlB,EOtBF;APuBE,ASrBF/V,ACAA,AXmBG,AHgBD,Ae7BF,AJRA,GRiBE,CSRU8hB,ADHVjE,EPiBI9H,GAAJ,ADFO,ECEEF,EDFE6D,EUnBRhL,CTqBWoH,COjBD,EEJf,CAAU,AVmBUE,OAAP,CAAJ,CQrBT,CRqB8B,CCEnB,GAAuBD,CSrBlC,ETqBW,ASrBgB,kDAA3B,EAA+E,mGAA/E,EAAoL,EAApL,EAAwL,UAASxK,IAAT,EAAe;AZmDnM,AG7BH,ADFG,AHgBH,Ae7BD,AJTA,CPqBO,GOdLuS,IV8CM5F,GE/BG,GQfC,MV8CQ9Y,GAAZ,AUrDR,MVqD6BxH,SAAzB,EAAoC;AACnCsgB,AYlDD,ADMJ,AEPA,AXoBM6B,AYbN,AJVA,IAQEgE,KEJO9H,GVmBGD,KF+BK5W,AYlDb,GZkDC,AYlDewW,IZkDI,EAAnB,CU9CoB,CARzB,QEI0BC,IAAN,CAAWI,QAA3B;AZmDC,AG7BE,ASrBN,AViBU,AHkBX,Ae7BA,AJXA,CEEA,GFOE+H,CRaE,CCIS5C,GJcJ/D,CW/BD,OAAO1f,MAAP,IAAiB,MX+BzB,CAAkCwf,IW/B1B,CX+BR,EAAyC,CW/BDxf,MATxC,sBP0ByC,CAACse,QAAD,EAAW3L,OAAX,KAAuB;AAC9DA,AUtBF,AXoBG,AHgBF,Ae7BD,AJZA,IAUE2T,MPiBQhI,AOjBF,OAAO9f,CPiBb,OOjBM,IAAmB,WAAnB,IAAkCA,QAV1C;AVyDI+hB,AG7BFjC,ADFA,AHgBD,Ae7BD,AJbA,IAWEiI,CX+BG5G,IGhBItB,ECEEsF,AOjBF0C,KV8CO5e,AE/Bd,EHgBgB,AW/BF+e,CV8CZ,CG7BF,CH6BmB5G,AG7BAtC,IO5BrB,GVyD4B,AG7B1B,CH6BmB,AG7BQgB,CH6BzB,IAA8BjT,KAA9B,EG7BqC;AH8BrC,AG7BAoY,AQlBJ,AELA,AXqBC,AHgBC,Ae7BF,AJdA,CRgBO,GF2BJ,AU/BDgD,MAAMJ,EX+BI,MW/BIE,KAAKlD,GX8BH,IIbY/E,COjBd,IAAiB+H,GPiB7B,COjBiChD,CPiBG1Q,OAApC,AOjBI,CAZR;AV2DE,AG7BC,AJcD,Ae7BF,AJfA,GP4BE,COhB8C,GV+CzC,KDfK,ICeV;AACC,AG7BF,ADFM,AHaW,Ae1BlB,AJHE+T,CPaK,CJgBN,IGbYrE,CQhBJsE,GV+CC,IU/CMzO,MV+CLzQ,GAAD,AU5DV,EV4DgB4D,KAAN,EAAakV,WAAb,EAA6B,GE/BT,MAAM;AFgChCX,AE/BF,AYbF,AJjBA,IAa2B,IRiBnB0C,KF+BK,UAAUphB,AE/BA1C,IF+BV,CAAeiJ,GAAf,CAAT,AE/B4BhJ,aAAT,CAAuB,0BAAvB,CAArB;AFgCEgJ,AG7BG,AU1BP,AXwBE,AHgBD,Ae7BD,AJJEmf,KXiCG9iB,CIdQigB,ADFPzB,IF+BI7a,GDfGwX,AWjCEqH,CVgDD7gB,IE/BZ,EAAkB,AQjBE6gB,CVgDZ,CAAY,EUhDIO,EXiCA3lB,GCehB,CDfG,CCekB,ADfAse,ECerB,CAAN,AG7BmB,EJcV,AWjCE,CXiCd,EWjCwC,CPoBvC,WOpBa,GAAyC,GPoB/C,IOlCT,EPkCe;AACXiE,ADHA,AHgBH,Ae7BD,AJnBA,IAeEqD,IXiCMhjB,GGhBGwe,EHgBV,CWjCW,CXiCG,SGhBSC,ICGMtE,GDHnB,CAAqBuE,YCGItE,COnCpC,CAeyB,CRiBd,AQjBe,CPoBI,AOpBH,CPoBcI,AOpBb,CAAC,CRiBsBgE,AQjBrB,CAAC,CAAC,CAAC,CAAC,CAAC,CPoB/B,AOpBgC,CAAC,CPoBchE,AOpBb,CAAC,IRiByBmE,IAA5D,GCG2D;AH6B3D,AG5BEnE,AQnCNjW,ATgCG,AHgBD,Ae7BF,Mf6BM,ECeE,CAACuX,IG5BMpB,EH4BX,AW/DCzH,EX+DY,EG5BX,AQnCN,CAAU,ERmCc,IAAlB,iBQnCN,EAAmC,mCAAnC,EAAwE,8HAAxE,EAAwM,EAAxM,EAA4M,UAASnD,IAAT,EAAe;AXgEtN2M,AG5BA,AQnCD,ATgCH,AHgBE,Ae7BH,AJJA,CRYO,ECMH,COjBFwG,GChBOmB,EAAL,CAAQ,IDgBA,GV+CKzgB,CW/Db,CDeJ,CVgDK,AW/DiB,IX+DE4D,EW/DI,GX+DvB;AACA,AG5BF,AQnCG,AEKN,Ad2CGsU,Ae7BH,AJLA,CPiBE,CADK,EOdLqH,KChBSpZ,IAAL,CAAUzL,AZgDF2B,GWhCC,EChBT,CAAgB0I,AZgDF,CAAN,CAAX,AWlCH,IXkC0B4S,CYhDpB,GAA0BxL,KAAKqP,UZgDQnf,CYhDb,GAAmB,EAAnB,AZgDmB,CAAN,CAAnB,CYhD8B,AZgDrD,MYhDG;AXgED,AW/DA,ATgCE,AHgBJ,Ae7BH,AJNA,GCfI,AZ+CF,CAGE,AWhCFmjB,ERgBWvE,KHgBF7Z,GAAP,EAAY,CWnChB,uBRmB0B,CAACuV,GAAD,EAAMuE,gBAAN,KAA2B;ACI9C,AQnCN,ATgCC,AHgBC,Ae7BH,AJPA,CChBA,GEOYwH,AHaVjD,EPmBWlD,CJaNpE,CGhBCgD,AQpBR,QXoCgBrD,CGhBCsD,MHgBM/e,MAAM,CAAN,CAAP,CAAb,IIbqB,GDHKwd,GCI3B,KDJe,CAAqBlD,GAArB,CAAf,OCIO,MAAM;AH4BX,AG3BAqF,ADJFb,AYbF,AJRA,IAKEhH,IV+CM2E,CE/BC5J,EQrBT,GRqBE,CAAamM,KF+BKrb,GAAZ,KG3BsBwW,CH2BDhe,CE/B3B,GAA+B0e,KF+B7B,EAAoC,IG3BJT,IAAN,CAAWI,GDHrC5I,KCGA,ADHKC,ECG0C2I,ODH/C,CAAeqE,ICG4C,YDH3D,CAD6B,CAA/B;AFgCGpC,AG3BC,AQ/BNlY,AT6BE,AHcC,Ae7BH,AJTA,IAME8e,GXgCKvH,CIZGtB,CDFA,CQxBV,ERwBYsE,GS7BP7L,EX0DYtP,AG3BEwc,CJYDngB,CY3ClB,AT6BmBsa,CF6Bd,AW1DK,ER+BA,ADFa,EF6BC,ADfA,CCeC/S,ADfP,CGdQwX,AHcvB,CIZ0B,CAAvB,AJYsB,ECeJ,AG3BQvE,CH2B3B,CW1DL,EAAwB,KR+BiBE,MAAT,GAAkB,ADFZ7I,KCEN,IDFN,CAAsBiN,OAAOjM,KAA7B,CAAoC,EAA5D,80BS7BF,EAA+4B,moDAA/4B,EAAohF,EAAphF,EAAwhF,UAAS/C,IAAT,EAAe;AX2DliF,AG3BA,ADFJ,AHcG+L,Ae7BJ,AJVA,CRmBO,ECMH,COlBFyH,WXgCatjB,CWvCf,KXuCqB,CAAN,CAAX,IAAuB8b,MAAvB;ACgBC,AG3BF,AQ/BC,AZ2CA,Ae7BJ,AJXA,CPwBE,CADK,EOfLyH,ICXQ+C,QDWI,EARd,GCHwBxX,CAAD,IAAO;AACxB,AT6BC,AHcJ,Ae7BH,AJZA,IASE0U,ERkBWvE,eQlBM,CATnB,CASqB,CAAC,CAAC,CAAC,CAAC,CAAC,CCXd,ADWe,CAAC,oBRkBGC,MS7BNpP,KAAK0K,GT6Be,KS7BpB,CAAc6E,OAA3B,CAAN;AX2DF5C,AG3BG,AQ/BD3N,AEPNvK,AXoCE,AYfF,MXiBa6b,AQ/BL+E,AT6BF,CAACjG,QWpCFjM,CbiEWtP,CE7Bd,EF6BE,AajEJ,AXoCmB,CS7Bb,AEPI,GbiEa,GAAGzB,IajE1B,EbiEuB,AajED,CbiEWua,WG3BL0D,CH2BiBxc,GAAZ,CAAV,EAA4B4D,EG1BjD,GH0BqB,CAAnB,aG1BK,MAAM,iJUvCf,EAAqN,EAArN,EAAyN,EAAzN,EAA6N,UAASuI,IAAT,EAAe;AbkExO,AG1BA6P,AQhCC,AZ2CH3f,Ae7BF,AJHA,GCdI,CX8CD,MDAOmb,aAAa/d,IAAb,CIXoB+c,AJWFuB,KAAlB,CAAR,UIXkCtB,IAAN,CAAWI,QAArC,EAA+CA,YAAY;AH2B7D,AG1BI,AUvCF,AXoCF,AHcA,Ae7BF,ODrBSsM,CVuCCtM,CDHDwD,QCGUmC,AUvCf,GAAkB,EVuCZ,CDHajB,EWpCnB,EVuCyBiB,KAAvB,CDHG,CCG2B3F,CDF/B1H,MADI,CACGiL,CCEiCrD,MAAT,GAAkB,CDH7C,EAEJlc,ECC+B,CAA9B,ADHG,CAEA3B,ICEE2d,IDFM,KCEGE,MAAT,GAAkB,IAAlB;AH0BR,AGzBE,AQjCD,AT+BE,AYjBN,GXgBI,KQ9BM0G,EX0DA,AE3BE,EAAE9C,IAAF,EAAQD,EF2BT1a,GAAD,AE3BE,EF2BI4D,AE3BW+S,CS/BC,ET+BhB,EF2BF,AE3BsB6E,EF2BT1C,AW1DW,ST+BtB,EF2BF,EAA6B,CE3BS2B,eAAec,WAAWriB,IAAX,CAAf,CAA1C;AF4BF,AGzBD,AQjCGwpB,AEPF,AdkDH,Ae7BD,CXcE,CADK,MH+BC5J,IW1DM2E,QX0DMzd,AajER,GbiEJ,GajEU,CFOZ,CAAwBmM,CX0DD3T,IW1DMqe,KX0D/B,EAAoC,CW1DlC;AX2DDiC,AW1DA,AEPC,AXsCA,AHYLZ,Ae7BD,GHhBI,MELOtM,EXsCE,CHYD,GclDN,CAAY,CbiED5L,ADfhB,GCeI,CDfgB,GCeG4D,KAAnB,ADfJ;ACgBI,AGzBE,AUxCCuf,AXsCAjqB,AYjBR,AJHA,MPsBawjB,GOtBJoD,CRmBI,QWrCOtJ,KHkBpB,CAAwBuJ,IAAxB,EAA8B,IGlBJjJ,IAAN,CAAWC,CVwCLF,KUzCR,OVyCoB;AH0BjC,AGzBHA,AQjCE,AEPIwF,AXsCA1B,AHYP,Ae7BD,AJHE,KXgCGvC,GY3CKwK,CDWD7C,CRkBI,CCIFrE,GOtBGrd,CXgCC1D,GIVb,AUxCkB6b,CHkBX,CAAW,CPsBC,CJUC5b,IAAP,CAAYsd,AWhClB,CAAP,ICXgC,EEPRzB,GdkDX,CY3CyBtK,AEPpB,AdkDnB,CclD8BkQ,IFOcxF,GRiCbA,KQjCQ,CAAcqF,GRiCbvF,GAApB,EAAyBE,CQjCN,CAAwBta,MAAxB,CRiCe2e,IQjCoB,CAAnC,IAAwC,ORiC3D,CAAnB;AACD,AQjCK2H,AEVY,AXyCVnI,AYjBR,AJHC,CPoBM,IUzCD,MXsCO,KS5BK;AX2Dd5B,AW5D4E,AEL3E,AXsCGnC,AHYP,Ae7BD,GHhBI,AEVA,GduDE,GGhBO,CHgBHzU,IAAI,CAAb,CCeelC,CDfCkC,ECeb,EDfiBkW,ECeE,GAAG7Z,GDfGhC,GCeN,CAAUuc,EDfhC,EAAoC5W,GAApC,EAAyC,GCeGlC,GAAZ,CAAV,EAA4B4D,KAA5B,CAAnB;AACA,AGzBG,ADFC4X,AHYN,Ae7BF,AJHA,IVwCG,EGlBUmB,gDAAoB,CAACzB,gBAAD,EAAmB,EAAEP,IAAF,EAAQD,KAAR,EAAnB,KAAuC;AHlBvE,AGmBCC,AQjCE,AEPA,AXgCS,AHkBX,Ae7BF,KZWM,CHkBA3a,EY3CI8iB,AEPA7H,EVwCAC,EJUE9C,QAAQlW,CclDG,AdkDX,CAAV,KIVyB1C,AUxCE,CFOC,GRiCpB,CAAsBmb,EQjCI,CAACxO,CRiC3B,CAAR,GQjCwC0K,QAAL,CAAcE,MAAf,IAAyB;AX2D5D,AGzBC2D,AQjCI3V,AT+BD,AHYHgT,Ae7BF,GZKS,CAAP,MHwBQA,CIVC2C,EQjCI,GZ2CC1c,CIVC6X,MJUP,CIVC,AJUa,CIVC8E,GJUGxd,KIVK+d,CJUT,CAAWlb,GAAX,EAAgB,GAAhB,CAAd,EAAoCkY,IIVI1Y,IAAjB,CAAsBmb,EJUE3a,EIVxB,CAAtB,AJUmC,CIV5C,AJUQ,CAAR;AITD,AQnC4D,AELvD,AXsCL,AHYC,Ae7BF,CXgBO,ADfA,ESjBH,OELQojB,UAAUxH,SAASyH,IAAT,CAAcrlB,OAAd,CAAsB,IAAtB,EAA4B,EAA5B,CAAhB;AbkEN,AajEM,ACqBN,QDrBU,CbiED4a,MAAT,CAAgBhV,KAAhB,EAAuBqE,OAAvB,EAAgC;AAC/B,AGzBM,AQjCH,AEPI,AXsCD,AHYN,Ae7BD,Kd4CKA,CGzBQ2U,ADFAnB,ES/BHsH,AZ2CFhL,IclDM,CbiEDa,ADfZ,CclDc8C,KbiEd,EAAoB,AajEP,GFOaxiB,EEPD+U,EFOA,GEPKoL,EFOM,GEPX,CAAW1B,OXsCT+D,WAAW,CCEL,AUxCsB0H,CVwCrBvM,MUxCE,CAAX,CVwCQ,AUxC1B,EVwCqCgG,sBAAX,KAAsC;AH0BtE,AGzBA,AQjCImG,AEPE,AXsCN,AHYD,Ae7BD,AJHA,QPsBQ,CHyBC/a,AE3BAiP,AQpBA8I,CPsBClD,CQjCG5jB,EEPEwiB,IbiEE3C,GW1DK5M,AEPd,GbiEC,EW1DkB0K,CX0DD0B,EGzBlB,ADFoBtK,ECEE8O,AOtB9B,CAA+BgD,ECXT,AT+BW7R,CS/BG4O,CDWpC,EPsBQ,AOtB6B3N,KV+CKvL,AGzBAiT,ADFd,CAAe,AQpB3C,ERoB6C6E,AQpBA,EV+CnB,CAAjB,EGzBP,CHyBiDxE,CE3BR,EAAf,CAAnB,CAAP,cF2BoEtT,KAAnB,CAAjD;AACA,AW5DmC,AEL9B,AXsCN,AYjBD,AJHE,CRkBK,ES/BmB,CAAtB,CERE,CAGE,AHkBFqc,IAAI9Q,GGlBKhE,CAAP,EAAU,CHmBbnN,OADK,CACG,KADH,EACU,KADV,EAELA,OAFK,CAEG,KAFH,EAEU,YAFV,EAGLA,OAHK,CAGG,MAHH,EAGW,IAHX,CAAR;APuBA,AUxCM,AdkDRgZ,Ae7BA,AJAE,MAAI7a,CX6BC8a,CIVC+F,GOnBG,EGrBI,CdkDf,CW7Be7f,EGrBP,AdkDS,IW7BN,CAAY,KX6BIkb,CW7BE4H,CAAN,GAAU,EPmBC,COnBvB,CPmBT,AOnBA,CX6Be,EAAsB;ACgBtC,AGzBCtD,AQjCE,AEPG,AXsCA,AHYN,Ae7BD,AJAE,KX6BG,CGZQhB,AQjBPxX,EV4CEP,AW1DEqf,IZ2CE5K,CCeX,AU5CY0H,KAAK1jB,EPmBE2gB,EQjCK9jB,AZ2CpB,CW7BQ,CAAWiD,ECdA,ADcX,CX6Bc,AW7BzB,GCdgC,KZ2CjC,EAAoC,GGZX,GCExB,EAA2C0a,CDFb,OCE9B;AH0BD,AW1DK6L,AEPD,AXsCH,AHYA,Ae7BF,GD9BI,KX+CI,AHYA,EGZErH,ES/BIgC,AZ2CF/E,SAAJ,CAAc,GGZd,KAAsB8C,GS/BxB,CAA8BjP,KAAK0K,QAAnC,EAA6C3d,GT+BTmgB,CS/BpC,IT+BwB,CAAkBuC,SAASC,MAA3B,CAA5B,IHY4E,OAAOxD,UAA/D,GAA4E,GAA1F,CAAN;AITA,AQjCG,AT+BH,AHYA,Ae7BF,AJAE,GChBE,GRmCEyE,ADFA,AQjBA3Y,CRiBCkX,GQjBL,EAAU,URiBV,ECEA,ADFsB,ECEE,KDFK,EAAP;AF4BxB,AGzBI,AUxCA,AXsCF,AYjBF,AJDc,SV6CLvD,AE3BA7J,CCECgP,COpBW9Y,GRkBPkV,CF2Bd,CAAgBzV,AU7CUlI,GRkBjB,CAAWic,CF2BpB,AU7CqB,CAAW,CV6CT1P,AU7CF,CAAP,GGpBJ,GbiEV,AajEI,EbiE4B,AajEjB,IVwCqB,EUxCf,CXsCkBoT,eAAnB,CAAX,CAAP,SCGI0B,QAAQG,IAAR,CAAa3B,cAAcA,WAAWriB,IAAX,KAAoB4jB,kBAA/C,CAD8B,CAAhC;AH0BH,AGvBGH,AQnCA,AEPE+F,AXsCL,AHYA,Ae7BD,AJFoC,CRe7B,IF+BFza,ADfA,GY3CKib,IEPI9G,CbiEDtE,MAAZ,EAAoB,CGvBCkF,GQnCK,AEPrB,CAAsB/B,KFOK,OEP3B,OV0CF,EAA2CgC,uBAA3C;AHwBF,AGvBC,AQnCG,AEPD,AdkDH5E,Ae7BF,AJFC,GGrBG,MbmEKI,CW1DG,KZ2CGJ,UCeUzU,CDfC5F,ICejB,CAAP,EDfa,CAAmB,KAAnB,EAA0B,GAA1B,CAAb;ACgBA,AW1DM8e,AGcR,wBHfY;ARqCVjG,AQnCM2E,AEPJ,AdkDF,Ae7BF,AJFA,WPuBWN,MQrCC,URqCV,AU1CQ,GV0CoB2B,CU1C1B,EAAY,MAAM,gBV2ChBA,uBAAuBte,MAAvB,CAA8Bye,uBAA9B,CADwB,GAExBA,uBAFJ;AHwBD,AGrBA,AQrCOD,AEPF2F,AdkDJ,Ae7BF,CXOO,OHqCC9e,CDfC+T,GclDKyE,CbiEb,YajEK,CAAsB,EdkDA/D,EclDtB,QdkDG,CAAP;ACgBD,AW9DW,AEHP,AdkDH,Ae7BF,EfwBC,Cc/CG,AdoDD,KY3COlM,EZ2CA/K,GY3CKyV,AZ2CZ,EAAY,MY/CT;AR0CC,AJML,Ae7BF,MXuBasG,8DAA2B,CACtClB,eADsC,EAEtCY,sBAFsC,KAGnC;AHmBL,AGlBED,AQxCI,AEPF,AdkDF,Ae7BF,QHdUE,AEPApB,CbiED1C,ADfAf,SclDWgD,CbiEpB,CAAoBlD,CGlBCkE,IHkBrB,CW1DM,CX0DqB,CW1DG,EEP1B,IdkD8B5D,EIHhC,EAAoCwE,MJG7B,CAAP,eIHA;AHmBD,AGlBCH,AQxCM,AZ2CN,Ae7BF,Kd4CKnV,MAAMD,EGlBE2U,AQxCEc,KX0DV,CAAchF,EW1DImF,GX0DlB,CAAJ,AW1Dc,CAAa3B,CX0DD,CGlBzB,YQxCwCA,WAAWriB,IAAX,KAAoB4jB,kBAA/C,EAAmEtB,WAA1E;AX2DN,AW1DK,AEPH,AdkDH,Ae7BD,AJFA,CXiBA,KcpCQE,GbiEC3D,AU9CAmI,IGnBL,EbiEWjH,AajEE,EHmBjB,CAAkBnT,CV8CT,CU9CT,CV8CE,CU9CoBqa,KAAtB,EAA6B;AV+C3B,AGlBAlE,AQxCI,AEPA,ACqBN,AJFE,MAAI7M,CAAJ,GGnBUkU,CFOC9H,ORwCKU,IQxCZ,CEPmBN,IV+CvB,CAA0B/F,IU/CMmF,GV+ChC,CAAkCoC,AU/C9B,iBV+C+C;AACjDD,AQxCC,AEPC4B,ACqBN,AJFE,GCvBE,MDuBK,GGnBK2C,SHmBO,GGnBf,CAAqB,IV+CEtE,AU/CvB,EAA2B,IAA3B,EAAiCxB,KV+CnC,EAAwCK,EU/CIjB,IAAT,CAAchd,OAAd,CAAsB4d,CV+CDV,QU/CUmI,IAA/B,EAAqC,EV+CxE,AU/CmC,CAAjC;AbkEL,AGlBE,AU/CGtE,ACqBN,AJFIqB,GP0BF,EHoBG,OajESuB,CbiEF5J,IU9CK3I,CV8CZ,AU9CD,GGnBE,CAAkB,IAAlB,EAAwB,IAAxB,EAA8BkU,UAA9B,ebiEMvL,KAAP,OAAiB,QAArB,EAA+B;AAC9B,AGlBD,AQxCGpd,AEPC,ACqBL,AJFIyU,CPkBG,OOlBCiR,CV8CCrH,AW1DEM,MAAP,CAAc,GDYCxT,CV8CCnL,AW1DhB,CDYI,CCZgB,CDYDwlB,IV8CIvlB,CU9CnB,CAAJ,EV8CgB,CAAYmd,KAAZ,CAAX,EACLkB,IADK,CACA,UAAC7L,CAAD,EAAI9M,CAAJ;AAAA,AW1DHoW,AGcN,AJFG,GAHD,OViDiBwC,OAAO9L,CAAP,GW1DIoJ,CX0DQ0C,OAAO5Y,CAAP,CAAtB,MW1DoBmW,IAAN,CAAWC,eADV;AX2Df,AGjBF,AQxCDwM,AEPFjB,ACqBJ,AJFC,GV4CQ,EAELpnB,CGlBSwiB,EHgBJ,CAED,SW5DgB,IELdnhB,KAAN,CAAY,IAAZ,8BV+CiC,CAAC2a,QAAD,EAAWiG,kBAAX,KACnC,iBAAO,MAAM;AHiBP,AGhBJjG,AQzCE+L,AEPL,ACqBD,CD5DA,SbuGe7K,CGhBF+E,KHgBQ9c,GAAN,CAAP,KW5DgB,IR4CpB,GAA8B8c,kBAA9B;AHgBI,AGfJ,AQzCEgG,AGcN,AJFA,GV0CS,CAAP,IGbQxF,aQ7Cc,IR6CGxB,kBAAkBjF,QAAlB,CAAvB;AHgBF,AWxDI8L,AGcN,cHnBwB;AR+CpBxF,AQzCE8F,AGcN,eHpBwB,YR+CKpM,QAAzB,EAAmCyG,eAAepC,gBAAlD;AHgBH,AGfE,AQzCG6H,AGcN,CXsBE,CADK,MHqBChL,KAAP,IW/DuB;AXgEvB,AWxDK0F,AGcN,AJFA,SAASvhB,KAAT,CAAeokB,QAAf,EAAyB;AP8BlB,AQlDiB,AGuBxB,AJFEd,GCrBE,GRkDSjC,YO7BK2C,SAASK,IAAT,EAAe,CAAf,CAAhB,WP6B2B1J,YAAY;AHgBzC,AGfEA,AW3BF,AJFE+H,MAAIN,GV4CGnF,EGfEpC,KHeX,CAAiBgB,AGff,GAAkB,EHepB,EAAwB,AGftB,AO7BA,EAAwByG,QAAxB,EAAkCgB,aAAlC;AV6CD,AGfA,AQzCG,AGcJ,AJFEZ,CP2BK,IHiBAxF,CU5CDkF,YV4CcvG,EWxDR,IXwDctb,AU5CxB,ECZgB,ADYQgiB,KV4CN,CAAc,GAAd,CAAnB,AU5CC,EAAoCe,aAApC;AV6CD,AWxDK,AGcN,AJFEX,KV4CGzF,CU5CCkF,ICXEnS,KAAK0K,KXuDO,CAAC,CAApB,CWvDO,CXuDgB,AWvDFE,ADWpB,EAAwBoI,ICXlB,EACAhT,IDUN,CCVW0K,CDUyB2J,KAApC,ECVM,CAAc1D,kBADd,EAEA3Q,KAAK0K,QAAL,CAAc6E,OAHhB;AXyDJ,AGfK,AW3BP,AJFE,MP6BW8B,AO7BP8C,GV4CG,EAAP,GU5CA,EAAc,gCP6BczJ,YAAY;AHgBxC,AGfAA,AQrCI,AGUN,AJHkB0J,SCPP3U,ADOY,EP8BZmL,EO9BO,ECPZ,CAAY,CRqChB,GAAkB,KAAlB;AHgBD,AGfA,AQrCOL,AGUR,AJJ+B,CP6BxB,OHiBCqB,MAAMrc,KAAN,CAAY0d,GWpDK5C,UXoDQ,CAAzB,CAAP,IWpD8BC,IAAN,CAAWC;AXqDnC,AWtDiB,AGYlB,AJJC,KCRK;ARwCC,AQrCF,AGUL,GHpBI,GR+CS+G,4CAAkB5G,YAAY;AHgB3C,AGfEA,AQrCD,AGUD,AJJA,CCpEA,QXkHSwC,EGfEtC,GHeX,CAAegB,EGfb,GHeF,AGfoB,CAAClB,CHeC5O,OAAtB,CGf8B8O,CHeC,KGf7B;AHgBD9O,AGfA,AW3BD,CXyBO,UHiBItN,OAAO2e,MAAP,CAAc,EAACxB,QAAQ,IAAT,EAAea,aAAa,MAA5B,EAAd,EAAmD1Q,OAAnD,CAAV;AczCD;Ad2CC,AGfM,AW3BP,AJJA,KV8COsR,CGfMmE,GO/BJwB,MAAT,EV8CmBrG,CU9CD,oBV8CsB5Q,OAArB,CAAlB,kBGfqC,CAAC;AACrC/O,AW3BF,AJJE,MP8BqC,CO9BhCtC,CAAL,GAAS,EAAT;AV+CD,AGfC+f,AW3BF,AJJE,KP6BqC,2BO7B1B,IAAX,EAFgB,CAEE;AV+CnB,AGfCE,AW3BF,AJJEwI,KV8CK7F,KGlBgC,AO5B7BiH,CV8CG9lB,CU9CX,CAAW,KV8CO2J,CU9ClB,EAAmB,GV8CR,CAAc,CU9CD9I,CAAL,CAAOyF,CV8Cf,CAAZ,EU9CoB,CAAY,IAAZ,CAAnB;APgCA2V,AW3BF,AJJEyI,SP2BqC,CO3B7BoB,EAAR,CAAW,MAAX,EAAmB,KAAKtV,CAAL,CAAOlK,IAAP,CAAY,IAAZ,CAAnB;AV+CD,AGfC6b,AW3BF,AJJC,KV8CI,OAAO/E,KAAP,GGpBkC,EHoBjB,QAArB,EAA+B;AAC9B,AGfAmD,AW3BF,Sd0CS1B,GAAP,SGfmB,EANkB;AHsBrC,AGfAgD,AW3BF,AJJA,SAASkE,CP+BC,QO/BV,CAAmBX,IAAnB,EAAyB;APwBc,AWnBvC,AJJE,CPuBoC,KAQhC,GO/BGA,KAAK/hB,OAAL,CAAa,SAAb,EAAwB,EAAxB,CAAP;AV+CD+Z,AGfC,AW3BF,AJJC,QP+BO,CHeCA,CGfCyD,KHeKvb,IAAN,EGfD,CHecjC,CGfC2c,IAAf,EHeC,AGfoBD,CHeC,IGftB,IHeC,CGf8B,CHeC,EAA/B,CAAR,yBGfqD9D,OAAf,CAArC;AW1BF;Ad2CC,AGfC,AW3BF,AJJA,KV8CK,CAACmB,EGfE4F,CO/BClW,EV8CR,EAAY,IU9Cb,CAAkB/I,EP+BG,CO/BrB,EAAuB,MP+BM8d,KAAM,EAAjC;AHgBA,Ac1CF,AJJE,SV8COhD,AU9CA,GV8CP,IU9Cc9a,GAAP,IAAc,QAArB;AV+CA,AGfA/D,AW3BF,AJJC,SP+BQ2e,MAAP,CAAczC,QAAd,EAAwB;AACtBF,AW3BJ,OX0B0B;AHiBzB,AGfG6E,AW3BJ,AJJA,MV8CM,IAAM/B,KAAX,AGjByB,IHiBL1B,MAAM1Z,KAAN,CAAY,GAAZ,CAApB,EAAsC;AACrC,AGfEsc,AW3BJ,Md0CM,CAAC3a,CGlBmB,EHkBpB,EAAM4D,KAAN,IAAe6V,MAAMzb,OAAN,CAAc,KAAd,EAAqB,GAArB,EAA0BK,KAA1B,CAAgC,GAAhC,CAAnB;AGdEqc,AW3BJ,SXuB0B;AHoBxB,AGfEqC,AW3BJ,aX2Ba,8BAAgBnG,QAAQgH,MAAxB,CALa;AHqBxB,AGfE7G,AW3BJ,YX2BYyF,UAAU,CANI;AHsBxB5Y,AGfE4Y,AW3BJ,AJJA,SPwB0B,AOxBjBmE,CV8CC/c,UAAUpL,IU9CpB,CAAyBwiB,IV8Cf,AU9CV,EAA+B,CV8CC,IAAtB,GAA6BlD,OAAOlU,KAAP,EAAcqE,OAAd,CAArC;AGdE0V,AW3BJ,AJJE,SAAO,CAAC3C,GPuBgB,KOvBRgE,IAAIhE,IAAb,EAAmBhd,OAAnB,CAA2BmgB,SAA3B,EAAsC,EAAtC,CAAP;AV+CA5E,AGfErgB,AW3BJ,AJJC,QPsByB,IHwBd4e,OAAO9X,GAAP,EAAYiI,OAAZ,CAAV,EAAgCrE,KAAhC,EAAuC4V,GAAvC;AACA,AGfE0C,AW3BJ,eX2Be;AAVW,AWhB1B,AJJA,GPoBE;AH2BD,Ac1CD,Qd0CQvhB,OAAOC,IAAP,CAAY4e,GAAZ,EAAiBP,IAAjB,GAAwB1d,MAAxB,CAA+B,UAAC4c,MAAD,EAASnY,GAAT,EAAiB;AACtD,AGfA,AW3BF,Md0CQ4D,QAAQ4V,IAAIxZ,GAAJ,CAAd;AACA,AGfA,AW3BF,Md0CM0Z,AGfAoD,QHeQlZ,KAAR,KAAkB,AGftB,EAAwB,MHeKA,KAAP,yCAAOA,KAAP,OAAiB,QAAnC,IAA+C,CAAC2D,MAAMD,OAAN,CAAc1D,KAAd,CAApD,EAA0E;AACzE,AGfCiT,AW3BJ,aX2BaiG,kBAAT,GAA8BA,kBAA9B;AHgBD3E,AGfA,AW3BH,AJJA,GP6BE,MAEO,AO/BAyI,CV8CC5gB,GAAP,AGfU4W,IHeIoC,IGfI4E,GO/BrB,CAAyB5C,EP+BhB,CHemBpX,CGfC,AO/B7B,EAA+B,EV8Cd,CAAd;AACA,AGfCiT,AW3BJ,AJJE,GV2CA,MAGO,AU9CA4I,IP+BI3C,CO/BC,CAAL,MAAY,GAAZ,GACH,CAAC9B,GP8BH,GAA8BrgB,EO9BnBqkB,IAAIhE,CP8BsBpgB,GO9BlC,CP8B2B,CAAYgc,EO9BnB,EAArB,EAAyBvY,EP8BuBuf,GO9BhD,CAA+B6B,EP8BH,EAA4B,AO9BxD,CP8B4B,CAA9B,AO9BuC,CAArC,KAA2C,EADxC,GAEH,CAACT,MAAM2B,gBAAgB3F,IAAhB,CAAN,GAA8BA,QAAQ,EAAvC,EAA2Chd,OAA3C,CAAmDyhB,IAAnD,EAAyD,EAAzD,CAFJ;AV+CCtH,AGfA,AW3BH,AJFC,GP2BQ,MAEA,CHeCnY,GAAP,IAAc4D,KAAd;AACA,AGfCiT,AW3BJ,aX2BaiG,kBAAT,GAA8B,IAA9B;AACD,AW3BH,AJFA,SAASyD,IAAT,CAAcM,KAAd,EAAqB;AV6CnB,Ac1CF,AJFE,SV4CO1I,MAAP;AACA,AGfA,AW3BF,AJFE,EVkCM,EAUJxd,EU5CEmmB,KV4CKxc,IU5CIub,EV4CX,CAAc,IAAd,CAVI,CAAP,UUlCiC,CAAhC;AV6CD,AGfCjD,AW3BF,AJFE,MAAI+B,eP6Be9H,QAAnB,CO7B4BgJ,CP6BC3E,aO7B7B,EAA4C,CP6B5C;AACAwB,AW3BF,AJHgD,aP8BnC7F,QAAX;AHgBFI,Ac1CA,AJJwD,QV8ChDkC,OAAR,GAAkBA,OAAlB;AACAlC,AGfE,AW3BF,MX2BM,EHeEoC,KAAR,AGfazC,GHeGyC,IGfV,CHeN,IGfyB,QAAnB,IAA+B9R,MAAMD,OAAN,CAAcsP,OAAd,CAAnC,EAA2D;AW1B7D,AJJEiJ;AV+CF5I,AGfE,AW3BF,AJJE2I,QV8CM1R,IU9CI1O,IAAV,CV8CF,AU9CiB,GV8CG,SU9CQ,CV8CPsE,AGfL8S,GHeI,EAAM3O,EGfxB,EAAuB4N,GHeL,EAAkB,EGfpC,CAA+BgI,eAAe;AHgB/C,AGfG,AW3BJ,AJJI,KV8CGlE,GU9CCoG,EP+BEjC,KO/BK8C,CV8CG,WGfShK,KO/BvB,GP+B+BiH,WAAR,CAAvB;AHgBFjF,AGfE/B,AO/BA,QAAIgK,EV8CE,GGfG3E,CHcK,GU7CD6D,KP+Bb,CAAmBvgB,GO/BG2U,CP+BtB,CAAwB,EAAxB,GO/BA,EAA+B;AV+CjC4E,AGfE,AYhKJ,ALiIMsG,UV8CI,AGfAtB,IHaQ,AU5CJW,OAAR,EAAiB,GP+BG7H,GO/BpB,EAAyBkJ,IP+BI7D,AO/B7B,SP+BoB,CAAmBrF,SAASqF,SAAT,CAAmB3f,MAAnB,GAA4B,CAA/C,CAAtB;AHgBFoc,Ae/KF,ALiIMxE,eV8CS,CU9CC4L,IAAV;AV2CY,AGXdrC,AYhKJ,ALiIK,EV0CJ,yBGX0B;AACrBxkB,AYhKN,ALiIG,GAND,SPqCU2kB,WADe;AHiB1B5V,AGfK0O,AYhKN,ALiIE,MAAImK,KV8CKnmB,AGfAmjB,CO/BT,EAAY,IV8CIxE,MAAP,CAAcK,CGfChD,GAAf,IHeA,AGfsBA,EHeE1O,CGjBR,MHiBhB,CAAV;AGdK4O,AYhKN,ALiII,QAAIkK,KAAJ,GP+BYhD,aAHW;AHmB1B,AGfKvB,AYhKN,ALiII,KV8CCvU,MU9CM8Y,EV8CE9H,AGfAuD,IHeR,EU9CcoD,EP+BE,CHeC,AGnBK,KHmB1B,EAA4B,AU9CAoB,KAAV,EAAf,EAAkC;AV+CpC/Y,AGfIiT,AYhKN,ALgIwC6F,UV+C9B9H,IAAR,GAAe,OGfOpC,KHeD,CAAE,CAAvB,EGf+BqE,gBALN;AHqBzB,AGfItE,AYhKN,AL+HkD,KAFpC,CAEqC,SPiCpCkH;AANY,AYzJ3B,AL+HI+B,KP0BA,gBO1BiB,CAAjB;AViDH,AGfE,AYhKH,AL+HG,GPoBD,EH4BKtG,YAAYb,sBAAsBzQ,OAAtB,CAAlB;AGdA,AYhKD,AL+HC,CPtBM;AHuEN,Ae/KD,Qf+KQnE,MAAMnJ,OAAOC,IAAP,CAAYkJ,GAAZ,EAAiBmV,IAAjB,CAAsBhR,QAAQgR,IAA9B,EAAoCpe,GAApC,CAAwC,eAAO;AAC3D,AGfK,AYhKP,AL+HA,MVgDQ+I,AGfKoa,GOjCJwC,KVgDO1c,AUhDhB,CAAeqH,CAAf,EVgDoBnL,AUhDF,GVgDF,CAAd,kBGfwB4W,WACxB,iBAAO,MAAM;AACXJ,AYjKJ,AL+HE,MACErL,EAAEI,KAAF,KPiCMkL,AOjCM,CAAZ,CAAc,EPiCd,CAAWG,OAAX,GAAqB,EAArB;AHeF,AGdEjc,AYjKJ,AL+HI,KACGwQ,CV+CDvH,CU/CGqd,EPiCE3H,KOlCP,CPkCA,CHcY9gB,AGdEge,EOjCErL,EAAE+V,KV+CpB,EAAyB,AUhDvB,IAC6B/V,CPiCTsL,COjCW0K,GPiCjB,CAAWvK,IOlCzB,CACwC,EPiCxC,EAAkCA,OAAlC;AHeD,AGdC8G,AYjKJ,AL8HI,KAEGvS,EAAEiW,GV+CC,EAAP,WUlDD,CAGwB,CPiCC;AHexB,AGdGloB,AYjKN,AL4HE,IAIE,MPiCQ,EADe;AAErByd,AYjKN,AL+HM,SPkCKC,QAAQD,GAAR,IAAe,8BAFC;AHiBzB,AGdIE,AYjKN,AL8Hc,MViDRjT,QGdU4S,EHcA,IAAd,EAAoB,QGdAC,IAAN,CAAWI,QAHA;AHkBxB,AGdG2F,AYjKN,Uf+KU5D,CGdG,CAJc,KHkBV5Y,GAAP,EAAYiI,OAAZ,CAAP;AACA,AGdG2O,AYjKN,AL8HE,MAAIzP,KAAKgE,EAAEE,MAAX;AP8ByB,AY3J3B,AL8HE,GP6BE,MO7BKlE,MAAMA,GAAGka,QAAH,KAAgB,GAA7B,EAAkC;AVkDlC,AGdC,AYjKH,AL6HsCla,CP0BpC,CADK,IHyBDI,GUlDqCJ,GVkD/BG,AUlDkCpN,OVkDxC,CAAc0J,EUlDkB,GVkDhC,CAAJ,EAA0B;AACzB,Ae/KH,AL4H2D,OVmDlDuU,SAAS,EAAf;AGbI,AYjKP,MZiKa8F,8BAAW,MAAM;AHe3B,AGdDzH,AYjKF,AL4HE,MACE,CAACrP,CVkDG,CUl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,OAFD,MAGK;AM5QX,AN6QQvpB,iBAAS0rB,kBAAT,GAA8B,YAAY;AM5QlD,AN6QU,cAAI1rB,SAASyrB,UAAT,KAAwB,aAA5B,EAA2C;AM5QrD,AN6QY;AM5QZ,AN6QY;AM5QZ,AN6QYnC,uBAAW,YAAW;AM5QlC,AN4QoCnkB,oBAAMokB,QAAN;AM3QpC,AN2QsD,aAA1C,EAA4C,CAA5C;AM1QZ,AN2QW;AM1QX,AN2QS,SAND;AMpQR,AN2QO;AM1QP,AN2QK;AM1QL,AN2QIhB,cAAU,IAAV;AM1QJ,AN2QG;AM1QH,AN2QC,CAlBD;AMxPA;AACA,AN2QA;AM1QA,AN2QA2C,MAAMxC,IAAN;AM1QA,AN2QAwC,MAAMvC,MAAN;AM1QA;AACA,kBN2QeuC;AM1Qf;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;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;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;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;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;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;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9XA;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;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AEAA;ADAA;ACCA;AFAA;;ACAA,IDAYS;;ACCZ;ACCA,wBAAa9L,iBAAb;ADAA;;AACA,kBDDe,MAAM;AACnB,OAAK,IAAI1U,IAAI,CAAb,EAAgBA,IAAI,CAApB,EAAuBA,GAAvB,EAA4B;AAC1BqhB,yBAAWtiB,IAAX,CAAiB,GAAEiB,CAAE,EAArB,EAAwB,MAAMwgB,QAAQjG,YAAR,CAAqBva,CAArB,CAA9B;AACD;ACDH,ADEEqhB,uBAAWtiB,IAAX,CAAgB,GAAhB,EAAqByhB,QAAQpG,OAA7B;AACAiH,uBAAWtiB,IAAX,CAAgB,GAAhB,EAAqByhB,QAAQnG,QAA7B;AACAgH,uBAAWtiB,IAAX,CAAgB,GAAhB,EAAqByhB,QAAQzE,QAA7B;AACAsF,uBAAWtiB,IAAX,CAAgB,KAAhB,EAAuByhB,QAAQxE,SAA/B;ACHK,ADIN,MCJYwF,sCAAe9M,WAAW;AACrC,MAAIA,OAAJ,EAAa,yBAAWA,OAAX;AACb,ADIK,MCJDre,ADIOirB,OCJAG,GAAX,EAAgB,wBDIS,MAAM;ACH/B,ADIAJ,uBAAWE,KAAX;ACHAlrB,ADID,CAFM,QCFEorB,GAAP,GAAa/iB,eAAKyM,KAAL,CAAW,UAAX,CAAb;AACD,CALM","file":"pattern.96c09463.map","sourceRoot":"","sourcesContent":["/**\n * Shorter and fast way to select a single node in the DOM\n * @param { String } selector - unique dom selector\n * @param { Object } ctx - DOM node where the target of our search will is located\n * @returns { Object } dom node found\n */\nexport default function $(selector, ctx) {\n return (ctx || document).querySelector(selector)\n}","export\nconst\n // be aware, internal usage\n // ATTENTION: prefix the global dynamic variables with `__`\n // tags instances cache\n __TAGS_CACHE = [],\n // tags implementation cache\n __TAG_IMPL = {},\n YIELD_TAG = 'yield',\n\n /**\n * Const\n */\n GLOBAL_MIXIN = '__global_mixin',\n\n // riot specific prefixes or attributes\n ATTRS_PREFIX = 'riot-',\n\n // Riot Directives\n REF_DIRECTIVES = ['ref', 'data-ref'],\n IS_DIRECTIVE = 'data-is',\n CONDITIONAL_DIRECTIVE = 'if',\n LOOP_DIRECTIVE = 'each',\n LOOP_NO_REORDER_DIRECTIVE = 'no-reorder',\n SHOW_DIRECTIVE = 'show',\n HIDE_DIRECTIVE = 'hide',\n KEY_DIRECTIVE = 'key',\n RIOT_EVENTS_KEY = '__riot-events__',\n\n // for typeof == '' comparisons\n T_STRING = 'string',\n T_OBJECT = 'object',\n T_UNDEF = 'undefined',\n T_FUNCTION = 'function',\n\n XLINK_NS = 'http://www.w3.org/1999/xlink',\n SVG_NS = 'http://www.w3.org/2000/svg',\n XLINK_REGEX = /^xlink:(\\w+)/,\n\n WIN = typeof window === T_UNDEF ? /* istanbul ignore next */ undefined : window,\n\n // special native tags that cannot be treated like the others\n RE_SPECIAL_TAGS = /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?|opt(?:ion|group))$/,\n RE_SPECIAL_TAGS_NO_OPTION = /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?)$/,\n RE_EVENTS_PREFIX = /^on/,\n RE_HTML_ATTRS = /([-\\w]+) ?= ?(?:\"([^\"]*)|'([^']*)|({[^}]*}))/g,\n // some DOM attributes must be normalized\n CASE_SENSITIVE_ATTRIBUTES = {\n 'viewbox': 'viewBox',\n 'preserveaspectratio': 'preserveAspectRatio'\n },\n /**\n * Matches boolean HTML attributes in the riot tag definition.\n * With a long list like this, a regex is faster than `[].indexOf` in most browsers.\n * @const {RegExp}\n * @see [attributes.md](https://github.com/riot/compiler/blob/dev/doc/attributes.md)\n */\n RE_BOOL_ATTRS = /^(?:disabled|checked|readonly|required|allowfullscreen|auto(?:focus|play)|compact|controls|default|formnovalidate|hidden|ismap|itemscope|loop|multiple|muted|no(?:resize|shade|validate|wrap)?|open|reversed|seamless|selected|sortable|truespeed|typemustmatch)$/,\n // version# for IE 8-11, 0 for others\n IE_VERSION = (WIN && WIN.document || /* istanbul ignore next */ {}).documentMode | 0\n","import { SVG_NS } from './../../global-variables'\n/**\n * Create a generic DOM node\n * @param { String } name - name of the DOM node we want to create\n * @returns { Object } DOM node just created\n */\nexport default function makeElement(name) {\n return name === 'svg' ? document.createElementNS(SVG_NS, name) : document.createElement(name)\n}","import { XLINK_NS, XLINK_REGEX } from './../../global-variables'\n/**\n * Set any DOM attribute\n * @param { Object } dom - DOM node we want to update\n * @param { String } name - name of the property we want to set\n * @param { String } val - value of the property we want to set\n */\nexport default function setAttribute(dom, name, val) {\n const xlink = XLINK_REGEX.exec(name)\n if (xlink && xlink[1])\n dom.setAttributeNS(XLINK_NS, xlink[1], val)\n else\n dom.setAttribute(name, val)\n}","import $ from './../common/util/dom/$'\nimport makeElement from './../common/util/dom/make-element'\nimport setAttribute from './../common/util/dom/set-attribute'\nimport { WIN } from './../common/global-variables'\n\nlet styleNode\n// Create cache and shortcut to the correct property\nlet cssTextProp\nlet byName = {}\nlet needsInject = false\n\n// skip the following code on the server\nif (WIN) {\n styleNode = ((() => {\n // create a new style element with the correct type\n const newNode = makeElement('style')\n // replace any user node or insert the new one into the head\n const userNode = $('style[type=riot]')\n\n setAttribute(newNode, 'type', 'text/css')\n /* istanbul ignore next */\n if (userNode) {\n if (userNode.id) newNode.id = userNode.id\n userNode.parentNode.replaceChild(newNode, userNode)\n } else document.head.appendChild(newNode)\n\n return newNode\n }))()\n cssTextProp = styleNode.styleSheet\n}\n\n/**\n * Object that will be used to inject and manage the css of every tag instance\n */\nexport default {\n styleNode,\n /**\n * Save a tag style to be later injected into DOM\n * @param { String } css - css string\n * @param { String } name - if it's passed we will map the css to a tagname\n */\n add(css, name) {\n byName[name] = css\n needsInject = true\n },\n /**\n * Inject all previously saved tag styles into DOM\n * innerHTML seems slow: http://jsperf.com/riot-insert-style\n */\n inject() {\n if (!WIN || !needsInject) return\n needsInject = false\n const style = Object.keys(byName)\n .map(k => byName[k])\n .join('\\n')\n /* istanbul ignore next */\n if (cssTextProp) cssTextProp.cssText = style\n else styleNode.innerHTML = style\n },\n\n /**\n * Remove a tag style of injected DOM later.\n * @param {String} name a registered tagname\n */\n remove(name) {\n delete byName[name]\n needsInject = true\n }\n}\n","\n/**\n * The riot template engine\n * @version v3.0.8\n */\n\nvar skipRegex = (function () { //eslint-disable-line no-unused-vars\n\n var beforeReChars = '[{(,;:?=|&!^~>%*/'\n\n var beforeReWords = [\n 'case',\n 'default',\n 'do',\n 'else',\n 'in',\n 'instanceof',\n 'prefix',\n 'return',\n 'typeof',\n 'void',\n 'yield'\n ]\n\n var wordsLastChar = beforeReWords.reduce(function (s, w) {\n return s + w.slice(-1)\n }, '')\n\n var RE_REGEX = /^\\/(?=[^*>/])[^[/\\\\]*(?:(?:\\\\.|\\[(?:\\\\.|[^\\]\\\\]*)*\\])[^[\\\\/]*)*?\\/[gimuy]*/\n var RE_VN_CHAR = /[$\\w]/\n\n function prev (code, pos) {\n while (--pos >= 0 && /\\s/.test(code[pos]));\n return pos\n }\n\n function _skipRegex (code, start) {\n\n var re = /.*/g\n var pos = re.lastIndex = start++\n var match = re.exec(code)[0].match(RE_REGEX)\n\n if (match) {\n var next = pos + match[0].length\n\n pos = prev(code, pos)\n var c = code[pos]\n\n if (pos < 0 || ~beforeReChars.indexOf(c)) {\n return next\n }\n\n if (c === '.') {\n\n if (code[pos - 1] === '.') {\n start = next\n }\n\n } else if (c === '+' || c === '-') {\n\n if (code[--pos] !== c ||\n (pos = prev(code, pos)) < 0 ||\n !RE_VN_CHAR.test(code[pos])) {\n start = next\n }\n\n } else if (~wordsLastChar.indexOf(c)) {\n\n var end = pos + 1\n\n while (--pos >= 0 && RE_VN_CHAR.test(code[pos]));\n if (~beforeReWords.indexOf(code.slice(pos + 1, end))) {\n start = next\n }\n }\n }\n\n return start\n }\n\n return _skipRegex\n\n})()\n\n/**\n * riot.util.brackets\n *\n * - `brackets ` - Returns a string or regex based on its parameter\n * - `brackets.set` - Change the current riot brackets\n *\n * @module\n */\n\n/* global riot */\n\nexport\nvar brackets = (function (UNDEF) {\n\n var\n REGLOB = 'g',\n\n R_MLCOMMS = /\\/\\*[^*]*\\*+(?:[^*\\/][^*]*\\*+)*\\//g,\n\n R_STRINGS = /\"[^\"\\\\]*(?:\\\\[\\S\\s][^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\[\\S\\s][^'\\\\]*)*'|`[^`\\\\]*(?:\\\\[\\S\\s][^`\\\\]*)*`/g,\n\n S_QBLOCKS = R_STRINGS.source + '|' +\n /(?:\\breturn\\s+|(?:[$\\w\\)\\]]|\\+\\+|--)\\s*(\\/)(?![*\\/]))/.source + '|' +\n /\\/(?=[^*\\/])[^[\\/\\\\]*(?:(?:\\[(?:\\\\.|[^\\]\\\\]*)*\\]|\\\\.)[^[\\/\\\\]*)*?([^<]\\/)[gim]*/.source,\n\n UNSUPPORTED = RegExp('[\\\\' + 'x00-\\\\x1F<>a-zA-Z0-9\\'\",;\\\\\\\\]'),\n\n NEED_ESCAPE = /(?=[[\\]()*+?.^$|])/g,\n\n S_QBLOCK2 = R_STRINGS.source + '|' + /(\\/)(?![*\\/])/.source,\n\n FINDBRACES = {\n '(': RegExp('([()])|' + S_QBLOCK2, REGLOB),\n '[': RegExp('([[\\\\]])|' + S_QBLOCK2, REGLOB),\n '{': RegExp('([{}])|' + S_QBLOCK2, REGLOB)\n },\n\n DEFAULT = '{ }'\n\n var _pairs = [\n '{', '}',\n '{', '}',\n /{[^}]*}/,\n /\\\\([{}])/g,\n /\\\\({)|{/g,\n RegExp('\\\\\\\\(})|([[({])|(})|' + S_QBLOCK2, REGLOB),\n DEFAULT,\n /^\\s*{\\^?\\s*([$\\w]+)(?:\\s*,\\s*(\\S+))?\\s+in\\s+(\\S.*)\\s*}/,\n /(^|[^\\\\]){=[\\S\\s]*?}/\n ]\n\n var\n cachedBrackets = UNDEF,\n _regex,\n _cache = [],\n _settings\n\n function _loopback (re) { return re }\n\n function _rewrite (re, bp) {\n if (!bp) bp = _cache\n return new RegExp(\n re.source.replace(/{/g, bp[2]).replace(/}/g, bp[3]), re.global ? REGLOB : ''\n )\n }\n\n function _create (pair) {\n if (pair === DEFAULT) return _pairs\n\n var arr = pair.split(' ')\n\n if (arr.length !== 2 || UNSUPPORTED.test(pair)) {\n throw new Error('Unsupported brackets \"' + pair + '\"')\n }\n arr = arr.concat(pair.replace(NEED_ESCAPE, '\\\\').split(' '))\n\n arr[4] = _rewrite(arr[1].length > 1 ? /{[\\S\\s]*?}/ : _pairs[4], arr)\n arr[5] = _rewrite(pair.length > 3 ? /\\\\({|})/g : _pairs[5], arr)\n arr[6] = _rewrite(_pairs[6], arr)\n arr[7] = RegExp('\\\\\\\\(' + arr[3] + ')|([[({])|(' + arr[3] + ')|' + S_QBLOCK2, REGLOB)\n arr[8] = pair\n return arr\n }\n\n function _brackets (reOrIdx) {\n return reOrIdx instanceof RegExp ? _regex(reOrIdx) : _cache[reOrIdx]\n }\n\n _brackets.split = function split (str, tmpl, _bp) {\n // istanbul ignore next: _bp is for the compiler\n if (!_bp) _bp = _cache\n\n var\n parts = [],\n match,\n isexpr,\n start,\n pos,\n re = _bp[6]\n\n var qblocks = []\n var prevStr = ''\n var mark, lastIndex\n\n isexpr = start = re.lastIndex = 0\n\n while ((match = re.exec(str))) {\n\n lastIndex = re.lastIndex\n pos = match.index\n\n if (isexpr) {\n\n if (match[2]) {\n\n var ch = match[2]\n var rech = FINDBRACES[ch]\n var ix = 1\n\n rech.lastIndex = lastIndex\n while ((match = rech.exec(str))) {\n if (match[1]) {\n if (match[1] === ch) ++ix\n else if (!--ix) break\n } else {\n rech.lastIndex = pushQBlock(match.index, rech.lastIndex, match[2])\n }\n }\n re.lastIndex = ix ? str.length : rech.lastIndex\n continue\n }\n\n if (!match[3]) {\n re.lastIndex = pushQBlock(pos, lastIndex, match[4])\n continue\n }\n }\n\n if (!match[1]) {\n unescapeStr(str.slice(start, pos))\n start = re.lastIndex\n re = _bp[6 + (isexpr ^= 1)]\n re.lastIndex = start\n }\n }\n\n if (str && start < str.length) {\n unescapeStr(str.slice(start))\n }\n\n parts.qblocks = qblocks\n\n return parts\n\n function unescapeStr (s) {\n if (prevStr) {\n s = prevStr + s\n prevStr = ''\n }\n if (tmpl || isexpr) {\n parts.push(s && s.replace(_bp[5], '$1'))\n } else {\n parts.push(s)\n }\n }\n\n function pushQBlock(_pos, _lastIndex, slash) { //eslint-disable-line\n if (slash) {\n _lastIndex = skipRegex(str, _pos)\n }\n\n if (tmpl && _lastIndex > _pos + 2) {\n mark = '\\u2057' + qblocks.length + '~'\n qblocks.push(str.slice(_pos, _lastIndex))\n prevStr += str.slice(start, _pos) + mark\n start = _lastIndex\n }\n return _lastIndex\n }\n }\n\n _brackets.hasExpr = function hasExpr (str) {\n return _cache[4].test(str)\n }\n\n _brackets.loopKeys = function loopKeys (expr) {\n var m = expr.match(_cache[9])\n\n return m\n ? { key: m[1], pos: m[2], val: _cache[0] + m[3].trim() + _cache[1] }\n : { val: expr.trim() }\n }\n\n _brackets.array = function array (pair) {\n return pair ? _create(pair) : _cache\n }\n\n function _reset (pair) {\n if ((pair || (pair = DEFAULT)) !== _cache[8]) {\n _cache = _create(pair)\n _regex = pair === DEFAULT ? _loopback : _rewrite\n _cache[9] = _regex(_pairs[9])\n }\n cachedBrackets = pair\n }\n\n function _setSettings (o) {\n var b\n\n o = o || {}\n b = o.brackets\n Object.defineProperty(o, 'brackets', {\n set: _reset,\n get: function () { return cachedBrackets },\n enumerable: true\n })\n _settings = o\n _reset(b)\n }\n\n Object.defineProperty(_brackets, 'settings', {\n set: _setSettings,\n get: function () { return _settings }\n })\n\n /* istanbul ignore next: in the browser riot is always in the scope */\n _brackets.settings = typeof riot !== 'undefined' && riot.settings || {}\n _brackets.set = _reset\n _brackets.skipRegex = skipRegex\n\n _brackets.R_STRINGS = R_STRINGS\n _brackets.R_MLCOMMS = R_MLCOMMS\n _brackets.S_QBLOCKS = S_QBLOCKS\n _brackets.S_QBLOCK2 = S_QBLOCK2\n\n return _brackets\n\n})()\n\n/**\n * @module tmpl\n *\n * tmpl - Root function, returns the template value, render with data\n * tmpl.hasExpr - Test the existence of a expression inside a string\n * tmpl.loopKeys - Get the keys for an 'each' loop (used by `_each`)\n */\n\nexport\nvar tmpl = (function () {\n\n var _cache = {}\n\n function _tmpl (str, data) {\n if (!str) return str\n\n return (_cache[str] || (_cache[str] = _create(str))).call(\n data, _logErr.bind({\n data: data,\n tmpl: str\n })\n )\n }\n\n _tmpl.hasExpr = brackets.hasExpr\n\n _tmpl.loopKeys = brackets.loopKeys\n\n // istanbul ignore next\n _tmpl.clearCache = function () { _cache = {} }\n\n _tmpl.errorHandler = null\n\n function _logErr (err, ctx) {\n\n err.riotData = {\n tagName: ctx && ctx.__ && ctx.__.tagName,\n _riot_id: ctx && ctx._riot_id //eslint-disable-line camelcase\n }\n\n if (_tmpl.errorHandler) _tmpl.errorHandler(err)\n else if (\n typeof console !== 'undefined' &&\n typeof console.error === 'function'\n ) {\n console.error(err.message)\n console.log('<%s> %s', err.riotData.tagName || 'Unknown tag', this.tmpl) // eslint-disable-line\n console.log(this.data) // eslint-disable-line\n }\n }\n\n function _create (str) {\n var expr = _getTmpl(str)\n\n if (expr.slice(0, 11) !== 'try{return ') expr = 'return ' + expr\n\n return new Function('E', expr + ';') // eslint-disable-line no-new-func\n }\n\n var RE_DQUOTE = /\\u2057/g\n var RE_QBMARK = /\\u2057(\\d+)~/g\n\n function _getTmpl (str) {\n var parts = brackets.split(str.replace(RE_DQUOTE, '\"'), 1)\n var qstr = parts.qblocks\n var expr\n\n if (parts.length > 2 || parts[0]) {\n var i, j, list = []\n\n for (i = j = 0; i < parts.length; ++i) {\n\n expr = parts[i]\n\n if (expr && (expr = i & 1\n\n ? _parseExpr(expr, 1, qstr)\n\n : '\"' + expr\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\r\\n?|\\n/g, '\\\\n')\n .replace(/\"/g, '\\\\\"') +\n '\"'\n\n )) list[j++] = expr\n\n }\n\n expr = j < 2 ? list[0]\n : '[' + list.join(',') + '].join(\"\")'\n\n } else {\n\n expr = _parseExpr(parts[1], 0, qstr)\n }\n\n if (qstr.length) {\n expr = expr.replace(RE_QBMARK, function (_, pos) {\n return qstr[pos]\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n')\n })\n }\n return expr\n }\n\n var RE_CSNAME = /^(?:(-?[_A-Za-z\\xA0-\\xFF][-\\w\\xA0-\\xFF]*)|\\u2057(\\d+)~):/\n var\n RE_BREND = {\n '(': /[()]/g,\n '[': /[[\\]]/g,\n '{': /[{}]/g\n }\n\n function _parseExpr (expr, asText, qstr) {\n\n expr = expr\n .replace(/\\s+/g, ' ').trim()\n .replace(/\\ ?([[\\({},?\\.:])\\ ?/g, '$1')\n\n if (expr) {\n var\n list = [],\n cnt = 0,\n match\n\n while (expr &&\n (match = expr.match(RE_CSNAME)) &&\n !match.index\n ) {\n var\n key,\n jsb,\n re = /,|([[{(])|$/g\n\n expr = RegExp.rightContext\n key = match[2] ? qstr[match[2]].slice(1, -1).trim().replace(/\\s+/g, ' ') : match[1]\n\n while (jsb = (match = re.exec(expr))[1]) skipBraces(jsb, re)\n\n jsb = expr.slice(0, match.index)\n expr = RegExp.rightContext\n\n list[cnt++] = _wrapExpr(jsb, 1, key)\n }\n\n expr = !cnt ? _wrapExpr(expr, asText)\n : cnt > 1 ? '[' + list.join(',') + '].join(\" \").trim()' : list[0]\n }\n return expr\n\n function skipBraces (ch, re) {\n var\n mm,\n lv = 1,\n ir = RE_BREND[ch]\n\n ir.lastIndex = re.lastIndex\n while (mm = ir.exec(expr)) {\n if (mm[0] === ch) ++lv\n else if (!--lv) break\n }\n re.lastIndex = lv ? expr.length : ir.lastIndex\n }\n }\n\n // istanbul ignore next: not both\n var // eslint-disable-next-line max-len\n JS_CONTEXT = '\"in this?this:' + (typeof window !== 'object' ? 'global' : 'window') + ').',\n JS_VARNAME = /[,{][\\$\\w]+(?=:)|(^ *|[^$\\w\\.{])(?!(?:typeof|true|false|null|undefined|in|instanceof|is(?:Finite|NaN)|void|NaN|new|Date|RegExp|Math)(?![$\\w]))([$_A-Za-z][$\\w]*)/g,\n JS_NOPROPS = /^(?=(\\.[$\\w]+))\\1(?:[^.[(]|$)/\n\n function _wrapExpr (expr, asText, key) {\n var tb\n\n expr = expr.replace(JS_VARNAME, function (match, p, mvar, pos, s) {\n if (mvar) {\n pos = tb ? 0 : pos + match.length\n\n if (mvar !== 'this' && mvar !== 'global' && mvar !== 'window') {\n match = p + '(\"' + mvar + JS_CONTEXT + mvar\n if (pos) tb = (s = s[pos]) === '.' || s === '(' || s === '['\n } else if (pos) {\n tb = !JS_NOPROPS.test(s.slice(pos))\n }\n }\n return match\n })\n\n if (tb) {\n expr = 'try{return ' + expr + '}catch(e){E(e,this)}'\n }\n\n if (key) {\n\n expr = (tb\n ? 'function(){' + expr + '}.call(this)' : '(' + expr + ')'\n ) + '?\"' + key + '\":\"\"'\n\n } else if (asText) {\n\n expr = 'function(v){' + (tb\n ? expr.replace('return ', 'v=') : 'v=(' + expr + ')'\n ) + ';return v||v===0?v:\"\"}.call(this)'\n }\n\n return expr\n }\n\n _tmpl.version = brackets.version = 'v3.0.8'\n\n return _tmpl\n\n})()\n\n",";(function(window, undefined) {var observable = function(el) {\n\n /**\n * Extend the original object or create a new empty one\n * @type { Object }\n */\n\n el = el || {}\n\n /**\n * Private variables\n */\n var callbacks = {},\n slice = Array.prototype.slice\n\n /**\n * Public Api\n */\n\n // extend the el object adding the observable methods\n Object.defineProperties(el, {\n /**\n * Listen to the given `event` ands\n * execute the `callback` each time an event is triggered.\n * @param { String } event - event id\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n on: {\n value: function(event, fn) {\n if (typeof fn == 'function')\n (callbacks[event] = callbacks[event] || []).push(fn)\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Removes the given `event` listeners\n * @param { String } event - event id\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n off: {\n value: function(event, fn) {\n if (event == '*' && !fn) callbacks = {}\n else {\n if (fn) {\n var arr = callbacks[event]\n for (var i = 0, cb; cb = arr && arr[i]; ++i) {\n if (cb == fn) arr.splice(i--, 1)\n }\n } else delete callbacks[event]\n }\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Listen to the given `event` and\n * execute the `callback` at most once\n * @param { String } event - event id\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n one: {\n value: function(event, fn) {\n function on() {\n el.off(event, on)\n fn.apply(el, arguments)\n }\n return el.on(event, on)\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Execute all callback functions that listen to\n * the given `event`\n * @param { String } event - event id\n * @returns { Object } el\n */\n trigger: {\n value: function(event) {\n\n // getting the arguments\n var arglen = arguments.length - 1,\n args = new Array(arglen),\n fns,\n fn,\n i\n\n for (i = 0; i < arglen; i++) {\n args[i] = arguments[i + 1] // skip first argument\n }\n\n fns = slice.call(callbacks[event] || [], 0)\n\n for (i = 0; fn = fns[i]; ++i) {\n fn.apply(el, args)\n }\n\n if (callbacks['*'] && event != '*')\n el.trigger.apply(el, ['*', event].concat(args))\n\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n }\n })\n\n return el\n\n}\n /* istanbul ignore next */\n // support CommonJS, AMD & browser\n if (typeof exports === 'object')\n module.exports = observable\n else if (typeof define === 'function' && define.amd)\n define(function() { return observable })\n else\n window.observable = observable\n\n})(typeof window != 'undefined' ? window : undefined);","/**\n * Short alias for Object.getOwnPropertyDescriptor\n */\nexport default function getPropDescriptor (o, k) {\n return Object.getOwnPropertyDescriptor(o, k)\n}","import { T_UNDEF } from './../../global-variables'\n\n/**\n * Check if passed argument is undefined\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport default function isUndefined(value) {\n return typeof value === T_UNDEF\n}","import getPropDescriptor from '../misc/get-prop-descriptor'\nimport isUndefined from './is-undefined'\n/**\n * Check whether object's property could be overridden\n * @param { Object } obj - source object\n * @param { String } key - object property\n * @returns { Boolean } true if writable\n */\nexport default function isWritable(obj, key) {\n const descriptor = getPropDescriptor(obj, key)\n return isUndefined(obj[key]) || descriptor && descriptor.writable\n}\n","import isWritable from '../checks/is-writable'\n\n/**\n * Extend any object with other properties\n * @param { Object } src - source object\n * @returns { Object } the resulting extended object\n *\n * var obj = { foo: 'baz' }\n * extend(obj, {bar: 'bar', foo: 'bar'})\n * console.log(obj) => {bar: 'bar', foo: 'bar'}\n *\n */\nexport default function extend(src) {\n let obj\n let i = 1\n const args = arguments\n const l = args.length\n\n for (; i < l; i++) {\n if (obj = args[i]) {\n for (const key in obj) {\n // check if this property of the source object could be overridden\n if (isWritable(src, key))\n src[key] = obj[key]\n }\n }\n }\n return src\n}","/**\n * Alias for Object.create\n */\nexport default function create(src) {\n return Object.create(src)\n}","import extend from './browser/common/util/misc/extend'\nimport create from './browser/common/util/misc/object-create'\nimport { brackets } from 'riot-tmpl'\n\nexport default extend(create(brackets.settings), {\n skipAnonymousTags: true,\n // handle the auto updates on any DOM event\n autoUpdate: true\n})","/**\n * Shorter and fast way to select multiple nodes in the DOM\n * @param { String } selector - DOM selector\n * @param { Object } ctx - DOM node where the targets of our search will is located\n * @returns { Object } dom nodes found\n */\nexport default function $$(selector, ctx) {\n return [].slice.call((ctx || document).querySelectorAll(selector))\n}","/**\n * Create a document text node\n * @returns { Object } create a text node to use as placeholder\n */\nexport default function createDOMPlaceholder() {\n return document.createTextNode('')\n}","/**\n * Toggle the visibility of any DOM node\n * @param { Object } dom - DOM node we want to hide\n * @param { Boolean } show - do we want to show it?\n */\n\nexport default function toggleVisibility(dom, show) {\n dom.style.display = show ? '' : 'none'\n dom.hidden = show ? false : true\n}","/**\n * Get the value of any DOM attribute on a node\n * @param { Object } dom - DOM node we want to parse\n * @param { String } name - name of the attribute we want to get\n * @returns { String | undefined } name of the node attribute whether it exists\n */\nexport default function getAttribute(dom, name) {\n return dom.getAttribute(name)\n}","/**\n * Remove any DOM attribute from a node\n * @param { Object } dom - DOM node we want to update\n * @param { String } name - name of the property we want to remove\n */\nexport default function removeAttribute(dom, name) {\n dom.removeAttribute(name)\n}","import { SVG_NS } from './../../global-variables'\n\n/**\n * Set the inner html of any DOM node SVGs included\n * @param { Object } container - DOM node where we'll inject new html\n * @param { String } html - html to inject\n * @param { Boolean } isSvg - svg tags should be treated a bit differently\n */\n/* istanbul ignore next */\nexport default function setInnerHTML(container, html, isSvg) {\n // innerHTML is not supported on svg tags so we neet to treat them differently\n if (isSvg) {\n const node = container.ownerDocument.importNode(\n new DOMParser()\n .parseFromString(`<svg xmlns=\"${ SVG_NS }\">${ html }</svg>`, 'application/xml')\n .documentElement,\n true\n )\n\n container.appendChild(node)\n } else {\n container.innerHTML = html\n }\n}","import { RE_HTML_ATTRS } from './../../global-variables'\n/**\n * Minimize risk: only zero or one _space_ between attr & value\n * @param { String } html - html string we want to parse\n * @param { Function } fn - callback function to apply on any attribute found\n */\nexport default function walkAttributes(html, fn) {\n if (!html) return\n let m\n while (m = RE_HTML_ATTRS.exec(html))\n fn(m[1].toLowerCase(), m[2] || m[3] || m[4])\n}\n","/**\n * Create a document fragment\n * @returns { Object } document fragment\n */\nexport default function createFragment() {\n return document.createDocumentFragment()\n}\n","/**\n * Insert safely a tag to fix #1962 #1649\n * @param { HTMLElement } root - children container\n * @param { HTMLElement } curr - node to insert\n * @param { HTMLElement } next - node that should preceed the current node inserted\n */\nexport default function safeInsert(root, curr, next) {\n root.insertBefore(curr, next.parentNode && next)\n}","/**\n * Convert a style object to a string\n * @param { Object } style - style object we need to parse\n * @returns { String } resulting css string\n * @example\n * styleObjectToString({ color: 'red', height: '10px'}) // => 'color: red; height: 10px'\n */\nexport default function styleObjectToString(style) {\n return Object.keys(style).reduce((acc, prop) => {\n return `${acc} ${prop}: ${style[prop]};`\n }, '')\n}","/**\n * Walk down recursively all the children tags starting dom node\n * @param { Object } dom - starting node where we will start the recursion\n * @param { Function } fn - callback to transform the child node just found\n * @param { Object } context - fn can optionally return an object, which is passed to children\n */\nexport default function walkNodes(dom, fn, context) {\n if (dom) {\n const res = fn(dom, context)\n let next\n // stop the recursion\n if (res === false) return\n\n dom = dom.firstChild\n\n while (dom) {\n next = dom.nextSibling\n walkNodes(dom, fn, res)\n dom = next\n }\n }\n}","export { default as $$ } from './$$'\nexport { default as $ } from './$'\nexport { default as createDOMPlaceholder } from './create-placeholder'\nexport { default as mkEl } from './make-element'\nexport { default as setAttr } from './set-attribute'\nexport { default as toggleVisibility } from './toggle-visibility'\nexport { default as getAttr } from './get-attribute'\nexport { default as remAttr } from './remove-attribute'\nexport { default as setInnerHTML } from './set-inner-HTML'\nexport { default as walkAttrs } from './walk-attributes'\nexport { default as createFrag } from './create-fragment'\nexport { default as safeInsert } from './safe-insert'\nexport { default as styleObjectToString } from './style-object-to-string'\nexport { default as walkNodes } from './walk-nodes'","import isUndefined from './is-undefined'\n\n/**\n * Check against the null and undefined values\n * @param { * } value -\n * @returns {Boolean} -\n */\nexport default function isNil(value) {\n return isUndefined(value) || value === null\n}","import isNil from './is-nil'\n\n/**\n * Check if passed argument is empty. Different from falsy, because we dont consider 0 or false to be blank\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport default function isBlank(value) {\n return isNil(value) || value === ''\n}\n","import { T_FUNCTION } from './../../global-variables'\n/**\n * Check if passed argument is a function\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport default function isFunction(value) {\n return typeof value === T_FUNCTION\n}","import { T_OBJECT } from './../../global-variables'\n\n/**\n * Check if passed argument is an object, exclude null\n * NOTE: use isObject(x) && !isArray(x) to excludes arrays.\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport default function isObject(value) {\n return value && typeof value === T_OBJECT // typeof null is 'object'\n}\n","/**\n * Check if a DOM node is an svg tag or part of an svg\n * @param { HTMLElement } el - node we want to test\n * @returns {Boolean} true if it's an svg node\n */\nexport default function isSvg(el) {\n const owner = el.ownerSVGElement\n return !!owner || owner === null\n}","/**\n * Check if passed argument is a kind of array\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport default function isArray(value) {\n return Array.isArray(value) || value instanceof Array\n}","import { RE_BOOL_ATTRS } from './../../global-variables'\n/**\n * Check if the passed argument is a boolean attribute\n * @param { String } value -\n * @returns { Boolean } -\n */\nexport default function isBoolAttr(value) {\n return RE_BOOL_ATTRS.test(value)\n}","import { T_STRING } from './../../global-variables'\n\n/**\n * Check if passed argument is a string\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport default function isString(value) {\n return typeof value === T_STRING\n}\n","export { default as isBlank } from './is-blank'\nexport { default as isFunction } from './is-function'\nexport { default as isObject } from './is-object'\nexport { default as isSvg } from './is-svg'\nexport { default as isWritable } from './is-writable'\nexport { default as isArray } from './is-array'\nexport { default as isBoolAttr } from './is-boolean-attribute'\nexport { default as isNil } from './is-nil'\nexport { default as isString } from './is-string'\nexport { default as isUndefined } from './is-undefined'\n","/**\n * Check whether an array contains an item\n * @param { Array } array - target array\n * @param { * } item - item to test\n * @returns { Boolean } -\n */\nexport default function contains(array, item) {\n return array.indexOf(item) !== -1\n}","/**\n * Specialized function for looping an array-like collection with `each={}`\n * @param { Array } list - collection of items\n * @param {Function} fn - callback function\n * @returns { Array } the array looped\n */\nexport default function each(list, fn) {\n const len = list ? list.length : 0\n let i = 0\n for (; i < len; i++) fn(list[i], i)\n return list\n}","/**\n * Faster String startsWith alternative\n * @param { String } str - source string\n * @param { String } value - test string\n * @returns { Boolean } -\n */\nexport default function startsWith(str, value) {\n return str.slice(0, value.length) === value\n}","/**\n * Function returning always a unique identifier\n * @returns { Number } - number from 0...n\n */\nexport default (function uid() {\n let i = -1\n return () => ++i\n})()\n\n","import extend from './extend'\n\n/**\n * Helper function to set an immutable property\n * @param { Object } el - object where the new property will be set\n * @param { String } key - object key where the new property will be stored\n * @param { * } value - value of the new property\n * @param { Object } options - set the propery overriding the default options\n * @returns { Object } - the initial object\n */\nexport default function define(el, key, value, options) {\n Object.defineProperty(el, key, extend({\n value,\n enumerable: false,\n writable: false,\n configurable: true\n }, options))\n return el\n}","/**\n * Convert a string containing dashes to camel case\n * @param { String } str - input string\n * @returns { String } my-string -> myString\n */\nexport default function toCamel(str) {\n return str.replace(/-(\\w)/g, (_, c) => c.toUpperCase())\n}","/**\n * Warn a message via console\n * @param {String} message - warning message\n */\nexport default function warn(message) {\n if (console && console.warn) console.warn(message)\n}\n","export { default as contains } from './contains'\nexport { default as each } from './each'\nexport { default as getPropDescriptor } from './get-prop-descriptor'\nexport { default as startsWith } from './starts-with'\nexport { default as uid } from './uid'\nexport { default as defineProperty } from './define'\nexport { default as objectCreate } from './object-create'\nexport { default as extend } from './extend'\nexport { default as toCamel } from './to-camel'\nexport { default as warn } from './warn'\n","import isArray from '../checks/is-array'\nimport isUndefined from '../checks/is-undefined'\n\n/**\n * Set the property of an object for a given key. If something already\n * exists there, then it becomes an array containing both the old and new value.\n * @param { Object } obj - object on which to set the property\n * @param { String } key - property name\n * @param { Object } value - the value of the property to be set\n * @param { Boolean } ensureArray - ensure that the property remains an array\n * @param { Number } index - add the new item in a certain array position\n */\nexport default function arrayishAdd(obj, key, value, ensureArray, index) {\n const dest = obj[key]\n const isArr = isArray(dest)\n const hasIndex = !isUndefined(index)\n\n if (dest && dest === value) return\n\n // if the key was never set, set it once\n if (!dest && ensureArray) obj[key] = [value]\n else if (!dest) obj[key] = value\n // if it was an array and not yet set\n else {\n if (isArr) {\n const oldIndex = dest.indexOf(value)\n // this item never changed its position\n if (oldIndex === index) return\n // remove the item from its old position\n if (oldIndex !== -1) dest.splice(oldIndex, 1)\n // move or add the item\n if (hasIndex) {\n dest.splice(index, 0, value)\n } else {\n dest.push(value)\n }\n } else obj[key] = [dest, value]\n }\n}","import { __TAG_IMPL, IS_DIRECTIVE } from './../../global-variables'\nimport getAttr from '../dom/get-attribute'\n\n/**\n * Detect the tag implementation by a DOM node\n * @param { Object } dom - DOM node we need to parse to get its tag implementation\n * @returns { Object } it returns an object containing the implementation of a custom tag (template and boot function)\n */\nexport default function get(dom) {\n return dom.tagName && __TAG_IMPL[getAttr(dom, IS_DIRECTIVE) ||\n getAttr(dom, IS_DIRECTIVE) || dom.tagName.toLowerCase()]\n}","import { IS_DIRECTIVE } from './../../global-variables'\nimport { tmpl } from 'riot-tmpl'\nimport get from './get'\nimport getAttribute from '../dom/get-attribute'\n/**\n * Get the tag name of any DOM node\n * @param { Object } dom - DOM node we want to parse\n * @param { Boolean } skipDataIs - hack to ignore the data-is attribute when attaching to parent\n * @returns { String } name to identify this dom node in riot\n */\nexport default function getName(dom, skipDataIs) {\n const child = get(dom)\n const namedTag = !skipDataIs && getAttribute(dom, IS_DIRECTIVE)\n return namedTag && !tmpl.hasExpr(namedTag) ?\n namedTag : child ? child.name : dom.tagName.toLowerCase()\n}","import extend from '../misc/extend'\nimport create from '../misc/object-create'\n/**\n * Return a temporary context containing also the parent properties\n * @this Tag\n * @param { Tag } - temporary tag context containing all the parent properties\n */\nexport default function inheritParentProps() {\n if (this.parent) return extend(create(this), this.parent)\n return this\n}","import makeElement from './../common/util/dom/make-element'\nimport setInnerHTML from './../common/util/dom/set-inner-HTML'\nimport $ from './../common/util/dom/$'\n\nimport {\n IE_VERSION,\n RE_SPECIAL_TAGS,\n RE_SPECIAL_TAGS_NO_OPTION\n} from './../common/global-variables'\n\n/*\n Includes hacks needed for the Internet Explorer version 9 and below\n See: http://kangax.github.io/compat-table/es5/#ie8\n http://codeplanet.io/dropping-ie8/\n*/\n\nconst\n reHasYield = /<yield\\b/i,\n reYieldAll = /<yield\\s*(?:\\/>|>([\\S\\s]*?)<\\/yield\\s*>|>)/ig,\n reYieldSrc = /<yield\\s+to=['\"]([^'\">]*)['\"]\\s*>([\\S\\s]*?)<\\/yield\\s*>/ig,\n reYieldDest = /<yield\\s+from=['\"]?([-\\w]+)['\"]?\\s*(?:\\/>|>([\\S\\s]*?)<\\/yield\\s*>)/ig,\n rootEls = { tr: 'tbody', th: 'tr', td: 'tr', col: 'colgroup' },\n tblTags = IE_VERSION && IE_VERSION < 10 ? RE_SPECIAL_TAGS : RE_SPECIAL_TAGS_NO_OPTION,\n GENERIC = 'div',\n SVG = 'svg'\n\n\n/*\n Creates the root element for table or select child elements:\n tr/th/td/thead/tfoot/tbody/caption/col/colgroup/option/optgroup\n*/\nfunction specialTags(el, tmpl, tagName) {\n\n let\n select = tagName[0] === 'o',\n parent = select ? 'select>' : 'table>'\n\n // trim() is important here, this ensures we don't have artifacts,\n // so we can check if we have only one element inside the parent\n el.innerHTML = '<' + parent + tmpl.trim() + '</' + parent\n parent = el.firstChild\n\n // returns the immediate parent if tr/th/td/col is the only element, if not\n // returns the whole tree, as this can include additional elements\n /* istanbul ignore next */\n if (select) {\n parent.selectedIndex = -1 // for IE9, compatible w/current riot behavior\n } else {\n // avoids insertion of cointainer inside container (ex: tbody inside tbody)\n const tname = rootEls[tagName]\n if (tname && parent.childElementCount === 1) parent = $(tname, parent)\n }\n return parent\n}\n\n/*\n Replace the yield tag from any tag template with the innerHTML of the\n original tag in the page\n*/\nfunction replaceYield(tmpl, html) {\n // do nothing if no yield\n if (!reHasYield.test(tmpl)) return tmpl\n\n // be careful with #1343 - string on the source having `$1`\n const src = {}\n\n html = html && html.replace(reYieldSrc, function (_, ref, text) {\n src[ref] = src[ref] || text // preserve first definition\n return ''\n }).trim()\n\n return tmpl\n .replace(reYieldDest, function (_, ref, def) { // yield with from - to attrs\n return src[ref] || def || ''\n })\n .replace(reYieldAll, function (_, def) { // yield without any \"from\"\n return html || def || ''\n })\n}\n\n/**\n * Creates a DOM element to wrap the given content. Normally an `DIV`, but can be\n * also a `TABLE`, `SELECT`, `TBODY`, `TR`, or `COLGROUP` element.\n *\n * @param { String } tmpl - The template coming from the custom tag definition\n * @param { String } html - HTML content that comes from the DOM element where you\n * will mount the tag, mostly the original tag in the page\n * @param { Boolean } isSvg - true if the root node is an svg\n * @returns { HTMLElement } DOM element with _tmpl_ merged through `YIELD` with the _html_.\n */\nexport default function mkdom(tmpl, html, isSvg) {\n const match = tmpl && tmpl.match(/^\\s*<([-\\w]+)/)\n const tagName = match && match[1].toLowerCase()\n let el = makeElement(isSvg ? SVG : GENERIC)\n\n // replace all the yield tags with the tag inner html\n tmpl = replaceYield(tmpl, html)\n\n /* istanbul ignore next */\n if (tblTags.test(tagName))\n el = specialTags(el, tmpl, tagName)\n else\n setInnerHTML(el, tmpl, isSvg)\n\n return el\n}\n","const EVENT_ATTR_RE = /^on/\n\n/**\n * True if the event attribute starts with 'on'\n * @param { String } attribute - event attribute\n * @returns { Boolean }\n */\nexport default function isEventAttribute(attribute) {\n return EVENT_ATTR_RE.test(attribute)\n}","/**\n * Loop backward all the parents tree to detect the first custom parent tag\n * @param { Object } tag - a Tag instance\n * @returns { Object } the instance of the first custom parent tag found\n */\nexport default function getImmediateCustomParent(tag) {\n let ptag = tag\n while (ptag.__.isAnonymous) {\n if (!ptag.parent) break\n ptag = ptag.parent\n }\n return ptag\n}","import isWritable from './../common/util/checks/is-writable'\nimport contains from './../common/util/misc/contains'\nimport { RE_EVENTS_PREFIX, RIOT_EVENTS_KEY } from '../common/global-variables'\nimport getImmediateCustomParent from './../common/util/tags/get-immediate-custom-parent'\nimport settings from '../../settings'\n\n/**\n * Trigger DOM events\n * @param { HTMLElement } dom - dom element target of the event\n * @param { Function } handler - user function\n * @param { Object } e - event object\n */\nfunction handleEvent(dom, handler, e) {\n let ptag = this.__.parent\n let item = this.__.item\n\n if (!item)\n while (ptag && !item) {\n item = ptag.__.item\n ptag = ptag.__.parent\n }\n\n // override the event properties\n /* istanbul ignore next */\n if (isWritable(e, 'currentTarget')) e.currentTarget = dom\n /* istanbul ignore next */\n if (isWritable(e, 'target')) e.target = e.srcElement\n /* istanbul ignore next */\n if (isWritable(e, 'which')) e.which = e.charCode || e.keyCode\n\n e.item = item\n\n handler.call(this, e)\n\n // avoid auto updates\n if (!settings.autoUpdate) return\n\n if (!e.preventUpdate) {\n const p = getImmediateCustomParent(this)\n // fixes #2083\n if (p.isMounted) p.update()\n }\n}\n\n/**\n * Attach an event to a DOM node\n * @param { String } name - event name\n * @param { Function } handler - event callback\n * @param { Object } dom - dom node\n * @param { Tag } tag - tag instance\n */\nexport default function setEventHandler(name, handler, dom, tag) {\n let eventName\n const cb = handleEvent.bind(tag, dom, handler)\n\n // avoid to bind twice the same event\n // possible fix for #2332\n dom[name] = null\n\n // normalize event name\n eventName = name.replace(RE_EVENTS_PREFIX, '')\n\n // cache the listener into the listeners array\n if (!contains(tag.__.listeners, dom)) tag.__.listeners.push(dom)\n if (!dom[RIOT_EVENTS_KEY]) dom[RIOT_EVENTS_KEY] = {}\n if (dom[RIOT_EVENTS_KEY][name]) dom.removeEventListener(eventName, dom[RIOT_EVENTS_KEY][name])\n\n dom[RIOT_EVENTS_KEY][name] = cb\n dom.addEventListener(eventName, cb, false)\n}\n","import getName from './get-name'\nimport getImmediateCustomParent from './get-immediate-custom-parent'\nimport arrayishAdd from './arrayish-add'\nimport define from '../misc/define'\nimport createTag from './../../../tag/tag'\n\n/**\n * Create a new child tag including it correctly into its parent\n * @param { Object } child - child tag implementation\n * @param { Object } opts - tag options containing the DOM node where the tag will be mounted\n * @param { String } innerHTML - inner html of the child node\n * @param { Object } parent - instance of the parent tag including the child custom tag\n * @returns { Object } instance of the new child tag just created\n */\nexport default function initChild(child, opts, innerHTML, parent) {\n const tag = createTag(child, opts, innerHTML)\n const tagName = opts.tagName || getName(opts.root, true)\n const ptag = getImmediateCustomParent(parent)\n // fix for the parent attribute in the looped elements\n define(tag, 'parent', ptag)\n // store the real parent tag\n // in some cases this could be different from the custom parent tag\n // for example in nested loops\n tag.__.parent = parent\n\n // add this tag to the custom parent tag\n arrayishAdd(ptag.tags, tagName, tag)\n\n // and also to the real parent tag\n if (ptag !== parent)\n arrayishAdd(parent.tags, tagName, tag)\n\n return tag\n}","import isArray from '../checks/is-array'\n\n/**\n * Removes an item from an object at a given key. If the key points to an array,\n * then the item is just removed from the array.\n * @param { Object } obj - object on which to remove the property\n * @param { String } key - property name\n * @param { Object } value - the value of the property to be removed\n * @param { Boolean } ensureArray - ensure that the property remains an array\n*/\nexport default function arrayishRemove(obj, key, value, ensureArray) {\n if (isArray(obj[key])) {\n let index = obj[key].indexOf(value)\n if (index !== -1) obj[key].splice(index, 1)\n if (!obj[key].length) delete obj[key]\n else if (obj[key].length === 1 && !ensureArray) obj[key] = obj[key][0]\n } else if (obj[key] === value)\n delete obj[key] // otherwise just delete the key\n}","import createPlaceholder from '../dom/create-placeholder'\nimport createFragment from '../dom/create-fragment'\n/**\n * Adds the elements for a virtual tag\n * @this Tag\n * @param { Node } src - the node that will do the inserting or appending\n * @param { Tag } target - only if inserting, insert before this tag's first child\n */\nexport default function makeVirtual(src, target) {\n const head = createPlaceholder()\n const tail = createPlaceholder()\n const frag = createFragment()\n let sib\n let el\n\n this.root.insertBefore(head, this.root.firstChild)\n this.root.appendChild(tail)\n\n this.__.head = el = head\n this.__.tail = tail\n\n while (el) {\n sib = el.nextSibling\n frag.appendChild(el)\n this.__.virts.push(el) // hold for unmounting\n el = sib\n }\n\n if (target)\n src.insertBefore(frag, target.__.head)\n else\n src.appendChild(frag)\n}","import createFragment from '../dom/create-fragment'\nimport makeVirtual from './make-virtual'\n/**\n * makes a tag virtual and replaces a reference in the dom\n * @this Tag\n * @param { tag } the tag to make virtual\n * @param { ref } the dom reference location\n */\nexport default function makeReplaceVirtual(tag, ref) {\n const frag = createFragment()\n makeVirtual.call(tag, frag)\n ref.parentNode.replaceChild(frag, ref)\n}\n","import { tmpl } from 'riot-tmpl'\nimport each from './../common/util/misc/each'\nimport contains from './../common/util/misc/contains'\n\nimport isBlank from './../common/util/checks/is-blank'\nimport isObject from './../common/util/checks/is-object'\nimport isString from './../common/util/checks/is-string'\nimport isFunction from './../common/util/checks/is-function'\n\nimport removeAttribute from './../common/util/dom/remove-attribute'\nimport getAttribute from './../common/util/dom/get-attribute'\nimport setAttribute from './../common/util/dom/set-attribute'\nimport createPlaceholder from './../common/util/dom/create-placeholder'\nimport toggleVisibility from './../common/util/dom/toggle-visibility'\nimport styleObjectToString from './../common/util/dom/style-object-to-string'\nimport isEventAttribute from './../common/util/misc/is-event-attribute'\n\nimport setEventHandler from './setEventHandler'\n\nimport initChild from './../common/util/tags/init-child'\nimport arrayishRemove from './../common/util/tags/arrayish-remove'\nimport inheritParentProps from './../common/util/tags/inherit-parent-properties'\nimport replaceVirtual from './../common/util/tags/replace-virtual'\n\nimport {\n __TAG_IMPL,\n ATTRS_PREFIX,\n SHOW_DIRECTIVE,\n HIDE_DIRECTIVE,\n IE_VERSION,\n CASE_SENSITIVE_ATTRIBUTES\n} from './../common/global-variables'\n\n/**\n * Update dynamically created data-is tags with changing expressions\n * @param { Object } expr - expression tag and expression info\n * @param { Tag } parent - parent for tag creation\n * @param { String } tagName - tag implementation we want to use\n */\nexport function updateDataIs(expr, parent, tagName) {\n let tag = expr.tag || expr.dom._tag\n let ref\n\n const { head } = tag ? tag.__ : {}\n const isVirtual = expr.dom.tagName === 'VIRTUAL'\n\n if (tag && expr.tagName === tagName) {\n tag.update()\n return\n }\n\n // sync _parent to accommodate changing tagnames\n if (tag) {\n // need placeholder before unmount\n if(isVirtual) {\n ref = createPlaceholder()\n head.parentNode.insertBefore(ref, head)\n }\n\n tag.unmount(true)\n }\n\n // unable to get the tag name\n if (!isString(tagName)) return\n\n expr.impl = __TAG_IMPL[tagName]\n\n // unknown implementation\n if (!expr.impl) return\n\n expr.tag = tag = initChild(\n expr.impl, {\n root: expr.dom,\n parent,\n tagName\n },\n expr.dom.innerHTML,\n parent\n )\n\n each(expr.attrs, a => setAttribute(tag.root, a.name, a.value))\n expr.tagName = tagName\n tag.mount()\n\n // root exist first time, after use placeholder\n if (isVirtual) replaceVirtual(tag, ref || tag.root)\n\n // parent is the placeholder tag, not the dynamic tag so clean up\n parent.__.onUnmount = () => {\n const delName = tag.opts.dataIs\n arrayishRemove(tag.parent.tags, delName, tag)\n arrayishRemove(tag.__.parent.tags, delName, tag)\n tag.unmount()\n }\n}\n\n/**\n * Nomalize any attribute removing the \"riot-\" prefix\n * @param { String } attrName - original attribute name\n * @returns { String } valid html attribute name\n */\nexport function normalizeAttrName(attrName) {\n if (!attrName) return null\n attrName = attrName.replace(ATTRS_PREFIX, '')\n if (CASE_SENSITIVE_ATTRIBUTES[attrName]) attrName = CASE_SENSITIVE_ATTRIBUTES[attrName]\n return attrName\n}\n\n/**\n * Update on single tag expression\n * @this Tag\n * @param { Object } expr - expression logic\n * @returns { undefined }\n */\nexport function updateExpression(expr) {\n if (this.root && getAttribute(this.root,'virtualized')) return\n\n const dom = expr.dom\n // remove the riot- prefix\n const attrName = normalizeAttrName(expr.attr)\n const isToggle = contains([SHOW_DIRECTIVE, HIDE_DIRECTIVE], attrName)\n const isVirtual = expr.root && expr.root.tagName === 'VIRTUAL'\n const { isAnonymous } = this.__\n const parent = dom && (expr.parent || dom.parentNode)\n // detect the style attributes\n const isStyleAttr = attrName === 'style'\n const isClassAttr = attrName === 'class'\n\n let value\n\n // if it's a tag we could totally skip the rest\n if (expr._riot_id) {\n if (expr.__.wasCreated) {\n expr.update()\n // if it hasn't been mounted yet, do that now.\n } else {\n expr.mount()\n if (isVirtual) {\n replaceVirtual(expr, expr.root)\n }\n }\n return\n }\n\n // if this expression has the update method it means it can handle the DOM changes by itself\n if (expr.update) return expr.update()\n\n const context = isToggle && !isAnonymous ? inheritParentProps.call(this) : this\n\n // ...it seems to be a simple expression so we try to calculate its value\n value = tmpl(expr.expr, context)\n\n const hasValue = !isBlank(value)\n const isObj = isObject(value)\n\n // convert the style/class objects to strings\n if (isObj) {\n if (isClassAttr) {\n value = tmpl(JSON.stringify(value), this)\n } else if (isStyleAttr) {\n value = styleObjectToString(value)\n }\n }\n\n // remove original attribute\n if (expr.attr && (!expr.wasParsedOnce || !hasValue || value === false)) {\n // remove either riot-* attributes or just the attribute name\n removeAttribute(dom, getAttribute(dom, expr.attr) ? expr.attr : attrName)\n }\n\n // for the boolean attributes we don't need the value\n // we can convert it to checked=true to checked=checked\n if (expr.bool) value = value ? attrName : false\n if (expr.isRtag) return updateDataIs(expr, this, value)\n if (expr.wasParsedOnce && expr.value === value) return\n\n // update the expression value\n expr.value = value\n expr.wasParsedOnce = true\n\n // if the value is an object (and it's not a style or class attribute) we can not do much more with it\n if (isObj && !isClassAttr && !isStyleAttr && !isToggle) return\n // avoid to render undefined/null values\n if (!hasValue) value = ''\n\n // textarea and text nodes have no attribute name\n if (!attrName) {\n // about #815 w/o replace: the browser converts the value to a string,\n // the comparison by \"==\" does too, but not in the server\n value += ''\n // test for parent avoids error with invalid assignment to nodeValue\n if (parent) {\n // cache the parent node because somehow it will become null on IE\n // on the next iteration\n expr.parent = parent\n if (parent.tagName === 'TEXTAREA') {\n parent.value = value // #1113\n if (!IE_VERSION) dom.nodeValue = value // #1625 IE throws here, nodeValue\n } // will be available on 'updated'\n else dom.nodeValue = value\n }\n return\n }\n\n switch (true) {\n // handle events binding\n case isFunction(value):\n if (isEventAttribute(attrName)) {\n setEventHandler(attrName, value, dom, this)\n }\n break\n // show / hide\n case isToggle:\n toggleVisibility(dom, attrName === HIDE_DIRECTIVE ? !value : value)\n break\n // handle attributes\n default:\n if (expr.bool) {\n dom[attrName] = value\n }\n\n if (attrName === 'value' && dom.value !== value) {\n dom.value = value\n } else if (hasValue && value !== false) {\n setAttribute(dom, attrName, value)\n }\n\n // make sure that in case of style changes\n // the element stays hidden\n if (isStyleAttr && dom.hidden) toggleVisibility(dom, false)\n }\n}\n\n/**\n * Update all the expressions in a Tag instance\n * @this Tag\n * @param { Array } expressions - expression that must be re evaluated\n */\nexport default function update(expressions) {\n each(expressions, updateExpression.bind(this))\n}\n","import each from '../misc/each'\nimport { ATTRS_PREFIX } from './../../global-variables'\nimport toCamel from '../misc/to-camel'\nimport { updateExpression } from '../../../tag/update'\nimport inheritParentProps from './inherit-parent-properties'\n\n/**\n * We need to update opts for this tag. That requires updating the expressions\n * in any attributes on the tag, and then copying the result onto opts.\n * @this Tag\n * @param {Boolean} isLoop - is it a loop tag?\n * @param { Tag } parent - parent tag node\n * @param { Boolean } isAnonymous - is it a tag without any impl? (a tag not registered)\n * @param { Object } opts - tag options\n * @param { Array } instAttrs - tag attributes array\n */\nexport default function updateOpts(isLoop, parent, isAnonymous, opts, instAttrs) {\n // isAnonymous `each` tags treat `dom` and `root` differently. In this case\n // (and only this case) we don't need to do updateOpts, because the regular parse\n // will update those attrs. Plus, isAnonymous tags don't need opts anyway\n if (isLoop && isAnonymous) return\n const ctx = isLoop ? inheritParentProps.call(this) : parent || this\n\n each(instAttrs, (attr) => {\n if (attr.expr) updateExpression.call(ctx, attr.expr)\n // normalize the attribute names\n opts[toCamel(attr.name).replace(ATTRS_PREFIX, '')] = attr.expr ? attr.expr.value : attr.value\n })\n}","import update from '../update'\nimport extend from './../../common/util/misc/extend'\nimport isFunction from './../../common/util/checks/is-function'\nimport updateOpts from './../../common/util/tags/update-options'\n\n/**\n * Update the tag expressions and options\n * @param { Tag } tag - tag object\n * @param { * } data - data we want to use to extend the tag properties\n * @param { Array } expressions - component expressions array\n * @returns { Tag } the current tag instance\n */\nexport default function componentUpdate(tag, data, expressions) {\n const __ = tag.__\n const nextOpts = {}\n const canTrigger = tag.isMounted && !__.skipAnonymous\n\n // inherit properties from the parent tag\n if (__.isAnonymous && __.parent) extend(tag, __.parent)\n extend(tag, data)\n\n updateOpts.apply(tag, [__.isLoop, __.parent, __.isAnonymous, nextOpts, __.instAttrs])\n\n if (\n canTrigger &&\n tag.isMounted &&\n isFunction(tag.shouldUpdate) && !tag.shouldUpdate(data, nextOpts)\n ) {\n return tag\n }\n\n extend(tag.opts, nextOpts)\n\n if (canTrigger) tag.trigger('update', data)\n update.call(tag, expressions)\n if (canTrigger) tag.trigger('updated')\n\n return tag\n}","import {\n __TAG_IMPL,\n IS_DIRECTIVE\n} from './../../global-variables'\n\n/**\n * Get selectors for tags\n * @param { Array } tags - tag names to select\n * @returns { String } selector\n */\nexport default function query(tags) {\n // select all tags\n if (!tags) {\n const keys = Object.keys(__TAG_IMPL)\n return keys + query(keys)\n }\n\n return tags\n .filter(t => !/[^-\\w]/.test(t))\n .reduce((list, t) => {\n const name = t.trim().toLowerCase()\n return list + `,[${IS_DIRECTIVE}=\"${name}\"]`\n }, '')\n}","import styleManager from './styleManager'\nimport isString from './../common/util/checks/is-string'\nimport isUndefined from './../common/util/checks/is-undefined'\nimport isObject from './../common/util/checks/is-object'\nimport isFunction from './../common/util/checks/is-function'\nimport setAttribute from './../common/util/dom/set-attribute'\nimport getAttribute from './../common/util/dom/get-attribute'\nimport $$ from './../common/util/dom/$$'\nimport each from './../common/util/misc/each'\nimport extend from './../common/util/misc/extend'\nimport mountTo from './../common/util/tags/mount'\nimport query from './../common/util/tags/query'\n\nimport {\n __TAG_IMPL,\n __TAGS_CACHE,\n GLOBAL_MIXIN,\n IS_DIRECTIVE\n} from './../common/global-variables'\n\n/**\n * Another way to create a riot tag a bit more es6 friendly\n * @param { HTMLElement } el - tag DOM selector or DOM node/s\n * @param { Object } opts - tag logic\n * @returns { Tag } new riot tag instance\n */\nexport function Tag(el, opts) {\n // get the tag properties from the class constructor\n const {name, tmpl, css, attrs, onCreate} = this\n // register a new tag and cache the class prototype\n if (!__TAG_IMPL[name]) {\n tag(name, tmpl, css, attrs, onCreate)\n // cache the class constructor\n __TAG_IMPL[name].class = this.constructor\n }\n\n // mount the tag using the class instance\n mountTo(el, name, opts, this)\n // inject the component css\n if (css) styleManager.inject()\n\n return this\n}\n\n/**\n * Create a new riot tag implementation\n * @param { String } name - name/id of the new riot tag\n * @param { String } tmpl - tag template\n * @param { String } css - custom tag css\n * @param { String } attrs - root tag attributes\n * @param { Function } fn - user function\n * @returns { String } name/id of the tag just created\n */\nexport function tag(name, tmpl, css, attrs, fn) {\n if (isFunction(attrs)) {\n fn = attrs\n\n if (/^[\\w-]+\\s?=/.test(css)) {\n attrs = css\n css = ''\n } else\n attrs = ''\n }\n\n if (css) {\n if (isFunction(css))\n fn = css\n else\n styleManager.add(css, name)\n }\n\n name = name.toLowerCase()\n __TAG_IMPL[name] = { name, tmpl, attrs, fn }\n\n return name\n}\n\n/**\n * Create a new riot tag implementation (for use by the compiler)\n * @param { String } name - name/id of the new riot tag\n * @param { String } tmpl - tag template\n * @param { String } css - custom tag css\n * @param { String } attrs - root tag attributes\n * @param { Function } fn - user function\n * @returns { String } name/id of the tag just created\n */\nexport function tag2(name, tmpl, css, attrs, fn) {\n if (css) styleManager.add(css, name)\n\n __TAG_IMPL[name] = { name, tmpl, attrs, fn }\n\n return name\n}\n\n/**\n * Mount a tag using a specific tag implementation\n * @param { * } selector - tag DOM selector or DOM node/s\n * @param { String } tagName - tag implementation name\n * @param { Object } opts - tag logic\n * @returns { Array } new tags instances\n */\nexport function mount(selector, tagName, opts) {\n const tags = []\n let elem, allTags\n\n function pushTagsTo(root) {\n if (root.tagName) {\n let riotTag = getAttribute(root, IS_DIRECTIVE), tag\n\n // have tagName? force riot-tag to be the same\n if (tagName && riotTag !== tagName) {\n riotTag = tagName\n setAttribute(root, IS_DIRECTIVE, tagName)\n }\n\n tag = mountTo(root, riotTag || root.tagName.toLowerCase(), opts)\n\n if (tag)\n tags.push(tag)\n } else if (root.length)\n each(root, pushTagsTo) // assume nodeList\n }\n\n // inject styles into DOM\n styleManager.inject()\n\n if (isObject(tagName)) {\n opts = tagName\n tagName = 0\n }\n\n // crawl the DOM to find the tag\n if (isString(selector)) {\n selector = selector === '*' ?\n // select all registered tags\n // & tags found with the riot-tag attribute set\n allTags = query() :\n // or just the ones named like the selector\n selector + query(selector.split(/, */))\n\n // make sure to pass always a selector\n // to the querySelectorAll function\n elem = selector ? $$(selector) : []\n }\n else\n // probably you have passed already a tag or a NodeList\n elem = selector\n\n // select all the registered and mount them inside their root elements\n if (tagName === '*') {\n // get all custom tags\n tagName = allTags || query()\n // if the root els it's just a single tag\n if (elem.tagName)\n elem = $$(tagName, elem)\n else {\n // select all the children for all the different root elements\n var nodeList = []\n\n each(elem, _el => nodeList.push($$(tagName, _el)))\n\n elem = nodeList\n }\n // get rid of the tagName\n tagName = 0\n }\n\n pushTagsTo(elem)\n\n return tags\n}\n\n// Create a mixin that could be globally shared across all the tags\nconst mixins = {}\nconst globals = mixins[GLOBAL_MIXIN] = {}\nlet mixins_id = 0\n\n/**\n * Create/Return a mixin by its name\n * @param { String } name - mixin name (global mixin if object)\n * @param { Object } mix - mixin logic\n * @param { Boolean } g - is global?\n * @returns { Object } the mixin logic\n */\nexport function mixin(name, mix, g) {\n // Unnamed global\n if (isObject(name)) {\n mixin(`__${mixins_id++}__`, name, true)\n return\n }\n\n const store = g ? globals : mixins\n\n // Getter\n if (!mix) {\n if (isUndefined(store[name]))\n throw new Error(`Unregistered mixin: ${ name }`)\n\n return store[name]\n }\n\n // Setter\n store[name] = isFunction(mix) ?\n extend(mix.prototype, store[name] || {}) && mix :\n extend(store[name] || {}, mix)\n}\n\n/**\n * Update all the tags instances created\n * @returns { Array } all the tags instances\n */\nexport function update() {\n return each(__TAGS_CACHE, tag => tag.update())\n}\n\nexport function unregister(name) {\n styleManager.remove(name)\n return delete __TAG_IMPL[name]\n}\n\nexport const version = 'WIP'\n","import { mixin } from './../core'\nimport isString from './../../common/util/checks/is-string'\nimport isFunction from './../../common/util/checks/is-function'\nimport each from './../../common/util/misc/each'\nimport contains from './../../common/util/misc/contains'\nimport getPropDescriptor from './../../common/util/misc/get-prop-descriptor'\n\n/**\n * Add a mixin to this tag\n * @returns { Tag } the current tag instance\n */\nexport default function componentMixin(tag, ...mixins) {\n each(mixins, (mix) => {\n let instance\n let obj\n let props = []\n\n // properties blacklisted and will not be bound to the tag instance\n const propsBlacklist = ['init', '__proto__']\n\n mix = isString(mix) ? mixin(mix) : mix\n\n // check if the mixin is a function\n if (isFunction(mix)) {\n // create the new mixin instance\n instance = new mix()\n } else instance = mix\n\n const proto = Object.getPrototypeOf(instance)\n\n // build multilevel prototype inheritance chain property list\n do props = props.concat(Object.getOwnPropertyNames(obj || instance))\n while (obj = Object.getPrototypeOf(obj || instance))\n\n // loop the keys in the function prototype or the all object keys\n each(props, (key) => {\n // bind methods to tag\n // allow mixins to override other properties/parent mixins\n if (!contains(propsBlacklist, key)) {\n // check for getters/setters\n const descriptor = getPropDescriptor(instance, key) || getPropDescriptor(proto, key)\n const hasGetterSetter = descriptor && (descriptor.get || descriptor.set)\n\n // apply method only if it does not already exist on the instance\n if (!tag.hasOwnProperty(key) && hasGetterSetter) {\n Object.defineProperty(tag, key, descriptor)\n } else {\n tag[key] = isFunction(instance[key]) ?\n instance[key].bind(tag) :\n instance[key]\n }\n }\n })\n\n // init method will be called automatically\n if (instance.init)\n instance.init.bind(tag)(tag.opts)\n })\n\n return tag\n}","import isArray from '../checks/is-array'\nimport arrayishAdd from './arrayish-add'\n/**\n * Move the position of a custom tag in its parent tag\n * @this Tag\n * @param { String } tagName - key where the tag was stored\n * @param { Number } newPos - index where the new tag will be stored\n */\nexport default function moveChild(tagName, newPos) {\n const parent = this.parent\n let tags\n // no parent no move\n if (!parent) return\n\n tags = parent.tags[tagName]\n\n if (isArray(tags))\n tags.splice(newPos, 0, tags.splice(tags.indexOf(this), 1)[0])\n else arrayishAdd(parent.tags, tagName, this)\n}","import createFragment from '../dom/create-fragment'\n/**\n * Move virtual tag and all child nodes\n * @this Tag\n * @param { Node } src - the node that will do the inserting\n * @param { Tag } target - insert before this tag's first child\n */\nexport default function moveVirtual(src, target) {\n let el = this.__.head\n let sib\n const frag = createFragment()\n\n while (el) {\n sib = el.nextSibling\n frag.appendChild(el)\n el = sib\n if (el === this.__.tail) {\n frag.appendChild(el)\n src.insertBefore(frag, target.__.head)\n break\n }\n }\n}","import {\n T_STRING,\n T_OBJECT,\n __TAG_IMPL,\n CONDITIONAL_DIRECTIVE,\n LOOP_DIRECTIVE,\n LOOP_NO_REORDER_DIRECTIVE,\n KEY_DIRECTIVE\n} from './../common/global-variables'\n\nimport isString from './../common/util/checks/is-string'\nimport isArray from './../common/util/checks/is-array'\nimport removeAttribute from './../common/util/dom/remove-attribute'\nimport getAttribute from './../common/util/dom/get-attribute'\nimport createPlaceholder from './../common/util/dom/create-placeholder'\nimport safeInsert from './../common/util/dom/safe-insert'\nimport createFragment from './../common/util/dom/create-fragment'\n\nimport each from './../common/util/misc/each'\nimport contains from './../common/util/misc/contains'\nimport create from './../common/util/misc/object-create'\nimport extend from './../common/util/misc/extend'\n\nimport moveChild from './../common/util/tags/move-child'\nimport getTag from './../common/util/tags/get'\nimport getTagName from './../common/util/tags/get-name'\nimport arrayishAdd from './../common/util/tags/arrayish-add'\nimport arrayishRemove from './../common/util/tags/arrayish-remove'\nimport makeVirtual from './../common/util/tags/make-virtual'\nimport moveVirtual from './../common/util/tags/move-virtual'\n\nimport createTag from './tag'\nimport { tmpl } from 'riot-tmpl'\n\n\n/**\n * Convert the item looped into an object used to extend the child tag properties\n * @param { Object } expr - object containing the keys used to extend the children tags\n * @param { * } key - value to assign to the new object returned\n * @param { * } val - value containing the position of the item in the array\n * @returns { Object } - new object containing the values of the original item\n *\n * The variables 'key' and 'val' are arbitrary.\n * They depend on the collection type looped (Array, Object)\n * and on the expression used on the each tag\n *\n */\nfunction mkitem(expr, key, val) {\n const item = {}\n item[expr.key] = key\n if (expr.pos) item[expr.pos] = val\n return item\n}\n\n/**\n * Unmount the redundant tags\n * @param { Array } items - array containing the current items to loop\n * @param { Array } tags - array containing all the children tags\n */\nfunction unmountRedundant(items, tags, filteredItemsCount) {\n let i = tags.length\n const j = items.length - filteredItemsCount\n\n while (i > j) {\n i--\n remove.apply(tags[i], [tags, i])\n }\n}\n\n\n/**\n * Remove a child tag\n * @this Tag\n * @param { Array } tags - tags collection\n * @param { Number } i - index of the tag to remove\n */\nfunction remove(tags, i) {\n tags.splice(i, 1)\n this.unmount()\n arrayishRemove(this.parent, this, this.__.tagName, true)\n}\n\n/**\n * Move the nested custom tags in non custom loop tags\n * @this Tag\n * @param { Number } i - current position of the loop tag\n */\nfunction moveNestedTags(i) {\n each(Object.keys(this.tags), (tagName) => {\n moveChild.apply(this.tags[tagName], [tagName, i])\n })\n}\n\n/**\n * Move a child tag\n * @this Tag\n * @param { HTMLElement } root - dom node containing all the loop children\n * @param { Tag } nextTag - instance of the next tag preceding the one we want to move\n * @param { Boolean } isVirtual - is it a virtual tag?\n */\nfunction move(root, nextTag, isVirtual) {\n if (isVirtual)\n moveVirtual.apply(this, [root, nextTag])\n else\n safeInsert(root, this.root, nextTag.root)\n}\n\n/**\n * Insert and mount a child tag\n * @this Tag\n * @param { HTMLElement } root - dom node containing all the loop children\n * @param { Tag } nextTag - instance of the next tag preceding the one we want to insert\n * @param { Boolean } isVirtual - is it a virtual tag?\n */\nfunction insert(root, nextTag, isVirtual) {\n if (isVirtual)\n makeVirtual.apply(this, [root, nextTag])\n else\n safeInsert(root, this.root, nextTag.root)\n}\n\n/**\n * Append a new tag into the DOM\n * @this Tag\n * @param { HTMLElement } root - dom node containing all the loop children\n * @param { Boolean } isVirtual - is it a virtual tag?\n */\nfunction append(root, isVirtual) {\n if (isVirtual)\n makeVirtual.call(this, root)\n else\n root.appendChild(this.root)\n}\n\n/**\n * Return the value we want to use to lookup the postion of our items in the collection\n * @param { String } keyAttr - lookup string or expression\n * @param { * } originalItem - original item from the collection\n * @param { Object } keyedItem - object created by riot via { item, i in collection }\n * @param { Boolean } hasKeyAttrExpr - flag to check whether the key is an expression\n * @returns { * } value that we will use to figure out the item position via collection.indexOf\n */\nfunction getItemId(keyAttr, originalItem, keyedItem, hasKeyAttrExpr) {\n if (keyAttr) {\n return hasKeyAttrExpr ? tmpl(keyAttr, keyedItem) : originalItem[keyAttr]\n }\n\n return originalItem\n}\n\n/**\n * Manage tags having the 'each'\n * @param { HTMLElement } dom - DOM node we need to loop\n * @param { Tag } parent - parent tag instance where the dom node is contained\n * @param { String } expr - string contained in the 'each' attribute\n * @returns { Object } expression object for this each loop\n */\nexport default function _each(dom, parent, expr) {\n const mustReorder = typeof getAttribute(dom, LOOP_NO_REORDER_DIRECTIVE) !== T_STRING || removeAttribute(dom, LOOP_NO_REORDER_DIRECTIVE)\n const keyAttr = getAttribute(dom, KEY_DIRECTIVE)\n const hasKeyAttrExpr = keyAttr ? tmpl.hasExpr(keyAttr) : false\n const tagName = getTagName(dom)\n const impl = __TAG_IMPL[tagName]\n const parentNode = dom.parentNode\n const placeholder = createPlaceholder()\n const child = getTag(dom)\n const ifExpr = getAttribute(dom, CONDITIONAL_DIRECTIVE)\n const tags = []\n const isLoop = true\n const innerHTML = dom.innerHTML\n const isAnonymous = !__TAG_IMPL[tagName]\n const isVirtual = dom.tagName === 'VIRTUAL'\n let oldItems = []\n\n // remove the each property from the original tag\n removeAttribute(dom, LOOP_DIRECTIVE)\n removeAttribute(dom, KEY_DIRECTIVE)\n\n // parse the each expression\n expr = tmpl.loopKeys(expr)\n expr.isLoop = true\n\n if (ifExpr) removeAttribute(dom, CONDITIONAL_DIRECTIVE)\n\n // insert a marked where the loop tags will be injected\n parentNode.insertBefore(placeholder, dom)\n parentNode.removeChild(dom)\n\n expr.update = function updateEach() {\n // get the new items collection\n expr.value = tmpl(expr.val, parent)\n\n let items = expr.value\n const frag = createFragment()\n const isObject = !isArray(items) && !isString(items)\n const root = placeholder.parentNode\n const tmpItems = []\n const hasKeys = isObject && !!items\n\n // if this DOM was removed the update here is useless\n // this condition fixes also a weird async issue on IE in our unit test\n if (!root) return\n\n // object loop. any changes cause full redraw\n if (isObject) {\n items = items ? Object.keys(items).map(key => mkitem(expr, items[key], key)) : []\n }\n\n // store the amount of filtered items\n let filteredItemsCount = 0\n\n // loop all the new items\n each(items, (_item, i) => {\n i -= filteredItemsCount\n\n const item = !hasKeys && expr.key ? mkitem(expr, _item, i) : _item\n\n // skip this item because it must be filtered\n if (ifExpr && !tmpl(ifExpr, extend(create(parent), item))) {\n filteredItemsCount ++\n return\n }\n\n const itemId = getItemId(keyAttr, _item, item, hasKeyAttrExpr)\n // reorder only if the items are not objects\n // or a key attribute has been provided\n const doReorder = !isObject && mustReorder && typeof _item === T_OBJECT || keyAttr\n const oldPos = oldItems.indexOf(itemId)\n const isNew = oldPos === -1\n const pos = !isNew && doReorder ? oldPos : i\n // does a tag exist in this position?\n let tag = tags[pos]\n const mustAppend = i >= oldItems.length\n const mustCreate = doReorder && isNew || !doReorder && !tag\n\n // new tag\n if (mustCreate) {\n tag = createTag(impl, {\n parent,\n isLoop,\n isAnonymous,\n tagName,\n root: dom.cloneNode(isAnonymous),\n item,\n index: i,\n }, innerHTML)\n\n // mount the tag\n tag.mount()\n\n if (mustAppend)\n append.apply(tag, [frag || root, isVirtual])\n else\n insert.apply(tag, [root, tags[i], isVirtual])\n\n if (!mustAppend) oldItems.splice(i, 0, item)\n tags.splice(i, 0, tag)\n if (child) arrayishAdd(parent.tags, tagName, tag, true)\n } else if (pos !== i && doReorder) {\n // move\n if (keyAttr || contains(items, oldItems[pos])) {\n move.apply(tag, [root, tags[i], isVirtual])\n // move the old tag instance\n tags.splice(i, 0, tags.splice(pos, 1)[0])\n // move the old item\n oldItems.splice(i, 0, oldItems.splice(pos, 1)[0])\n }\n\n // update the position attribute if it exists\n if (expr.pos) tag[expr.pos] = i\n\n // if the loop tags are not custom\n // we need to move all their custom tags into the right position\n if (!child && tag.tags) moveNestedTags.call(tag, i)\n }\n\n // cache the original item to use it in the events bound to this node\n // and its children\n extend(tag.__, {\n item,\n index: i,\n parent\n })\n\n tmpItems[i] = itemId\n\n if (!mustCreate) tag.update(item)\n })\n\n // remove the redundant tags\n unmountRedundant(items, tags, filteredItemsCount)\n\n // clone the items array\n oldItems = tmpItems.slice()\n\n root.insertBefore(frag, placeholder)\n }\n\n expr.unmount = () => {\n each(tags, t => { t.unmount() })\n }\n\n return expr\n}","import { tmpl } from 'riot-tmpl'\nimport isBlank from './../common/util/checks/is-blank'\nimport isString from './../common/util/checks/is-string'\nimport removeAttribute from './../common/util/dom/remove-attribute'\nimport setAttribute from './../common/util/dom/set-attribute'\n\nimport {\n getImmediateCustomParentTag,\n arrayishAdd,\n arrayishRemove\n} from './../common/util/tags'\n\nexport default {\n init(dom, parent, attrName, attrValue) {\n this.dom = dom\n this.attr = attrName\n this.rawValue = attrValue\n this.parent = parent\n this.hasExp = tmpl.hasExpr(attrValue)\n return this\n },\n update() {\n const old = this.value\n const customParent = this.parent && getImmediateCustomParentTag(this.parent)\n // if the referenced element is a custom tag, then we set the tag itself, rather than DOM\n const tagOrDom = this.dom.__ref || this.tag || this.dom\n\n this.value = this.hasExp ? tmpl(this.rawValue, this.parent) : this.rawValue\n\n // the name changed, so we need to remove it from the old key (if present)\n if (!isBlank(old) && customParent) arrayishRemove(customParent.refs, old, tagOrDom)\n if (!isBlank(this.value) && isString(this.value)) {\n // add it to the refs of parent tag (this behavior was changed >=3.0)\n if (customParent) arrayishAdd(\n customParent.refs,\n this.value,\n tagOrDom,\n // use an array if it's a looped node and the ref is not an expression\n null,\n this.parent.__.index\n )\n\n if (this.value !== old) {\n setAttribute(this.dom, this.attr, this.value)\n }\n } else {\n removeAttribute(this.dom, this.attr)\n }\n\n // cache the ref bound to this dom node\n // to reuse it in future (see also #2329)\n if (!this.dom.__ref) this.dom.__ref = tagOrDom\n },\n unmount() {\n const tagOrDom = this.tag || this.dom\n const customParent = this.parent && getImmediateCustomParentTag(this.parent)\n if (!isBlank(this.value) && customParent)\n arrayishRemove(customParent.refs, this.value, tagOrDom)\n }\n}","import RefExpr from '../../../tag/ref'\nimport create from '../misc/object-create'\n\n/**\n * Create a new ref directive\n * @param { HTMLElement } dom - dom node having the ref attribute\n * @param { Tag } context - tag instance where the DOM node is located\n * @param { String } attrName - either 'ref' or 'data-ref'\n * @param { String } attrValue - value of the ref attribute\n * @returns { RefExpr } a new RefExpr object\n */\nexport default function createRefDirective(dom, tag, attrName, attrValue) {\n return create(RefExpr).init(dom, tag, attrName, attrValue)\n}","import each from '../misc/each'\n\n/**\n * Trigger the unmount method on all the expressions\n * @param { Array } expressions - DOM expressions\n */\nexport default function unmountAll(expressions) {\n each(expressions, expr => {\n if (expr.unmount) expr.unmount(true)\n else if (expr.tagName) expr.tag.unmount(true)\n else if (expr.unmount) expr.unmount()\n })\n}","import removeAttribute from './../common/util/dom/remove-attribute'\nimport createPlacholder from './../common/util/dom/create-placeholder'\nimport unmountAll from './../common/util/tags/unmount-all'\nimport extend from './../common/util/misc/extend'\nimport { tmpl } from 'riot-tmpl'\nimport { CONDITIONAL_DIRECTIVE } from './../common/global-variables'\nimport { parseExpressions } from './parse'\nimport updateAllExpressions from './update'\n\nexport default {\n init(dom, tag, expr) {\n removeAttribute(dom, CONDITIONAL_DIRECTIVE)\n extend(this, { tag, expr, stub: createPlacholder(), pristine: dom })\n const p = dom.parentNode\n p.insertBefore(this.stub, dom)\n p.removeChild(dom)\n\n return this\n },\n update() {\n this.value = tmpl(this.expr, this.tag)\n\n if (this.value && !this.current) { // insert\n this.current = this.pristine.cloneNode(true)\n this.stub.parentNode.insertBefore(this.current, this.stub)\n this.expressions = parseExpressions.apply(this.tag, [this.current, true])\n } else if (!this.value && this.current) { // remove\n this.unmount()\n this.current = null\n this.expressions = []\n }\n\n if (this.value) updateAllExpressions.call(this.tag, this.expressions)\n },\n unmount() {\n if (this.current) {\n if (this.current._tag) {\n this.current._tag.unmount()\n } else if (this.current.parentNode) {\n this.current.parentNode.removeChild(this.current)\n }\n }\n\n unmountAll(this.expressions || [])\n }\n}","import IfExpr from '../../../tag/if'\nimport create from '../misc/object-create'\n\n/**\n * Create a new if directive\n * @param { HTMLElement } dom - if root dom node\n * @param { Tag } context - tag instance where the DOM node is located\n * @param { String } attr - if expression\n * @returns { IFExpr } a new IfExpr object\n */\nexport default function createIfDirective(dom, tag, attr) {\n return create(IfExpr).init(dom, tag, attr)\n}","import _each from './each'\nimport { tmpl } from 'riot-tmpl'\nimport {\n CONDITIONAL_DIRECTIVE,\n LOOP_DIRECTIVE,\n IS_DIRECTIVE,\n REF_DIRECTIVES,\n YIELD_TAG\n} from './../common/global-variables'\n\nimport createRefDirective from './../common/util/tags/create-ref-directive'\nimport createIfDirective from './../common/util/tags/create-if-directive'\nimport isBoolAttr from './../common/util/checks/is-boolean-attribute'\nimport walkNodes from './../common/util/dom/walk-nodes'\nimport getAttribute from './../common/util/dom/get-attribute'\nimport setAttribute from './../common/util/dom/set-attribute'\nimport each from './../common/util/misc/each'\nimport contains from './../common/util/misc/contains'\nimport warn from './../common/util/misc/warn'\nimport getTag from './../common/util/tags/get'\nimport initChild from './../common/util/tags/init-child'\nimport createTag from './tag'\n\n/**\n * Walk the tag DOM to detect the expressions to evaluate\n * @this Tag\n * @param { HTMLElement } root - root tag where we will start digging the expressions\n * @param { Boolean } mustIncludeRoot - flag to decide whether the root must be parsed as well\n * @returns { Array } all the expressions found\n */\nexport function parseExpressions(root, mustIncludeRoot) {\n const expressions = []\n\n walkNodes(root, (dom) => {\n const type = dom.nodeType\n let attr\n let tagImpl\n\n if (!mustIncludeRoot && dom === root) return\n\n // text node\n if (type === 3 && dom.parentNode.tagName !== 'STYLE' && tmpl.hasExpr(dom.nodeValue))\n expressions.push({dom, expr: dom.nodeValue})\n\n if (type !== 1) return\n\n const isVirtual = dom.tagName === 'VIRTUAL'\n\n // loop. each does it's own thing (for now)\n if (attr = getAttribute(dom, LOOP_DIRECTIVE)) {\n if(isVirtual) setAttribute(dom, 'loopVirtual', true) // ignore here, handled in _each\n expressions.push(_each(dom, this, attr))\n return false\n }\n\n // if-attrs become the new parent. Any following expressions (either on the current\n // element, or below it) become children of this expression.\n if (attr = getAttribute(dom, CONDITIONAL_DIRECTIVE)) {\n expressions.push(createIfDirective(dom, this, attr))\n return false\n }\n\n if (attr = getAttribute(dom, IS_DIRECTIVE)) {\n if (tmpl.hasExpr(attr)) {\n expressions.push({\n isRtag: true,\n expr: attr,\n dom,\n attrs: [].slice.call(dom.attributes)\n })\n\n return false\n }\n }\n\n // if this is a tag, stop traversing here.\n // we ignore the root, since parseExpressions is called while we're mounting that root\n tagImpl = getTag(dom)\n\n if(isVirtual) {\n if(getAttribute(dom, 'virtualized')) {dom.parentElement.removeChild(dom) } // tag created, remove from dom\n if(!tagImpl && !getAttribute(dom, 'virtualized') && !getAttribute(dom, 'loopVirtual')) // ok to create virtual tag\n tagImpl = { tmpl: dom.outerHTML }\n }\n\n if (tagImpl && (dom !== root || mustIncludeRoot)) {\n const hasIsDirective = getAttribute(dom, IS_DIRECTIVE)\n if(isVirtual && !hasIsDirective) { // handled in update\n // can not remove attribute like directives\n // so flag for removal after creation to prevent maximum stack error\n setAttribute(dom, 'virtualized', true)\n const tag = createTag(\n {tmpl: dom.outerHTML},\n {root: dom, parent: this},\n dom.innerHTML\n )\n\n expressions.push(tag) // no return, anonymous tag, keep parsing\n } else {\n if (hasIsDirective && isVirtual)\n warn(`Virtual tags shouldn't be used together with the \"${IS_DIRECTIVE}\" attribute - https://github.com/riot/riot/issues/2511`)\n\n expressions.push(\n initChild(\n tagImpl,\n {\n root: dom,\n parent: this\n },\n dom.innerHTML,\n this\n )\n )\n return false\n }\n }\n\n // attribute expressions\n parseAttributes.apply(this, [dom, dom.attributes, (attr, expr) => {\n if (!expr) return\n expressions.push(expr)\n }])\n })\n\n return expressions\n}\n\n/**\n * Calls `fn` for every attribute on an element. If that attr has an expression,\n * it is also passed to fn.\n * @this Tag\n * @param { HTMLElement } dom - dom node to parse\n * @param { Array } attrs - array of attributes\n * @param { Function } fn - callback to exec on any iteration\n */\nexport function parseAttributes(dom, attrs, fn) {\n each(attrs, (attr) => {\n if (!attr) return false\n\n const name = attr.name\n const bool = isBoolAttr(name)\n let expr\n\n if (contains(REF_DIRECTIVES, name) && dom.tagName.toLowerCase() !== YIELD_TAG) {\n expr = createRefDirective(dom, this, name, attr.value)\n } else if (tmpl.hasExpr(attr.value)) {\n expr = {dom, expr: attr.value, attr: name, bool}\n }\n\n fn(attr, expr)\n })\n}\n","import define from '../misc/define'\n\n/**\n * Manage the mount state of a tag triggering also the observable events\n * @this Tag\n * @param { Boolean } value - ..of the isMounted flag\n */\nexport default function setMountState(value) {\n const { isAnonymous } = this.__\n\n define(this, 'isMounted', value)\n\n if (!isAnonymous) {\n if (value) this.trigger('mount')\n else {\n this.trigger('unmount')\n this.off('*')\n this.__.wasCreated = false\n }\n }\n}","import { parseExpressions, parseAttributes } from '../parse'\nimport RefExpr from '../ref'\nimport { mixin } from '../core'\n\nimport { GLOBAL_MIXIN } from './../../common/global-variables'\n\nimport setAttribute from './../../common/util/dom/set-attribute'\nimport walkAttributes from './../../common/util/dom/walk-attributes'\n\nimport each from './../../common/util/misc/each'\nimport define from './../../common/util/misc/define'\n\nimport getImmediateCustomParent from './../../common/util/tags/get-immediate-custom-parent'\nimport updateOpts from './../../common/util/tags/update-options'\nimport setMountState from './../../common/util/tags/set-mount-state'\n\n/**\n * Mount the current tag instance\n * @returns { Tag } the current tag instance\n */\nexport default function componentMount(tag, dom, expressions, opts) {\n const __ = tag.__\n const root = __.root\n root._tag = tag // keep a reference to the tag just created\n\n // Read all the attrs on this instance. This give us the info we need for updateOpts\n parseAttributes.apply(__.parent, [root, root.attributes, (attr, expr) => {\n if (!__.isAnonymous && RefExpr.isPrototypeOf(expr)) expr.tag = tag\n attr.expr = expr\n __.instAttrs.push(attr)\n }])\n\n // update the root adding custom attributes coming from the compiler\n walkAttributes(__.impl.attrs, (k, v) => { __.implAttrs.push({name: k, value: v}) })\n parseAttributes.apply(tag, [root, __.implAttrs, (attr, expr) => {\n if (expr) expressions.push(expr)\n else setAttribute(root, attr.name, attr.value)\n }])\n\n // initialiation\n updateOpts.apply(tag, [__.isLoop, __.parent, __.isAnonymous, opts, __.instAttrs])\n\n // add global mixins\n const globalMixin = mixin(GLOBAL_MIXIN)\n\n if (globalMixin && !__.skipAnonymous) {\n for (const i in globalMixin) {\n if (globalMixin.hasOwnProperty(i)) {\n tag.mixin(globalMixin[i])\n }\n }\n }\n\n if (__.impl.fn) __.impl.fn.call(tag, opts)\n\n if (!__.skipAnonymous) tag.trigger('before-mount')\n\n // parse layout after init. fn may calculate args for nested custom tags\n each(parseExpressions.apply(tag, [dom, __.isAnonymous]), e => expressions.push(e))\n\n tag.update(__.item)\n\n if (!__.isAnonymous && !__.isInline) {\n while (dom.firstChild) root.appendChild(dom.firstChild)\n }\n\n define(tag, 'root', root)\n\n // if we need to wait that the parent \"mount\" or \"updated\" event gets triggered\n if (!__.skipAnonymous && tag.parent) {\n const p = getImmediateCustomParent(tag.parent)\n p.one(!p.isMounted ? 'mount' : 'updated', () => {\n setMountState.call(tag, true)\n })\n } else {\n // otherwise it's not a child tag we can trigger its mount event\n setMountState.call(tag, true)\n }\n\n tag.__.wasCreated = true\n\n return tag\n}","import {\n __TAGS_CACHE,\n ATTRS_PREFIX,\n RIOT_EVENTS_KEY\n} from './../../common/global-variables'\n\nimport removeAttribute from './../../common/util/dom/remove-attribute'\nimport walkAttributes from './../../common/util/dom/walk-attributes'\nimport setInnerHTML from './../../common/util/dom/set-inner-HTML'\nimport each from './../../common/util/misc/each'\nimport startsWith from './../../common/util/misc/starts-with'\n\nimport unmountAll from './../../common/util/tags/unmount-all'\n\nimport arrayishRemove from './../../common/util/tags/arrayish-remove'\nimport getImmediateCustomParent from './../../common/util/tags/get-immediate-custom-parent'\nimport setMountState from './../../common/util/tags/set-mount-state'\n\n\n/**\n * Unmount the tag instance\n * @param { Boolean } mustKeepRoot - if it's true the root node will not be removed\n * @returns { Tag } the current tag instance\n */\nexport default function tagUnmount(tag, mustKeepRoot, expressions) {\n const __ = tag.__\n const root = __.root\n const tagIndex = __TAGS_CACHE.indexOf(tag)\n const p = root.parentNode\n\n if (!__.skipAnonymous) tag.trigger('before-unmount')\n\n // clear all attributes coming from the mounted tag\n walkAttributes(__.impl.attrs, (name) => {\n if (startsWith(name, ATTRS_PREFIX))\n name = name.slice(ATTRS_PREFIX.length)\n\n removeAttribute(root, name)\n })\n\n // remove all the event listeners\n tag.__.listeners.forEach((dom) => {\n Object.keys(dom[RIOT_EVENTS_KEY]).forEach((eventName) => {\n dom.removeEventListener(eventName, dom[RIOT_EVENTS_KEY][eventName])\n })\n })\n\n // remove tag instance from the global tags cache collection\n if (tagIndex !== -1) __TAGS_CACHE.splice(tagIndex, 1)\n\n // clean up the parent tags object\n if (__.parent && !__.isAnonymous) {\n const ptag = getImmediateCustomParent(__.parent)\n\n if (__.isVirtual) {\n Object\n .keys(tag.tags)\n .forEach(tagName => arrayishRemove(ptag.tags, tagName, tag.tags[tagName]))\n } else {\n arrayishRemove(ptag.tags, __.tagName, tag)\n }\n }\n\n // unmount all the virtual directives\n if (tag.__.virts) {\n each(tag.__.virts, (v) => {\n if (v.parentNode) v.parentNode.removeChild(v)\n })\n }\n\n // allow expressions to unmount themselves\n unmountAll(expressions)\n each(__.instAttrs, a => a.expr && a.expr.unmount && a.expr.unmount())\n\n // clear the tag html if it's necessary\n if (mustKeepRoot) setInnerHTML(root, '')\n // otherwise detach the root tag from the DOM\n else if (p) p.removeChild(root)\n\n // custom internal unmount function to avoid relying on the observable\n if (__.onUnmount) __.onUnmount()\n\n // weird fix for a weird edge case #2409 and #2436\n // some users might use your software not as you've expected\n // so I need to add these dirty hacks to mitigate unexpected issues\n if (!tag.isMounted) setMountState.call(tag, true)\n\n setMountState.call(tag, false)\n\n delete root._tag\n\n return tag\n}","import observable from 'riot-observable'\nimport mkdom from './mkdom'\nimport settings from '../../settings'\nimport isSvg from './../common/util/checks/is-svg'\nimport extend from './../common/util/misc/extend'\nimport uid from './../common/util/misc/uid'\nimport define from './../common/util/misc/define'\nimport getTagName from './../common/util/tags/get-name'\nimport componentUpdate from './component/update'\nimport componentMixin from './component/mixin'\nimport componentMount from './component/mount'\nimport componentUnmount from './component/unmount'\n\n/**\n * Tag creation factory function\n * @constructor\n * @param { Object } impl - it contains the tag template, and logic\n * @param { Object } conf - tag options\n * @param { String } innerHTML - html that eventually we need to inject in the tag\n */\nexport default function createTag(impl = {}, conf = {}, innerHTML) {\n const tag = conf.context || {}\n const opts = conf.opts || {}\n const parent = conf.parent\n const isLoop = conf.isLoop\n const isAnonymous = !!conf.isAnonymous\n const skipAnonymous = settings.skipAnonymousTags && isAnonymous\n const item = conf.item\n // available only for the looped nodes\n const index = conf.index\n // All attributes on the Tag when it's first parsed\n const instAttrs = []\n // expressions on this type of Tag\n const implAttrs = []\n const tmpl = impl.tmpl\n const expressions = []\n const root = conf.root\n const tagName = conf.tagName || getTagName(root)\n const isVirtual = tagName === 'virtual'\n const isInline = !isVirtual && !tmpl\n let dom\n\n if (isInline || isLoop && isAnonymous) {\n dom = root\n } else {\n if (!isVirtual) root.innerHTML = ''\n dom = mkdom(tmpl, innerHTML, isSvg(root))\n }\n\n // make this tag observable\n if (!skipAnonymous) observable(tag)\n\n // only call unmount if we have a valid __TAG_IMPL (has name property)\n if (impl.name && root._tag) root._tag.unmount(true)\n\n define(tag, '__', {\n impl,\n root,\n skipAnonymous,\n implAttrs,\n isAnonymous,\n instAttrs,\n innerHTML,\n tagName,\n index,\n isLoop,\n isInline,\n item,\n parent,\n // tags having event listeners\n // it would be better to use weak maps here but we can not introduce breaking changes now\n listeners: [],\n // these vars will be needed only for the virtual tags\n virts: [],\n wasCreated: false,\n tail: null,\n head: null\n })\n\n // tag protected properties\n return [\n ['isMounted', false],\n // create a unique id to this tag\n // it could be handy to use it also to improve the virtual dom rendering speed\n ['_riot_id', uid()],\n ['root', root],\n ['opts', opts, { writable: true, enumerable: true }],\n ['parent', parent || null],\n // protect the \"tags\" and \"refs\" property from being overridden\n ['tags', {}],\n ['refs', {}],\n ['update', data => componentUpdate(tag, data, expressions)],\n ['mixin', (...mixins) => componentMixin(tag, ...mixins)],\n ['mount', () => componentMount(tag, dom, expressions, opts)],\n ['unmount', mustKeepRoot => componentUnmount(tag, mustKeepRoot, expressions)]\n ].reduce((acc, [key, value, opts]) => {\n define(tag, key, value, opts)\n return acc\n }, extend(tag, item))\n}\n","import {\n __TAG_IMPL,\n __TAGS_CACHE,\n} from './../../global-variables'\nimport extend from '../misc/extend'\nimport contains from '../misc/contains'\nimport create from '../misc/object-create'\nimport createTag from './../../../tag/tag'\n\n/**\n * Mount a tag creating new Tag instance\n * @param { Object } root - dom node where the tag will be mounted\n * @param { String } tagName - name of the riot tag we want to mount\n * @param { Object } opts - options to pass to the Tag instance\n * @param { Object } ctx - optional context that will be used to extend an existing class ( used in riot.Tag )\n * @returns { Tag } a new Tag instance\n */\nexport default function mount(root, tagName, opts, ctx) {\n const impl = __TAG_IMPL[tagName]\n const implClass = __TAG_IMPL[tagName].class\n const context = ctx || (implClass ? create(implClass.prototype) : {})\n // cache the inner HTML to fix #855\n const innerHTML = root._innerHTML = root._innerHTML || root.innerHTML\n const conf = extend({ root, opts, context }, { parent: opts ? opts.parent : null })\n let tag\n\n if (impl && root) tag = createTag(impl, conf, innerHTML)\n\n if (tag && tag.mount) {\n tag.mount(true)\n // add this tag to the virtualDom variable\n if (!contains(__TAGS_CACHE, tag)) __TAGS_CACHE.push(tag)\n }\n\n return tag\n}","export { default as arrayishAdd } from './arrayish-add'\nexport { default as getTagName } from './get-name'\nexport { default as inheritParentProps } from './inherit-parent-properties'\nexport { default as mountTo } from './mount'\nexport { default as selectTags } from './query'\nexport { default as arrayishRemove } from './arrayish-remove'\nexport { default as getTag } from './get'\nexport { default as initChildTag } from './init-child'\nexport { default as moveChildTag } from './move-child'\nexport { default as makeReplaceVirtual } from './replace-virtual'\nexport { default as getImmediateCustomParentTag } from './get-immediate-custom-parent'\nexport { default as makeVirtual } from './make-virtual'\nexport { default as moveVirtual } from './move-virtual'\nexport { default as unmountAll } from './unmount-all'\nexport { default as createIfDirective } from './create-if-directive'\nexport { default as createRefDirective } from './create-ref-directive'","import styleManager from './browser/tag/styleManager'\nimport { tmpl, brackets } from 'riot-tmpl'\nimport o from 'riot-observable'\nimport s from './settings'\nimport { __TAGS_CACHE as vdom } from './browser/common/global-variables'\nimport * as dom from './browser/common/util/dom'\nimport * as check from './browser/common/util/checks' // avoid to add breaking changes\nimport * as misc from './browser/common/util/misc'\nimport * as tags from './browser/common/util/tags'\nimport * as core from './browser/tag/core'\n\n/**\n * Riot public api\n */\nexport const settings = s\nexport const util = {\n tmpl,\n brackets,\n styleManager,\n vdom,\n styleNode: styleManager.styleNode,\n // export the riot internal utils as well\n dom,\n check,\n misc,\n tags\n}\n\n// export the core props/methods\nexport const Tag = core.Tag\nexport const tag = core.tag\nexport const tag2 = core.tag2\nexport const mount = core.mount\nexport const mixin = core.mixin\nexport const update = core.update\nexport const unregister = core.unregister\nexport const version = core.version\nexport const observable = o\n\nexport default misc.extend({}, core, {\n observable: o,\n settings,\n util,\n})\n","import riot from 'riot'\n\nriot.tag2('parts-question', '<defs> <symbol viewbox=\"0 0 1024 1024\" aria-labelledby=\"fmsi-ant-question-circle-title\" id=\"si-ant-question-circle\"> <title id=\"fmsi-ant-question-circle-title\">icon question-circle</title> <path d=\"M512 0Q373 0 255 68.5T68.5 255 0 512t68.5 257T255 955.5t257 68.5 257-68.5T955.5 769t68.5-257-68.5-257T769 68.5 512 0zm30 802q0 13-9 22.5t-23 9.5q-13 0-22.5-9.5T478 802t9.5-22.5T510 770q14 0 23 9.5t9 22.5zm66-220q-36 19-51 35t-15 46v11q0 13-9 22.5t-23 9.5q-13 0-22.5-9.5T478 674v-11q0-48 24.5-79.5T578 525q35-18 55.5-52.5T654 398q0-60-42-102t-102-42q-62 0-103 37-30 28-38 68-2 11-11 18.5t-20 7.5q-16 0-25.5-11.5T306 347q12-62 59-104 59-53 145-53 87 0 147.5 61T718 398q0 58-29.5 107.5T608 582z\"></path> </symbol> </defs>', '', 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" style=\"position:absolute;overflow:hidden;\"', function(opts) {\n});\n","\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tag = \"ascoders-dependency-inject\";\nvar globalOrWindow = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === 'object' && self.self === self && self || (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) === 'object' && global.global === global && global;\n\nvar GlobalState = function GlobalState() {\n _classCallCheck(this, GlobalState);\n\n this.instances = new WeakMap();\n this.injectSymbol = Symbol();\n};\n\nvar globalState = new GlobalState();\nexports.globalState = globalState;\nif (globalOrWindow[tag]) {\n exports.globalState = globalState = globalOrWindow[tag];\n} else {\n globalOrWindow[tag] = globalState;\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar utils_1 = require(\"./utils\");\n\nvar Container = function () {\n function Container() {\n _classCallCheck(this, Container);\n }\n\n _createClass(Container, [{\n key: \"set\",\n value: function set(setClass, instance) {\n if (!utils_1.globalState.instances.has(setClass)) {\n utils_1.globalState.instances.set(setClass, instance);\n }\n }\n }, {\n key: \"get\",\n value: function get(getClass) {\n if (!utils_1.globalState.instances.has(getClass)) {\n throw new Error(getClass.name + \" \\u672A\\u6CE8\\u518C\\u3002\\u5148\\u4F7F\\u7528 set \\u65B9\\u6CD5\\u6CE8\\u518C\\uFF0C\\u518D\\u4F7F\\u7528 get \\u83B7\\u53D6\");\n }\n var instance = utils_1.globalState.instances.get(getClass);\n if (!instance[utils_1.globalState.injectSymbol]) {\n return instance;\n }\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n var _loop = function _loop() {\n var _step$value = _slicedToArray(_step.value, 2),\n propertyKey = _step$value[0],\n injectClass = _step$value[1];\n\n Object.defineProperty(instance, propertyKey, {\n enumerable: true,\n configurable: true,\n get: function get() {\n return utils_1.globalState.instances.get(injectClass);\n },\n set: function set(newValue) {\n instance.propertyKey = newValue;\n }\n });\n };\n\n for (var _iterator = instance[utils_1.globalState.injectSymbol][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n _loop();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return instance;\n }\n }]);\n\n return Container;\n}();\n\nexports.default = Container;\n//# sourceMappingURL=container.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar utils_1 = require(\"./utils\");\nexports.default = function (injectClass) {\n return function (target, propertyKey, descriptor) {\n if (descriptor) {\n descriptor.enumerable = true;\n descriptor.configurable = true;\n descriptor.writable = true;\n }\n if (!target[utils_1.globalState.injectSymbol]) {\n Object.defineProperty(target, utils_1.globalState.injectSymbol, {\n enumerable: true,\n configurable: true,\n value: new Map()\n });\n }\n target[utils_1.globalState.injectSymbol].set(propertyKey, injectClass);\n };\n};\n//# sourceMappingURL=decorators.js.map","\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = require(\"./container\");\nfunction collectGet(container, obj) {\n Object.keys(obj).forEach(function (key) {\n if (_typeof(obj[key]) === 'object') {\n collectGet(container, obj[key]);\n } else {\n var instance = new obj[key]();\n container.set(obj[key], instance);\n }\n });\n}\nfunction injectFactory(obj) {\n var container = new container_1.default();\n collectGet(container, obj);\n var injectObj = Object.keys(obj).reduce(function (result, key) {\n if (_typeof(obj[key]) === 'object') {\n result[key] = injectFactory(obj[key]);\n } else {\n result[key] = container.get(obj[key]);\n }\n return result;\n }, {});\n return injectObj;\n}\nexports.injectFactory = injectFactory;\n//# sourceMappingURL=helper.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = require(\"./container\");\nexports.Container = container_1.default;\nvar decorators_1 = require(\"./decorators\");\nexports.inject = decorators_1.default;\nvar helper_1 = require(\"./helper\");\nexports.injectFactory = helper_1.injectFactory;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Event = (function () {\n function Event() {\n // 所有事件\n this.events = new Map();\n }\n Event.prototype.on = function (eventType, callback) {\n var event = {\n callback: callback\n };\n if (this.events.get(eventType)) {\n // 存在, push 一个事件监听\n this.events.get(eventType).push(event);\n }\n else {\n // 不存在, 赋值\n this.events.set(eventType, [event]);\n }\n };\n /**\n * 取消订阅\n */\n Event.prototype.off = function (eventType, callback) {\n if (!this.events.get(eventType)) {\n return false;\n }\n var events = this.events.get(eventType).filter(function (event) {\n return event.callback !== callback;\n });\n this.events.set(eventType, events);\n return true;\n };\n /**\n * 广播事件\n */\n Event.prototype.emit = function (eventType, context) {\n if (!eventType || !this.events.get(eventType)) {\n return false;\n }\n this.events.get(eventType).forEach(function (event) {\n event.callback(context);\n });\n };\n return Event;\n}());\nexports.Event = Event;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar event_1 = require(\"./event\");\nvar tag = \"ascoders-dob\";\nvar globalOrWindow = (typeof self === \"object\" && self.self === self && self) ||\n (typeof global === \"object\" && global.global === global && global);\nvar GlobalState = (function () {\n function GlobalState() {\n /**\n * All proxies\n * key: proxies and it's origin object.\n */\n this.proxies = new WeakMap();\n /**\n * key: proxy\n * value: origin object\n */\n this.originObjects = new WeakMap();\n /**\n * Store all the original objects and keys to be proxied.\n */\n this.objectReactionBindings = new WeakMap();\n this.currentReaction = null;\n /**\n * Batch execution depth, such as each call runInAction in-depth +1, call -1, depth of 0 means that the implementation of the end.\n * When batchDeep == = 0, the operation queue is completed.\n */\n this.batchDeep = 0;\n this.pendingReactions = new Set();\n /**\n * Ignore the observable symbol\n */\n this.ignoreDynamicSymbol = Symbol();\n /**\n * Track Nested track, temporary cache down the track queue, waiting for the implementation of a track after the implementation.\n * Eg: observe(()=>{\n * // ..\n * observe(()=>{..})\n * // ..\n * })\n * Special for nest react component.\n */\n this.pendingTracks = new Set();\n this.useDebug = false;\n /**\n * The currently executing debugOutputAction object.\n */\n this.currentDebugOutputAction = null;\n /**\n * The root of each batchDeep debugOutputBundleAction.\n */\n this.debugOutputActionMapBatchDeep = new Map();\n /**\n * Object's parent information, for debug.\n */\n this.parentInfo = new WeakMap();\n /**\n * Special for action name.\n */\n this.currentDebugName = null;\n this.currentDebugId = null;\n this.strictMode = false;\n this.event = new event_1.Event();\n this.uniqueIdCounter = 0;\n /**\n * Debug get callstack max run count\n */\n this.getCallstackMaxCount = 50;\n }\n return GlobalState;\n}());\nvar globalState = new GlobalState();\nexports.globalState = globalState;\nif (globalOrWindow[tag]) {\n exports.globalState = globalState = globalOrWindow[tag];\n}\nelse {\n globalOrWindow[tag] = globalState;\n}\n//# sourceMappingURL=global-state.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar global_state_1 = require(\"../global-state\");\nvar native = Map.prototype;\nvar masterKey = Symbol(\"Map master key\");\nvar getters = [\"has\", \"get\"];\nvar iterators = [\"forEach\", \"keys\", \"values\", \"entries\", Symbol.iterator];\nvar all = [\"set\", \"delete\", \"clear\"].concat(getters, iterators);\nfunction shim(target, bindCurrentReaction, queueRunReactions, proxyValue) {\n target.$raw = {};\n var _loop_1 = function (method) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.$raw[method] = function () {\n native[method].apply(target, arguments);\n };\n };\n for (var _i = 0, all_1 = all; _i < all_1.length; _i++) {\n var method = all_1[_i];\n _loop_1(method);\n }\n var _loop_2 = function (getter) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target[getter] = function (key) {\n var value = native[getter].apply(this, arguments);\n global_state_1.globalState.event.emit(\"get\", { target: target, key: key, value: value });\n value = proxyValue(this, key, value);\n bindCurrentReaction(this, key);\n return value;\n };\n };\n for (var _a = 0, getters_1 = getters; _a < getters_1.length; _a++) {\n var getter = getters_1[_a];\n _loop_2(getter);\n }\n var _loop_3 = function (iterator) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target[iterator] = function () {\n bindCurrentReaction(this, masterKey);\n return native[iterator].apply(this, arguments);\n };\n };\n for (var _b = 0, iterators_1 = iterators; _b < iterators_1.length; _b++) {\n var iterator = iterators_1[_b];\n _loop_3(iterator);\n }\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.set = function (key, value) {\n var oldValue = this.get(key);\n var result = native.set.apply(this, arguments);\n global_state_1.globalState.event.emit(\"set\", { target: target, key: key, oldValue: oldValue, value: value });\n if (oldValue !== value) {\n queueRunReactions(this, key);\n queueRunReactions(this, masterKey);\n }\n return result;\n };\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.delete = function (key) {\n var has = this.has(key);\n var result = native.delete.apply(this, arguments);\n global_state_1.globalState.event.emit(\"deleteProperty\", { target: target, key: key });\n if (has) {\n queueRunReactions(this, key);\n queueRunReactions(this, masterKey);\n }\n return result;\n };\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.clear = function () {\n var size = this.size;\n var result = native.clear.apply(this, arguments);\n if (size) {\n queueRunReactions(this, masterKey);\n }\n return result;\n };\n Object.defineProperty(target, \"size\", {\n get: function get() {\n var proto = Object.getPrototypeOf(this);\n var size = Reflect.get(proto, \"size\", this);\n bindCurrentReaction(this, masterKey);\n return size;\n }\n });\n return target;\n}\nexports.default = shim;\n//# sourceMappingURL=map.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar global_state_1 = require(\"../global-state\");\nvar native = Set.prototype;\nvar masterValue = Symbol(\"Set master value\");\nvar getters = [\"has\"];\nvar iterators = [\"forEach\", \"keys\", \"values\", \"entries\", Symbol.iterator];\nvar all = [\"add\", \"delete\", \"clear\"].concat(getters, iterators);\nfunction shim(target, bindCurrentReaction, queueRunReactions, proxyValue) {\n target.$raw = {};\n var _loop_1 = function (method) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.$raw[method] = function () {\n native[method].apply(target, arguments);\n };\n };\n for (var _i = 0, all_1 = all; _i < all_1.length; _i++) {\n var method = all_1[_i];\n _loop_1(method);\n }\n var _loop_2 = function (getter) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target[getter] = function (value) {\n var result = native[getter].apply(this, arguments);\n global_state_1.globalState.event.emit(\"get\", { target: target, key: null, value: result });\n result = proxyValue(this, value, result);\n bindCurrentReaction(this, value);\n return result;\n };\n };\n for (var _a = 0, getters_1 = getters; _a < getters_1.length; _a++) {\n var getter = getters_1[_a];\n _loop_2(getter);\n }\n var _loop_3 = function (iterator) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target[iterator] = function () {\n bindCurrentReaction(this, masterValue);\n return native[iterator].apply(this, arguments);\n };\n };\n for (var _b = 0, iterators_1 = iterators; _b < iterators_1.length; _b++) {\n var iterator = iterators_1[_b];\n _loop_3(iterator);\n }\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.add = function (value) {\n var has = this.has(value);\n var result = native.add.apply(this, arguments);\n global_state_1.globalState.event.emit(\"set\", { target: target, key: null, value: value, oldValue: null });\n if (!has) {\n queueRunReactions(this, value);\n queueRunReactions(this, masterValue);\n }\n return result;\n };\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.delete = function (value) {\n var has = this.has(value);\n var result = native.delete.apply(this, arguments);\n global_state_1.globalState.event.emit(\"deleteProperty\", { target: target, key: null });\n if (has) {\n queueRunReactions(this, value);\n queueRunReactions(this, masterValue);\n }\n return result;\n };\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.clear = function () {\n var size = this.size;\n var result = native.clear.apply(this, arguments);\n if (size) {\n queueRunReactions(this, masterValue);\n }\n return result;\n };\n Object.defineProperty(target, \"size\", {\n get: function get() {\n var proto = Object.getPrototypeOf(this);\n var size = Reflect.get(proto, \"size\", this);\n bindCurrentReaction(this, masterValue);\n return size;\n }\n });\n return target;\n}\nexports.default = shim;\n//# sourceMappingURL=set.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar global_state_1 = require(\"../global-state\");\nvar native = WeakMap.prototype;\nvar getters = [\"has\", \"get\"];\nvar all = [\"set\", \"delete\"].concat(getters);\nfunction shim(target, bindCurrentReaction, queueRunReactions, proxyValue) {\n target.$raw = {};\n var _loop_1 = function (method) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.$raw[method] = function () {\n native[method].apply(target, arguments);\n };\n };\n for (var _i = 0, all_1 = all; _i < all_1.length; _i++) {\n var method = all_1[_i];\n _loop_1(method);\n }\n var _loop_2 = function (getter) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target[getter] = function (key) {\n var value = native[getter].apply(this, arguments);\n global_state_1.globalState.event.emit(\"get\", { target: target, key: null, value: value });\n value = proxyValue(this, key, value);\n bindCurrentReaction(this, key);\n return value;\n };\n };\n for (var _a = 0, getters_1 = getters; _a < getters_1.length; _a++) {\n var getter = getters_1[_a];\n _loop_2(getter);\n }\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.set = function (key, value) {\n var oldValue = this.get(key);\n var result = native.set.apply(this, arguments);\n global_state_1.globalState.event.emit(\"set\", { target: target, key: key, oldValue: oldValue, value: value });\n if (oldValue !== value) {\n queueRunReactions(this, key);\n }\n return result;\n };\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.delete = function (key) {\n var has = this.has(key);\n var result = native.delete.apply(this, arguments);\n global_state_1.globalState.event.emit(\"deleteProperty\", { target: target, key: key });\n if (has) {\n queueRunReactions(this, key);\n }\n return result;\n };\n return target;\n}\nexports.default = shim;\n//# sourceMappingURL=weak-map.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar global_state_1 = require(\"../global-state\");\nvar native = WeakSet.prototype;\nvar getters = [\"has\"];\nvar all = [\"add\", \"delete\"].concat(getters);\nfunction shim(target, bindCurrentReaction, queueRunReactions, proxyValue) {\n target.$raw = {};\n var _loop_1 = function (method) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.$raw[method] = function () {\n native[method].apply(target, arguments);\n };\n };\n for (var _i = 0, all_1 = all; _i < all_1.length; _i++) {\n var method = all_1[_i];\n _loop_1(method);\n }\n var _loop_2 = function (getter) {\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target[getter] = function (value) {\n var result = native[getter].apply(this, arguments);\n global_state_1.globalState.event.emit(\"get\", { target: target, key: null, value: result });\n result = proxyValue(this, value, result);\n bindCurrentReaction(this, value);\n return result;\n };\n };\n for (var _a = 0, getters_1 = getters; _a < getters_1.length; _a++) {\n var getter = getters_1[_a];\n _loop_2(getter);\n }\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.add = function (value) {\n var has = this.has(value);\n var result = native.add.apply(this, arguments);\n global_state_1.globalState.event.emit(\"set\", { target: target, key: null, value: value, oldValue: null });\n if (!has) {\n queueRunReactions(this, value);\n }\n return result;\n };\n // tslint:disable-next-line:space-before-function-paren only-arrow-functions\n target.delete = function (value) {\n var has = this.has(value);\n var result = native.delete.apply(this, arguments);\n global_state_1.globalState.event.emit(\"deleteProperty\", { target: target, key: null });\n if (has) {\n queueRunReactions(this, value);\n }\n return result;\n };\n return target;\n}\nexports.default = shim;\n//# sourceMappingURL=weak-set.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar map_1 = require(\"./map\");\nvar set_1 = require(\"./set\");\nvar weak_map_1 = require(\"./weak-map\");\nvar weak_set_1 = require(\"./weak-set\");\nexports.default = new Map([\n [Map, map_1.default],\n [Set, set_1.default],\n [WeakMap, weak_map_1.default],\n [WeakSet, weak_set_1.default],\n [Date, true],\n [RegExp, true]\n]);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar global_state_1 = require(\"./global-state\");\nfunction isPrimitive(value) {\n if (value === null || value === undefined) {\n return true;\n }\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || value instanceof Date) {\n return true;\n }\n return false;\n}\nexports.isPrimitive = isPrimitive;\n/**\n * Empty func.\n */\n// tslint:disable-next-line:no-empty\nexports.noop = function () { };\n/**\n * Wether dob is in batch.\n */\nfunction inAction() {\n return global_state_1.globalState.batchDeep !== 0;\n}\nexports.inAction = inAction;\n/**\n * Is it currently in reaction?\n */\nfunction inTrack() {\n return !!global_state_1.globalState.currentReaction;\n}\nexports.inTrack = inTrack;\n/**\n * Get binder through object and key.\n */\nfunction getBinder(object, key) {\n var keysForObject = global_state_1.globalState.objectReactionBindings.get(object);\n if (!keysForObject) {\n keysForObject = new Map();\n global_state_1.globalState.objectReactionBindings.set(object, keysForObject);\n }\n var reactionsForKey = keysForObject.get(key);\n if (!reactionsForKey) {\n reactionsForKey = new Set();\n keysForObject.set(key, reactionsForKey);\n }\n return {\n binder: keysForObject,\n keyBinder: reactionsForKey,\n };\n}\nexports.getBinder = getBinder;\nfunction startDebug() {\n global_state_1.globalState.useDebug = true;\n}\nexports.startDebug = startDebug;\nfunction stopDebug() {\n global_state_1.globalState.useDebug = false;\n}\nexports.stopDebug = stopDebug;\nfunction useStrict() {\n global_state_1.globalState.strictMode = true;\n}\nexports.useStrict = useStrict;\nfunction cancelStrict() {\n global_state_1.globalState.strictMode = false;\n}\nexports.cancelStrict = cancelStrict;\n/**\n * create unique id\n */\nfunction createUniqueId() {\n return global_state_1.globalState.uniqueIdCounter++;\n}\nexports.createUniqueId = createUniqueId;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar global_state_1 = require(\"./global-state\");\nvar utils_1 = require(\"./utils\");\nvar Reaction = (function () {\n function Reaction(name, callback, delay) {\n // Run reaction's delay.\n this.delay = null;\n // Binders for this reaction.\n // Binder include callback, and it's detail info, like delay.\n this.keyBinders = new Set();\n this.name = name;\n this.callback = callback;\n this.delay = delay || null;\n }\n /**\n * The variables accessed in track are bound to the current reaction, which triggers binder's callback when the variables are modified.\n * @TODO: Current only support synchronization, do not support asynchronous!\n */\n Reaction.prototype.track = function (callback) {\n if (!callback) {\n return;\n }\n // If it is already in track, add this directly to the pendingTrack queue, and return.\n // When the lastest runObserver is executed, current pendingTrack will executed.\n if (utils_1.inTrack()) {\n global_state_1.globalState.pendingTracks.add(this.track.bind(this, callback));\n return;\n }\n /**\n * Run callback.\n */\n global_state_1.globalState.currentReaction = this;\n // Clear bindings first.\n this.clearBinding();\n try {\n callback({\n debugId: global_state_1.globalState.currentDebugId\n });\n }\n finally {\n global_state_1.globalState.currentReaction = null;\n }\n /**\n * Execute the rest of the track.\n */\n var currentRunCount = 0;\n var MAX_RUN_COUNT = 1000;\n // Copy pendingTracksqueue to prevent dead loop.\n // When the copy is finished, empty the origin queue, so that the execution is added to the clean new queue.\n var pendingTacksCopy = Array.from(global_state_1.globalState.pendingTracks);\n global_state_1.globalState.pendingTracks.clear();\n pendingTacksCopy.forEach(function (eachTack) {\n currentRunCount++;\n if (currentRunCount >= MAX_RUN_COUNT) {\n // tslint:disable-next-line:no-console\n console.warn(\"The number of executions reaches the upper limit, there may be a dead cycle.\");\n global_state_1.globalState.pendingTracks.clear();\n return;\n }\n eachTack();\n });\n };\n /**\n * Destroy\n */\n Reaction.prototype.dispose = function () {\n this.clearBinding();\n this.callback = null;\n };\n /**\n * Run reaction's callback.\n */\n Reaction.prototype.run = function () {\n if (this.callback) {\n this.callback();\n }\n };\n /**\n * Add binder.\n */\n Reaction.prototype.addBinder = function (keyBinder) {\n this.keyBinders.add(keyBinder);\n };\n /**\n * Clear bindings.\n */\n Reaction.prototype.clearBinding = function () {\n var _this = this;\n // Clear all binder which reference this.\n this.keyBinders.forEach(function (keyBinder) {\n keyBinder.delete(_this);\n });\n // Clear self keyBinders.\n this.keyBinders.clear();\n };\n return Reaction;\n}());\nexports.Reaction = Reaction;\n//# sourceMappingURL=reaction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar built_ins_1 = require(\"./built-ins\");\nvar global_state_1 = require(\"./global-state\");\nvar reaction_1 = require(\"./reaction\");\nvar utils_1 = require(\"./utils\");\nvar MAX_RUN_COUNT = 1000;\n/**\n * Create observable wrapper.\n */\nfunction createObservableObject(obj) {\n if (obj === void 0) { obj = {}; }\n if (utils_1.isPrimitive(obj)) {\n throw TypeError(\"dob not support \" + obj + \", because it is a basic type.\");\n }\n if (global_state_1.globalState.proxies.has(obj)) {\n return global_state_1.globalState.proxies.get(obj);\n }\n // Proxy inert packaging.\n return toObservable(obj);\n}\n/**\n * Create observable decorator.\n */\nfunction createObservableObjectDecorator(target) {\n function wrap() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return createObservableObject(new (target.bind.apply(target, [void 0].concat(args)))());\n }\n return wrap;\n}\n/**\n * Create observable object from origin object.\n */\nfunction toObservable(obj) {\n if (Object.getOwnPropertySymbols(obj).indexOf(global_state_1.globalState.ignoreDynamicSymbol) > -1) {\n // Ignore observable\n return obj;\n }\n var dynamicObject;\n var builtIn = built_ins_1.default.get(obj.constructor);\n if (typeof builtIn === \"function\" || typeof builtIn === \"object\") {\n // support: map weakMap set weakSet.\n dynamicObject = builtIn(obj, bindCurrentReaction, queueRunReactions, getProxyValue);\n }\n else if (!builtIn) {\n dynamicObject = new Proxy(obj, {\n get: function (target, key, receiver) {\n var value = Reflect.get(target, key, receiver);\n // Get origin object.\n if (key === \"$raw\") {\n return target;\n }\n // Getter event.\n global_state_1.globalState.event.emit(\"get\", { target: target, key: key, value: value });\n bindCurrentReaction(target, key);\n value = getProxyValue(target, key, value);\n return value;\n },\n set: function (target, key, value, receiver) {\n var oldValue = Reflect.get(target, key, receiver);\n // If the new value is an object, the original object is preferentially taken.\n if (typeof value === \"object\" && value) {\n value = value.$raw || value;\n }\n global_state_1.globalState.event.emit(\"set\", { target: target, key: key, value: value, oldValue: oldValue });\n var result = Reflect.set(target, key, value, receiver);\n // If the length of attribute changed, or the new value is different from the old value, trigger observer queue task.\n // This step should be done after `Reflect.set` to ensure that the trigger is using a new value.\n if (key === \"length\" || value !== oldValue) {\n queueRunReactions(target, key);\n }\n return result;\n },\n deleteProperty: function (target, key) {\n var hasKey = Reflect.has(target, key);\n global_state_1.globalState.event.emit(\"deleteProperty\", { target: target, key: key });\n var result = Reflect.deleteProperty(target, key);\n if (hasKey) {\n queueRunReactions(target, key);\n }\n return result;\n }\n });\n }\n else {\n dynamicObject = obj;\n }\n global_state_1.globalState.proxies.set(obj, dynamicObject);\n global_state_1.globalState.proxies.set(dynamicObject, dynamicObject);\n global_state_1.globalState.originObjects.set(dynamicObject, obj);\n global_state_1.globalState.objectReactionBindings.set(obj, new Map());\n return dynamicObject;\n}\n/**\n * Ensure proxy value\n */\nfunction getProxyValue(target, key, value) {\n // If the value is a HTMLElement object, it returns directly to the original object, because the original object cannot be encapsulated.\n if (typeof window !== \"undefined\" && value instanceof HTMLElement) {\n return value;\n }\n // If the value is an object, the proxy object is taken priority.\n var resultIsObject = typeof value === \"object\" && value;\n var existProxy = resultIsObject && global_state_1.globalState.proxies.get(value);\n if (resultIsObject) {\n return existProxy || toObservable(value);\n }\n return value;\n}\n/**\n * Run reactions for object's propertyKey.\n * If has running queue, reactions will be merged in it.\n */\nfunction queueRunReactions(target, key) {\n // If in strict mode, and not in the batch, throw error.\n if (global_state_1.globalState.strictMode && global_state_1.globalState.batchDeep === 0) {\n throw Error(\"You are not allowed to modify observable value out of Action.\");\n }\n var keyBinder = utils_1.getBinder(target, key).keyBinder;\n Array.from(keyBinder).forEach(function (reaction) {\n if (utils_1.inAction()) {\n global_state_1.globalState.pendingReactions.add(reaction);\n }\n else {\n // Not in Action, added to the queue if the queue already has a value, or directly execute if the queue has no value.\n if (global_state_1.globalState.pendingReactions.size === 0) {\n runReaction(reaction);\n }\n else {\n global_state_1.globalState.pendingReactions.add(reaction);\n runPendingReactions();\n }\n }\n });\n}\nfunction runReaction(reaction) {\n reaction.run();\n}\nexports.runReaction = runReaction;\n/**\n * Execute pending reaction queue.\n * If in action, continue adding to actionQueuedObservers.\n * If not in the action, add a direct implementation.\n */\nfunction runPendingReactions() {\n // The number of queue executions.\n var currentRunCount = 0;\n global_state_1.globalState.pendingReactions.forEach(function (observer) {\n currentRunCount++;\n if (currentRunCount >= MAX_RUN_COUNT) {\n global_state_1.globalState.pendingReactions.clear();\n return;\n }\n runReaction(observer);\n });\n // Clear pending reactions.\n global_state_1.globalState.pendingReactions.clear();\n}\n/**\n * Bind the current reaction\n */\nfunction bindCurrentReaction(object, key) {\n // Add listener to this key, which not be tracked in the runInAction\n // InBatch as long as non zero, that runInAction is over\n if (!global_state_1.globalState.currentReaction || utils_1.inAction()) {\n return;\n }\n var keyBinder = utils_1.getBinder(object, key).keyBinder;\n // If this key is not bound with the current reaction, bind it.\n if (!keyBinder.has(global_state_1.globalState.currentReaction)) {\n keyBinder.add(global_state_1.globalState.currentReaction);\n global_state_1.globalState.currentReaction.addBinder(keyBinder);\n }\n}\nfunction isObservable(obj) {\n return (global_state_1.globalState.proxies.get(obj) === obj);\n}\nexports.isObservable = isObservable;\n/**\n * Self run reactions\n */\nfunction observe(callback, delay) {\n var reaction = new reaction_1.Reaction(\"observe\", function () {\n reaction.track(callback);\n }, delay);\n // Run in initialization\n if (utils_1.inAction()) {\n // If in the action, directly added to the queue, such as the implementation of the action will automatically execute this queue.\n global_state_1.globalState.pendingReactions.add(reaction);\n }\n else {\n reaction.run();\n }\n return {\n unobserve: function () {\n reaction.dispose();\n }\n };\n}\nexports.observe = observe;\n/**\n * Enter next batch.\n */\nfunction startBatch() {\n if (global_state_1.globalState.batchDeep === 0) {\n // If starting a new queue from deep 0, clear the original queue.\n global_state_1.globalState.pendingReactions = new Set();\n }\n global_state_1.globalState.batchDeep++;\n global_state_1.globalState.event.emit(\"startBatch\", null);\n}\nexports.startBatch = startBatch;\n/**\n * Exit the current batch.\n */\nfunction endBatch() {\n if (--global_state_1.globalState.batchDeep === 0) {\n runPendingReactions();\n }\n global_state_1.globalState.event.emit(\"endBatch\", null);\n}\nexports.endBatch = endBatch;\nfunction Action(arg1, arg2, arg3) {\n if (arg2 === undefined) {\n return runInAction.call(null, arg1, arg1.name);\n }\n return actionDecorator.call(null, arg1, arg1.constructor.name + \".\" + arg2, arg3);\n}\nexports.Action = Action;\nfunction actionDecorator(target, propertyKey, descriptor) {\n var func = descriptor.value;\n return {\n get: function () {\n var _this = this;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return runInAction(func.bind.apply(func, [_this].concat(args)), propertyKey);\n };\n }\n };\n}\nfunction runInAction(fn, debugName) {\n global_state_1.globalState.event.emit(\"runInAction\", debugName);\n startBatch();\n try {\n return fn();\n }\n finally {\n endBatch();\n }\n}\n// ==============================================\n// Action [end]\n// ==============================================\nfunction observable(target) {\n if (target === void 0) { target = {}; }\n if (typeof target === \"function\") {\n return createObservableObjectDecorator(target);\n }\n else {\n return createObservableObject(target);\n }\n}\nexports.observable = observable;\n/**\n * The object will not listen, when use this decorator.\n */\nfunction Static(obj) {\n Object.defineProperty(obj, global_state_1.globalState.ignoreDynamicSymbol, {\n value: true\n });\n return obj;\n}\nexports.Static = Static;\n//# sourceMappingURL=observer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar global_state_1 = require(\"./global-state\");\nvar observer_1 = require(\"./observer\");\nvar utils_1 = require(\"./utils\");\nvar Atom = (function () {\n function Atom(onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) { onBecomeObservedHandler = utils_1.noop; }\n if (onBecomeUnobservedHandler === void 0) { onBecomeUnobservedHandler = utils_1.noop; }\n /**\n * All reactions with this atom.\n */\n this.reactions = new Set();\n this.isBeingTracked = false;\n this.onBecomeObservedHandler = onBecomeObservedHandler;\n this.onBecomeUnobservedHandler = onBecomeUnobservedHandler;\n }\n /**\n * Report observe, will trigger onBecomeObservedHandler in the first time.\n */\n Atom.prototype.reportObserved = function () {\n observer_1.startBatch();\n if (global_state_1.globalState.currentReaction) {\n // Binding current reaction\n this.reactions.add(global_state_1.globalState.currentReaction);\n }\n if (!this.isBeingTracked) {\n this.isBeingTracked = true;\n this.onBecomeObservedHandler();\n }\n observer_1.endBatch();\n };\n /**\n * report changed, so will trigger all reactions.\n */\n Atom.prototype.reportChanged = function () {\n this.reactions.forEach(function (reaction) {\n observer_1.runReaction(reaction);\n });\n };\n Atom.prototype.unobserve = function () {\n this.isBeingTracked = false;\n this.reactions.clear();\n this.onBecomeUnobservedHandler();\n };\n return Atom;\n}());\nexports.Atom = Atom;\n//# sourceMappingURL=atom.js.map","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar global_state_1 = require(\"./global-state\");\nvar utils_1 = require(\"./utils\");\n// tslint:disable-next-line:no-var-requires\nvar cloneDeep = require(\"lodash.clonedeep\");\nfunction reportChange(change) {\n if (global_state_1.globalState.currentDebugOutputAction) {\n global_state_1.globalState.currentDebugOutputAction.changeList.push(change);\n }\n else {\n global_state_1.globalState.event.emit(\"debug\", {\n id: utils_1.createUniqueId(),\n name: null,\n changeList: [change],\n type: \"isolated\"\n });\n }\n}\nfunction getCallStack(target) {\n var callStack = [];\n if (!global_state_1.globalState.parentInfo.has(target)) {\n callStack.unshift(target.constructor.name);\n }\n else {\n var currentTarget = target;\n var runCount = 0;\n while (global_state_1.globalState.parentInfo.has(currentTarget)) {\n var parentInfo = global_state_1.globalState.parentInfo.get(currentTarget);\n // add key to call stack\n callStack.unshift(parentInfo.key);\n // If has no parent's parent, add parent's name to call stack.\n if (!global_state_1.globalState.parentInfo.has(parentInfo.parent)) {\n callStack.unshift(parentInfo.parent.constructor.name);\n }\n currentTarget = parentInfo.parent;\n runCount++;\n if (runCount >= global_state_1.globalState.getCallstackMaxCount) {\n break;\n }\n }\n }\n return callStack;\n}\n/**\n * Store parentInfo when get triggered.\n */\nglobal_state_1.globalState.event.on(\"get\", function (info) {\n if (!global_state_1.globalState.useDebug) {\n return;\n }\n if (info.value !== null && typeof info.value === \"object\") {\n global_state_1.globalState.parentInfo.set(info.value, {\n parent: info.target,\n key: info.key\n });\n }\n});\n/**\n * Snapshot current Action's debugName, when runInAction triggered.\n */\nglobal_state_1.globalState.event.on(\"runInAction\", function (debugName) {\n if (!global_state_1.globalState.useDebug) {\n return;\n }\n global_state_1.globalState.currentDebugName = debugName || null;\n});\n/**\n * debug 入栈 action\n */\nglobal_state_1.globalState.event.on(\"startBatch\", function () {\n if (!global_state_1.globalState.useDebug) {\n return;\n }\n var debugOutputBundleAction = {\n name: global_state_1.globalState.currentDebugName,\n changeList: [],\n type: \"action\"\n };\n global_state_1.globalState.debugOutputActionMapBatchDeep.set(global_state_1.globalState.batchDeep, debugOutputBundleAction);\n global_state_1.globalState.currentDebugOutputAction = debugOutputBundleAction;\n // 如果深度等于 1,生成唯一 id 给这个 action\n if (global_state_1.globalState.batchDeep === 1) {\n debugOutputBundleAction.id = utils_1.createUniqueId();\n global_state_1.globalState.currentDebugId = debugOutputBundleAction.id;\n }\n // 如果当前深度大于 1,就作为加到父级的 changeList\n if (global_state_1.globalState.batchDeep > 1) {\n global_state_1.globalState.debugOutputActionMapBatchDeep.get(global_state_1.globalState.batchDeep - 1).changeList.push({\n type: \"action\",\n action: debugOutputBundleAction\n });\n }\n});\n/**\n * debug 出栈 action\n */\nglobal_state_1.globalState.event.on(\"endBatch\", function () {\n if (!global_state_1.globalState.useDebug) {\n return;\n }\n // 每次出栈,都要更新 currentDebugOutputAction\n global_state_1.globalState.currentDebugOutputAction = global_state_1.globalState.debugOutputActionMapBatchDeep.get(global_state_1.globalState.batchDeep) || null;\n if (!utils_1.inAction()) {\n var cloneDebugInfo = null;\n try {\n cloneDebugInfo = JSON.parse(JSON.stringify(global_state_1.globalState.debugOutputActionMapBatchDeep.get(1)));\n }\n catch (error) {\n return;\n }\n // 如果完全出队列了,把存储的 debug 信息输出给 debug 事件,并清空 debug 信息\n global_state_1.globalState.event.emit(\"debug\", cloneDebugInfo);\n global_state_1.globalState.currentDebugOutputAction = null;\n global_state_1.globalState.debugOutputActionMapBatchDeep.clear();\n // 此时不能清空 globalState.currentDebugId = null,因为后续要传给 callback\n // action 与 debug 调用顺序:startBatch -> debugInAction -> ...multiple nested startBatch and endBatch -> debugOutAction -> reaction -> observe\n }\n});\n/**\n * 打印 diff 路径\n */\nglobal_state_1.globalState.event.on(\"set\", function (info) {\n if (!global_state_1.globalState.useDebug) {\n return;\n }\n var callStack = getCallStack(info.target);\n reportChange({\n type: \"change\",\n callStack: callStack,\n oldValue: cloneDeep(info.oldValue),\n key: info.key,\n value: cloneDeep(info.value)\n });\n});\n/**\n * 打印删除路径\n */\nglobal_state_1.globalState.event.on(\"deleteProperty\", function (info) {\n if (!global_state_1.globalState.useDebug) {\n return;\n }\n var callStack = getCallStack(info.target);\n reportChange({\n type: \"delete\",\n callStack: callStack,\n key: info.key,\n });\n});\n//# sourceMappingURL=debug.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dependency_inject_1 = require(\"dependency-inject\");\nexports.inject = dependency_inject_1.inject;\nexports.combineStores = dependency_inject_1.injectFactory;\nvar atom_1 = require(\"./atom\");\nexports.Atom = atom_1.Atom;\nrequire(\"./debug\");\nvar event_1 = require(\"./event\");\nexports.Event = event_1.Event;\nvar global_state_1 = require(\"./global-state\");\nexports.globalState = global_state_1.globalState;\nvar observer_1 = require(\"./observer\");\nexports.Action = observer_1.Action;\nexports.isObservable = observer_1.isObservable;\nexports.observable = observer_1.observable;\nexports.observe = observer_1.observe;\nexports.Static = observer_1.Static;\nvar reaction_1 = require(\"./reaction\");\nexports.Reaction = reaction_1.Reaction;\nvar utils_1 = require(\"./utils\");\nexports.cancelStrict = utils_1.cancelStrict;\nexports.startDebug = utils_1.startDebug;\nexports.stopDebug = utils_1.stopDebug;\nexports.useStrict = utils_1.useStrict;\nvar dobEvent = global_state_1.globalState.event;\nexports.dobEvent = dobEvent;\n//# sourceMappingURL=index.js.map","import { observable } from 'dob'\r\n\r\nconst state = observable({\r\n mock: {\r\n lastExecutedUrl: '',\r\n url: '',\r\n pattern: {},\r\n mdAction: {}\r\n },\r\n help: {\r\n isOpen: false\r\n }\r\n})\r\n\r\nexport default state\r\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, index) => {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, options),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, options),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, options),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, options)\n\t\t\t\t].join('');\n\t\t\t};\n\t\tcase 'bracket':\n\t\t\treturn (key, value) => {\n\t\t\t\treturn value === null ? [encode(key, options), '[]'].join('') : [\n\t\t\t\t\tencode(key, options),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, options)\n\t\t\t\t].join('');\n\t\t\t};\n\t\tdefault:\n\t\t\treturn (key, value) => {\n\t\t\t\treturn value === null ? encode(key, options) : [\n\t\t\t\t\tencode(key, options),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, options)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction extract(input) {\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parse(input, options) {\n\toptions = Object.assign({decode: true, arrayFormat: 'none'}, options);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof input !== 'string') {\n\t\treturn ret;\n\t}\n\n\tinput = input.trim().replace(/^[?#&]/, '');\n\n\tif (!input) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of input.split('&')) {\n\t\tlet [key, value] = param.replace(/\\+/g, ' ').split('=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : decode(value, options);\n\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\treturn Object.keys(ret).sort().reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (obj, options) => {\n\tconst defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\toptions = Object.assign(defaults, options);\n\n\tif (options.sort === false) {\n\t\toptions.sort = () => {};\n\t}\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\treturn obj ? Object.keys(obj).sort(options.sort).map(key => {\n\t\tconst value = obj[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tconst result = [];\n\n\t\t\tfor (const value2 of value.slice()) {\n\t\t\t\tif (value2 === undefined) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, value2, result.length));\n\t\t\t}\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&') : '';\n};\n\nexports.parseUrl = (input, options) => {\n\treturn {\n\t\turl: input.split('?')[0] || '',\n\t\tquery: parse(extract(input), options)\n\t};\n};\n","export default {\r\n PATTERN: ['url', 'description', 'switch', 'func', 'funcs'],\r\n MOCK: ['action']\r\n}\r\n","import queryString from 'query-string'\r\nimport ReservedKey from '../const/reserved-key'\r\n\r\nconst { PATTERN } = ReservedKey\r\n\r\nexport const isReservedKey = key =>\r\n PATTERN.some(reservedKey => reservedKey === key)\r\n\r\nexport const isActionKey = key => !isReservedKey(key)\r\n\r\nexport const getActionKeys = pattern => Object.keys(pattern).filter(isActionKey)\r\n\r\nexport const isFunc = actionValue =>\r\n Array.isArray(actionValue) && !Array.isArray(actionValue[0])\r\n\r\nexport const isFuncs = actionValue =>\r\n Array.isArray(actionValue) && isFunc(actionValue[0])\r\n\r\nexport const getPatternInfo = pattern => {\r\n if (isFuncs(pattern)) {\r\n return {\r\n funcs: pattern\r\n }\r\n } else if (isFunc(pattern)) {\r\n return {\r\n func: pattern\r\n }\r\n }\r\n return pattern\r\n}\r\n\r\nexport const getInitialPath = () => {\r\n const mockTimesElm = document.querySelector('[data-am-mocktimes-path]')\r\n if (mockTimesElm) {\r\n return mockTimesElm.dataset.amMocktimesPath || mockTimesElm.href\r\n }\r\n}\r\n\r\nexport const getMockUrl = (url, mockTimesActions) => {\r\n const parsed = queryString.parseUrl(url)\r\n parsed.query.__amMocktimes__ = encodeURIComponent(\r\n JSON.stringify(mockTimesActions)\r\n )\r\n return `${parsed.url}?${queryString.stringify(parsed.query)}`\r\n}\r\n\r\nexport const getSwitchAction = switchItem => {\r\n if (!switchItem) return\r\n\r\n return getActionKeys(switchItem)\r\n .filter(isActionKey)\r\n .map(name => {\r\n const { func, funcs, url, description } = getPatternInfo(switchItem[name])\r\n\r\n return {\r\n name,\r\n func,\r\n funcs,\r\n url,\r\n description\r\n }\r\n })\r\n}\r\n\r\nexport const getRoutePath = mockUrl => {\r\n return encodeURIComponent(JSON.stringify({ mockUrl }))\r\n}\r\n\r\nexport const getActions = () => {\r\n const { __amMocktimes__ } = queryString.parse(location.search)\r\n if (!__amMocktimes__) return []\r\n return JSON.parse(decodeURIComponent(__amMocktimes__))\r\n}\r\n","import { Action } from 'dob'\r\nimport state from '../state'\r\nimport {\r\n getInitialPath,\r\n getActionKeys,\r\n getPatternInfo,\r\n getSwitchAction,\r\n getMockUrl\r\n} from '../utils/pattern'\r\n\r\nconst { mock } = state\r\n\r\nexport const getParentMdAction = mdAction => {\r\n let parentAction\r\n handleMdActionRecursively(state.mock.mdAction, currentMdAction => {\r\n currentMdAction.mdActions.forEach(currentChildMdAction => {\r\n if (mdAction === currentChildMdAction) parentAction = currentMdAction\r\n })\r\n })\r\n\r\n return parentAction\r\n}\r\n\r\nexport const setCurrentUrl = url => {\r\n mock.currentUrl = url\r\n if (url) mock.lastExecutedUrl = url\r\n}\r\n\r\nexport const handleMdActionRecursively = (mdAction, handler) => {\r\n handler(mdAction)\r\n mdAction.mdActions.forEach(mdAction => {\r\n handleMdActionRecursively(mdAction, handler)\r\n })\r\n}\r\n\r\nexport const openAll = () =>\r\n Action(() => {\r\n handleMdActionRecursively(state.mock.mdAction, mdAction => {\r\n mdAction.isOpen = true\r\n })\r\n })\r\n\r\nexport const closeAll = () =>\r\n Action(() => {\r\n handleMdActionRecursively(state.mock.mdAction, mdAction => {\r\n if (mdAction.level !== 0) mdAction.isOpen = false\r\n })\r\n })\r\n\r\nexport const closeByLevel = level =>\r\n Action(() => {\r\n handleMdActionRecursively(state.mock.mdAction, mdAction => {\r\n if (mdAction.level === level) mdAction.isOpen = false\r\n else mdAction.isOpen = true\r\n })\r\n })\r\n\r\nexport const setMockUrl = mdAction => {\r\n mdAction.mockUrl = getMockUrl(mdAction.url, mdAction.mockTimesActions)\r\n}\r\n\r\nexport const addMocktimesFuncs = (mockTimesActions, { func, funcs }) => {\r\n func && mockTimesActions.push(func)\r\n funcs && funcs.forEach(func => mockTimesActions.push(func))\r\n}\r\n\r\nexport const setMocktimesAction = (mdAction, parentMocktimesActions) => {\r\n const { selectedSwitchName, switchs } = mdAction\r\n\r\n const currentMocktimesActions = []\r\n addMocktimesFuncs(currentMocktimesActions, mdAction)\r\n\r\n if (selectedSwitchName) {\r\n const selectedMocktimesAction = getPatternInfo(\r\n switchs.find(switchItem => switchItem.name === selectedSwitchName)\r\n )\r\n addMocktimesFuncs(currentMocktimesActions, selectedMocktimesAction)\r\n }\r\n\r\n mdAction.mockTimesActions = parentMocktimesActions\r\n ? parentMocktimesActions.concat(currentMocktimesActions)\r\n : currentMocktimesActions\r\n}\r\n\r\nexport const setSwitchNameRecursively = (\r\n currentMdAction,\r\n parentMocktimesActions\r\n) => {\r\n setMocktimesAction(currentMdAction, parentMocktimesActions)\r\n setMockUrl(currentMdAction)\r\n\r\n currentMdAction.mdActions.forEach(childMdAction => {\r\n setSwitchNameRecursively(childMdAction, currentMdAction.mockTimesActions)\r\n })\r\n}\r\n\r\nexport const setSelectedSwitchName = (mdAction, selectedSwitchName) =>\r\n Action(() => {\r\n mdAction.selectedSwitchName = selectedSwitchName\r\n const parentMdAction = getParentMdAction(mdAction)\r\n\r\n setSwitchNameRecursively(mdAction, parentMdAction.mockTimesActions)\r\n })\r\n\r\nexport const openActionBox = mdAction => {\r\n mdAction.isOpen = true\r\n}\r\n\r\nexport const closeActionBox = mdAction => {\r\n mdAction.isOpen = false\r\n}\r\n\r\nexport const toggleActionBox = mdAction => {\r\n mdAction.isOpen = !mdAction.isOpen\r\n}\r\n\r\nexport const setRecursivelyMdAction = ({\r\n name,\r\n url,\r\n mdAction,\r\n pattern,\r\n selectedSwitchName,\r\n mockTimesActions = [],\r\n level = 0\r\n}) => {\r\n const { description, func, funcs } = getPatternInfo(pattern)\r\n\r\n const levelName = `level-${level}`\r\n\r\n Object.assign(mdAction, {\r\n url,\r\n description,\r\n func,\r\n funcs,\r\n switchs: getSwitchAction(pattern.switch),\r\n isOpen: level === 0,\r\n level,\r\n levelName,\r\n name,\r\n mdActions: []\r\n })\r\n\r\n // set selected switch name\r\n if (selectedSwitchName) {\r\n mdAction.selectedSwitchName = selectedSwitchName\r\n } else if (pattern.switch) {\r\n mdAction.selectedSwitchName = Object.keys(pattern.switch)[0]\r\n } else {\r\n mdAction.selectedSwitchName = null\r\n }\r\n\r\n // set mdActions\r\n setMocktimesAction(mdAction, mockTimesActions)\r\n setMockUrl(mdAction)\r\n\r\n if (typeof pattern !== 'object' || Array.isArray(pattern)) return\r\n\r\n getActionKeys(pattern).forEach(mdActionKey => {\r\n const currentPattern = pattern[mdActionKey]\r\n mdAction.mdActions.push({})\r\n const currentAction = mdAction.mdActions[mdAction.mdActions.length - 1]\r\n\r\n setRecursivelyMdAction({\r\n name: mdActionKey,\r\n url: currentPattern.url || url,\r\n mdAction: currentAction,\r\n level: level + 1,\r\n mockTimesActions: mdAction.mockTimesActions,\r\n pattern: currentPattern\r\n })\r\n })\r\n}\r\n\r\nexport const setPattern = pattern =>\r\n Action(() => {\r\n state.mock.pattern = {}\r\n Object.assign(state.mock.pattern, pattern)\r\n setRecursivelyMdAction({\r\n name: '',\r\n url: pattern.url || getInitialPath(),\r\n mdAction: state.mock.mdAction,\r\n level: 0,\r\n pattern\r\n })\r\n })\r\n\r\nexport const openHelp = () => {\r\n state.help.isOpen = true\r\n}\r\n\r\nexport const closeHelp = () => {\r\n state.help.isOpen = false\r\n}\r\n","import riot from 'riot'\n\nimport {\n openHelp\n } from '../../actions'\nriot.tag2('parts-header', '<svg class=\"logo\"> <text x=\"0\" y=\"16\" font-size=\"18\" fill=\"white\">AM: MockTimes 🔧</text> </svg> <svg fill=\"white\" class=\"question\" onclick=\"{openHelp}\" viewbox=\"0 0 1024 1024\"> <path d=\"M512 0Q373 0 255 68.5T68.5 255 0 512t68.5 257T255 955.5t257 68.5 257-68.5T955.5 769t68.5-257-68.5-257T769 68.5 512 0zm30 802q0 13-9 22.5t-23 9.5q-13 0-22.5-9.5T478 802t9.5-22.5T510 770q14 0 23 9.5t9 22.5zm66-220q-36 19-51 35t-15 46v11q0 13-9 22.5t-23 9.5q-13 0-22.5-9.5T478 674v-11q0-48 24.5-79.5T578 525q35-18 55.5-52.5T654 398q0-60-42-102t-102-42q-62 0-103 37-30 28-38 68-2 11-11 18.5t-20 7.5q-16 0-25.5-11.5T306 347q12-62 59-104 59-53 145-53 87 0 147.5 61T718 398q0 58-29.5 107.5T608 582z\"></path> </svg>', 'parts-header,[data-is=\"parts-header\"]{width:100%;height:30px;background:#333;display:flex;align-items:center;justify-content:space-between} parts-header >svg,[data-is=\"parts-header\"] >svg{height:20px;padding:4px} parts-header >svg.logo>text,[data-is=\"parts-header\"] >svg.logo>text{font-family:\"Playfair Display\",\"Georgia\",serif} parts-header >svg.question,[data-is=\"parts-header\"] >svg.question{margin-right:6px;cursor:pointer}', '', function(opts) {\n\n Object.assign(this, {\n openHelp\n })\n});\n","import riot from 'riot'\n\nriot.tag2('parts-overlay', '', 'parts-overlay,[data-is=\"parts-overlay\"]{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4)}', '', function(opts) {\n});\n","import riot from 'riot'\n\nriot.tag2('parts-icons-octocat', '<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewbox=\"0, 0, 400, 400\"> <g> <path id=\"path0\" d=\"M290.219 166.125 L 288.750 167.750 290.375 166.281 C 291.269 165.474,292.000 164.743,292.000 164.656 C 292.000 164.270,291.587 164.610,290.219 166.125 M167.748 188.415 C 167.839 188.506,167.027 189.382,165.943 190.361 C 164.858 191.341,163.265 193.034,162.402 194.124 L 160.832 196.106 162.816 195.094 C 171.319 190.756,213.598 189.951,225.011 193.910 C 233.341 196.800,239.546 202.505,242.783 210.252 C 244.024 213.221,244.175 211.910,243.087 207.609 C 241.338 200.692,236.872 193.309,232.350 189.860 L 230.589 188.517 199.086 188.383 C 181.759 188.310,167.657 188.324,167.748 188.415 M154.760 209.483 C 153.607 211.350,153.136 230.398,154.250 230.129 C 154.549 230.057,154.866 226.130,155.039 220.346 C 155.198 215.031,155.483 210.432,155.672 210.126 C 155.861 209.820,155.803 209.437,155.543 209.276 C 155.282 209.115,154.930 209.209,154.760 209.483 \" stroke=\"none\" fill=\"#000000\" fill-rule=\"evenodd\"></path> <path id=\"path1\" d=\"M150.750 106.451 C 137.881 109.757,131.758 130.609,139.210 145.750 C 148.977 165.595,170.485 155.623,170.485 131.250 C 170.485 115.891,160.898 103.843,150.750 106.451 M243.396 106.695 C 230.566 110.180,224.861 133.241,233.335 147.367 C 245.629 167.860,268.528 150.030,263.209 124.104 C 260.724 111.988,252.031 104.350,243.396 106.695 M159.000 115.779 C 166.599 119.645,168.993 134.346,163.444 143.068 C 156.448 154.063,143.493 146.932,143.335 132.000 C 143.207 119.965,151.121 111.771,159.000 115.779 M249.585 116.283 C 258.187 121.805,258.931 138.524,250.896 145.748 C 240.013 155.534,228.053 136.801,235.512 121.651 C 238.642 115.292,244.537 113.043,249.585 116.283 M147.827 121.914 C 145.899 124.046,147.317 127.000,150.268 127.000 C 152.116 127.000,153.000 125.984,153.000 123.860 C 153.000 121.347,149.525 120.039,147.827 121.914 M238.986 122.526 C 237.552 125.206,240.224 127.951,242.692 126.334 C 244.110 125.405,244.482 123.182,243.400 122.100 C 242.393 121.093,239.610 121.361,238.986 122.526 \" stroke=\"none\" fill=\"#fefefe\" fill-rule=\"evenodd\"></path> <path id=\"path2\" d=\"M104.564 11.375 C 100.352 24.162,99.792 38.639,103.075 49.845 L 104.128 53.441 101.873 56.095 C 86.100 74.667,81.487 105.670,90.169 134.750 L 91.364 138.750 73.557 139.062 C 50.530 139.466,35.347 140.707,19.500 143.483 C 16.337 144.036,13.469 144.492,13.125 144.495 C 12.781 144.498,12.500 144.979,12.500 145.565 C 12.500 146.521,12.693 146.597,14.375 146.304 C 36.496 142.443,53.715 141.004,77.750 141.006 L 92.250 141.008 93.595 144.254 L 94.939 147.500 93.586 147.500 C 71.185 147.500,13.000 156.644,13.000 160.165 C 13.000 160.895,13.262 161.057,14.125 160.859 C 14.744 160.717,19.075 159.686,23.750 158.568 C 43.234 153.907,66.620 150.703,88.540 149.692 L 95.830 149.356 97.012 151.303 C 109.060 171.150,129.917 182.750,162.000 187.446 C 168.265 188.362,171.140 188.425,202.000 188.319 L 235.250 188.205 242.500 186.862 C 273.796 181.064,292.692 169.625,300.706 151.625 L 301.652 149.500 305.286 149.500 C 323.478 149.500,355.726 153.766,377.329 159.031 C 386.755 161.328,386.000 161.235,386.000 160.107 C 386.000 159.370,384.666 158.886,378.375 157.345 C 357.601 152.254,333.159 148.824,309.673 147.702 L 302.597 147.365 303.746 144.307 L 304.895 141.250 319.072 141.096 C 343.082 140.835,361.816 142.323,384.625 146.304 C 386.264 146.590,386.500 146.508,386.500 145.652 C 386.500 142.659,345.438 138.715,318.087 139.081 L 305.424 139.250 305.693 138.000 C 305.841 137.313,306.303 135.175,306.720 133.250 C 313.666 101.172,307.706 70.120,291.320 53.022 L 288.926 50.524 289.838 46.637 C 292.030 37.293,290.954 21.845,287.365 11.125 L 285.816 6.500 281.637 6.500 C 271.630 6.500,258.536 11.362,243.575 20.632 L 238.401 23.839 234.575 22.926 C 214.265 18.078,187.184 17.950,164.750 22.596 C 160.625 23.450,156.678 24.247,155.979 24.366 C 155.039 24.527,153.093 23.577,148.479 20.707 C 133.511 11.393,120.380 6.500,110.356 6.500 L 106.170 6.500 104.564 11.375 M245.968 91.515 C 273.288 93.933,287.624 116.892,280.240 146.404 C 275.160 166.709,260.447 176.575,230.750 179.588 C 220.498 180.629,180.948 180.467,171.063 179.344 C 133.944 175.127,117.220 161.628,115.066 134.149 C 113.993 120.467,118.045 110.120,128.194 100.627 C 137.529 91.894,147.772 90.163,177.750 92.253 C 191.250 93.194,205.562 93.193,219.591 92.250 C 225.729 91.838,232.213 91.431,234.000 91.346 C 235.787 91.262,237.925 91.151,238.750 91.101 C 239.575 91.050,242.823 91.236,245.968 91.515 M79.000 181.376 C 74.913 183.418,76.611 186.207,84.704 190.742 C 91.875 194.761,95.124 198.450,101.885 210.250 C 111.906 227.739,128.829 235.033,150.250 231.097 L 153.750 230.454 153.599 223.784 L 153.447 217.114 152.037 216.832 C 149.972 216.419,149.642 215.006,151.281 213.597 C 152.020 212.961,152.912 212.551,153.263 212.686 C 153.845 212.909,154.476 211.626,154.493 210.183 C 154.497 209.834,153.332 210.088,151.464 210.843 C 134.487 217.700,120.436 212.980,109.511 196.750 C 101.085 184.233,87.243 177.258,79.000 181.376 M94.028 185.422 C 95.276 186.433,95.097 188.000,93.733 188.000 C 90.946 188.000,89.894 184.870,92.570 184.539 C 92.745 184.518,93.402 184.915,94.028 185.422 M100.389 189.778 C 101.663 190.671,101.886 192.883,100.746 193.321 C 99.886 193.651,97.583 192.299,97.170 191.221 C 96.400 189.215,98.342 188.344,100.389 189.778 M177.500 192.054 C 155.629 193.971,154.135 197.916,154.606 252.500 L 154.750 269.250 153.360 272.080 C 151.703 275.455,148.851 278.166,145.197 279.839 C 138.448 282.928,139.191 286.998,146.500 286.975 C 155.982 286.946,165.085 283.288,168.717 278.048 C 172.167 273.070,172.158 273.141,172.540 247.250 C 172.911 222.175,173.025 221.017,175.573 216.439 C 178.047 211.993,178.000 211.356,177.997 249.333 C 177.994 289.947,178.241 287.502,173.718 291.767 C 169.829 295.435,169.207 297.253,171.171 299.217 C 175.425 303.471,190.668 296.556,194.737 288.526 C 196.830 284.396,197.015 281.352,197.391 244.804 C 197.725 212.294,197.811 209.819,198.625 209.306 C 201.252 207.651,201.221 207.338,201.594 239.554 C 202.149 287.541,202.004 284.249,203.722 287.750 C 206.407 293.224,211.679 297.180,219.389 299.508 C 227.420 301.932,231.857 297.670,226.386 292.786 C 220.858 287.850,221.013 289.127,221.006 248.583 C 221.000 212.089,220.979 212.362,223.352 217.038 C 225.961 222.179,226.112 223.676,226.471 248.000 C 226.865 274.706,227.265 276.651,233.310 281.262 C 241.584 287.573,260.295 289.184,257.640 283.357 C 257.050 282.062,256.543 281.638,252.264 278.863 C 244.510 273.834,244.277 272.702,244.262 240.000 L 244.250 212.750 242.335 209.250 C 236.461 198.514,230.088 194.146,217.500 192.229 C 212.209 191.424,186.001 191.309,177.500 192.054 M107.689 197.772 C 108.848 200.791,106.729 202.306,104.486 200.063 C 102.816 198.393,102.637 197.434,103.782 196.289 C 104.697 195.374,107.122 196.294,107.689 197.772 M113.706 205.342 C 115.593 207.230,115.340 209.193,113.183 209.402 C 110.678 209.646,108.479 206.221,110.100 204.600 C 111.053 203.647,112.258 203.895,113.706 205.342 M121.489 212.245 C 124.141 213.616,123.874 216.500,121.096 216.500 C 118.487 216.500,116.450 213.161,118.375 212.040 C 119.545 211.359,119.810 211.376,121.489 212.245 M132.525 215.763 C 134.965 217.025,134.198 219.500,131.367 219.500 C 128.364 219.500,126.855 217.645,128.511 215.989 C 129.699 214.801,130.570 214.752,132.525 215.763 M144.533 216.018 C 146.932 217.301,144.434 220.394,141.516 219.754 C 140.678 219.569,139.751 218.968,139.456 218.418 C 138.325 216.305,141.907 214.612,144.533 216.018 \" stroke=\"none\" fill=\"#1f1d1d\" fill-rule=\"evenodd\"></path> <path id=\"path3\" d=\"M194.125 93.358 C 194.881 93.473,196.119 93.473,196.875 93.358 C 197.631 93.244,197.012 93.150,195.500 93.150 C 193.988 93.150,193.369 93.244,194.125 93.358 M200.125 93.358 C 200.881 93.473,202.119 93.473,202.875 93.358 C 203.631 93.244,203.012 93.150,201.500 93.150 C 199.988 93.150,199.369 93.244,200.125 93.358 M150.954 116.157 C 139.188 122.335,142.426 148.000,154.970 148.000 C 165.818 148.000,170.465 128.014,161.807 118.592 C 158.358 114.837,154.932 114.068,150.954 116.157 M240.954 116.163 C 232.487 120.632,230.868 137.256,238.152 144.935 C 244.774 151.916,254.214 146.597,256.004 134.875 C 257.903 122.438,249.309 111.753,240.954 116.163 M152.273 121.727 C 155.489 124.944,150.974 129.528,147.657 126.413 C 145.589 124.470,147.162 120.500,150.000 120.500 C 150.575 120.500,151.598 121.052,152.273 121.727 M243.500 122.000 C 244.701 123.201,244.769 124.393,243.722 125.889 C 242.612 127.473,239.801 127.424,238.739 125.803 C 236.650 122.616,240.801 119.301,243.500 122.000 M195.727 150.727 C 194.147 152.308,194.130 154.514,195.685 156.322 C 198.160 159.199,203.000 157.298,203.000 153.449 C 203.000 149.925,198.291 148.163,195.727 150.727 M188.776 163.458 C 187.176 166.047,193.834 171.467,198.641 171.489 C 203.581 171.512,209.725 166.679,208.639 163.625 C 208.268 162.582,206.506 162.920,206.036 164.125 C 203.723 170.044,194.789 170.458,191.735 164.787 C 190.824 163.095,189.396 162.454,188.776 163.458 M211.875 180.353 C 212.494 180.472,213.506 180.472,214.125 180.353 C 214.744 180.234,214.238 180.136,213.000 180.136 C 211.762 180.136,211.256 180.234,211.875 180.353 \" stroke=\"none\" fill=\"#ab5b51\" fill-rule=\"evenodd\"></path> <path id=\"path4\" d=\"M148.750 91.837 C 131.101 94.040,116.725 108.242,115.245 124.937 L 114.995 127.750 115.734 124.536 C 118.279 113.472,127.913 101.607,137.522 97.702 C 144.785 94.751,157.377 94.308,177.750 96.287 C 190.412 97.518,206.509 97.428,222.500 96.038 C 250.458 93.609,260.060 95.298,269.215 104.256 C 275.124 110.037,279.112 116.575,281.035 123.634 L 282.019 127.250 281.720 124.346 C 280.612 113.598,271.377 100.486,261.349 95.424 C 253.674 91.549,242.916 90.702,221.489 92.283 C 206.536 93.386,190.045 93.395,175.296 92.308 C 165.391 91.577,152.642 91.351,148.750 91.837 M160.000 116.656 C 160.000 116.743,160.731 117.474,161.625 118.281 L 163.250 119.750 161.781 118.125 C 160.413 116.610,160.000 116.270,160.000 116.656 M126.750 162.500 C 127.824 163.600,128.815 164.500,128.953 164.500 C 129.090 164.500,128.324 163.600,127.250 162.500 C 126.176 161.400,125.185 160.500,125.047 160.500 C 124.910 160.500,125.676 161.400,126.750 162.500 M269.726 165.125 L 267.750 167.250 269.875 165.274 C 271.851 163.435,272.230 163.000,271.851 163.000 C 271.770 163.000,270.814 163.956,269.726 165.125 M197.881 171.854 C 198.503 171.973,199.403 171.969,199.881 171.844 C 200.359 171.718,199.850 171.621,198.750 171.626 C 197.650 171.632,197.259 171.734,197.881 171.854 M195.125 180.373 C 198.081 180.462,202.919 180.462,205.875 180.373 C 208.831 180.285,206.412 180.212,200.500 180.212 C 194.588 180.212,192.169 180.285,195.125 180.373 \" stroke=\"none\" fill=\"#c39a86\" fill-rule=\"evenodd\"></path> <path id=\"path5\" d=\"M144.377 95.754 C 126.683 99.117,113.640 116.822,115.424 135.054 C 118.036 161.750,133.712 174.268,170.500 179.035 C 176.838 179.857,217.421 180.223,226.611 179.542 C 264.807 176.711,280.071 163.863,281.783 133.103 C 282.367 122.609,278.201 113.047,269.215 104.256 C 260.060 95.298,250.458 93.609,222.500 96.038 C 206.476 97.431,190.396 97.519,177.750 96.282 C 165.461 95.081,149.268 94.825,144.377 95.754 M159.000 107.638 C 172.028 113.830,174.706 139.995,163.490 151.510 C 151.935 163.374,136.017 151.635,136.017 131.250 C 136.017 114.067,147.565 102.203,159.000 107.638 M252.554 107.789 C 265.704 114.388,268.015 140.016,256.503 151.584 C 244.864 163.279,229.435 151.867,229.435 131.564 C 229.435 113.681,240.867 101.924,252.554 107.789 M143.136 131.500 C 143.136 132.738,143.234 133.244,143.353 132.625 C 143.472 132.006,143.472 130.994,143.353 130.375 C 143.234 129.756,143.136 130.262,143.136 131.500 M200.658 149.582 C 204.730 151.750,203.314 158.000,198.750 158.000 C 196.254 158.000,194.495 156.191,194.516 153.648 C 194.546 150.076,197.685 147.998,200.658 149.582 M191.742 164.487 C 193.901 167.907,197.237 169.379,200.710 168.443 C 202.748 167.895,206.000 165.020,206.000 163.768 C 206.000 162.954,207.239 162.431,208.250 162.819 C 211.036 163.888,205.916 170.311,201.284 171.558 C 196.178 172.933,188.500 168.502,188.500 164.181 C 188.500 161.790,190.137 161.945,191.742 164.487 \" stroke=\"none\" fill=\"#f3c9b1\" fill-rule=\"evenodd\"></path> <path id=\"path6\" d=\"M238.384 91.362 C 239.283 91.474,240.633 91.471,241.384 91.357 C 242.135 91.243,241.400 91.152,239.750 91.155 C 238.100 91.158,237.485 91.251,238.384 91.362 M282.116 129.000 C 282.116 129.963,282.219 130.356,282.345 129.875 C 282.470 129.394,282.470 128.606,282.345 128.125 C 282.219 127.644,282.116 128.037,282.116 129.000 M185.125 180.345 C 185.606 180.470,186.394 180.470,186.875 180.345 C 187.356 180.219,186.963 180.116,186.000 180.116 C 185.037 180.116,184.644 180.219,185.125 180.345 M215.875 180.353 C 216.494 180.472,217.506 180.472,218.125 180.353 C 218.744 180.234,218.238 180.136,217.000 180.136 C 215.762 180.136,215.256 180.234,215.875 180.353 M244.187 260.750 C 244.188 263.775,244.271 264.948,244.370 263.357 C 244.470 261.765,244.469 259.290,244.368 257.857 C 244.267 256.423,244.186 257.725,244.187 260.750 M154.691 261.750 C 154.692 265.050,154.773 266.335,154.871 264.605 C 154.969 262.876,154.968 260.176,154.869 258.605 C 154.770 257.035,154.690 258.450,154.691 261.750 M201.655 277.250 C 201.658 278.900,201.751 279.515,201.862 278.616 C 201.974 277.717,201.971 276.367,201.857 275.616 C 201.743 274.865,201.652 275.600,201.655 277.250 \" stroke=\"none\" fill=\"#556f79\" fill-rule=\"evenodd\"></path> <path id=\"path7\" d=\"M197.220 265.750 C 197.220 273.450,197.289 276.530,197.374 272.595 C 197.459 268.659,197.458 262.359,197.374 258.595 C 197.289 254.830,197.220 258.050,197.220 265.750 M201.714 263.500 C 201.714 269.688,201.786 272.219,201.873 269.125 C 201.961 266.031,201.961 260.969,201.873 257.875 C 201.786 254.781,201.714 257.313,201.714 263.500 M145.132 287.359 C 145.892 287.474,147.017 287.471,147.632 287.352 C 148.247 287.233,147.625 287.139,146.250 287.143 C 144.875 287.147,144.372 287.244,145.132 287.359 M251.632 287.359 C 252.392 287.474,253.517 287.471,254.132 287.352 C 254.747 287.233,254.125 287.139,252.750 287.143 C 251.375 287.147,250.872 287.244,251.632 287.359 \" stroke=\"none\" fill=\"#7caabb\" fill-rule=\"evenodd\"></path> <path id=\"path8\" d=\"M91.590 186.125 C 91.761 187.331,93.724 187.976,94.590 187.110 C 95.229 186.471,93.723 185.000,92.430 185.000 C 91.679 185.000,91.470 185.280,91.590 186.125 M80.592 190.056 C 77.217 199.310,77.094 203.630,80.177 204.647 C 84.220 205.981,85.227 202.398,82.980 194.671 C 81.174 188.458,81.175 188.459,80.592 190.056 M97.500 190.423 C 97.500 191.515,99.004 193.000,100.111 193.000 C 101.250 193.000,101.537 191.776,100.684 190.557 C 99.741 189.211,97.500 189.116,97.500 190.423 M103.680 196.751 C 103.216 197.960,103.928 199.926,105.045 200.524 C 106.478 201.291,107.500 200.768,107.500 199.266 C 107.500 196.978,104.381 194.925,103.680 196.751 M110.192 205.221 C 109.722 206.446,110.193 207.601,111.586 208.640 C 113.215 209.856,114.500 209.470,114.500 207.766 C 114.500 205.406,110.930 203.297,110.192 205.221 M118.232 212.528 C 117.563 213.612,118.499 215.402,120.011 215.929 C 121.964 216.610,123.000 216.193,123.000 214.725 C 123.000 212.758,119.179 210.997,118.232 212.528 M151.286 213.786 C 150.228 214.844,150.296 215.856,151.467 216.482 C 153.108 217.360,153.500 217.074,153.500 215.000 C 153.500 212.821,152.693 212.378,151.286 213.786 M128.465 216.292 C 127.569 217.372,128.405 218.614,130.417 219.191 C 132.198 219.701,133.500 218.969,133.500 217.456 C 133.500 215.648,129.724 214.775,128.465 216.292 M141.114 216.020 C 138.574 217.040,139.551 219.500,142.496 219.500 C 145.069 219.500,145.990 216.852,143.717 215.988 C 143.012 215.719,142.393 215.514,142.342 215.532 C 142.292 215.549,141.739 215.769,141.114 216.020 M197.496 265.625 C 197.491 283.861,196.725 287.830,192.282 292.630 L 190.541 294.511 192.086 296.800 C 195.528 301.900,196.816 309.032,196.977 323.875 L 197.000 326.000 199.750 326.000 L 202.500 326.000 202.500 318.033 C 202.500 307.296,203.539 302.483,207.052 296.945 L 208.514 294.641 206.696 292.695 C 205.696 291.625,204.174 289.288,203.314 287.500 L 201.750 284.250 201.588 268.125 L 201.426 252.000 199.463 252.000 L 197.500 252.000 197.496 265.625 M221.003 266.067 C 221.007 284.386,221.845 288.709,226.037 292.030 L 227.943 293.539 231.096 290.394 C 232.831 288.665,235.206 286.822,236.375 286.299 C 237.544 285.776,238.500 285.213,238.500 285.048 C 238.500 284.883,237.544 284.240,236.375 283.620 C 228.793 279.592,226.500 274.446,226.500 261.455 L 226.500 253.000 224.875 252.993 C 223.981 252.989,222.744 252.851,222.125 252.685 L 221.000 252.383 221.003 266.067 M173.125 253.331 C 172.661 253.518,172.500 255.684,172.500 261.747 C 172.500 274.445,170.452 279.054,162.845 283.473 L 160.439 284.870 163.142 286.396 C 165.931 287.970,168.718 290.379,170.106 292.415 L 170.900 293.579 173.070 292.007 C 177.553 288.759,177.991 286.547,177.996 267.125 L 178.000 253.000 175.875 253.039 C 174.706 253.061,173.469 253.192,173.125 253.331 M244.583 261.875 C 244.842 270.908,247.568 276.236,253.468 279.239 C 259.286 282.201,259.574 285.923,254.187 288.531 C 250.953 290.096,247.982 293.167,246.210 296.777 L 244.750 299.750 244.592 311.060 L 244.434 322.370 241.342 322.901 L 238.250 323.433 241.250 323.178 C 242.900 323.038,247.175 322.363,250.750 321.679 C 323.548 307.742,324.772 271.525,252.943 256.794 C 243.504 254.858,244.366 254.334,244.583 261.875 M146.504 257.281 C 77.988 271.795,79.296 307.087,148.874 321.223 L 154.500 322.366 154.500 311.478 C 154.500 296.463,152.664 292.266,144.208 287.948 C 138.568 285.068,138.928 282.512,145.420 279.344 C 152.198 276.036,154.500 271.626,154.500 261.943 C 154.500 254.950,155.301 255.417,146.504 257.281 M172.616 312.724 L 172.750 324.750 175.430 324.903 L 178.111 325.056 177.869 315.903 C 177.563 304.312,176.800 301.203,174.185 300.898 L 172.483 300.699 172.616 312.724 M222.816 302.875 C 221.461 307.084,221.000 311.028,221.000 318.407 L 221.000 325.631 222.875 325.321 C 223.906 325.150,225.762 324.975,227.000 324.931 C 228.493 324.877,228.788 324.780,227.875 324.642 L 226.500 324.434 226.500 312.467 L 226.500 300.500 225.040 300.500 C 223.739 300.500,223.497 300.759,222.816 302.875 M235.625 323.845 C 236.106 323.970,236.894 323.970,237.375 323.845 C 237.856 323.719,237.463 323.616,236.500 323.616 C 235.537 323.616,235.144 323.719,235.625 323.845 \" stroke=\"none\" fill=\"#9bd9ef\" fill-rule=\"evenodd\"></path> <path id=\"path9\" d=\"M157.655 285.602 C 154.517 286.654,146.388 287.703,144.420 287.309 C 142.421 286.909,142.649 287.241,145.233 288.492 C 152.471 291.996,154.500 297.042,154.500 311.544 C 154.500 317.570,154.675 322.500,154.889 322.500 C 155.104 322.500,158.422 322.946,162.264 323.492 C 166.106 324.038,169.981 324.488,170.875 324.492 L 172.500 324.500 172.500 312.697 L 172.500 300.894 171.250 299.911 C 169.914 298.860,169.545 296.284,170.480 294.538 C 171.390 292.836,168.028 289.222,162.638 286.111 L 160.250 284.732 157.655 285.602 M238.500 285.002 C 238.500 285.192,237.544 285.776,236.375 286.299 C 232.496 288.035,227.943 293.118,228.632 294.944 C 229.329 296.791,228.691 298.993,227.242 299.739 C 226.288 300.230,226.255 300.718,226.384 312.375 L 226.518 324.500 228.134 324.506 C 229.023 324.509,233.054 324.026,237.092 323.431 L 244.434 322.350 244.592 311.050 L 244.750 299.750 246.210 296.777 C 247.966 293.199,250.948 290.099,254.098 288.574 C 255.374 287.956,256.703 287.108,257.050 286.690 C 257.568 286.066,257.358 286.084,255.877 286.790 C 253.720 287.819,245.970 287.177,241.232 285.578 C 239.730 285.070,238.500 284.811,238.500 285.002 M187.869 296.302 C 184.967 298.289,180.591 299.977,177.345 300.362 C 176.017 300.519,175.146 300.783,175.410 300.949 C 176.797 301.818,177.644 306.945,177.874 315.859 C 178.077 323.745,178.219 324.999,178.929 325.207 C 179.381 325.339,183.646 325.603,188.408 325.794 L 197.066 326.141 196.734 317.446 C 196.358 307.614,195.648 303.690,193.431 299.185 C 191.142 294.536,190.747 294.332,187.869 296.302 M207.079 296.903 C 203.537 302.486,202.500 307.269,202.500 318.033 L 202.500 326.000 207.925 326.000 C 210.908 326.000,215.046 325.857,217.120 325.681 L 220.891 325.362 221.130 316.556 C 221.350 308.479,221.826 305.093,223.268 301.375 C 223.536 300.682,223.342 300.500,222.333 300.500 C 220.398 300.500,214.071 298.072,211.159 296.211 L 208.568 294.556 207.079 296.903 \" stroke=\"none\" fill=\"#7cb9e5\" fill-rule=\"evenodd\"></path> </g> </svg>', '', '', function(opts) {\n});\n","import riot from 'riot'\nimport './overlay.tag'\nimport './icons/octocat.tag'\n\nimport {\n closeHelp\n } from '../../actions'\nriot.tag2('parts-help', '<parts-overlay onclick=\"{closeHelp}\"></parts-overlay> <section> <header> Keyboard Shortcuts </header> <div> <kbd>?</kbd><span>Open this window.</span> </div> <div> <kbd>Esc</kbd><span>Close this window.</span> </div> <div> <kbd>1</kbd>-<kbd>8</kbd><span>Fold [1 - 8] depth tree node.</span> </div> <div> <kbd>9</kbd><span>Fold all tree node.</span> </div> <div> <kbd>0</kbd><span>Unfold all tree node.</span> </div> <footer> <a href=\"https://github.com/ampcpmgp/am-mocktimes\" target=\"_blank\"> <parts-icons-octocat></parts-icons-octocat> </a> </footer> </section>', 'parts-help >section,[data-is=\"parts-help\"] >section{position:fixed;top:40px;left:50%;transform:translate(-50%, 0);width:80%;min-height:300px;background:white;padding:16px;border-radius:10px} parts-help >section>header,[data-is=\"parts-help\"] >section>header{padding:16px;margin:-16px -16px 16px;border-bottom:1px solid #ccc} parts-help >section>div,[data-is=\"parts-help\"] >section>div{line-height:1.4} parts-help >section>div>kbd,[data-is=\"parts-help\"] >section>div>kbd{display:inline-block;padding:3px 5px;font:11px \"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1} parts-help >section>div>span,[data-is=\"parts-help\"] >section>div>span{margin-left:10px;font-size:12px;color:#333} parts-help >section>footer>a,[data-is=\"parts-help\"] >section>footer>a{display:inline-block;position:absolute;right:10px;bottom:10px;width:80px;height:80px} parts-help >section>footer>a>img,[data-is=\"parts-help\"] >section>footer>a>img{width:100%;height:100%}', '', function(opts) {\n\n Object.assign(this, {\n closeHelp\n })\n});\n","import riot from 'riot'\n\nriot.tag2('parts-iframe-mock', '<iframe riot-src=\"{opts.dataSrc}\"></iframe>', 'parts-iframe-mock,[data-is=\"parts-iframe-mock\"]{position:fixed;top:0;left:0;-webkit-overflow-scrolling:touch;width:100%;height:100%;background-color:white} parts-iframe-mock >iframe,[data-is=\"parts-iframe-mock\"] >iframe{overflow:auto;border:none;width:inherit;height:inherit}', '', function(opts) {\n});\n","import riot from 'riot'\n\nriot.tag2('parts-icons-open-close', '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" stroke=\"#333\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect> <g if=\"{opts.isPlus}\"> <line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line> </g> <g if=\"{!opts.isPlus}\"> <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"16\"></line> <line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line> </g> </svg>', 'parts-icons-open-close,[data-is=\"parts-icons-open-close\"]{cursor:pointer;display:flex;align-items:center;width:20px;height:20px;background:#eee} parts-icons-open-close:hover>svg,[data-is=\"parts-icons-open-close\"]:hover>svg{fill:#ccc} parts-icons-open-close>svg,[data-is=\"parts-icons-open-close\"]>svg{fill:#eee}', '', function(opts) {\n});\n","import observable from 'riot-observable';\n\nvar RE_ORIGIN = /^.+?\\/\\/+[^/]+/,\n EVENT_LISTENER = 'EventListener',\n REMOVE_EVENT_LISTENER = 'remove' + EVENT_LISTENER,\n ADD_EVENT_LISTENER = 'add' + EVENT_LISTENER,\n HAS_ATTRIBUTE = 'hasAttribute',\n POPSTATE = 'popstate',\n HASHCHANGE = 'hashchange',\n TRIGGER = 'trigger',\n MAX_EMIT_STACK_LEVEL = 3,\n win = typeof window != 'undefined' && window,\n doc = typeof document != 'undefined' && document,\n hist = win && history,\n loc = win && (hist.location || win.location), // see html5-history-api\n prot = Router.prototype, // to minify more\n clickEvent = doc && doc.ontouchstart ? 'touchstart' : 'click',\n central = observable();;;;;;;;;;;;;;;;\n\nvar\n started = false,\n routeFound = false,\n debouncedEmit,\n base,\n current,\n parser,\n secondParser,\n emitStack = [],\n emitStackLevel = 0;;;;;;;;;\n\n/**\n * Default parser. You can replace it via router.parser method.\n * @param {string} path - current path (normalized)\n * @returns {array} array\n */\nfunction DEFAULT_PARSER(path) {\n return path.split(/[/?#]/)\n}\n\n/**\n * Default parser (second). You can replace it via router.parser method.\n * @param {string} path - current path (normalized)\n * @param {string} filter - filter string (normalized)\n * @returns {array} array\n */\nfunction DEFAULT_SECOND_PARSER(path, filter) {\n var f = filter\n .replace(/\\?/g, '\\\\?')\n .replace(/\\*/g, '([^/?#]+?)')\n .replace(/\\.\\./, '.*');\n var re = new RegExp((\"^\" + f + \"$\"));\n var args = path.match(re);\n\n if (args) { return args.slice(1) }\n}\n\n/**\n * Simple/cheap debounce implementation\n * @param {function} fn - callback\n * @param {number} delay - delay in seconds\n * @returns {function} debounced function\n */\nfunction debounce(fn, delay) {\n var t;\n return function () {\n clearTimeout(t);\n t = setTimeout(fn, delay);\n }\n}\n\n/**\n * Set the window listeners to trigger the routes\n * @param {boolean} autoExec - see route.start\n */\nfunction start(autoExec) {\n debouncedEmit = debounce(emit, 1);\n win[ADD_EVENT_LISTENER](POPSTATE, debouncedEmit);\n win[ADD_EVENT_LISTENER](HASHCHANGE, debouncedEmit);\n doc[ADD_EVENT_LISTENER](clickEvent, click);\n if (autoExec) { emit(true); }\n}\n\n/**\n * Router class\n */\nfunction Router() {\n this.$ = [];\n observable(this); // make it observable\n central.on('stop', this.s.bind(this));\n central.on('emit', this.e.bind(this));\n}\n\nfunction normalize(path) {\n return path.replace(/^\\/|\\/$/, '')\n}\n\nfunction isString(str) {\n return typeof str == 'string'\n}\n\n/**\n * Get the part after domain name\n * @param {string} href - fullpath\n * @returns {string} path from root\n */\nfunction getPathFromRoot(href) {\n return (href || loc.href).replace(RE_ORIGIN, '')\n}\n\n/**\n * Get the part after base\n * @param {string} href - fullpath\n * @returns {string} path from base\n */\nfunction getPathFromBase(href) {\n return base[0] === '#'\n ? (href || loc.href || '').split(base)[1] || ''\n : (loc ? getPathFromRoot(href) : href || '').replace(base, '')\n}\n\nfunction emit(force) {\n // the stack is needed for redirections\n var isRoot = emitStackLevel === 0;\n if (MAX_EMIT_STACK_LEVEL <= emitStackLevel) { return }\n\n emitStackLevel++;\n emitStack.push(function() {\n var path = getPathFromBase();\n if (force || path !== current) {\n central[TRIGGER]('emit', path);\n current = path;\n }\n });\n if (isRoot) {\n var first;\n while (first = emitStack.shift()) { first(); } // stack increses within this call\n emitStackLevel = 0;\n }\n}\n\nfunction click(e) {\n if (\n e.which !== 1 // not left click\n || e.metaKey || e.ctrlKey || e.shiftKey // or meta keys\n || e.defaultPrevented // or default prevented\n ) { return }\n\n var el = e.target;\n while (el && el.nodeName !== 'A') { el = el.parentNode; }\n\n if (\n !el || el.nodeName !== 'A' // not A tag\n || el[HAS_ATTRIBUTE]('download') // has download attr\n || !el[HAS_ATTRIBUTE]('href') // has no href attr\n || el.target && el.target !== '_self' // another window or frame\n || el.href.indexOf(loc.href.match(RE_ORIGIN)[0]) === -1 // cross origin\n ) { return }\n\n if (el.href !== loc.href\n && (\n el.href.split('#')[0] === loc.href.split('#')[0] // internal jump\n || base[0] !== '#' && getPathFromRoot(el.href).indexOf(base) !== 0 // outside of base\n || base[0] === '#' && el.href.split(base)[0] !== loc.href.split(base)[0] // outside of #base\n || !go(getPathFromBase(el.href), el.title || doc.title) // route not found\n )) { return }\n\n e.preventDefault();\n}\n\n/**\n * Go to the path\n * @param {string} path - destination path\n * @param {string} title - page title\n * @param {boolean} shouldReplace - use replaceState or pushState\n * @returns {boolean} - route not found flag\n */\nfunction go(path, title, shouldReplace) {\n // Server-side usage: directly execute handlers for the path\n if (!hist) { return central[TRIGGER]('emit', getPathFromBase(path)) }\n\n path = base + normalize(path);\n title = title || doc.title;\n // browsers ignores the second parameter `title`\n shouldReplace\n ? hist.replaceState(null, title, path)\n : hist.pushState(null, title, path);\n // so we need to set it manually\n doc.title = title;\n routeFound = false;\n emit();\n return routeFound\n}\n\n/**\n * Go to path or set action\n * a single string: go there\n * two strings: go there with setting a title\n * two strings and boolean: replace history with setting a title\n * a single function: set an action on the default route\n * a string/RegExp and a function: set an action on the route\n * @param {(string|function)} first - path / action / filter\n * @param {(string|RegExp|function)} second - title / action\n * @param {boolean} third - replace flag\n */\nprot.m = function(first, second, third) {\n if (isString(first) && (!second || isString(second))) { go(first, second, third || false); }\n else if (second) { this.r(first, second); }\n else { this.r('@', first); }\n};\n\n/**\n * Stop routing\n */\nprot.s = function() {\n this.off('*');\n this.$ = [];\n};\n\n/**\n * Emit\n * @param {string} path - path\n */\nprot.e = function(path) {\n this.$.concat('@').some(function(filter) {\n var args = (filter === '@' ? parser : secondParser)(normalize(path), normalize(filter));\n if (typeof args != 'undefined') {\n this[TRIGGER].apply(null, [filter].concat(args));\n return routeFound = true // exit from loop\n }\n }, this);\n};\n\n/**\n * Register route\n * @param {string} filter - filter for matching to url\n * @param {function} action - action to register\n */\nprot.r = function(filter, action) {\n if (filter !== '@') {\n filter = '/' + normalize(filter);\n this.$.push(filter);\n }\n this.on(filter, action);\n};\n\nvar mainRouter = new Router();\nvar route = mainRouter.m.bind(mainRouter);\n\n/**\n * Create a sub router\n * @returns {function} the method of a new Router object\n */\nroute.create = function() {\n var newSubRouter = new Router();\n // assign sub-router's main method\n var router = newSubRouter.m.bind(newSubRouter);\n // stop only this sub-router\n router.stop = newSubRouter.s.bind(newSubRouter);\n return router\n};\n\n/**\n * Set the base of url\n * @param {(str|RegExp)} arg - a new base or '#' or '#!'\n */\nroute.base = function(arg) {\n base = arg || '#';\n current = getPathFromBase(); // recalculate current path\n};\n\n/** Exec routing right now **/\nroute.exec = function() {\n emit(true);\n};\n\n/**\n * Replace the default router to yours\n * @param {function} fn - your parser function\n * @param {function} fn2 - your secondParser function\n */\nroute.parser = function(fn, fn2) {\n if (!fn && !fn2) {\n // reset parser for testing...\n parser = DEFAULT_PARSER;\n secondParser = DEFAULT_SECOND_PARSER;\n }\n if (fn) { parser = fn; }\n if (fn2) { secondParser = fn2; }\n};\n\n/**\n * Helper function to get url query as an object\n * @returns {object} parsed query\n */\nroute.query = function() {\n var q = {};\n var href = loc.href || current;\n href.replace(/[?&](.+?)=([^&]*)/g, function(_, k, v) { q[k] = v; });\n return q\n};\n\n/** Stop routing **/\nroute.stop = function () {\n if (started) {\n if (win) {\n win[REMOVE_EVENT_LISTENER](POPSTATE, debouncedEmit);\n win[REMOVE_EVENT_LISTENER](HASHCHANGE, debouncedEmit);\n doc[REMOVE_EVENT_LISTENER](clickEvent, click);\n }\n central[TRIGGER]('stop');\n started = false;\n }\n};\n\n/**\n * Start routing\n * @param {boolean} autoExec - automatically exec after starting if true\n */\nroute.start = function (autoExec) {\n if (!started) {\n if (win) {\n if (document.readyState === 'interactive' || document.readyState === 'complete') {\n start(autoExec);\n }\n else {\n document.onreadystatechange = function () {\n if (document.readyState === 'interactive') {\n // the timeout is needed to solve\n // a weird safari bug https://github.com/riot/route/issues/33\n setTimeout(function() { start(autoExec); }, 1);\n }\n };\n }\n }\n started = true;\n }\n};\n\n/** Prepare the router **/\nroute.base();\nroute.parser();\n\nexport default route;\n","import riot from 'riot'\nimport './icons/open-close.tag'\n\nriot.tag2('parts-tree-descripion', '<small>{opts.description}</small>', 'parts-tree-descripion >small,[data-is=\"parts-tree-descripion\"] >small{white-space:pre-line;margin-top:4px;margin-bottom:4px}', '', function(opts) {\n this.on('update', () => {\n this.root.style.display = opts.description ? '' : 'none'\n })\n});\n\nimport { observe } from 'dob'\nimport route from 'riot-route'\nimport * as Actions from '../../actions'\nimport state from '../../state'\nimport { getRoutePath } from '../../utils/pattern'\nriot.tag2('parts-tree', '<section class=\"list-line\" if=\"{opts.mdAction.level > 0}\"> <parts-icons-open-close riot-style=\"{getOpenCloseIconStyle()}\" is-plus=\"{opts.mdAction.isOpen}\" onclick=\"{toggleActionBox}\"></parts-icons-open-close> <a href=\"{opts.mdAction.mockUrl}\" onclick=\"{openIframe}\" class=\"{executed: opts.mdAction.mockUrl === lastExecutedUrl}\"> {opts.mdAction.name} </a> <section class=\"labels\"> <label each=\"{switchItem in opts.mdAction.switchs}\" class=\"{parent.getLabelClass(switchItem.name)}\" onclick=\"{() => parent.switchLabel(switchItem.name)}\"> {switchItem.name} </label> </section> <parts-tree-descripion description=\"{getDescription()}\"></parts-tree-descripion> </section> <section class=\"child-tree\" riot-style=\"{getChildTreeStyle()}\"> <virtual each=\"{mdAction in opts.mdAction.mdActions}\"> <parts-tree md-action=\"{mdAction}\" class=\"{mdAction.levelName}\"></parts-tree> </virtual> </section>', 'parts-tree,[data-is=\"parts-tree\"]{margin-left:12px;display:block;border-left:1px solid #ccc;box-sizing:border-box} parts-tree >section.list-line,[data-is=\"parts-tree\"] >section.list-line{display:flex;align-items:center;position:relative} parts-tree >section.list-line>parts-icons-open-close,[data-is=\"parts-tree\"] >section.list-line>parts-icons-open-close{position:absolute;top:50%;left:-8px;transform:translateY(-50%)} parts-tree >section.list-line>section.labels>label,[data-is=\"parts-tree\"] >section.list-line>section.labels>label{cursor:pointer;border:1px solid rgba(255,128,0,0.6);padding:0 6px;text-align:center;display:inline-block} parts-tree >section.list-line>section.labels>label.focus,[data-is=\"parts-tree\"] >section.list-line>section.labels>label.focus{background:#ff0} parts-tree >section.list-line>section.labels>label:hover,[data-is=\"parts-tree\"] >section.list-line>section.labels>label:hover{border:1px solid #ff4000} parts-tree >section.list-line>section.labels>label:last-child,[data-is=\"parts-tree\"] >section.list-line>section.labels>label:last-child{margin-right:4px} parts-tree >section.list-line>a,[data-is=\"parts-tree\"] >section.list-line>a{padding:2px 4px;margin-top:2px;margin-bottom:2px;margin-left:14px;margin-right:8px;text-decoration:none;box-sizing:border-box;outline:none} parts-tree >section.list-line>a.executed,[data-is=\"parts-tree\"] >section.list-line>a.executed{border:1px solid #555;border-radius:4px} parts-tree >section.list-line>a:hover,[data-is=\"parts-tree\"] >section.list-line>a:hover{opacity:0.4} parts-tree >section.child-tree>parts-tree.level-1,[data-is=\"parts-tree\"] >section.child-tree>parts-tree.level-1{border:none}', '', function(opts) {\n\n const openIframe = (e) => {\n route(getRoutePath(opts.mdAction.mockUrl))\n e.preventDefault()\n }\n\n const toggleActionBox = () => {\n Actions.toggleActionBox(opts.mdAction)\n }\n\n const getOpenCloseIconStyle = () => opts.mdAction.mdActions.length === 0 && {\n visibility: 'hidden'\n }\n\n const getChildTreeStyle = () => !opts.mdAction.isOpen && {\n display: 'none'\n }\n\n const getLabelClass = (name) => ({\n focus: name === opts.mdAction.selectedSwitchName\n })\n\n const switchLabel = (name) => {\n Actions.setSelectedSwitchName(opts.mdAction, name)\n }\n\n const getDescription = () => {\n const {\n selectedSwitchName,\n description,\n switchs\n } = opts.mdAction\n\n if (selectedSwitchName) {\n return switchs.find(switchItem => switchItem.name === selectedSwitchName).description\n }\n return description\n }\n\n Object.assign(this, {\n lastExecutedUrl: state.mock.lastExecutedUrl,\n getDescription,\n getOpenCloseIconStyle,\n getChildTreeStyle,\n openIframe,\n switchLabel,\n getLabelClass,\n toggleActionBox\n })\n\n observe(() => {\n void (\n opts.mdAction.isOpen,\n opts.mdAction.selectedSwitchName,\n opts.mdAction.mockUrl\n )\n\n this.update({\n lastExecutedUrl: state.mock.lastExecutedUrl\n })\n })\n});\n","import riot from 'riot'\nimport './tree.tag'\n\nimport state from '../../state'\nriot.tag2('parts-mockbox', '<parts-tree md-action=\"{mdAction}\"></parts-tree>', 'parts-mockbox >parts-tree,[data-is=\"parts-mockbox\"] >parts-tree{border-left:none;margin-left:0px}', '', function(opts) {\n\n this.mdAction = state.mock.mdAction\n});\n","import riot from 'riot'\nimport './parts/question.tag'\nimport './parts/header.tag'\nimport './parts/help.tag'\nimport './parts/iframe-mock.tag'\nimport './parts/mockbox.tag'\n\nimport { observe } from 'dob'\nimport route from 'riot-route'\nimport state from '../state'\nimport * as Actions from '../actions'\nriot.tag2('app-root', '<parts-header></parts-header> <parts-mockbox></parts-mockbox> <parts-help if=\"{isHelpOpen}\"></parts-help> <parts-iframe-mock if=\"{currentUrl}\" data-src=\"{currentUrl}\"></parts-iframe-mock>', '', '', function(opts) {\n\n this.isHelpOpen = false\n\n observe(() => {\n this.update({\n isHelpOpen: state.help.isOpen,\n currentUrl: state.mock.currentUrl\n })\n })\n\n const getMockUrl = () => {\n\n const hashTag = location.hash.replace(/^#/, '')\n try {\n const {mockUrl} = JSON.parse(decodeURIComponent(hashTag))\n return mockUrl\n } catch (e) {\n return null\n }\n }\n\n route('*', () => {\n Actions.setCurrentUrl(getMockUrl())\n })\n\n route('..', () => {\n Actions.setCurrentUrl(null)\n })\n\n const mockUrl = getMockUrl()\n\n if (mockUrl) {\n const initialUrl = location.href\n history.replaceState(null, null, location.href.replace(location.hash, ''))\n history.pushState(null, null, initialUrl)\n }\n\n route.start(true)\n});\n","\nfunction KeyCombo(keyComboStr) {\n this.sourceStr = keyComboStr;\n this.subCombos = KeyCombo.parseComboStr(keyComboStr);\n this.keyNames = this.subCombos.reduce(function(memo, nextSubCombo) {\n return memo.concat(nextSubCombo);\n }, []);\n}\n\n// TODO: Add support for key combo sequences\nKeyCombo.sequenceDeliminator = '>>';\nKeyCombo.comboDeliminator = '>';\nKeyCombo.keyDeliminator = '+';\n\nKeyCombo.parseComboStr = function(keyComboStr) {\n var subComboStrs = KeyCombo._splitStr(keyComboStr, KeyCombo.comboDeliminator);\n var combo = [];\n\n for (var i = 0 ; i < subComboStrs.length; i += 1) {\n combo.push(KeyCombo._splitStr(subComboStrs[i], KeyCombo.keyDeliminator));\n }\n return combo;\n};\n\nKeyCombo.prototype.check = function(pressedKeyNames) {\n var startingKeyNameIndex = 0;\n for (var i = 0; i < this.subCombos.length; i += 1) {\n startingKeyNameIndex = this._checkSubCombo(\n this.subCombos[i],\n startingKeyNameIndex,\n pressedKeyNames\n );\n if (startingKeyNameIndex === -1) { return false; }\n }\n return true;\n};\n\nKeyCombo.prototype.isEqual = function(otherKeyCombo) {\n if (\n !otherKeyCombo ||\n typeof otherKeyCombo !== 'string' &&\n typeof otherKeyCombo !== 'object'\n ) { return false; }\n\n if (typeof otherKeyCombo === 'string') {\n otherKeyCombo = new KeyCombo(otherKeyCombo);\n }\n\n if (this.subCombos.length !== otherKeyCombo.subCombos.length) {\n return false;\n }\n for (var i = 0; i < this.subCombos.length; i += 1) {\n if (this.subCombos[i].length !== otherKeyCombo.subCombos[i].length) {\n return false;\n }\n }\n\n for (var i = 0; i < this.subCombos.length; i += 1) {\n var subCombo = this.subCombos[i];\n var otherSubCombo = otherKeyCombo.subCombos[i].slice(0);\n\n for (var j = 0; j < subCombo.length; j += 1) {\n var keyName = subCombo[j];\n var index = otherSubCombo.indexOf(keyName);\n\n if (index > -1) {\n otherSubCombo.splice(index, 1);\n }\n }\n if (otherSubCombo.length !== 0) {\n return false;\n }\n }\n\n return true;\n};\n\nKeyCombo._splitStr = function(str, deliminator) {\n var s = str;\n var d = deliminator;\n var c = '';\n var ca = [];\n\n for (var ci = 0; ci < s.length; ci += 1) {\n if (ci > 0 && s[ci] === d && s[ci - 1] !== '\\\\') {\n ca.push(c.trim());\n c = '';\n ci += 1;\n }\n c += s[ci];\n }\n if (c) { ca.push(c.trim()); }\n\n return ca;\n};\n\nKeyCombo.prototype._checkSubCombo = function(subCombo, startingKeyNameIndex, pressedKeyNames) {\n subCombo = subCombo.slice(0);\n pressedKeyNames = pressedKeyNames.slice(startingKeyNameIndex);\n\n var endIndex = startingKeyNameIndex;\n for (var i = 0; i < subCombo.length; i += 1) {\n\n var keyName = subCombo[i];\n if (keyName[0] === '\\\\') {\n var escapedKeyName = keyName.slice(1);\n if (\n escapedKeyName === KeyCombo.comboDeliminator ||\n escapedKeyName === KeyCombo.keyDeliminator\n ) {\n keyName = escapedKeyName;\n }\n }\n\n var index = pressedKeyNames.indexOf(keyName);\n if (index > -1) {\n subCombo.splice(i, 1);\n i -= 1;\n if (index > endIndex) {\n endIndex = index;\n }\n if (subCombo.length === 0) {\n return endIndex;\n }\n }\n }\n return -1;\n};\n\n\nmodule.exports = KeyCombo;\n","\nvar KeyCombo = require('./key-combo');\n\n\nfunction Locale(name) {\n this.localeName = name;\n this.pressedKeys = [];\n this._appliedMacros = [];\n this._keyMap = {};\n this._killKeyCodes = [];\n this._macros = [];\n}\n\nLocale.prototype.bindKeyCode = function(keyCode, keyNames) {\n if (typeof keyNames === 'string') {\n keyNames = [keyNames];\n }\n\n this._keyMap[keyCode] = keyNames;\n};\n\nLocale.prototype.bindMacro = function(keyComboStr, keyNames) {\n if (typeof keyNames === 'string') {\n keyNames = [ keyNames ];\n }\n\n var handler = null;\n if (typeof keyNames === 'function') {\n handler = keyNames;\n keyNames = null;\n }\n\n var macro = {\n keyCombo : new KeyCombo(keyComboStr),\n keyNames : keyNames,\n handler : handler\n };\n\n this._macros.push(macro);\n};\n\nLocale.prototype.getKeyCodes = function(keyName) {\n var keyCodes = [];\n for (var keyCode in this._keyMap) {\n var index = this._keyMap[keyCode].indexOf(keyName);\n if (index > -1) { keyCodes.push(keyCode|0); }\n }\n return keyCodes;\n};\n\nLocale.prototype.getKeyNames = function(keyCode) {\n return this._keyMap[keyCode] || [];\n};\n\nLocale.prototype.setKillKey = function(keyCode) {\n if (typeof keyCode === 'string') {\n var keyCodes = this.getKeyCodes(keyCode);\n for (var i = 0; i < keyCodes.length; i += 1) {\n this.setKillKey(keyCodes[i]);\n }\n return;\n }\n\n this._killKeyCodes.push(keyCode);\n};\n\nLocale.prototype.pressKey = function(keyCode) {\n if (typeof keyCode === 'string') {\n var keyCodes = this.getKeyCodes(keyCode);\n for (var i = 0; i < keyCodes.length; i += 1) {\n this.pressKey(keyCodes[i]);\n }\n return;\n }\n\n var keyNames = this.getKeyNames(keyCode);\n for (var i = 0; i < keyNames.length; i += 1) {\n if (this.pressedKeys.indexOf(keyNames[i]) === -1) {\n this.pressedKeys.push(keyNames[i]);\n }\n }\n\n this._applyMacros();\n};\n\nLocale.prototype.releaseKey = function(keyCode) {\n if (typeof keyCode === 'string') {\n var keyCodes = this.getKeyCodes(keyCode);\n for (var i = 0; i < keyCodes.length; i += 1) {\n this.releaseKey(keyCodes[i]);\n }\n }\n\n else {\n var keyNames = this.getKeyNames(keyCode);\n var killKeyCodeIndex = this._killKeyCodes.indexOf(keyCode);\n \n if (killKeyCodeIndex > -1) {\n this.pressedKeys.length = 0;\n } else {\n for (var i = 0; i < keyNames.length; i += 1) {\n var index = this.pressedKeys.indexOf(keyNames[i]);\n if (index > -1) {\n this.pressedKeys.splice(index, 1);\n }\n }\n }\n\n this._clearMacros();\n }\n};\n\nLocale.prototype._applyMacros = function() {\n var macros = this._macros.slice(0);\n for (var i = 0; i < macros.length; i += 1) {\n var macro = macros[i];\n if (macro.keyCombo.check(this.pressedKeys)) {\n if (macro.handler) {\n macro.keyNames = macro.handler(this.pressedKeys);\n }\n for (var j = 0; j < macro.keyNames.length; j += 1) {\n if (this.pressedKeys.indexOf(macro.keyNames[j]) === -1) {\n this.pressedKeys.push(macro.keyNames[j]);\n }\n }\n this._appliedMacros.push(macro);\n }\n }\n};\n\nLocale.prototype._clearMacros = function() {\n for (var i = 0; i < this._appliedMacros.length; i += 1) {\n var macro = this._appliedMacros[i];\n if (!macro.keyCombo.check(this.pressedKeys)) {\n for (var j = 0; j < macro.keyNames.length; j += 1) {\n var index = this.pressedKeys.indexOf(macro.keyNames[j]);\n if (index > -1) {\n this.pressedKeys.splice(index, 1);\n }\n }\n if (macro.handler) {\n macro.keyNames = null;\n }\n this._appliedMacros.splice(i, 1);\n i -= 1;\n }\n }\n};\n\n\nmodule.exports = Locale;\n","\nvar Locale = require('./locale');\nvar KeyCombo = require('./key-combo');\n\n\nfunction Keyboard(targetWindow, targetElement, platform, userAgent) {\n this._locale = null;\n this._currentContext = null;\n this._contexts = {};\n this._listeners = [];\n this._appliedListeners = [];\n this._locales = {};\n this._targetElement = null;\n this._targetWindow = null;\n this._targetPlatform = '';\n this._targetUserAgent = '';\n this._isModernBrowser = false;\n this._targetKeyDownBinding = null;\n this._targetKeyUpBinding = null;\n this._targetResetBinding = null;\n this._paused = false;\n this._callerHandler = null;\n\n this.setContext('global');\n this.watch(targetWindow, targetElement, platform, userAgent);\n}\n\nKeyboard.prototype.setLocale = function(localeName, localeBuilder) {\n var locale = null;\n if (typeof localeName === 'string') {\n\n if (localeBuilder) {\n locale = new Locale(localeName);\n localeBuilder(locale, this._targetPlatform, this._targetUserAgent);\n } else {\n locale = this._locales[localeName] || null;\n }\n } else {\n locale = localeName;\n localeName = locale._localeName;\n }\n\n this._locale = locale;\n this._locales[localeName] = locale;\n if (locale) {\n this._locale.pressedKeys = locale.pressedKeys;\n }\n};\n\nKeyboard.prototype.getLocale = function(localName) {\n localName || (localName = this._locale.localeName);\n return this._locales[localName] || null;\n};\n\nKeyboard.prototype.bind = function(keyComboStr, pressHandler, releaseHandler, preventRepeatByDefault) {\n if (keyComboStr === null || typeof keyComboStr === 'function') {\n preventRepeatByDefault = releaseHandler;\n releaseHandler = pressHandler;\n pressHandler = keyComboStr;\n keyComboStr = null;\n }\n\n if (\n keyComboStr &&\n typeof keyComboStr === 'object' &&\n typeof keyComboStr.length === 'number'\n ) {\n for (var i = 0; i < keyComboStr.length; i += 1) {\n this.bind(keyComboStr[i], pressHandler, releaseHandler);\n }\n return;\n }\n\n this._listeners.push({\n keyCombo : keyComboStr ? new KeyCombo(keyComboStr) : null,\n pressHandler : pressHandler || null,\n releaseHandler : releaseHandler || null,\n preventRepeat : preventRepeatByDefault || false,\n preventRepeatByDefault : preventRepeatByDefault || false\n });\n};\nKeyboard.prototype.addListener = Keyboard.prototype.bind;\nKeyboard.prototype.on = Keyboard.prototype.bind;\n\nKeyboard.prototype.unbind = function(keyComboStr, pressHandler, releaseHandler) {\n if (keyComboStr === null || typeof keyComboStr === 'function') {\n releaseHandler = pressHandler;\n pressHandler = keyComboStr;\n keyComboStr = null;\n }\n\n if (\n keyComboStr &&\n typeof keyComboStr === 'object' &&\n typeof keyComboStr.length === 'number'\n ) {\n for (var i = 0; i < keyComboStr.length; i += 1) {\n this.unbind(keyComboStr[i], pressHandler, releaseHandler);\n }\n return;\n }\n\n for (var i = 0; i < this._listeners.length; i += 1) {\n var listener = this._listeners[i];\n\n var comboMatches = !keyComboStr && !listener.keyCombo ||\n listener.keyCombo && listener.keyCombo.isEqual(keyComboStr);\n var pressHandlerMatches = !pressHandler && !releaseHandler ||\n !pressHandler && !listener.pressHandler ||\n pressHandler === listener.pressHandler;\n var releaseHandlerMatches = !pressHandler && !releaseHandler ||\n !releaseHandler && !listener.releaseHandler ||\n releaseHandler === listener.releaseHandler;\n\n if (comboMatches && pressHandlerMatches && releaseHandlerMatches) {\n this._listeners.splice(i, 1);\n i -= 1;\n }\n }\n};\nKeyboard.prototype.removeListener = Keyboard.prototype.unbind;\nKeyboard.prototype.off = Keyboard.prototype.unbind;\n\nKeyboard.prototype.setContext = function(contextName) {\n if(this._locale) { this.releaseAllKeys(); }\n\n if (!this._contexts[contextName]) {\n this._contexts[contextName] = [];\n }\n this._listeners = this._contexts[contextName];\n this._currentContext = contextName;\n};\n\nKeyboard.prototype.getContext = function() {\n return this._currentContext;\n};\n\nKeyboard.prototype.withContext = function(contextName, callback) {\n var previousContextName = this.getContext();\n this.setContext(contextName);\n\n callback();\n\n this.setContext(previousContextName);\n};\n\nKeyboard.prototype.watch = function(targetWindow, targetElement, targetPlatform, targetUserAgent) {\n var _this = this;\n\n this.stop();\n\n if (!targetWindow) {\n if (!global.addEventListener && !global.attachEvent) {\n throw new Error('Cannot find global functions addEventListener or attachEvent.');\n }\n targetWindow = global;\n }\n\n if (typeof targetWindow.nodeType === 'number') {\n targetUserAgent = targetPlatform;\n targetPlatform = targetElement;\n targetElement = targetWindow;\n targetWindow = global;\n }\n\n if (!targetWindow.addEventListener && !targetWindow.attachEvent) {\n throw new Error('Cannot find addEventListener or attachEvent methods on targetWindow.');\n }\n\n this._isModernBrowser = !!targetWindow.addEventListener;\n\n var userAgent = targetWindow.navigator && targetWindow.navigator.userAgent || '';\n var platform = targetWindow.navigator && targetWindow.navigator.platform || '';\n\n targetElement && targetElement !== null || (targetElement = targetWindow.document);\n targetPlatform && targetPlatform !== null || (targetPlatform = platform);\n targetUserAgent && targetUserAgent !== null || (targetUserAgent = userAgent);\n\n this._targetKeyDownBinding = function(event) {\n _this.pressKey(event.keyCode, event);\n _this._handleCommandBug(event, platform);\n };\n this._targetKeyUpBinding = function(event) {\n _this.releaseKey(event.keyCode, event);\n };\n this._targetResetBinding = function(event) {\n _this.releaseAllKeys(event)\n };\n\n this._bindEvent(targetElement, 'keydown', this._targetKeyDownBinding);\n this._bindEvent(targetElement, 'keyup', this._targetKeyUpBinding);\n this._bindEvent(targetWindow, 'focus', this._targetResetBinding);\n this._bindEvent(targetWindow, 'blur', this._targetResetBinding);\n\n this._targetElement = targetElement;\n this._targetWindow = targetWindow;\n this._targetPlatform = targetPlatform;\n this._targetUserAgent = targetUserAgent;\n};\n\nKeyboard.prototype.stop = function() {\n var _this = this;\n\n if (!this._targetElement || !this._targetWindow) { return; }\n\n this._unbindEvent(this._targetElement, 'keydown', this._targetKeyDownBinding);\n this._unbindEvent(this._targetElement, 'keyup', this._targetKeyUpBinding);\n this._unbindEvent(this._targetWindow, 'focus', this._targetResetBinding);\n this._unbindEvent(this._targetWindow, 'blur', this._targetResetBinding);\n\n this._targetWindow = null;\n this._targetElement = null;\n};\n\nKeyboard.prototype.pressKey = function(keyCode, event) {\n if (this._paused) { return; }\n if (!this._locale) { throw new Error('Locale not set'); }\n\n this._locale.pressKey(keyCode);\n this._applyBindings(event);\n};\n\nKeyboard.prototype.releaseKey = function(keyCode, event) {\n if (this._paused) { return; }\n if (!this._locale) { throw new Error('Locale not set'); }\n\n this._locale.releaseKey(keyCode);\n this._clearBindings(event);\n};\n\nKeyboard.prototype.releaseAllKeys = function(event) {\n if (this._paused) { return; }\n if (!this._locale) { throw new Error('Locale not set'); }\n\n this._locale.pressedKeys.length = 0;\n this._clearBindings(event);\n};\n\nKeyboard.prototype.pause = function() {\n if (this._paused) { return; }\n if (this._locale) { this.releaseAllKeys(); }\n this._paused = true;\n};\n\nKeyboard.prototype.resume = function() {\n this._paused = false;\n};\n\nKeyboard.prototype.reset = function() {\n this.releaseAllKeys();\n this._listeners.length = 0;\n};\n\nKeyboard.prototype._bindEvent = function(targetElement, eventName, handler) {\n return this._isModernBrowser ?\n targetElement.addEventListener(eventName, handler, false) :\n targetElement.attachEvent('on' + eventName, handler);\n};\n\nKeyboard.prototype._unbindEvent = function(targetElement, eventName, handler) {\n return this._isModernBrowser ?\n targetElement.removeEventListener(eventName, handler, false) :\n targetElement.detachEvent('on' + eventName, handler);\n};\n\nKeyboard.prototype._getGroupedListeners = function() {\n var listenerGroups = [];\n var listenerGroupMap = [];\n\n var listeners = this._listeners;\n if (this._currentContext !== 'global') {\n listeners = [].concat(listeners, this._contexts.global);\n }\n\n listeners.sort(function(a, b) {\n return (b.keyCombo ? b.keyCombo.keyNames.length : 0) - (a.keyCombo ? a.keyCombo.keyNames.length : 0);\n }).forEach(function(l) {\n var mapIndex = -1;\n for (var i = 0; i < listenerGroupMap.length; i += 1) {\n if (listenerGroupMap[i] === null && l.keyCombo === null ||\n listenerGroupMap[i] !== null && listenerGroupMap[i].isEqual(l.keyCombo)) {\n mapIndex = i;\n }\n }\n if (mapIndex === -1) {\n mapIndex = listenerGroupMap.length;\n listenerGroupMap.push(l.keyCombo);\n }\n if (!listenerGroups[mapIndex]) {\n listenerGroups[mapIndex] = [];\n }\n listenerGroups[mapIndex].push(l);\n });\n return listenerGroups;\n};\n\nKeyboard.prototype._applyBindings = function(event) {\n var preventRepeat = false;\n\n event || (event = {});\n event.preventRepeat = function() { preventRepeat = true; };\n event.pressedKeys = this._locale.pressedKeys.slice(0);\n\n var pressedKeys = this._locale.pressedKeys.slice(0);\n var listenerGroups = this._getGroupedListeners();\n\n\n for (var i = 0; i < listenerGroups.length; i += 1) {\n var listeners = listenerGroups[i];\n var keyCombo = listeners[0].keyCombo;\n\n if (keyCombo === null || keyCombo.check(pressedKeys)) {\n for (var j = 0; j < listeners.length; j += 1) {\n var listener = listeners[j];\n\n if (keyCombo === null) {\n listener = {\n keyCombo : new KeyCombo(pressedKeys.join('+')),\n pressHandler : listener.pressHandler,\n releaseHandler : listener.releaseHandler,\n preventRepeat : listener.preventRepeat,\n preventRepeatByDefault : listener.preventRepeatByDefault\n };\n }\n\n if (listener.pressHandler && !listener.preventRepeat) {\n listener.pressHandler.call(this, event);\n if (preventRepeat) {\n listener.preventRepeat = preventRepeat;\n preventRepeat = false;\n }\n }\n\n if (listener.releaseHandler && this._appliedListeners.indexOf(listener) === -1) {\n this._appliedListeners.push(listener);\n }\n }\n\n if (keyCombo) {\n for (var j = 0; j < keyCombo.keyNames.length; j += 1) {\n var index = pressedKeys.indexOf(keyCombo.keyNames[j]);\n if (index !== -1) {\n pressedKeys.splice(index, 1);\n j -= 1;\n }\n }\n }\n }\n }\n};\n\nKeyboard.prototype._clearBindings = function(event) {\n event || (event = {});\n\n for (var i = 0; i < this._appliedListeners.length; i += 1) {\n var listener = this._appliedListeners[i];\n var keyCombo = listener.keyCombo;\n if (keyCombo === null || !keyCombo.check(this._locale.pressedKeys)) {\n if (this._callerHandler !== listener.releaseHandler) {\n var oldCaller = this._callerHandler;\n this._callerHandler = listener.releaseHandler;\n listener.preventRepeat = listener.preventRepeatByDefault;\n listener.releaseHandler.call(this, event);\n this._callerHandler = oldCaller;\n }\n this._appliedListeners.splice(i, 1);\n i -= 1;\n }\n }\n};\n\nKeyboard.prototype._handleCommandBug = function(event, platform) {\n // On Mac when the command key is kept pressed, keyup is not triggered for any other key.\n // In this case force a keyup for non-modifier keys directly after the keypress.\n var modifierKeys = [\"shift\", \"ctrl\", \"alt\", \"capslock\", \"tab\", \"command\"];\n if (platform.match(\"Mac\") && this._locale.pressedKeys.includes(\"command\") &&\n !modifierKeys.includes(this._locale.getKeyNames(event.keyCode)[0])) {\n this._targetKeyUpBinding(event);\n }\n};\n\nmodule.exports = Keyboard;\n","\nmodule.exports = function(locale, platform, userAgent) {\n\n // general\n locale.bindKeyCode(3, ['cancel']);\n locale.bindKeyCode(8, ['backspace']);\n locale.bindKeyCode(9, ['tab']);\n locale.bindKeyCode(12, ['clear']);\n locale.bindKeyCode(13, ['enter']);\n locale.bindKeyCode(16, ['shift']);\n locale.bindKeyCode(17, ['ctrl']);\n locale.bindKeyCode(18, ['alt', 'menu']);\n locale.bindKeyCode(19, ['pause', 'break']);\n locale.bindKeyCode(20, ['capslock']);\n locale.bindKeyCode(27, ['escape', 'esc']);\n locale.bindKeyCode(32, ['space', 'spacebar']);\n locale.bindKeyCode(33, ['pageup']);\n locale.bindKeyCode(34, ['pagedown']);\n locale.bindKeyCode(35, ['end']);\n locale.bindKeyCode(36, ['home']);\n locale.bindKeyCode(37, ['left']);\n locale.bindKeyCode(38, ['up']);\n locale.bindKeyCode(39, ['right']);\n locale.bindKeyCode(40, ['down']);\n locale.bindKeyCode(41, ['select']);\n locale.bindKeyCode(42, ['printscreen']);\n locale.bindKeyCode(43, ['execute']);\n locale.bindKeyCode(44, ['snapshot']);\n locale.bindKeyCode(45, ['insert', 'ins']);\n locale.bindKeyCode(46, ['delete', 'del']);\n locale.bindKeyCode(47, ['help']);\n locale.bindKeyCode(145, ['scrolllock', 'scroll']);\n locale.bindKeyCode(187, ['equal', 'equalsign', '=']);\n locale.bindKeyCode(188, ['comma', ',']);\n locale.bindKeyCode(190, ['period', '.']);\n locale.bindKeyCode(191, ['slash', 'forwardslash', '/']);\n locale.bindKeyCode(192, ['graveaccent', '`']);\n locale.bindKeyCode(219, ['openbracket', '[']);\n locale.bindKeyCode(220, ['backslash', '\\\\']);\n locale.bindKeyCode(221, ['closebracket', ']']);\n locale.bindKeyCode(222, ['apostrophe', '\\'']);\n\n // 0-9\n locale.bindKeyCode(48, ['zero', '0']);\n locale.bindKeyCode(49, ['one', '1']);\n locale.bindKeyCode(50, ['two', '2']);\n locale.bindKeyCode(51, ['three', '3']);\n locale.bindKeyCode(52, ['four', '4']);\n locale.bindKeyCode(53, ['five', '5']);\n locale.bindKeyCode(54, ['six', '6']);\n locale.bindKeyCode(55, ['seven', '7']);\n locale.bindKeyCode(56, ['eight', '8']);\n locale.bindKeyCode(57, ['nine', '9']);\n\n // numpad\n locale.bindKeyCode(96, ['numzero', 'num0']);\n locale.bindKeyCode(97, ['numone', 'num1']);\n locale.bindKeyCode(98, ['numtwo', 'num2']);\n locale.bindKeyCode(99, ['numthree', 'num3']);\n locale.bindKeyCode(100, ['numfour', 'num4']);\n locale.bindKeyCode(101, ['numfive', 'num5']);\n locale.bindKeyCode(102, ['numsix', 'num6']);\n locale.bindKeyCode(103, ['numseven', 'num7']);\n locale.bindKeyCode(104, ['numeight', 'num8']);\n locale.bindKeyCode(105, ['numnine', 'num9']);\n locale.bindKeyCode(106, ['nummultiply', 'num*']);\n locale.bindKeyCode(107, ['numadd', 'num+']);\n locale.bindKeyCode(108, ['numenter']);\n locale.bindKeyCode(109, ['numsubtract', 'num-']);\n locale.bindKeyCode(110, ['numdecimal', 'num.']);\n locale.bindKeyCode(111, ['numdivide', 'num/']);\n locale.bindKeyCode(144, ['numlock', 'num']);\n\n // function keys\n locale.bindKeyCode(112, ['f1']);\n locale.bindKeyCode(113, ['f2']);\n locale.bindKeyCode(114, ['f3']);\n locale.bindKeyCode(115, ['f4']);\n locale.bindKeyCode(116, ['f5']);\n locale.bindKeyCode(117, ['f6']);\n locale.bindKeyCode(118, ['f7']);\n locale.bindKeyCode(119, ['f8']);\n locale.bindKeyCode(120, ['f9']);\n locale.bindKeyCode(121, ['f10']);\n locale.bindKeyCode(122, ['f11']);\n locale.bindKeyCode(123, ['f12']);\n\n // secondary key symbols\n locale.bindMacro('shift + `', ['tilde', '~']);\n locale.bindMacro('shift + 1', ['exclamation', 'exclamationpoint', '!']);\n locale.bindMacro('shift + 2', ['at', '@']);\n locale.bindMacro('shift + 3', ['number', '#']);\n locale.bindMacro('shift + 4', ['dollar', 'dollars', 'dollarsign', '$']);\n locale.bindMacro('shift + 5', ['percent', '%']);\n locale.bindMacro('shift + 6', ['caret', '^']);\n locale.bindMacro('shift + 7', ['ampersand', 'and', '&']);\n locale.bindMacro('shift + 8', ['asterisk', '*']);\n locale.bindMacro('shift + 9', ['openparen', '(']);\n locale.bindMacro('shift + 0', ['closeparen', ')']);\n locale.bindMacro('shift + -', ['underscore', '_']);\n locale.bindMacro('shift + =', ['plus', '+']);\n locale.bindMacro('shift + [', ['opencurlybrace', 'opencurlybracket', '{']);\n locale.bindMacro('shift + ]', ['closecurlybrace', 'closecurlybracket', '}']);\n locale.bindMacro('shift + \\\\', ['verticalbar', '|']);\n locale.bindMacro('shift + ;', ['colon', ':']);\n locale.bindMacro('shift + \\'', ['quotationmark', '\\'']);\n locale.bindMacro('shift + !,', ['openanglebracket', '<']);\n locale.bindMacro('shift + .', ['closeanglebracket', '>']);\n locale.bindMacro('shift + /', ['questionmark', '?']);\n \n if (platform.match('Mac')) {\n locale.bindMacro('command', ['mod', 'modifier']);\n } else {\n locale.bindMacro('ctrl', ['mod', 'modifier']);\n }\n\n //a-z and A-Z\n for (var keyCode = 65; keyCode <= 90; keyCode += 1) {\n var keyName = String.fromCharCode(keyCode + 32);\n var capitalKeyName = String.fromCharCode(keyCode);\n \tlocale.bindKeyCode(keyCode, keyName);\n \tlocale.bindMacro('shift + ' + keyName, capitalKeyName);\n \tlocale.bindMacro('capslock + ' + keyName, capitalKeyName);\n }\n\n // browser caveats\n var semicolonKeyCode = userAgent.match('Firefox') ? 59 : 186;\n var dashKeyCode = userAgent.match('Firefox') ? 173 : 189;\n var leftCommandKeyCode;\n var rightCommandKeyCode;\n if (platform.match('Mac') && (userAgent.match('Safari') || userAgent.match('Chrome'))) {\n leftCommandKeyCode = 91;\n rightCommandKeyCode = 93;\n } else if(platform.match('Mac') && userAgent.match('Opera')) {\n leftCommandKeyCode = 17;\n rightCommandKeyCode = 17;\n } else if(platform.match('Mac') && userAgent.match('Firefox')) {\n leftCommandKeyCode = 224;\n rightCommandKeyCode = 224;\n }\n locale.bindKeyCode(semicolonKeyCode, ['semicolon', ';']);\n locale.bindKeyCode(dashKeyCode, ['dash', '-']);\n locale.bindKeyCode(leftCommandKeyCode, ['command', 'windows', 'win', 'super', 'leftcommand', 'leftwindows', 'leftwin', 'leftsuper']);\n locale.bindKeyCode(rightCommandKeyCode, ['command', 'windows', 'win', 'super', 'rightcommand', 'rightwindows', 'rightwin', 'rightsuper']);\n\n // kill keys\n locale.setKillKey('command');\n};\n","\nvar Keyboard = require('./lib/keyboard');\nvar Locale = require('./lib/locale');\nvar KeyCombo = require('./lib/key-combo');\n\nvar keyboard = new Keyboard();\n\nkeyboard.setLocale('us', require('./locales/us'));\n\nexports = module.exports = keyboard;\nexports.Keyboard = Keyboard;\nexports.Locale = Locale;\nexports.KeyCombo = KeyCombo;\n","import keyboardjs from 'keyboardjs'\r\nimport * as Actions from '../actions'\r\n\r\nexport default () => {\r\n for (let i = 1; i < 9; i++) {\r\n keyboardjs.bind(`${i}`, () => Actions.closeByLevel(i))\r\n }\r\n keyboardjs.bind('0', Actions.openAll)\r\n keyboardjs.bind('9', Actions.closeAll)\r\n keyboardjs.bind('?', Actions.openHelp)\r\n keyboardjs.bind('esc', Actions.closeHelp)\r\n}\r\n\r\nexport const removeEvent = () => {\r\n keyboardjs.reset()\r\n}\r\n","import riot from 'riot'\r\nimport 'normalize.css'\r\nimport './main.css'\r\nimport './app/root.tag'\r\nimport setKeyboardEvent from './tools/keyboard'\r\nimport { setPattern } from './actions'\r\n\r\nexport const generateList = pattern => {\r\n if (pattern) setPattern(pattern)\r\n if (window.app) return\r\n setKeyboardEvent()\r\n window.app = riot.mount('app-root')\r\n}\r\n","import {generateList} from 'am-mocktimes/src/main'\nimport pattern from '../mock/pattern.yml'\n\ngenerateList(pattern)\n"]}