{"version":3,"sources":["webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/vue-class-component@7.1.0/node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/vue-property-decorator@8.2.1_prettier@1.18.2/node_modules/vue-property-decorator/lib/vue-property-decorator.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/utils.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/vue-property-decorator@7.3.0/node_modules/vue-property-decorator/lib/vue-property-decorator.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/vue-class-component@6.3.2/node_modules/vue-class-component/dist/vue-class-component.common.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.string.starts-with.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.array.reduce.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.object.assign.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/jsondiffpatch@0.4.1/node_modules/jsondiffpatch/dist/jsondiffpatch.umd.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/i18n-iso-countries@7.5.0/node_modules/i18n-iso-countries/index.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.object.define-properties.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.reflect.get.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.array.join.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.array.sort.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/create-html.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/string-html-forced.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/helpers/buildURL.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/index.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.regexp.flags.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.string.link.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/array-reduce.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/helpers/combineURLs.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/vue-loader@15.10.0_css-loader@3.2.0_lodash@4.17.21_vue-template-compiler@2.7.15_webpack@4.46.0/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.number.to-fixed.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.object.values.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.object.entries.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.array.last-index-of.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-to-array.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/engine-ff-version.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/engine-webkit-version.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/helpers/bind.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/cancel/isCancel.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/defaults.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/adapters/xhr.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/core/createError.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/core/mergeConfig.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/cancel/Cancel.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/vue-class-component@7.2.6_vue@2.7.15/node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-integral-number.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/esnext.string.replace-all.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/array-last-index-of.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.string.ends-with.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.array.every.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.string.match.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/this-number-value.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/string-repeat.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.array.flat-map.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.array.find-index.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-data-descriptor.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.string.fixed.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.weak-map.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.weak-map.constructor.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/collection-weak.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.symbol.replace.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/axios.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/is-buffer@2.0.5/node_modules/is-buffer/index.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/core/Axios.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/core/InterceptorManager.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/core/dispatchRequest.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/core/transformData.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/core/settle.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/core/enhanceError.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/helpers/cookies.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/cancel/CancelToken.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/axios@0.19.0/node_modules/axios/lib/helpers/spread.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.number.is-integer.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.string.replace-all.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/diacritics@1.3.0/node_modules/diacritics/index.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.object.from-entries.js","webpack:///C:/a/1/s/Cognito.Web.Client/node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/flatten-into-array.js"],"names":["reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","forwardMetadata","to","from","propertyKey","forEach","metaKey","metadata","getOwnMetadata","hasProto","__proto__","Array","createDecorator","factory","target","key","index","Ctor","constructor","__decorators__","undefined","push","options","mixins","Ctors","_i","arguments","length","extend","$internalHooks","componentFactory","Component","name","_componentTag","proto","prototype","Object","getOwnPropertyNames","indexOf","descriptor","getOwnPropertyDescriptor","value","methods","data","_a","get","set","computed","vm","originalInit","_init","_this","this","keys","$options","props","hasOwnProperty","charAt","defineProperty","configurable","plainData","collectDataFromConstructor","decorators","fn","superProto","getPrototypeOf","Super","Extended","Original","shouldIgnore","extendedDescriptor","type","superDescriptor","forwardStaticMembers","callee","caller","registerHooks","apply","Inject","componentOptions","inject","isArray","Provide","k","provide","managed","original_1","rv","create","call","i","reflectMetadataIsSupported","getMetadata","applyMetadata","Prop","Watch","path","deep","_b","immediate","handler","watch","bind","isBuffer","toString","val","isObject","isFunction","obj","l","module","exports","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","deepMerge","a","b","thisArg","trim","str","replace","$","fails","toIndexedObject","nativeGetOwnPropertyDescriptor","f","DESCRIPTORS","stat","forced","sham","it","Model","event","model","prop","hyphenateRE","Emit","_target","toLowerCase","original","args","emit","returnValue","unshift","$emit","concat","isPromise","then","Promise","ex","Vue","default","uncurryThis","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","nativeStartsWith","startsWith","stringSlice","slice","min","Math","CORRECT_IS_REGEXP_LOGIC","String","writable","searchString","that","search","$reduce","left","arrayMethodIsStrict","CHROME_VERSION","reduce","callbackfn","assign","arity","chalk","_typeof","Symbol","iterator","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","enumerable","protoProps","staticProps","object","property","receiver","Function","desc","parent","getter","inherits","subClass","superClass","setPrototypeOf","possibleConstructorReturn","self","ReferenceError","slicedToArray","arr","_arr","_n","_d","_e","_s","next","done","err","sliceIterator","toConsumableArray","arr2","Processor","selfOptions","pipes","_options","pipeArg","processor","input","context","nextPipe","lastPipe","lastContext","nextAfterChildren","process","hasResult","Pipe","filters","Error","debug","filter","log","filterName","exiting","resultCheck","msg","console","_filters","_filters2","map","params","splice","should","error","noResult","Context","child","childName","root","children","clone","arg","Date","getTime","RegExp","regexMatch","exec","cloned","DiffContext","_Context","right","cloneDiffValues","clone$$1","setResult","PatchContext","delta","ReverseContext","isArray$1","diffFilter","leftType","rightType","leftIsArray","rightIsArray","exit","patchFilter","nested","regexArgs","reverseFilter","collectChildrenDiffFilter","_t","objectsDiffFilter","propertyFilter","patchFilter$1","collectChildrenPatchFilter","reverseFilter$1","collectChildrenReverseFilter","defaultMatch","array1","array2","index1","index2","lcs","match","innerContext","matrix","subsequence","sequence","indices1","indices2","backtrack","len1","len2","x","y","max","lengthMatrix","join","isArray$2","arrayIndexOf","array","item","matchItems","value1","value2","objectHash","matchByPosition","hash1","hash2","hashCache1","hashCache2","diffFilter$1","matchContext","commonHead","commonTail","val1","val2","arraysHaveMatchByRef","trimmed1","trimmed2","seq","removedItems","detectMove","arrays","includeValueOnMove","removedItemsLength","indexOnArray2","isMove","removeItemIndex1","compare","patchFilter$2","toRemove","toInsert","toModify","parseInt","sort","indexDiff","removedValue","toInsertLength","insertion","toModifyLength","modification","collectChildrenPatchFilter$1","reverseFilter$2","newName","substr","reverseArrayDeltaIndex","itemDelta","reverseIndex","deltaIndex","deltaItem","moveFromIndex","moveToIndex","collectChildrenReverseFilter$1","diffFilter$2","diffMatchPatch","createCommonjsModule","diff_match_patch","Diff_Timeout","Diff_EditCost","Match_Threshold","Match_Distance","Patch_DeleteThreshold","Patch_Margin","Match_MaxBits","diff_main","text1","text2","opt_checklines","opt_deadline","Number","MAX_VALUE","deadline","checklines","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_lineMode_","diff_bisect_","diff_linesToChars_","chars1","chars2","linearray","lineArray","diff_charsToLines_","diff_cleanupSemantic","pointer","count_delete","count_insert","text_delete","text_insert","j","pop","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","d","k1","k1_offset","y1","x1","k2_offset","x2","diff_bisectSplit_","k2","y2","text1a","text2a","text1b","text2b","diffsb","lineHash","diff_linesToCharsMunge_","text","chars","lineStart","lineEnd","lineArrayLength","line","fromCharCode","charCodeAt","pointermin","pointermax","pointermid","pointerstart","floor","pointerend","diff_commonOverlap_","text_length","best","pattern","found","dmp","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","suffixLength","hm1","hm2","changes","equalities","equalitiesLength","lastequality","length_insertions1","length_deletions1","length_insertions2","length_deletions2","diff_cleanupSemanticLossless","deletion","overlap_length1","overlap_length2","diff_cleanupSemanticScore_","one","two","char1","char2","nonAlphaNumeric1","nonAlphaNumericRegex_","nonAlphaNumeric2","whitespace1","whitespaceRegex_","whitespace2","lineBreak1","linebreakRegex_","lineBreak2","blankLine1","blanklineEndRegex_","blankLine2","blanklineStartRegex_","equality1","edit","equality2","commonOffset","commonString","bestEquality1","bestEdit","bestEquality2","bestScore","score","diff_cleanupEfficiency","pre_ins","pre_del","post_ins","post_del","diff_xIndex","loc","last_chars1","last_chars2","diff_prettyHtml","html","pattern_amp","pattern_lt","pattern_gt","pattern_para","op","diff_text1","diff_text2","diff_levenshtein","levenshtein","insertions","deletions","diff_toDelta","encodeURI","diff_fromDelta","diffsLength","tokens","split","param","decodeURI","n","isNaN","match_main","match_bitap_","s","match_alphabet_","match_bitapScore_","e","accuracy","proximity","abs","score_threshold","best_loc","lastIndexOf","bin_min","bin_mid","matchmask","last_rd","bin_max","start","finish","rd","charMatch","patch_addContext_","patch","start2","length1","padding","prefix","suffix","start1","length2","patch_make","opt_b","opt_c","patches","patch_obj","patchDiffLength","char_count1","char_count2","prepatch_text","postpatch_text","diff_type","diff_text","patch_deepCopy","patchesCopy","patchCopy","patch_apply","nullPadding","patch_addPadding","patch_splitMax","results","start_loc","expected_loc","end_loc","mod","paddingLength","extraLength","patch_size","bigpatch","precontext","empty","shift","postcontext","patch_toText","patch_fromText","textline","textPointer","patchHeader","m","sign","cachedDiffPatch","getDiffMatchPatch","required","diff_match_patch_not_found","diff","txt1","txt2","_patch","textPatchFailed","diffFilter$3","minLength","textDiff","diffMatchPatch$$1","patchFilter$3","textDeltaReverse","lines","lineTmp","header","headerRegex","reverseFilter$3","DiffPatcher","append","shouldHaveResult","_processor","reverse","isArray$3","getObjectKeys","names","arrayKeyToSortNumber","arrayKeyComparer","key1","key2","BaseFormatter","prepareContext","recurse","finalize","out","_buffer","deltaType","_ref","leftKey","movedFrom","isLast","leftValue","getDeltaType","nodeType","nodeBegin","rootBegin","typeFormattterNotFound","typeFormattterErrorFormatter","stack","nodeEnd","rootEnd","forEachDeltaKey","arrayKeys","moveDestinations","includeMoveDestinations","output","lineOutput","pieces","location","chr","pieceIndex","piecesLength","piece","pieceOutput","base","freeze","HtmlFormatter","_BaseFormatter","htmlEscape","JSON","stringify","parseTextDiff","nodeClass","hasArrows","adjustArrows","formatValue","formatDeltaChildren","formatTextDiffString","replacements","nodeArg","node","el","query","elems","querySelectorAll","eachByQuery","_ref3","parentNode","style","arrowParent","svg","display","textContent","innerText","destination","querySelector","container","destinationElem","_ref2","eachChildren","getAttribute","distance","offsetTop","setAttribute","top","curve","round","showUnchanged","show","delay","body","classes","showing","hiding","visible","hidden","list","classList","remove","add","setTimeout","intervalId","setInterval","clearInterval","defaultInstance","hideUnchanged","format","AnnotatedFormatter","indent","levels","indentLevel","indentPad","row","json","htmlNote","wrapPropertyName","deltaAnnotations","added","formatLegend","modified","deleted","moved","textdiff","formatAnyChange","annotator","format_added","format_modified","format_deleted","format_moved","format_textdiff","defaultInstance$1","annotated","OPERATIONS","JSONFormatter","pushCurrentOp","currentPath","pushMoveOp","toPath","last","opsByDescendingOrder","removeOps","pred","indexA","indexB","lastA","lastB","splitA","splitB","partitionOps","fns","initArr","fill","position","acc","isMoveOp","isRemoveOp","_ref4","defaultInstance$2","format$2","_partitionOps","_partitionOps2","moveOps","removedOps","restOps","removeOpsReverse","reorderOps","jsonpatch","chalkColor","_len","_key","colors","movedestination","unchanged","textDiffLine","ConsoleFormatter","outLine","_len2","_key2","color","pushColor","popColor","defaultInstance$3","format$3","console$1","defaultInstance$4","formatters","dateReviver","parts","UTC","unpatch","codes","supportedLocales","removeDiacritics","registeredLocales","alpha2","alpha3","numeric","invertedNumeric","formatNumericCode","code","filterNameBy","countryNameList","alpha3ToAlpha2","alpha2ToAlpha3","numericToAlpha3","padded","numericToAlpha2","toAlpha2","test","toUpperCase","codeInformation","registerLocale","localeData","locale","countries","alpha3ToNumeric","alpha2ToNumeric","toAlpha3","getName","lang","select","nameList","getNames","localeList","newLocaleList","localeFilter","getAlpha2Code","normalizeString","string","areSimilar","codenames","p","mappedName","getSimpleAlpha2Code","getAlpha2Codes","getAlpha3Code","getSimpleAlpha3Code","getAlpha3Codes","getNumericCodes","langs","getSupportedLanguages","isValid","coerced","ownKeys","getOwnPropertyDescriptorModule","createProperty","getOwnPropertyDescriptors","O","anObject","isDataDescriptor","IndexedObject","nativeJoin","separator","aCallable","toObject","lengthOfArrayLike","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","v","comparefn","itemsLength","items","arrayLength","getSortCompare","quot","tag","attribute","S","p1","METHOD_NAME","utils","encode","encodeURIComponent","url","paramsSerializer","serializedParams","toISOString","hashmarkIndex","global","defineBuiltInAccessor","regExpFlags","RegExpPrototype","INDICES_SUPPORT","calls","expected","addGetter","pairs","dotAll","ignoreCase","multiline","sticky","hasIndices","createHTML","forcedStringHTMLMethod","link","$TypeError","createMethod","IS_RIGHT","argumentsLength","memo","baseURL","relativeURL","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","toIntegerOrInfinity","thisNumberValue","$repeat","$RangeError","RangeError","$String","repeat","nativeToFixed","toFixed","pow","multiply","c","c2","divide","dataToString","t","fractionDigits","z","number","fractDigits","$values","values","$entries","entries","objectGetPrototypeOf","objectKeys","propertyIsEnumerable","IE_BUG","TO_ENTRIES","IE_WORKAROUND","firefox","UA","webkit","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","defaults","XMLHttpRequest","transformRequest","transformResponse","parse","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","method","settle","buildURL","parseHeaders","isURLSameOrigin","createError","config","resolve","reject","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","cookies","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","enhanceError","message","config1","config2","Cancel","_defineProperty","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","copyReflectionMetadata","isInteger","isFinite","$lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","nativeEndsWith","endsWith","endPosition","len","end","$every","every","fixRegExpWellKnownSymbolLogic","isNullOrUndefined","getMethod","advanceStringIndex","regExpExec","MATCH","nativeMatch","maybeCallNative","regexp","matcher","rx","res","fullUnicode","unicode","lastIndex","A","matchStr","nonConfigurable","nonWritable","MAX_SAFE_INTEGER","valueOf","count","Infinity","flattenIntoArray","arraySpeciesCreate","flatMap","sourceLen","addToUnscopables","$findIndex","findIndex","SKIPS_HOLES","hasOwn","fixed","InternalWeakMap","FREEZING","defineBuiltIns","InternalMetadataModule","collection","collectionWeak","enforceInternalState","enforce","NATIVE_WEAK_MAP","$Object","isExtensible","isFrozen","isSealed","seal","FROZEN","SEALED","IS_IE11","ActiveXObject","wrapper","init","$WeakMap","WeakMapPrototype","nativeSet","getConstructor","enable","nativeDelete","nativeHas","has","nativeGet","state","frozen","frozenArray","arrayIntegrityLevel","getWeakData","anInstance","iterate","ArrayIterationModule","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","find","id","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","store","entry","CONSTRUCTOR_NAME","IS_MAP","ADDER","iterable","Prototype","AS_ENTRIES","getInternalState","define","defineWellKnownSymbol","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","handlers","use","eject","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","reason","normalizedName","isAxiosError","toJSON","description","fileName","lineNumber","columnNumber","ignoreDuplicateOf","parsed","originURL","msie","userAgent","urlParsingNode","createElement","resolveURL","href","protocol","host","hash","hostname","port","pathname","requestURL","write","expires","domain","secure","cookie","toGMTString","decodeURIComponent","now","executor","resolvePromise","token","source","callback","isCallable","isRegExp","getRegExpFlags","getSubstitution","wellKnownSymbol","REPLACE","stringIndexOf","searchValue","fromIndex","replaceAll","replaceValue","IS_REG_EXP","flags","replacer","functionalReplace","searchLength","advanceBy","replacement","endOfLastMatch","diacriticsMap","replacementList","fromEntries","doesNotExceedSafeInteger","depth","mapper","element","elementLen","targetIndex","sourceIndex","mapFn"],"mappings":"gGAAA,yFAUIA,EAA2C,oBAAZC,SAA2BA,QAAQC,gBAAkBD,QAAQE,mBAUhG,SAASC,EAAgBC,EAAIC,EAAMC,IAChBA,EACTN,QAAQE,mBAAmBG,EAAMC,GACjCN,QAAQE,mBAAmBG,IACxBE,SAAQ,SAAUC,GACvB,IAAIC,EAAWH,EACTN,QAAQU,eAAeF,EAASH,EAAMC,GACtCN,QAAQU,eAAeF,EAASH,GAClCC,EACAN,QAAQC,eAAeO,EAASC,EAAUL,EAAIE,GAG9CN,QAAQC,eAAeO,EAASC,EAAUL,MAKtD,IACIO,EADY,CAAEC,UAAW,cACOC,MACpC,SAASC,EAAgBC,GACrB,OAAO,SAAUC,EAAQC,EAAKC,GAC1B,IAAIC,EAAyB,mBAAXH,EACZA,EACAA,EAAOI,YACRD,EAAKE,iBACNF,EAAKE,eAAiB,IAEL,iBAAVH,IACPA,OAAQI,GAEZH,EAAKE,eAAeE,MAAK,SAAUC,GAAW,OAAOT,EAAQS,EAASP,EAAKC,OAGnF,SAASO,IAEL,IADA,IAAIC,EAAQ,GACHC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCD,EAAMC,GAAMC,UAAUD,GAE1B,OAAO,IAAIG,OAAO,CAAEL,OAAQC,IAyDhC,IAAIK,EAAiB,CACjB,OACA,eACA,UACA,cACA,UACA,gBACA,YACA,eACA,UACA,YACA,cACA,SACA,gBACA,kBAEJ,SAASC,EAAiBC,EAAWT,QACjB,IAAZA,IAAsBA,EAAU,IACpCA,EAAQU,KAAOV,EAAQU,MAAQD,EAAUE,eAAiBF,EAAUC,KAEpE,IAAIE,EAAQH,EAAUI,UACtBC,OAAOC,oBAAoBH,GAAO7B,SAAQ,SAAUU,GAChD,GAAY,gBAARA,EAIJ,GAAIc,EAAeS,QAAQvB,IAAQ,EAC/BO,EAAQP,GAAOmB,EAAMnB,OADzB,CAIA,IAAIwB,EAAaH,OAAOI,yBAAyBN,EAAOnB,QAC/B,IAArBwB,EAAWE,MAEqB,mBAArBF,EAAWE,OACjBnB,EAAQoB,UAAYpB,EAAQoB,QAAU,KAAK3B,GAAOwB,EAAWE,OAI7DnB,EAAQC,SAAWD,EAAQC,OAAS,KAAKF,KAAK,CAC3CsB,KAAM,WACF,IAAIC,EACJ,OAAOA,EAAK,IAAO7B,GAAOwB,EAAWE,MAAOG,MAKnDL,EAAWM,KAAON,EAAWO,QAEjCxB,EAAQyB,WAAazB,EAAQyB,SAAW,KAAKhC,GAAO,CACjD8B,IAAKN,EAAWM,IAChBC,IAAKP,EAAWO,WAI3BxB,EAAQC,SAAWD,EAAQC,OAAS,KAAKF,KAAK,CAC3CsB,KAAM,WACF,OArGZ,SAAoCK,EAAIjB,GAEpC,IAAIkB,EAAelB,EAAUI,UAAUe,MACvCnB,EAAUI,UAAUe,MAAQ,WACxB,IAAIC,EAAQC,KAERC,EAAOjB,OAAOC,oBAAoBW,GAEtC,GAAIA,EAAGM,SAASC,MACZ,IAAK,IAAIxC,KAAOiC,EAAGM,SAASC,MACnBP,EAAGQ,eAAezC,IACnBsC,EAAKhC,KAAKN,GAItBsC,EAAKhD,SAAQ,SAAUU,GACG,MAAlBA,EAAI0C,OAAO,IACXrB,OAAOsB,eAAeP,EAAOpC,EAAK,CAC9B8B,IAAK,WAAc,OAAOG,EAAGjC,IAC7B+B,IAAK,SAAUL,GAASO,EAAGjC,GAAO0B,GAClCkB,cAAc,QAM9B,IAAIhB,EAAO,IAAIZ,EAEfA,EAAUI,UAAUe,MAAQD,EAE5B,IAAIW,EAAY,GAYhB,OAXAxB,OAAOiB,KAAKV,GAAMtC,SAAQ,SAAUU,QACdK,IAAduB,EAAK5B,KACL6C,EAAU7C,GAAO4B,EAAK5B,OASvB6C,EA2DQC,CAA2BT,KAAMrB,MAIhD,IAAI+B,EAAa/B,EAAUZ,eACvB2C,IACAA,EAAWzD,SAAQ,SAAU0D,GAAM,OAAOA,EAAGzC,aACtCS,EAAUZ,gBAGrB,IA1K4BjB,EAAIC,EA0K5B6D,EAAa5B,OAAO6B,eAAelC,EAAUI,WAC7C+B,EAAQF,aAAsB,IAC5BA,EAAW9C,YACX,IACFiD,EAAWD,EAAMtC,OAAON,GAK5B,OAuBJ,SAA8B6C,EAAUC,EAAUF,GAE9C9B,OAAOC,oBAAoB+B,GAAU/D,SAAQ,SAAUU,GAEnD,IAAIsD,EAAatD,GAAjB,CAIA,IAAIuD,EAAqBlC,OAAOI,yBAAyB2B,EAAUpD,GACnE,IAAIuD,GAAuBA,EAAmBX,aAA9C,CAGA,IArKalB,EACb8B,EAoKIhC,EAAaH,OAAOI,yBAAyB4B,EAAUrD,GAQ3D,IAAKN,EAAU,CAIX,GAAY,QAARM,EACA,OAEJ,IAAIyD,EAAkBpC,OAAOI,yBAAyB0B,EAAOnD,GAC7D,GArLS0B,EAqLQF,EAAWE,MApLhC8B,SAAc9B,EACF,MAATA,IAA2B,WAAT8B,GAA8B,aAATA,IAoLlCC,GACAA,EAAgB/B,QAAUF,EAAWE,MACrC,OAIJ,EAMJL,OAAOsB,eAAeS,EAAUpD,EAAKwB,QApEzCkC,CAAqBN,EAAUpC,EAAWmC,GACtCrE,IA/KJI,EAD4BC,EAiLDiE,EAjLKhE,EAiLK4B,GA/KrCK,OAAOC,oBAAoBlC,EAAKgC,WAAW9B,SAAQ,SAAUU,GACzDd,EAAgBC,EAAGiC,UAAWhC,EAAKgC,UAAWpB,MAElDqB,OAAOC,oBAAoBlC,GAAME,SAAQ,SAAUU,GAC/Cd,EAAgBC,EAAIC,EAAMY,OA6KvBoD,EAEX,IAeIE,EAAe,CACflC,WAAW,EACXT,WAAW,EACXgD,QAAQ,EACRC,QAAQ,GA+CZ,SAAS5C,EAAUT,GACf,MAAuB,mBAAZA,EACAQ,EAAiBR,GAErB,SAAUS,GACb,OAAOD,EAAiBC,EAAWT,IAG3CS,EAAU6C,cAAgB,SAAuBvB,GAC7CxB,EAAeR,KAAKwD,MAAMhD,EAAgBwB,IAG/B,O,iCC9Qf,+LAaO,SAASyB,EAAOxD,GACnB,OAAO,aAAgB,SAAUyD,EAAkBhE,QACR,IAA5BgE,EAAiBC,SACxBD,EAAiBC,OAAS,IAEzBrE,MAAMsE,QAAQF,EAAiBC,UAChCD,EAAiBC,OAAOjE,GAAOO,GAAWP,MAgC/C,SAASmE,EAAQnE,GACpB,OAAO,aAAgB,SAAUgE,EAAkBI,GAC/C,IAAIC,EAAUL,EAAiBK,QAC/B,GAAuB,mBAAZA,IAA2BA,EAAQC,QAAS,CACnD,IAAIC,EAAaP,EAAiBK,SAClCA,EAAUL,EAAiBK,QAAU,WACjC,IAAIG,EAAKnD,OAAOoD,QAA8B,mBAAfF,EAA4BA,EAAWG,KAAKrC,MAAQkC,IAC/E,MACJ,IAAK,IAAII,KAAKN,EAAQC,QAClBE,EAAGH,EAAQC,QAAQK,IAAMtC,KAAKsC,GAClC,OAAOH,IAEHF,QAAU,GAEtBD,EAAQC,QAAQF,GAAKpE,GAAOoE,KAqCpC,IAAIQ,EAAgD,oBAAZ7F,cAA0D,IAAxBA,QAAQ8F,YAClF,SAASC,EAAcvE,EAASR,EAAQC,GAChC4E,IACKhF,MAAMsE,QAAQ3D,IACI,mBAAZA,QACiB,IAAjBA,EAAQiD,OACfjD,EAAQiD,KAAOzE,QAAQ8F,YAAY,cAAe9E,EAAQC,KA0B/D,SAAS+E,EAAKxE,GAEjB,YADgB,IAAZA,IAAsBA,EAAU,IAC7B,SAAUR,EAAQC,GACrB8E,EAAcvE,EAASR,EAAQC,GAC/B,aAAgB,SAAUgE,EAAkBI,IAEvCJ,EAAiBxB,QAAUwB,EAAiBxB,MAAQ,KAAK4B,GAAK7D,IAFnE,CAGGR,EAAQC,IAmCZ,SAASgF,EAAMC,EAAM1E,QACR,IAAZA,IAAsBA,EAAU,IACpC,IAAIsB,EAAKtB,EAAQ2E,KAAMA,OAAc,IAAPrD,GAAwBA,EAAIsD,EAAK5E,EAAQ6E,UAAWA,OAAmB,IAAPD,GAAwBA,EACtH,OAAO,aAAgB,SAAUnB,EAAkBqB,GACT,iBAA3BrB,EAAiBsB,QACxBtB,EAAiBsB,MAAQjE,OAAOoD,OAAO,OAE3C,IAAIa,EAAQtB,EAAiBsB,MACF,iBAAhBA,EAAML,IAAuBrF,MAAMsE,QAAQoB,EAAML,SAG5B,IAAhBK,EAAML,KAClBK,EAAML,GAAQ,IAHdK,EAAML,GAAQ,CAACK,EAAML,IAKzBK,EAAML,GAAM3E,KAAK,CAAE+E,QAASA,EAASH,KAAMA,EAAME,UAAWA,S,iCC5LpE,IAAIG,EAAO,EAAQ,KACfC,EAAW,EAAQ,KAMnBC,EAAWpE,OAAOD,UAAUqE,SAQhC,SAASvB,EAAQwB,GACf,MAA8B,mBAAvBD,EAASf,KAAKgB,GA2EvB,SAASC,EAASD,GAChB,OAAe,OAARA,GAA+B,iBAARA,EAuChC,SAASE,EAAWF,GAClB,MAA8B,sBAAvBD,EAASf,KAAKgB,GAwEvB,SAASpG,EAAQuG,EAAK7C,GAEpB,GAAI6C,QAUJ,GALmB,iBAARA,IAETA,EAAM,CAACA,IAGL3B,EAAQ2B,GAEV,IAAK,IAAIlB,EAAI,EAAGmB,EAAID,EAAIjF,OAAQ+D,EAAImB,EAAGnB,IACrC3B,EAAG0B,KAAK,KAAMmB,EAAIlB,GAAIA,EAAGkB,QAI3B,IAAK,IAAI7F,KAAO6F,EACVxE,OAAOD,UAAUqB,eAAeiC,KAAKmB,EAAK7F,IAC5CgD,EAAG0B,KAAK,KAAMmB,EAAI7F,GAAMA,EAAK6F,GAoFrCE,EAAOC,QAAU,CACf9B,QAASA,EACT+B,cA9RF,SAAuBP,GACrB,MAA8B,yBAAvBD,EAASf,KAAKgB,IA8RrBF,SAAUA,EACVU,WAtRF,SAAoBR,GAClB,MAA4B,oBAAbS,UAA8BT,aAAeS,UAsR5DC,kBA7QF,SAA2BV,GAOzB,MAL4B,oBAAhBW,aAAiCA,YAAkB,OACpDA,YAAYC,OAAOZ,GAEnB,GAAUA,EAAU,QAAMA,EAAIa,kBAAkBF,aAyQ3DG,SA9PF,SAAkBd,GAChB,MAAsB,iBAARA,GA8Pde,SArPF,SAAkBf,GAChB,MAAsB,iBAARA,GAqPdC,SAAUA,EACVe,YA7OF,SAAqBhB,GACnB,YAAsB,IAARA,GA6OdiB,OA1NF,SAAgBjB,GACd,MAA8B,kBAAvBD,EAASf,KAAKgB,IA0NrBkB,OAjNF,SAAgBlB,GACd,MAA8B,kBAAvBD,EAASf,KAAKgB,IAiNrBmB,OAxMF,SAAgBnB,GACd,MAA8B,kBAAvBD,EAASf,KAAKgB,IAwMrBE,WAAYA,EACZkB,SAtLF,SAAkBpB,GAChB,OAAOC,EAASD,IAAQE,EAAWF,EAAIqB,OAsLvCC,kBA7KF,SAA2BtB,GACzB,MAAkC,oBAApBuB,iBAAmCvB,aAAeuB,iBA6KhEC,qBAjJF,WACE,OAAyB,oBAAdC,WAAoD,gBAAtBA,UAAUC,SACY,iBAAtBD,UAAUC,SACY,OAAtBD,UAAUC,WAI/B,oBAAXC,QACa,oBAAbC,WA0IThI,QAASA,EACTiI,MA/EF,SAASA,IACP,IAAIC,EAAS,GACb,SAASC,EAAY/B,EAAK1F,GACG,iBAAhBwH,EAAOxH,IAAoC,iBAAR0F,EAC5C8B,EAAOxH,GAAOuH,EAAMC,EAAOxH,GAAM0F,GAEjC8B,EAAOxH,GAAO0F,EAIlB,IAAK,IAAIf,EAAI,EAAGmB,EAAInF,UAAUC,OAAQ+D,EAAImB,EAAGnB,IAC3CrF,EAAQqB,UAAUgE,GAAI8C,GAExB,OAAOD,GAmEPE,UAxDF,SAASA,IACP,IAAIF,EAAS,GACb,SAASC,EAAY/B,EAAK1F,GACG,iBAAhBwH,EAAOxH,IAAoC,iBAAR0F,EAC5C8B,EAAOxH,GAAO0H,EAAUF,EAAOxH,GAAM0F,GAErC8B,EAAOxH,GADiB,iBAAR0F,EACFgC,EAAU,GAAIhC,GAEdA,EAIlB,IAAK,IAAIf,EAAI,EAAGmB,EAAInF,UAAUC,OAAQ+D,EAAImB,EAAGnB,IAC3CrF,EAAQqB,UAAUgE,GAAI8C,GAExB,OAAOD,GA0CP3G,OA/BF,SAAgB8G,EAAGC,EAAGC,GAQpB,OAPAvI,EAAQsI,GAAG,SAAqBlC,EAAK1F,GAEjC2H,EAAE3H,GADA6H,GAA0B,mBAARnC,EACXH,EAAKG,EAAKmC,GAEVnC,KAGNiC,GAwBPG,KAzKF,SAAcC,GACZ,OAAOA,EAAIC,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,O,oBCpKjD,IAAIC,EAAI,EAAQ,GACZC,EAAQ,EAAQ,GAChBC,EAAkB,EAAQ,IAC1BC,EAAiC,EAAQ,IAAmDC,EAC5FC,EAAc,EAAQ,IAM1BL,EAAE,CAAElI,OAAQ,SAAUwI,MAAM,EAAMC,QAJpBF,GAAeJ,GAAM,WAAcE,EAA+B,MAI9BK,MAAOH,GAAe,CACtE7G,yBAA0B,SAAkCiH,EAAI1I,GAC9D,OAAOoI,EAA+BD,EAAgBO,GAAK1I,O,iCCZ/D,6TAUO,SAAS+D,EAAOxD,GACnB,OAAO,2BAAgB,SAAUyD,EAAkBhE,QACR,IAA5BgE,EAAiBC,SACxBD,EAAiBC,OAAS,IAEzBrE,MAAMsE,QAAQF,EAAiBC,UAChCD,EAAiBC,OAAOjE,GAAOO,GAAWP,MAS/C,SAASmE,EAAQnE,GACpB,OAAO,2BAAgB,SAAUgE,EAAkBI,GAC/C,IAAIC,EAAUL,EAAiBK,QAC/B,GAAuB,mBAAZA,IAA2BA,EAAQC,QAAS,CACnD,IAAIC,EAAaP,EAAiBK,SAClCA,EAAUL,EAAiBK,QAAU,WACjC,IAAIG,EAAKnD,OAAOoD,QAA8B,mBAAfF,EAA4BA,EAAWG,KAAKrC,MAAQkC,IAAe,MAClG,IAAK,IAAII,KAAKN,EAAQC,QAClBE,EAAGH,EAAQC,QAAQK,IAAMtC,KAAKsC,GAClC,OAAOH,IAEHF,QAAU,GAEtBD,EAAQC,QAAQF,GAAKpE,GAAOoE,KAS7B,SAASuE,EAAMC,EAAOrI,GAEzB,YADgB,IAAZA,IAAsBA,EAAU,IAC7B,2BAAgB,SAAUyD,EAAkBI,IAC9CJ,EAAiBxB,QAAUwB,EAAiBxB,MAAQ,KAAK4B,GAAK7D,EAC/DyD,EAAiB6E,MAAQ,CAAEC,KAAM1E,EAAGwE,MAAOA,GAASxE,MAQrD,SAASW,EAAKxE,GAEjB,YADgB,IAAZA,IAAsBA,EAAU,IAC7B,2BAAgB,SAAUyD,EAAkBI,IAC9CJ,EAAiBxB,QAAUwB,EAAiBxB,MAAQ,KAAK4B,GAAK7D,KAShE,SAASyE,EAAMC,EAAM1E,QACR,IAAZA,IAAsBA,EAAU,IACpC,IAAIsB,EAAKtB,EAAQ2E,KAAMA,OAAc,IAAPrD,GAAwBA,EAAIsD,EAAK5E,EAAQ6E,UAAWA,OAAmB,IAAPD,GAAwBA,EACtH,OAAO,2BAAgB,SAAUnB,EAAkBqB,GACT,iBAA3BrB,EAAiBsB,QACxBtB,EAAiBsB,MAAQjE,OAAOoD,OAAO,OAE3C,IAAIa,EAAQtB,EAAiBsB,MACF,iBAAhBA,EAAML,IAAuBrF,MAAMsE,QAAQoB,EAAML,SAG5B,IAAhBK,EAAML,KAClBK,EAAML,GAAQ,IAHdK,EAAML,GAAQ,CAACK,EAAML,IAKzBK,EAAML,GAAM3E,KAAK,CAAE+E,QAASA,EAASH,KAAMA,EAAME,UAAWA,OArFpE,0FAyFA,IAAI2D,EAAc,aAOX,SAASC,EAAKJ,GACjB,OAAO,SAAUK,EAASjJ,EAAKwB,GAC3BxB,EAAgBA,EARoBgI,QAAQe,EAAa,OAAOG,cAShE,IAAIC,EAAW3H,EAAWE,MAC1BF,EAAWE,MAAQ,WAGf,IAFA,IAAIU,EAAQC,KACR+G,EAAO,GACF1I,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpC0I,EAAK1I,GAAMC,UAAUD,GAEzB,IAAI2I,EAAO,SAAUC,QACGjJ,IAAhBiJ,GACAF,EAAKG,QAAQD,GACjBlH,EAAMoH,MAAM1F,MAAM1B,EAAO,CAACwG,GAAS5I,GAAKyJ,OAAOL,KAE/CE,EAAcH,EAASrF,MAAMzB,KAAM+G,GACnCM,EAAUJ,GACVA,EAAYK,MAAK,SAAUL,GACvBD,EAAKC,MAITD,EAAKC,KAKrB,SAASI,EAAU7D,GACf,OAAOA,aAAe+D,SAAY/D,GAA2B,mBAAbA,EAAI8D,O;;;;;ICrHxDtI,OAAOsB,eAAeqD,EAAS,aAAc,CAAEtE,OAAO,IAItD,IAF0BmI,EAEtBC,GAFsBD,EAEA,EAAQ,MAF2B,iBAAPA,GAAoB,YAAaA,EAAMA,EAAY,QAAIA,EAIzG/K,EAA2C,oBAAZC,SAA2BA,QAAQC,eAUtE,SAASE,EAAgBC,EAAIC,EAAMC,IAChBA,EACTN,QAAQE,mBAAmBG,EAAMC,GACjCN,QAAQE,mBAAmBG,IACxBE,SAAQ,SAAUC,GACvB,IAAIC,EAAWH,EACTN,QAAQU,eAAeF,EAASH,EAAMC,GACtCN,QAAQU,eAAeF,EAASH,GAClCC,EACAN,QAAQC,eAAeO,EAASC,EAAUL,EAAIE,GAG9CN,QAAQC,eAAeO,EAASC,EAAUL,MAKtD,IACIO,EADY,CAAEC,UAAW,cACOC,MA6EpC,IAAIkB,EAAiB,CACjB,OACA,eACA,UACA,cACA,UACA,gBACA,YACA,eACA,UACA,YACA,cACA,SACA,iBAEJ,SAASC,EAAiBC,EAAWT,QACjB,IAAZA,IAAsBA,EAAU,IACpCA,EAAQU,KAAOV,EAAQU,MAAQD,EAAUE,eAAiBF,EAAUC,KAEpE,IAAIE,EAAQH,EAAUI,UACtBC,OAAOC,oBAAoBH,GAAO7B,SAAQ,SAAUU,GAChD,GAAY,gBAARA,EAIJ,GAAIc,EAAeS,QAAQvB,IAAQ,EAC/BO,EAAQP,GAAOmB,EAAMnB,OADzB,CAIA,IAAIwB,EAAaH,OAAOI,yBAAyBN,EAAOnB,QAC/B,IAArBwB,EAAWE,MAEqB,mBAArBF,EAAWE,OACjBnB,EAAQoB,UAAYpB,EAAQoB,QAAU,KAAK3B,GAAOwB,EAAWE,OAI7DnB,EAAQC,SAAWD,EAAQC,OAAS,KAAKF,KAAK,CAC3CsB,KAAM,WACF,IAAIC,EACJ,OAAOA,EAAK,IAAO7B,GAAOwB,EAAWE,MAAOG,MAKnDL,EAAWM,KAAON,EAAWO,QAEjCxB,EAAQyB,WAAazB,EAAQyB,SAAW,KAAKhC,GAAO,CACjD8B,IAAKN,EAAWM,IAChBC,IAAKP,EAAWO,WAI3BxB,EAAQC,SAAWD,EAAQC,OAAS,KAAKF,KAAK,CAC3CsB,KAAM,WACF,OApGZ,SAAoCK,EAAIjB,GAEpC,IAAIkB,EAAelB,EAAUI,UAAUe,MACvCnB,EAAUI,UAAUe,MAAQ,WACxB,IAAIC,EAAQC,KAERC,EAAOjB,OAAOC,oBAAoBW,GAEtC,GAAIA,EAAGM,SAASC,MACZ,IAAK,IAAIxC,KAAOiC,EAAGM,SAASC,MACnBP,EAAGQ,eAAezC,IACnBsC,EAAKhC,KAAKN,GAItBsC,EAAKhD,SAAQ,SAAUU,GACG,MAAlBA,EAAI0C,OAAO,IACXrB,OAAOsB,eAAeP,EAAOpC,EAAK,CAC9B8B,IAAK,WAAc,OAAOG,EAAGjC,IAC7B+B,IAAK,SAAUL,GAASO,EAAGjC,GAAO0B,GAClCkB,cAAc,QAM9B,IAAIhB,EAAO,IAAIZ,EAEfA,EAAUI,UAAUe,MAAQD,EAE5B,IAAIW,EAAY,GAYhB,OAXAxB,OAAOiB,KAAKV,GAAMtC,SAAQ,SAAUU,QACdK,IAAduB,EAAK5B,KACL6C,EAAU7C,GAAO4B,EAAK5B,OASvB6C,EA0DQC,CAA2BT,KAAMrB,MAIhD,IAAI+B,EAAa/B,EAAUZ,eACvB2C,IACAA,EAAWzD,SAAQ,SAAU0D,GAAM,OAAOA,EAAGzC,aACtCS,EAAUZ,gBAGrB,IAzK4BjB,EAAIC,EAyK5B6D,EAAa5B,OAAO6B,eAAelC,EAAUI,WAC7C+B,EAAQF,aAAsB6G,EAC5B7G,EAAW9C,YACX2J,EACF1G,EAAWD,EAAMtC,OAAON,GAK5B,OAiBJ,SAA8B6C,EAAUC,EAAUF,GAE9C9B,OAAOC,oBAAoB+B,GAAU/D,SAAQ,SAAUU,GAEnD,GAAY,cAARA,EAAJ,CAIA,IAAIuD,EAAqBlC,OAAOI,yBAAyB2B,EAAUpD,GACnE,IAAIuD,GAAuBA,EAAmBX,aAA9C,CAGA,IA9JalB,EACb8B,EA6JIhC,EAAaH,OAAOI,yBAAyB4B,EAAUrD,GAQ3D,IAAKN,EAAU,CAIX,GAAY,QAARM,EACA,OAEJ,IAAIyD,EAAkBpC,OAAOI,yBAAyB0B,EAAOnD,GAC7D,GA9KS0B,EA8KQF,EAAWE,MA7KhC8B,SAAc9B,EACF,MAATA,IAA2B,WAAT8B,GAA8B,aAATA,IA6KlCC,GACAA,EAAgB/B,QAAUF,EAAWE,MACrC,OAIJ,EAMJL,OAAOsB,eAAeS,EAAUpD,EAAKwB,QA9DzCkC,CAAqBN,EAAUpC,EAAWmC,GACtCrE,IA9KJI,EAD4BC,EAgLDiE,EAhLKhE,EAgLK4B,GA9KrCK,OAAOC,oBAAoBlC,EAAKgC,WAAW9B,SAAQ,SAAUU,GACzDd,EAAgBC,EAAGiC,UAAWhC,EAAKgC,UAAWpB,MAElDqB,OAAOC,oBAAoBlC,GAAME,SAAQ,SAAUU,GAC/Cd,EAAgBC,EAAIC,EAAMY,OA4KvBoD,EA8DX,SAASpC,EAAUT,GACf,MAAuB,mBAAZA,EACAQ,EAAiBR,GAErB,SAAUS,GACb,OAAOD,EAAiBC,EAAWT,IAG3CS,EAAU6C,cAAgB,SAAuBvB,GAC7CxB,EAAeR,KAAKwD,MAAMhD,EAAgBwB,IAG9C0D,EAAQ+D,QAAU/I,EAClBgF,EAAQnG,gBAjOR,SAAyBC,GACrB,OAAO,SAAUC,EAAQC,EAAKC,GAC1B,IAAIC,EAAyB,mBAAXH,EACZA,EACAA,EAAOI,YACRD,EAAKE,iBACNF,EAAKE,eAAiB,IAEL,iBAAVH,IACPA,OAAQI,GAEZH,EAAKE,eAAeE,MAAK,SAAUC,GAAW,OAAOT,EAAQS,EAASP,EAAKC,QAuNnF+F,EAAQxF,OApNR,WAEI,IADA,IAAIC,EAAQ,GACHC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCD,EAAMC,GAAMC,UAAUD,GAE1B,OAAOoJ,EAAIjJ,OAAO,CAAEL,OAAQC,M,iCC5DhC,IAkBMe,EAlBFyG,EAAI,EAAQ,GACZ+B,EAAc,EAAQ,KACtBvI,EAA2B,EAAQ,IAAmD4G,EACtF4B,EAAW,EAAQ,IACnBxE,EAAW,EAAQ,IACnByE,EAAa,EAAQ,KACrBC,EAAyB,EAAQ,IACjCC,EAAuB,EAAQ,KAC/BC,EAAU,EAAQ,IAGlBC,EAAmBN,EAAY,GAAGO,YAClCC,EAAcR,EAAY,GAAGS,OAC7BC,EAAMC,KAAKD,IAEXE,EAA0BR,EAAqB,cASnDnC,EAAE,CAAElI,OAAQ,SAAUoB,OAAO,EAAMqH,UAPX6B,GAAYO,IAC9BpJ,EAAaC,EAAyBoJ,OAAOzJ,UAAW,eACrDI,GAAeA,EAAWsJ,aAK8BF,GAA2B,CAC1FL,WAAY,SAAoBQ,GAC9B,IAAIC,EAAOvF,EAAS0E,EAAuB9H,OAC3C6H,EAAWa,GACX,IAAI9K,EAAQgK,EAASS,EAAI/J,UAAUC,OAAS,EAAID,UAAU,QAAKN,EAAW2K,EAAKpK,SAC3EqK,EAASxF,EAASsF,GACtB,OAAOT,EACHA,EAAiBU,EAAMC,EAAQhL,GAC/BuK,EAAYQ,EAAM/K,EAAOA,EAAQgL,EAAOrK,UAAYqK,M,iCChC5D,IAAIhD,EAAI,EAAQ,GACZiD,EAAU,EAAQ,KAA6BC,KAC/CC,EAAsB,EAAQ,KAC9BC,EAAiB,EAAQ,IAU7BpD,EAAE,CAAElI,OAAQ,QAASoB,OAAO,EAAMqH,QATpB,EAAQ,MAIO6C,EAAiB,IAAMA,EAAiB,KACzCD,EAAoB,WAII,CAClDE,OAAQ,SAAgBC,GACtB,IAAI3K,EAASD,UAAUC,OACvB,OAAOsK,EAAQ7I,KAAMkJ,EAAY3K,EAAQA,EAAS,EAAID,UAAU,QAAKN,O,oBCjBzE,IAAI4H,EAAI,EAAQ,GACZuD,EAAS,EAAQ,KAKrBvD,EAAE,CAAElI,OAAQ,SAAUwI,MAAM,EAAMkD,MAAO,EAAGjD,OAAQnH,OAAOmK,SAAWA,GAAU,CAC9EA,OAAQA,K,qBCHF,SAAWxF,EAAQ0F,GAAS,aAEpCA,EAAQA,GAASA,EAAMjJ,eAAe,WAAaiJ,EAAe,QAAIA,EAEtE,IAAIC,EAA4B,mBAAXC,QAAoD,iBAApBA,OAAOC,SAAwB,SAAUhG,GAC5F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAyB,mBAAX+F,QAAyB/F,EAAI1F,cAAgByL,QAAU/F,IAAQ+F,OAAOxK,UAAY,gBAAkByE,GAavHiG,EAAiB,SAAUC,EAAUC,GACvC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,sCAIpBC,EAAc,WAChB,SAASC,EAAiBpM,EAAQyC,GAChC,IAAK,IAAImC,EAAI,EAAGA,EAAInC,EAAM5B,OAAQ+D,IAAK,CACrC,IAAInD,EAAagB,EAAMmC,GACvBnD,EAAW4K,WAAa5K,EAAW4K,aAAc,EACjD5K,EAAWoB,cAAe,EACtB,UAAWpB,IAAYA,EAAWsJ,UAAW,GACjDzJ,OAAOsB,eAAe5C,EAAQyB,EAAWxB,IAAKwB,IAIlD,OAAO,SAAUwK,EAAaK,EAAYC,GAGxC,OAFID,GAAYF,EAAiBH,EAAY5K,UAAWiL,GACpDC,GAAaH,EAAiBH,EAAaM,GACxCN,GAdO,GAwBdlK,EAAM,SAASA,EAAIyK,EAAQC,EAAUC,GACxB,OAAXF,IAAiBA,EAASG,SAAStL,WACvC,IAAIuL,EAAOtL,OAAOI,yBAAyB8K,EAAQC,GAEnD,QAAanM,IAATsM,EAAoB,CACtB,IAAIC,EAASvL,OAAO6B,eAAeqJ,GAEnC,OAAe,OAAXK,OACF,EAEO9K,EAAI8K,EAAQJ,EAAUC,GAE1B,GAAI,UAAWE,EACpB,OAAOA,EAAKjL,MAEZ,IAAImL,EAASF,EAAK7K,IAElB,YAAezB,IAAXwM,EAIGA,EAAOnI,KAAK+H,QAJnB,GAQAK,EAAW,SAAUC,EAAUC,GACjC,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIf,UAAU,kEAAoEe,GAG1FD,EAAS3L,UAAYC,OAAOoD,OAAOuI,GAAcA,EAAW5L,UAAW,CACrEjB,YAAa,CACXuB,MAAOqL,EACPX,YAAY,EACZtB,UAAU,EACVlI,cAAc,KAGdoK,IAAY3L,OAAO4L,eAAiB5L,OAAO4L,eAAeF,EAAUC,GAAcD,EAASpN,UAAYqN,IAazGE,EAA4B,SAAUC,EAAMzI,GAC9C,IAAKyI,EACH,MAAM,IAAIC,eAAe,6DAG3B,OAAO1I,GAAyB,iBAATA,GAAqC,mBAATA,EAA8ByI,EAAPzI,GAOxE2I,EA2BK,SAAUC,EAAK3I,GACpB,GAAI/E,MAAMsE,QAAQoJ,GAChB,OAAOA,EACF,GAAI1B,OAAOC,YAAYxK,OAAOiM,GACnC,OA9BJ,SAAuBA,EAAK3I,GAC1B,IAAI4I,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKrN,EAET,IACE,IAAK,IAAiCsN,EAA7BjN,EAAK4M,EAAI1B,OAAOC,cAAmB2B,GAAMG,EAAKjN,EAAGkN,QAAQC,QAChEN,EAAKjN,KAAKqN,EAAGjM,QAETiD,GAAK4I,EAAK3M,SAAW+D,GAH8C6I,GAAK,IAK9E,MAAOM,GACPL,GAAK,EACLC,EAAKI,EACL,QACA,KACON,GAAM9M,EAAW,QAAGA,EAAW,SACpC,QACA,GAAI+M,EAAI,MAAMC,GAIlB,OAAOH,EAOEQ,CAAcT,EAAK3I,GAE1B,MAAM,IAAIsH,UAAU,yDAiBtB+B,EAAoB,SAAUV,GAChC,GAAI1N,MAAMsE,QAAQoJ,GAAM,CACtB,IAAK,IAAI3I,EAAI,EAAGsJ,EAAOrO,MAAM0N,EAAI1M,QAAS+D,EAAI2I,EAAI1M,OAAQ+D,IAAKsJ,EAAKtJ,GAAK2I,EAAI3I,GAE7E,OAAOsJ,EAEP,OAAOrO,MAAMR,KAAKkO,IAIlBY,EAAY,WACd,SAASA,EAAU3N,GACjBuL,EAAezJ,KAAM6L,GAErB7L,KAAK8L,YAAc5N,GAAW,GAC9B8B,KAAK+L,MAAQ,GAgEf,OA7DAlC,EAAYgC,EAAW,CAAC,CACtBlO,IAAK,UACL0B,MAAO,SAAiB2M,GAItB,OAHIA,IACFhM,KAAK8L,YAAcE,GAEdhM,KAAK8L,cAEb,CACDnO,IAAK,OACL0B,MAAO,SAAcT,EAAMqN,GACzB,IAAIvH,EAAOuH,EACX,GAAoB,iBAATrN,EAAmB,CAC5B,QAAoB,IAAT8F,EACT,OAAO1E,KAAK+L,MAAMnN,GAElBoB,KAAK+L,MAAMnN,GAAQ8F,EAGvB,GAAI9F,GAAQA,EAAKA,KAAM,CAErB,GADA8F,EAAO9F,EACH8F,EAAKwH,YAAclM,KACrB,OAAO0E,EAET1E,KAAK+L,MAAMrH,EAAK9F,MAAQ8F,EAG1B,OADAA,EAAKwH,UAAYlM,KACV0E,IAER,CACD/G,IAAK,UACL0B,MAAO,SAAiB8M,EAAOzH,GAC7B,IAAI0H,EAAUD,EACdC,EAAQlO,QAAU8B,KAAK9B,UAIvB,IAHA,IAAImO,EAAW3H,GAAQyH,EAAMzH,MAAQ,UACjC4H,OAAW,EACXC,OAAc,EACXF,QACoC,IAA9BD,EAAQI,oBAEjBJ,EAAQb,KAAOa,EAAQI,kBACvBJ,EAAQI,kBAAoB,MAGN,iBAAbH,IACTA,EAAWrM,KAAK0E,KAAK2H,IAEvBA,EAASI,QAAQL,GACjBG,EAAcH,EACdE,EAAWD,EACXA,EAAW,KACPD,GACEA,EAAQb,OACVa,EAAUA,EAAQb,KAClBc,EAAWE,EAAYF,UAAYD,EAAQ1H,MAAQ4H,GAIzD,OAAOF,EAAQM,UAAYN,EAAQjH,YAASnH,MAGzC6N,EArEO,GAwEZc,EAAO,WACT,SAASA,EAAK/N,GACZ6K,EAAezJ,KAAM2M,GAErB3M,KAAKpB,KAAOA,EACZoB,KAAK4M,QAAU,GA4IjB,OAzIA/C,EAAY8C,EAAM,CAAC,CACjBhP,IAAK,UACL0B,MAAO,SAAiB8M,GACtB,IAAKnM,KAAKkM,UACR,MAAM,IAAIW,MAAM,gDAKlB,IAHA,IAAIC,EAAQ9M,KAAK8M,MACbvO,EAASyB,KAAK4M,QAAQrO,OACtB6N,EAAUD,EACLvO,EAAQ,EAAGA,EAAQW,EAAQX,IAAS,CAC3C,IAAImP,EAAS/M,KAAK4M,QAAQhP,GAK1B,GAJIkP,GACF9M,KAAKgN,IAAI,WAAaD,EAAOE,YAE/BF,EAAOX,GACmE,iBAAlD,IAAZA,EAA0B,YAAc9C,EAAQ8C,KAA0BA,EAAQc,QAAS,CACrGd,EAAQc,SAAU,EAClB,QAGCd,EAAQb,MAAQvL,KAAKmN,aACxBnN,KAAKmN,YAAYf,KAGpB,CACDzO,IAAK,MACL0B,MAAO,SAAa+N,GAClBC,QAAQL,IAAI,mBAAqBhN,KAAKpB,KAAO,UAAYwO,KAE1D,CACDzP,IAAK,SACL0B,MAAO,WACL,IAAIiO,EAGJ,OADCA,EAAWtN,KAAK4M,SAAS3O,KAAKwD,MAAM6L,EAAUhP,WACxC0B,OAER,CACDrC,IAAK,UACL0B,MAAO,WACL,IAAIkO,EAGJ,OADCA,EAAYvN,KAAK4M,SAAS1F,QAAQzF,MAAM8L,EAAWjP,WAC7C0B,OAER,CACDrC,IAAK,UACL0B,MAAO,SAAiB4N,GACtB,IAAKA,EACH,MAAM,IAAIJ,MAAM,6BAElB,IAAK,IAAIjP,EAAQ,EAAGA,EAAQoC,KAAK4M,QAAQrO,OAAQX,IAE/C,GADaoC,KAAK4M,QAAQhP,GACfqP,aAAeA,EACxB,OAAOrP,EAGX,MAAM,IAAIiP,MAAM,qBAAuBI,KAExC,CACDtP,IAAK,OACL0B,MAAO,WACL,OAAOW,KAAK4M,QAAQY,KAAI,SAAUxH,GAChC,OAAOA,EAAEiH,gBAGZ,CACDtP,IAAK,QACL0B,MAAO,SAAe4N,GACpB,IAAIrP,EAAQoC,KAAKd,QAAQ+N,GACrBQ,EAASlQ,MAAMwB,UAAUqJ,MAAM/F,KAAK/D,UAAW,GACnD,IAAKmP,EAAOlP,OACV,MAAM,IAAIsO,MAAM,wBAIlB,OAFAY,EAAOvG,QAAQtJ,EAAQ,EAAG,GAC1BL,MAAMwB,UAAU2O,OAAOjM,MAAMzB,KAAK4M,QAASa,GACpCzN,OAER,CACDrC,IAAK,SACL0B,MAAO,SAAgB4N,GACrB,IAAIrP,EAAQoC,KAAKd,QAAQ+N,GACrBQ,EAASlQ,MAAMwB,UAAUqJ,MAAM/F,KAAK/D,UAAW,GACnD,IAAKmP,EAAOlP,OACV,MAAM,IAAIsO,MAAM,wBAIlB,OAFAY,EAAOvG,QAAQtJ,EAAO,GACtBL,MAAMwB,UAAU2O,OAAOjM,MAAMzB,KAAK4M,QAASa,GACpCzN,OAER,CACDrC,IAAK,UACL0B,MAAO,SAAiB4N,GACtB,IAAIrP,EAAQoC,KAAKd,QAAQ+N,GACrBQ,EAASlQ,MAAMwB,UAAUqJ,MAAM/F,KAAK/D,UAAW,GACnD,IAAKmP,EAAOlP,OACV,MAAM,IAAIsO,MAAM,wBAIlB,OAFAY,EAAOvG,QAAQtJ,EAAO,GACtBL,MAAMwB,UAAU2O,OAAOjM,MAAMzB,KAAK4M,QAASa,GACpCzN,OAER,CACDrC,IAAK,SACL0B,MAAO,SAAgB4N,GACrB,IAAIrP,EAAQoC,KAAKd,QAAQ+N,GAEzB,OADAjN,KAAK4M,QAAQc,OAAO9P,EAAO,GACpBoC,OAER,CACDrC,IAAK,QACL0B,MAAO,WAEL,OADAW,KAAK4M,QAAQrO,OAAS,EACfyB,OAER,CACDrC,IAAK,mBACL0B,MAAO,SAA0BsO,GAC/B,IAAe,IAAXA,GAIJ,IAAI3N,KAAKmN,YAAT,CAGA,IAAIzI,EAAO1E,KASX,OARAA,KAAKmN,YAAc,SAAUf,GAC3B,IAAKA,EAAQM,UAAW,CACtBW,QAAQL,IAAIZ,GACZ,IAAIwB,EAAQ,IAAIf,MAAMnI,EAAK9F,KAAO,WAElC,MADAgP,EAAMC,UAAW,EACXD,IAGH5N,WAfLA,KAAKmN,YAAc,SAkBlBR,EAjJE,GAoJPmB,EAAU,WACZ,SAASA,IACPrE,EAAezJ,KAAM8N,GAkDvB,OA/CAjE,EAAYiE,EAAS,CAAC,CACpBnQ,IAAK,YACL0B,MAAO,SAAmB8F,GAGxB,OAFAnF,KAAKmF,OAASA,EACdnF,KAAK0M,WAAY,EACV1M,OAER,CACDrC,IAAK,OACL0B,MAAO,WAEL,OADAW,KAAKkN,SAAU,EACRlN,OAER,CACDrC,IAAK,WACL0B,MAAO,SAAkBkM,EAAM7G,GAS7B,MARoB,iBAAT6G,GAAqBA,aAAgBoB,EAC9C3M,KAAKqM,SAAWd,GAEhBvL,KAAKuL,KAAOA,EACR7G,IACF1E,KAAKqM,SAAW3H,IAGb1E,OAER,CACDrC,IAAK,OACL0B,MAAO,SAAc0O,EAAOnP,GAgB1B,OAfAmP,EAAMxD,OAASvK,UACK,IAATpB,IACTmP,EAAMC,UAAYpP,GAEpBmP,EAAME,KAAOjO,KAAKiO,MAAQjO,KAC1B+N,EAAM7P,QAAU6P,EAAM7P,SAAW8B,KAAK9B,QACjC8B,KAAKkO,UAKRlO,KAAKkO,SAASlO,KAAKkO,SAAS3P,OAAS,GAAGgN,KAAOwC,EAC/C/N,KAAKkO,SAASjQ,KAAK8P,KALnB/N,KAAKkO,SAAW,CAACH,GACjB/N,KAAKwM,kBAAoBxM,KAAKuL,MAAQ,KACtCvL,KAAKuL,KAAOwC,GAKdA,EAAMxC,KAAOvL,KACNA,SAGJ8N,EApDK,GAuDVjM,EAAmC,mBAAlBtE,MAAMsE,QAAyBtE,MAAMsE,QAAU,SAAUyD,GAC5E,OAAOA,aAAa/H,OAQtB,SAAS4Q,EAAMC,GACb,GAAkE,iBAA9C,IAARA,EAAsB,YAAc9E,EAAQ8E,IACtD,OAAOA,EAET,GAAY,OAARA,EACF,OAAO,KAET,GAAIvM,EAAQuM,GACV,OAAOA,EAAIZ,IAAIW,GAEjB,GAAIC,aAAeC,KACjB,OAAO,IAAIA,KAAKD,EAAIE,WAEtB,GAAIF,aAAeG,OACjB,OAlBEC,EAAa,uBAAuBC,KAkBnBL,EAlB2BhL,YACzC,IAAImL,OAAOC,EAAW,GAAIA,EAAW,IAF9C,IACMA,EAoBAE,EAAS,GACb,IAAK,IAAI9P,KAAQwP,EACXpP,OAAOD,UAAUqB,eAAeiC,KAAK+L,EAAKxP,KAC5C8P,EAAO9P,GAAQuP,EAAMC,EAAIxP,KAG7B,OAAO8P,EAGT,IAAIC,EAAc,SAAUC,GAG1B,SAASD,EAAY7F,EAAM+F,GACzBpF,EAAezJ,KAAM2O,GAErB,IAAI5O,EAAQ8K,EAA0B7K,MAAO2O,EAAYrR,WAAa0B,OAAO6B,eAAe8N,IAActM,KAAKrC,OAK/G,OAHAD,EAAM+I,KAAOA,EACb/I,EAAM8O,MAAQA,EACd9O,EAAM2E,KAAO,OACN3E,EAkBT,OA5BA0K,EAASkE,EAAaC,GAatB/E,EAAY8E,EAAa,CAAC,CACxBhR,IAAK,YACL0B,MAAO,SAAmB8F,GACxB,GAAInF,KAAK9B,QAAQ4Q,iBAAuF,iBAAjD,IAAX3J,EAAyB,YAAcmE,EAAQnE,IAAuB,CAChH,IAAI4J,EAAmD,mBAAjC/O,KAAK9B,QAAQ4Q,gBAAiC9O,KAAK9B,QAAQ4Q,gBAAkBX,EACxE,WAAvB7E,EAAQnE,EAAO,MACjBA,EAAO,GAAK4J,EAAS5J,EAAO,KAEH,WAAvBmE,EAAQnE,EAAO,MACjBA,EAAO,GAAK4J,EAAS5J,EAAO,KAGhC,OAAO2I,EAAQ/O,UAAUiQ,UAAUvN,MAAMzB,KAAM1B,eAG5CqQ,EA7BS,CA8BhBb,GAEEmB,EAAe,SAAUL,GAG3B,SAASK,EAAanG,EAAMoG,GAC1BzF,EAAezJ,KAAMiP,GAErB,IAAIlP,EAAQ8K,EAA0B7K,MAAOiP,EAAa3R,WAAa0B,OAAO6B,eAAeoO,IAAe5M,KAAKrC,OAKjH,OAHAD,EAAM+I,KAAOA,EACb/I,EAAMmP,MAAQA,EACdnP,EAAM2E,KAAO,QACN3E,EAGT,OAbA0K,EAASwE,EAAcL,GAahBK,EAdU,CAejBnB,GAEEqB,EAAiB,SAAUP,GAG7B,SAASO,EAAeD,GACtBzF,EAAezJ,KAAMmP,GAErB,IAAIpP,EAAQ8K,EAA0B7K,MAAOmP,EAAe7R,WAAa0B,OAAO6B,eAAesO,IAAiB9M,KAAKrC,OAIrH,OAFAD,EAAMmP,MAAQA,EACdnP,EAAM2E,KAAO,UACN3E,EAGT,OAZA0K,EAAS0E,EAAgBP,GAYlBO,EAbY,CAcnBrB,GAEEsB,EAAqC,mBAAlB7R,MAAMsE,QAAyBtE,MAAMsE,QAAU,SAAUyD,GAC9E,OAAOA,aAAa/H,OAGlB8R,EAAa,SAAkCjD,GACjD,GAAIA,EAAQtD,OAASsD,EAAQyC,MAI7B,QAA4B,IAAjBzC,EAAQtD,KAOnB,QAA6B,IAAlBsD,EAAQyC,MAAnB,CAIA,GAA4B,mBAAjBzC,EAAQtD,MAAgD,mBAAlBsD,EAAQyC,MACvD,MAAM,IAAIhC,MAAM,+BAElBT,EAAQkD,SAA4B,OAAjBlD,EAAQtD,KAAgB,OAASQ,EAAQ8C,EAAQtD,MACpEsD,EAAQmD,UAA8B,OAAlBnD,EAAQyC,MAAiB,OAASvF,EAAQ8C,EAAQyC,OAClEzC,EAAQkD,WAAalD,EAAQmD,WAIR,YAArBnD,EAAQkD,UAA+C,WAArBlD,EAAQkD,UAIrB,WAArBlD,EAAQkD,WACVlD,EAAQoD,YAAcJ,EAAUhD,EAAQtD,OAEhB,WAAtBsD,EAAQmD,YACVnD,EAAQqD,aAAeL,EAAUhD,EAAQyC,QAEvCzC,EAAQoD,cAAgBpD,EAAQqD,aAKhCrD,EAAQtD,gBAAgByF,SACtBnC,EAAQyC,iBAAiBN,OAC3BnC,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAK1F,WAAYgJ,EAAQyC,MAAMzL,aAAasM,OAEvEtD,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAMsD,EAAQyC,QAAQa,QARnDtD,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAMsD,EAAQyC,QAAQa,QAdjDtD,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAMsD,EAAQyC,QAAQa,YATjDtD,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAM,EAAG,IAAI4G,WAR1C,CACE,GAA6B,mBAAlBtD,EAAQyC,MACjB,MAAM,IAAIhC,MAAM,+BAElBT,EAAQ4C,UAAU,CAAC5C,EAAQyC,QAAQa,YAPnCtD,EAAQ4C,eAAUhR,GAAW0R,QA8CjCL,EAAWpC,WAAa,UAExB,IAAI0C,EAAc,SAAmCvD,GACnD,QAA6B,IAAlBA,EAAQ8C,OAKnB,GADA9C,EAAQwD,QAAUR,EAAUhD,EAAQ8C,QAChC9C,EAAQwD,OAGZ,GAA6B,IAAzBxD,EAAQ8C,MAAM3Q,OAIlB,GAA6B,IAAzB6N,EAAQ8C,MAAM3Q,OAWW,IAAzB6N,EAAQ8C,MAAM3Q,QAAqC,IAArB6N,EAAQ8C,MAAM,IAC9C9C,EAAQ4C,eAAUhR,GAAW0R,WAZ/B,CACE,GAAItD,EAAQtD,gBAAgByF,OAAQ,CAClC,IAAIsB,EAAY,uBAAuBpB,KAAKrC,EAAQ8C,MAAM,IAC1D,GAAIW,EAEF,YADAzD,EAAQ4C,UAAU,IAAIT,OAAOsB,EAAU,GAAIA,EAAU,KAAKH,OAI9DtD,EAAQ4C,UAAU5C,EAAQ8C,MAAM,IAAIQ,YAXpCtD,EAAQ4C,UAAU5C,EAAQ8C,MAAM,IAAIQ,YARpCtD,EAAQ4C,UAAU5C,EAAQtD,MAAM4G,QA0BpCC,EAAY1C,WAAa,UAEzB,IAAI6C,EAAgB,SAA8B1D,QACnB,IAAlBA,EAAQ8C,OAInB9C,EAAQwD,QAAUR,EAAUhD,EAAQ8C,OAChC9C,EAAQwD,SAGiB,IAAzBxD,EAAQ8C,MAAM3Q,OAIW,IAAzB6N,EAAQ8C,MAAM3Q,OAIW,IAAzB6N,EAAQ8C,MAAM3Q,QAAqC,IAArB6N,EAAQ8C,MAAM,IAC9C9C,EAAQ4C,UAAU,CAAC5C,EAAQ8C,MAAM,KAAKQ,OAJtCtD,EAAQ4C,UAAU,CAAC5C,EAAQ8C,MAAM,GAAI9C,EAAQ8C,MAAM,KAAKQ,OAJxDtD,EAAQ4C,UAAU,CAAC5C,EAAQ8C,MAAM,GAAI,EAAG,IAAIQ,SAR5CtD,EAAQ4C,UAAU5C,EAAQ8C,OAAOQ,QAqBrC,SAASK,EAA0B3D,GACjC,GAAKA,GAAYA,EAAQ8B,SAAzB,CAMA,IAHA,IAAI3P,EAAS6N,EAAQ8B,SAAS3P,OAC1BwP,OAAQ,EACR5I,EAASiH,EAAQjH,OACZvH,EAAQ,EAAGA,EAAQW,EAAQX,SAEN,KAD5BmQ,EAAQ3B,EAAQ8B,SAAStQ,IACRuH,UAGjBA,EAASA,GAAU,IACZ4I,EAAMC,WAAaD,EAAM5I,QAE9BA,GAAUiH,EAAQoD,cACpBrK,EAAO6K,GAAK,KAEd5D,EAAQ4C,UAAU7J,GAAQuK,QAI5B,SAASO,EAAkB7D,GACzB,IAAIA,EAAQoD,aAAoC,WAArBpD,EAAQkD,SAAnC,CAIA,IAAI1Q,OAAO,EACPmP,OAAQ,EACRmC,EAAiB9D,EAAQlO,QAAQgS,eACrC,IAAKtR,KAAQwN,EAAQtD,KACd9J,OAAOD,UAAUqB,eAAeiC,KAAK+J,EAAQtD,KAAMlK,KAGpDsR,IAAmBA,EAAetR,EAAMwN,KAG5C2B,EAAQ,IAAIY,EAAYvC,EAAQtD,KAAKlK,GAAOwN,EAAQyC,MAAMjQ,IAC1DwN,EAAQnO,KAAK8P,EAAOnP,KAEtB,IAAKA,KAAQwN,EAAQyC,MACd7P,OAAOD,UAAUqB,eAAeiC,KAAK+J,EAAQyC,MAAOjQ,KAGrDsR,IAAmBA,EAAetR,EAAMwN,SAGV,IAAvBA,EAAQtD,KAAKlK,KACtBmP,EAAQ,IAAIY,OAAY3Q,EAAWoO,EAAQyC,MAAMjQ,IACjDwN,EAAQnO,KAAK8P,EAAOnP,KAInBwN,EAAQ8B,UAAwC,IAA5B9B,EAAQ8B,SAAS3P,OAI1C6N,EAAQsD,OAHNtD,EAAQ4C,eAAUhR,GAAW0R,QAxDjCI,EAAc7C,WAAa,UAsB3B8C,EAA0B9C,WAAa,kBAuCvCgD,EAAkBhD,WAAa,UAE/B,IAAIkD,EAAgB,SAA2B/D,GAC7C,GAAKA,EAAQwD,SAGTxD,EAAQ8C,MAAMc,GAAlB,CAGA,IAAIpR,OAAO,EACPmP,OAAQ,EACZ,IAAKnP,KAAQwN,EAAQ8C,MACnBnB,EAAQ,IAAIkB,EAAa7C,EAAQtD,KAAKlK,GAAOwN,EAAQ8C,MAAMtQ,IAC3DwN,EAAQnO,KAAK8P,EAAOnP,GAEtBwN,EAAQsD,SAEVS,EAAclD,WAAa,UAE3B,IAAImD,EAA6B,SAAoChE,GACnE,GAAKA,GAAYA,EAAQ8B,WAGrB9B,EAAQ8C,MAAMc,GAAlB,CAKA,IAFA,IAAIzR,EAAS6N,EAAQ8B,SAAS3P,OAC1BwP,OAAQ,EACHnQ,EAAQ,EAAGA,EAAQW,EAAQX,IAClCmQ,EAAQ3B,EAAQ8B,SAAStQ,GACrBoB,OAAOD,UAAUqB,eAAeiC,KAAK+J,EAAQtD,KAAMiF,EAAMC,iBAA+BhQ,IAAjB+P,EAAM5I,cACxEiH,EAAQtD,KAAKiF,EAAMC,WACjB5B,EAAQtD,KAAKiF,EAAMC,aAAeD,EAAM5I,SACjDiH,EAAQtD,KAAKiF,EAAMC,WAAaD,EAAM5I,QAG1CiH,EAAQ4C,UAAU5C,EAAQtD,MAAM4G,SAElCU,EAA2BnD,WAAa,kBAExC,IAAIoD,EAAkB,SAA6BjE,GACjD,GAAKA,EAAQwD,SAGTxD,EAAQ8C,MAAMc,GAAlB,CAGA,IAAIpR,OAAO,EACPmP,OAAQ,EACZ,IAAKnP,KAAQwN,EAAQ8C,MACnBnB,EAAQ,IAAIoB,EAAe/C,EAAQ8C,MAAMtQ,IACzCwN,EAAQnO,KAAK8P,EAAOnP,GAEtBwN,EAAQsD,SAIV,SAASY,EAA6BlE,GACpC,GAAKA,GAAYA,EAAQ8B,WAGrB9B,EAAQ8C,MAAMc,GAAlB,CAMA,IAHA,IAAIzR,EAAS6N,EAAQ8B,SAAS3P,OAC1BwP,OAAQ,EACRmB,EAAQ,GACHtR,EAAQ,EAAGA,EAAQW,EAAQX,IAE9BsR,GADJnB,EAAQ3B,EAAQ8B,SAAStQ,IACToQ,aAAeD,EAAM5I,SACnC+J,EAAMnB,EAAMC,WAAaD,EAAM5I,QAGnCiH,EAAQ4C,UAAUE,GAAOQ,QAlB3BW,EAAgBpD,WAAa,UAoB7BqD,EAA6BrD,WAAa,kBAU1C,IAAIsD,EAAe,SAAsBC,EAAQC,EAAQC,EAAQC,GAC/D,OAAOH,EAAOE,KAAYD,EAAOE,IAuE/BC,EAVQ,SAAaJ,EAAQC,EAAQI,EAAOzE,GAC9C,IAAI0E,EAAe1E,GAAW,GAE1BjH,EAjCU,SAAmB4L,EAAQP,EAAQC,EAAQrE,GASzD,IARA,IAAIsE,EAASF,EAAOjS,OAChBoS,EAASF,EAAOlS,OAChByS,EAAc,CAChBC,SAAU,GACVC,SAAU,GACVC,SAAU,IAGM,IAAXT,GAA2B,IAAXC,GACJI,EAAOF,MAAML,EAAQC,EAAQC,EAAS,EAAGC,EAAS,EAAGvE,IAEpE4E,EAAYC,SAAS/J,QAAQsJ,EAAOE,EAAS,IAC7CM,EAAYE,SAAShK,QAAQwJ,EAAS,GACtCM,EAAYG,SAASjK,QAAQyJ,EAAS,KACpCD,IACAC,GAEuBI,EAAOL,GAAQC,EAAS,GACzBI,EAAOL,EAAS,GAAGC,KAEvCA,IAEAD,EAIR,OAAOM,EAMMI,CA7DI,SAAsBZ,EAAQC,EAAQI,EAAOzE,GAC9D,IAAIiF,EAAOb,EAAOjS,OACd+S,EAAOb,EAAOlS,OACdgT,OAAI,EACJC,OAAI,EAGJT,EAAS,CAACM,EAAO,GACrB,IAAKE,EAAI,EAAGA,EAAIF,EAAO,EAAGE,IAExB,IADAR,EAAOQ,GAAK,CAACD,EAAO,GACfE,EAAI,EAAGA,EAAIF,EAAO,EAAGE,IACxBT,EAAOQ,GAAGC,GAAK,EAKnB,IAFAT,EAAOF,MAAQA,EAEVU,EAAI,EAAGA,EAAIF,EAAO,EAAGE,IACxB,IAAKC,EAAI,EAAGA,EAAIF,EAAO,EAAGE,IACpBX,EAAML,EAAQC,EAAQc,EAAI,EAAGC,EAAI,EAAGpF,GACtC2E,EAAOQ,GAAGC,GAAKT,EAAOQ,EAAI,GAAGC,EAAI,GAAK,EAEtCT,EAAOQ,GAAGC,GAAKlJ,KAAKmJ,IAAIV,EAAOQ,EAAI,GAAGC,GAAIT,EAAOQ,GAAGC,EAAI,IAI9D,OAAOT,EAmCMW,CAAalB,EAAQC,EAAQI,GAASN,EAAcO,GAClCN,EAAQC,EAAQK,GAI/C,MAHsB,iBAAXN,GAAyC,iBAAXC,IACvCtL,EAAO8L,SAAW9L,EAAO8L,SAASU,KAAK,KAElCxM,GASLyM,EAAqC,mBAAlBrU,MAAMsE,QAAyBtE,MAAMsE,QAAU,SAAUyD,GAC9E,OAAOA,aAAa/H,OAGlBsU,EAAkD,mBAA5BtU,MAAMwB,UAAUG,QAAyB,SAAU4S,EAAOC,GAClF,OAAOD,EAAM5S,QAAQ6S,IACnB,SAAUD,EAAOC,GAEnB,IADA,IAAIxT,EAASuT,EAAMvT,OACV+D,EAAI,EAAGA,EAAI/D,EAAQ+D,IAC1B,GAAIwP,EAAMxP,KAAOyP,EACf,OAAOzP,EAGX,OAAQ,GAeV,SAAS0P,EAAWxB,EAAQC,EAAQC,EAAQC,EAAQvE,GAClD,IAAI6F,EAASzB,EAAOE,GAChBwB,EAASzB,EAAOE,GACpB,GAAIsB,IAAWC,EACb,OAAO,EAET,GAAwE,iBAAjD,IAAXD,EAAyB,YAAc3I,EAAQ2I,KAA6F,iBAAjD,IAAXC,EAAyB,YAAc5I,EAAQ4I,IACzI,OAAO,EAET,IAAIC,EAAa/F,EAAQ+F,WACzB,IAAKA,EAEH,OAAO/F,EAAQgG,iBAAmB1B,IAAWC,EAE/C,IAAI0B,OAAQ,EACRC,OAAQ,EAUZ,MATsB,iBAAX5B,GACTtE,EAAQmG,WAAanG,EAAQmG,YAAc,QAEtB,KADrBF,EAAQjG,EAAQmG,WAAW7B,MAEzBtE,EAAQmG,WAAW7B,GAAU2B,EAAQF,EAAWF,EAAQvB,KAG1D2B,EAAQF,EAAWF,QAEA,IAAVI,IAGW,iBAAX1B,GACTvE,EAAQoG,WAAapG,EAAQoG,YAAc,QAEtB,KADrBF,EAAQlG,EAAQoG,WAAW7B,MAEzBvE,EAAQoG,WAAW7B,GAAU2B,EAAQH,EAAWD,EAAQvB,KAG1D2B,EAAQH,EAAWD,QAEA,IAAVI,GAGJD,IAAUC,GAGnB,IAAIG,EAAe,SAA0BrG,GAC3C,GAAKA,EAAQoD,YAAb,CAIA,IAAIkD,EAAe,CACjBP,WAAY/F,EAAQlO,SAAWkO,EAAQlO,QAAQiU,WAC/CC,gBAAiBhG,EAAQlO,SAAWkO,EAAQlO,QAAQkU,iBAElDO,EAAa,EACbC,EAAa,EACbhV,OAAQ,EACR8S,OAAS,EACTC,OAAS,EACTH,EAASpE,EAAQtD,KACjB2H,EAASrE,EAAQyC,MACjBwC,EAAOb,EAAOjS,OACd+S,EAAOb,EAAOlS,OAEdwP,OAAQ,EAOZ,IALIsD,EAAO,GAAKC,EAAO,IAAMoB,EAAaP,YAAsD,kBAAjCO,EAAaN,kBAC1EM,EAAaN,iBA7EjB,SAA8B5B,EAAQC,EAAQY,EAAMC,GAClD,IAAK,IAAIZ,EAAS,EAAGA,EAASW,EAAMX,IAElC,IADA,IAAImC,EAAOrC,EAAOE,GACTC,EAAS,EAAGA,EAASW,EAAMX,IAAU,CAC5C,IAAImC,EAAOrC,EAAOE,GAClB,GAAID,IAAWC,GAAUkC,IAASC,EAChC,OAAO,GAuEqBC,CAAqBvC,EAAQC,EAAQY,EAAMC,IAItEqB,EAAatB,GAAQsB,EAAarB,GAAQU,EAAWxB,EAAQC,EAAQkC,EAAYA,EAAYD,IAClG9U,EAAQ+U,EACR5E,EAAQ,IAAIY,EAAYvC,EAAQtD,KAAKlL,GAAQwO,EAAQyC,MAAMjR,IAC3DwO,EAAQnO,KAAK8P,EAAOnQ,GACpB+U,IAGF,KAAOC,EAAaD,EAAatB,GAAQuB,EAAaD,EAAarB,GAAQU,EAAWxB,EAAQC,EAAQY,EAAO,EAAIuB,EAAYtB,EAAO,EAAIsB,EAAYF,IAClJhC,EAASW,EAAO,EAAIuB,EACpBjC,EAASW,EAAO,EAAIsB,EACpB7E,EAAQ,IAAIY,EAAYvC,EAAQtD,KAAK4H,GAAStE,EAAQyC,MAAM8B,IAC5DvE,EAAQnO,KAAK8P,EAAO4C,GACpBiC,IAEF,IAAIzN,OAAS,EACb,GAAIwN,EAAaC,IAAevB,EAgBhC,GAAIsB,EAAaC,IAAetB,EAAhC,QAYOoB,EAAaH,kBACbG,EAAaF,WAGpB,IAAIQ,EAAWxC,EAAOpI,MAAMuK,EAAYtB,EAAOuB,GAC3CK,EAAWxC,EAAOrI,MAAMuK,EAAYrB,EAAOsB,GAC3CM,EAAMtC,EAAQoC,EAAUC,EAAUjB,EAAYU,GAC9CS,EAAe,GAInB,IAHAhO,EAASA,GAAU,CACjB6K,GAAI,KAEDpS,EAAQ+U,EAAY/U,EAAQyT,EAAOuB,EAAYhV,IAC9CiU,EAAaqB,EAAIhC,SAAUtT,EAAQ+U,GAAc,IAEnDxN,EAAO,IAAMvH,GAAS,CAAC4S,EAAO5S,GAAQ,EAAG,GACzCuV,EAAalV,KAAKL,IAItB,IAAIwV,GAAa,EACbhH,EAAQlO,SAAWkO,EAAQlO,QAAQmV,SAAgD,IAAtCjH,EAAQlO,QAAQmV,OAAOD,aACtEA,GAAa,GAEf,IAAIE,GAAqB,EACrBlH,EAAQlO,SAAWkO,EAAQlO,QAAQmV,QAAUjH,EAAQlO,QAAQmV,OAAOC,qBACtEA,GAAqB,GAGvB,IAAIC,EAAqBJ,EAAa5U,OACtC,IAAKX,EAAQ+U,EAAY/U,EAAQ0T,EAAOsB,EAAYhV,IAAS,CAC3D,IAAI4V,EAAgB3B,EAAaqB,EAAI/B,SAAUvT,EAAQ+U,GACvD,GAAIa,EAAgB,EAAG,CAErB,IAAIC,GAAS,EACb,GAAIL,GAAcG,EAAqB,EACrC,IAAK,IAAIG,EAAmB,EAAGA,EAAmBH,EAAoBG,IAEpE,GAAI1B,EAAWgB,EAAUC,GADzBvC,EAASyC,EAAaO,IACsBf,EAAY/U,EAAQ+U,EAAYD,GAAe,CAEzFvN,EAAO,IAAMuL,GAAQhD,OAAO,EAAG,EAAG9P,EArL7B,GAsLA0V,IAEHnO,EAAO,IAAMuL,GAAQ,GAAK,IAG5BC,EAAS/S,EACTmQ,EAAQ,IAAIY,EAAYvC,EAAQtD,KAAK4H,GAAStE,EAAQyC,MAAM8B,IAC5DvE,EAAQnO,KAAK8P,EAAO4C,GACpBwC,EAAazF,OAAOgG,EAAkB,GACtCD,GAAS,EACT,MAIDA,IAEHtO,EAAOvH,GAAS,CAAC6S,EAAO7S,UAI1B8S,EAASwC,EAAIhC,SAASsC,GAAiBb,EACvChC,EAASuC,EAAI/B,SAASqC,GAAiBb,EACvC5E,EAAQ,IAAIY,EAAYvC,EAAQtD,KAAK4H,GAAStE,EAAQyC,MAAM8B,IAC5DvE,EAAQnO,KAAK8P,EAAO4C,GAIxBvE,EAAQ4C,UAAU7J,GAAQuK,WA/E1B,CAKE,IAHAvK,EAASA,GAAU,CACjB6K,GAAI,KAEDpS,EAAQ+U,EAAY/U,EAAQyT,EAAOuB,EAAYhV,IAClDuH,EAAO,IAAMvH,GAAS,CAAC4S,EAAO5S,GAAQ,EAAG,GAE3CwO,EAAQ4C,UAAU7J,GAAQuK,WAxB5B,CACE,GAAI2B,IAASC,EAGX,YADAlF,EAAQ4C,eAAUhR,GAAW0R,OAO/B,IAHAvK,EAASA,GAAU,CACjB6K,GAAI,KAEDpS,EAAQ+U,EAAY/U,EAAQ0T,EAAOsB,EAAYhV,IAClDuH,EAAOvH,GAAS,CAAC6S,EAAO7S,IAE1BwO,EAAQ4C,UAAU7J,GAAQuK,UAoF9B+C,EAAaxF,WAAa,SAE1B,IAAI0G,EACW,SAAqBrO,EAAGC,GACnC,OAAOD,EAAIC,GAFXoO,EAIa,SAAuB/U,GACpC,OAAO,SAAU0G,EAAGC,GAClB,OAAOD,EAAE1G,GAAQ2G,EAAE3G,KAKrBgV,EAAgB,SAA2BxH,GAC7C,GAAKA,EAAQwD,QAGY,MAArBxD,EAAQ8C,MAAMc,GAAlB,CAGA,IAAIpS,OAAQ,EACR8S,OAAS,EAETxB,EAAQ9C,EAAQ8C,MAChB4C,EAAQ1F,EAAQtD,KAGhB+K,EAAW,GACXC,EAAW,GACXC,EAAW,GACf,IAAKnW,KAASsR,EACZ,GAAc,OAAVtR,EACF,GAAiB,MAAbA,EAAM,GAAY,CAEpB,GAAwB,IAApBsR,EAAMtR,GAAO,IArPR,IAqPoBsR,EAAMtR,GAAO,GAGxC,MAAM,IAAIiP,MAAM,qFAA6FqC,EAAMtR,GAAO,IAF1HiW,EAAS5V,KAAK+V,SAASpW,EAAMwK,MAAM,GAAI,UAKb,IAAxB8G,EAAMtR,GAAOW,OAEfuV,EAAS7V,KAAK,CACZL,MAAOoW,SAASpW,EAAO,IACvByB,MAAO6P,EAAMtR,GAAO,KAItBmW,EAAS9V,KAAK,CACZL,MAAOoW,SAASpW,EAAO,IACvBsR,MAAOA,EAAMtR,KASvB,IAAKA,GADLiW,EAAWA,EAASI,KAAKN,IACHpV,OAAS,EAAGX,GAAS,EAAGA,IAAS,CAErD,IAAIsW,EAAYhF,EAAM,KADtBwB,EAASmD,EAASjW,KAEduW,EAAerC,EAAMpE,OAAOgD,EAAQ,GAAG,GAjR9B,IAkRTwD,EAAU,IAEZJ,EAAS7V,KAAK,CACZL,MAAOsW,EAAU,GACjB7U,MAAO8U,IAOb,IAAIC,GADJN,EAAWA,EAASG,KAAKN,EAAsB,WACjBpV,OAC9B,IAAKX,EAAQ,EAAGA,EAAQwW,EAAgBxW,IAAS,CAC/C,IAAIyW,EAAYP,EAASlW,GACzBkU,EAAMpE,OAAO2G,EAAUzW,MAAO,EAAGyW,EAAUhV,OAI7C,IAAIiV,EAAiBP,EAASxV,OAC1BwP,OAAQ,EACZ,GAAIuG,EAAiB,EACnB,IAAK1W,EAAQ,EAAGA,EAAQ0W,EAAgB1W,IAAS,CAC/C,IAAI2W,EAAeR,EAASnW,GAC5BmQ,EAAQ,IAAIkB,EAAa7C,EAAQtD,KAAKyL,EAAa3W,OAAQ2W,EAAarF,OACxE9C,EAAQnO,KAAK8P,EAAOwG,EAAa3W,OAIhCwO,EAAQ8B,SAIb9B,EAAQsD,OAHNtD,EAAQ4C,UAAU5C,EAAQtD,MAAM4G,SAKpCkE,EAAc3G,WAAa,SAE3B,IAAIuH,EAA+B,SAAoCpI,GACrE,GAAKA,GAAYA,EAAQ8B,UAGA,MAArB9B,EAAQ8C,MAAMc,GAAlB,CAKA,IAFA,IAAIzR,EAAS6N,EAAQ8B,SAAS3P,OAC1BwP,OAAQ,EACHnQ,EAAQ,EAAGA,EAAQW,EAAQX,IAClCmQ,EAAQ3B,EAAQ8B,SAAStQ,GACzBwO,EAAQtD,KAAKiF,EAAMC,WAAaD,EAAM5I,OAExCiH,EAAQ4C,UAAU5C,EAAQtD,MAAM4G,SAElC8E,EAA6BvH,WAAa,wBAE1C,IAAIwH,EAAkB,SAA6BrI,GACjD,GAAKA,EAAQwD,QAOb,GAAyB,MAArBxD,EAAQ8C,MAAMc,GAAlB,CAGA,IAAIpR,OAAO,EACPmP,OAAQ,EACZ,IAAKnP,KAAQwN,EAAQ8C,MACN,OAATtQ,IAGJmP,EAAQ,IAAIoB,EAAe/C,EAAQ8C,MAAMtQ,IACzCwN,EAAQnO,KAAK8P,EAAOnP,IAEtBwN,EAAQsD,aA3VO,IAyUTtD,EAAQ8C,MAAM,KAChB9C,EAAQsI,QAAU,IAAMtI,EAAQ8C,MAAM,GACtC9C,EAAQ4C,UAAU,CAAC5C,EAAQ8C,MAAM,GAAI8E,SAAS5H,EAAQ4B,UAAU2G,OAAO,GAAI,IA3UhE,IA2UkFjF,SAkBnG+E,EAAgBxH,WAAa,SAE7B,IAAI2H,EAAyB,SAAgC1F,EAAOtR,EAAOiX,GACzE,GAAqB,iBAAVjX,GAAmC,MAAbA,EAAM,GACrC,OAAOoW,SAASpW,EAAM+W,OAAO,GAAI,IAC5B,GAAI/C,EAAUiD,IAA+B,IAAjBA,EAAU,GAC3C,MAAO,IAAMjX,EAGf,IAAIkX,GAAgBlX,EACpB,IAAK,IAAImX,KAAc7F,EAAO,CAC5B,IAAI8F,EAAY9F,EAAM6F,GACtB,GAAInD,EAAUoD,GACZ,GA1WW,IA0WPA,EAAU,GAAmB,CAC/B,IAAIC,EAAgBjB,SAASe,EAAWJ,OAAO,GAAI,IAC/CO,EAAcF,EAAU,GAC5B,GAAIE,KAAiBtX,EACnB,OAAOqX,EAELA,GAAiBH,GAAgBI,EAAcJ,EACjDA,IACSG,GAAiBH,GAAgBI,EAAcJ,GACxDA,SAEwB,IAAjBE,EAAU,GACDhB,SAASe,EAAWJ,OAAO,GAAI,KAC9BG,GACjBA,IAE4B,IAArBE,EAAUzW,QAAgBwW,GAAcD,GACjDA,IAKN,OAAOA,GAGT,SAASK,EAA+B/I,GACtC,GAAKA,GAAYA,EAAQ8B,UAGA,MAArB9B,EAAQ8C,MAAMc,GAAlB,CASA,IANA,IAAIzR,EAAS6N,EAAQ8B,SAAS3P,OAC1BwP,OAAQ,EACRmB,EAAQ,CACVc,GAAI,KAGGpS,EAAQ,EAAGA,EAAQW,EAAQX,IAAS,CAE3C,IAAIgB,GADJmP,EAAQ3B,EAAQ8B,SAAStQ,IACR8W,aACG,IAAT9V,IACTA,EAAOgW,EAAuBxI,EAAQ8C,MAAOnB,EAAMC,UAAWD,EAAM5I,SAElE+J,EAAMtQ,KAAUmP,EAAM5I,SACxB+J,EAAMtQ,GAAQmP,EAAM5I,QAGxBiH,EAAQ4C,UAAUE,GAAOQ,QAE3ByF,EAA+BlI,WAAa,wBAE5C,IAAImI,EAAe,SAAyBhJ,GACtCA,EAAQtD,gBAAgBuF,MACtBjC,EAAQyC,iBAAiBR,KACvBjC,EAAQtD,KAAKwF,YAAclC,EAAQyC,MAAMP,UAC3ClC,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAMsD,EAAQyC,QAEzCzC,EAAQ4C,eAAUhR,GAGpBoO,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAMsD,EAAQyC,QAE3CzC,EAAQsD,QACCtD,EAAQyC,iBAAiBR,MAClCjC,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAMsD,EAAQyC,QAAQa,QAGrD0F,EAAanI,WAAa,QAM1B,IAAIoI,EAJJ,SAA8B1U,EAAI+C,GACjC,OAAiC/C,EAA1B+C,EAAS,CAAEC,QAAS,IAAiBD,EAAOC,SAAUD,EAAOC,QAGhD2R,EAAqB,SAAU5R,GA6BpD,SAAS6R,IAMPvV,KAAKwV,aAAe,EAEpBxV,KAAKyV,cAAgB,EAErBzV,KAAK0V,gBAAkB,GAIvB1V,KAAK2V,eAAiB,IAKtB3V,KAAK4V,sBAAwB,GAE7B5V,KAAK6V,aAAe,EAGpB7V,KAAK8V,cAAgB,GAiBvBP,EAAiBxW,UAAUgX,UAAY,SAASC,EAAOC,EAAOC,EAC1DC,QAEyB,IAAhBA,IAEPA,EADEnW,KAAKwV,cAAgB,EACRY,OAAOC,WAEP,IAAKhI,MAAMC,UAAgC,IAApBtO,KAAKwV,cAG/C,IAAIc,EAAWH,EAGf,GAAa,MAATH,GAA0B,MAATC,EACnB,MAAM,IAAIpJ,MAAM,2BAIlB,GAAImJ,GAASC,EACX,OAAID,EACK,CAAC,CAvBG,EAuBUA,IAEhB,QAGoB,IAAlBE,IACTA,GAAiB,GAEnB,IAAIK,EAAaL,EAGbM,EAAexW,KAAKyW,kBAAkBT,EAAOC,GAC7CS,EAAeV,EAAMW,UAAU,EAAGH,GACtCR,EAAQA,EAAMW,UAAUH,GACxBP,EAAQA,EAAMU,UAAUH,GAGxBA,EAAexW,KAAK4W,kBAAkBZ,EAAOC,GAC7C,IAAIY,EAAeb,EAAMW,UAAUX,EAAMzX,OAASiY,GAClDR,EAAQA,EAAMW,UAAU,EAAGX,EAAMzX,OAASiY,GAC1CP,EAAQA,EAAMU,UAAU,EAAGV,EAAM1X,OAASiY,GAG1C,IAAIM,EAAQ9W,KAAK+W,cAAcf,EAAOC,EAAOM,EAAYD,GAUzD,OAPII,GACFI,EAAM5P,QAAQ,CAlDD,EAkDcwP,IAEzBG,GACFC,EAAM7Y,KAAK,CArDE,EAqDW4Y,IAE1B7W,KAAKgX,kBAAkBF,GAChBA,GAgBTvB,EAAiBxW,UAAUgY,cAAgB,SAASf,EAAOC,EAAOM,EAC9DD,GACF,IAAIQ,EAEJ,IAAKd,EAEH,MAAO,CAAC,CA/EM,EA+EQC,IAGxB,IAAKA,EAEH,MAAO,CAAC,EArFM,EAqFQD,IAGxB,IAAIiB,EAAWjB,EAAMzX,OAAS0X,EAAM1X,OAASyX,EAAQC,EACjDiB,EAAYlB,EAAMzX,OAAS0X,EAAM1X,OAAS0X,EAAQD,EAClD1T,EAAI2U,EAAS/X,QAAQgY,GACzB,IAAU,GAAN5U,EASF,OAPAwU,EAAQ,CAAC,CA5FK,EA4FSG,EAASN,UAAU,EAAGrU,IACpC,CA5FI,EA4FS4U,GACb,CA9FK,EA8FSD,EAASN,UAAUrU,EAAI4U,EAAU3Y,UAEpDyX,EAAMzX,OAAS0X,EAAM1X,SACvBuY,EAAM,GAAG,GAAKA,EAAM,GAAG,IAlGX,GAoGPA,EAGT,GAAwB,GAApBI,EAAU3Y,OAGZ,MAAO,CAAC,EA1GM,EA0GQyX,GAAQ,CAzGhB,EAyG8BC,IAI9C,IAAIkB,EAAKnX,KAAKoX,gBAAgBpB,EAAOC,GACrC,GAAIkB,EAAI,CAEN,IAAIE,EAAUF,EAAG,GACbG,EAAUH,EAAG,GACbI,EAAUJ,EAAG,GACbK,EAAUL,EAAG,GACbM,EAAaN,EAAG,GAEhBO,EAAU1X,KAAK+V,UAAUsB,EAASE,EAAShB,EAAYD,GACvDqB,EAAU3X,KAAK+V,UAAUuB,EAASE,EAASjB,EAAYD,GAE3D,OAAOoB,EAAQtQ,OAAO,CAAC,CAxHV,EAwHuBqQ,IAAcE,GAGpD,OAAIpB,GAAcP,EAAMzX,OAAS,KAAO0X,EAAM1X,OAAS,IAC9CyB,KAAK4X,eAAe5B,EAAOC,EAAOK,GAGpCtW,KAAK6X,aAAa7B,EAAOC,EAAOK,IAczCf,EAAiBxW,UAAU6Y,eAAiB,SAAS5B,EAAOC,EAAOK,GAGjEN,GADI1Q,EAAItF,KAAK8X,mBAAmB9B,EAAOC,IAC7B8B,OACV9B,EAAQ3Q,EAAE0S,OACV,IAAIC,EAAY3S,EAAE4S,UAEdpB,EAAQ9W,KAAK+V,UAAUC,EAAOC,GAAO,EAAOK,GAGhDtW,KAAKmY,mBAAmBrB,EAAOmB,GAE/BjY,KAAKoY,qBAAqBtB,GAI1BA,EAAM7Y,KAAK,CA7JI,EA6JS,KAMxB,IALA,IAAIoa,EAAU,EACVC,EAAe,EACfC,EAAe,EACfC,EAAc,GACdC,EAAc,GACXJ,EAAUvB,EAAMvY,QAAQ,CAC7B,OAAQuY,EAAMuB,GAAS,IACrB,KAtKY,EAuKVE,IACAE,GAAe3B,EAAMuB,GAAS,GAC9B,MACF,KA3KY,EA4KVC,IACAE,GAAe1B,EAAMuB,GAAS,GAC9B,MACF,KA7KW,EA+KT,GAAIC,GAAgB,GAAKC,GAAgB,EAAG,CAE1CzB,EAAMpJ,OAAO2K,EAAUC,EAAeC,EACzBD,EAAeC,GAC5BF,EAAUA,EAAUC,EAAeC,EAEnC,IADA,IAAIjT,EACKoT,GADLpT,EAAItF,KAAK+V,UAAUyC,EAAaC,GAAa,EAAOnC,IACzC/X,OAAS,EAAGma,GAAK,EAAGA,IACjC5B,EAAMpJ,OAAO2K,EAAS,EAAG/S,EAAEoT,IAE7BL,GAAoB/S,EAAE/G,OAExBga,EAAe,EACfD,EAAe,EACfE,EAAc,GACdC,EAAc,GAGlBJ,IAIF,OAFAvB,EAAM6B,MAEC7B,GAcTvB,EAAiBxW,UAAU8Y,aAAe,SAAS7B,EAAOC,EAAOK,GAW/D,IATA,IAAIsC,EAAe5C,EAAMzX,OACrBsa,EAAe5C,EAAM1X,OACrBua,EAAQxQ,KAAKyQ,MAAMH,EAAeC,GAAgB,GAClDG,EAAWF,EACXG,EAAW,EAAIH,EACfI,EAAK,IAAI3b,MAAM0b,GACfE,EAAK,IAAI5b,MAAM0b,GAGV1H,EAAI,EAAGA,EAAI0H,EAAU1H,IAC5B2H,EAAG3H,IAAM,EACT4H,EAAG5H,IAAM,EAEX2H,EAAGF,EAAW,GAAK,EACnBG,EAAGH,EAAW,GAAK,EAWnB,IAVA,IAAI9J,EAAQ0J,EAAeC,EAGvBO,EAASlK,EAAQ,GAAK,EAGtBmK,EAAU,EACVC,EAAQ,EACRC,EAAU,EACVC,EAAQ,EACHC,EAAI,EAAGA,EAAIX,MAEd,IAAKzK,MAAQC,UAAYgI,GAFJmD,IAAK,CAO9B,IAAK,IAAIC,GAAMD,EAAIJ,EAASK,GAAMD,EAAIH,EAAOI,GAAM,EAAG,CASpD,IARA,IAAIC,EAAYX,EAAWU,EAOvBE,GAJFC,EADEH,IAAOD,GAAMC,GAAMD,GAAKP,EAAGS,EAAY,GAAKT,EAAGS,EAAY,GACxDT,EAAGS,EAAY,GAEfT,EAAGS,EAAY,GAAK,GAEbD,EACPG,EAAKjB,GAAgBgB,EAAKf,GAC1B7C,EAAM3V,OAAOwZ,IAAO5D,EAAM5V,OAAOuZ,IACtCC,IACAD,IAGF,GADAV,EAAGS,GAAaE,EACZA,EAAKjB,EAEPU,GAAS,OACJ,GAAIM,EAAKf,EAEdQ,GAAW,OACN,GAAID,IACLU,EAAYd,EAAW9J,EAAQwK,IAClB,GAAKI,EAAYb,IAA8B,GAAlBE,EAAGW,IAG3CD,IADAE,EAAKnB,EAAeO,EAAGW,IAGzB,OAAO9Z,KAAKga,kBAAkBhE,EAAOC,EAAO4D,EAAID,EAAItD,GAO5D,IAAK,IAAI2D,GAAMR,EAAIF,EAASU,GAAMR,EAAID,EAAOS,GAAM,EAAG,CASpD,IARA,IACIF,EADAD,EAAYd,EAAWiB,EAOvBC,GAJFH,EADEE,IAAOR,GAAMQ,GAAMR,GAAKN,EAAGW,EAAY,GAAKX,EAAGW,EAAY,GACxDX,EAAGW,EAAY,GAEfX,EAAGW,EAAY,GAAK,GAEbG,EACPF,EAAKnB,GAAgBsB,EAAKrB,GAC1B7C,EAAM3V,OAAOuY,EAAemB,EAAK,IACjC9D,EAAM5V,OAAOwY,EAAeqB,EAAK,IACtCH,IACAG,IAGF,GADAf,EAAGW,GAAaC,EACZA,EAAKnB,EAEPY,GAAS,OACJ,GAAIU,EAAKrB,EAEdU,GAAW,OACN,IAAKH,EAAO,CAGf,IAAIS,EADN,IADIF,EAAYX,EAAW9J,EAAQ+K,IAClB,GAAKN,EAAYV,IAA8B,GAAlBC,EAAGS,GAK/C,GAHIC,EAAKZ,GADLa,EAAKX,EAAGS,IACaA,EAGrBE,IADJE,EAAKnB,EAAemB,GAGlB,OAAO/Z,KAAKga,kBAAkBhE,EAAOC,EAAO4D,EAAID,EAAItD,KAQ9D,MAAO,CAAC,EAhUQ,EAgUMN,GAAQ,CA/Td,EA+T4BC,KAe9CV,EAAiBxW,UAAUib,kBAAoB,SAAShE,EAAOC,EAAO1E,EAAGC,EACrE8E,GACF,IAAI6D,EAASnE,EAAMW,UAAU,EAAGpF,GAC5B6I,EAASnE,EAAMU,UAAU,EAAGnF,GAC5B6I,EAASrE,EAAMW,UAAUpF,GACzB+I,EAASrE,EAAMU,UAAUnF,GAGzBsF,EAAQ9W,KAAK+V,UAAUoE,EAAQC,GAAQ,EAAO9D,GAC9CiE,EAASva,KAAK+V,UAAUsE,EAAQC,GAAQ,EAAOhE,GAEnD,OAAOQ,EAAM1P,OAAOmT,IAetBhF,EAAiBxW,UAAU+Y,mBAAqB,SAAS9B,EAAOC,GAC9D,IAAIiC,EAAY,GACZsC,EAAW,GAcf,SAASC,EAAwBC,GAS/B,IARA,IAAIC,EAAQ,GAIRC,EAAY,EACZC,GAAW,EAEXC,EAAkB5C,EAAU3Z,OACzBsc,EAAUH,EAAKnc,OAAS,GAAG,EAEhB,IADhBsc,EAAUH,EAAKxb,QAAQ,KAAM0b,MAE3BC,EAAUH,EAAKnc,OAAS,GAE1B,IAAIwc,EAAOL,EAAK/D,UAAUiE,EAAWC,EAAU,GAC/CD,EAAYC,EAAU,GAElBL,EAASpa,eAAiBoa,EAASpa,eAAe2a,QAC9B/c,IAAnBwc,EAASO,IACZJ,GAASnS,OAAOwS,aAAaR,EAASO,KAEtCJ,GAASnS,OAAOwS,aAAaF,GAC7BN,EAASO,GAAQD,EACjB5C,EAAU4C,KAAqBC,GAGnC,OAAOJ,EAKT,OAzCAzC,EAAU,GAAK,GAyCR,CAACH,OAFK0C,EAAwBzE,GAEbgC,OADXyC,EAAwBxE,GACGiC,UAAWA,IAWrD3C,EAAiBxW,UAAUoZ,mBAAqB,SAASrB,EAAOoB,GAC9D,IAAK,IAAI3G,EAAI,EAAGA,EAAIuF,EAAMvY,OAAQgT,IAAK,CAGrC,IAFA,IAAIoJ,EAAQ7D,EAAMvF,GAAG,GACjBmJ,EAAO,GACFlJ,EAAI,EAAGA,EAAImJ,EAAMpc,OAAQiT,IAChCkJ,EAAKlJ,GAAK0G,EAAUyC,EAAMM,WAAWzJ,IAEvCsF,EAAMvF,GAAG,GAAKmJ,EAAK/I,KAAK,MAY5B4D,EAAiBxW,UAAU0X,kBAAoB,SAAST,EAAOC,GAE7D,IAAKD,IAAUC,GAASD,EAAM3V,OAAO,IAAM4V,EAAM5V,OAAO,GACtD,OAAO,EAQT,IAJA,IAAI6a,EAAa,EACbC,EAAa7S,KAAKD,IAAI2N,EAAMzX,OAAQ0X,EAAM1X,QAC1C6c,EAAaD,EACbE,EAAe,EACZH,EAAaE,GACdpF,EAAMW,UAAU0E,EAAcD,IAC9BnF,EAAMU,UAAU0E,EAAcD,GAEhCC,EADAH,EAAaE,EAGbD,EAAaC,EAEfA,EAAa9S,KAAKgT,OAAOH,EAAaD,GAAc,EAAIA,GAE1D,OAAOE,GAUT7F,EAAiBxW,UAAU6X,kBAAoB,SAASZ,EAAOC,GAE7D,IAAKD,IAAUC,GACXD,EAAM3V,OAAO2V,EAAMzX,OAAS,IAAM0X,EAAM5V,OAAO4V,EAAM1X,OAAS,GAChE,OAAO,EAQT,IAJA,IAAI2c,EAAa,EACbC,EAAa7S,KAAKD,IAAI2N,EAAMzX,OAAQ0X,EAAM1X,QAC1C6c,EAAaD,EACbI,EAAa,EACVL,EAAaE,GACdpF,EAAMW,UAAUX,EAAMzX,OAAS6c,EAAYpF,EAAMzX,OAASgd,IAC1DtF,EAAMU,UAAUV,EAAM1X,OAAS6c,EAAYnF,EAAM1X,OAASgd,GAE5DA,EADAL,EAAaE,EAGbD,EAAaC,EAEfA,EAAa9S,KAAKgT,OAAOH,EAAaD,GAAc,EAAIA,GAE1D,OAAOE,GAYT7F,EAAiBxW,UAAUyc,oBAAsB,SAASxF,EAAOC,GAE/D,IAAI2C,EAAe5C,EAAMzX,OACrBsa,EAAe5C,EAAM1X,OAEzB,GAAoB,GAAhBqa,GAAqC,GAAhBC,EACvB,OAAO,EAGLD,EAAeC,EACjB7C,EAAQA,EAAMW,UAAUiC,EAAeC,GAC9BD,EAAeC,IACxB5C,EAAQA,EAAMU,UAAU,EAAGiC,IAE7B,IAAI6C,EAAcnT,KAAKD,IAAIuQ,EAAcC,GAEzC,GAAI7C,GAASC,EACX,OAAOwF,EAQT,IAFA,IAAIC,EAAO,EACPnd,EAAS,IACA,CACX,IAAIod,EAAU3F,EAAMW,UAAU8E,EAAcld,GACxCqd,EAAQ3F,EAAM/W,QAAQyc,GAC1B,IAAc,GAAVC,EACF,OAAOF,EAETnd,GAAUqd,EACG,GAATA,GAAc5F,EAAMW,UAAU8E,EAAcld,IAC5C0X,EAAMU,UAAU,EAAGpY,KACrBmd,EAAOnd,EACPA,OAiBNgX,EAAiBxW,UAAUqY,gBAAkB,SAASpB,EAAOC,GAC3D,GAAIjW,KAAKwV,cAAgB,EAEvB,OAAO,KAET,IAAIyB,EAAWjB,EAAMzX,OAAS0X,EAAM1X,OAASyX,EAAQC,EACjDiB,EAAYlB,EAAMzX,OAAS0X,EAAM1X,OAAS0X,EAAQD,EACtD,GAAIiB,EAAS1Y,OAAS,GAAwB,EAAnB2Y,EAAU3Y,OAAa0Y,EAAS1Y,OACzD,OAAO,KAET,IAAIsd,EAAM7b,KAcV,SAAS8b,EAAiB7E,EAAUC,EAAW5U,GAM7C,IAJA,IAGIyZ,EAAiBC,EAAiBC,EAAkBC,EAHpDC,EAAOlF,EAASN,UAAUrU,EAAGA,EAAIgG,KAAKgT,MAAMrE,EAAS1Y,OAAS,IAC9Dma,GAAK,EACL0D,EAAc,IAE8B,IAAxC1D,EAAIxB,EAAUhY,QAAQid,EAAMzD,EAAI,KAAW,CACjD,IAAI2D,EAAeR,EAAIpF,kBAAkBQ,EAASN,UAAUrU,GACnB4U,EAAUP,UAAU+B,IACzD4D,EAAeT,EAAIjF,kBAAkBK,EAASN,UAAU,EAAGrU,GACtB4U,EAAUP,UAAU,EAAG+B,IAC5D0D,EAAY7d,OAAS+d,EAAeD,IACtCD,EAAclF,EAAUP,UAAU+B,EAAI4D,EAAc5D,GAChDxB,EAAUP,UAAU+B,EAAGA,EAAI2D,GAC/BN,EAAkB9E,EAASN,UAAU,EAAGrU,EAAIga,GAC5CN,EAAkB/E,EAASN,UAAUrU,EAAI+Z,GACzCJ,EAAmB/E,EAAUP,UAAU,EAAG+B,EAAI4D,GAC9CJ,EAAmBhF,EAAUP,UAAU+B,EAAI2D,IAG/C,OAAyB,EAArBD,EAAY7d,QAAc0Y,EAAS1Y,OAC9B,CAACwd,EAAiBC,EACjBC,EAAkBC,EAAkBE,GAErC,KAKX,IAKIjF,EAaAE,EAASC,EAASC,EAASC,EAlB3B+E,EAAMT,EAAiB7E,EAAUC,EACV5O,KAAKyQ,KAAK9B,EAAS1Y,OAAS,IAEnDie,EAAMV,EAAiB7E,EAAUC,EACV5O,KAAKyQ,KAAK9B,EAAS1Y,OAAS,IAEvD,OAAKge,GAAQC,GAQXrF,EANUqF,EAEAD,GAILA,EAAI,GAAGhe,OAASie,EAAI,GAAGje,OAASge,EAHhCC,EAFAD,EAUHvG,EAAMzX,OAAS0X,EAAM1X,QACvB8Y,EAAUF,EAAG,GACbG,EAAUH,EAAG,GACbI,EAAUJ,EAAG,GACbK,EAAUL,EAAG,KAEbI,EAAUJ,EAAG,GACbK,EAAUL,EAAG,GACbE,EAAUF,EAAG,GACbG,EAAUH,EAAG,IAGR,CAACE,EAASC,EAASC,EAASC,EADlBL,EAAG,KAvBX,MAgCX5B,EAAiBxW,UAAUqZ,qBAAuB,SAAStB,GAczD,IAbA,IAAI2F,GAAU,EACVC,EAAa,GACbC,EAAmB,EAEnBC,EAAe,KAEfvE,EAAU,EAEVwE,EAAqB,EACrBC,EAAoB,EAEpBC,EAAqB,EACrBC,EAAoB,EACjB3E,EAAUvB,EAAMvY,QAnpBR,GAopBTuY,EAAMuB,GAAS,IACjBqE,EAAWC,KAAsBtE,EACjCwE,EAAqBE,EACrBD,EAAoBE,EACpBD,EAAqB,EACrBC,EAAoB,EACpBJ,EAAe9F,EAAMuB,GAAS,KA3pBlB,GA6pBRvB,EAAMuB,GAAS,GACjB0E,GAAsBjG,EAAMuB,GAAS,GAAG9Z,OAExCye,GAAqBlG,EAAMuB,GAAS,GAAG9Z,OAIrCqe,GAAiBA,EAAare,QAC9B+J,KAAKmJ,IAAIoL,EAAoBC,IAC5BF,EAAare,QAAU+J,KAAKmJ,IAAIsL,EACAC,KAEnClG,EAAMpJ,OAAOgP,EAAWC,EAAmB,GAAI,EAClC,EA3qBH,EA2qBiBC,IAE3B9F,EAAM4F,EAAWC,EAAmB,GAAK,GAAG,GA5qBlC,EA8qBVA,IAGAtE,IADAsE,EAC6B,EAAID,EAAWC,EAAmB,IAAM,EACrEE,EAAqB,EACrBC,EAAoB,EACpBC,EAAqB,EACrBC,EAAoB,EACpBJ,EAAe,KACfH,GAAU,IAGdpE,IAgBF,IAZIoE,GACFzc,KAAKgX,kBAAkBF,GAEzB9W,KAAKid,6BAA6BnG,GAQlCuB,EAAU,EACHA,EAAUvB,EAAMvY,QAAQ,CAC7B,IA5sBc,GA4sBVuY,EAAMuB,EAAU,GAAG,IA3sBT,GA4sBVvB,EAAMuB,GAAS,GAAmB,CACpC,IAAI6E,EAAWpG,EAAMuB,EAAU,GAAG,GAC9BhE,EAAYyC,EAAMuB,GAAS,GAC3B8E,EAAkBnd,KAAKwb,oBAAoB0B,EAAU7I,GACrD+I,EAAkBpd,KAAKwb,oBAAoBnH,EAAW6I,GACtDC,GAAmBC,GACjBD,GAAmBD,EAAS3e,OAAS,GACrC4e,GAAmB9I,EAAU9V,OAAS,KAExCuY,EAAMpJ,OAAO2K,EAAS,EAClB,CArtBG,EAqtBUhE,EAAUsC,UAAU,EAAGwG,KACxCrG,EAAMuB,EAAU,GAAG,GACf6E,EAASvG,UAAU,EAAGuG,EAAS3e,OAAS4e,GAC5CrG,EAAMuB,EAAU,GAAG,GAAKhE,EAAUsC,UAAUwG,GAC5C9E,MAGE+E,GAAmBF,EAAS3e,OAAS,GACrC6e,GAAmB/I,EAAU9V,OAAS,KAGxCuY,EAAMpJ,OAAO2K,EAAS,EAClB,CAjuBG,EAiuBU6E,EAASvG,UAAU,EAAGyG,KACvCtG,EAAMuB,EAAU,GAAG,GAnuBX,EAouBRvB,EAAMuB,EAAU,GAAG,GACfhE,EAAUsC,UAAU,EAAGtC,EAAU9V,OAAS6e,GAC9CtG,EAAMuB,EAAU,GAAG,IAvuBX,EAwuBRvB,EAAMuB,EAAU,GAAG,GACf6E,EAASvG,UAAUyG,GACvB/E,KAGJA,IAEFA,MAWJ9C,EAAiBxW,UAAUke,6BAA+B,SAASnG,GAWjE,SAASuG,EAA2BC,EAAKC,GACvC,IAAKD,IAAQC,EAEX,OAAO,EAQT,IAAIC,EAAQF,EAAIjd,OAAOid,EAAI/e,OAAS,GAChCkf,EAAQF,EAAIld,OAAO,GACnBqd,EAAmBF,EAAM3M,MAAM0E,EAAiBoI,uBAChDC,EAAmBH,EAAM5M,MAAM0E,EAAiBoI,uBAChDE,EAAcH,GACdF,EAAM3M,MAAM0E,EAAiBuI,kBAC7BC,EAAcH,GACdH,EAAM5M,MAAM0E,EAAiBuI,kBAC7BE,EAAaH,GACbL,EAAM3M,MAAM0E,EAAiB0I,iBAC7BC,EAAaH,GACbN,EAAM5M,MAAM0E,EAAiB0I,iBAC7BE,EAAaH,GACbV,EAAIzM,MAAM0E,EAAiB6I,oBAC3BC,EAAaH,GACbX,EAAI1M,MAAM0E,EAAiB+I,sBAE/B,OAAIH,GAAcE,EAET,EACEL,GAAcE,EAEhB,EACER,IAAqBG,GAAeE,EAEtC,EACEF,GAAeE,EAEjB,EACEL,GAAoBE,EAEtB,EAEF,EAKT,IAFA,IAAIvF,EAAU,EAEPA,EAAUvB,EAAMvY,OAAS,GAAG,CACjC,GArzBa,GAqzBTuY,EAAMuB,EAAU,GAAG,IArzBV,GAszBTvB,EAAMuB,EAAU,GAAG,GAAkB,CAEvC,IAAIkG,EAAYzH,EAAMuB,EAAU,GAAG,GAC/BmG,EAAO1H,EAAMuB,GAAS,GACtBoG,EAAY3H,EAAMuB,EAAU,GAAG,GAG/BqG,EAAe1e,KAAK4W,kBAAkB2H,EAAWC,GACrD,GAAIE,EAAc,CAChB,IAAIC,EAAeH,EAAK7H,UAAU6H,EAAKjgB,OAASmgB,GAChDH,EAAYA,EAAU5H,UAAU,EAAG4H,EAAUhgB,OAASmgB,GACtDF,EAAOG,EAAeH,EAAK7H,UAAU,EAAG6H,EAAKjgB,OAASmgB,GACtDD,EAAYE,EAAeF,EAS7B,IALA,IAAIG,EAAgBL,EAChBM,EAAWL,EACXM,EAAgBL,EAChBM,EAAY1B,EAA2BkB,EAAWC,GAClDnB,EAA2BmB,EAAMC,GAC9BD,EAAKne,OAAO,KAAOoe,EAAUpe,OAAO,IAAI,CAC7Cke,GAAaC,EAAKne,OAAO,GACzBme,EAAOA,EAAK7H,UAAU,GAAK8H,EAAUpe,OAAO,GAC5Coe,EAAYA,EAAU9H,UAAU,GAChC,IAAIqI,EAAQ3B,EAA2BkB,EAAWC,GAC9CnB,EAA2BmB,EAAMC,GAEjCO,GAASD,IACXA,EAAYC,EACZJ,EAAgBL,EAChBM,EAAWL,EACXM,EAAgBL,GAIhB3H,EAAMuB,EAAU,GAAG,IAAMuG,IAEvBA,EACF9H,EAAMuB,EAAU,GAAG,GAAKuG,GAExB9H,EAAMpJ,OAAO2K,EAAU,EAAG,GAC1BA,KAEFvB,EAAMuB,GAAS,GAAKwG,EAChBC,EACFhI,EAAMuB,EAAU,GAAG,GAAKyG,GAExBhI,EAAMpJ,OAAO2K,EAAU,EAAG,GAC1BA,MAINA,MAKJ9C,EAAiBoI,sBAAwB,eACzCpI,EAAiBuI,iBAAmB,KACpCvI,EAAiB0I,gBAAkB,SACnC1I,EAAiB6I,mBAAqB,WACtC7I,EAAiB+I,qBAAuB,cAMxC/I,EAAiBxW,UAAUkgB,uBAAyB,SAASnI,GAgB3D,IAfA,IAAI2F,GAAU,EACVC,EAAa,GACbC,EAAmB,EAEnBC,EAAe,KAEfvE,EAAU,EAEV6G,GAAU,EAEVC,GAAU,EAEVC,GAAW,EAEXC,GAAW,EACRhH,EAAUvB,EAAMvY,QA14BR,GA24BTuY,EAAMuB,GAAS,IACbvB,EAAMuB,GAAS,GAAG9Z,OAASyB,KAAKyV,gBAC/B2J,GAAYC,IAEf3C,EAAWC,KAAsBtE,EACjC6G,EAAUE,EACVD,EAAUE,EACVzC,EAAe9F,EAAMuB,GAAS,KAG9BsE,EAAmB,EACnBC,EAAe,MAEjBwC,EAAWC,GAAW,KA15BV,GA45BRvI,EAAMuB,GAAS,GACjBgH,GAAW,EAEXD,GAAW,EAUTxC,IAAkBsC,GAAWC,GAAWC,GAAYC,GACjCzC,EAAare,OAASyB,KAAKyV,cAAgB,GAC3CyJ,EAAUC,EAAUC,EAAWC,GAAa,KAEjEvI,EAAMpJ,OAAOgP,EAAWC,EAAmB,GAAI,EAClC,EA96BH,EA86BiBC,IAE3B9F,EAAM4F,EAAWC,EAAmB,GAAK,GAAG,GA/6BlC,EAg7BVA,IACAC,EAAe,KACXsC,GAAWC,GAEbC,EAAWC,GAAW,EACtB1C,EAAmB,IAGnBtE,IADAsE,EAC6B,EACzBD,EAAWC,EAAmB,IAAM,EACxCyC,EAAWC,GAAW,GAExB5C,GAAU,IAGdpE,IAGEoE,GACFzc,KAAKgX,kBAAkBF,IAU3BvB,EAAiBxW,UAAUiY,kBAAoB,SAASF,GACtDA,EAAM7Y,KAAK,CA78BI,EA68BS,KAOxB,IANA,IAKIuY,EALA6B,EAAU,EACVC,EAAe,EACfC,EAAe,EACfC,EAAc,GACdC,EAAc,GAEXJ,EAAUvB,EAAMvY,QACrB,OAAQuY,EAAMuB,GAAS,IACrB,KAv9BY,EAw9BVE,IACAE,GAAe3B,EAAMuB,GAAS,GAC9BA,IACA,MACF,KA79BY,EA89BVC,IACAE,GAAe1B,EAAMuB,GAAS,GAC9BA,IACA,MACF,KAh+BW,EAk+BLC,EAAeC,EAAe,GACX,IAAjBD,GAAuC,IAAjBC,IAGH,KADrB/B,EAAexW,KAAKyW,kBAAkBgC,EAAaD,MAE5CH,EAAUC,EAAeC,EAAgB,GAv+B3C,GAw+BCzB,EAAMuB,EAAUC,EAAeC,EAAe,GAAG,GAEnDzB,EAAMuB,EAAUC,EAAeC,EAAe,GAAG,IAC7CE,EAAY9B,UAAU,EAAGH,IAE7BM,EAAMpJ,OAAO,EAAG,EAAG,CA7+BlB,EA8+BmB+K,EAAY9B,UAAU,EAAGH,KAC7C6B,KAEFI,EAAcA,EAAY9B,UAAUH,GACpCgC,EAAcA,EAAY7B,UAAUH,IAIjB,KADrBA,EAAexW,KAAK4W,kBAAkB6B,EAAaD,MAEjD1B,EAAMuB,GAAS,GAAKI,EAAY9B,UAAU8B,EAAYla,OAClDiY,GAAgBM,EAAMuB,GAAS,GACnCI,EAAcA,EAAY9B,UAAU,EAAG8B,EAAYla,OAC/CiY,GACJgC,EAAcA,EAAY7B,UAAU,EAAG6B,EAAYja,OAC/CiY,KAIa,IAAjB8B,EACFxB,EAAMpJ,OAAO2K,EAAUE,EACnBD,EAAeC,EAAc,CAngC3B,EAmgCyCE,IACrB,IAAjBF,EACTzB,EAAMpJ,OAAO2K,EAAUC,EACnBA,EAAeC,EAAc,EAvgC3B,EAugCyCC,IAE/C1B,EAAMpJ,OAAO2K,EAAUC,EAAeC,EAClCD,EAAeC,EAAc,EA1gC3B,EA0gCyCC,GAC3C,CA1gCE,EA0gCYC,IAEpBJ,EAAUA,EAAUC,EAAeC,GACxBD,EAAe,EAAI,IAAMC,EAAe,EAAI,GAAK,GACvC,IAAZF,GA7gCF,GA6gCmBvB,EAAMuB,EAAU,GAAG,IAE7CvB,EAAMuB,EAAU,GAAG,IAAMvB,EAAMuB,GAAS,GACxCvB,EAAMpJ,OAAO2K,EAAS,IAEtBA,IAEFE,EAAe,EACfD,EAAe,EACfE,EAAc,GACdC,EAAc,GAIe,KAA/B3B,EAAMA,EAAMvY,OAAS,GAAG,IAC1BuY,EAAM6B,MAMR,IAAI8D,GAAU,EAGd,IAFApE,EAAU,EAEHA,EAAUvB,EAAMvY,OAAS,GAriCjB,GAsiCTuY,EAAMuB,EAAU,GAAG,IAtiCV,GAuiCTvB,EAAMuB,EAAU,GAAG,KAEjBvB,EAAMuB,GAAS,GAAG1B,UAAUG,EAAMuB,GAAS,GAAG9Z,OAC9CuY,EAAMuB,EAAU,GAAG,GAAG9Z,SAAWuY,EAAMuB,EAAU,GAAG,IAEtDvB,EAAMuB,GAAS,GAAKvB,EAAMuB,EAAU,GAAG,GACnCvB,EAAMuB,GAAS,GAAG1B,UAAU,EAAGG,EAAMuB,GAAS,GAAG9Z,OACrBuY,EAAMuB,EAAU,GAAG,GAAG9Z,QACtDuY,EAAMuB,EAAU,GAAG,GAAKvB,EAAMuB,EAAU,GAAG,GAAKvB,EAAMuB,EAAU,GAAG,GACnEvB,EAAMpJ,OAAO2K,EAAU,EAAG,GAC1BoE,GAAU,GACD3F,EAAMuB,GAAS,GAAG1B,UAAU,EAAGG,EAAMuB,EAAU,GAAG,GAAG9Z,SAC5DuY,EAAMuB,EAAU,GAAG,KAErBvB,EAAMuB,EAAU,GAAG,IAAMvB,EAAMuB,EAAU,GAAG,GAC5CvB,EAAMuB,GAAS,GACXvB,EAAMuB,GAAS,GAAG1B,UAAUG,EAAMuB,EAAU,GAAG,GAAG9Z,QAClDuY,EAAMuB,EAAU,GAAG,GACvBvB,EAAMpJ,OAAO2K,EAAU,EAAG,GAC1BoE,GAAU,IAGdpE,IAGEoE,GACFzc,KAAKgX,kBAAkBF,IAa3BvB,EAAiBxW,UAAUugB,YAAc,SAASxI,EAAOyI,GACvD,IAIIhO,EAJAwG,EAAS,EACTC,EAAS,EACTwH,EAAc,EACdC,EAAc,EAElB,IAAKlO,EAAI,EAAGA,EAAIuF,EAAMvY,SArlCN,IAslCVuY,EAAMvF,GAAG,KACXwG,GAAUjB,EAAMvF,GAAG,GAAGhT,SAxlCV,IA0lCVuY,EAAMvF,GAAG,KACXyG,GAAUlB,EAAMvF,GAAG,GAAGhT,UAEpBwZ,EAASwH,IAPehO,IAU5BiO,EAAczH,EACd0H,EAAczH,EAGhB,OAAIlB,EAAMvY,QAAUgT,IApmCJ,IAomCSuF,EAAMvF,GAAG,GACzBkO,EAGFA,GAAeF,EAAMC,IAS9BjK,EAAiBxW,UAAU2gB,gBAAkB,SAAS5I,GAMpD,IALA,IAAI6I,EAAO,GACPC,EAAc,KACdC,EAAa,KACbC,EAAa,KACbC,EAAe,MACVxO,EAAI,EAAGA,EAAIuF,EAAMvY,OAAQgT,IAAK,CACrC,IAAIyO,EAAKlJ,EAAMvF,GAAG,GAEdmJ,EADO5D,EAAMvF,GAAG,GACJ5L,QAAQia,EAAa,SAASja,QAAQka,EAAY,QAC7Dla,QAAQma,EAAY,QAAQna,QAAQoa,EAAc,cACvD,OAAQC,GACN,KA5nCY,EA6nCVL,EAAKpO,GAAK,oCAAsCmJ,EAAO,SACvD,MACF,KAhoCY,EAioCViF,EAAKpO,GAAK,oCAAsCmJ,EAAO,SACvD,MACF,KAjoCW,EAkoCTiF,EAAKpO,GAAK,SAAWmJ,EAAO,WAIlC,OAAOiF,EAAKhO,KAAK,KASnB4D,EAAiBxW,UAAUkhB,WAAa,SAASnJ,GAE/C,IADA,IAAI4D,EAAO,GACFnJ,EAAI,EAAGA,EAAIuF,EAAMvY,OAAQgT,IAlpClB,IAmpCVuF,EAAMvF,GAAG,KACXmJ,EAAKnJ,GAAKuF,EAAMvF,GAAG,IAGvB,OAAOmJ,EAAK/I,KAAK,KASnB4D,EAAiBxW,UAAUmhB,WAAa,SAASpJ,GAE/C,IADA,IAAI4D,EAAO,GACFnJ,EAAI,EAAGA,EAAIuF,EAAMvY,OAAQgT,KAnqClB,IAoqCVuF,EAAMvF,GAAG,KACXmJ,EAAKnJ,GAAKuF,EAAMvF,GAAG,IAGvB,OAAOmJ,EAAK/I,KAAK,KAUnB4D,EAAiBxW,UAAUohB,iBAAmB,SAASrJ,GAIrD,IAHA,IAAIsJ,EAAc,EACdC,EAAa,EACbC,EAAY,EACP/O,EAAI,EAAGA,EAAIuF,EAAMvY,OAAQgT,IAAK,CACrC,IAAIyO,EAAKlJ,EAAMvF,GAAG,GACdhS,EAAOuX,EAAMvF,GAAG,GACpB,OAAQyO,GACN,KAzrCY,EA0rCVK,GAAc9gB,EAAKhB,OACnB,MACF,KA7rCY,EA8rCV+hB,GAAa/gB,EAAKhB,OAClB,MACF,KA9rCW,EAgsCT6hB,GAAe9X,KAAKmJ,IAAI4O,EAAYC,GACpCD,EAAa,EACbC,EAAY,GAKlB,OADAF,GAAe9X,KAAKmJ,IAAI4O,EAAYC,IAatC/K,EAAiBxW,UAAUwhB,aAAe,SAASzJ,GAEjD,IADA,IAAI4D,EAAO,GACFnJ,EAAI,EAAGA,EAAIuF,EAAMvY,OAAQgT,IAChC,OAAQuF,EAAMvF,GAAG,IACf,KAxtCY,EAytCVmJ,EAAKnJ,GAAK,IAAMiP,UAAU1J,EAAMvF,GAAG,IACnC,MACF,KA5tCY,EA6tCVmJ,EAAKnJ,GAAK,IAAMuF,EAAMvF,GAAG,GAAGhT,OAC5B,MACF,KA7tCW,EA8tCTmc,EAAKnJ,GAAK,IAAMuF,EAAMvF,GAAG,GAAGhT,OAIlC,OAAOmc,EAAK/I,KAAK,MAAMhM,QAAQ,OAAQ,MAYzC4P,EAAiBxW,UAAU0hB,eAAiB,SAASzK,EAAO9G,GAK1D,IAJA,IAAI4H,EAAQ,GACR4J,EAAc,EACdrI,EAAU,EACVsI,EAASzR,EAAM0R,MAAM,OAChBrP,EAAI,EAAGA,EAAIoP,EAAOpiB,OAAQgT,IAAK,CAGtC,IAAIsP,EAAQF,EAAOpP,GAAGoF,UAAU,GAChC,OAAQgK,EAAOpP,GAAGlR,OAAO,IACvB,IAAK,IACH,IACEyW,EAAM4J,KAAiB,CA3vCf,EA2vC6BI,UAAUD,IAC/C,MAAOrZ,GAEP,MAAM,IAAIqF,MAAM,qCAAuCgU,GAEzD,MACF,IAAK,IAEL,IAAK,IACH,IAAIE,EAAI/M,SAAS6M,EAAO,IACxB,GAAIG,MAAMD,IAAMA,EAAI,EAClB,MAAM,IAAIlU,MAAM,qCAAuCgU,GAEzD,IAAInG,EAAO1E,EAAMW,UAAU0B,EAASA,GAAW0I,GACpB,KAAvBJ,EAAOpP,GAAGlR,OAAO,GACnByW,EAAM4J,KAAiB,CAzwChB,EAywC6BhG,GAEpC5D,EAAM4J,KAAiB,EA7wCf,EA6wC6BhG,GAEvC,MACF,QAGE,GAAIiG,EAAOpP,GACT,MAAM,IAAI1E,MAAM,6CACA8T,EAAOpP,KAI/B,GAAI8G,GAAWrC,EAAMzX,OACnB,MAAM,IAAIsO,MAAM,iBAAmBwL,EAC/B,wCAA0CrC,EAAMzX,OAAS,MAE/D,OAAOuY,GAcTvB,EAAiBxW,UAAUkiB,WAAa,SAASvG,EAAMiB,EAAS4D,GAE9D,GAAY,MAAR7E,GAA2B,MAAXiB,GAA0B,MAAP4D,EACrC,MAAM,IAAI1S,MAAM,4BAIlB,OADA0S,EAAMjX,KAAKmJ,IAAI,EAAGnJ,KAAKD,IAAIkX,EAAK7E,EAAKnc,SACjCmc,GAAQiB,EAEH,EACGjB,EAAKnc,OAGNmc,EAAK/D,UAAU4I,EAAKA,EAAM5D,EAAQpd,SAAWod,EAE/C4D,EAGAvf,KAAKkhB,aAAaxG,EAAMiB,EAAS4D,IANhC,GAoBZhK,EAAiBxW,UAAUmiB,aAAe,SAASxG,EAAMiB,EAAS4D,GAChE,GAAI5D,EAAQpd,OAASyB,KAAK8V,cACxB,MAAM,IAAIjJ,MAAM,sCAIlB,IAAIsU,EAAInhB,KAAKohB,gBAAgBzF,GAEzBE,EAAM7b,KAUV,SAASqhB,EAAkBC,EAAG/P,GAC5B,IAAIgQ,EAAWD,EAAI3F,EAAQpd,OACvBijB,EAAYlZ,KAAKmZ,IAAIlC,EAAMhO,GAC/B,OAAKsK,EAAIlG,eAIF4L,EAAYC,EAAY3F,EAAIlG,eAF1B6L,EAAY,EAAMD,EAM7B,IAAIG,EAAkB1hB,KAAK0V,gBAEvBiM,EAAWjH,EAAKxb,QAAQyc,EAAS4D,IACpB,GAAboC,IACFD,EAAkBpZ,KAAKD,IAAIgZ,EAAkB,EAAGM,GAAWD,IAG1C,IADjBC,EAAWjH,EAAKkH,YAAYjG,EAAS4D,EAAM5D,EAAQpd,WAEjDmjB,EACIpZ,KAAKD,IAAIgZ,EAAkB,EAAGM,GAAWD,KAKjD,IAGIG,EAASC,EAHTC,EAAY,GAAMpG,EAAQpd,OAAS,EACvCojB,GAAY,EAKZ,IAFA,IACIK,EADAC,EAAUtG,EAAQpd,OAASmc,EAAKnc,OAE3Bkb,EAAI,EAAGA,EAAIkC,EAAQpd,OAAQkb,IAAK,CAMvC,IAFAoI,EAAU,EACVC,EAAUG,EACHJ,EAAUC,GACXT,EAAkB5H,EAAG8F,EAAMuC,IAAYJ,EACzCG,EAAUC,EAEVG,EAAUH,EAEZA,EAAUxZ,KAAKgT,OAAO2G,EAAUJ,GAAW,EAAIA,GAGjDI,EAAUH,EACV,IAAII,EAAQ5Z,KAAKmJ,IAAI,EAAG8N,EAAMuC,EAAU,GACpCK,EAAS7Z,KAAKD,IAAIkX,EAAMuC,EAASpH,EAAKnc,QAAUod,EAAQpd,OAExD6jB,EAAK7kB,MAAM4kB,EAAS,GACxBC,EAAGD,EAAS,IAAM,GAAK1I,GAAK,EAC5B,IAAK,IAAIf,EAAIyJ,EAAQzJ,GAAKwJ,EAAOxJ,IAAK,CAGpC,IAAI2J,EAAYlB,EAAEzG,EAAKra,OAAOqY,EAAI,IAQlC,GANE0J,EAAG1J,GADK,IAANe,GACQ2I,EAAG1J,EAAI,IAAM,EAAK,GAAK2J,GAEtBD,EAAG1J,EAAI,IAAM,EAAK,GAAK2J,GACvBL,EAAQtJ,EAAI,GAAKsJ,EAAQtJ,KAAO,EAAK,EACxCsJ,EAAQtJ,EAAI,GAElB0J,EAAG1J,GAAKqJ,EAAW,CACrB,IAAI/C,EAAQqC,EAAkB5H,EAAGf,EAAI,GAGrC,GAAIsG,GAAS0C,EAAiB,CAI5B,GAFAA,EAAkB1C,KAClB2C,EAAWjJ,EAAI,GACA6G,GAKb,MAHA2C,EAAQ5Z,KAAKmJ,IAAI,EAAG,EAAI8N,EAAMoC,KAStC,GAAIN,EAAkB5H,EAAI,EAAG8F,GAAOmC,EAClC,MAEFM,EAAUI,EAEZ,OAAOT,GAUTpM,EAAiBxW,UAAUqiB,gBAAkB,SAASzF,GAEpD,IADA,IAAIwF,EAAI,GACC7e,EAAI,EAAGA,EAAIqZ,EAAQpd,OAAQ+D,IAClC6e,EAAExF,EAAQtb,OAAOiC,IAAM,EAEzB,IAASA,EAAI,EAAGA,EAAIqZ,EAAQpd,OAAQ+D,IAClC6e,EAAExF,EAAQtb,OAAOiC,KAAO,GAAMqZ,EAAQpd,OAAS+D,EAAI,EAErD,OAAO6e,GAcT5L,EAAiBxW,UAAUujB,kBAAoB,SAASC,EAAO7H,GAC7D,GAAmB,GAAfA,EAAKnc,OAAT,CAQA,IALA,IAAIod,EAAUjB,EAAK/D,UAAU4L,EAAMC,OAAQD,EAAMC,OAASD,EAAME,SAC5DC,EAAU,EAIPhI,EAAKxb,QAAQyc,IAAYjB,EAAKkH,YAAYjG,IAC1CA,EAAQpd,OAASyB,KAAK8V,cAAgB9V,KAAK6V,aAC3C7V,KAAK6V,cACV6M,GAAW1iB,KAAK6V,aAChB8F,EAAUjB,EAAK/D,UAAU4L,EAAMC,OAASE,EACfH,EAAMC,OAASD,EAAME,QAAUC,GAG1DA,GAAW1iB,KAAK6V,aAGhB,IAAI8M,EAASjI,EAAK/D,UAAU4L,EAAMC,OAASE,EAASH,EAAMC,QACtDG,GACFJ,EAAMzL,MAAM5P,QAAQ,CAx+CP,EAw+CoByb,IAGnC,IAAIC,EAASlI,EAAK/D,UAAU4L,EAAMC,OAASD,EAAME,QACrBF,EAAMC,OAASD,EAAME,QAAUC,GACvDE,GACFL,EAAMzL,MAAM7Y,KAAK,CA9+CJ,EA8+CiB2kB,IAIhCL,EAAMM,QAAUF,EAAOpkB,OACvBgkB,EAAMC,QAAUG,EAAOpkB,OAEvBgkB,EAAME,SAAWE,EAAOpkB,OAASqkB,EAAOrkB,OACxCgkB,EAAMO,SAAWH,EAAOpkB,OAASqkB,EAAOrkB,SA0B1CgX,EAAiBxW,UAAUgkB,WAAa,SAASzd,EAAG0d,EAAOC,GACzD,IAAIjN,EAAOc,EACX,GAAgB,iBAALxR,GAAiC,iBAAT0d,QACf,IAATC,EAGTjN,EAA6B,GAC7Bc,EAAQ9W,KAAK+V,UAAUC,EAA4B,GAAS,IAClDzX,OAAS,IACjByB,KAAKoY,qBAAqBtB,GAC1B9W,KAAKif,uBAAuBnI,SAEzB,GAAIxR,GAAiB,iBAALA,QAAiC,IAAT0d,QAC3B,IAATC,EAGTnM,EAAsD,EACtDd,EAAQhW,KAAKigB,WAAWnJ,QACnB,GAAgB,iBAALxR,GAAiB0d,GAAyB,iBAATA,QAC/B,IAATC,EAETjN,EAA6B,EAC7Bc,EAAsD,MACjD,IAAgB,iBAALxR,GAAiC,iBAAT0d,IACtCC,GAAyB,iBAATA,EAMlB,MAAM,IAAIpW,MAAM,sCAHhBmJ,EAA6B,EAC7Bc,EAAsD,EAKxD,GAAqB,IAAjBA,EAAMvY,OACR,MAAO,GAYT,IAVA,IAAI2kB,EAAU,GACVX,EAAQ,IAAIhN,EAAiB4N,UAC7BC,EAAkB,EAClBC,EAAc,EACdC,EAAc,EAIdC,EAAgBvN,EAChBwN,EAAiBxN,EACZzE,EAAI,EAAGA,EAAIuF,EAAMvY,OAAQgT,IAAK,CACrC,IAAIkS,EAAY3M,EAAMvF,GAAG,GACrBmS,EAAY5M,EAAMvF,GAAG,GAQzB,OANK6R,GAlkDQ,IAkkDWK,IAEtBlB,EAAMM,OAASQ,EACfd,EAAMC,OAASc,GAGTG,GACN,KA1kDY,EA2kDVlB,EAAMzL,MAAMsM,KAAqBtM,EAAMvF,GACvCgR,EAAMO,SAAWY,EAAUnlB,OAC3BilB,EAAiBA,EAAe7M,UAAU,EAAG2M,GAAeI,EAC3CF,EAAe7M,UAAU2M,GAC1C,MACF,KAjlDY,EAklDVf,EAAME,SAAWiB,EAAUnlB,OAC3BgkB,EAAMzL,MAAMsM,KAAqBtM,EAAMvF,GACvCiS,EAAiBA,EAAe7M,UAAU,EAAG2M,GAC5BE,EAAe7M,UAAU2M,EACrBI,EAAUnlB,QAC/B,MACF,KAtlDW,EAulDLmlB,EAAUnlB,QAAU,EAAIyB,KAAK6V,cAC7BuN,GAAmBtM,EAAMvY,QAAUgT,EAAI,GAEzCgR,EAAMzL,MAAMsM,KAAqBtM,EAAMvF,GACvCgR,EAAME,SAAWiB,EAAUnlB,OAC3BgkB,EAAMO,SAAWY,EAAUnlB,QAClBmlB,EAAUnlB,QAAU,EAAIyB,KAAK6V,cAElCuN,IACFpjB,KAAKsiB,kBAAkBC,EAAOgB,GAC9BL,EAAQjlB,KAAKskB,GACbA,EAAQ,IAAIhN,EAAiB4N,UAC7BC,EAAkB,EAKlBG,EAAgBC,EAChBH,EAAcC,GA1mDR,IAinDVG,IACFJ,GAAeK,EAAUnlB,SAnnDb,IAqnDVklB,IACFH,GAAeI,EAAUnlB,QAS7B,OALI6kB,IACFpjB,KAAKsiB,kBAAkBC,EAAOgB,GAC9BL,EAAQjlB,KAAKskB,IAGRW,GAST3N,EAAiBxW,UAAU4kB,eAAiB,SAAST,GAGnD,IADA,IAAIU,EAAc,GACTrS,EAAI,EAAGA,EAAI2R,EAAQ3kB,OAAQgT,IAAK,CACvC,IAAIgR,EAAQW,EAAQ3R,GAChBsS,EAAY,IAAItO,EAAiB4N,UACrCU,EAAU/M,MAAQ,GAClB,IAAK,IAAItF,EAAI,EAAGA,EAAI+Q,EAAMzL,MAAMvY,OAAQiT,IACtCqS,EAAU/M,MAAMtF,GAAK+Q,EAAMzL,MAAMtF,GAAGpJ,QAEtCyb,EAAUhB,OAASN,EAAMM,OACzBgB,EAAUrB,OAASD,EAAMC,OACzBqB,EAAUpB,QAAUF,EAAME,QAC1BoB,EAAUf,QAAUP,EAAMO,QAC1Bc,EAAYrS,GAAKsS,EAEnB,OAAOD,GAYTrO,EAAiBxW,UAAU+kB,YAAc,SAASZ,EAASxI,GACzD,GAAsB,GAAlBwI,EAAQ3kB,OACV,MAAO,CAACmc,EAAM,IAIhBwI,EAAUljB,KAAK2jB,eAAeT,GAE9B,IAAIa,EAAc/jB,KAAKgkB,iBAAiBd,GACxCxI,EAAOqJ,EAAcrJ,EAAOqJ,EAE5B/jB,KAAKikB,eAAef,GAOpB,IAFA,IAAIhU,EAAQ,EACRgV,EAAU,GACL3S,EAAI,EAAGA,EAAI2R,EAAQ3kB,OAAQgT,IAAK,CACvC,IAEI4S,EA4BElO,EA9BFmO,EAAelB,EAAQ3R,GAAGiR,OAAStT,EACnC8G,EAAQhW,KAAKigB,WAAWiD,EAAQ3R,GAAGuF,OAEnCuN,GAAW,EAkBf,GAjBIrO,EAAMzX,OAASyB,KAAK8V,eAKJ,IAFlBqO,EAAYnkB,KAAKihB,WAAWvG,EAAM1E,EAAMW,UAAU,EAAG3W,KAAK8V,eAC9BsO,OAKV,IAHhBC,EAAUrkB,KAAKihB,WAAWvG,EACtB1E,EAAMW,UAAUX,EAAMzX,OAASyB,KAAK8V,eACpCsO,EAAepO,EAAMzX,OAASyB,KAAK8V,iBAClBqO,GAAaE,KAEhCF,GAAa,GAIjBA,EAAYnkB,KAAKihB,WAAWvG,EAAM1E,EAAOoO,IAEzB,GAAdD,EAEFD,EAAQ3S,IAAK,EAEbrC,GAASgU,EAAQ3R,GAAGuR,QAAUI,EAAQ3R,GAAGkR,aAWzC,GARAyB,EAAQ3S,IAAK,EACbrC,EAAQiV,EAAYC,EAOhBpO,IAJFC,GADc,GAAZoO,EACM3J,EAAK/D,UAAUwN,EAAWA,EAAYnO,EAAMzX,QAE5Cmc,EAAK/D,UAAUwN,EAAWE,EAAUrkB,KAAK8V,gBAIjD4E,EAAOA,EAAK/D,UAAU,EAAGwN,GAClBnkB,KAAKkgB,WAAWgD,EAAQ3R,GAAGuF,OAC3B4D,EAAK/D,UAAUwN,EAAYnO,EAAMzX,YACnC,CAGL,IAAIuY,EAAQ9W,KAAK+V,UAAUC,EAAOC,GAAO,GACzC,GAAID,EAAMzX,OAASyB,KAAK8V,eACpB9V,KAAKmgB,iBAAiBrJ,GAASd,EAAMzX,OACrCyB,KAAK4V,sBAEPsO,EAAQ3S,IAAK,MACR,CACLvR,KAAKid,6BAA6BnG,GAGlC,IAFA,IACInG,EADAD,EAAS,EAEJc,EAAI,EAAGA,EAAI0R,EAAQ3R,GAAGuF,MAAMvY,OAAQiT,IAAK,CAChD,IAAI8S,EAAMpB,EAAQ3R,GAAGuF,MAAMtF,GA5uDtB,IA6uDD8S,EAAI,KACN3T,EAAS3Q,KAAKsf,YAAYxI,EAAOpG,IA/uD7B,IAivDF4T,EAAI,GACN5J,EAAOA,EAAK/D,UAAU,EAAGwN,EAAYxT,GAAU2T,EAAI,GAC5C5J,EAAK/D,UAAUwN,EAAYxT,IApvD9B,IAqvDK2T,EAAI,KACb5J,EAAOA,EAAK/D,UAAU,EAAGwN,EAAYxT,GAC9B+J,EAAK/D,UAAUwN,EAAYnkB,KAAKsf,YAAYxI,EACxCpG,EAAS4T,EAAI,GAAG/lB,WAxvDvB,IA0vDF+lB,EAAI,KACN5T,GAAU4T,EAAI,GAAG/lB,WAS7B,MAAO,CADPmc,EAAOA,EAAK/D,UAAUoN,EAAYxlB,OAAQmc,EAAKnc,OAASwlB,EAAYxlB,QACtD2lB,IAUhB3O,EAAiBxW,UAAUilB,iBAAmB,SAASd,GAGrD,IAFA,IAAIqB,EAAgBvkB,KAAK6V,aACrBkO,EAAc,GACTxS,EAAI,EAAGA,GAAKgT,EAAehT,IAClCwS,GAAevb,OAAOwS,aAAazJ,GAIrC,IAASA,EAAI,EAAGA,EAAI2R,EAAQ3kB,OAAQgT,IAClC2R,EAAQ3R,GAAGsR,QAAU0B,EACrBrB,EAAQ3R,GAAGiR,QAAU+B,EAIvB,IAAIhC,EAAQW,EAAQ,GAChBpM,EAAQyL,EAAMzL,MAClB,GAAoB,GAAhBA,EAAMvY,QA5xDK,GA4xDUuY,EAAM,GAAG,GAEhCA,EAAM5P,QAAQ,CA9xDD,EA8xDc6c,IAC3BxB,EAAMM,QAAU0B,EAChBhC,EAAMC,QAAU+B,EAChBhC,EAAME,SAAW8B,EACjBhC,EAAMO,SAAWyB,OACZ,GAAIA,EAAgBzN,EAAM,GAAG,GAAGvY,OAAQ,CAE7C,IAAIimB,EAAcD,EAAgBzN,EAAM,GAAG,GAAGvY,OAC9CuY,EAAM,GAAG,GAAKiN,EAAYpN,UAAUG,EAAM,GAAG,GAAGvY,QAAUuY,EAAM,GAAG,GACnEyL,EAAMM,QAAU2B,EAChBjC,EAAMC,QAAUgC,EAChBjC,EAAME,SAAW+B,EACjBjC,EAAMO,SAAW0B,EAmBnB,OAboB,IADpB1N,GADAyL,EAAQW,EAAQA,EAAQ3kB,OAAS,IACnBuY,OACJvY,QAhzDK,GAgzDUuY,EAAMA,EAAMvY,OAAS,GAAG,IAE/CuY,EAAM7Y,KAAK,CAlzDE,EAkzDW8lB,IACxBxB,EAAME,SAAW8B,EACjBhC,EAAMO,SAAWyB,GACRA,EAAgBzN,EAAMA,EAAMvY,OAAS,GAAG,GAAGA,SAEhDimB,EAAcD,EAAgBzN,EAAMA,EAAMvY,OAAS,GAAG,GAAGA,OAC7DuY,EAAMA,EAAMvY,OAAS,GAAG,IAAMwlB,EAAYpN,UAAU,EAAG6N,GACvDjC,EAAME,SAAW+B,EACjBjC,EAAMO,SAAW0B,GAGZT,GAUTxO,EAAiBxW,UAAUklB,eAAiB,SAASf,GAEnD,IADA,IAAIuB,EAAazkB,KAAK8V,cACbvE,EAAI,EAAGA,EAAI2R,EAAQ3kB,OAAQgT,IAClC,KAAI2R,EAAQ3R,GAAGkR,SAAWgC,GAA1B,CAGA,IAAIC,EAAWxB,EAAQ3R,GAEvB2R,EAAQxV,OAAO6D,IAAK,GAIpB,IAHA,IAAIsR,EAAS6B,EAAS7B,OAClBL,EAASkC,EAASlC,OAClBmC,EAAa,GACgB,IAA1BD,EAAS5N,MAAMvY,QAAc,CAElC,IAAIgkB,EAAQ,IAAIhN,EAAiB4N,UAC7ByB,GAAQ,EAOZ,IANArC,EAAMM,OAASA,EAAS8B,EAAWpmB,OACnCgkB,EAAMC,OAASA,EAASmC,EAAWpmB,OAChB,KAAfomB,IACFpC,EAAME,QAAUF,EAAMO,QAAU6B,EAAWpmB,OAC3CgkB,EAAMzL,MAAM7Y,KAAK,CA31DR,EA21DqB0mB,KAEC,IAA1BD,EAAS5N,MAAMvY,QACfgkB,EAAME,QAAUgC,EAAazkB,KAAK6V,cAAc,CACrD,IAAI4N,EAAYiB,EAAS5N,MAAM,GAAG,GAC9B4M,EAAYgB,EAAS5N,MAAM,GAAG,GAj2DxB,IAk2DN2M,GAEFlB,EAAMO,SAAWY,EAAUnlB,OAC3BikB,GAAUkB,EAAUnlB,OACpBgkB,EAAMzL,MAAM7Y,KAAKymB,EAAS5N,MAAM+N,SAChCD,GAAQ,IAx2DA,IAy2DCnB,GAAmD,GAAtBlB,EAAMzL,MAAMvY,QAv2D3C,GAw2DEgkB,EAAMzL,MAAM,GAAG,IACf4M,EAAUnlB,OAAS,EAAIkmB,GAEhClC,EAAME,SAAWiB,EAAUnlB,OAC3BskB,GAAUa,EAAUnlB,OACpBqmB,GAAQ,EACRrC,EAAMzL,MAAM7Y,KAAK,CAACwlB,EAAWC,IAC7BgB,EAAS5N,MAAM+N,UAGfnB,EAAYA,EAAU/M,UAAU,EAC5B8N,EAAalC,EAAME,QAAUziB,KAAK6V,cACtC0M,EAAME,SAAWiB,EAAUnlB,OAC3BskB,GAAUa,EAAUnlB,OAr3Db,IAs3DHklB,GACFlB,EAAMO,SAAWY,EAAUnlB,OAC3BikB,GAAUkB,EAAUnlB,QAEpBqmB,GAAQ,EAEVrC,EAAMzL,MAAM7Y,KAAK,CAACwlB,EAAWC,IACzBA,GAAagB,EAAS5N,MAAM,GAAG,GACjC4N,EAAS5N,MAAM+N,QAEfH,EAAS5N,MAAM,GAAG,GACd4N,EAAS5N,MAAM,GAAG,GAAGH,UAAU+M,EAAUnlB,SAMnDomB,GADAA,EAAa3kB,KAAKkgB,WAAWqC,EAAMzL,QAEpBH,UAAUgO,EAAWpmB,OAASyB,KAAK6V,cAElD,IAAIiP,EAAc9kB,KAAKigB,WAAWyE,EAAS5N,OACpBH,UAAU,EAAG3W,KAAK6V,cACrB,KAAhBiP,IACFvC,EAAME,SAAWqC,EAAYvmB,OAC7BgkB,EAAMO,SAAWgC,EAAYvmB,OACF,IAAvBgkB,EAAMzL,MAAMvY,QA/4DP,IAg5DLgkB,EAAMzL,MAAMyL,EAAMzL,MAAMvY,OAAS,GAAG,GACtCgkB,EAAMzL,MAAMyL,EAAMzL,MAAMvY,OAAS,GAAG,IAAMumB,EAE1CvC,EAAMzL,MAAM7Y,KAAK,CAn5DV,EAm5DuB6mB,KAG7BF,GACH1B,EAAQxV,SAAS6D,EAAG,EAAGgR,MAY/BhN,EAAiBxW,UAAUgmB,aAAe,SAAS7B,GAEjD,IADA,IAAIxI,EAAO,GACFnJ,EAAI,EAAGA,EAAI2R,EAAQ3kB,OAAQgT,IAClCmJ,EAAKnJ,GAAK2R,EAAQ3R,GAEpB,OAAOmJ,EAAK/I,KAAK,KAUnB4D,EAAiBxW,UAAUimB,eAAiB,SAASC,GACnD,IAAI/B,EAAU,GACd,IAAK+B,EACH,OAAO/B,EAKT,IAHA,IAAIxI,EAAOuK,EAASrE,MAAM,MACtBsE,EAAc,EACdC,EAAc,uCACXD,EAAcxK,EAAKnc,QAAQ,CAChC,IAAI6mB,EAAI1K,EAAKwK,GAAarU,MAAMsU,GAChC,IAAKC,EACH,MAAM,IAAIvY,MAAM,yBAA2B6N,EAAKwK,IAElD,IAAI3C,EAAQ,IAAIhN,EAAiB4N,UAyBjC,IAxBAD,EAAQjlB,KAAKskB,GACbA,EAAMM,OAAS7O,SAASoR,EAAE,GAAI,IACjB,KAATA,EAAE,IACJ7C,EAAMM,SACNN,EAAME,QAAU,GACC,KAAR2C,EAAE,GACX7C,EAAME,QAAU,GAEhBF,EAAMM,SACNN,EAAME,QAAUzO,SAASoR,EAAE,GAAI,KAGjC7C,EAAMC,OAASxO,SAASoR,EAAE,GAAI,IACjB,KAATA,EAAE,IACJ7C,EAAMC,SACND,EAAMO,QAAU,GACC,KAARsC,EAAE,GACX7C,EAAMO,QAAU,GAEhBP,EAAMC,SACND,EAAMO,QAAU9O,SAASoR,EAAE,GAAI,KAEjCF,IAEOA,EAAcxK,EAAKnc,QAAQ,CAChC,IAAI8mB,EAAO3K,EAAKwK,GAAa7kB,OAAO,GACpC,IACE,IAAI0a,EAAO+F,UAAUpG,EAAKwK,GAAavO,UAAU,IACjD,MAAOnP,GAEP,MAAM,IAAIqF,MAAM,qCAAuCkO,GAEzD,GAAY,KAARsK,EAEF9C,EAAMzL,MAAM7Y,KAAK,EAp+DP,EAo+DqB8c,SAC1B,GAAY,KAARsK,EAET9C,EAAMzL,MAAM7Y,KAAK,CAt+DP,EAs+DqB8c,SAC1B,GAAY,KAARsK,EAET9C,EAAMzL,MAAM7Y,KAAK,CAx+DR,EAw+DqB8c,QACzB,IAAY,KAARsK,EAET,MACK,GAAa,KAATA,EAIT,MAAM,IAAIxY,MAAM,uBAAyBwY,EAAO,SAAWtK,GAE7DmK,KAGJ,OAAOhC,GAQT3N,EAAiB4N,UAAY,WAE3BnjB,KAAK8W,MAAQ,GAEb9W,KAAK6iB,OAAS,KAEd7iB,KAAKwiB,OAAS,KAEdxiB,KAAKyiB,QAAU,EAEfziB,KAAK8iB,QAAU,GAUjBvN,EAAiB4N,UAAUpkB,UAAUqE,SAAW,WAmB9C,IAlBA,IAgBI4c,EADAtF,EAAO,CAAC,QAdS,IAAjB1a,KAAKyiB,QACGziB,KAAK6iB,OAAS,KACC,GAAhB7iB,KAAKyiB,QACJziB,KAAK6iB,OAAS,EAEb7iB,KAAK6iB,OAAS,EAAK,IAAM7iB,KAAKyiB,SASZ,MAPV,IAAjBziB,KAAK8iB,QACG9iB,KAAKwiB,OAAS,KACC,GAAhBxiB,KAAK8iB,QACJ9iB,KAAKwiB,OAAS,EAEbxiB,KAAKwiB,OAAS,EAAK,IAAMxiB,KAAK8iB,SAEK,SAGvCvR,EAAI,EAAGA,EAAIvR,KAAK8W,MAAMvY,OAAQgT,IAAK,CAC1C,OAAQvR,KAAK8W,MAAMvF,GAAG,IACpB,KAviEY,EAwiEVyO,EAAK,IACL,MACF,KA3iEY,EA4iEVA,EAAK,IACL,MACF,KA5iEW,EA6iETA,EAAK,IAGTtF,EAAKnJ,EAAI,GAAKyO,EAAKQ,UAAUxgB,KAAK8W,MAAMvF,GAAG,IAAM,KAEnD,OAAOmJ,EAAK/I,KAAK,IAAIhM,QAAQ,OAAQ,MAKvCjC,EAAOC,QAAU4R,EACjB7R,EAAOC,QAA0B,iBAAI4R,EACrC7R,EAAOC,QAAqB,aA3jEV,EA4jElBD,EAAOC,QAAqB,YA3jEV,EA4jElBD,EAAOC,QAAoB,WA3jEV,KAikEb2hB,EAAkB,KAElBC,EAAoB,SAA2BC,GAGjD,IAAKF,EAAiB,CACpB,IAAI5b,OAAW,EAEf,GAAgC,oBAArB6L,iBAET7L,EAAuC,mBAArB6L,iBAAkC,IAAIA,iBAAqB,IAAIA,iBAAiBA,sBAC7F,GAAIF,EACT,IACE3L,EAAW2L,GAAkB,IAAIA,EACjC,MAAO5J,GACP/B,EAAW,KAIf,IAAKA,EAAU,CACb,IAAK8b,EACH,OAAO,KAET,IAAI5X,EAAQ,IAAIf,MAAM,2CAGtB,MADAe,EAAM6X,4BAA6B,EAC7B7X,EAER0X,EAAkB,CAChBI,KAAM,SAAcC,EAAMC,GACxB,OAAOlc,EAASqb,aAAarb,EAASqZ,WAAW4C,EAAMC,KAEzDrD,MAAO,SAAeoD,EAAME,GAE1B,IADA,IAAI3B,EAAUxa,EAASoa,YAAYpa,EAASsb,eAAea,GAASF,GAC3DrjB,EAAI,EAAGA,EAAI4hB,EAAQ,GAAG3lB,OAAQ+D,IAChC4hB,EAAQ,GAAG5hB,KACD,IAAIuK,MAAM,qBAChBiZ,iBAAkB,GAG7B,OAAO5B,EAAQ,KAIrB,OAAOoB,GAGLS,EAAe,SAAyB3Z,GAC1C,GAAyB,WAArBA,EAAQkD,SAAZ,CAGA,IAAI0W,EAAY5Z,EAAQlO,SAAWkO,EAAQlO,QAAQ+nB,UAAY7Z,EAAQlO,QAAQ+nB,SAASD,WApDjE,GAqDvB,GAAI5Z,EAAQtD,KAAKvK,OAASynB,GAAa5Z,EAAQyC,MAAMtQ,OAASynB,EAC5D5Z,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAMsD,EAAQyC,QAAQa,WADnD,CAKA,IAAIwW,EAAoBX,IACxB,GAAKW,EAAL,CAMA,IAAIR,EAAOQ,EAAkBR,KAC7BtZ,EAAQ4C,UAAU,CAAC0W,EAAKtZ,EAAQtD,KAAMsD,EAAQyC,OAAQ,EAnExC,IAmEuDa,YAJnEtD,EAAQ4C,UAAU,CAAC5C,EAAQtD,KAAMsD,EAAQyC,QAAQa,UAMrDqW,EAAa9Y,WAAa,QAE1B,IAAIkZ,EAAgB,SAA0B/Z,GAC5C,IAAIA,EAAQwD,QAxEE,IA2EVxD,EAAQ8C,MAAM,GAAlB,CAKA,IAAIqT,EAAQgD,GAAkB,GAAMhD,MACpCnW,EAAQ4C,UAAUuT,EAAMnW,EAAQtD,KAAMsD,EAAQ8C,MAAM,KAAKQ,SAE3DyW,EAAclZ,WAAa,QAE3B,IAAImZ,EAAmB,SAA0BlX,GAC/C,IACIzL,EADAnB,OAAI,EAEJ+jB,OAAQ,EACRtL,OAAO,EACPuL,OAAU,EACVC,EAAS,KACTC,EAAc,wCAGlB,IAAKlkB,EAAI,EAAGmB,GADZ4iB,EAAQnX,EAAM0R,MAAM,OACEriB,OAAQ+D,EAAImB,EAAGnB,IAAK,CAExC,IAAIsY,GADJG,EAAOsL,EAAM/jB,IACQ8F,MAAM,EAAG,GACZ,MAAdwS,GACF2L,EAASC,EAAY/X,KAAKsM,GAI1BsL,EAHa/jB,GAGO,OAASikB,EAAO,GAAK,IAAMA,EAAO,GAAK,KAAOA,EAAO,GAAK,IAAMA,EAAO,GAAK,OACzE,MAAd3L,GACTyL,EAAM/jB,GAAK,IAAM+jB,EAAM/jB,GAAG8F,MAAM,GACC,MAA7Bie,EAAM/jB,EAAI,GAAG8F,MAAM,EAAG,KAExBke,EAAUD,EAAM/jB,GAChB+jB,EAAM/jB,GAAK+jB,EAAM/jB,EAAI,GACrB+jB,EAAM/jB,EAAI,GAAKgkB,IAEM,MAAd1L,IACTyL,EAAM/jB,GAAK,IAAM+jB,EAAM/jB,GAAG8F,MAAM,IAGpC,OAAOie,EAAM1U,KAAK,OAGhB8U,EAAkB,SAA4Bra,GAC5CA,EAAQwD,QAxHE,IA2HVxD,EAAQ8C,MAAM,IAKlB9C,EAAQ4C,UAAU,CAACoX,EAAiBha,EAAQ8C,MAAM,IAAK,EAhIzC,IAgIwDQ,QAExE+W,EAAgBxZ,WAAa,QAE7B,IAAIyZ,EAAc,WAChB,SAASA,EAAYxoB,GACnBuL,EAAezJ,KAAM0mB,GAErB1mB,KAAKkM,UAAY,IAAIL,EAAU3N,GAC/B8B,KAAKkM,UAAUxH,KAAK,IAAIiI,EAAK,QAAQga,OAAO5W,EAA2BV,EAAY+F,EAAc2Q,EAAc9V,EAAmBwC,GAAcmU,oBAChJ5mB,KAAKkM,UAAUxH,KAAK,IAAIiI,EAAK,SAASga,OAAOvW,EAA4BoE,EAA8B7E,EAAawW,EAAehW,EAAeyD,GAAegT,oBACjK5mB,KAAKkM,UAAUxH,KAAK,IAAIiI,EAAK,WAAWga,OAAOrW,EAA8B6E,EAAgCrF,EAAe2W,EAAiBpW,EAAiBoE,GAAiBmS,oBAoCjL,OAjCA/c,EAAY6c,EAAa,CAAC,CACxB/oB,IAAK,UACL0B,MAAO,WACL,IAAIwnB,EAEJ,OAAQA,EAAa7mB,KAAKkM,WAAWhO,QAAQuD,MAAMolB,EAAYvoB,aAEhE,CACDX,IAAK,OACL0B,MAAO,SAAcyJ,EAAM+F,GACzB,OAAO7O,KAAKkM,UAAUO,QAAQ,IAAIkC,EAAY7F,EAAM+F,MAErD,CACDlR,IAAK,QACL0B,MAAO,SAAeyJ,EAAMoG,GAC1B,OAAOlP,KAAKkM,UAAUO,QAAQ,IAAIwC,EAAanG,EAAMoG,MAEtD,CACDvR,IAAK,UACL0B,MAAO,SAAiB6P,GACtB,OAAOlP,KAAKkM,UAAUO,QAAQ,IAAI0C,EAAeD,MAElD,CACDvR,IAAK,UACL0B,MAAO,SAAiBwP,EAAOK,GAC7B,OAAOlP,KAAKuiB,MAAM1T,EAAO7O,KAAK8mB,QAAQ5X,MAEvC,CACDvR,IAAK,QACL0B,MAAO,SAAkBA,GACvB,OAAO8O,EAAM9O,OAGVqnB,EA3CS,GA8CdK,EAAqC,mBAAlBxpB,MAAMsE,QAAyBtE,MAAMsE,QAAU,SAAUyD,GAC9E,OAAOA,aAAa/H,OAGlBypB,EAAuC,mBAAhBhoB,OAAOiB,KAAsB,SAAUuD,GAChE,OAAOxE,OAAOiB,KAAKuD,IACjB,SAAUA,GACZ,IAAIyjB,EAAQ,GACZ,IAAK,IAAI9c,KAAY3G,EACfxE,OAAOD,UAAUqB,eAAeiC,KAAKmB,EAAK2G,IAC5C8c,EAAMhpB,KAAKkM,GAGf,OAAO8c,GAULC,EAAuB,SAA8BvpB,GACvD,MAAY,OAARA,GACM,EAEiB,MAArBA,EAAIgX,OAAO,EAAG,GACTX,SAASrW,EAAIyK,MAAM,GAAI,IAEvB4L,SAASrW,EAAK,IAAM,IAK7BwpB,EAAmB,SAA0BC,EAAMC,GACrD,OAAOH,EAAqBE,GAAQF,EAAqBG,IAGvDC,GAAgB,WAClB,SAASA,IACP7d,EAAezJ,KAAMsnB,GAuMvB,OApMAzd,EAAYyd,EAAe,CAAC,CAC1B3pB,IAAK,SACL0B,MAAO,SAAgB6P,EAAOpG,GAC5B,IAAIsD,EAAU,GAGd,OAFApM,KAAKunB,eAAenb,GACpBpM,KAAKwnB,QAAQpb,EAAS8C,EAAOpG,GACtB9I,KAAKynB,SAASrb,KAEtB,CACDzO,IAAK,iBACL0B,MAAO,SAAwB+M,GAC7BA,EAAQlI,OAAS,GACjBkI,EAAQsb,IAAM,WACZ,IAAIC,GAEHA,EAAU3nB,KAAKkE,QAAQjG,KAAKwD,MAAMkmB,EAASrpB,cAG/C,CACDX,IAAK,yBACL0B,MAAO,SAAgC+M,EAASwb,GAC9C,MAAM,IAAI/a,MAAM,6BAA+B+a,KAEhD,CACDjqB,IAAK,+BACL0B,MAAO,SAAsC+M,EAASX,GACpD,OAAOA,EAAIrI,aAEZ,CACDzF,IAAK,WACL0B,MAAO,SAAkBwoB,GACvB,IAAI3jB,EAAS2jB,EAAK3jB,OAElB,GAAI6iB,EAAU7iB,GACZ,OAAOA,EAAOyN,KAAK,MAGtB,CACDhU,IAAK,UACL0B,MAAO,SAAiB+M,EAAS8C,EAAOpG,EAAMnL,EAAKmqB,EAASC,EAAWC,GACrE,IACIC,EADoB/Y,GAAS6Y,EACGA,EAAU1oB,MAAQyJ,EAEtD,QAAqB,IAAVoG,QAAwC,IAARvR,EAA3C,CAIA,IAAIwD,EAAOnB,KAAKkoB,aAAahZ,EAAO6Y,GAChCI,EAAoB,SAAThnB,EAA+B,MAAb+N,EAAMc,GAAa,QAAU,SAAW,QAEtD,IAARrS,EACTqC,KAAKooB,UAAUhc,EAASzO,EAAKmqB,EAAS3mB,EAAMgnB,EAAUH,GAEtDhoB,KAAKqoB,UAAUjc,EAASjL,EAAMgnB,GAIhC,KACmBnoB,KAAK,UAAYmB,IAASnB,KAAKsoB,uBAAuBlc,EAASjL,IACjEkB,KAAKrC,KAAMoM,EAAS8C,EAAO+Y,EAAWtqB,EAAKmqB,EAASC,GACnE,MAAOtc,GACPzL,KAAKuoB,6BAA6Bnc,EAASX,EAAKyD,EAAO+Y,EAAWtqB,EAAKmqB,EAASC,GACzD,oBAAZ1a,SAA2BA,QAAQO,OAC5CP,QAAQO,MAAMnC,EAAI+c,YAIH,IAAR7qB,EACTqC,KAAKyoB,QAAQrc,EAASzO,EAAKmqB,EAAS3mB,EAAMgnB,EAAUH,GAEpDhoB,KAAK0oB,QAAQtc,EAASjL,EAAMgnB,MAG/B,CACDxqB,IAAK,sBACL0B,MAAO,SAA6B+M,EAAS8C,EAAOpG,GAClD,IAAIgC,EAAO9K,KACXA,KAAK2oB,gBAAgBzZ,EAAOpG,GAAM,SAAUnL,EAAKmqB,EAASC,EAAWC,GACnEld,EAAK0c,QAAQpb,EAAS8C,EAAMvR,GAAMmL,EAAOA,EAAKgf,QAAW9pB,EAAWL,EAAKmqB,EAASC,EAAWC,QAGhG,CACDrqB,IAAK,kBACL0B,MAAO,SAAyB6P,EAAOpG,EAAMnI,GAC3C,IAhHuC+E,EAgHnCzF,EAAO+mB,EAAc9X,GACrB0Z,EAAyB,MAAb1Z,EAAMc,GAClB6Y,EAAmB,GACnBjqB,OAAO,EACX,QAAoB,IAATkK,EACT,IAAKlK,KAAQkK,EACP9J,OAAOD,UAAUqB,eAAeiC,KAAKyG,EAAMlK,UAClB,IAAhBsQ,EAAMtQ,IAA2BgqB,QAA0C,IAAtB1Z,EAAM,IAAMtQ,IAC1EqB,EAAKhC,KAAKW,IAMlB,IAAKA,KAAQsQ,EACX,GAAIlQ,OAAOD,UAAUqB,eAAeiC,KAAK6M,EAAOtQ,GAAO,CACrD,IAAIS,EAAQ6P,EAAMtQ,GACdmoB,EAAU1nB,IAAuB,IAAbA,EAAM,KAC5BwpB,EAAiBxpB,EAAM,GAAG+D,YAAc,CACtCzF,IAAKiB,EACLS,MAAOyJ,GAAQA,EAAKkL,SAASpV,EAAK+V,OAAO,OAEN,IAAjC3U,KAAK8oB,8BACa,IAAThgB,QAAmD,IAApBoG,EAAM7P,EAAM,KACpDY,EAAKhC,KAAKoB,EAAM,GAAG+D,aAMzBwlB,EACF3oB,EAAKgU,KAAKkT,GAEVlnB,EAAKgU,OAEP,IAAK,IAAIrW,EAAQ,EAAGW,EAAS0B,EAAK1B,OAAQX,EAAQW,EAAQX,IAAS,CACjE,IAAID,EAAMsC,EAAKrC,GACf,IAAIgrB,GAAqB,OAARjrB,EAAjB,CAGA,IAAImqB,EAAUc,EAA2B,iBAARjrB,EAAmBA,EAAMqW,SAvJvC,OADkBtO,EAwJ6C/H,GAvJhFgX,OAAO,EAAG,GACTjP,EAAI0C,MAAM,GAEZ1C,EAoJuF,IAAM/H,EAC1FqqB,EAASpqB,IAAUW,EAAS,EAChCoC,EAAGhD,EAAKmqB,EAASe,EAAiBf,GAAUE,OAG/C,CACDrqB,IAAK,eACL0B,MAAO,SAAsB6P,EAAO6Y,GAClC,QAAqB,IAAV7Y,EACT,YAAyB,IAAd6Y,EACF,kBAEF,YAET,GAAIhB,EAAU7X,GAAQ,CACpB,GAAqB,IAAjBA,EAAM3Q,OACR,MAAO,QAET,GAAqB,IAAjB2Q,EAAM3Q,OACR,MAAO,WAET,GAAqB,IAAjB2Q,EAAM3Q,QAA6B,IAAb2Q,EAAM,GAC9B,MAAO,UAET,GAAqB,IAAjBA,EAAM3Q,QAA6B,IAAb2Q,EAAM,GAC9B,MAAO,WAET,GAAqB,IAAjBA,EAAM3Q,QAA6B,IAAb2Q,EAAM,GAC9B,MAAO,aAEJ,GAAsE,iBAAhD,IAAVA,EAAwB,YAAc5F,EAAQ4F,IAC/D,MAAO,OAET,MAAO,YAER,CACDvR,IAAK,gBACL0B,MAAO,SAAuBA,GAG5B,IAFA,IAAI0pB,EAAS,GACT1C,EAAQhnB,EAAMuhB,MAAM,SACfte,EAAI,EAAGmB,EAAI4iB,EAAM9nB,OAAQ+D,EAAImB,EAAGnB,IAAK,CAC5C,IAAIyY,EAAOsL,EAAM/jB,GACb0mB,EAAa,CACfC,OAAQ,IAENC,EAAW,4BAA4Bza,KAAKsM,GAAM3S,MAAM,GAC5D4gB,EAAWE,SAAW,CACpBnO,KAAMmO,EAAS,GACfC,IAAKD,EAAS,IAGhB,IADA,IAAID,EAASlO,EAAK6F,MAAM,MAAMxY,MAAM,GAC3BghB,EAAa,EAAGC,EAAeJ,EAAO1qB,OAAQ6qB,EAAaC,EAAcD,IAAc,CAC9F,IAAIE,EAAQL,EAAOG,GACnB,GAAKE,EAAM/qB,OAAX,CAGA,IAAIgrB,EAAc,CAChBpoB,KAAM,WAEmB,MAAvBmoB,EAAM3U,OAAO,EAAG,GAClB4U,EAAYpoB,KAAO,QACa,MAAvBmoB,EAAM3U,OAAO,EAAG,KACzB4U,EAAYpoB,KAAO,WAErBooB,EAAY7O,KAAO4O,EAAMlhB,MAAM,GAC/B4gB,EAAWC,OAAOhrB,KAAKsrB,IAEzBR,EAAO9qB,KAAK+qB,GAEd,OAAOD,MAGJzB,EAzMW,GA8MhBkC,GAAOxqB,OAAOyqB,OAAO,CACxB/hB,QAAS4f,KAGNoC,GAAgB,SAAUC,GAG5B,SAASD,IAEP,OADAjgB,EAAezJ,KAAM0pB,GACd7e,EAA0B7K,MAAO0pB,EAAcpsB,WAAa0B,OAAO6B,eAAe6oB,IAAgBjoB,MAAMzB,KAAM1B,YAkIvH,OAtIAmM,EAASif,EAAeC,GAOxB9f,EAAY6f,EAAe,CAAC,CAC1B/rB,IAAK,+BACL0B,MAAO,SAAsC+M,EAASX,GACpDW,EAAQsb,IAAI,oCAAsCjc,EAAM,YAEzD,CACD9N,IAAK,cACL0B,MAAO,SAAqB+M,EAAS/M,GACnC+M,EAAQsb,IAAI,QAAUkC,GAAWC,KAAKC,UAAUzqB,EAAO,KAAM,IAAM,YAEpE,CACD1B,IAAK,uBACL0B,MAAO,SAA8B+M,EAAS/M,GAC5C,IAAIgnB,EAAQrmB,KAAK+pB,cAAc1qB,GAC/B+M,EAAQsb,IAAI,uCACZ,IAAK,IAAIplB,EAAI,EAAGmB,EAAI4iB,EAAM9nB,OAAQ+D,EAAImB,EAAGnB,IAAK,CAC5C,IAAIyY,EAAOsL,EAAM/jB,GACjB8J,EAAQsb,IAAI,qGAA6G3M,EAAKmO,SAASnO,KAAO,oDAAsDA,EAAKmO,SAASC,IAAM,0DAExN,IADA,IAAIF,EAASlO,EAAKkO,OACTG,EAAa,EAAGC,EAAeJ,EAAO1qB,OAAQ6qB,EAAaC,EAAcD,IAAc,CAE9F,IAAIE,EAAQL,EAAOG,GACnBhd,EAAQsb,IAAI,uCAAyC4B,EAAMnoB,KAAO,KAAOyoB,GAAW9I,UAAUwI,EAAM5O,OAAS,WAE/GtO,EAAQsb,IAAI,eAEdtb,EAAQsb,IAAI,WAEb,CACD/pB,IAAK,YACL0B,MAAO,SAAmB+M,EAASjL,EAAMgnB,GACvC,IAAI6B,EAAY,iBAAmB7oB,GAAQgnB,EAAW,kCAAoCA,EAAW,IACrG/b,EAAQsb,IAAI,mCAAqCsC,EAAY,QAE9D,CACDrsB,IAAK,UACL0B,MAAO,SAAiB+M,GACtBA,EAAQsb,IAAI,UAAYtb,EAAQ6d,UAAY,6CAAgDC,GAAa9mB,WAAa,kBAAoB,OAE3I,CACDzF,IAAK,YACL0B,MAAO,SAAmB+M,EAASzO,EAAKmqB,EAAS3mB,EAAMgnB,GACrD,IAAI6B,EAAY,iBAAmB7oB,GAAQgnB,EAAW,kCAAoCA,EAAW,IACrG/b,EAAQsb,IAAI,cAAgBsC,EAAY,eAAiBlC,EAA7C,8CAA6GA,EAAU,YAEpI,CACDnqB,IAAK,UACL0B,MAAO,SAAiB+M,GACtBA,EAAQsb,IAAI,WAMb,CACD/pB,IAAK,mBACL0B,MAAO,SAA0B+M,EAAS8C,EAAOpG,QAC3B,IAATA,IAGXsD,EAAQsb,IAAI,qCACZ1nB,KAAKmqB,YAAY/d,EAAStD,GAC1BsD,EAAQsb,IAAI,aAEb,CACD/pB,IAAK,yBACL0B,MAAO,SAAgC+M,EAAS8C,EAAOpG,QACjC,IAATA,IAGXsD,EAAQsb,IAAI,qCACZ1nB,KAAKmqB,YAAY/d,EAAStD,GAC1BsD,EAAQsb,IAAI,aAEb,CACD/pB,IAAK,cACL0B,MAAO,SAAqB+M,EAAS8C,EAAOpG,GAE1C,IAAIqf,EAAwB,MAAbjZ,EAAMc,GAAa,QAAU,SAC5C5D,EAAQsb,IAAI,yDAA2DS,EAAW,MAClFnoB,KAAKoqB,oBAAoBhe,EAAS8C,EAAOpG,GACzCsD,EAAQsb,IAAI,WAEb,CACD/pB,IAAK,eACL0B,MAAO,SAAsB+M,EAAS8C,GACpC9C,EAAQsb,IAAI,qCACZ1nB,KAAKmqB,YAAY/d,EAAS8C,EAAM,IAChC9C,EAAQsb,IAAI,YAEb,CACD/pB,IAAK,kBACL0B,MAAO,SAAyB+M,EAAS8C,GACvC9C,EAAQsb,IAAI,8DACZ1nB,KAAKmqB,YAAY/d,EAAS8C,EAAM,IAChC9C,EAAQsb,IAAI,qEACZ1nB,KAAKmqB,YAAY/d,EAAS8C,EAAM,IAChC9C,EAAQsb,IAAI,YAEb,CACD/pB,IAAK,iBACL0B,MAAO,SAAwB+M,EAAS8C,GACtC9C,EAAQsb,IAAI,qCACZ1nB,KAAKmqB,YAAY/d,EAAS8C,EAAM,IAChC9C,EAAQsb,IAAI,YAEb,CACD/pB,IAAK,eACL0B,MAAO,SAAsB+M,EAAS8C,GACpC9C,EAAQsb,IAAI,qCACZ1nB,KAAKmqB,YAAY/d,EAAS8C,EAAM,IAChC9C,EAAQsb,IAAI,sDAAwDxY,EAAM,GAAK,UAG/E9C,EAAQsb,IAER,yqBACAtb,EAAQ6d,WAAY,IAErB,CACDtsB,IAAK,kBACL0B,MAAO,SAAyB+M,EAAS8C,GACvC9C,EAAQsb,IAAI,qCACZ1nB,KAAKqqB,qBAAqBje,EAAS8C,EAAM,IACzC9C,EAAQsb,IAAI,cAGTgC,EAvIW,CAwIlBpC,IAEF,SAASsC,GAAWlP,GAGlB,IAFA,IAAIiF,EAAOjF,EACP4P,EAAe,CAAC,CAAC,KAAM,SAAU,CAAC,KAAM,QAAS,CAAC,KAAM,QAAS,CAAC,KAAM,UAAW,CAAC,KAAM,WACrFhoB,EAAI,EAAGA,EAAIgoB,EAAa/rB,OAAQ+D,IACvCqd,EAAOA,EAAKha,QAAQ2kB,EAAahoB,GAAG,GAAIgoB,EAAahoB,GAAG,IAE1D,OAAOqd,EAGT,IAAIuK,GAAe,SAAgDK,GACjE,IAAIC,EAAOD,GAAWtlB,UAMJ,SAAqBwlB,EAAIC,EAAO/pB,GAEhD,IADA,IAAIgqB,EAAQF,EAAGG,iBAAiBF,GACvBpoB,EAAI,EAAGmB,EAAIknB,EAAMpsB,OAAQ+D,EAAImB,EAAGnB,IACvC3B,EAAGgqB,EAAMroB,IAUbuoB,CAAYL,EAAM,wBAAwB,SAAUM,GAClD,IAAIC,EAAaD,EAAMC,WACnB7c,EAAW4c,EAAM5c,SACjB8c,EAAQF,EAAME,MAEdC,EAAcF,EACdG,EAAMhd,EAAS,GACftL,EAAOsoB,EAAIhd,SAAS,GACxBgd,EAAIF,MAAMG,QAAU,OACpB,IA3B2CtD,EACvCuD,EACAC,EAyBAC,GA3BuCzD,EA2BVoD,EAAYM,cAAc,oCA1BvDH,EAAcvD,EAAKuD,YACnBC,EAAYxD,EAAKwD,UACdD,GAAeC,GAyBlBG,EAAYP,EAAYF,WACxBU,OAAkB,EAMtB,GAxBiB,SAAsBC,EAAO/qB,GAG9C,IAFA,IAAIuN,EAAWwd,EAAMxd,SAEZ5L,EAAI,EAAGmB,EAAIyK,EAAS3P,OAAQ+D,EAAImB,EAAGnB,IAC1C3B,EAAGuN,EAAS5L,GAAIA,GAelBqpB,CAAaH,GAAW,SAAUzd,GAC5BA,EAAM6d,aAAa,cAAgBN,IACrCG,EAAkB1d,MAGjB0d,EAGL,IACE,IAAII,EAAWJ,EAAgBK,UAAYb,EAAYa,UACvDZ,EAAIa,aAAa,SAAUzjB,KAAKmZ,IAAIoK,GAAY,GAChDb,EAAMgB,KAAO,GAAKH,EAAW,EAAI,EAAIA,GAAY,KACjD,IAAII,EAAQJ,EAAW,EAAI,cAAgBvjB,KAAK4jB,MAAML,EAAW,GAAK,QAAUA,EAAW,GAAK,QAAUA,EAAW,SAAWvjB,KAAK4jB,OAAOL,EAAW,GAAK,QAC5JjpB,EAAKmpB,aAAa,IAAKE,GACvBf,EAAIF,MAAMG,QAAU,GACpB,MAAO1f,SAOT0gB,GAAgB,SAAuBC,EAAM5B,EAAM6B,GACrD,IAAI5B,EAAKD,GAAQvlB,SAASqnB,KACtB3J,EAAS,2BACT4J,EAAU,CACZC,QAAS7J,EAAS,UAClB8J,OAAQ9J,EAAS,SACjB+J,QAAS/J,EAAS,UAClBgK,OAAQhK,EAAS,UAEfiK,EAAOnC,EAAGoC,UACd,GAAKD,EAAL,CAGA,IAAKP,EAQH,OAPAO,EAAKE,OAAOP,EAAQC,SACpBI,EAAKE,OAAOP,EAAQE,QACpBG,EAAKE,OAAOP,EAAQG,SACpBE,EAAKE,OAAOP,EAAQI,cACP,IAATP,GACFQ,EAAKG,IAAIR,EAAQI,UAIR,IAATP,GACFQ,EAAKE,OAAOP,EAAQC,SACpBI,EAAKG,IAAIR,EAAQG,SACjBM,YAAW,WACTJ,EAAKG,IAAIR,EAAQE,UAChB,MAEHG,EAAKE,OAAOP,EAAQE,QACpBG,EAAKG,IAAIR,EAAQC,SACjBI,EAAKE,OAAOP,EAAQI,SAEtB,IAAIM,EAAaC,aAAY,WAC3BhD,GAAaO,KACZ,KACHuC,YAAW,WACTJ,EAAKE,OAAOP,EAAQC,SACpBI,EAAKE,OAAOP,EAAQE,SACP,IAATL,GACFQ,EAAKG,IAAIR,EAAQI,QACjBC,EAAKE,OAAOP,EAAQG,WAEpBE,EAAKG,IAAIR,EAAQG,SACjBE,EAAKE,OAAOP,EAAQI,SAEtBK,YAAW,WACTJ,EAAKE,OAAOP,EAAQG,SACpBS,cAAcF,KACbZ,EAAQ,OACVA,KAODe,QAAkB,EAWlBzN,GAAO3gB,OAAOyqB,OAAO,CACxB0C,cAAeA,GACfkB,cAjBmB,SAAuB7C,EAAM6B,GAC/C,OAAOF,IAAc,EAAO3B,EAAM6B,IAiBnC3kB,QAASgiB,GACT4D,OAbD,SAAgBpe,EAAOpG,GAIrB,OAHKskB,KACHA,GAAkB,IAAI1D,IAEjB0D,GAAgBE,OAAOpe,EAAOpG,MAYnCykB,GAAqB,SAAU5D,GAGjC,SAAS4D,IACP9jB,EAAezJ,KAAMutB,GAErB,IAAIxtB,EAAQ8K,EAA0B7K,MAAOutB,EAAmBjwB,WAAa0B,OAAO6B,eAAe0sB,IAAqBlrB,KAAKrC,OAG7H,OADAD,EAAM+oB,yBAA0B,EACzB/oB,EAqGT,OA7GA0K,EAAS8iB,EAAoB5D,GAW7B9f,EAAY0jB,EAAoB,CAAC,CAC/B5vB,IAAK,iBACL0B,MAAO,SAAwB+M,GAC7B3M,EAAI8tB,EAAmBxuB,UAAUzB,WAAa0B,OAAO6B,eAAe0sB,EAAmBxuB,WAAY,iBAAkBiB,MAAMqC,KAAKrC,KAAMoM,GACtIA,EAAQohB,OAAS,SAAUC,GACzBztB,KAAK0tB,aAAe1tB,KAAK0tB,aAAe,SAAwB,IAAXD,EAAyB,EAAIA,GAClFztB,KAAK2tB,UAAY,IAAIpwB,MAAMyC,KAAK0tB,YAAc,GAAG/b,KAAK,iBAExDvF,EAAQwhB,IAAM,SAAUC,EAAMC,GAC5B1hB,EAAQsb,IAAI,mHACZtb,EAAQsb,IAAItb,EAAQuhB,WACpBvhB,EAAQsb,IAAI,6CACZtb,EAAQsb,IAAImG,GACZzhB,EAAQsb,IAAI,yDACZtb,EAAQsb,IAAIoG,GACZ1hB,EAAQsb,IAAI,uBAGf,CACD/pB,IAAK,+BACL0B,MAAO,SAAsC+M,EAASX,GACpDW,EAAQwhB,IAAI,GAAI,oCAAsCniB,EAAM,YAE7D,CACD9N,IAAK,uBACL0B,MAAO,SAA8B+M,EAAS/M,GAC5C,IAAIgnB,EAAQrmB,KAAK+pB,cAAc1qB,GAC/B+M,EAAQsb,IAAI,uCACZ,IAAK,IAAIplB,EAAI,EAAGmB,EAAI4iB,EAAM9nB,OAAQ+D,EAAImB,EAAGnB,IAAK,CAC5C,IAAIyY,EAAOsL,EAAM/jB,GACjB8J,EAAQsb,IAAI,qGAA6G3M,EAAKmO,SAASnO,KAAO,oDAAsDA,EAAKmO,SAASC,IAAM,0DAExN,IADA,IAAIF,EAASlO,EAAKkO,OACTG,EAAa,EAAGC,EAAeJ,EAAO1qB,OAAQ6qB,EAAaC,EAAcD,IAAc,CAC9F,IAAIE,EAAQL,EAAOG,GACnBhd,EAAQsb,IAAI,uCAAyC4B,EAAMnoB,KAAO,KAAOmoB,EAAM5O,KAAO,WAExFtO,EAAQsb,IAAI,eAEdtb,EAAQsb,IAAI,WAEb,CACD/pB,IAAK,YACL0B,MAAO,SAAmB+M,EAASjL,EAAMgnB,GACvC/b,EAAQsb,IAAI,iDACC,SAATvmB,IACFiL,EAAQwhB,IAAI,KACZxhB,EAAQohB,UAEO,UAAbrF,GACF/b,EAAQwhB,IAAI,aAAc,uDAG7B,CACDjwB,IAAK,UACL0B,MAAO,SAAiB+M,EAASjL,GAClB,SAATA,IACFiL,EAAQohB,QAAQ,GAChBphB,EAAQwhB,IAAI,MAEdxhB,EAAQsb,IAAI,cAEb,CACD/pB,IAAK,YACL0B,MAAO,SAAmB+M,EAASzO,EAAKmqB,EAAS3mB,EAAMgnB,GACrD/b,EAAQwhB,IAAI,SAAWjwB,EAAM,aAChB,SAATwD,GACFiL,EAAQohB,SAEO,UAAbrF,GACF/b,EAAQwhB,IAAI,aAAc,uDAG7B,CACDjwB,IAAK,UACL0B,MAAO,SAAiB+M,EAASzO,EAAKmqB,EAAS3mB,EAAMgnB,EAAUH,GAChD,SAAT7mB,GACFiL,EAAQohB,QAAQ,GAElBphB,EAAQwhB,IAAI,KAAO5F,EAAS,GAAK,QAOlC,CACDrqB,IAAK,mBACL0B,MAAO,cACN,CACD1B,IAAK,yBACL0B,MAAO,cACN,CACD1B,IAAK,cACL0B,MAAO,SAAqB+M,EAAS8C,EAAOpG,GAE1C9I,KAAKoqB,oBAAoBhe,EAAS8C,EAAOpG,OAGtCykB,EA9GgB,CA+GvBjG,IAIEyG,GAAmB,SAA0BnvB,GAC/C,MAAO,2CAA6CA,EAAO,gBAGzDovB,GAAmB,CACrBC,MAAO,SAAe/e,EAAOpG,EAAMnL,EAAKmqB,GACtC,IAAIoG,EAAe,2BACnB,YAAuB,IAAZpG,EACF,YAAcoG,EAEA,iBAAZpG,EACF,mBAAqBA,EAAUoG,EAEjC,gBAAkBH,GAAiBjG,GAAWoG,GAEvDC,SAAU,SAAkBjf,EAAOpG,EAAMnL,EAAKmqB,GAC5C,IAAIoG,EAAe,0CACnB,YAAuB,IAAZpG,EACF,eAAiBoG,EAEH,iBAAZpG,EACF,mBAAqBA,EAAUoG,EAEjC,mBAAqBH,GAAiBjG,GAAWoG,GAE1DE,QAAS,SAAiBlf,EAAOpG,EAAMnL,EAAKmqB,GAC1C,IAAIoG,EAAe,sCACnB,YAAuB,IAAZpG,EACF,eAAiBoG,EAEH,iBAAZpG,EACF,gBAAkBA,EAAUoG,EAE9B,mBAAqBH,GAAiBjG,GAAWoG,GAE1DG,MAAO,SAAenf,EAAOpG,EAAMnL,EAAKmqB,GACtC,MAAO,wEAAgFA,EAAhF,sEAAyK5Y,EAAM,GAAK,WAE7Lof,SAAU,SAAkBpf,EAAOpG,EAAMnL,EAAKmqB,GAE5C,MAAO,kBAD2B,IAAZA,EAA0B,GAAwB,iBAAZA,EAAuB,aAAeA,EAAU,gBAAkBiG,GAAiBjG,IACxI,oHAIPyG,GAAkB,SAAyBniB,EAAS8C,GACtD,IAAI0Y,EAAY5nB,KAAKkoB,aAAahZ,GAC9Bsf,EAAYR,GAAiBpG,GAC7BkG,EAAWU,GAAaA,EAAU/sB,MAAM+sB,EAAWjxB,MAAMwB,UAAUqJ,MAAM/F,KAAK/D,UAAW,IACzFuvB,EAAOhE,KAAKC,UAAU5a,EAAO,KAAM,GACrB,aAAd0Y,IAEFiG,EAAOA,EAAKjN,MAAM,OAAOjP,KAAK,gBAEhCvF,EAAQohB,SACRphB,EAAQwhB,IAAIC,EAAMC,GAClB1hB,EAAQohB,QAAQ,IAIlBD,GAAmBxuB,UAAU0vB,aAAeF,GAC5ChB,GAAmBxuB,UAAU2vB,gBAAkBH,GAC/ChB,GAAmBxuB,UAAU4vB,eAAiBJ,GAC9ChB,GAAmBxuB,UAAU6vB,aAAeL,GAC5ChB,GAAmBxuB,UAAU8vB,gBAAkBN,GAC/C,IAAIO,QAAoB,EAWpBC,GAAY/vB,OAAOyqB,OAAO,CAC7B/hB,QAAS6lB,GACTD,OAXD,SAAkBpe,EAAOpG,GAIvB,OAHKgmB,KACHA,GAAoB,IAAIvB,IAEnBuB,GAAkBxB,OAAOpe,EAAOpG,MAUrCkmB,GACG,MADHA,GAEM,SAFNA,GAGO,UAHPA,GAII,OAGJC,GAAgB,SAAUtF,GAG5B,SAASsF,IACPxlB,EAAezJ,KAAMivB,GAErB,IAAIlvB,EAAQ8K,EAA0B7K,MAAOivB,EAAc3xB,WAAa0B,OAAO6B,eAAeouB,IAAgB5sB,KAAKrC,OAGnH,OADAD,EAAM+oB,yBAA0B,EACzB/oB,EAqHT,OA7HA0K,EAASwkB,EAAetF,GAWxB9f,EAAYolB,EAAe,CAAC,CAC1BtxB,IAAK,iBACL0B,MAAO,SAAwB+M,GAC7B3M,EAAIwvB,EAAclwB,UAAUzB,WAAa0B,OAAO6B,eAAeouB,EAAclwB,WAAY,iBAAkBiB,MAAMqC,KAAKrC,KAAMoM,GAC5HA,EAAQjH,OAAS,GACjBiH,EAAQxJ,KAAO,GACfwJ,EAAQ8iB,cAAgB,SAAU1rB,GAChC,IAAIwc,EAAKxc,EAAIwc,GACT3gB,EAAQmE,EAAInE,MAEZgE,EAAM,CACR2c,GAAIA,EACJpd,KAAM5C,KAAKmvB,oBAEQ,IAAV9vB,IACTgE,EAAIhE,MAAQA,GAEdW,KAAKmF,OAAOlH,KAAKoF,IAGnB+I,EAAQgjB,WAAa,SAAUtyB,GAC7B,IAAIC,EAAOiD,KAAKmvB,cAChBnvB,KAAKmF,OAAOlH,KAAK,CACf+hB,GAAIgP,GACJjyB,KAAMA,EACN6F,KAAM5C,KAAKqvB,OAAOvyB,MAItBsP,EAAQ+iB,YAAc,WACpB,MAAO,IAAMnvB,KAAK4C,KAAK+O,KAAK,MAG9BvF,EAAQijB,OAAS,SAAUA,GACzB,IAAIvyB,EAAKkD,KAAK4C,KAAKwF,QAEnB,OADAtL,EAAGA,EAAGyB,OAAS,GAAK8wB,EACb,IAAMvyB,EAAG6U,KAAK,QAGxB,CACDhU,IAAK,+BACL0B,MAAO,SAAsC+M,EAASX,GACpDW,EAAQsb,IAAI,WAAajc,KAE1B,CACD9N,IAAK,YACL0B,MAAO,cACN,CACD1B,IAAK,UACL0B,MAAO,cACN,CACD1B,IAAK,YACL0B,MAAO,SAAmBwoB,EAAMlqB,EAAKmqB,GACxBD,EAAKjlB,KAEX3E,KAAK6pB,KAEX,CACDnqB,IAAK,UACL0B,MAAO,SAAiBqsB,GACXA,EAAM9oB,KAEZ+V,QAMN,CACDhb,IAAK,mBACL0B,MAAO,cACN,CACD1B,IAAK,yBACL0B,MAAO,cACN,CACD1B,IAAK,cACL0B,MAAO,SAAqB+M,EAAS8C,EAAOpG,GAC1C9I,KAAKoqB,oBAAoBhe,EAAS8C,EAAOpG,KAE1C,CACDnL,IAAK,eACL0B,MAAO,SAAsB+M,EAAS8C,GACpC9C,EAAQ8iB,cAAc,CAAElP,GAAIgP,GAAgB3vB,MAAO6P,EAAM,OAE1D,CACDvR,IAAK,kBACL0B,MAAO,SAAyB+M,EAAS8C,GACvC9C,EAAQ8iB,cAAc,CAAElP,GAAIgP,GAAoB3vB,MAAO6P,EAAM,OAE9D,CACDvR,IAAK,iBACL0B,MAAO,SAAwB+M,GAC7BA,EAAQ8iB,cAAc,CAAElP,GAAIgP,OAE7B,CACDrxB,IAAK,eACL0B,MAAO,SAAsB+M,EAAS8C,GACpC,IAAIpS,EAAKoS,EAAM,GACf9C,EAAQgjB,WAAWtyB,KAEpB,CACDa,IAAK,kBACL0B,MAAO,WACL,MAAM,IAAIwN,MAAM,qBAEjB,CACDlP,IAAK,SACL0B,MAAO,SAAgB6P,EAAOpG,GAC5B,IAAIsD,EAAU,GAGd,OAFApM,KAAKunB,eAAenb,GACpBpM,KAAKwnB,QAAQpb,EAAS8C,EAAOpG,GACtBsD,EAAQjH,WAGZ8pB,EA9HW,CA+HlB3H,IAEEgI,GAAO,SAAcrkB,GACvB,OAAOA,EAAIA,EAAI1M,OAAS,IAkBtBgxB,GAAuB,SAA8BC,GACvD,OAhBgCC,EAgBP,SAAUnqB,EAAGC,GACpC,IAZiDmqB,EAAQC,EACvDC,EACAC,EAUEC,EAASxqB,EAAE1C,KAAKge,MAAM,KACtBmP,EAASxqB,EAAE3C,KAAKge,MAAM,KAC1B,OAAIkP,EAAOvxB,SAAWwxB,EAAOxxB,OACpBuxB,EAAOvxB,OAASwxB,EAAOxxB,QAfiBmxB,EAiBrBJ,GAAKQ,GAjBwBH,EAiBfL,GAAKS,GAhB7CH,EAAQ5b,SAAS0b,EAAQ,IACzBG,EAAQ7b,SAAS2b,EAAQ,IACvB3O,MAAM4O,IAAU5O,MAAM6O,GAGnB,EAFAA,EAAQD,KATU3kB,EAgBbukB,GAfVvb,KAAKwb,GACFxkB,EAFI,IAAgBA,EAAKwkB,GA2B9BO,GAAe,SAAsB/kB,EAAKglB,GAC5C,IAAIC,EAAU3yB,MAAM0yB,EAAI1xB,OAAS,GAAG4xB,OAAO3iB,KAAI,WAC7C,MAAO,MAET,OAAOvC,EAAIuC,KAAI,SAAUuE,GACvB,IAAIqe,EAAWH,EAAIziB,KAAI,SAAU7M,GAC/B,OAAOA,EAAGoR,MACT7S,SAAQ,GAIX,OAHIkxB,EAAW,IACbA,EAAWH,EAAI1xB,QAEV,CAAEwT,KAAMA,EAAMqe,SAAUA,MAC9BnnB,QAAO,SAAUonB,EAAKte,GAEvB,OADAse,EAAIte,EAAKqe,UAAUnyB,KAAK8T,EAAKA,MACtBse,IACNH,IAEDI,GAAW,SAAkBxF,GAE/B,MAAc,SADLA,EAAM9K,IAGbuQ,GAAa,SAAoBC,GAEnC,MAAc,WADLA,EAAMxQ,IAebyQ,QAAoB,EAEpBC,GAAW,SAAgBxhB,EAAOpG,GAIpC,OAHK2nB,KACHA,GAAoB,IAAIxB,IAfX,SAAoBvJ,GACnC,IAAIiL,EAAgBX,GAAatK,EAAM,CAAC4K,GAAUC,KAC9CK,EAAiB5lB,EAAc2lB,EAAe,GAC9CE,EAAUD,EAAe,GACzBE,EAAaF,EAAe,GAC5BG,EAAUH,EAAe,GAEzBI,EAAmBzB,GAAqBuB,GAC5C,MAAO,GAAG1pB,OAAOuE,EAAkBqlB,GAAmBrlB,EAAkBklB,GAAUllB,EAAkBolB,IAS7FE,CAAWR,GAAkBnD,OAAOpe,EAAOpG,KAShDooB,GAAYlyB,OAAOyqB,OAAO,CAC7B/hB,QAASunB,GACTe,aAAcA,GACd1C,OAAQoD,GACR1jB,IAVS,SAAakC,EAAOpG,GAC5BuE,QAAQL,IAAI0jB,GAASxhB,EAAOpG,OAY9B,SAASqoB,GAAWvyB,GAClB,OAAOyK,GAASA,EAAMzK,IAAS,WAC7B,IAAK,IAAIwyB,EAAO9yB,UAAUC,OAAQwI,EAAOxJ,MAAM6zB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3EtqB,EAAKsqB,GAAQ/yB,UAAU+yB,GAGzB,OAAOtqB,GAIX,IAAIuqB,GAAS,CACXrD,MAAOkD,GAAW,SAClB/C,QAAS+C,GAAW,OACpBI,gBAAiBJ,GAAW,QAC5B9C,MAAO8C,GAAW,UAClBK,UAAWL,GAAW,QACtBvjB,MAAOujB,GAAW,eAClBM,aAAcN,GAAW,SAGvBO,GAAmB,SAAU/H,GAG/B,SAAS+H,IACPjoB,EAAezJ,KAAM0xB,GAErB,IAAI3xB,EAAQ8K,EAA0B7K,MAAO0xB,EAAiBp0B,WAAa0B,OAAO6B,eAAe6wB,IAAmBrvB,KAAKrC,OAGzH,OADAD,EAAM+oB,yBAA0B,EACzB/oB,EA2KT,OAnLA0K,EAASinB,EAAkB/H,GAW3B9f,EAAY6nB,EAAkB,CAAC,CAC7B/zB,IAAK,iBACL0B,MAAO,SAAwB+M,GAC7B3M,EAAIiyB,EAAiB3yB,UAAUzB,WAAa0B,OAAO6B,eAAe6wB,EAAiB3yB,WAAY,iBAAkBiB,MAAMqC,KAAKrC,KAAMoM,GAClIA,EAAQohB,OAAS,SAAUC,GACzBztB,KAAK0tB,aAAe1tB,KAAK0tB,aAAe,SAAwB,IAAXD,EAAyB,EAAIA,GAClFztB,KAAK2tB,UAAY,IAAIpwB,MAAMyC,KAAK0tB,YAAc,GAAG/b,KAAK,MACtD3R,KAAK2xB,WAEPvlB,EAAQulB,QAAU,WAChB3xB,KAAKkE,OAAOjG,KAAK,MAAQ+B,KAAK2tB,WAAa,MAE7CvhB,EAAQsb,IAAM,WACZ,IAAK,IAAIkK,EAAQtzB,UAAUC,OAAQwI,EAAOxJ,MAAMq0B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF9qB,EAAK8qB,GAASvzB,UAAUuzB,GAG1B,IAAK,IAAIvvB,EAAI,EAAGmB,EAAIsD,EAAKxI,OAAQ+D,EAAImB,EAAGnB,IAAK,CAC3C,IAAI+jB,EAAQtf,EAAKzE,GAAGse,MAAM,MACtBlG,EAAO2L,EAAM1U,KAAK,MAAQ3R,KAAK2tB,WAAa,KAC5C3tB,KAAK8xB,OAAS9xB,KAAK8xB,MAAM,KAC3BpX,EAAO1a,KAAK8xB,MAAM,GAAGpX,IAEvB1a,KAAKkE,OAAOjG,KAAKyc,KAGrBtO,EAAQ2lB,UAAY,SAAUD,GAC5B9xB,KAAK8xB,MAAQ9xB,KAAK8xB,OAAS,GAC3B9xB,KAAK8xB,MAAM5qB,QAAQ4qB,IAErB1lB,EAAQ4lB,SAAW,WACjBhyB,KAAK8xB,MAAQ9xB,KAAK8xB,OAAS,GAC3B9xB,KAAK8xB,MAAMjN,WAGd,CACDlnB,IAAK,+BACL0B,MAAO,SAAsC+M,EAASX,GACpDW,EAAQ2lB,UAAUT,GAAO1jB,OACzBxB,EAAQsb,IAAI,UAAYjc,GACxBW,EAAQ4lB,aAET,CACDr0B,IAAK,cACL0B,MAAO,SAAqB+M,EAAS/M,GACnC+M,EAAQsb,IAAImC,KAAKC,UAAUzqB,EAAO,KAAM,MAEzC,CACD1B,IAAK,uBACL0B,MAAO,SAA8B+M,EAAS/M,GAC5C,IAAIgnB,EAAQrmB,KAAK+pB,cAAc1qB,GAC/B+M,EAAQohB,SACR,IAAK,IAAIlrB,EAAI,EAAGmB,EAAI4iB,EAAM9nB,OAAQ+D,EAAImB,EAAGnB,IAAK,CAC5C,IAAIyY,EAAOsL,EAAM/jB,GACjB8J,EAAQ2lB,UAAUT,GAAOG,cACzBrlB,EAAQsb,IAAI3M,EAAKmO,SAASnO,KAAO,IAAMA,EAAKmO,SAASC,IAAM,KAC3D/c,EAAQ4lB,WAER,IADA,IAAI/I,EAASlO,EAAKkO,OACTG,EAAa,EAAGC,EAAeJ,EAAO1qB,OAAQ6qB,EAAaC,EAAcD,IAAc,CAC9F,IAAIE,EAAQL,EAAOG,GACnBhd,EAAQ2lB,UAAUT,GAAOhI,EAAMnoB,OAC/BiL,EAAQsb,IAAI4B,EAAM5O,MAClBtO,EAAQ4lB,WAEN1vB,EAAImB,EAAI,GACV2I,EAAQulB,UAGZvlB,EAAQohB,QAAQ,KAEjB,CACD7vB,IAAK,YACL0B,MAAO,SAAmB+M,EAASjL,EAAMgnB,GACvC/b,EAAQ2lB,UAAUT,GAAOnwB,IACZ,SAATA,IACFiL,EAAQsb,IAAiB,UAAbS,EAAuB,IAAM,KACzC/b,EAAQohB,YAGX,CACD7vB,IAAK,UACL0B,MAAO,SAAiB+M,EAASjL,EAAMgnB,GACxB,SAAThnB,IACFiL,EAAQohB,QAAQ,GAChBphB,EAAQsb,IAAiB,UAAbS,EAAuB,IAAM,MAE3C/b,EAAQ4lB,aAET,CACDr0B,IAAK,YACL0B,MAAO,SAAmB+M,EAASzO,EAAKmqB,EAAS3mB,EAAMgnB,GACrD/b,EAAQ2lB,UAAUT,GAAOnwB,IACzBiL,EAAQsb,IAAII,EAAU,MACT,SAAT3mB,IACFiL,EAAQsb,IAAiB,UAAbS,EAAuB,IAAM,KACzC/b,EAAQohB,YAGX,CACD7vB,IAAK,UACL0B,MAAO,SAAiB+M,EAASzO,EAAKmqB,EAAS3mB,EAAMgnB,EAAUH,GAChD,SAAT7mB,IACFiL,EAAQohB,QAAQ,GAChBphB,EAAQsb,IAAiB,UAAbS,EAAuB,IAAM,KAAOH,EAAS,GAAK,OAE3DA,GACH5b,EAAQulB,UAEVvlB,EAAQ4lB,aAMT,CACDr0B,IAAK,mBACL0B,MAAO,SAA0B+M,EAAS8C,EAAOpG,QAC3B,IAATA,GAGX9I,KAAKmqB,YAAY/d,EAAStD,KAE3B,CACDnL,IAAK,yBACL0B,MAAO,SAAgC+M,EAAS8C,EAAOpG,QACjC,IAATA,GAGX9I,KAAKmqB,YAAY/d,EAAStD,KAE3B,CACDnL,IAAK,cACL0B,MAAO,SAAqB+M,EAAS8C,EAAOpG,GAE1C9I,KAAKoqB,oBAAoBhe,EAAS8C,EAAOpG,KAE1C,CACDnL,IAAK,eACL0B,MAAO,SAAsB+M,EAAS8C,GACpClP,KAAKmqB,YAAY/d,EAAS8C,EAAM,MAEjC,CACDvR,IAAK,kBACL0B,MAAO,SAAyB+M,EAAS8C,GACvC9C,EAAQ2lB,UAAUT,GAAOlD,SACzBpuB,KAAKmqB,YAAY/d,EAAS8C,EAAM,IAChC9C,EAAQ4lB,WACR5lB,EAAQsb,IAAI,QACZtb,EAAQ2lB,UAAUT,GAAOrD,OACzBjuB,KAAKmqB,YAAY/d,EAAS8C,EAAM,IAChC9C,EAAQ4lB,aAET,CACDr0B,IAAK,iBACL0B,MAAO,SAAwB+M,EAAS8C,GACtClP,KAAKmqB,YAAY/d,EAAS8C,EAAM,MAEjC,CACDvR,IAAK,eACL0B,MAAO,SAAsB+M,EAAS8C,GACpC9C,EAAQsb,IAAI,OAASxY,EAAM,MAE5B,CACDvR,IAAK,kBACL0B,MAAO,SAAyB+M,EAAS8C,GACvClP,KAAKqqB,qBAAqBje,EAAS8C,EAAM,QAGtCwiB,EApLc,CAqLrBpK,IAEE2K,QAAoB,EAEpBC,GAAW,SAAgBhjB,EAAOpG,GAIpC,OAHKmpB,KACHA,GAAoB,IAAIP,IAEnBO,GAAkB3E,OAAOpe,EAAOpG,IASrCqpB,GAAYnzB,OAAOyqB,OAAO,CAC7B/hB,QAASgqB,GACTpE,OAAQ4E,GACRllB,IATD,SAAekC,EAAOpG,GACpBuE,QAAQL,IAAIklB,GAAShjB,EAAOpG,OAa1BlL,GAAQoB,OAAOyqB,OAAO,CACzBD,KAAMA,GACN7J,KAAMA,GACNoP,UAAWA,GACXmC,UAAWA,GACX7jB,QAAS8kB,KAoBNC,QAAoB,EAqCxBzuB,EAAQ+iB,YAAcA,EACtB/iB,EAAQ0uB,WAAaz0B,GACrB+F,EAAQ0J,QAAU8kB,GAClBxuB,EAAQvB,OA5CR,SAAgBlE,GACd,OAAO,IAAIwoB,EAAYxoB,IA4CzByF,EAAQ2uB,YAzDR,SAAqB30B,EAAK0B,GACxB,IAAIkzB,OAAQ,EACZ,MAAqB,iBAAVlzB,IAETkzB,EAAQ,yFAAyF9jB,KAAKpP,IAE7F,IAAIgP,KAAKA,KAAKmkB,KAAKD,EAAM,IAAKA,EAAM,GAAK,GAAIA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,KAAMA,EAAM,IAAM,KAG1GlzB,GAiDTsE,EAAQ+hB,KAxCR,WAIE,OAHK0M,KACHA,GAAoB,IAAI1L,GAEnB0L,GAAkB1M,KAAKjkB,MAAM2wB,GAAmB9zB,YAqCzDqF,EAAQ4e,MAlCR,WAIE,OAHK6P,KACHA,GAAoB,IAAI1L,GAEnB0L,GAAkB7P,MAAM9gB,MAAM2wB,GAAmB9zB,YA+B1DqF,EAAQ8uB,QA5BR,WAIE,OAHKL,KACHA,GAAoB,IAAI1L,GAEnB0L,GAAkBK,QAAQhxB,MAAM2wB,GAAmB9zB,YAyB5DqF,EAAQmjB,QAtBR,WAIE,OAHKsL,KACHA,GAAoB,IAAI1L,GAEnB0L,GAAkBtL,QAAQrlB,MAAM2wB,GAAmB9zB,YAmB5DqF,EAAQwK,MAhBR,WAIE,OAHKikB,KACHA,GAAoB,IAAI1L,GAEnB0L,GAAkBjkB,MAAM1M,MAAM2wB,GAAmB9zB,YAc1DU,OAAOsB,eAAeqD,EAAS,aAAc,CAAEtE,OAAO,IAnzJU5B,CAAQkG,EAAS,EAAQ,O,iCCCzF,MAAM+uB,EAAQ,EAAQ,KAChBC,EAAmB,EAAQ,KAC3BC,EAAmB,EAAQ,KAAc9F,OACzC+F,EAAoB,GAKpBC,EAAS,GACbC,EAAS,GACTC,EAAU,GACVC,EAAkB,GAcpB,SAASC,EAAkBC,GACzB,OAAO3qB,OAAO,OAAS2qB,GAAc,KAAK/qB,OAAO,GASnD,SAAShI,EAAe8J,EAAQC,GAC9B,OAAOnL,OAAOD,UAAUqB,eAAeiC,KAAK6H,EAAQC,GA6BtD,SAASipB,EAAajyB,EAAMkyB,GAC1B,OAAQlyB,GACN,IAAK,WACH,OAAO5D,MAAMsE,QAAQwxB,GACjBA,EAAgB,GAChBA,EAEN,IAAK,MACH,MAAkC,iBAApBA,EACV,CAACA,GACDA,EAEN,IAAK,QACH,OAAO91B,MAAMsE,QAAQwxB,GACjBA,EAAgB,IAAMA,EAAgB,GACtCA,EAEN,QACE,MAAM,IAAIzpB,UACR,+DA2BR,SAAS0pB,EAAeH,GACtB,OAAOJ,EAAOI,GAQhB,SAASI,EAAeJ,GACtB,OAAOL,EAAOK,GA0BhB,SAASK,EAAgBL,GACvB,MAAMM,EAASP,EAAkBC,GACjC,OAAOI,EAAeP,EAAQS,IAQhC,SAASC,EAAgBP,GACvB,MAAMM,EAASP,EAAkBC,GACjC,OAAOH,EAAQS,GA+BjB,SAASE,EAASR,GAChB,GAAoB,iBAATA,EAAmB,CAC5B,GAAI,WAAWS,KAAKT,GAClB,OAAOO,EAAgBP,GAEzB,GAAoB,IAAhBA,EAAK50B,OACP,OAAO40B,EAAKU,cAEd,GAAoB,IAAhBV,EAAK50B,OACP,OAAO+0B,EAAeH,EAAKU,eAG/B,GAAoB,iBAATV,EACT,OAAOO,EAAgBP,GA9L3BT,EAAMz1B,SAAQ,SAAU62B,GACtB,MAAM3S,EAAI2S,EACVhB,EAAO3R,EAAE,IAAMA,EAAE,GACjB4R,EAAO5R,EAAE,IAAMA,EAAE,GACjB6R,EAAQ7R,EAAE,IAAMA,EAAE,GAClB8R,EAAgB9R,EAAE,IAAMA,EAAE,MA6E5Bxd,EAAQowB,eAAiB,SAAUC,GACjC,IAAKA,EAAWC,OACd,MAAM,IAAIrqB,UAAU,6BAGtB,IAAKoqB,EAAWE,UACd,MAAM,IAAItqB,UAAU,gCAGtBipB,EAAkBmB,EAAWC,QAAUD,EAAWE,WAUpDvwB,EAAQ2vB,eAAiBA,EASzB3vB,EAAQ4vB,eAAiBA,EASzB5vB,EAAQwwB,gBAHR,SAAyBhB,GACvB,OAAOF,EAAgBK,EAAeH,KAWxCxvB,EAAQywB,gBAHR,SAAyBjB,GACvB,OAAOF,EAAgBE,IAYzBxvB,EAAQ6vB,gBAAkBA,EAU1B7vB,EAAQ+vB,gBAAkBA,EAuB1B/vB,EAAQ0wB,SAjBR,SAAkBlB,GAChB,GAAoB,iBAATA,EAAmB,CAC5B,GAAI,WAAWS,KAAKT,GAClB,OAAOK,EAAgBL,GAEzB,GAAoB,IAAhBA,EAAK50B,OACP,OAAOg1B,EAAeJ,EAAKU,eAE7B,GAAoB,IAAhBV,EAAK50B,OACP,OAAO40B,EAAKU,cAGhB,GAAoB,iBAATV,EACT,OAAOK,EAAgBL,IA2B3BxvB,EAAQgwB,SAAWA,EAQnBhwB,EAAQ2wB,QAAU,SAAUnB,EAAMoB,EAAMr2B,EAAU,IAC1C,WAAYA,IAChBA,EAAQs2B,OAAS,YAEnB,IACE,MACMC,EADW5B,EAAkB0B,EAAK1tB,eACd8sB,EAASR,IACnC,OAAOC,EAAal1B,EAAQs2B,OAAQC,GACpC,MAAOhpB,GACP,SAUJ9H,EAAQ+wB,SAAW,SAAUH,EAAMr2B,EAAU,IACrC,WAAYA,IAChBA,EAAQs2B,OAAS,YAEnB,MAAMG,EAAa9B,EAAkB0B,EAAK1tB,eAC1C,YAAmB7I,IAAf22B,EAAiC,GA/LvC,SAAsBA,EAAY5nB,GAChC,OAAO/N,OAAOiB,KAAK00B,GAAY1rB,QAAO,SAAU2rB,EAAe9B,GAC7D,MAAM2B,EAAWE,EAAW7B,GAE5B,OADA8B,EAAc9B,GAAU/lB,EAAO0nB,EAAU3B,GAClC8B,IACN,IA2LIC,CAAaF,GAAY,SAAUF,GACxC,OAAOrB,EAAal1B,EAAQs2B,OAAQC,OASxC9wB,EAAQmxB,cAAgB,SAAUl2B,EAAM21B,GACtC,MAAMQ,EAAmBC,GAAWA,EAAOnuB,cACrCouB,EAAa,CAAC3vB,EAAGC,IAAMwvB,EAAgBzvB,KAAOyvB,EAAgBxvB,GAEpE,IACE,MAAM2vB,EAAYrC,EAAkB0B,EAAK1tB,eACzC,IAAK,MAAMsuB,KAAKD,EACd,GAAK90B,EAAe80B,EAAWC,GAA/B,CAGA,GAA4B,iBAAjBD,EAAUC,IACfF,EAAWC,EAAUC,GAAIv2B,GAC3B,OAAOu2B,EAGX,GAAI53B,MAAMsE,QAAQqzB,EAAUC,IAC1B,IAAK,MAAMC,KAAcF,EAAUC,GACjC,GAAIF,EAAWG,EAAYx2B,GACzB,OAAOu2B,EAKf,OACA,MAAO1pB,GACP,SASJ9H,EAAQ0xB,oBAAsB,SAAUz2B,EAAM21B,GAC5C,MAAMQ,EAAmBC,GAAWpC,EAAiBoC,EAAOnuB,eACtDouB,EAAa,CAAC3vB,EAAGC,IAAMwvB,EAAgBzvB,KAAOyvB,EAAgBxvB,GAEpE,IACE,MAAM2vB,EAAYrC,EAAkB0B,EAAK1tB,eACzC,IAAK,MAAMsuB,KAAKD,EACd,GAAK90B,EAAe80B,EAAWC,GAA/B,CAGA,GAA4B,iBAAjBD,EAAUC,IACfF,EAAWC,EAAUC,GAAIv2B,GAC3B,OAAOu2B,EAGX,GAAI53B,MAAMsE,QAAQqzB,EAAUC,IAC1B,IAAK,MAAMC,KAAcF,EAAUC,GACjC,GAAIF,EAAWG,EAAYx2B,GACzB,OAAOu2B,EAKf,OACA,MAAO1pB,GACP,SAOJ9H,EAAQ2xB,eAAiB,WACvB,OAAOxC,GAQTnvB,EAAQ4xB,cAAgB,SAAU32B,EAAM21B,GACtC,MAAMzB,EAASnvB,EAAQmxB,cAAcl2B,EAAM21B,GAC3C,OAAIzB,EACKnvB,EAAQ0wB,SAASvB,QAExB,GASJnvB,EAAQ6xB,oBAAsB,SAAU52B,EAAM21B,GAC5C,MAAMzB,EAASnvB,EAAQ0xB,oBAAoBz2B,EAAM21B,GACjD,OAAIzB,EACKnvB,EAAQ0wB,SAASvB,QAExB,GAOJnvB,EAAQ8xB,eAAiB,WACvB,OAAO1C,GAMTpvB,EAAQ+xB,gBAAkB,WACxB,OAAO1C,GAMTrvB,EAAQgyB,MAAQ,WACd,OAAO32B,OAAOiB,KAAK4yB,IAMrBlvB,EAAQiyB,sBAAwB,WAC9B,OAAOjD,GAOThvB,EAAQkyB,QAAU,SAAU1C,GAC1B,IAAKA,EACH,OAAO,EAGT,MAAM2C,EAAU3C,EAAK/vB,WAAWywB,cAChC,OACEzzB,EAAe2yB,EAAQ+C,IACvB11B,EAAe0yB,EAAQgD,IACvB11B,EAAe4yB,EAAS8C,K,oBCvY5B,IAAIlwB,EAAI,EAAQ,GACZK,EAAc,EAAQ,IACtB8vB,EAAU,EAAQ,KAClBjwB,EAAkB,EAAQ,IAC1BkwB,EAAiC,EAAQ,IACzCC,EAAiB,EAAQ,IAI7BrwB,EAAE,CAAElI,OAAQ,SAAUwI,MAAM,EAAME,MAAOH,GAAe,CACtDiwB,0BAA2B,SAAmChsB,GAO5D,IANA,IAKIvM,EAAKwB,EALLg3B,EAAIrwB,EAAgBoE,GACpB9K,EAA2B42B,EAA+BhwB,EAC1D/F,EAAO81B,EAAQI,GACfhxB,EAAS,GACTvH,EAAQ,EAELqC,EAAK1B,OAASX,QAEAI,KADnBmB,EAAaC,EAAyB+2B,EAAGx4B,EAAMsC,EAAKrC,QACtBq4B,EAAe9wB,EAAQxH,EAAKwB,GAE5D,OAAOgG,M,oBCrBX,IAAIS,EAAI,EAAQ,GACZK,EAAc,EAAQ,IACtB6D,EAAmB,EAAQ,KAAyC9D,EAKxEJ,EAAE,CAAElI,OAAQ,SAAUwI,MAAM,EAAMC,OAAQnH,OAAO8K,mBAAqBA,EAAkB1D,MAAOH,GAAe,CAC5G6D,iBAAkBA,K,oBCRpB,IAAIlE,EAAI,EAAQ,GACZvD,EAAO,EAAQ,IACfiB,EAAW,EAAQ,IACnB8yB,EAAW,EAAQ,IACnBC,EAAmB,EAAQ,KAC3BL,EAAiC,EAAQ,IACzCn1B,EAAiB,EAAQ,KAe7B+E,EAAE,CAAElI,OAAQ,UAAWwI,MAAM,GAAQ,CACnCzG,IAZF,SAASA,EAAI/B,EAAQV,GACnB,IACImC,EAAYJ,EADZqL,EAAW9L,UAAUC,OAAS,EAAIb,EAASY,UAAU,GAEzD,OAAI83B,EAAS14B,KAAY0M,EAAiB1M,EAAOV,IACjDmC,EAAa62B,EAA+BhwB,EAAEtI,EAAQV,IAC/Bq5B,EAAiBl3B,GACpCA,EAAWE,WACQrB,IAAnBmB,EAAWM,SAAoBzB,EAAYqE,EAAKlD,EAAWM,IAAK2K,GAChE9G,EAASvE,EAAY8B,EAAenD,IAAiB+B,EAAIV,EAAW/B,EAAaoN,QAArF,M,iCCjBF,IAAIxE,EAAI,EAAQ,GACZ+B,EAAc,EAAQ,GACtB2uB,EAAgB,EAAQ,KACxBxwB,EAAkB,EAAQ,IAC1BiD,EAAsB,EAAQ,KAE9BwtB,EAAa5uB,EAAY,GAAGgK,MAOhC/L,EAAE,CAAElI,OAAQ,QAASoB,OAAO,EAAMqH,OALhBmwB,GAAiBt3B,SACN+J,EAAoB,OAAQ,MAIL,CAClD4I,KAAM,SAAc6kB,GAClB,OAAOD,EAAWzwB,EAAgB9F,WAAqBhC,IAAdw4B,EAA0B,IAAMA,O,iCCf7E,IAAI5wB,EAAI,EAAQ,GACZ+B,EAAc,EAAQ,GACtB8uB,EAAY,EAAQ,IACpBC,EAAW,EAAQ,IACnBC,EAAoB,EAAQ,IAC5BC,EAAwB,EAAQ,KAChCxzB,EAAW,EAAQ,IACnByC,EAAQ,EAAQ,GAChBgxB,EAAe,EAAQ,KACvB9tB,EAAsB,EAAQ,KAC9B+tB,EAAK,EAAQ,KACbC,EAAa,EAAQ,KACrBC,EAAK,EAAQ,IACbC,EAAS,EAAQ,KAEjBrD,EAAO,GACPsD,EAAavvB,EAAYisB,EAAK3f,MAC9BhW,EAAO0J,EAAYisB,EAAK31B,MAGxBk5B,EAAqBtxB,GAAM,WAC7B+tB,EAAK3f,UAAKjW,MAGRo5B,EAAgBvxB,GAAM,WACxB+tB,EAAK3f,KAAK,SAGRojB,EAAgBtuB,EAAoB,QAEpCuuB,GAAezxB,GAAM,WAEvB,GAAImxB,EAAI,OAAOA,EAAK,GACpB,KAAIF,GAAMA,EAAK,GAAf,CACA,GAAIC,EAAY,OAAO,EACvB,GAAIE,EAAQ,OAAOA,EAAS,IAE5B,IACI9D,EAAMhK,EAAK9pB,EAAOzB,EADlBuH,EAAS,GAIb,IAAKguB,EAAO,GAAIA,EAAO,GAAIA,IAAQ,CAGjC,OAFAhK,EAAM3gB,OAAOwS,aAAamY,GAElBA,GACN,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI9zB,EAAQ,EAAG,MAC/C,KAAK,GAAI,KAAK,GAAIA,EAAQ,EAAG,MAC7B,QAASA,EAAQ,EAGnB,IAAKzB,EAAQ,EAAGA,EAAQ,GAAIA,IAC1Bg2B,EAAK31B,KAAK,CAAE8D,EAAGonB,EAAMvrB,EAAO25B,EAAGl4B,IAMnC,IAFAu0B,EAAK3f,MAAK,SAAU3O,EAAGC,GAAK,OAAOA,EAAEgyB,EAAIjyB,EAAEiyB,KAEtC35B,EAAQ,EAAGA,EAAQg2B,EAAKr1B,OAAQX,IACnCurB,EAAMyK,EAAKh2B,GAAOmE,EAAE1B,OAAO,GACvB8E,EAAO9E,OAAO8E,EAAO5G,OAAS,KAAO4qB,IAAKhkB,GAAUgkB,GAG1D,MAAkB,gBAAXhkB,MAgBTS,EAAE,CAAElI,OAAQ,QAASoB,OAAO,EAAMqH,OAbrBgxB,IAAuBC,IAAkBC,IAAkBC,GAapB,CAClDrjB,KAAM,SAAcujB,QACAx5B,IAAdw5B,GAAyBf,EAAUe,GAEvC,IAAI1lB,EAAQ4kB,EAAS12B,MAErB,GAAIs3B,EAAa,YAAqBt5B,IAAdw5B,EAA0BN,EAAWplB,GAASolB,EAAWplB,EAAO0lB,GAExF,IAEIC,EAAa75B,EAFb85B,EAAQ,GACRC,EAAchB,EAAkB7kB,GAGpC,IAAKlU,EAAQ,EAAGA,EAAQ+5B,EAAa/5B,IAC/BA,KAASkU,GAAO7T,EAAKy5B,EAAO5lB,EAAMlU,IAQxC,IALAi5B,EAAaa,EA3BI,SAAUF,GAC7B,OAAO,SAAUjmB,EAAGC,GAClB,YAAUxT,IAANwT,GAAyB,OACnBxT,IAANuT,EAAwB,OACVvT,IAAdw5B,GAAiCA,EAAUjmB,EAAGC,IAAM,EACjDpO,EAASmO,GAAKnO,EAASoO,GAAK,GAAK,GAsBpBomB,CAAeJ,IAEnCC,EAAcd,EAAkBe,GAChC95B,EAAQ,EAEDA,EAAQ65B,GAAa3lB,EAAMlU,GAAS85B,EAAM95B,KACjD,KAAOA,EAAQ+5B,GAAaf,EAAsB9kB,EAAOlU,KAEzD,OAAOkU,M,oBCvGX,IAAInK,EAAc,EAAQ,GACtBG,EAAyB,EAAQ,IACjC1E,EAAW,EAAQ,IAEnBy0B,EAAO,KACPlyB,EAAUgC,EAAY,GAAGhC,SAI7BjC,EAAOC,QAAU,SAAUqxB,EAAQ8C,EAAKC,EAAW14B,GACjD,IAAI24B,EAAI50B,EAAS0E,EAAuBktB,IACpCiD,EAAK,IAAMH,EAEf,MADkB,KAAdC,IAAkBE,GAAM,IAAMF,EAAY,KAAOpyB,EAAQvC,EAAS/D,GAAQw4B,EAAM,UAAY,KACzFI,EAAK,IAAMD,EAAI,KAAOF,EAAM,M,oBCbrC,IAAIjyB,EAAQ,EAAQ,GAIpBnC,EAAOC,QAAU,SAAUu0B,GACzB,OAAOryB,GAAM,WACX,IAAI+tB,EAAO,GAAGsE,GAAa,KAC3B,OAAOtE,IAASA,EAAK/sB,eAAiB+sB,EAAKhT,MAAM,KAAKriB,OAAS,O,iCCLnE,IAAI45B,EAAQ,EAAQ,KAEpB,SAASC,EAAO/0B,GACd,OAAOg1B,mBAAmBh1B,GACxBsC,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KAUrBjC,EAAOC,QAAU,SAAkB20B,EAAK7qB,EAAQ8qB,GAE9C,IAAK9qB,EACH,OAAO6qB,EAGT,IAAIE,EACJ,GAAID,EACFC,EAAmBD,EAAiB9qB,QAC/B,GAAI0qB,EAAMxzB,kBAAkB8I,GACjC+qB,EAAmB/qB,EAAOrK,eACrB,CACL,IAAImvB,EAAQ,GAEZ4F,EAAMl7B,QAAQwQ,GAAQ,SAAmBpK,EAAK1F,GACxC0F,UAIA80B,EAAMt2B,QAAQwB,GAChB1F,GAAY,KAEZ0F,EAAM,CAACA,GAGT80B,EAAMl7B,QAAQoG,GAAK,SAAoBk0B,GACjCY,EAAM7zB,OAAOizB,GACfA,EAAIA,EAAEkB,cACGN,EAAM70B,SAASi0B,KACxBA,EAAI1N,KAAKC,UAAUyN,IAErBhF,EAAMt0B,KAAKm6B,EAAOz6B,GAAO,IAAMy6B,EAAOb,WAI1CiB,EAAmBjG,EAAM5gB,KAAK,KAGhC,GAAI6mB,EAAkB,CACpB,IAAIE,EAAgBJ,EAAIp5B,QAAQ,MACT,IAAnBw5B,IACFJ,EAAMA,EAAIlwB,MAAM,EAAGswB,IAGrBJ,KAA8B,IAAtBA,EAAIp5B,QAAQ,KAAc,IAAM,KAAOs5B,EAGjD,OAAOF,I,oBCrET50B,EAAOC,QAAU,EAAQ,M,oBCAzB,IAAIg1B,EAAS,EAAQ,GACjB1yB,EAAc,EAAQ,IACtB2yB,EAAwB,EAAQ,IAChCC,EAAc,EAAQ,KACtBhzB,EAAQ,EAAQ,GAGhB0I,EAASoqB,EAAOpqB,OAChBuqB,EAAkBvqB,EAAOxP,UAEhBkH,GAAeJ,GAAM,WAChC,IAAIkzB,GAAkB,EACtB,IACExqB,EAAO,IAAK,KACZ,MAAOX,GACPmrB,GAAkB,EAGpB,IAAI5C,EAAI,GAEJ6C,EAAQ,GACRC,EAAWF,EAAkB,SAAW,QAExCG,EAAY,SAAUv7B,EAAKwrB,GAE7BnqB,OAAOsB,eAAe61B,EAAGx4B,EAAK,CAAE8B,IAAK,WAEnC,OADAu5B,GAAS7P,GACF,MAIPgQ,EAAQ,CACVC,OAAQ,IACRT,OAAQ,IACRU,WAAY,IACZC,UAAW,IACXC,OAAQ,KAKV,IAAK,IAAI57B,KAFLo7B,IAAiBI,EAAMK,WAAa,KAExBL,EAAOD,EAAUv7B,EAAKw7B,EAAMx7B,IAK5C,OAFaqB,OAAOI,yBAAyB05B,EAAiB,SAASr5B,IAAI4C,KAAK8zB,KAE9D8C,GAAYD,IAAUC,MAK9BL,EAAsBE,EAAiB,QAAS,CAC1Dv4B,cAAc,EACdd,IAAKo5B,K,iCCpDP,IAAIjzB,EAAI,EAAQ,GACZ6zB,EAAa,EAAQ,KAKzB7zB,EAAE,CAAElI,OAAQ,SAAUoB,OAAO,EAAMqH,OAJN,EAAQ,IAIMuzB,CAAuB,SAAW,CAC3EC,KAAM,SAAcrB,GAClB,OAAOmB,EAAWz5B,KAAM,IAAK,OAAQs4B,O,oBCTzC,IAAI7B,EAAY,EAAQ,IACpBC,EAAW,EAAQ,IACnBJ,EAAgB,EAAQ,KACxBK,EAAoB,EAAQ,IAE5BiD,EAAahwB,UAGbiwB,EAAe,SAAUC,GAC3B,OAAO,SAAUnxB,EAAMO,EAAY6wB,EAAiBC,GAClDvD,EAAUvtB,GACV,IAAIitB,EAAIO,EAAS/tB,GACbmC,EAAOwrB,EAAcH,GACrB53B,EAASo4B,EAAkBR,GAC3Bv4B,EAAQk8B,EAAWv7B,EAAS,EAAI,EAChC+D,EAAIw3B,GAAY,EAAI,EACxB,GAAIC,EAAkB,EAAG,OAAa,CACpC,GAAIn8B,KAASkN,EAAM,CACjBkvB,EAAOlvB,EAAKlN,GACZA,GAAS0E,EACT,MAGF,GADA1E,GAAS0E,EACLw3B,EAAWl8B,EAAQ,EAAIW,GAAUX,EACnC,MAAMg8B,EAAW,+CAGrB,KAAME,EAAWl8B,GAAS,EAAIW,EAASX,EAAOA,GAAS0E,EAAO1E,KAASkN,IACrEkvB,EAAO9wB,EAAW8wB,EAAMlvB,EAAKlN,GAAQA,EAAOu4B,IAE9C,OAAO6D,IAIXt2B,EAAOC,QAAU,CAGfmF,KAAM+wB,GAAa,GAGnBhrB,MAAOgrB,GAAa,K,iCChCtBn2B,EAAOC,QAAU,SAAuB20B,GAItC,MAAO,gCAAgC1E,KAAK0E,K,iCCH9C50B,EAAOC,QAAU,SAAqBs2B,EAASC,GAC7C,OAAOA,EACHD,EAAQt0B,QAAQ,OAAQ,IAAM,IAAMu0B,EAAYv0B,QAAQ,OAAQ,IAChEs0B,I,iCCNS,SAASE,EACtBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAoBIC,EApBA18B,EACuB,mBAAlBk8B,EAA+BA,EAAcl8B,QAAUk8B,EAuDhE,GApDIC,IACFn8B,EAAQm8B,OAASA,EACjBn8B,EAAQo8B,gBAAkBA,EAC1Bp8B,EAAQ28B,WAAY,GAIlBN,IACFr8B,EAAQ48B,YAAa,GAInBL,IACFv8B,EAAQ68B,SAAW,UAAYN,GAI7BC,GAEFE,EAAO,SAAUxuB,IAEfA,EACEA,GACCpM,KAAKg7B,QAAUh7B,KAAKg7B,OAAOC,YAC3Bj7B,KAAKuK,QAAUvK,KAAKuK,OAAOywB,QAAUh7B,KAAKuK,OAAOywB,OAAOC,aAEZ,oBAAxBC,sBACrB9uB,EAAU8uB,qBAGRV,GACFA,EAAan4B,KAAKrC,KAAMoM,GAGtBA,GAAWA,EAAQ+uB,uBACrB/uB,EAAQ+uB,sBAAsBpO,IAAI2N,IAKtCx8B,EAAQk9B,aAAeR,GACdJ,IACTI,EAAOD,EACH,WACEH,EAAan4B,KACXrC,MACC9B,EAAQ48B,WAAa96B,KAAKuK,OAASvK,MAAMq7B,MAAMn7B,SAASo7B,aAG7Dd,GAGFI,EACF,GAAI18B,EAAQ48B,WAAY,CAGtB58B,EAAQq9B,cAAgBX,EAExB,IAAIY,EAAiBt9B,EAAQm8B,OAC7Bn8B,EAAQm8B,OAAS,SAAkCoB,EAAGrvB,GAEpD,OADAwuB,EAAKv4B,KAAK+J,GACHovB,EAAeC,EAAGrvB,QAEtB,CAEL,IAAIsvB,EAAWx9B,EAAQy9B,aACvBz9B,EAAQy9B,aAAeD,EAAW,GAAGt0B,OAAOs0B,EAAUd,GAAQ,CAACA,GAInE,MAAO,CACLj3B,QAASy2B,EACTl8B,QAASA,GA7Fb,mC,iCCCA,IAAI0H,EAAI,EAAQ,GACZ+B,EAAc,EAAQ,GACtBi0B,EAAsB,EAAQ,IAC9BC,EAAkB,EAAQ,KAC1BC,EAAU,EAAQ,KAClBj2B,EAAQ,EAAQ,GAEhBk2B,EAAcC,WACdC,EAAUzzB,OACV8S,EAAQhT,KAAKgT,MACb4gB,EAASv0B,EAAYm0B,GACrB3zB,EAAcR,EAAY,GAAGS,OAC7B+zB,EAAgBx0B,EAAY,GAAIy0B,SAEhCC,EAAM,SAAU9qB,EAAGwP,EAAGsP,GACxB,OAAa,IAANtP,EAAUsP,EAAMtP,EAAI,GAAM,EAAIsb,EAAI9qB,EAAGwP,EAAI,EAAGsP,EAAM9e,GAAK8qB,EAAI9qB,EAAIA,EAAGwP,EAAI,EAAGsP,IAgB9EiM,EAAW,SAAU/8B,EAAMwhB,EAAGwb,GAGhC,IAFA,IAAI3+B,GAAS,EACT4+B,EAAKD,IACA3+B,EAAQ,GACf4+B,GAAMzb,EAAIxhB,EAAK3B,GACf2B,EAAK3B,GAAS4+B,EAAK,IACnBA,EAAKlhB,EAAMkhB,EAAK,MAIhBC,EAAS,SAAUl9B,EAAMwhB,GAG3B,IAFA,IAAInjB,EAAQ,EACR2+B,EAAI,IACC3+B,GAAS,GAChB2+B,GAAKh9B,EAAK3B,GACV2B,EAAK3B,GAAS0d,EAAMihB,EAAIxb,GACxBwb,EAAKA,EAAIxb,EAAK,KAId2b,EAAe,SAAUn9B,GAG3B,IAFA,IAAI3B,EAAQ,EACRujB,EAAI,KACCvjB,GAAS,GAChB,GAAU,KAANujB,GAAsB,IAAVvjB,GAA+B,IAAhB2B,EAAK3B,GAAc,CAChD,IAAI++B,EAAIV,EAAQ18B,EAAK3B,IACrBujB,EAAU,KAANA,EAAWwb,EAAIxb,EAAI+a,EAAO,IAAK,EAAIS,EAAEp+B,QAAUo+B,EAErD,OAAOxb,GAeXvb,EAAE,CAAElI,OAAQ,SAAUoB,OAAO,EAAMqH,OAZtBN,GAAM,WACjB,MAAqC,UAA9Bs2B,EAAc,KAAS,IACF,MAA1BA,EAAc,GAAK,IACS,SAA5BA,EAAc,MAAO,IACuB,wBAA5CA,EAAc,kBAAuB,QAClCt2B,GAAM,WAEXs2B,EAAc,QAKqC,CACnDC,QAAS,SAAiBQ,GACxB,IAKItb,EAAGub,EAAGnkB,EAAG3W,EALT+6B,EAASjB,EAAgB77B,MACzB+8B,EAAcnB,EAAoBgB,GAClCr9B,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvB8lB,EAAO,GACPlgB,EAAS,IAIb,GAAI43B,EAAc,GAAKA,EAAc,GAAI,MAAMhB,EAAY,6BAE3D,GAAIe,GAAUA,EAAQ,MAAO,MAC7B,GAAIA,IAAW,MAAQA,GAAU,KAAM,OAAOb,EAAQa,GAKtD,GAJIA,EAAS,IACXzX,EAAO,IACPyX,GAAUA,GAERA,EAAS,MAKX,GAHAD,GADAvb,EA3EI,SAAU/P,GAGlB,IAFA,IAAIwP,EAAI,EACJhH,EAAKxI,EACFwI,GAAM,MACXgH,GAAK,GACLhH,GAAM,KAER,KAAOA,GAAM,GACXgH,GAAK,EACLhH,GAAM,EACN,OAAOgH,EAiED/T,CAAI8vB,EAAST,EAAI,EAAG,GAAI,IAAM,IAC1B,EAAIS,EAAST,EAAI,GAAI/a,EAAG,GAAKwb,EAAST,EAAI,EAAG/a,EAAG,GACxDub,GAAK,kBACLvb,EAAI,GAAKA,GACD,EAAG,CAGT,IAFAgb,EAAS/8B,EAAM,EAAGs9B,GAClBnkB,EAAIqkB,EACGrkB,GAAK,GACV4jB,EAAS/8B,EAAM,IAAK,GACpBmZ,GAAK,EAIP,IAFA4jB,EAAS/8B,EAAM88B,EAAI,GAAI3jB,EAAG,GAAI,GAC9BA,EAAI4I,EAAI,EACD5I,GAAK,IACV+jB,EAAOl9B,EAAM,GAAK,IAClBmZ,GAAK,GAEP+jB,EAAOl9B,EAAM,GAAKmZ,GAClB4jB,EAAS/8B,EAAM,EAAG,GAClBk9B,EAAOl9B,EAAM,GACb4F,EAASu3B,EAAan9B,QAEtB+8B,EAAS/8B,EAAM,EAAGs9B,GAClBP,EAAS/8B,EAAM,IAAM+hB,EAAG,GACxBnc,EAASu3B,EAAan9B,GAAQ28B,EAAO,IAAKa,GAU5C,OALA53B,EAFE43B,EAAc,EAEP1X,IADTtjB,EAAIoD,EAAO5G,SACWw+B,EAClB,KAAOb,EAAO,IAAKa,EAAch7B,GAAKoD,EACtCgD,EAAYhD,EAAQ,EAAGpD,EAAIg7B,GAAe,IAAM50B,EAAYhD,EAAQpD,EAAIg7B,IAEnE1X,EAAOlgB,M,oBC/HtB,IAAIS,EAAI,EAAQ,GACZo3B,EAAU,EAAQ,KAAgCC,OAItDr3B,EAAE,CAAElI,OAAQ,SAAUwI,MAAM,GAAQ,CAClC+2B,OAAQ,SAAgB9G,GACtB,OAAO6G,EAAQ7G,O,oBCPnB,IAAIvwB,EAAI,EAAQ,GACZs3B,EAAW,EAAQ,KAAgCC,QAIvDv3B,EAAE,CAAElI,OAAQ,SAAUwI,MAAM,GAAQ,CAClCi3B,QAAS,SAAiBhH,GACxB,OAAO+G,EAAS/G,O,oBCPpB,IAAIvwB,EAAI,EAAQ,GACZgc,EAAc,EAAQ,KAK1Bhc,EAAE,CAAElI,OAAQ,QAASoB,OAAO,EAAMqH,OAAQyb,IAAgB,GAAGA,aAAe,CAC1EA,YAAaA,K,oBCPf,IAAI3b,EAAc,EAAQ,IACtBJ,EAAQ,EAAQ,GAChB8B,EAAc,EAAQ,GACtBy1B,EAAuB,EAAQ,KAC/BC,EAAa,EAAQ,KACrBv3B,EAAkB,EAAQ,IAG1Bw3B,EAAuB31B,EAFC,EAAQ,KAA8C3B,GAG9E/H,EAAO0J,EAAY,GAAG1J,MAItBs/B,EAASt3B,GAAeJ,GAAM,WAEhC,IAAIswB,EAAIn3B,OAAOoD,OAAO,MAEtB,OADA+zB,EAAE,GAAK,GACCmH,EAAqBnH,EAAG,MAI9B0D,EAAe,SAAU2D,GAC3B,OAAO,SAAUn3B,GAQf,IAPA,IAMI1I,EANAw4B,EAAIrwB,EAAgBO,GACpBpG,EAAOo9B,EAAWlH,GAClBsH,EAAgBF,GAAsC,OAA5BH,EAAqBjH,GAC/C53B,EAAS0B,EAAK1B,OACd+D,EAAI,EACJ6C,EAAS,GAEN5G,EAAS+D,GACd3E,EAAMsC,EAAKqC,KACN2D,KAAgBw3B,EAAgB9/B,KAAOw4B,EAAImH,EAAqBnH,EAAGx4B,KACtEM,EAAKkH,EAAQq4B,EAAa,CAAC7/B,EAAKw4B,EAAEx4B,IAAQw4B,EAAEx4B,IAGhD,OAAOwH,IAIXzB,EAAOC,QAAU,CAGfw5B,QAAStD,GAAa,GAGtBoD,OAAQpD,GAAa,K,oBC9CvB,IAEI6D,EAFY,EAAQ,IAEA7sB,MAAM,mBAE9BnN,EAAOC,UAAY+5B,IAAYA,EAAQ,I,oBCJvC,IAAIC,EAAK,EAAQ,IAEjBj6B,EAAOC,QAAU,eAAeiwB,KAAK+J,I,oBCFrC,IAEIC,EAFY,EAAQ,IAED/sB,MAAM,wBAE7BnN,EAAOC,UAAYi6B,IAAWA,EAAO,I,iCCFrCl6B,EAAOC,QAAU,SAAchD,EAAI6E,GACjC,OAAO,WAEL,IADA,IAAIuB,EAAO,IAAIxJ,MAAMe,UAAUC,QACtB+D,EAAI,EAAGA,EAAIyE,EAAKxI,OAAQ+D,IAC/ByE,EAAKzE,GAAKhE,UAAUgE,GAEtB,OAAO3B,EAAGc,MAAM+D,EAASuB,M,iCCN7BrD,EAAOC,QAAU,SAAkBtE,GACjC,SAAUA,IAASA,EAAMw+B,c,kCCH3B,YAEA,IAAI1F,EAAQ,EAAQ,KAChB2F,EAAsB,EAAQ,KAE9BC,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBC,EAAS5+B,IACjC84B,EAAM9zB,YAAY45B,IAAY9F,EAAM9zB,YAAY45B,EAAQ,mBAC3DA,EAAQ,gBAAkB5+B,GAiB9B,IAZM6+B,EAYFC,EAAW,CACbD,eAXuB,IAAZzxB,GAAuE,qBAA5CzN,OAAOD,UAAUqE,SAASf,KAAKoK,IAGhC,oBAAnB2xB,kBADhBF,EAAU,EAAQ,MAKbA,GAMPG,iBAAkB,CAAC,SAA0B9+B,EAAM0+B,GAGjD,OAFAH,EAAoBG,EAAS,UAC7BH,EAAoBG,EAAS,gBACzB9F,EAAMt0B,WAAWtE,IACnB44B,EAAMv0B,cAAcrE,IACpB44B,EAAMh1B,SAAS5D,IACf44B,EAAM1zB,SAASlF,IACf44B,EAAM5zB,OAAOhF,IACb44B,EAAM3zB,OAAOjF,GAENA,EAEL44B,EAAMp0B,kBAAkBxE,GACnBA,EAAK2E,OAEVi0B,EAAMxzB,kBAAkBpF,IAC1By+B,EAAsBC,EAAS,mDACxB1+B,EAAK6D,YAEV+0B,EAAM70B,SAAS/D,IACjBy+B,EAAsBC,EAAS,kCACxBpU,KAAKC,UAAUvqB,IAEjBA,IAGT++B,kBAAmB,CAAC,SAA2B/+B,GAE7C,GAAoB,iBAATA,EACT,IACEA,EAAOsqB,KAAK0U,MAAMh/B,GAClB,MAAO+hB,IAEX,OAAO/hB,IAOTi/B,QAAS,EAETC,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EAEnBC,eAAgB,SAAwBC,GACtC,OAAOA,GAAU,KAAOA,EAAS,MAIrCV,EAASF,QAAU,CACjBa,OAAQ,CACN,OAAU,sCAId3G,EAAMl7B,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6B8hC,GACpEZ,EAASF,QAAQc,GAAU,MAG7B5G,EAAMl7B,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B8hC,GACrEZ,EAASF,QAAQc,GAAU5G,EAAMjzB,MAAM64B,MAGzCr6B,EAAOC,QAAUw6B,I,oDC/FjB,IAAIhG,EAAQ,EAAQ,KAChB6G,EAAS,EAAQ,KACjBC,EAAW,EAAQ,KACnBC,EAAe,EAAQ,KACvBC,EAAkB,EAAQ,KAC1BC,EAAc,EAAQ,KAE1B17B,EAAOC,QAAU,SAAoB07B,GACnC,OAAO,IAAI93B,SAAQ,SAA4B+3B,EAASC,GACtD,IAAIC,EAAcH,EAAO9/B,KACrBkgC,EAAiBJ,EAAOpB,QAExB9F,EAAMt0B,WAAW27B,WACZC,EAAe,gBAGxB,IAAIC,EAAU,IAAItB,eAGlB,GAAIiB,EAAOM,KAAM,CACf,IAAIC,EAAWP,EAAOM,KAAKC,UAAY,GACnCC,EAAWR,EAAOM,KAAKE,UAAY,GACvCJ,EAAeK,cAAgB,SAAWC,KAAKH,EAAW,IAAMC,GA0ElE,GAvEAH,EAAQM,KAAKX,EAAON,OAAOlL,cAAeoL,EAASI,EAAO/G,IAAK+G,EAAO5xB,OAAQ4xB,EAAO9G,mBAAmB,GAGxGmH,EAAQlB,QAAUa,EAAOb,QAGzBkB,EAAQO,mBAAqB,WAC3B,GAAKP,GAAkC,IAAvBA,EAAQQ,aAQD,IAAnBR,EAAQb,QAAkBa,EAAQS,aAAwD,IAAzCT,EAAQS,YAAYjhC,QAAQ,UAAjF,CAKA,IAAIkhC,EAAkB,0BAA2BV,EAAUR,EAAaQ,EAAQW,yBAA2B,KAEvGC,EAAW,CACb/gC,KAFkB8/B,EAAOkB,cAAwC,SAAxBlB,EAAOkB,aAAiDb,EAAQY,SAA/BZ,EAAQc,aAGlF3B,OAAQa,EAAQb,OAChB4B,WAAYf,EAAQe,WACpBxC,QAASmC,EACTf,OAAQA,EACRK,QAASA,GAGXV,EAAOM,EAASC,EAAQe,GAGxBZ,EAAU,OAIZA,EAAQgB,QAAU,WACXhB,IAILH,EAAOH,EAAY,kBAAmBC,EAAQ,eAAgBK,IAG9DA,EAAU,OAIZA,EAAQiB,QAAU,WAGhBpB,EAAOH,EAAY,gBAAiBC,EAAQ,KAAMK,IAGlDA,EAAU,MAIZA,EAAQkB,UAAY,WAClBrB,EAAOH,EAAY,cAAgBC,EAAOb,QAAU,cAAea,EAAQ,eACzEK,IAGFA,EAAU,MAMRvH,EAAMtzB,uBAAwB,CAChC,IAAIg8B,EAAU,EAAQ,KAGlBC,GAAazB,EAAO0B,iBAAmB5B,EAAgBE,EAAO/G,OAAS+G,EAAOZ,eAChFoC,EAAQG,KAAK3B,EAAOZ,qBACpBzgC,EAEE8iC,IACFrB,EAAeJ,EAAOX,gBAAkBoC,GAuB5C,GAlBI,qBAAsBpB,GACxBvH,EAAMl7B,QAAQwiC,GAAgB,SAA0Bp8B,EAAK1F,QAChC,IAAhB6hC,GAAqD,iBAAtB7hC,EAAIkJ,qBAErC44B,EAAe9hC,GAGtB+hC,EAAQuB,iBAAiBtjC,EAAK0F,MAMhCg8B,EAAO0B,kBACTrB,EAAQqB,iBAAkB,GAIxB1B,EAAOkB,aACT,IACEb,EAAQa,aAAelB,EAAOkB,aAC9B,MAAOjf,GAGP,GAA4B,SAAxB+d,EAAOkB,aACT,MAAMjf,EAM6B,mBAA9B+d,EAAO6B,oBAChBxB,EAAQyB,iBAAiB,WAAY9B,EAAO6B,oBAIP,mBAA5B7B,EAAO+B,kBAAmC1B,EAAQ2B,QAC3D3B,EAAQ2B,OAAOF,iBAAiB,WAAY9B,EAAO+B,kBAGjD/B,EAAOiC,aAETjC,EAAOiC,YAAYC,QAAQj6B,MAAK,SAAoBk6B,GAC7C9B,IAILA,EAAQ+B,QACRlC,EAAOiC,GAEP9B,EAAU,cAIM1hC,IAAhBwhC,IACFA,EAAc,MAIhBE,EAAQgC,KAAKlC,Q,iCCzKjB,IAAImC,EAAe,EAAQ,KAY3Bj+B,EAAOC,QAAU,SAAqBi+B,EAASvC,EAAQlM,EAAMuM,EAASY,GACpE,IAAI1yB,EAAQ,IAAIf,MAAM+0B,GACtB,OAAOD,EAAa/zB,EAAOyxB,EAAQlM,EAAMuM,EAASY,K,iCCdpD,IAAInI,EAAQ,EAAQ,KAUpBz0B,EAAOC,QAAU,SAAqBk+B,EAASC,GAE7CA,EAAUA,GAAW,GACrB,IAAIzC,EAAS,GAkCb,OAhCAlH,EAAMl7B,QAAQ,CAAC,MAAO,SAAU,SAAU,SAAS,SAA0BwJ,QAC9C,IAAlBq7B,EAAQr7B,KACjB44B,EAAO54B,GAAQq7B,EAAQr7B,OAI3B0xB,EAAMl7B,QAAQ,CAAC,UAAW,OAAQ,UAAU,SAA6BwJ,GACnE0xB,EAAM70B,SAASw+B,EAAQr7B,IACzB44B,EAAO54B,GAAQ0xB,EAAM9yB,UAAUw8B,EAAQp7B,GAAOq7B,EAAQr7B,SACpB,IAAlBq7B,EAAQr7B,GACxB44B,EAAO54B,GAAQq7B,EAAQr7B,GACd0xB,EAAM70B,SAASu+B,EAAQp7B,IAChC44B,EAAO54B,GAAQ0xB,EAAM9yB,UAAUw8B,EAAQp7B,SACL,IAAlBo7B,EAAQp7B,KACxB44B,EAAO54B,GAAQo7B,EAAQp7B,OAI3B0xB,EAAMl7B,QAAQ,CACZ,UAAW,mBAAoB,oBAAqB,mBACpD,UAAW,kBAAmB,UAAW,eAAgB,iBACzD,iBAAkB,mBAAoB,qBAAsB,mBAC5D,iBAAkB,eAAgB,YAAa,aAAc,cAC7D,eACC,SAA0BwJ,QACE,IAAlBq7B,EAAQr7B,GACjB44B,EAAO54B,GAAQq7B,EAAQr7B,QACW,IAAlBo7B,EAAQp7B,KACxB44B,EAAO54B,GAAQo7B,EAAQp7B,OAIpB44B,I,iCCzCT,SAAS0C,EAAOH,GACd5hC,KAAK4hC,QAAUA,EAGjBG,EAAOhjC,UAAUqE,SAAW,WAC1B,MAAO,UAAYpD,KAAK4hC,QAAU,KAAO5hC,KAAK4hC,QAAU,KAG1DG,EAAOhjC,UAAU8+B,YAAa,EAE9Bn6B,EAAOC,QAAUo+B,G,iCClBjB;;;;;;AAOA,SAASz4B,EAAQ9F,GAWf,OATE8F,EADoB,mBAAXC,QAAoD,iBAApBA,OAAOC,SACtC,SAAUhG,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAX+F,QAAyB/F,EAAI1F,cAAgByL,QAAU/F,IAAQ+F,OAAOxK,UAAY,gBAAkByE,IAI9GA,GAGjB,SAASw+B,EAAgBx+B,EAAK7F,EAAK0B,GAYjC,OAXI1B,KAAO6F,EACTxE,OAAOsB,eAAekD,EAAK7F,EAAK,CAC9B0B,MAAOA,EACP0K,YAAY,EACZxJ,cAAc,EACdkI,UAAU,IAGZjF,EAAI7F,GAAO0B,EAGNmE,EAGT,SAASy+B,EAAmBh3B,GAC1B,OAGF,SAA4BA,GAC1B,GAAI1N,MAAMsE,QAAQoJ,GAAM,CACtB,IAAK,IAAI3I,EAAI,EAAGsJ,EAAO,IAAIrO,MAAM0N,EAAI1M,QAAS+D,EAAI2I,EAAI1M,OAAQ+D,IAAKsJ,EAAKtJ,GAAK2I,EAAI3I,GAEjF,OAAOsJ,GAPFs2B,CAAmBj3B,IAW5B,SAA0Bk3B,GACxB,GAAI54B,OAAOC,YAAYxK,OAAOmjC,IAAkD,uBAAzCnjC,OAAOD,UAAUqE,SAASf,KAAK8/B,GAAgC,OAAO5kC,MAAMR,KAAKolC,GAZtFC,CAAiBn3B,IAerD,WACE,MAAM,IAAIrB,UAAU,mDAhBuCy4B,GAsB7D,SAAS5lC,IACP,MAA0B,oBAAZC,SAA2BA,QAAQC,gBAAkBD,QAAQE,mBAE7E,SAAS0lC,EAAuBxlC,EAAIC,GAClCF,EAAgBC,EAAIC,GACpBiC,OAAOC,oBAAoBlC,EAAKgC,WAAW9B,SAAQ,SAAUU,GAC3Dd,EAAgBC,EAAGiC,UAAWhC,EAAKgC,UAAWpB,MAEhDqB,OAAOC,oBAAoBlC,GAAME,SAAQ,SAAUU,GACjDd,EAAgBC,EAAIC,EAAMY,MAI9B,SAASd,EAAgBC,EAAIC,EAAMC,IAClBA,EAAcN,QAAQE,mBAAmBG,EAAMC,GAAeN,QAAQE,mBAAmBG,IAC/FE,SAAQ,SAAUC,GACzB,IAAIC,EAAWH,EAAcN,QAAQU,eAAeF,EAASH,EAAMC,GAAeN,QAAQU,eAAeF,EAASH,GAE9GC,EACFN,QAAQC,eAAeO,EAASC,EAAUL,EAAIE,GAE9CN,QAAQC,eAAeO,EAASC,EAAUL,MAKhD,IAGIO,EAHY,CACdC,UAAW,cAEuBC,MACpC,SAASC,EAAgBC,GACvB,OAAO,SAAUC,EAAQC,EAAKC,GAC5B,IAAIC,EAAyB,mBAAXH,EAAwBA,EAASA,EAAOI,YAErDD,EAAKE,iBACRF,EAAKE,eAAiB,IAGH,iBAAVH,IACTA,OAAQI,GAGVH,EAAKE,eAAeE,MAAK,SAAUC,GACjC,OAAOT,EAAQS,EAASP,EAAKC,OAInC,SAASO,IACP,IAAK,IAAIizB,EAAO9yB,UAAUC,OAAQH,EAAQ,IAAIb,MAAM6zB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChFjzB,EAAMizB,GAAQ/yB,UAAU+yB,GAG1B,OAAO,IAAI7yB,OAAO,CAChBL,OAAQC,IAcZ,SAASqC,EAA2Bb,EAAIjB,GAEtC,IAAIkB,EAAelB,EAAUI,UAAUe,MAEvCnB,EAAUI,UAAUe,MAAQ,WAC1B,IAAIC,EAAQC,KAGRC,EAAOjB,OAAOC,oBAAoBW,GAEtC,GAAIA,EAAGM,SAASC,MACd,IAAK,IAAIxC,KAAOiC,EAAGM,SAASC,MACrBP,EAAGQ,eAAezC,IACrBsC,EAAKhC,KAAKN,GAKhBsC,EAAKhD,SAAQ,SAAUU,GACrBqB,OAAOsB,eAAeP,EAAOpC,EAAK,CAChC8B,IAAK,WACH,OAAOG,EAAGjC,IAEZ+B,IAAK,SAAaL,GAChBO,EAAGjC,GAAO0B,GAEZkB,cAAc,QAMpB,IAAIhB,EAAO,IAAIZ,EAEfA,EAAUI,UAAUe,MAAQD,EAE5B,IAAIW,EAAY,GAahB,OAZAxB,OAAOiB,KAAKV,GAAMtC,SAAQ,SAAUU,QAChBK,IAAduB,EAAK5B,KACP6C,EAAU7C,GAAO4B,EAAK5B,OAUnB6C,EAGT,IAAI/B,EAAiB,CAAC,OAAQ,eAAgB,UAAW,cAAe,UAAW,gBAAiB,YAAa,eAAgB,UAAW,YAAa,cAAe,SAAU,gBAAiB,kBAEnM,SAASC,EAAiBC,GACxB,IAAIT,EAAUI,UAAUC,OAAS,QAAsBP,IAAjBM,UAAU,GAAmBA,UAAU,GAAK,GAClFJ,EAAQU,KAAOV,EAAQU,MAAQD,EAAUE,eAAiBF,EAAUC,KAEpE,IAAIE,EAAQH,EAAUI,UACtBC,OAAOC,oBAAoBH,GAAO7B,SAAQ,SAAUU,GAClD,GAAY,gBAARA,EAKJ,GAAIc,EAAeS,QAAQvB,IAAQ,EACjCO,EAAQP,GAAOmB,EAAMnB,OADvB,CAKA,IAAIwB,EAAaH,OAAOI,yBAAyBN,EAAOnB,QAE/B,IAArBwB,EAAWE,MAEmB,mBAArBF,EAAWE,OACnBnB,EAAQoB,UAAYpB,EAAQoB,QAAU,KAAK3B,GAAOwB,EAAWE,OAG7DnB,EAAQC,SAAWD,EAAQC,OAAS,KAAKF,KAAK,CAC7CsB,KAAM,WACJ,OAAOyiC,EAAgB,GAAIrkC,EAAKwB,EAAWE,WAIxCF,EAAWM,KAAON,EAAWO,QAErCxB,EAAQyB,WAAazB,EAAQyB,SAAW,KAAKhC,GAAO,CACnD8B,IAAKN,EAAWM,IAChBC,IAAKP,EAAWO,WAIrBxB,EAAQC,SAAWD,EAAQC,OAAS,KAAKF,KAAK,CAC7CsB,KAAM,WACJ,OAAOkB,EAA2BT,KAAMrB,MAI5C,IAAI+B,EAAa/B,EAAUZ,eAEvB2C,IACFA,EAAWzD,SAAQ,SAAU0D,GAC3B,OAAOA,EAAGzC,aAELS,EAAUZ,gBAInB,IAAI6C,EAAa5B,OAAO6B,eAAelC,EAAUI,WAC7C+B,EAAQF,aAAsB,IAAMA,EAAW9C,YAAc,IAC7DiD,EAAWD,EAAMtC,OAAON,GAO5B,OANAmD,EAAqBN,EAAUpC,EAAWmC,GAEtCrE,KACF6lC,EAAuBvhC,EAAUpC,GAG5BoC,EAET,IAKIE,EAAe,CACjBlC,WAAW,EACXT,WAAW,EACXgD,QAAQ,EACRC,QAAQ,GAGV,SAASF,EAAqBN,EAAUC,EAAUF,GAEhD9B,OAAOC,oBAAoB+B,GAAU/D,SAAQ,SAAUU,GAErD,IAAIsD,EAAatD,GAAjB,CAKA,IAAIuD,EAAqBlC,OAAOI,yBAAyB2B,EAAUpD,GAEnE,IAAIuD,GAAuBA,EAAmBX,aAA9C,CAIA,IA7JiBlB,EACf8B,EA4JEhC,EAAaH,OAAOI,yBAAyB4B,EAAUrD,GAQ3D,IAAKN,EAAU,CAIb,GAAY,QAARM,EACF,OAGF,IAAIyD,EAAkBpC,OAAOI,yBAAyB0B,EAAOnD,GAE7D,GA/Ke0B,EA+KEF,EAAWE,MA9K5B8B,EAAOmI,EAAQjK,GAEH,MAATA,IAA0B,WAAT8B,GAA8B,aAATA,IA4KHC,GAAmBA,EAAgB/B,QAAUF,EAAWE,MAC5F,OAKA,EAIJL,OAAOsB,eAAeS,EAAUpD,EAAKwB,QAIzC,SAASR,EAAUT,GACjB,MAAuB,mBAAZA,EACFQ,EAAiBR,GAGnB,SAAUS,GACf,OAAOD,EAAiBC,EAAWT,IAIvCS,EAAU6C,cAAgB,SAAuBvB,GAC/CxB,EAAeR,KAAKwD,MAAMhD,EAAgBwjC,EAAmBhiC,KAGhD,a,oBC9Tf,IAAIqD,EAAW,EAAQ,IAEnBgY,EAAQhT,KAAKgT,MAKjB5X,EAAOC,QAAUyS,OAAOmsB,WAAa,SAAmBl8B,GACtD,OAAQ/C,EAAS+C,IAAOm8B,SAASn8B,IAAOiV,EAAMjV,KAAQA,I,oBCPxD,EAAQ,M,iCCCR,IAAI5E,EAAQ,EAAQ,IAChBqE,EAAkB,EAAQ,IAC1B81B,EAAsB,EAAQ,IAC9BjF,EAAoB,EAAQ,IAC5B5tB,EAAsB,EAAQ,KAE9BV,EAAMC,KAAKD,IACXo6B,EAAe,GAAG7gB,YAClB8gB,IAAkBD,GAAgB,EAAI,CAAC,GAAG7gB,YAAY,GAAI,GAAK,EAC/DyV,EAAgBtuB,EAAoB,eACpC45B,EAASD,IAAkBrL,EAI/B3zB,EAAOC,QAAUg/B,EAAS,SAAqBC,GAE7C,GAAIF,EAAe,OAAOjhC,EAAMghC,EAAcziC,KAAM1B,YAAc,EAClE,IAAI63B,EAAIrwB,EAAgB9F,MACpBzB,EAASo4B,EAAkBR,GAC3Bv4B,EAAQW,EAAS,EAGrB,IAFID,UAAUC,OAAS,IAAGX,EAAQyK,EAAIzK,EAAOg+B,EAAoBt9B,UAAU,MACvEV,EAAQ,IAAGA,EAAQW,EAASX,GAC1BA,GAAS,EAAGA,IAAS,GAAIA,KAASu4B,GAAKA,EAAEv4B,KAAWglC,EAAe,OAAOhlC,GAAS,EACzF,OAAQ,GACN6kC,G,iCCzBJ,IAkBMtjC,EAlBFyG,EAAI,EAAQ,GACZ+B,EAAc,EAAQ,KACtBvI,EAA2B,EAAQ,IAAmD4G,EACtF4B,EAAW,EAAQ,IACnBxE,EAAW,EAAQ,IACnByE,EAAa,EAAQ,KACrBC,EAAyB,EAAQ,IACjCC,EAAuB,EAAQ,KAC/BC,EAAU,EAAQ,IAGlB66B,EAAiBl7B,EAAY,GAAGm7B,UAChC16B,EAAQT,EAAY,GAAGS,OACvBC,EAAMC,KAAKD,IAEXE,EAA0BR,EAAqB,YASnDnC,EAAE,CAAElI,OAAQ,SAAUoB,OAAO,EAAMqH,UAPX6B,GAAYO,IAC9BpJ,EAAaC,EAAyBoJ,OAAOzJ,UAAW,aACrDI,GAAeA,EAAWsJ,aAK8BF,GAA2B,CAC1Fu6B,SAAU,SAAkBp6B,GAC1B,IAAIC,EAAOvF,EAAS0E,EAAuB9H,OAC3C6H,EAAWa,GACX,IAAIq6B,EAAczkC,UAAUC,OAAS,EAAID,UAAU,QAAKN,EACpDglC,EAAMr6B,EAAKpK,OACX0kC,OAAsBjlC,IAAhB+kC,EAA4BC,EAAM36B,EAAIT,EAASm7B,GAAcC,GACnEp6B,EAASxF,EAASsF,GACtB,OAAOm6B,EACHA,EAAel6B,EAAMC,EAAQq6B,GAC7B76B,EAAMO,EAAMs6B,EAAMr6B,EAAOrK,OAAQ0kC,KAASr6B,M,iCClClD,IAAIhD,EAAI,EAAQ,GACZs9B,EAAS,EAAQ,IAAgCC,MAOrDv9B,EAAE,CAAElI,OAAQ,QAASoB,OAAO,EAAMqH,QANR,EAAQ,IAEd4C,CAAoB,UAIoB,CAC1Do6B,MAAO,SAAej6B,GACpB,OAAOg6B,EAAOljC,KAAMkJ,EAAY5K,UAAUC,OAAS,EAAID,UAAU,QAAKN,O,iCCV1E,IAAIqE,EAAO,EAAQ,IACf+gC,EAAgC,EAAQ,KACxChN,EAAW,EAAQ,IACnBiN,EAAoB,EAAQ,IAC5Bz7B,EAAW,EAAQ,IACnBxE,EAAW,EAAQ,IACnB0E,EAAyB,EAAQ,IACjCw7B,EAAY,EAAQ,IACpBC,EAAqB,EAAQ,KAC7BC,EAAa,EAAQ,KAGzBJ,EAA8B,SAAS,SAAUK,EAAOC,EAAaC,GACnE,MAAO,CAGL,SAAeC,GACb,IAAIzN,EAAIruB,EAAuB9H,MAC3B6jC,EAAUR,EAAkBO,QAAU5lC,EAAYslC,EAAUM,EAAQH,GACxE,OAAOI,EAAUxhC,EAAKwhC,EAASD,EAAQzN,GAAK,IAAI5nB,OAAOq1B,GAAQH,GAAOrgC,EAAS+yB,KAIjF,SAAUnB,GACR,IAAI8O,EAAK1N,EAASp2B,MACdg4B,EAAI50B,EAAS4xB,GACb+O,EAAMJ,EAAgBD,EAAaI,EAAI9L,GAE3C,GAAI+L,EAAIv4B,KAAM,OAAOu4B,EAAI1kC,MAEzB,IAAKykC,EAAGnL,OAAQ,OAAO6K,EAAWM,EAAI9L,GAEtC,IAAIgM,EAAcF,EAAGG,QACrBH,EAAGI,UAAY,EAIf,IAHA,IAEI/+B,EAFAg/B,EAAI,GACJpjB,EAAI,EAEgC,QAAhC5b,EAASq+B,EAAWM,EAAI9L,KAAc,CAC5C,IAAIoM,EAAWhhC,EAAS+B,EAAO,IAC/Bg/B,EAAEpjB,GAAKqjB,EACU,KAAbA,IAAiBN,EAAGI,UAAYX,EAAmBvL,EAAGpwB,EAASk8B,EAAGI,WAAYF,IAClFjjB,IAEF,OAAa,IAANA,EAAU,KAAOojB,Q,oBC5CtB,EAAQ,EAIhBv+B,CAAE,CAAElI,OAAQ,SAAUwI,MAAM,EAAMm+B,iBAAiB,EAAMC,aAAa,GAAQ,CAC5EC,iBAAkB,oB,oBCLpB,IAAI58B,EAAc,EAAQ,GAI1BjE,EAAOC,QAAUgE,EAAY,GAAI68B,U,iCCHjC,IAAI5I,EAAsB,EAAQ,IAC9Bx4B,EAAW,EAAQ,IACnB0E,EAAyB,EAAQ,IAEjCi0B,EAAcC,WAIlBt4B,EAAOC,QAAU,SAAgB8gC,GAC/B,IAAI/+B,EAAMtC,EAAS0E,EAAuB9H,OACtCmF,EAAS,GACT4b,EAAI6a,EAAoB6I,GAC5B,GAAI1jB,EAAI,GAAKA,GAAK2jB,IAAU,MAAM3I,EAAY,+BAC9C,KAAMhb,EAAI,GAAIA,KAAO,KAAOrb,GAAOA,GAAc,EAAJqb,IAAO5b,GAAUO,GAC9D,OAAOP,I,iCCdT,IAAIS,EAAI,EAAQ,GACZ++B,EAAmB,EAAQ,KAC3BlO,EAAY,EAAQ,IACpBC,EAAW,EAAQ,IACnBC,EAAoB,EAAQ,IAC5BiO,EAAqB,EAAQ,KAIjCh/B,EAAE,CAAElI,OAAQ,QAASoB,OAAO,GAAQ,CAClC+lC,QAAS,SAAiB37B,GACxB,IAEIi7B,EAFAhO,EAAIO,EAAS12B,MACb8kC,EAAYnO,EAAkBR,GAKlC,OAHAM,EAAUvtB,IACVi7B,EAAIS,EAAmBzO,EAAG,IACxB53B,OAASomC,EAAiBR,EAAGhO,EAAGA,EAAG2O,EAAW,EAAG,EAAG57B,EAAY5K,UAAUC,OAAS,EAAID,UAAU,QAAKN,GACjGmmC,M,oBChBY,EAAQ,IAG/BY,CAAiB,Y,iCCJjB,IAAIn/B,EAAI,EAAQ,GACZo/B,EAAa,EAAQ,IAAgCC,UACrDF,EAAmB,EAAQ,KAG3BG,GAAc,EADD,aAKC,IAAI3nC,MAAM,GAAa,WAAE,WAAc2nC,GAAc,KAIvEt/B,EAAE,CAAElI,OAAQ,QAASoB,OAAO,EAAMqH,OAAQ++B,GAAe,CACvDD,UAAW,SAAmB/7B,GAC5B,OAAO87B,EAAWhlC,KAAMkJ,EAAY5K,UAAUC,OAAS,EAAID,UAAU,QAAKN,MAK9E+mC,EAhBiB,c,oBCLjB,IAAII,EAAS,EAAQ,IAErBzhC,EAAOC,QAAU,SAAUxE,GACzB,YAAsBnB,IAAfmB,IAA6BgmC,EAAOhmC,EAAY,UAAYgmC,EAAOhmC,EAAY,e,iCCFxF,IAAIyG,EAAI,EAAQ,GACZ6zB,EAAa,EAAQ,KAKzB7zB,EAAE,CAAElI,OAAQ,SAAUoB,OAAO,EAAMqH,OAJN,EAAQ,IAIMuzB,CAAuB,UAAY,CAC5E0L,MAAO,WACL,OAAO3L,EAAWz5B,KAAM,KAAM,GAAI,Q,oBCRtC,EAAQ,M,iCCAR,IA6BIqlC,EA7BAC,EAAW,EAAQ,KACnB3M,EAAS,EAAQ,GACjBhxB,EAAc,EAAQ,GACtB49B,EAAiB,EAAQ,KACzBC,EAAyB,EAAQ,KACjCC,EAAa,EAAQ,KACrBC,EAAiB,EAAQ,KACzBpiC,EAAW,EAAQ,IACnBqiC,EAAuB,EAAQ,IAA+BC,QAC9D//B,EAAQ,EAAQ,GAChBggC,EAAkB,EAAQ,KAE1BC,EAAU9mC,OAEV6C,EAAUtE,MAAMsE,QAEhBkkC,EAAeD,EAAQC,aAEvBC,EAAWF,EAAQE,SAEnBC,EAAWH,EAAQG,SAEnBxc,EAASqc,EAAQrc,OAEjByc,EAAOJ,EAAQI,KAEfC,EAAS,GACTC,EAAS,GACTC,GAAW1N,EAAO2N,eAAiB,kBAAmB3N,EAGtD4N,EAAU,SAAUC,GACtB,OAAO,WACL,OAAOA,EAAKxmC,KAAM1B,UAAUC,OAASD,UAAU,QAAKN,KAMpDyoC,EAAWhB,EAAW,UAAWc,EAASb,GAC1CgB,EAAmBD,EAAS1nC,UAC5B4nC,EAAYh/B,EAAY++B,EAAiBhnC,KAc7C,GAAImmC,EAAiB,GAAIQ,EAAS,CAChChB,EAAkBK,EAAekB,eAAeL,EAAS,WAAW,GACpEf,EAAuBqB,SACvB,IAAIC,EAAen/B,EAAY++B,EAAyB,QACpDK,EAAYp/B,EAAY++B,EAAiBM,KACzCC,EAAYt/B,EAAY++B,EAAiBjnC,KAC7C8lC,EAAemB,EAAkB,CAC/B,OAAU,SAAU/oC,GAClB,GAAI2F,EAAS3F,KAASooC,EAAapoC,GAAM,CACvC,IAAIupC,EAAQvB,EAAqB3lC,MAEjC,OADKknC,EAAMC,SAAQD,EAAMC,OAAS,IAAI9B,GAC/ByB,EAAa9mC,KAAMrC,IAAQupC,EAAMC,OAAe,OAAExpC,GACzD,OAAOmpC,EAAa9mC,KAAMrC,IAE9BqpC,IAAK,SAAarpC,GAChB,GAAI2F,EAAS3F,KAASooC,EAAapoC,GAAM,CACvC,IAAIupC,EAAQvB,EAAqB3lC,MAEjC,OADKknC,EAAMC,SAAQD,EAAMC,OAAS,IAAI9B,GAC/B0B,EAAU/mC,KAAMrC,IAAQupC,EAAMC,OAAOH,IAAIrpC,GAChD,OAAOopC,EAAU/mC,KAAMrC,IAE3B8B,IAAK,SAAa9B,GAChB,GAAI2F,EAAS3F,KAASooC,EAAapoC,GAAM,CACvC,IAAIupC,EAAQvB,EAAqB3lC,MAEjC,OADKknC,EAAMC,SAAQD,EAAMC,OAAS,IAAI9B,GAC/B0B,EAAU/mC,KAAMrC,GAAOspC,EAAUjnC,KAAMrC,GAAOupC,EAAMC,OAAO1nC,IAAI9B,GACtE,OAAOspC,EAAUjnC,KAAMrC,IAE3B+B,IAAK,SAAa/B,EAAK0B,GACrB,GAAIiE,EAAS3F,KAASooC,EAAapoC,GAAM,CACvC,IAAIupC,EAAQvB,EAAqB3lC,MAC5BknC,EAAMC,SAAQD,EAAMC,OAAS,IAAI9B,GACtC0B,EAAU/mC,KAAMrC,GAAOgpC,EAAU3mC,KAAMrC,EAAK0B,GAAS6nC,EAAMC,OAAOznC,IAAI/B,EAAK0B,QACtEsnC,EAAU3mC,KAAMrC,EAAK0B,GAC5B,OAAOW,aA5CJslC,GAAYz/B,GAAM,WACvB,IAAIuhC,EAAc3d,EAAO,IAEzB,OADAkd,EAAU,IAAIF,EAAYW,EAAa,IAC/BpB,EAASoB,OA8CnB7B,EAAemB,EAAkB,CAC/BhnC,IAAK,SAAa/B,EAAK0B,GACrB,IAAIgoC,EAQJ,OAPIxlC,EAAQlE,KACNqoC,EAASroC,GAAM0pC,EAAsBlB,EAChCF,EAAStoC,KAAM0pC,EAAsBjB,IAEhDO,EAAU3mC,KAAMrC,EAAK0B,GACjBgoC,GAAuBlB,GAAQ1c,EAAO9rB,GACtC0pC,GAAuBjB,GAAQF,EAAKvoC,GACjCqC,S,iCCxGb,IAAI2H,EAAc,EAAQ,GACtB49B,EAAiB,EAAQ,KACzB+B,EAAc,EAAQ,KAAkCA,YACxDC,EAAa,EAAQ,IACrBnR,EAAW,EAAQ,IACnBiN,EAAoB,EAAQ,IAC5B//B,EAAW,EAAQ,IACnBkkC,EAAU,EAAQ,KAClBC,EAAuB,EAAQ,IAC/BtC,EAAS,EAAQ,IACjBuC,EAAsB,EAAQ,IAE9BC,EAAmBD,EAAoBhoC,IACvCkoC,EAAyBF,EAAoBG,UAC7CC,EAAOL,EAAqBK,KAC5B7C,EAAYwC,EAAqBxC,UACjCv3B,EAAS/F,EAAY,GAAG+F,QACxBq6B,EAAK,EAGLC,EAAsB,SAAUd,GAClC,OAAOA,EAAMC,SAAWD,EAAMC,OAAS,IAAIc,IAGzCA,EAAsB,WACxBjoC,KAAKm9B,QAAU,IAGb+K,EAAqB,SAAUC,EAAOxqC,GACxC,OAAOmqC,EAAKK,EAAMhL,SAAS,SAAU92B,GACnC,OAAOA,EAAG,KAAO1I,MAIrBsqC,EAAoBlpC,UAAY,CAC9BU,IAAK,SAAU9B,GACb,IAAIyqC,EAAQF,EAAmBloC,KAAMrC,GACrC,GAAIyqC,EAAO,OAAOA,EAAM,IAE1BpB,IAAK,SAAUrpC,GACb,QAASuqC,EAAmBloC,KAAMrC,IAEpC+B,IAAK,SAAU/B,EAAK0B,GAClB,IAAI+oC,EAAQF,EAAmBloC,KAAMrC,GACjCyqC,EAAOA,EAAM,GAAK/oC,EACjBW,KAAKm9B,QAAQl/B,KAAK,CAACN,EAAK0B,KAE/B,OAAU,SAAU1B,GAClB,IAAIC,EAAQqnC,EAAUjlC,KAAKm9B,SAAS,SAAU92B,GAC5C,OAAOA,EAAG,KAAO1I,KAGnB,OADKC,GAAO8P,EAAO1N,KAAKm9B,QAASv/B,EAAO,MAC9BA,IAId8F,EAAOC,QAAU,CACfijC,eAAgB,SAAUL,EAAS8B,EAAkBC,EAAQC,GAC3D,IAAI5+B,EAAc48B,GAAQ,SAAU59B,EAAM6/B,GACxCjB,EAAW5+B,EAAM8/B,GACjBd,EAAiBh/B,EAAM,CACrBxH,KAAMknC,EACNN,GAAIA,IACJZ,YAAQnpC,IAELqlC,EAAkBmF,IAAWhB,EAAQgB,EAAU7/B,EAAK4/B,GAAQ,CAAE5/B,KAAMA,EAAM+/B,WAAYJ,OAGzFG,EAAY9+B,EAAY5K,UAExB4pC,EAAmBf,EAAuBS,GAE1CO,EAAS,SAAUjgC,EAAMhL,EAAK0B,GAChC,IAAI6nC,EAAQyB,EAAiBhgC,GACzBpJ,EAAO+nC,EAAYlR,EAASz4B,IAAM,GAGtC,OAFa,IAAT4B,EAAeyoC,EAAoBd,GAAOxnC,IAAI/B,EAAK0B,GAClDE,EAAK2nC,EAAMa,IAAM1oC,EACfsJ,GAkDT,OA/CA48B,EAAekD,EAAW,CAIxB,OAAU,SAAU9qC,GAClB,IAAIupC,EAAQyB,EAAiB3oC,MAC7B,IAAKsD,EAAS3F,GAAM,OAAO,EAC3B,IAAI4B,EAAO+nC,EAAY3pC,GACvB,OAAa,IAAT4B,EAAsByoC,EAAoBd,GAAe,OAAEvpC,GACxD4B,GAAQ4lC,EAAO5lC,EAAM2nC,EAAMa,YAAcxoC,EAAK2nC,EAAMa,KAK7Df,IAAK,SAAarpC,GAChB,IAAIupC,EAAQyB,EAAiB3oC,MAC7B,IAAKsD,EAAS3F,GAAM,OAAO,EAC3B,IAAI4B,EAAO+nC,EAAY3pC,GACvB,OAAa,IAAT4B,EAAsByoC,EAAoBd,GAAOF,IAAIrpC,GAClD4B,GAAQ4lC,EAAO5lC,EAAM2nC,EAAMa,OAItCxC,EAAekD,EAAWH,EAAS,CAGjC7oC,IAAK,SAAa9B,GAChB,IAAIupC,EAAQyB,EAAiB3oC,MAC7B,GAAIsD,EAAS3F,GAAM,CACjB,IAAI4B,EAAO+nC,EAAY3pC,GACvB,OAAa,IAAT4B,EAAsByoC,EAAoBd,GAAOznC,IAAI9B,GAClD4B,EAAOA,EAAK2nC,EAAMa,SAAM/pC,IAKnC0B,IAAK,SAAa/B,EAAK0B,GACrB,OAAOupC,EAAO5oC,KAAMrC,EAAK0B,KAEzB,CAGF0tB,IAAK,SAAa1tB,GAChB,OAAOupC,EAAO5oC,KAAMX,GAAO,MAIxBsK,K,oBChIiB,EAAQ,GAIpCk/B,CAAsB,Y,iCCFtB,IAAI1Q,EAAQ,EAAQ,KAChBj1B,EAAO,EAAQ,KACf4lC,EAAQ,EAAQ,KAChBC,EAAc,EAAQ,KAS1B,SAASC,EAAeC,GACtB,IAAI78B,EAAU,IAAI08B,EAAMG,GACpBv/B,EAAWxG,EAAK4lC,EAAM/pC,UAAU2gC,QAAStzB,GAQ7C,OALA+rB,EAAM35B,OAAOkL,EAAUo/B,EAAM/pC,UAAWqN,GAGxC+rB,EAAM35B,OAAOkL,EAAU0C,GAEhB1C,EAIT,IAAIw/B,EAAQF,EAtBG,EAAQ,MAyBvBE,EAAMJ,MAAQA,EAGdI,EAAM9mC,OAAS,SAAgB+mC,GAC7B,OAAOH,EAAeD,EAAYG,EAAM/K,SAAUgL,KAIpDD,EAAMnH,OAAS,EAAQ,KACvBmH,EAAME,YAAc,EAAQ,KAC5BF,EAAMG,SAAW,EAAQ,KAGzBH,EAAMI,IAAM,SAAaC,GACvB,OAAOhiC,QAAQ+hC,IAAIC,IAErBL,EAAMM,OAAS,EAAQ,KAEvB9lC,EAAOC,QAAUulC,EAGjBxlC,EAAOC,QAAQ+D,QAAUwhC,G;;;;;;;AC7CzBxlC,EAAOC,QAAU,SAAmBH,GAClC,OAAc,MAAPA,GAAkC,MAAnBA,EAAI1F,aACY,mBAA7B0F,EAAI1F,YAAYqF,UAA2BK,EAAI1F,YAAYqF,SAASK,K,iCCP/E,IAAI20B,EAAQ,EAAQ,KAChB8G,EAAW,EAAQ,KACnBwK,EAAqB,EAAQ,KAC7BC,EAAkB,EAAQ,KAC1BX,EAAc,EAAQ,KAO1B,SAASD,EAAMK,GACbnpC,KAAKm+B,SAAWgL,EAChBnpC,KAAK2pC,aAAe,CAClBjK,QAAS,IAAI+J,EACbnJ,SAAU,IAAImJ,GASlBX,EAAM/pC,UAAU2gC,QAAU,SAAiBL,GAGnB,iBAAXA,GACTA,EAAS/gC,UAAU,IAAM,IAClBg6B,IAAMh6B,UAAU,GAEvB+gC,EAASA,GAAU,IAGrBA,EAAS0J,EAAY/oC,KAAKm+B,SAAUkB,IAC7BN,OAASM,EAAON,OAASM,EAAON,OAAOl4B,cAAgB,MAG9D,IAAI+iC,EAAQ,CAACF,OAAiB1rC,GAC1BujC,EAAUh6B,QAAQ+3B,QAAQD,GAU9B,IARAr/B,KAAK2pC,aAAajK,QAAQziC,SAAQ,SAAoC4sC,GACpED,EAAM1iC,QAAQ2iC,EAAYC,UAAWD,EAAYE,aAGnD/pC,KAAK2pC,aAAarJ,SAASrjC,SAAQ,SAAkC4sC,GACnED,EAAM3rC,KAAK4rC,EAAYC,UAAWD,EAAYE,aAGzCH,EAAMrrC,QACXgjC,EAAUA,EAAQj6B,KAAKsiC,EAAM/kB,QAAS+kB,EAAM/kB,SAG9C,OAAO0c,GAGTuH,EAAM/pC,UAAUirC,OAAS,SAAgB3K,GAEvC,OADAA,EAAS0J,EAAY/oC,KAAKm+B,SAAUkB,GAC7BJ,EAASI,EAAO/G,IAAK+G,EAAO5xB,OAAQ4xB,EAAO9G,kBAAkB5yB,QAAQ,MAAO,KAIrFwyB,EAAMl7B,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6B8hC,GAE/E+J,EAAM/pC,UAAUggC,GAAU,SAASzG,EAAK+G,GACtC,OAAOr/B,KAAK0/B,QAAQvH,EAAMjzB,MAAMm6B,GAAU,GAAI,CAC5CN,OAAQA,EACRzG,IAAKA,SAKXH,EAAMl7B,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B8hC,GAErE+J,EAAM/pC,UAAUggC,GAAU,SAASzG,EAAK/4B,EAAM8/B,GAC5C,OAAOr/B,KAAK0/B,QAAQvH,EAAMjzB,MAAMm6B,GAAU,GAAI,CAC5CN,OAAQA,EACRzG,IAAKA,EACL/4B,KAAMA,SAKZmE,EAAOC,QAAUmlC,G,iCCnFjB,IAAI3Q,EAAQ,EAAQ,KAEpB,SAASsR,IACPzpC,KAAKiqC,SAAW,GAWlBR,EAAmB1qC,UAAUmrC,IAAM,SAAaJ,EAAWC,GAKzD,OAJA/pC,KAAKiqC,SAAShsC,KAAK,CACjB6rC,UAAWA,EACXC,SAAUA,IAEL/pC,KAAKiqC,SAAS1rC,OAAS,GAQhCkrC,EAAmB1qC,UAAUorC,MAAQ,SAAepC,GAC9C/nC,KAAKiqC,SAASlC,KAChB/nC,KAAKiqC,SAASlC,GAAM,OAYxB0B,EAAmB1qC,UAAU9B,QAAU,SAAiB0D,GACtDw3B,EAAMl7B,QAAQ+C,KAAKiqC,UAAU,SAAwBxO,GACzC,OAANA,GACF96B,EAAG86B,OAKT/3B,EAAOC,QAAU8lC,G,iCCjDjB,IAAItR,EAAQ,EAAQ,KAChBiS,EAAgB,EAAQ,KACxBf,EAAW,EAAQ,KACnBlL,EAAW,EAAQ,KACnBkM,EAAgB,EAAQ,KACxBC,EAAc,EAAQ,KAK1B,SAASC,EAA6BlL,GAChCA,EAAOiC,aACTjC,EAAOiC,YAAYkJ,mBAUvB9mC,EAAOC,QAAU,SAAyB07B,GAkCxC,OAjCAkL,EAA6BlL,GAGzBA,EAAOpF,UAAYoQ,EAAchL,EAAO/G,OAC1C+G,EAAO/G,IAAMgS,EAAYjL,EAAOpF,QAASoF,EAAO/G,MAIlD+G,EAAOpB,QAAUoB,EAAOpB,SAAW,GAGnCoB,EAAO9/B,KAAO6qC,EACZ/K,EAAO9/B,KACP8/B,EAAOpB,QACPoB,EAAOhB,kBAITgB,EAAOpB,QAAU9F,EAAMjzB,MACrBm6B,EAAOpB,QAAQa,QAAU,GACzBO,EAAOpB,QAAQoB,EAAON,SAAW,GACjCM,EAAOpB,SAAW,IAGpB9F,EAAMl7B,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2B8hC,UAClBM,EAAOpB,QAAQc,OAIZM,EAAOnB,SAAWC,EAASD,SAE1BmB,GAAQ/3B,MAAK,SAA6Bg5B,GAUvD,OATAiK,EAA6BlL,GAG7BiB,EAAS/gC,KAAO6qC,EACd9J,EAAS/gC,KACT+gC,EAASrC,QACToB,EAAOf,mBAGFgC,KACN,SAA4BmK,GAc7B,OAbKpB,EAASoB,KACZF,EAA6BlL,GAGzBoL,GAAUA,EAAOnK,WACnBmK,EAAOnK,SAAS/gC,KAAO6qC,EACrBK,EAAOnK,SAAS/gC,KAChBkrC,EAAOnK,SAASrC,QAChBoB,EAAOf,qBAKN/2B,QAAQg4B,OAAOkL,Q,iCCjF1B,IAAItS,EAAQ,EAAQ,KAUpBz0B,EAAOC,QAAU,SAAuBpE,EAAM0+B,EAAShO,GAMrD,OAJAkI,EAAMl7B,QAAQgzB,GAAK,SAAmBtvB,GACpCpB,EAAOoB,EAAGpB,EAAM0+B,MAGX1+B,I,iCChBT,IAAI44B,EAAQ,EAAQ,KAEpBz0B,EAAOC,QAAU,SAA6Bs6B,EAASyM,GACrDvS,EAAMl7B,QAAQghC,GAAS,SAAuB5+B,EAAOT,GAC/CA,IAAS8rC,GAAkB9rC,EAAKi1B,gBAAkB6W,EAAe7W,gBACnEoK,EAAQyM,GAAkBrrC,SACnB4+B,EAAQr/B,S,iCCNrB,IAAIwgC,EAAc,EAAQ,KAS1B17B,EAAOC,QAAU,SAAgB27B,EAASC,EAAQe,GAChD,IAAI1B,EAAiB0B,EAASjB,OAAOT,gBAChCA,GAAkBA,EAAe0B,EAASzB,QAC7CS,EAAQgB,GAERf,EAAOH,EACL,mCAAqCkB,EAASzB,OAC9CyB,EAASjB,OACT,KACAiB,EAASZ,QACTY,M,iCCTN58B,EAAOC,QAAU,SAAsBiK,EAAOyxB,EAAQlM,EAAMuM,EAASY,GA4BnE,OA3BA1yB,EAAMyxB,OAASA,EACXlM,IACFvlB,EAAMulB,KAAOA,GAGfvlB,EAAM8xB,QAAUA,EAChB9xB,EAAM0yB,SAAWA,EACjB1yB,EAAM+8B,cAAe,EAErB/8B,EAAMg9B,OAAS,WACb,MAAO,CAELhJ,QAAS5hC,KAAK4hC,QACdhjC,KAAMoB,KAAKpB,KAEXisC,YAAa7qC,KAAK6qC,YAClB/N,OAAQ98B,KAAK88B,OAEbgO,SAAU9qC,KAAK8qC,SACfC,WAAY/qC,KAAK+qC,WACjBC,aAAchrC,KAAKgrC,aACnBxiB,MAAOxoB,KAAKwoB,MAEZ6W,OAAQr/B,KAAKq/B,OACblM,KAAMnzB,KAAKmzB,OAGRvlB,I,iCCtCT,IAAIuqB,EAAQ,EAAQ,KAIhB8S,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5BvnC,EAAOC,QAAU,SAAsBs6B,GACrC,IACItgC,EACA0F,EACAf,EAHA4oC,EAAS,GAKb,OAAKjN,GAEL9F,EAAMl7B,QAAQghC,EAAQrd,MAAM,OAAO,SAAgB7F,GAKjD,GAJAzY,EAAIyY,EAAK7b,QAAQ,KACjBvB,EAAMw6B,EAAM1yB,KAAKsV,EAAKpG,OAAO,EAAGrS,IAAIuE,cACpCxD,EAAM80B,EAAM1yB,KAAKsV,EAAKpG,OAAOrS,EAAI,IAE7B3E,EAAK,CACP,GAAIutC,EAAOvtC,IAAQstC,EAAkB/rC,QAAQvB,IAAQ,EACnD,OAGAutC,EAAOvtC,GADG,eAARA,GACautC,EAAOvtC,GAAOutC,EAAOvtC,GAAO,IAAIyJ,OAAO,CAAC/D,IAEzC6nC,EAAOvtC,GAAOutC,EAAOvtC,GAAO,KAAO0F,EAAMA,MAKtD6nC,GAnBgBA,I,iCC9BzB,IAAI/S,EAAQ,EAAQ,KAEpBz0B,EAAOC,QACLw0B,EAAMtzB,uBAIJ,WACE,IAEIsmC,EAFAC,EAAO,kBAAkBxX,KAAK9uB,UAAUumC,WACxCC,EAAiBrmC,SAASsmC,cAAc,KAS5C,SAASC,EAAWlT,GAClB,IAAImT,EAAOnT,EAWX,OATI8S,IAEFE,EAAevf,aAAa,OAAQ0f,GACpCA,EAAOH,EAAeG,MAGxBH,EAAevf,aAAa,OAAQ0f,GAG7B,CACLA,KAAMH,EAAeG,KACrBC,SAAUJ,EAAeI,SAAWJ,EAAeI,SAAS/lC,QAAQ,KAAM,IAAM,GAChFgmC,KAAML,EAAeK,KACrB/iC,OAAQ0iC,EAAe1iC,OAAS0iC,EAAe1iC,OAAOjD,QAAQ,MAAO,IAAM,GAC3EimC,KAAMN,EAAeM,KAAON,EAAeM,KAAKjmC,QAAQ,KAAM,IAAM,GACpEkmC,SAAUP,EAAeO,SACzBC,KAAMR,EAAeQ,KACrBC,SAAiD,MAAtCT,EAAeS,SAAS1rC,OAAO,GACxCirC,EAAeS,SACf,IAAMT,EAAeS,UAY3B,OARAZ,EAAYK,EAAWxmC,OAAOkkB,SAASuiB,MAQhC,SAAyBO,GAC9B,IAAId,EAAU/S,EAAMh0B,SAAS6nC,GAAeR,EAAWQ,GAAcA,EACrE,OAAQd,EAAOQ,WAAaP,EAAUO,UAClCR,EAAOS,OAASR,EAAUQ,MAhDlC,GAsDS,WACL,OAAO,I,iCC9Df,IAAIxT,EAAQ,EAAQ,KAEpBz0B,EAAOC,QACLw0B,EAAMtzB,uBAIK,CACLonC,MAAO,SAAertC,EAAMS,EAAO6sC,EAAStpC,EAAMupC,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAOpuC,KAAKW,EAAO,IAAMy5B,mBAAmBh5B,IAExC84B,EAAM/zB,SAAS8nC,IACjBG,EAAOpuC,KAAK,WAAa,IAAIoQ,KAAK69B,GAASI,eAGzCnU,EAAMh0B,SAASvB,IACjBypC,EAAOpuC,KAAK,QAAU2E,GAGpBu1B,EAAMh0B,SAASgoC,IACjBE,EAAOpuC,KAAK,UAAYkuC,IAGX,IAAXC,GACFC,EAAOpuC,KAAK,UAGdgH,SAASonC,OAASA,EAAO16B,KAAK,OAGhCqvB,KAAM,SAAcpiC,GAClB,IAAIiS,EAAQ5L,SAASonC,OAAOx7B,MAAM,IAAItC,OAAO,aAAe3P,EAAO,cACnE,OAAQiS,EAAQ07B,mBAAmB17B,EAAM,IAAM,MAGjDic,OAAQ,SAAgBluB,GACtBoB,KAAKisC,MAAMrtC,EAAM,GAAIyP,KAAKm+B,MAAQ,SAO/B,CACLP,MAAO,aACPjL,KAAM,WAAkB,OAAO,MAC/BlU,OAAQ,e,iCC/ChB,IAAIiV,EAAS,EAAQ,KAQrB,SAASqH,EAAYqD,GACnB,GAAwB,mBAAbA,EACT,MAAM,IAAI7iC,UAAU,gCAGtB,IAAI8iC,EACJ1sC,KAAKuhC,QAAU,IAAIh6B,SAAQ,SAAyB+3B,GAClDoN,EAAiBpN,KAGnB,IAAIqN,EAAQ3sC,KACZysC,GAAS,SAAgB7K,GACnB+K,EAAMlC,SAKVkC,EAAMlC,OAAS,IAAI1I,EAAOH,GAC1B8K,EAAeC,EAAMlC,YAOzBrB,EAAYrqC,UAAUyrC,iBAAmB,WACvC,GAAIxqC,KAAKyqC,OACP,MAAMzqC,KAAKyqC,QAQfrB,EAAYwD,OAAS,WACnB,IAAIpL,EAIJ,MAAO,CACLmL,MAJU,IAAIvD,GAAY,SAAkB7M,GAC5CiF,EAASjF,KAITiF,OAAQA,IAIZ99B,EAAOC,QAAUylC,G,iCClCjB1lC,EAAOC,QAAU,SAAgBkpC,GAC/B,OAAO,SAAc5hC,GACnB,OAAO4hC,EAASprC,MAAM,KAAMwJ,M,oBCxBxB,EAAQ,EAKhBrF,CAAE,CAAElI,OAAQ,SAAUwI,MAAM,GAAQ,CAClCq8B,UALqB,EAAQ,Q,iCCA/B,IAAI38B,EAAI,EAAQ,GACZvD,EAAO,EAAQ,IACfsF,EAAc,EAAQ,GACtBG,EAAyB,EAAQ,IACjCglC,EAAa,EAAQ,GACrBzJ,EAAoB,EAAQ,IAC5B0J,EAAW,EAAQ,KACnB3pC,EAAW,EAAQ,IACnBkgC,EAAY,EAAQ,IACpB0J,EAAiB,EAAQ,KACzBC,EAAkB,EAAQ,KAC1BC,EAAkB,EAAQ,GAC1BllC,EAAU,EAAQ,IAElBmlC,EAAUD,EAAgB,WAC1BtT,EAAahwB,UACb1K,EAAUyI,EAAY,GAAGzI,SACzByG,EAAUgC,EAAY,GAAGhC,SACzBwC,EAAcR,EAAY,GAAGS,OAC7BqJ,EAAMnJ,KAAKmJ,IAEX27B,EAAgB,SAAUpY,EAAQqY,EAAaC,GACjD,OAAIA,EAAYtY,EAAOz2B,QAAgB,EACnB,KAAhB8uC,EAA2BC,EACxBpuC,EAAQ81B,EAAQqY,EAAaC,IAKtC1nC,EAAE,CAAElI,OAAQ,SAAUoB,OAAO,GAAQ,CACnCyuC,WAAY,SAAoBF,EAAaG,GAC3C,IACIC,EAAYC,EAAOC,EAAU3Y,EAAQtsB,EAAcklC,EAAmBC,EAAcC,EAAWC,EAD/F5X,EAAIruB,EAAuB9H,MAE3BowB,EAAW,EACX4d,EAAiB,EACjB7oC,EAAS,GACb,IAAKk+B,EAAkBgK,GAAc,CAEnC,IADAI,EAAaV,EAASM,MAEpBK,EAAQtqC,EAAS0E,EAAuBklC,EAAeK,OACjDnuC,EAAQwuC,EAAO,MAAM,MAAM9T,EAAW,mDAG9C,GADA+T,EAAWrK,EAAU+J,EAAaF,GAEhC,OAAO9qC,EAAKsrC,EAAUN,EAAalX,EAAGqX,GACjC,GAAIxlC,GAAWylC,EACpB,OAAO9nC,EAAQvC,EAAS+yB,GAAIkX,EAAaG,GAU7C,IAPAxY,EAAS5xB,EAAS+yB,GAClBztB,EAAetF,EAASiqC,IACxBO,EAAoBd,EAAWU,MACPA,EAAepqC,EAASoqC,IAChDK,EAAenlC,EAAanK,OAC5BuvC,EAAYr8B,EAAI,EAAGo8B,GACnBzd,EAAWgd,EAAcpY,EAAQtsB,EAAc,IAC1B,IAAd0nB,GACL2d,EAAcH,EACVxqC,EAASoqC,EAAa9kC,EAAc0nB,EAAU4E,IAC9CiY,EAAgBvkC,EAAcssB,EAAQ5E,EAAU,QAAIpyB,EAAWwvC,GACnEroC,GAAUgD,EAAY6sB,EAAQgZ,EAAgB5d,GAAY2d,EAC1DC,EAAiB5d,EAAWyd,EAC5Bzd,EAAWgd,EAAcpY,EAAQtsB,EAAc0nB,EAAW0d,GAK5D,OAHIE,EAAiBhZ,EAAOz2B,SAC1B4G,GAAUgD,EAAY6sB,EAAQgZ,IAEzB7oC,M,6gSCpEXxB,EAAQmpB,OAoTR,SAA0BpnB,GACxB,OAAOA,EAAIC,QAAQ,qBAAqB,SAAS42B,GAC/C,OAAO0R,EAAc1R,IAAMA,MAT/B,IA3SA,IAAI2R,EAAkB,CACpB,CACE1kB,KAAM,IACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,qCACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,OACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,MACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,WACN,CACD6O,KAAM,IACN7O,MAAO,gBACN,CACD6O,KAAM,IACN7O,MAAO,iBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,MACN,CACD6O,KAAM,KACN7O,MAAO,MACN,CACD6O,KAAM,IACN7O,MAAO,mCACN,CACD6O,KAAM,IACN7O,MAAO,UACN,CACD6O,KAAM,IACN7O,MAAO,mBACN,CACD6O,KAAM,IACN7O,MAAO,iBACN,CACD6O,KAAM,IACN7O,MAAO,uBACN,CACD6O,KAAM,IACN7O,MAAO,SACN,CACD6O,KAAM,IACN7O,MAAO,iBACN,CACD6O,KAAM,IACN7O,MAAO,qBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,YACN,CACD6O,KAAM,IACN7O,MAAO,oBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,8CACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,aACN,CACD6O,KAAM,IACN7O,MAAO,SACN,CACD6O,KAAM,IACN7O,MAAO,oBACN,CACD6O,KAAM,IACN7O,MAAO,oBACN,CACD6O,KAAM,IACN7O,MAAO,kBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,qCACN,CACD6O,KAAM,IACN7O,MAAO,WACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,aACN,CACD6O,KAAM,IACN7O,MAAO,QACN,CACD6O,KAAM,IACN7O,MAAO,kBACN,CACD6O,KAAM,IACN7O,MAAO,iBACN,CACD6O,KAAM,IACN7O,MAAO,uCACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,OACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,MACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,aACN,CACD6O,KAAM,IACN7O,MAAO,gBACN,CACD6O,KAAM,IACN7O,MAAO,oBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,MACN,CACD6O,KAAM,IACN7O,MAAO,iCACN,CACD6O,KAAM,IACN7O,MAAO,QACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,MACN7O,MAAO,KACN,CACD6O,KAAM,MACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,kBACN,CACD6O,KAAM,IACN7O,MAAO,kBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,uBACN,CACD6O,KAAM,IACN7O,MAAO,SACN,CACD6O,KAAM,IACN7O,MAAO,iBACN,CACD6O,KAAM,IACN7O,MAAO,uBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,WACN,CACD6O,KAAM,IACN7O,MAAO,sBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,+CACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,cACN,CACD6O,KAAM,IACN7O,MAAO,SACN,CACD6O,KAAM,IACN7O,MAAO,oBACN,CACD6O,KAAM,IACN7O,MAAO,qBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,mBACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,qCACN,CACD6O,KAAM,IACN7O,MAAO,WACN,CACD6O,KAAM,KACN7O,MAAO,KACN,CACD6O,KAAM,IACN7O,MAAO,cACN,CACD6O,KAAM,IACN7O,MAAO,QACN,CACD6O,KAAM,IACN7O,MAAO,mBACN,CACD6O,KAAM,IACN7O,MAAO,kBAIPszB,EAAgB,GACX3rC,EAAI,EAAGA,EAAI4rC,EAAgB3vC,OAAQ+D,GAAK,EAE/C,IADA,IAAIqY,EAAQuzB,EAAgB5rC,GAAGqY,MACtBjC,EAAI,EAAGA,EAAIiC,EAAMpc,OAAQma,GAAK,EACrCu1B,EAActzB,EAAMjC,IAAMw1B,EAAgB5rC,GAAGknB,KAUjD7lB,EAAQuqC,gBAAkBA,EAC1BvqC,EAAQsqC,cAAgBA,G,oBC3TxB,IAAIroC,EAAI,EAAQ,GACZ4hC,EAAU,EAAQ,KAClBvR,EAAiB,EAAQ,IAI7BrwB,EAAE,CAAElI,OAAQ,SAAUwI,MAAM,GAAQ,CAClCioC,YAAa,SAAqB3F,GAChC,IAAIhlC,EAAM,GAIV,OAHAgkC,EAAQgB,GAAU,SAAUzmC,EAAGw1B,GAC7BtB,EAAezyB,EAAKzB,EAAGw1B,KACtB,CAAEmR,YAAY,IACVllC,M,iCCXX,IAAI3B,EAAU,EAAQ,IAClB80B,EAAoB,EAAQ,IAC5ByX,EAA2B,EAAQ,KACnClrC,EAAO,EAAQ,IAIfyhC,EAAmB,SAAUjnC,EAAQoJ,EAAU8lC,EAAQ9H,EAAW5iB,EAAOmsB,EAAOC,EAAQ9oC,GAM1F,IALA,IAGI+oC,EAASC,EAHTC,EAAcvsB,EACdwsB,EAAc,EACdC,IAAQL,GAASprC,EAAKorC,EAAQ9oC,GAG3BkpC,EAAc5J,GACf4J,KAAe9B,IACjB2B,EAAUI,EAAQA,EAAM/B,EAAO8B,GAAcA,EAAa5nC,GAAY8lC,EAAO8B,GAEzEL,EAAQ,GAAKxsC,EAAQ0sC,IACvBC,EAAa7X,EAAkB4X,GAC/BE,EAAc9J,EAAiBjnC,EAAQoJ,EAAUynC,EAASC,EAAYC,EAAaJ,EAAQ,GAAK,IAEhGD,EAAyBK,EAAc,GACvC/wC,EAAO+wC,GAAeF,GAGxBE,KAEFC,IAEF,OAAOD,GAGT/qC,EAAOC,QAAUghC,G","file":"175.349f513afb9afc2f6fc2.js","sourcesContent":["/**\n * vue-class-component v7.1.0\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nvar reflectionIsSupported = typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey\n ? Reflect.getOwnMetadataKeys(from, propertyKey)\n : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey\n ? Reflect.getOwnMetadata(metaKey, from, propertyKey)\n : Reflect.getOwnMetadata(metaKey, from);\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n }\n else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = { __proto__: [] };\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function'\n ? target\n : target.constructor;\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n if (typeof index !== 'number') {\n index = undefined;\n }\n Ctor.__decorators__.push(function (options) { return factory(options, key, index); });\n };\n}\nfunction mixins() {\n var Ctors = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Ctors[_i] = arguments[_i];\n }\n return Vue.extend({ mixins: Ctors });\n}\nfunction isPrimitive(value) {\n var type = typeof value;\n return value == null || (type !== 'object' && type !== 'function');\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n Component.prototype._init = function () {\n var _this = this;\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm);\n // 2.2.0 compat (props are no longer exposed as self properties)\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n keys.forEach(function (key) {\n if (key.charAt(0) !== '_') {\n Object.defineProperty(_this, key, {\n get: function () { return vm[key]; },\n set: function (value) { vm[key] = value; },\n configurable: true\n });\n }\n });\n };\n // should be acquired class property values\n var data = new Component();\n // restore original _init to avoid memory leak (#209)\n Component.prototype._init = originalInit;\n // create plain data object\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' +\n 'when class property is used.');\n }\n }\n return plainData;\n}\n\nvar $internalHooks = [\n 'data',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeDestroy',\n 'destroyed',\n 'beforeUpdate',\n 'updated',\n 'activated',\n 'deactivated',\n 'render',\n 'errorCaptured',\n 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component, options) {\n if (options === void 0) { options = {}; }\n options.name = options.name || Component._componentTag || Component.name;\n // prototype props.\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n }\n // hooks\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n }\n else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function () {\n var _a;\n return _a = {}, _a[key] = descriptor.value, _a;\n }\n });\n }\n }\n else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function () {\n return collectDataFromConstructor(this, Component);\n }\n });\n // decorate options\n var decorators = Component.__decorators__;\n if (decorators) {\n decorators.forEach(function (fn) { return fn(options); });\n delete Component.__decorators__;\n }\n // find super\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue\n ? superProto.constructor\n : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n if (reflectionIsSupported) {\n copyReflectionMetadata(Extended, Component);\n }\n return Extended;\n}\nvar reservedPropertyNames = [\n // Unique id\n 'cid',\n // Super Vue constructor\n 'super',\n // Component options that will be used by the component\n 'options',\n 'superOptions',\n 'extendOptions',\n 'sealedOptions',\n // Private assets\n 'component',\n 'directive',\n 'filter'\n];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n }\n // Some browsers does not allow reconfigure built-in properties\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(Original, key);\n // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n if (!isPrimitive(descriptor.value) &&\n superDescriptor &&\n superDescriptor.value === descriptor.value) {\n return;\n }\n }\n // Warn if the users manually declare reserved properties\n if (process.env.NODE_ENV !== 'production' &&\n reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\" + key + \"' declared on class '\" + Original.name + \"' \" +\n 'conflicts with reserved property name of Vue internal. ' +\n 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, keys);\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","/** vue-property-decorator verson 8.2.1 MIT LICENSE copyright 2019 kaorun343 */\n/// \n'use strict';\nimport Vue from 'vue';\nimport Component, { createDecorator, mixins } from 'vue-class-component';\nexport { Component, Vue, mixins as Mixins };\n/** Used for keying reactive provide/inject properties */\nvar reactiveInjectKey = '__reactiveInject__';\n/**\n * decorator of an inject\n * @param from key\n * @return PropertyDecorator\n */\nexport function Inject(options) {\n return createDecorator(function (componentOptions, key) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject[key] = options || key;\n }\n });\n}\n/**\n * decorator of a reactive inject\n * @param from key\n * @return PropertyDecorator\n */\nexport function InjectReactive(options) {\n return createDecorator(function (componentOptions, key) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n var fromKey_1 = !!options ? options.from || options : key;\n var defaultVal_1 = (!!options && options.default) || undefined;\n if (!componentOptions.computed)\n componentOptions.computed = {};\n componentOptions.computed[key] = function () {\n var obj = this[reactiveInjectKey];\n return obj ? obj[fromKey_1] : defaultVal_1;\n };\n componentOptions.inject[reactiveInjectKey] = reactiveInjectKey;\n }\n });\n}\n/**\n * decorator of a provide\n * @param key key\n * @return PropertyDecorator | void\n */\nexport function Provide(key) {\n return createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n if (typeof provide !== 'function' || !provide.managed) {\n var original_1 = componentOptions.provide;\n provide = componentOptions.provide = function () {\n var rv = Object.create((typeof original_1 === 'function' ? original_1.call(this) : original_1) ||\n null);\n for (var i in provide.managed)\n rv[provide.managed[i]] = this[i];\n return rv;\n };\n provide.managed = {};\n }\n provide.managed[k] = key || k;\n });\n}\n/**\n * decorator of a reactive provide\n * @param key key\n * @return PropertyDecorator | void\n */\nexport function ProvideReactive(key) {\n return createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n if (typeof provide !== 'function' || !provide.managed) {\n var original_2 = componentOptions.provide;\n provide = componentOptions.provide = function () {\n var _this = this;\n var rv = Object.create((typeof original_2 === 'function' ? original_2.call(this) : original_2) ||\n null);\n rv[reactiveInjectKey] = {};\n var _loop_1 = function (i) {\n rv[provide.managed[i]] = this_1[i]; // Duplicates the behavior of `@Provide`\n Object.defineProperty(rv[reactiveInjectKey], provide.managed[i], {\n enumerable: true,\n get: function () { return _this[i]; },\n });\n };\n var this_1 = this;\n for (var i in provide.managed) {\n _loop_1(i);\n }\n return rv;\n };\n provide.managed = {};\n }\n provide.managed[k] = key || k;\n });\n}\n/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\nvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\nfunction applyMetadata(options, target, key) {\n if (reflectMetadataIsSupported) {\n if (!Array.isArray(options) &&\n typeof options !== 'function' &&\n typeof options.type === 'undefined') {\n options.type = Reflect.getMetadata('design:type', target, key);\n }\n }\n}\n/**\n * decorator of model\n * @param event event name\n * @param options options\n * @return PropertyDecorator\n */\nexport function Model(event, options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n componentOptions.model = { prop: k, event: event || k };\n })(target, key);\n };\n}\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nexport function Prop(options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\n/**\n * decorator of a synced prop\n * @param propName the name to interface with from outside, must be different from decorated property\n * @param options the options for the synced prop\n * @return PropertyDecorator | void\n */\nexport function PropSync(propName, options) {\n if (options === void 0) { options = {}; }\n // @ts-ignore\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[propName] = options;\n (componentOptions.computed || (componentOptions.computed = {}))[k] = {\n get: function () {\n return this[propName];\n },\n set: function (value) {\n // @ts-ignore\n this.$emit(\"update:\" + propName, value);\n },\n };\n })(target, key);\n };\n}\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nexport function Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n }\n else if (typeof watch[path] === 'undefined') {\n watch[path] = [];\n }\n watch[path].push({ handler: handler, deep: deep, immediate: immediate });\n });\n}\n// Code copied from Vue/src/shared/util.js\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };\n/**\n * decorator of an event-emitter function\n * @param event The name of the event\n * @return MethodDecorator\n */\nexport function Emit(event) {\n return function (_target, key, descriptor) {\n key = hyphenate(key);\n var original = descriptor.value;\n descriptor.value = function emitter() {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var emit = function (returnValue) {\n if (returnValue !== undefined)\n args.unshift(returnValue);\n _this.$emit.apply(_this, [event || key].concat(args));\n };\n var returnValue = original.apply(this, args);\n if (isPromise(returnValue)) {\n returnValue.then(function (returnValue) {\n emit(returnValue);\n });\n }\n else {\n emit(returnValue);\n }\n return returnValue;\n };\n };\n}\n/**\n * decorator of a ref prop\n * @param refKey the ref key defined in template\n */\nexport function Ref(refKey) {\n return createDecorator(function (options, key) {\n options.computed = options.computed || {};\n options.computed[key] = {\n cache: false,\n get: function () {\n return this.$refs[refKey || key];\n },\n };\n });\n}\nfunction isPromise(obj) {\n return obj instanceof Promise || (obj && typeof obj.then === 'function');\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","/** vue-property-decorator verson 7.3.0 MIT LICENSE copyright 2018 kaorun343 */\n'use strict';\nimport Vue from 'vue';\nimport Component, { createDecorator, mixins } from 'vue-class-component';\nexport { Component, Vue, mixins as Mixins };\n/**\n * decorator of an inject\n * @param from key\n * @return PropertyDecorator\n */\nexport function Inject(options) {\n return createDecorator(function (componentOptions, key) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject[key] = options || key;\n }\n });\n}\n/**\n * decorator of a provide\n * @param key key\n * @return PropertyDecorator | void\n */\nexport function Provide(key) {\n return createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n if (typeof provide !== 'function' || !provide.managed) {\n var original_1 = componentOptions.provide;\n provide = componentOptions.provide = function () {\n var rv = Object.create((typeof original_1 === 'function' ? original_1.call(this) : original_1) || null);\n for (var i in provide.managed)\n rv[provide.managed[i]] = this[i];\n return rv;\n };\n provide.managed = {};\n }\n provide.managed[k] = key || k;\n });\n}\n/**\n * decorator of model\n * @param event event name\n * @param options options\n * @return PropertyDecorator\n */\nexport function Model(event, options) {\n if (options === void 0) { options = {}; }\n return createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n componentOptions.model = { prop: k, event: event || k };\n });\n}\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nexport function Prop(options) {\n if (options === void 0) { options = {}; }\n return createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n });\n}\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nexport function Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n }\n else if (typeof watch[path] === 'undefined') {\n watch[path] = [];\n }\n watch[path].push({ handler: handler, deep: deep, immediate: immediate });\n });\n}\n// Code copied from Vue/src/shared/util.js\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };\n/**\n * decorator of an event-emitter function\n * @param event The name of the event\n * @return MethodDecorator\n */\nexport function Emit(event) {\n return function (_target, key, descriptor) {\n key = hyphenate(key);\n var original = descriptor.value;\n descriptor.value = function emitter() {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var emit = function (returnValue) {\n if (returnValue !== undefined)\n args.unshift(returnValue);\n _this.$emit.apply(_this, [event || key].concat(args));\n };\n var returnValue = original.apply(this, args);\n if (isPromise(returnValue)) {\n returnValue.then(function (returnValue) {\n emit(returnValue);\n });\n }\n else {\n emit(returnValue);\n }\n };\n };\n}\nfunction isPromise(obj) {\n return obj instanceof Promise || (obj && typeof obj.then === 'function');\n}\n","/**\n * vue-class-component v6.3.2\n * (c) 2015-present Evan You\n * @license MIT\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nvar reflectionIsSupported = typeof Reflect !== 'undefined' && Reflect.defineMetadata;\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey\n ? Reflect.getOwnMetadataKeys(from, propertyKey)\n : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey\n ? Reflect.getOwnMetadata(metaKey, from, propertyKey)\n : Reflect.getOwnMetadata(metaKey, from);\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n }\n else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = { __proto__: [] };\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function'\n ? target\n : target.constructor;\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n if (typeof index !== 'number') {\n index = undefined;\n }\n Ctor.__decorators__.push(function (options) { return factory(options, key, index); });\n };\n}\nfunction mixins() {\n var Ctors = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Ctors[_i] = arguments[_i];\n }\n return Vue.extend({ mixins: Ctors });\n}\nfunction isPrimitive(value) {\n var type = typeof value;\n return value == null || (type !== 'object' && type !== 'function');\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n Component.prototype._init = function () {\n var _this = this;\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm);\n // 2.2.0 compat (props are no longer exposed as self properties)\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n keys.forEach(function (key) {\n if (key.charAt(0) !== '_') {\n Object.defineProperty(_this, key, {\n get: function () { return vm[key]; },\n set: function (value) { vm[key] = value; },\n configurable: true\n });\n }\n });\n };\n // should be acquired class property values\n var data = new Component();\n // restore original _init to avoid memory leak (#209)\n Component.prototype._init = originalInit;\n // create plain data object\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' +\n 'when class property is used.');\n }\n }\n return plainData;\n}\n\nvar $internalHooks = [\n 'data',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeDestroy',\n 'destroyed',\n 'beforeUpdate',\n 'updated',\n 'activated',\n 'deactivated',\n 'render',\n 'errorCaptured' // 2.5\n];\nfunction componentFactory(Component, options) {\n if (options === void 0) { options = {}; }\n options.name = options.name || Component._componentTag || Component.name;\n // prototype props.\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n }\n // hooks\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n }\n else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function () {\n var _a;\n return _a = {}, _a[key] = descriptor.value, _a;\n }\n });\n }\n }\n else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function () {\n return collectDataFromConstructor(this, Component);\n }\n });\n // decorate options\n var decorators = Component.__decorators__;\n if (decorators) {\n decorators.forEach(function (fn) { return fn(options); });\n delete Component.__decorators__;\n }\n // find super\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue\n ? superProto.constructor\n : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n if (reflectionIsSupported) {\n copyReflectionMetadata(Extended, Component);\n }\n return Extended;\n}\nvar reservedPropertyNames = [\n // Unique id\n 'cid',\n // Super Vue constructor\n 'super',\n // Component options that will be used by the component\n 'options',\n 'superOptions',\n 'extendOptions',\n 'sealedOptions',\n // Private assets\n 'component',\n 'directive',\n 'filter'\n];\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // `prototype` should not be overwritten\n if (key === 'prototype') {\n return;\n }\n // Some browsers does not allow reconfigure built-in properties\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(Original, key);\n // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n if (!isPrimitive(descriptor.value) &&\n superDescriptor &&\n superDescriptor.value === descriptor.value) {\n return;\n }\n }\n // Warn if the users manually declare reserved properties\n if (process.env.NODE_ENV !== 'production' &&\n reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\" + key + \"' declared on class '\" + Original.name + \"' \" +\n 'conflicts with reserved property name of Vue internal. ' +\n 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, keys);\n};\n\nexports.default = Component;\nexports.createDecorator = createDecorator;\nexports.mixins = mixins;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('./empty')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', './empty'], factory) :\n\t(factory((global.jsondiffpatch = {}),global.chalk));\n}(this, (function (exports,chalk) { 'use strict';\n\nchalk = chalk && chalk.hasOwnProperty('default') ? chalk['default'] : chalk;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n\n\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\nvar Processor = function () {\n function Processor(options) {\n classCallCheck(this, Processor);\n\n this.selfOptions = options || {};\n this.pipes = {};\n }\n\n createClass(Processor, [{\n key: 'options',\n value: function options(_options) {\n if (_options) {\n this.selfOptions = _options;\n }\n return this.selfOptions;\n }\n }, {\n key: 'pipe',\n value: function pipe(name, pipeArg) {\n var pipe = pipeArg;\n if (typeof name === 'string') {\n if (typeof pipe === 'undefined') {\n return this.pipes[name];\n } else {\n this.pipes[name] = pipe;\n }\n }\n if (name && name.name) {\n pipe = name;\n if (pipe.processor === this) {\n return pipe;\n }\n this.pipes[pipe.name] = pipe;\n }\n pipe.processor = this;\n return pipe;\n }\n }, {\n key: 'process',\n value: function process(input, pipe) {\n var context = input;\n context.options = this.options();\n var nextPipe = pipe || input.pipe || 'default';\n var lastPipe = void 0;\n var lastContext = void 0;\n while (nextPipe) {\n if (typeof context.nextAfterChildren !== 'undefined') {\n // children processed and coming back to parent\n context.next = context.nextAfterChildren;\n context.nextAfterChildren = null;\n }\n\n if (typeof nextPipe === 'string') {\n nextPipe = this.pipe(nextPipe);\n }\n nextPipe.process(context);\n lastContext = context;\n lastPipe = nextPipe;\n nextPipe = null;\n if (context) {\n if (context.next) {\n context = context.next;\n nextPipe = lastContext.nextPipe || context.pipe || lastPipe;\n }\n }\n }\n return context.hasResult ? context.result : undefined;\n }\n }]);\n return Processor;\n}();\n\nvar Pipe = function () {\n function Pipe(name) {\n classCallCheck(this, Pipe);\n\n this.name = name;\n this.filters = [];\n }\n\n createClass(Pipe, [{\n key: 'process',\n value: function process(input) {\n if (!this.processor) {\n throw new Error('add this pipe to a processor before using it');\n }\n var debug = this.debug;\n var length = this.filters.length;\n var context = input;\n for (var index = 0; index < length; index++) {\n var filter = this.filters[index];\n if (debug) {\n this.log('filter: ' + filter.filterName);\n }\n filter(context);\n if ((typeof context === 'undefined' ? 'undefined' : _typeof(context)) === 'object' && context.exiting) {\n context.exiting = false;\n break;\n }\n }\n if (!context.next && this.resultCheck) {\n this.resultCheck(context);\n }\n }\n }, {\n key: 'log',\n value: function log(msg) {\n console.log('[jsondiffpatch] ' + this.name + ' pipe, ' + msg);\n }\n }, {\n key: 'append',\n value: function append() {\n var _filters;\n\n (_filters = this.filters).push.apply(_filters, arguments);\n return this;\n }\n }, {\n key: 'prepend',\n value: function prepend() {\n var _filters2;\n\n (_filters2 = this.filters).unshift.apply(_filters2, arguments);\n return this;\n }\n }, {\n key: 'indexOf',\n value: function indexOf(filterName) {\n if (!filterName) {\n throw new Error('a filter name is required');\n }\n for (var index = 0; index < this.filters.length; index++) {\n var filter = this.filters[index];\n if (filter.filterName === filterName) {\n return index;\n }\n }\n throw new Error('filter not found: ' + filterName);\n }\n }, {\n key: 'list',\n value: function list() {\n return this.filters.map(function (f) {\n return f.filterName;\n });\n }\n }, {\n key: 'after',\n value: function after(filterName) {\n var index = this.indexOf(filterName);\n var params = Array.prototype.slice.call(arguments, 1);\n if (!params.length) {\n throw new Error('a filter is required');\n }\n params.unshift(index + 1, 0);\n Array.prototype.splice.apply(this.filters, params);\n return this;\n }\n }, {\n key: 'before',\n value: function before(filterName) {\n var index = this.indexOf(filterName);\n var params = Array.prototype.slice.call(arguments, 1);\n if (!params.length) {\n throw new Error('a filter is required');\n }\n params.unshift(index, 0);\n Array.prototype.splice.apply(this.filters, params);\n return this;\n }\n }, {\n key: 'replace',\n value: function replace(filterName) {\n var index = this.indexOf(filterName);\n var params = Array.prototype.slice.call(arguments, 1);\n if (!params.length) {\n throw new Error('a filter is required');\n }\n params.unshift(index, 1);\n Array.prototype.splice.apply(this.filters, params);\n return this;\n }\n }, {\n key: 'remove',\n value: function remove(filterName) {\n var index = this.indexOf(filterName);\n this.filters.splice(index, 1);\n return this;\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.filters.length = 0;\n return this;\n }\n }, {\n key: 'shouldHaveResult',\n value: function shouldHaveResult(should) {\n if (should === false) {\n this.resultCheck = null;\n return;\n }\n if (this.resultCheck) {\n return;\n }\n var pipe = this;\n this.resultCheck = function (context) {\n if (!context.hasResult) {\n console.log(context);\n var error = new Error(pipe.name + ' failed');\n error.noResult = true;\n throw error;\n }\n };\n return this;\n }\n }]);\n return Pipe;\n}();\n\nvar Context = function () {\n function Context() {\n classCallCheck(this, Context);\n }\n\n createClass(Context, [{\n key: 'setResult',\n value: function setResult(result) {\n this.result = result;\n this.hasResult = true;\n return this;\n }\n }, {\n key: 'exit',\n value: function exit() {\n this.exiting = true;\n return this;\n }\n }, {\n key: 'switchTo',\n value: function switchTo(next, pipe) {\n if (typeof next === 'string' || next instanceof Pipe) {\n this.nextPipe = next;\n } else {\n this.next = next;\n if (pipe) {\n this.nextPipe = pipe;\n }\n }\n return this;\n }\n }, {\n key: 'push',\n value: function push(child, name) {\n child.parent = this;\n if (typeof name !== 'undefined') {\n child.childName = name;\n }\n child.root = this.root || this;\n child.options = child.options || this.options;\n if (!this.children) {\n this.children = [child];\n this.nextAfterChildren = this.next || null;\n this.next = child;\n } else {\n this.children[this.children.length - 1].next = child;\n this.children.push(child);\n }\n child.next = this;\n return this;\n }\n }]);\n return Context;\n}();\n\nvar isArray = typeof Array.isArray === 'function' ? Array.isArray : function (a) {\n return a instanceof Array;\n};\n\nfunction cloneRegExp(re) {\n var regexMatch = /^\\/(.*)\\/([gimyu]*)$/.exec(re.toString());\n return new RegExp(regexMatch[1], regexMatch[2]);\n}\n\nfunction clone(arg) {\n if ((typeof arg === 'undefined' ? 'undefined' : _typeof(arg)) !== 'object') {\n return arg;\n }\n if (arg === null) {\n return null;\n }\n if (isArray(arg)) {\n return arg.map(clone);\n }\n if (arg instanceof Date) {\n return new Date(arg.getTime());\n }\n if (arg instanceof RegExp) {\n return cloneRegExp(arg);\n }\n var cloned = {};\n for (var name in arg) {\n if (Object.prototype.hasOwnProperty.call(arg, name)) {\n cloned[name] = clone(arg[name]);\n }\n }\n return cloned;\n}\n\nvar DiffContext = function (_Context) {\n inherits(DiffContext, _Context);\n\n function DiffContext(left, right) {\n classCallCheck(this, DiffContext);\n\n var _this = possibleConstructorReturn(this, (DiffContext.__proto__ || Object.getPrototypeOf(DiffContext)).call(this));\n\n _this.left = left;\n _this.right = right;\n _this.pipe = 'diff';\n return _this;\n }\n\n createClass(DiffContext, [{\n key: 'setResult',\n value: function setResult(result) {\n if (this.options.cloneDiffValues && (typeof result === 'undefined' ? 'undefined' : _typeof(result)) === 'object') {\n var clone$$1 = typeof this.options.cloneDiffValues === 'function' ? this.options.cloneDiffValues : clone;\n if (_typeof(result[0]) === 'object') {\n result[0] = clone$$1(result[0]);\n }\n if (_typeof(result[1]) === 'object') {\n result[1] = clone$$1(result[1]);\n }\n }\n return Context.prototype.setResult.apply(this, arguments);\n }\n }]);\n return DiffContext;\n}(Context);\n\nvar PatchContext = function (_Context) {\n inherits(PatchContext, _Context);\n\n function PatchContext(left, delta) {\n classCallCheck(this, PatchContext);\n\n var _this = possibleConstructorReturn(this, (PatchContext.__proto__ || Object.getPrototypeOf(PatchContext)).call(this));\n\n _this.left = left;\n _this.delta = delta;\n _this.pipe = 'patch';\n return _this;\n }\n\n return PatchContext;\n}(Context);\n\nvar ReverseContext = function (_Context) {\n inherits(ReverseContext, _Context);\n\n function ReverseContext(delta) {\n classCallCheck(this, ReverseContext);\n\n var _this = possibleConstructorReturn(this, (ReverseContext.__proto__ || Object.getPrototypeOf(ReverseContext)).call(this));\n\n _this.delta = delta;\n _this.pipe = 'reverse';\n return _this;\n }\n\n return ReverseContext;\n}(Context);\n\nvar isArray$1 = typeof Array.isArray === 'function' ? Array.isArray : function (a) {\n return a instanceof Array;\n};\n\nvar diffFilter = function trivialMatchesDiffFilter(context) {\n if (context.left === context.right) {\n context.setResult(undefined).exit();\n return;\n }\n if (typeof context.left === 'undefined') {\n if (typeof context.right === 'function') {\n throw new Error('functions are not supported');\n }\n context.setResult([context.right]).exit();\n return;\n }\n if (typeof context.right === 'undefined') {\n context.setResult([context.left, 0, 0]).exit();\n return;\n }\n if (typeof context.left === 'function' || typeof context.right === 'function') {\n throw new Error('functions are not supported');\n }\n context.leftType = context.left === null ? 'null' : _typeof(context.left);\n context.rightType = context.right === null ? 'null' : _typeof(context.right);\n if (context.leftType !== context.rightType) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === 'boolean' || context.leftType === 'number') {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === 'object') {\n context.leftIsArray = isArray$1(context.left);\n }\n if (context.rightType === 'object') {\n context.rightIsArray = isArray$1(context.right);\n }\n if (context.leftIsArray !== context.rightIsArray) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n\n if (context.left instanceof RegExp) {\n if (context.right instanceof RegExp) {\n context.setResult([context.left.toString(), context.right.toString()]).exit();\n } else {\n context.setResult([context.left, context.right]).exit();\n }\n }\n};\ndiffFilter.filterName = 'trivial';\n\nvar patchFilter = function trivialMatchesPatchFilter(context) {\n if (typeof context.delta === 'undefined') {\n context.setResult(context.left).exit();\n return;\n }\n context.nested = !isArray$1(context.delta);\n if (context.nested) {\n return;\n }\n if (context.delta.length === 1) {\n context.setResult(context.delta[0]).exit();\n return;\n }\n if (context.delta.length === 2) {\n if (context.left instanceof RegExp) {\n var regexArgs = /^\\/(.*)\\/([gimyu]+)$/.exec(context.delta[1]);\n if (regexArgs) {\n context.setResult(new RegExp(regexArgs[1], regexArgs[2])).exit();\n return;\n }\n }\n context.setResult(context.delta[1]).exit();\n return;\n }\n if (context.delta.length === 3 && context.delta[2] === 0) {\n context.setResult(undefined).exit();\n }\n};\npatchFilter.filterName = 'trivial';\n\nvar reverseFilter = function trivialReferseFilter(context) {\n if (typeof context.delta === 'undefined') {\n context.setResult(context.delta).exit();\n return;\n }\n context.nested = !isArray$1(context.delta);\n if (context.nested) {\n return;\n }\n if (context.delta.length === 1) {\n context.setResult([context.delta[0], 0, 0]).exit();\n return;\n }\n if (context.delta.length === 2) {\n context.setResult([context.delta[1], context.delta[0]]).exit();\n return;\n }\n if (context.delta.length === 3 && context.delta[2] === 0) {\n context.setResult([context.delta[0]]).exit();\n }\n};\nreverseFilter.filterName = 'trivial';\n\nfunction collectChildrenDiffFilter(context) {\n if (!context || !context.children) {\n return;\n }\n var length = context.children.length;\n var child = void 0;\n var result = context.result;\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n if (typeof child.result === 'undefined') {\n continue;\n }\n result = result || {};\n result[child.childName] = child.result;\n }\n if (result && context.leftIsArray) {\n result._t = 'a';\n }\n context.setResult(result).exit();\n}\ncollectChildrenDiffFilter.filterName = 'collectChildren';\n\nfunction objectsDiffFilter(context) {\n if (context.leftIsArray || context.leftType !== 'object') {\n return;\n }\n\n var name = void 0;\n var child = void 0;\n var propertyFilter = context.options.propertyFilter;\n for (name in context.left) {\n if (!Object.prototype.hasOwnProperty.call(context.left, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n child = new DiffContext(context.left[name], context.right[name]);\n context.push(child, name);\n }\n for (name in context.right) {\n if (!Object.prototype.hasOwnProperty.call(context.right, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n if (typeof context.left[name] === 'undefined') {\n child = new DiffContext(undefined, context.right[name]);\n context.push(child, name);\n }\n }\n\n if (!context.children || context.children.length === 0) {\n context.setResult(undefined).exit();\n return;\n }\n context.exit();\n}\nobjectsDiffFilter.filterName = 'objects';\n\nvar patchFilter$1 = function nestedPatchFilter(context) {\n if (!context.nested) {\n return;\n }\n if (context.delta._t) {\n return;\n }\n var name = void 0;\n var child = void 0;\n for (name in context.delta) {\n child = new PatchContext(context.left[name], context.delta[name]);\n context.push(child, name);\n }\n context.exit();\n};\npatchFilter$1.filterName = 'objects';\n\nvar collectChildrenPatchFilter = function collectChildrenPatchFilter(context) {\n if (!context || !context.children) {\n return;\n }\n if (context.delta._t) {\n return;\n }\n var length = context.children.length;\n var child = void 0;\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n if (Object.prototype.hasOwnProperty.call(context.left, child.childName) && child.result === undefined) {\n delete context.left[child.childName];\n } else if (context.left[child.childName] !== child.result) {\n context.left[child.childName] = child.result;\n }\n }\n context.setResult(context.left).exit();\n};\ncollectChildrenPatchFilter.filterName = 'collectChildren';\n\nvar reverseFilter$1 = function nestedReverseFilter(context) {\n if (!context.nested) {\n return;\n }\n if (context.delta._t) {\n return;\n }\n var name = void 0;\n var child = void 0;\n for (name in context.delta) {\n child = new ReverseContext(context.delta[name]);\n context.push(child, name);\n }\n context.exit();\n};\nreverseFilter$1.filterName = 'objects';\n\nfunction collectChildrenReverseFilter(context) {\n if (!context || !context.children) {\n return;\n }\n if (context.delta._t) {\n return;\n }\n var length = context.children.length;\n var child = void 0;\n var delta = {};\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n if (delta[child.childName] !== child.result) {\n delta[child.childName] = child.result;\n }\n }\n context.setResult(delta).exit();\n}\ncollectChildrenReverseFilter.filterName = 'collectChildren';\n\n/*\n\nLCS implementation that supports arrays or strings\n\nreference: http://en.wikipedia.org/wiki/Longest_common_subsequence_problem\n\n*/\n\nvar defaultMatch = function defaultMatch(array1, array2, index1, index2) {\n return array1[index1] === array2[index2];\n};\n\nvar lengthMatrix = function lengthMatrix(array1, array2, match, context) {\n var len1 = array1.length;\n var len2 = array2.length;\n var x = void 0,\n y = void 0;\n\n // initialize empty matrix of len1+1 x len2+1\n var matrix = [len1 + 1];\n for (x = 0; x < len1 + 1; x++) {\n matrix[x] = [len2 + 1];\n for (y = 0; y < len2 + 1; y++) {\n matrix[x][y] = 0;\n }\n }\n matrix.match = match;\n // save sequence lengths for each coordinate\n for (x = 1; x < len1 + 1; x++) {\n for (y = 1; y < len2 + 1; y++) {\n if (match(array1, array2, x - 1, y - 1, context)) {\n matrix[x][y] = matrix[x - 1][y - 1] + 1;\n } else {\n matrix[x][y] = Math.max(matrix[x - 1][y], matrix[x][y - 1]);\n }\n }\n }\n return matrix;\n};\n\nvar backtrack = function backtrack(matrix, array1, array2, context) {\n var index1 = array1.length;\n var index2 = array2.length;\n var subsequence = {\n sequence: [],\n indices1: [],\n indices2: []\n };\n\n while (index1 !== 0 && index2 !== 0) {\n var sameLetter = matrix.match(array1, array2, index1 - 1, index2 - 1, context);\n if (sameLetter) {\n subsequence.sequence.unshift(array1[index1 - 1]);\n subsequence.indices1.unshift(index1 - 1);\n subsequence.indices2.unshift(index2 - 1);\n --index1;\n --index2;\n } else {\n var valueAtMatrixAbove = matrix[index1][index2 - 1];\n var valueAtMatrixLeft = matrix[index1 - 1][index2];\n if (valueAtMatrixAbove > valueAtMatrixLeft) {\n --index2;\n } else {\n --index1;\n }\n }\n }\n return subsequence;\n};\n\nvar get$1 = function get(array1, array2, match, context) {\n var innerContext = context || {};\n var matrix = lengthMatrix(array1, array2, match || defaultMatch, innerContext);\n var result = backtrack(matrix, array1, array2, innerContext);\n if (typeof array1 === 'string' && typeof array2 === 'string') {\n result.sequence = result.sequence.join('');\n }\n return result;\n};\n\nvar lcs = {\n get: get$1\n};\n\nvar ARRAY_MOVE = 3;\n\nvar isArray$2 = typeof Array.isArray === 'function' ? Array.isArray : function (a) {\n return a instanceof Array;\n};\n\nvar arrayIndexOf = typeof Array.prototype.indexOf === 'function' ? function (array, item) {\n return array.indexOf(item);\n} : function (array, item) {\n var length = array.length;\n for (var i = 0; i < length; i++) {\n if (array[i] === item) {\n return i;\n }\n }\n return -1;\n};\n\nfunction arraysHaveMatchByRef(array1, array2, len1, len2) {\n for (var index1 = 0; index1 < len1; index1++) {\n var val1 = array1[index1];\n for (var index2 = 0; index2 < len2; index2++) {\n var val2 = array2[index2];\n if (index1 !== index2 && val1 === val2) {\n return true;\n }\n }\n }\n}\n\nfunction matchItems(array1, array2, index1, index2, context) {\n var value1 = array1[index1];\n var value2 = array2[index2];\n if (value1 === value2) {\n return true;\n }\n if ((typeof value1 === 'undefined' ? 'undefined' : _typeof(value1)) !== 'object' || (typeof value2 === 'undefined' ? 'undefined' : _typeof(value2)) !== 'object') {\n return false;\n }\n var objectHash = context.objectHash;\n if (!objectHash) {\n // no way to match objects was provided, try match by position\n return context.matchByPosition && index1 === index2;\n }\n var hash1 = void 0;\n var hash2 = void 0;\n if (typeof index1 === 'number') {\n context.hashCache1 = context.hashCache1 || [];\n hash1 = context.hashCache1[index1];\n if (typeof hash1 === 'undefined') {\n context.hashCache1[index1] = hash1 = objectHash(value1, index1);\n }\n } else {\n hash1 = objectHash(value1);\n }\n if (typeof hash1 === 'undefined') {\n return false;\n }\n if (typeof index2 === 'number') {\n context.hashCache2 = context.hashCache2 || [];\n hash2 = context.hashCache2[index2];\n if (typeof hash2 === 'undefined') {\n context.hashCache2[index2] = hash2 = objectHash(value2, index2);\n }\n } else {\n hash2 = objectHash(value2);\n }\n if (typeof hash2 === 'undefined') {\n return false;\n }\n return hash1 === hash2;\n}\n\nvar diffFilter$1 = function arraysDiffFilter(context) {\n if (!context.leftIsArray) {\n return;\n }\n\n var matchContext = {\n objectHash: context.options && context.options.objectHash,\n matchByPosition: context.options && context.options.matchByPosition\n };\n var commonHead = 0;\n var commonTail = 0;\n var index = void 0;\n var index1 = void 0;\n var index2 = void 0;\n var array1 = context.left;\n var array2 = context.right;\n var len1 = array1.length;\n var len2 = array2.length;\n\n var child = void 0;\n\n if (len1 > 0 && len2 > 0 && !matchContext.objectHash && typeof matchContext.matchByPosition !== 'boolean') {\n matchContext.matchByPosition = !arraysHaveMatchByRef(array1, array2, len1, len2);\n }\n\n // separate common head\n while (commonHead < len1 && commonHead < len2 && matchItems(array1, array2, commonHead, commonHead, matchContext)) {\n index = commonHead;\n child = new DiffContext(context.left[index], context.right[index]);\n context.push(child, index);\n commonHead++;\n }\n // separate common tail\n while (commonTail + commonHead < len1 && commonTail + commonHead < len2 && matchItems(array1, array2, len1 - 1 - commonTail, len2 - 1 - commonTail, matchContext)) {\n index1 = len1 - 1 - commonTail;\n index2 = len2 - 1 - commonTail;\n child = new DiffContext(context.left[index1], context.right[index2]);\n context.push(child, index2);\n commonTail++;\n }\n var result = void 0;\n if (commonHead + commonTail === len1) {\n if (len1 === len2) {\n // arrays are identical\n context.setResult(undefined).exit();\n return;\n }\n // trivial case, a block (1 or more consecutive items) was added\n result = result || {\n _t: 'a'\n };\n for (index = commonHead; index < len2 - commonTail; index++) {\n result[index] = [array2[index]];\n }\n context.setResult(result).exit();\n return;\n }\n if (commonHead + commonTail === len2) {\n // trivial case, a block (1 or more consecutive items) was removed\n result = result || {\n _t: 'a'\n };\n for (index = commonHead; index < len1 - commonTail; index++) {\n result['_' + index] = [array1[index], 0, 0];\n }\n context.setResult(result).exit();\n return;\n }\n // reset hash cache\n delete matchContext.hashCache1;\n delete matchContext.hashCache2;\n\n // diff is not trivial, find the LCS (Longest Common Subsequence)\n var trimmed1 = array1.slice(commonHead, len1 - commonTail);\n var trimmed2 = array2.slice(commonHead, len2 - commonTail);\n var seq = lcs.get(trimmed1, trimmed2, matchItems, matchContext);\n var removedItems = [];\n result = result || {\n _t: 'a'\n };\n for (index = commonHead; index < len1 - commonTail; index++) {\n if (arrayIndexOf(seq.indices1, index - commonHead) < 0) {\n // removed\n result['_' + index] = [array1[index], 0, 0];\n removedItems.push(index);\n }\n }\n\n var detectMove = true;\n if (context.options && context.options.arrays && context.options.arrays.detectMove === false) {\n detectMove = false;\n }\n var includeValueOnMove = false;\n if (context.options && context.options.arrays && context.options.arrays.includeValueOnMove) {\n includeValueOnMove = true;\n }\n\n var removedItemsLength = removedItems.length;\n for (index = commonHead; index < len2 - commonTail; index++) {\n var indexOnArray2 = arrayIndexOf(seq.indices2, index - commonHead);\n if (indexOnArray2 < 0) {\n // added, try to match with a removed item and register as position move\n var isMove = false;\n if (detectMove && removedItemsLength > 0) {\n for (var removeItemIndex1 = 0; removeItemIndex1 < removedItemsLength; removeItemIndex1++) {\n index1 = removedItems[removeItemIndex1];\n if (matchItems(trimmed1, trimmed2, index1 - commonHead, index - commonHead, matchContext)) {\n // store position move as: [originalValue, newPosition, ARRAY_MOVE]\n result['_' + index1].splice(1, 2, index, ARRAY_MOVE);\n if (!includeValueOnMove) {\n // don't include moved value on diff, to save bytes\n result['_' + index1][0] = '';\n }\n\n index2 = index;\n child = new DiffContext(context.left[index1], context.right[index2]);\n context.push(child, index2);\n removedItems.splice(removeItemIndex1, 1);\n isMove = true;\n break;\n }\n }\n }\n if (!isMove) {\n // added\n result[index] = [array2[index]];\n }\n } else {\n // match, do inner diff\n index1 = seq.indices1[indexOnArray2] + commonHead;\n index2 = seq.indices2[indexOnArray2] + commonHead;\n child = new DiffContext(context.left[index1], context.right[index2]);\n context.push(child, index2);\n }\n }\n\n context.setResult(result).exit();\n};\ndiffFilter$1.filterName = 'arrays';\n\nvar compare = {\n numerically: function numerically(a, b) {\n return a - b;\n },\n numericallyBy: function numericallyBy(name) {\n return function (a, b) {\n return a[name] - b[name];\n };\n }\n};\n\nvar patchFilter$2 = function nestedPatchFilter(context) {\n if (!context.nested) {\n return;\n }\n if (context.delta._t !== 'a') {\n return;\n }\n var index = void 0;\n var index1 = void 0;\n\n var delta = context.delta;\n var array = context.left;\n\n // first, separate removals, insertions and modifications\n var toRemove = [];\n var toInsert = [];\n var toModify = [];\n for (index in delta) {\n if (index !== '_t') {\n if (index[0] === '_') {\n // removed item from original array\n if (delta[index][2] === 0 || delta[index][2] === ARRAY_MOVE) {\n toRemove.push(parseInt(index.slice(1), 10));\n } else {\n throw new Error('only removal or move can be applied at original array indices,' + (' invalid diff type: ' + delta[index][2]));\n }\n } else {\n if (delta[index].length === 1) {\n // added item at new array\n toInsert.push({\n index: parseInt(index, 10),\n value: delta[index][0]\n });\n } else {\n // modified item at new array\n toModify.push({\n index: parseInt(index, 10),\n delta: delta[index]\n });\n }\n }\n }\n }\n\n // remove items, in reverse order to avoid sawing our own floor\n toRemove = toRemove.sort(compare.numerically);\n for (index = toRemove.length - 1; index >= 0; index--) {\n index1 = toRemove[index];\n var indexDiff = delta['_' + index1];\n var removedValue = array.splice(index1, 1)[0];\n if (indexDiff[2] === ARRAY_MOVE) {\n // reinsert later\n toInsert.push({\n index: indexDiff[1],\n value: removedValue\n });\n }\n }\n\n // insert items, in reverse order to avoid moving our own floor\n toInsert = toInsert.sort(compare.numericallyBy('index'));\n var toInsertLength = toInsert.length;\n for (index = 0; index < toInsertLength; index++) {\n var insertion = toInsert[index];\n array.splice(insertion.index, 0, insertion.value);\n }\n\n // apply modifications\n var toModifyLength = toModify.length;\n var child = void 0;\n if (toModifyLength > 0) {\n for (index = 0; index < toModifyLength; index++) {\n var modification = toModify[index];\n child = new PatchContext(context.left[modification.index], modification.delta);\n context.push(child, modification.index);\n }\n }\n\n if (!context.children) {\n context.setResult(context.left).exit();\n return;\n }\n context.exit();\n};\npatchFilter$2.filterName = 'arrays';\n\nvar collectChildrenPatchFilter$1 = function collectChildrenPatchFilter(context) {\n if (!context || !context.children) {\n return;\n }\n if (context.delta._t !== 'a') {\n return;\n }\n var length = context.children.length;\n var child = void 0;\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n context.left[child.childName] = child.result;\n }\n context.setResult(context.left).exit();\n};\ncollectChildrenPatchFilter$1.filterName = 'arraysCollectChildren';\n\nvar reverseFilter$2 = function arraysReverseFilter(context) {\n if (!context.nested) {\n if (context.delta[2] === ARRAY_MOVE) {\n context.newName = '_' + context.delta[1];\n context.setResult([context.delta[0], parseInt(context.childName.substr(1), 10), ARRAY_MOVE]).exit();\n }\n return;\n }\n if (context.delta._t !== 'a') {\n return;\n }\n var name = void 0;\n var child = void 0;\n for (name in context.delta) {\n if (name === '_t') {\n continue;\n }\n child = new ReverseContext(context.delta[name]);\n context.push(child, name);\n }\n context.exit();\n};\nreverseFilter$2.filterName = 'arrays';\n\nvar reverseArrayDeltaIndex = function reverseArrayDeltaIndex(delta, index, itemDelta) {\n if (typeof index === 'string' && index[0] === '_') {\n return parseInt(index.substr(1), 10);\n } else if (isArray$2(itemDelta) && itemDelta[2] === 0) {\n return '_' + index;\n }\n\n var reverseIndex = +index;\n for (var deltaIndex in delta) {\n var deltaItem = delta[deltaIndex];\n if (isArray$2(deltaItem)) {\n if (deltaItem[2] === ARRAY_MOVE) {\n var moveFromIndex = parseInt(deltaIndex.substr(1), 10);\n var moveToIndex = deltaItem[1];\n if (moveToIndex === +index) {\n return moveFromIndex;\n }\n if (moveFromIndex <= reverseIndex && moveToIndex > reverseIndex) {\n reverseIndex++;\n } else if (moveFromIndex >= reverseIndex && moveToIndex < reverseIndex) {\n reverseIndex--;\n }\n } else if (deltaItem[2] === 0) {\n var deleteIndex = parseInt(deltaIndex.substr(1), 10);\n if (deleteIndex <= reverseIndex) {\n reverseIndex++;\n }\n } else if (deltaItem.length === 1 && deltaIndex <= reverseIndex) {\n reverseIndex--;\n }\n }\n }\n\n return reverseIndex;\n};\n\nfunction collectChildrenReverseFilter$1(context) {\n if (!context || !context.children) {\n return;\n }\n if (context.delta._t !== 'a') {\n return;\n }\n var length = context.children.length;\n var child = void 0;\n var delta = {\n _t: 'a'\n };\n\n for (var index = 0; index < length; index++) {\n child = context.children[index];\n var name = child.newName;\n if (typeof name === 'undefined') {\n name = reverseArrayDeltaIndex(context.delta, child.childName, child.result);\n }\n if (delta[name] !== child.result) {\n delta[name] = child.result;\n }\n }\n context.setResult(delta).exit();\n}\ncollectChildrenReverseFilter$1.filterName = 'arraysCollectChildren';\n\nvar diffFilter$2 = function datesDiffFilter(context) {\n if (context.left instanceof Date) {\n if (context.right instanceof Date) {\n if (context.left.getTime() !== context.right.getTime()) {\n context.setResult([context.left, context.right]);\n } else {\n context.setResult(undefined);\n }\n } else {\n context.setResult([context.left, context.right]);\n }\n context.exit();\n } else if (context.right instanceof Date) {\n context.setResult([context.left, context.right]).exit();\n }\n};\ndiffFilter$2.filterName = 'dates';\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar diffMatchPatch = createCommonjsModule(function (module) {\n/**\n * Diff Match and Patch\n * Copyright 2018 The diff-match-patch Authors.\n * https://github.com/google/diff-match-patch\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Computes the difference between two texts to create a patch.\n * Applies the patch onto another text, allowing for errors.\n * @author fraser@google.com (Neil Fraser)\n */\n\n/**\n * Class containing the diff, match and patch methods.\n * @constructor\n */\nfunction diff_match_patch() {\n\n // Defaults.\n // Redefine these in your program to override the defaults.\n\n // Number of seconds to map a diff before giving up (0 for infinity).\n this.Diff_Timeout = 1.0;\n // Cost of an empty edit operation in terms of edit characters.\n this.Diff_EditCost = 4;\n // At what point is no match declared (0.0 = perfection, 1.0 = very loose).\n this.Match_Threshold = 0.5;\n // How far to search for a match (0 = exact location, 1000+ = broad match).\n // A match this many characters away from the expected location will add\n // 1.0 to the score (0.0 is a perfect match).\n this.Match_Distance = 1000;\n // When deleting a large block of text (over ~64 characters), how close do\n // the contents have to be to match the expected contents. (0.0 = perfection,\n // 1.0 = very loose). Note that Match_Threshold controls how closely the\n // end points of a delete need to match.\n this.Patch_DeleteThreshold = 0.5;\n // Chunk size for context length.\n this.Patch_Margin = 4;\n\n // The number of bits in an int.\n this.Match_MaxBits = 32;\n}\n\n\n// DIFF FUNCTIONS\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n/** @typedef {{0: number, 1: string}} */\ndiff_match_patch.prototype.diff_main = function(text1, text2, opt_checklines,\n opt_deadline) {\n // Set a deadline by which time the diff must be complete.\n if (typeof opt_deadline == 'undefined') {\n if (this.Diff_Timeout <= 0) {\n opt_deadline = Number.MAX_VALUE;\n } else {\n opt_deadline = (new Date).getTime() + this.Diff_Timeout * 1000;\n }\n }\n var deadline = opt_deadline;\n\n // Check for null inputs.\n if (text1 == null || text2 == null) {\n throw new Error('Null input. (diff_main)');\n }\n\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (typeof opt_checklines == 'undefined') {\n opt_checklines = true;\n }\n var checklines = opt_checklines;\n\n // Trim off common prefix (speedup).\n var commonlength = this.diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = this.diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = this.diff_compute_(text1, text2, checklines, deadline);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n this.diff_cleanupMerge(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {boolean} checklines Speedup flag. If false, then don't run a\n * line-level diff first to identify the changed areas.\n * If true, then run a faster, slightly less optimal diff.\n * @param {number} deadline Time when the diff should be complete by.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_compute_ = function(text1, text2, checklines,\n deadline) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = this.diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = this.diff_main(text1_a, text2_a, checklines, deadline);\n var diffs_b = this.diff_main(text1_b, text2_b, checklines, deadline);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n if (checklines && text1.length > 100 && text2.length > 100) {\n return this.diff_lineMode_(text1, text2, deadline);\n }\n\n return this.diff_bisect_(text1, text2, deadline);\n};\n\n\n/**\n * Do a quick line-level diff on both strings, then rediff the parts for\n * greater accuracy.\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} deadline Time when the diff should be complete by.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_lineMode_ = function(text1, text2, deadline) {\n // Scan the text on a line-by-line basis first.\n var a = this.diff_linesToChars_(text1, text2);\n text1 = a.chars1;\n text2 = a.chars2;\n var linearray = a.lineArray;\n\n var diffs = this.diff_main(text1, text2, false, deadline);\n\n // Convert the diff back to original text.\n this.diff_charsToLines_(diffs, linearray);\n // Eliminate freak matches (e.g. blank lines)\n this.diff_cleanupSemantic(diffs);\n\n // Rediff any replacement blocks, this time character-by-character.\n // Add a dummy entry at the end.\n diffs.push([DIFF_EQUAL, '']);\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete >= 1 && count_insert >= 1) {\n // Delete the offending records and add the merged ones.\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert);\n pointer = pointer - count_delete - count_insert;\n var a = this.diff_main(text_delete, text_insert, false, deadline);\n for (var j = a.length - 1; j >= 0; j--) {\n diffs.splice(pointer, 0, a[j]);\n }\n pointer = pointer + a.length;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n pointer++;\n }\n diffs.pop(); // Remove the dummy entry at the end.\n\n return diffs;\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} deadline Time at which to bail if not yet complete.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_bisect_ = function(text1, text2, deadline) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Bail out if deadline is reached.\n if ((new Date()).getTime() > deadline) {\n break;\n }\n\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return this.diff_bisectSplit_(text1, text2, x1, y1, deadline);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return this.diff_bisectSplit_(text1, text2, x1, y1, deadline);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @param {number} deadline Time at which to bail if not yet complete.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_bisectSplit_ = function(text1, text2, x, y,\n deadline) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = this.diff_main(text1a, text2a, false, deadline);\n var diffsb = this.diff_main(text1b, text2b, false, deadline);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Split two texts into an array of strings. Reduce the texts to a string of\n * hashes where each Unicode character represents one line.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {{chars1: string, chars2: string, lineArray: !Array.}}\n * An object containing the encoded text1, the encoded text2 and\n * the array of unique strings.\n * The zeroth element of the array of unique strings is intentionally blank.\n * @private\n */\ndiff_match_patch.prototype.diff_linesToChars_ = function(text1, text2) {\n var lineArray = []; // e.g. lineArray[4] == 'Hello\\n'\n var lineHash = {}; // e.g. lineHash['Hello\\n'] == 4\n\n // '\\x00' is a valid character, but various debuggers don't like it.\n // So we'll insert a junk entry to avoid generating a null character.\n lineArray[0] = '';\n\n /**\n * Split a text into an array of strings. Reduce the texts to a string of\n * hashes where each Unicode character represents one line.\n * Modifies linearray and linehash through being a closure.\n * @param {string} text String to encode.\n * @return {string} Encoded string.\n * @private\n */\n function diff_linesToCharsMunge_(text) {\n var chars = '';\n // Walk the text, pulling out a substring for each line.\n // text.split('\\n') would would temporarily double our memory footprint.\n // Modifying text would create many large strings to garbage collect.\n var lineStart = 0;\n var lineEnd = -1;\n // Keeping our own length variable is faster than looking it up.\n var lineArrayLength = lineArray.length;\n while (lineEnd < text.length - 1) {\n lineEnd = text.indexOf('\\n', lineStart);\n if (lineEnd == -1) {\n lineEnd = text.length - 1;\n }\n var line = text.substring(lineStart, lineEnd + 1);\n lineStart = lineEnd + 1;\n\n if (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) :\n (lineHash[line] !== undefined)) {\n chars += String.fromCharCode(lineHash[line]);\n } else {\n chars += String.fromCharCode(lineArrayLength);\n lineHash[line] = lineArrayLength;\n lineArray[lineArrayLength++] = line;\n }\n }\n return chars;\n }\n\n var chars1 = diff_linesToCharsMunge_(text1);\n var chars2 = diff_linesToCharsMunge_(text2);\n return {chars1: chars1, chars2: chars2, lineArray: lineArray};\n};\n\n\n/**\n * Rehydrate the text in a diff from a string of line hashes to real lines of\n * text.\n * @param {!Array.} diffs Array of diff tuples.\n * @param {!Array.} lineArray Array of unique strings.\n * @private\n */\ndiff_match_patch.prototype.diff_charsToLines_ = function(diffs, lineArray) {\n for (var x = 0; x < diffs.length; x++) {\n var chars = diffs[x][1];\n var text = [];\n for (var y = 0; y < chars.length; y++) {\n text[y] = lineArray[chars.charCodeAt(y)];\n }\n diffs[x][1] = text.join('');\n }\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\ndiff_match_patch.prototype.diff_commonPrefix = function(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\ndiff_match_patch.prototype.diff_commonSuffix = function(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine if the suffix of one string is the prefix of another.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of the first\n * string and the start of the second string.\n * @private\n */\ndiff_match_patch.prototype.diff_commonOverlap_ = function(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n // Eliminate the null case.\n if (text1_length == 0 || text2_length == 0) {\n return 0;\n }\n // Truncate the longer string.\n if (text1_length > text2_length) {\n text1 = text1.substring(text1_length - text2_length);\n } else if (text1_length < text2_length) {\n text2 = text2.substring(0, text1_length);\n }\n var text_length = Math.min(text1_length, text2_length);\n // Quick check for the worst case.\n if (text1 == text2) {\n return text_length;\n }\n\n // Start by looking for a single character match\n // and increase length until no match is found.\n // Performance analysis: http://neil.fraser.name/news/2010/11/04/\n var best = 0;\n var length = 1;\n while (true) {\n var pattern = text1.substring(text_length - length);\n var found = text2.indexOf(pattern);\n if (found == -1) {\n return best;\n }\n length += found;\n if (found == 0 || text1.substring(text_length - length) ==\n text2.substring(0, length)) {\n best = length;\n length++;\n }\n }\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n * @private\n */\ndiff_match_patch.prototype.diff_halfMatch_ = function(text1, text2) {\n if (this.Diff_Timeout <= 0) {\n // Don't risk returning a non-optimal diff if we have unlimited time.\n return null;\n }\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n var dmp = this; // 'this' becomes 'window' in a closure.\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = dmp.diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = dmp.diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reduce the number of edits by eliminating semantically trivial equalities.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupSemantic = function(diffs) {\n var changes = false;\n var equalities = []; // Stack of indices where equalities are found.\n var equalitiesLength = 0; // Keeping our own length var is faster in JS.\n /** @type {?string} */\n var lastequality = null;\n // Always equal to diffs[equalities[equalitiesLength - 1]][1]\n var pointer = 0; // Index of current position.\n // Number of characters that changed prior to the equality.\n var length_insertions1 = 0;\n var length_deletions1 = 0;\n // Number of characters that changed after the equality.\n var length_insertions2 = 0;\n var length_deletions2 = 0;\n while (pointer < diffs.length) {\n if (diffs[pointer][0] == DIFF_EQUAL) { // Equality found.\n equalities[equalitiesLength++] = pointer;\n length_insertions1 = length_insertions2;\n length_deletions1 = length_deletions2;\n length_insertions2 = 0;\n length_deletions2 = 0;\n lastequality = diffs[pointer][1];\n } else { // An insertion or deletion.\n if (diffs[pointer][0] == DIFF_INSERT) {\n length_insertions2 += diffs[pointer][1].length;\n } else {\n length_deletions2 += diffs[pointer][1].length;\n }\n // Eliminate an equality that is smaller or equal to the edits on both\n // sides of it.\n if (lastequality && (lastequality.length <=\n Math.max(length_insertions1, length_deletions1)) &&\n (lastequality.length <= Math.max(length_insertions2,\n length_deletions2))) {\n // Duplicate record.\n diffs.splice(equalities[equalitiesLength - 1], 0,\n [DIFF_DELETE, lastequality]);\n // Change second copy to insert.\n diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;\n // Throw away the equality we just deleted.\n equalitiesLength--;\n // Throw away the previous equality (it needs to be reevaluated).\n equalitiesLength--;\n pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1;\n length_insertions1 = 0; // Reset the counters.\n length_deletions1 = 0;\n length_insertions2 = 0;\n length_deletions2 = 0;\n lastequality = null;\n changes = true;\n }\n }\n pointer++;\n }\n\n // Normalize the diff.\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n this.diff_cleanupSemanticLossless(diffs);\n\n // Find any overlaps between deletions and insertions.\n // e.g: abcxxxxxxdef\n // -> abcxxxdef\n // e.g: xxxabcdefxxx\n // -> defxxxabc\n // Only extract an overlap if it is as big as the edit ahead or behind it.\n pointer = 1;\n while (pointer < diffs.length) {\n if (diffs[pointer - 1][0] == DIFF_DELETE &&\n diffs[pointer][0] == DIFF_INSERT) {\n var deletion = diffs[pointer - 1][1];\n var insertion = diffs[pointer][1];\n var overlap_length1 = this.diff_commonOverlap_(deletion, insertion);\n var overlap_length2 = this.diff_commonOverlap_(insertion, deletion);\n if (overlap_length1 >= overlap_length2) {\n if (overlap_length1 >= deletion.length / 2 ||\n overlap_length1 >= insertion.length / 2) {\n // Overlap found. Insert an equality and trim the surrounding edits.\n diffs.splice(pointer, 0,\n [DIFF_EQUAL, insertion.substring(0, overlap_length1)]);\n diffs[pointer - 1][1] =\n deletion.substring(0, deletion.length - overlap_length1);\n diffs[pointer + 1][1] = insertion.substring(overlap_length1);\n pointer++;\n }\n } else {\n if (overlap_length2 >= deletion.length / 2 ||\n overlap_length2 >= insertion.length / 2) {\n // Reverse overlap found.\n // Insert an equality and swap and trim the surrounding edits.\n diffs.splice(pointer, 0,\n [DIFF_EQUAL, deletion.substring(0, overlap_length2)]);\n diffs[pointer - 1][0] = DIFF_INSERT;\n diffs[pointer - 1][1] =\n insertion.substring(0, insertion.length - overlap_length2);\n diffs[pointer + 1][0] = DIFF_DELETE;\n diffs[pointer + 1][1] =\n deletion.substring(overlap_length2);\n pointer++;\n }\n }\n pointer++;\n }\n pointer++;\n }\n};\n\n\n/**\n * Look for single edits surrounded on both sides by equalities\n * which can be shifted sideways to align the edit to a word boundary.\n * e.g: The cat came. -> The cat came.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupSemanticLossless = function(diffs) {\n /**\n * Given two strings, compute a score representing whether the internal\n * boundary falls on logical boundaries.\n * Scores range from 6 (best) to 0 (worst).\n * Closure, but does not reference any external variables.\n * @param {string} one First string.\n * @param {string} two Second string.\n * @return {number} The score.\n * @private\n */\n function diff_cleanupSemanticScore_(one, two) {\n if (!one || !two) {\n // Edges are the best.\n return 6;\n }\n\n // Each port of this function behaves slightly differently due to\n // subtle differences in each language's definition of things like\n // 'whitespace'. Since this function's purpose is largely cosmetic,\n // the choice has been made to use each language's native features\n // rather than force total conformity.\n var char1 = one.charAt(one.length - 1);\n var char2 = two.charAt(0);\n var nonAlphaNumeric1 = char1.match(diff_match_patch.nonAlphaNumericRegex_);\n var nonAlphaNumeric2 = char2.match(diff_match_patch.nonAlphaNumericRegex_);\n var whitespace1 = nonAlphaNumeric1 &&\n char1.match(diff_match_patch.whitespaceRegex_);\n var whitespace2 = nonAlphaNumeric2 &&\n char2.match(diff_match_patch.whitespaceRegex_);\n var lineBreak1 = whitespace1 &&\n char1.match(diff_match_patch.linebreakRegex_);\n var lineBreak2 = whitespace2 &&\n char2.match(diff_match_patch.linebreakRegex_);\n var blankLine1 = lineBreak1 &&\n one.match(diff_match_patch.blanklineEndRegex_);\n var blankLine2 = lineBreak2 &&\n two.match(diff_match_patch.blanklineStartRegex_);\n\n if (blankLine1 || blankLine2) {\n // Five points for blank lines.\n return 5;\n } else if (lineBreak1 || lineBreak2) {\n // Four points for line breaks.\n return 4;\n } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) {\n // Three points for end of sentences.\n return 3;\n } else if (whitespace1 || whitespace2) {\n // Two points for whitespace.\n return 2;\n } else if (nonAlphaNumeric1 || nonAlphaNumeric2) {\n // One point for non-alphanumeric.\n return 1;\n }\n return 0;\n }\n\n var pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n var equality1 = diffs[pointer - 1][1];\n var edit = diffs[pointer][1];\n var equality2 = diffs[pointer + 1][1];\n\n // First, shift the edit as far left as possible.\n var commonOffset = this.diff_commonSuffix(equality1, edit);\n if (commonOffset) {\n var commonString = edit.substring(edit.length - commonOffset);\n equality1 = equality1.substring(0, equality1.length - commonOffset);\n edit = commonString + edit.substring(0, edit.length - commonOffset);\n equality2 = commonString + equality2;\n }\n\n // Second, step character by character right, looking for the best fit.\n var bestEquality1 = equality1;\n var bestEdit = edit;\n var bestEquality2 = equality2;\n var bestScore = diff_cleanupSemanticScore_(equality1, edit) +\n diff_cleanupSemanticScore_(edit, equality2);\n while (edit.charAt(0) === equality2.charAt(0)) {\n equality1 += edit.charAt(0);\n edit = edit.substring(1) + equality2.charAt(0);\n equality2 = equality2.substring(1);\n var score = diff_cleanupSemanticScore_(equality1, edit) +\n diff_cleanupSemanticScore_(edit, equality2);\n // The >= encourages trailing rather than leading whitespace on edits.\n if (score >= bestScore) {\n bestScore = score;\n bestEquality1 = equality1;\n bestEdit = edit;\n bestEquality2 = equality2;\n }\n }\n\n if (diffs[pointer - 1][1] != bestEquality1) {\n // We have an improvement, save it back to the diff.\n if (bestEquality1) {\n diffs[pointer - 1][1] = bestEquality1;\n } else {\n diffs.splice(pointer - 1, 1);\n pointer--;\n }\n diffs[pointer][1] = bestEdit;\n if (bestEquality2) {\n diffs[pointer + 1][1] = bestEquality2;\n } else {\n diffs.splice(pointer + 1, 1);\n pointer--;\n }\n }\n }\n pointer++;\n }\n};\n\n// Define some regex patterns for matching boundaries.\ndiff_match_patch.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/;\ndiff_match_patch.whitespaceRegex_ = /\\s/;\ndiff_match_patch.linebreakRegex_ = /[\\r\\n]/;\ndiff_match_patch.blanklineEndRegex_ = /\\n\\r?\\n$/;\ndiff_match_patch.blanklineStartRegex_ = /^\\r?\\n\\r?\\n/;\n\n/**\n * Reduce the number of edits by eliminating operationally trivial equalities.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupEfficiency = function(diffs) {\n var changes = false;\n var equalities = []; // Stack of indices where equalities are found.\n var equalitiesLength = 0; // Keeping our own length var is faster in JS.\n /** @type {?string} */\n var lastequality = null;\n // Always equal to diffs[equalities[equalitiesLength - 1]][1]\n var pointer = 0; // Index of current position.\n // Is there an insertion operation before the last equality.\n var pre_ins = false;\n // Is there a deletion operation before the last equality.\n var pre_del = false;\n // Is there an insertion operation after the last equality.\n var post_ins = false;\n // Is there a deletion operation after the last equality.\n var post_del = false;\n while (pointer < diffs.length) {\n if (diffs[pointer][0] == DIFF_EQUAL) { // Equality found.\n if (diffs[pointer][1].length < this.Diff_EditCost &&\n (post_ins || post_del)) {\n // Candidate found.\n equalities[equalitiesLength++] = pointer;\n pre_ins = post_ins;\n pre_del = post_del;\n lastequality = diffs[pointer][1];\n } else {\n // Not a candidate, and can never become one.\n equalitiesLength = 0;\n lastequality = null;\n }\n post_ins = post_del = false;\n } else { // An insertion or deletion.\n if (diffs[pointer][0] == DIFF_DELETE) {\n post_del = true;\n } else {\n post_ins = true;\n }\n /*\n * Five types to be split:\n * ABXYCD\n * AXCD\n * ABXC\n * AXCD\n * ABXC\n */\n if (lastequality && ((pre_ins && pre_del && post_ins && post_del) ||\n ((lastequality.length < this.Diff_EditCost / 2) &&\n (pre_ins + pre_del + post_ins + post_del) == 3))) {\n // Duplicate record.\n diffs.splice(equalities[equalitiesLength - 1], 0,\n [DIFF_DELETE, lastequality]);\n // Change second copy to insert.\n diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;\n equalitiesLength--; // Throw away the equality we just deleted;\n lastequality = null;\n if (pre_ins && pre_del) {\n // No changes made which could affect previous entry, keep going.\n post_ins = post_del = true;\n equalitiesLength = 0;\n } else {\n equalitiesLength--; // Throw away the previous equality.\n pointer = equalitiesLength > 0 ?\n equalities[equalitiesLength - 1] : -1;\n post_ins = post_del = false;\n }\n changes = true;\n }\n }\n pointer++;\n }\n\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupMerge = function(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = this.diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = this.diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n};\n\n\n/**\n * loc is a location in text1, compute and return the equivalent location in\n * text2.\n * e.g. 'The cat' vs 'The big cat', 1->1, 5->8\n * @param {!Array.} diffs Array of diff tuples.\n * @param {number} loc Location within text1.\n * @return {number} Location within text2.\n */\ndiff_match_patch.prototype.diff_xIndex = function(diffs, loc) {\n var chars1 = 0;\n var chars2 = 0;\n var last_chars1 = 0;\n var last_chars2 = 0;\n var x;\n for (x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_INSERT) { // Equality or deletion.\n chars1 += diffs[x][1].length;\n }\n if (diffs[x][0] !== DIFF_DELETE) { // Equality or insertion.\n chars2 += diffs[x][1].length;\n }\n if (chars1 > loc) { // Overshot the location.\n break;\n }\n last_chars1 = chars1;\n last_chars2 = chars2;\n }\n // Was the location was deleted?\n if (diffs.length != x && diffs[x][0] === DIFF_DELETE) {\n return last_chars2;\n }\n // Add the remaining character length.\n return last_chars2 + (loc - last_chars1);\n};\n\n\n/**\n * Convert a diff array into a pretty HTML report.\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} HTML representation.\n */\ndiff_match_patch.prototype.diff_prettyHtml = function(diffs) {\n var html = [];\n var pattern_amp = /&/g;\n var pattern_lt = //g;\n var pattern_para = /\\n/g;\n for (var x = 0; x < diffs.length; x++) {\n var op = diffs[x][0]; // Operation (insert, delete, equal)\n var data = diffs[x][1]; // Text of change.\n var text = data.replace(pattern_amp, '&').replace(pattern_lt, '<')\n .replace(pattern_gt, '>').replace(pattern_para, '¶ ');\n switch (op) {\n case DIFF_INSERT:\n html[x] = '' + text + '';\n break;\n case DIFF_DELETE:\n html[x] = '' + text + '';\n break;\n case DIFF_EQUAL:\n html[x] = '' + text + '';\n break;\n }\n }\n return html.join('');\n};\n\n\n/**\n * Compute and return the source text (all equalities and deletions).\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} Source text.\n */\ndiff_match_patch.prototype.diff_text1 = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_INSERT) {\n text[x] = diffs[x][1];\n }\n }\n return text.join('');\n};\n\n\n/**\n * Compute and return the destination text (all equalities and insertions).\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} Destination text.\n */\ndiff_match_patch.prototype.diff_text2 = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_DELETE) {\n text[x] = diffs[x][1];\n }\n }\n return text.join('');\n};\n\n\n/**\n * Compute the Levenshtein distance; the number of inserted, deleted or\n * substituted characters.\n * @param {!Array.} diffs Array of diff tuples.\n * @return {number} Number of changes.\n */\ndiff_match_patch.prototype.diff_levenshtein = function(diffs) {\n var levenshtein = 0;\n var insertions = 0;\n var deletions = 0;\n for (var x = 0; x < diffs.length; x++) {\n var op = diffs[x][0];\n var data = diffs[x][1];\n switch (op) {\n case DIFF_INSERT:\n insertions += data.length;\n break;\n case DIFF_DELETE:\n deletions += data.length;\n break;\n case DIFF_EQUAL:\n // A deletion and an insertion is one substitution.\n levenshtein += Math.max(insertions, deletions);\n insertions = 0;\n deletions = 0;\n break;\n }\n }\n levenshtein += Math.max(insertions, deletions);\n return levenshtein;\n};\n\n\n/**\n * Crush the diff into an encoded string which describes the operations\n * required to transform text1 into text2.\n * E.g. =3\\t-2\\t+ing -> Keep 3 chars, delete 2 chars, insert 'ing'.\n * Operations are tab-separated. Inserted text is escaped using %xx notation.\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} Delta text.\n */\ndiff_match_patch.prototype.diff_toDelta = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n switch (diffs[x][0]) {\n case DIFF_INSERT:\n text[x] = '+' + encodeURI(diffs[x][1]);\n break;\n case DIFF_DELETE:\n text[x] = '-' + diffs[x][1].length;\n break;\n case DIFF_EQUAL:\n text[x] = '=' + diffs[x][1].length;\n break;\n }\n }\n return text.join('\\t').replace(/%20/g, ' ');\n};\n\n\n/**\n * Given the original text1, and an encoded string which describes the\n * operations required to transform text1 into text2, compute the full diff.\n * @param {string} text1 Source string for the diff.\n * @param {string} delta Delta text.\n * @return {!Array.} Array of diff tuples.\n * @throws {!Error} If invalid input.\n */\ndiff_match_patch.prototype.diff_fromDelta = function(text1, delta) {\n var diffs = [];\n var diffsLength = 0; // Keeping our own length var is faster in JS.\n var pointer = 0; // Cursor in text1\n var tokens = delta.split(/\\t/g);\n for (var x = 0; x < tokens.length; x++) {\n // Each token begins with a one character parameter which specifies the\n // operation of this token (delete, insert, equality).\n var param = tokens[x].substring(1);\n switch (tokens[x].charAt(0)) {\n case '+':\n try {\n diffs[diffsLength++] = [DIFF_INSERT, decodeURI(param)];\n } catch (ex) {\n // Malformed URI sequence.\n throw new Error('Illegal escape in diff_fromDelta: ' + param);\n }\n break;\n case '-':\n // Fall through.\n case '=':\n var n = parseInt(param, 10);\n if (isNaN(n) || n < 0) {\n throw new Error('Invalid number in diff_fromDelta: ' + param);\n }\n var text = text1.substring(pointer, pointer += n);\n if (tokens[x].charAt(0) == '=') {\n diffs[diffsLength++] = [DIFF_EQUAL, text];\n } else {\n diffs[diffsLength++] = [DIFF_DELETE, text];\n }\n break;\n default:\n // Blank tokens are ok (from a trailing \\t).\n // Anything else is an error.\n if (tokens[x]) {\n throw new Error('Invalid diff operation in diff_fromDelta: ' +\n tokens[x]);\n }\n }\n }\n if (pointer != text1.length) {\n throw new Error('Delta length (' + pointer +\n ') does not equal source text length (' + text1.length + ').');\n }\n return diffs;\n};\n\n\n// MATCH FUNCTIONS\n\n\n/**\n * Locate the best instance of 'pattern' in 'text' near 'loc'.\n * @param {string} text The text to search.\n * @param {string} pattern The pattern to search for.\n * @param {number} loc The location to search around.\n * @return {number} Best match index or -1.\n */\ndiff_match_patch.prototype.match_main = function(text, pattern, loc) {\n // Check for null inputs.\n if (text == null || pattern == null || loc == null) {\n throw new Error('Null input. (match_main)');\n }\n\n loc = Math.max(0, Math.min(loc, text.length));\n if (text == pattern) {\n // Shortcut (potentially not guaranteed by the algorithm)\n return 0;\n } else if (!text.length) {\n // Nothing to match.\n return -1;\n } else if (text.substring(loc, loc + pattern.length) == pattern) {\n // Perfect match at the perfect spot! (Includes case of null pattern)\n return loc;\n } else {\n // Do a fuzzy compare.\n return this.match_bitap_(text, pattern, loc);\n }\n};\n\n\n/**\n * Locate the best instance of 'pattern' in 'text' near 'loc' using the\n * Bitap algorithm.\n * @param {string} text The text to search.\n * @param {string} pattern The pattern to search for.\n * @param {number} loc The location to search around.\n * @return {number} Best match index or -1.\n * @private\n */\ndiff_match_patch.prototype.match_bitap_ = function(text, pattern, loc) {\n if (pattern.length > this.Match_MaxBits) {\n throw new Error('Pattern too long for this browser.');\n }\n\n // Initialise the alphabet.\n var s = this.match_alphabet_(pattern);\n\n var dmp = this; // 'this' becomes 'window' in a closure.\n\n /**\n * Compute and return the score for a match with e errors and x location.\n * Accesses loc and pattern through being a closure.\n * @param {number} e Number of errors in match.\n * @param {number} x Location of match.\n * @return {number} Overall score for match (0.0 = good, 1.0 = bad).\n * @private\n */\n function match_bitapScore_(e, x) {\n var accuracy = e / pattern.length;\n var proximity = Math.abs(loc - x);\n if (!dmp.Match_Distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy;\n }\n return accuracy + (proximity / dmp.Match_Distance);\n }\n\n // Highest score beyond which we give up.\n var score_threshold = this.Match_Threshold;\n // Is there a nearby exact match? (speedup)\n var best_loc = text.indexOf(pattern, loc);\n if (best_loc != -1) {\n score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold);\n // What about in the other direction? (speedup)\n best_loc = text.lastIndexOf(pattern, loc + pattern.length);\n if (best_loc != -1) {\n score_threshold =\n Math.min(match_bitapScore_(0, best_loc), score_threshold);\n }\n }\n\n // Initialise the bit arrays.\n var matchmask = 1 << (pattern.length - 1);\n best_loc = -1;\n\n var bin_min, bin_mid;\n var bin_max = pattern.length + text.length;\n var last_rd;\n for (var d = 0; d < pattern.length; d++) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from 'loc' we can stray at this\n // error level.\n bin_min = 0;\n bin_mid = bin_max;\n while (bin_min < bin_mid) {\n if (match_bitapScore_(d, loc + bin_mid) <= score_threshold) {\n bin_min = bin_mid;\n } else {\n bin_max = bin_mid;\n }\n bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min);\n }\n // Use the result from this iteration as the maximum for the next.\n bin_max = bin_mid;\n var start = Math.max(1, loc - bin_mid + 1);\n var finish = Math.min(loc + bin_mid, text.length) + pattern.length;\n\n var rd = Array(finish + 2);\n rd[finish + 1] = (1 << d) - 1;\n for (var j = finish; j >= start; j--) {\n // The alphabet (s) is a sparse hash, so the following line generates\n // warnings.\n var charMatch = s[text.charAt(j - 1)];\n if (d === 0) { // First pass: exact match.\n rd[j] = ((rd[j + 1] << 1) | 1) & charMatch;\n } else { // Subsequent passes: fuzzy match.\n rd[j] = (((rd[j + 1] << 1) | 1) & charMatch) |\n (((last_rd[j + 1] | last_rd[j]) << 1) | 1) |\n last_rd[j + 1];\n }\n if (rd[j] & matchmask) {\n var score = match_bitapScore_(d, j - 1);\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (score <= score_threshold) {\n // Told you so.\n score_threshold = score;\n best_loc = j - 1;\n if (best_loc > loc) {\n // When passing loc, don't exceed our current distance from loc.\n start = Math.max(1, 2 * loc - best_loc);\n } else {\n // Already passed loc, downhill from here on in.\n break;\n }\n }\n }\n }\n // No hope for a (better) match at greater error levels.\n if (match_bitapScore_(d + 1, loc) > score_threshold) {\n break;\n }\n last_rd = rd;\n }\n return best_loc;\n};\n\n\n/**\n * Initialise the alphabet for the Bitap algorithm.\n * @param {string} pattern The text to encode.\n * @return {!Object} Hash of character locations.\n * @private\n */\ndiff_match_patch.prototype.match_alphabet_ = function(pattern) {\n var s = {};\n for (var i = 0; i < pattern.length; i++) {\n s[pattern.charAt(i)] = 0;\n }\n for (var i = 0; i < pattern.length; i++) {\n s[pattern.charAt(i)] |= 1 << (pattern.length - i - 1);\n }\n return s;\n};\n\n\n// PATCH FUNCTIONS\n\n\n/**\n * Increase the context until it is unique,\n * but don't let the pattern expand beyond Match_MaxBits.\n * @param {!diff_match_patch.patch_obj} patch The patch to grow.\n * @param {string} text Source text.\n * @private\n */\ndiff_match_patch.prototype.patch_addContext_ = function(patch, text) {\n if (text.length == 0) {\n return;\n }\n var pattern = text.substring(patch.start2, patch.start2 + patch.length1);\n var padding = 0;\n\n // Look for the first and last matches of pattern in text. If two different\n // matches are found, increase the pattern length.\n while (text.indexOf(pattern) != text.lastIndexOf(pattern) &&\n pattern.length < this.Match_MaxBits - this.Patch_Margin -\n this.Patch_Margin) {\n padding += this.Patch_Margin;\n pattern = text.substring(patch.start2 - padding,\n patch.start2 + patch.length1 + padding);\n }\n // Add one chunk for good luck.\n padding += this.Patch_Margin;\n\n // Add the prefix.\n var prefix = text.substring(patch.start2 - padding, patch.start2);\n if (prefix) {\n patch.diffs.unshift([DIFF_EQUAL, prefix]);\n }\n // Add the suffix.\n var suffix = text.substring(patch.start2 + patch.length1,\n patch.start2 + patch.length1 + padding);\n if (suffix) {\n patch.diffs.push([DIFF_EQUAL, suffix]);\n }\n\n // Roll back the start points.\n patch.start1 -= prefix.length;\n patch.start2 -= prefix.length;\n // Extend the lengths.\n patch.length1 += prefix.length + suffix.length;\n patch.length2 += prefix.length + suffix.length;\n};\n\n\n/**\n * Compute a list of patches to turn text1 into text2.\n * Use diffs if provided, otherwise compute it ourselves.\n * There are four ways to call this function, depending on what data is\n * available to the caller:\n * Method 1:\n * a = text1, b = text2\n * Method 2:\n * a = diffs\n * Method 3 (optimal):\n * a = text1, b = diffs\n * Method 4 (deprecated, use method 3):\n * a = text1, b = text2, c = diffs\n *\n * @param {string|!Array.} a text1 (methods 1,3,4) or\n * Array of diff tuples for text1 to text2 (method 2).\n * @param {string|!Array.} opt_b text2 (methods 1,4) or\n * Array of diff tuples for text1 to text2 (method 3) or undefined (method 2).\n * @param {string|!Array.} opt_c Array of diff tuples\n * for text1 to text2 (method 4) or undefined (methods 1,2,3).\n * @return {!Array.} Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_make = function(a, opt_b, opt_c) {\n var text1, diffs;\n if (typeof a == 'string' && typeof opt_b == 'string' &&\n typeof opt_c == 'undefined') {\n // Method 1: text1, text2\n // Compute diffs from text1 and text2.\n text1 = /** @type {string} */(a);\n diffs = this.diff_main(text1, /** @type {string} */(opt_b), true);\n if (diffs.length > 2) {\n this.diff_cleanupSemantic(diffs);\n this.diff_cleanupEfficiency(diffs);\n }\n } else if (a && typeof a == 'object' && typeof opt_b == 'undefined' &&\n typeof opt_c == 'undefined') {\n // Method 2: diffs\n // Compute text1 from diffs.\n diffs = /** @type {!Array.} */(a);\n text1 = this.diff_text1(diffs);\n } else if (typeof a == 'string' && opt_b && typeof opt_b == 'object' &&\n typeof opt_c == 'undefined') {\n // Method 3: text1, diffs\n text1 = /** @type {string} */(a);\n diffs = /** @type {!Array.} */(opt_b);\n } else if (typeof a == 'string' && typeof opt_b == 'string' &&\n opt_c && typeof opt_c == 'object') {\n // Method 4: text1, text2, diffs\n // text2 is not used.\n text1 = /** @type {string} */(a);\n diffs = /** @type {!Array.} */(opt_c);\n } else {\n throw new Error('Unknown call format to patch_make.');\n }\n\n if (diffs.length === 0) {\n return []; // Get rid of the null case.\n }\n var patches = [];\n var patch = new diff_match_patch.patch_obj();\n var patchDiffLength = 0; // Keeping our own length var is faster in JS.\n var char_count1 = 0; // Number of characters into the text1 string.\n var char_count2 = 0; // Number of characters into the text2 string.\n // Start with text1 (prepatch_text) and apply the diffs until we arrive at\n // text2 (postpatch_text). We recreate the patches one by one to determine\n // context info.\n var prepatch_text = text1;\n var postpatch_text = text1;\n for (var x = 0; x < diffs.length; x++) {\n var diff_type = diffs[x][0];\n var diff_text = diffs[x][1];\n\n if (!patchDiffLength && diff_type !== DIFF_EQUAL) {\n // A new patch starts here.\n patch.start1 = char_count1;\n patch.start2 = char_count2;\n }\n\n switch (diff_type) {\n case DIFF_INSERT:\n patch.diffs[patchDiffLength++] = diffs[x];\n patch.length2 += diff_text.length;\n postpatch_text = postpatch_text.substring(0, char_count2) + diff_text +\n postpatch_text.substring(char_count2);\n break;\n case DIFF_DELETE:\n patch.length1 += diff_text.length;\n patch.diffs[patchDiffLength++] = diffs[x];\n postpatch_text = postpatch_text.substring(0, char_count2) +\n postpatch_text.substring(char_count2 +\n diff_text.length);\n break;\n case DIFF_EQUAL:\n if (diff_text.length <= 2 * this.Patch_Margin &&\n patchDiffLength && diffs.length != x + 1) {\n // Small equality inside a patch.\n patch.diffs[patchDiffLength++] = diffs[x];\n patch.length1 += diff_text.length;\n patch.length2 += diff_text.length;\n } else if (diff_text.length >= 2 * this.Patch_Margin) {\n // Time for a new patch.\n if (patchDiffLength) {\n this.patch_addContext_(patch, prepatch_text);\n patches.push(patch);\n patch = new diff_match_patch.patch_obj();\n patchDiffLength = 0;\n // Unlike Unidiff, our patch lists have a rolling context.\n // http://code.google.com/p/google-diff-match-patch/wiki/Unidiff\n // Update prepatch text & pos to reflect the application of the\n // just completed patch.\n prepatch_text = postpatch_text;\n char_count1 = char_count2;\n }\n }\n break;\n }\n\n // Update the current character count.\n if (diff_type !== DIFF_INSERT) {\n char_count1 += diff_text.length;\n }\n if (diff_type !== DIFF_DELETE) {\n char_count2 += diff_text.length;\n }\n }\n // Pick up the leftover patch if not empty.\n if (patchDiffLength) {\n this.patch_addContext_(patch, prepatch_text);\n patches.push(patch);\n }\n\n return patches;\n};\n\n\n/**\n * Given an array of patches, return another array that is identical.\n * @param {!Array.} patches Array of Patch objects.\n * @return {!Array.} Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_deepCopy = function(patches) {\n // Making deep copies is hard in JavaScript.\n var patchesCopy = [];\n for (var x = 0; x < patches.length; x++) {\n var patch = patches[x];\n var patchCopy = new diff_match_patch.patch_obj();\n patchCopy.diffs = [];\n for (var y = 0; y < patch.diffs.length; y++) {\n patchCopy.diffs[y] = patch.diffs[y].slice();\n }\n patchCopy.start1 = patch.start1;\n patchCopy.start2 = patch.start2;\n patchCopy.length1 = patch.length1;\n patchCopy.length2 = patch.length2;\n patchesCopy[x] = patchCopy;\n }\n return patchesCopy;\n};\n\n\n/**\n * Merge a set of patches onto the text. Return a patched text, as well\n * as a list of true/false values indicating which patches were applied.\n * @param {!Array.} patches Array of Patch objects.\n * @param {string} text Old text.\n * @return {!Array.>} Two element Array, containing the\n * new text and an array of boolean values.\n */\ndiff_match_patch.prototype.patch_apply = function(patches, text) {\n if (patches.length == 0) {\n return [text, []];\n }\n\n // Deep copy the patches so that no changes are made to originals.\n patches = this.patch_deepCopy(patches);\n\n var nullPadding = this.patch_addPadding(patches);\n text = nullPadding + text + nullPadding;\n\n this.patch_splitMax(patches);\n // delta keeps track of the offset between the expected and actual location\n // of the previous patch. If there are patches expected at positions 10 and\n // 20, but the first patch was found at 12, delta is 2 and the second patch\n // has an effective expected position of 22.\n var delta = 0;\n var results = [];\n for (var x = 0; x < patches.length; x++) {\n var expected_loc = patches[x].start2 + delta;\n var text1 = this.diff_text1(patches[x].diffs);\n var start_loc;\n var end_loc = -1;\n if (text1.length > this.Match_MaxBits) {\n // patch_splitMax will only provide an oversized pattern in the case of\n // a monster delete.\n start_loc = this.match_main(text, text1.substring(0, this.Match_MaxBits),\n expected_loc);\n if (start_loc != -1) {\n end_loc = this.match_main(text,\n text1.substring(text1.length - this.Match_MaxBits),\n expected_loc + text1.length - this.Match_MaxBits);\n if (end_loc == -1 || start_loc >= end_loc) {\n // Can't find valid trailing context. Drop this patch.\n start_loc = -1;\n }\n }\n } else {\n start_loc = this.match_main(text, text1, expected_loc);\n }\n if (start_loc == -1) {\n // No match found. :(\n results[x] = false;\n // Subtract the delta for this failed patch from subsequent patches.\n delta -= patches[x].length2 - patches[x].length1;\n } else {\n // Found a match. :)\n results[x] = true;\n delta = start_loc - expected_loc;\n var text2;\n if (end_loc == -1) {\n text2 = text.substring(start_loc, start_loc + text1.length);\n } else {\n text2 = text.substring(start_loc, end_loc + this.Match_MaxBits);\n }\n if (text1 == text2) {\n // Perfect match, just shove the replacement text in.\n text = text.substring(0, start_loc) +\n this.diff_text2(patches[x].diffs) +\n text.substring(start_loc + text1.length);\n } else {\n // Imperfect match. Run a diff to get a framework of equivalent\n // indices.\n var diffs = this.diff_main(text1, text2, false);\n if (text1.length > this.Match_MaxBits &&\n this.diff_levenshtein(diffs) / text1.length >\n this.Patch_DeleteThreshold) {\n // The end points match, but the content is unacceptably bad.\n results[x] = false;\n } else {\n this.diff_cleanupSemanticLossless(diffs);\n var index1 = 0;\n var index2;\n for (var y = 0; y < patches[x].diffs.length; y++) {\n var mod = patches[x].diffs[y];\n if (mod[0] !== DIFF_EQUAL) {\n index2 = this.diff_xIndex(diffs, index1);\n }\n if (mod[0] === DIFF_INSERT) { // Insertion\n text = text.substring(0, start_loc + index2) + mod[1] +\n text.substring(start_loc + index2);\n } else if (mod[0] === DIFF_DELETE) { // Deletion\n text = text.substring(0, start_loc + index2) +\n text.substring(start_loc + this.diff_xIndex(diffs,\n index1 + mod[1].length));\n }\n if (mod[0] !== DIFF_DELETE) {\n index1 += mod[1].length;\n }\n }\n }\n }\n }\n }\n // Strip the padding off.\n text = text.substring(nullPadding.length, text.length - nullPadding.length);\n return [text, results];\n};\n\n\n/**\n * Add some padding on text start and end so that edges can match something.\n * Intended to be called only from within patch_apply.\n * @param {!Array.} patches Array of Patch objects.\n * @return {string} The padding string added to each side.\n */\ndiff_match_patch.prototype.patch_addPadding = function(patches) {\n var paddingLength = this.Patch_Margin;\n var nullPadding = '';\n for (var x = 1; x <= paddingLength; x++) {\n nullPadding += String.fromCharCode(x);\n }\n\n // Bump all the patches forward.\n for (var x = 0; x < patches.length; x++) {\n patches[x].start1 += paddingLength;\n patches[x].start2 += paddingLength;\n }\n\n // Add some padding on start of first diff.\n var patch = patches[0];\n var diffs = patch.diffs;\n if (diffs.length == 0 || diffs[0][0] != DIFF_EQUAL) {\n // Add nullPadding equality.\n diffs.unshift([DIFF_EQUAL, nullPadding]);\n patch.start1 -= paddingLength; // Should be 0.\n patch.start2 -= paddingLength; // Should be 0.\n patch.length1 += paddingLength;\n patch.length2 += paddingLength;\n } else if (paddingLength > diffs[0][1].length) {\n // Grow first equality.\n var extraLength = paddingLength - diffs[0][1].length;\n diffs[0][1] = nullPadding.substring(diffs[0][1].length) + diffs[0][1];\n patch.start1 -= extraLength;\n patch.start2 -= extraLength;\n patch.length1 += extraLength;\n patch.length2 += extraLength;\n }\n\n // Add some padding on end of last diff.\n patch = patches[patches.length - 1];\n diffs = patch.diffs;\n if (diffs.length == 0 || diffs[diffs.length - 1][0] != DIFF_EQUAL) {\n // Add nullPadding equality.\n diffs.push([DIFF_EQUAL, nullPadding]);\n patch.length1 += paddingLength;\n patch.length2 += paddingLength;\n } else if (paddingLength > diffs[diffs.length - 1][1].length) {\n // Grow last equality.\n var extraLength = paddingLength - diffs[diffs.length - 1][1].length;\n diffs[diffs.length - 1][1] += nullPadding.substring(0, extraLength);\n patch.length1 += extraLength;\n patch.length2 += extraLength;\n }\n\n return nullPadding;\n};\n\n\n/**\n * Look through the patches and break up any which are longer than the maximum\n * limit of the match algorithm.\n * Intended to be called only from within patch_apply.\n * @param {!Array.} patches Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_splitMax = function(patches) {\n var patch_size = this.Match_MaxBits;\n for (var x = 0; x < patches.length; x++) {\n if (patches[x].length1 <= patch_size) {\n continue;\n }\n var bigpatch = patches[x];\n // Remove the big old patch.\n patches.splice(x--, 1);\n var start1 = bigpatch.start1;\n var start2 = bigpatch.start2;\n var precontext = '';\n while (bigpatch.diffs.length !== 0) {\n // Create one of several smaller patches.\n var patch = new diff_match_patch.patch_obj();\n var empty = true;\n patch.start1 = start1 - precontext.length;\n patch.start2 = start2 - precontext.length;\n if (precontext !== '') {\n patch.length1 = patch.length2 = precontext.length;\n patch.diffs.push([DIFF_EQUAL, precontext]);\n }\n while (bigpatch.diffs.length !== 0 &&\n patch.length1 < patch_size - this.Patch_Margin) {\n var diff_type = bigpatch.diffs[0][0];\n var diff_text = bigpatch.diffs[0][1];\n if (diff_type === DIFF_INSERT) {\n // Insertions are harmless.\n patch.length2 += diff_text.length;\n start2 += diff_text.length;\n patch.diffs.push(bigpatch.diffs.shift());\n empty = false;\n } else if (diff_type === DIFF_DELETE && patch.diffs.length == 1 &&\n patch.diffs[0][0] == DIFF_EQUAL &&\n diff_text.length > 2 * patch_size) {\n // This is a large deletion. Let it pass in one chunk.\n patch.length1 += diff_text.length;\n start1 += diff_text.length;\n empty = false;\n patch.diffs.push([diff_type, diff_text]);\n bigpatch.diffs.shift();\n } else {\n // Deletion or equality. Only take as much as we can stomach.\n diff_text = diff_text.substring(0,\n patch_size - patch.length1 - this.Patch_Margin);\n patch.length1 += diff_text.length;\n start1 += diff_text.length;\n if (diff_type === DIFF_EQUAL) {\n patch.length2 += diff_text.length;\n start2 += diff_text.length;\n } else {\n empty = false;\n }\n patch.diffs.push([diff_type, diff_text]);\n if (diff_text == bigpatch.diffs[0][1]) {\n bigpatch.diffs.shift();\n } else {\n bigpatch.diffs[0][1] =\n bigpatch.diffs[0][1].substring(diff_text.length);\n }\n }\n }\n // Compute the head context for the next patch.\n precontext = this.diff_text2(patch.diffs);\n precontext =\n precontext.substring(precontext.length - this.Patch_Margin);\n // Append the end context for this patch.\n var postcontext = this.diff_text1(bigpatch.diffs)\n .substring(0, this.Patch_Margin);\n if (postcontext !== '') {\n patch.length1 += postcontext.length;\n patch.length2 += postcontext.length;\n if (patch.diffs.length !== 0 &&\n patch.diffs[patch.diffs.length - 1][0] === DIFF_EQUAL) {\n patch.diffs[patch.diffs.length - 1][1] += postcontext;\n } else {\n patch.diffs.push([DIFF_EQUAL, postcontext]);\n }\n }\n if (!empty) {\n patches.splice(++x, 0, patch);\n }\n }\n }\n};\n\n\n/**\n * Take a list of patches and return a textual representation.\n * @param {!Array.} patches Array of Patch objects.\n * @return {string} Text representation of patches.\n */\ndiff_match_patch.prototype.patch_toText = function(patches) {\n var text = [];\n for (var x = 0; x < patches.length; x++) {\n text[x] = patches[x];\n }\n return text.join('');\n};\n\n\n/**\n * Parse a textual representation of patches and return a list of Patch objects.\n * @param {string} textline Text representation of patches.\n * @return {!Array.} Array of Patch objects.\n * @throws {!Error} If invalid input.\n */\ndiff_match_patch.prototype.patch_fromText = function(textline) {\n var patches = [];\n if (!textline) {\n return patches;\n }\n var text = textline.split('\\n');\n var textPointer = 0;\n var patchHeader = /^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;\n while (textPointer < text.length) {\n var m = text[textPointer].match(patchHeader);\n if (!m) {\n throw new Error('Invalid patch string: ' + text[textPointer]);\n }\n var patch = new diff_match_patch.patch_obj();\n patches.push(patch);\n patch.start1 = parseInt(m[1], 10);\n if (m[2] === '') {\n patch.start1--;\n patch.length1 = 1;\n } else if (m[2] == '0') {\n patch.length1 = 0;\n } else {\n patch.start1--;\n patch.length1 = parseInt(m[2], 10);\n }\n\n patch.start2 = parseInt(m[3], 10);\n if (m[4] === '') {\n patch.start2--;\n patch.length2 = 1;\n } else if (m[4] == '0') {\n patch.length2 = 0;\n } else {\n patch.start2--;\n patch.length2 = parseInt(m[4], 10);\n }\n textPointer++;\n\n while (textPointer < text.length) {\n var sign = text[textPointer].charAt(0);\n try {\n var line = decodeURI(text[textPointer].substring(1));\n } catch (ex) {\n // Malformed URI sequence.\n throw new Error('Illegal escape in patch_fromText: ' + line);\n }\n if (sign == '-') {\n // Deletion.\n patch.diffs.push([DIFF_DELETE, line]);\n } else if (sign == '+') {\n // Insertion.\n patch.diffs.push([DIFF_INSERT, line]);\n } else if (sign == ' ') {\n // Minor equality.\n patch.diffs.push([DIFF_EQUAL, line]);\n } else if (sign == '@') {\n // Start of next patch.\n break;\n } else if (sign === '') {\n // Blank line? Whatever.\n } else {\n // WTF?\n throw new Error('Invalid patch mode \"' + sign + '\" in: ' + line);\n }\n textPointer++;\n }\n }\n return patches;\n};\n\n\n/**\n * Class representing one patch operation.\n * @constructor\n */\ndiff_match_patch.patch_obj = function() {\n /** @type {!Array.} */\n this.diffs = [];\n /** @type {?number} */\n this.start1 = null;\n /** @type {?number} */\n this.start2 = null;\n /** @type {number} */\n this.length1 = 0;\n /** @type {number} */\n this.length2 = 0;\n};\n\n\n/**\n * Emmulate GNU diff's format.\n * Header: @@ -382,8 +481,9 @@\n * Indicies are printed as 1-based, not 0-based.\n * @return {string} The GNU diff string.\n */\ndiff_match_patch.patch_obj.prototype.toString = function() {\n var coords1, coords2;\n if (this.length1 === 0) {\n coords1 = this.start1 + ',0';\n } else if (this.length1 == 1) {\n coords1 = this.start1 + 1;\n } else {\n coords1 = (this.start1 + 1) + ',' + this.length1;\n }\n if (this.length2 === 0) {\n coords2 = this.start2 + ',0';\n } else if (this.length2 == 1) {\n coords2 = this.start2 + 1;\n } else {\n coords2 = (this.start2 + 1) + ',' + this.length2;\n }\n var text = ['@@ -' + coords1 + ' +' + coords2 + ' @@\\n'];\n var op;\n // Escape the body of the patch with %xx notation.\n for (var x = 0; x < this.diffs.length; x++) {\n switch (this.diffs[x][0]) {\n case DIFF_INSERT:\n op = '+';\n break;\n case DIFF_DELETE:\n op = '-';\n break;\n case DIFF_EQUAL:\n op = ' ';\n break;\n }\n text[x + 1] = op + encodeURI(this.diffs[x][1]) + '\\n';\n }\n return text.join('').replace(/%20/g, ' ');\n};\n\n\n// The following export code was added by @ForbesLindesay\nmodule.exports = diff_match_patch;\nmodule.exports['diff_match_patch'] = diff_match_patch;\nmodule.exports['DIFF_DELETE'] = DIFF_DELETE;\nmodule.exports['DIFF_INSERT'] = DIFF_INSERT;\nmodule.exports['DIFF_EQUAL'] = DIFF_EQUAL;\n});\n\n/* global diff_match_patch */\nvar TEXT_DIFF = 2;\nvar DEFAULT_MIN_LENGTH = 60;\nvar cachedDiffPatch = null;\n\nvar getDiffMatchPatch = function getDiffMatchPatch(required) {\n /* jshint camelcase: false */\n\n if (!cachedDiffPatch) {\n var instance = void 0;\n /* eslint-disable camelcase, new-cap */\n if (typeof diff_match_patch !== 'undefined') {\n // already loaded, probably a browser\n instance = typeof diff_match_patch === 'function' ? new diff_match_patch() : new diff_match_patch.diff_match_patch();\n } else if (diffMatchPatch) {\n try {\n instance = diffMatchPatch && new diffMatchPatch();\n } catch (err) {\n instance = null;\n }\n }\n /* eslint-enable camelcase, new-cap */\n if (!instance) {\n if (!required) {\n return null;\n }\n var error = new Error('text diff_match_patch library not found');\n // eslint-disable-next-line camelcase\n error.diff_match_patch_not_found = true;\n throw error;\n }\n cachedDiffPatch = {\n diff: function diff(txt1, txt2) {\n return instance.patch_toText(instance.patch_make(txt1, txt2));\n },\n patch: function patch(txt1, _patch) {\n var results = instance.patch_apply(instance.patch_fromText(_patch), txt1);\n for (var i = 0; i < results[1].length; i++) {\n if (!results[1][i]) {\n var _error = new Error('text patch failed');\n _error.textPatchFailed = true;\n }\n }\n return results[0];\n }\n };\n }\n return cachedDiffPatch;\n};\n\nvar diffFilter$3 = function textsDiffFilter(context) {\n if (context.leftType !== 'string') {\n return;\n }\n var minLength = context.options && context.options.textDiff && context.options.textDiff.minLength || DEFAULT_MIN_LENGTH;\n if (context.left.length < minLength || context.right.length < minLength) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n // large text, try to use a text-diff algorithm\n var diffMatchPatch$$1 = getDiffMatchPatch();\n if (!diffMatchPatch$$1) {\n // diff-match-patch library not available,\n // fallback to regular string replace\n context.setResult([context.left, context.right]).exit();\n return;\n }\n var diff = diffMatchPatch$$1.diff;\n context.setResult([diff(context.left, context.right), 0, TEXT_DIFF]).exit();\n};\ndiffFilter$3.filterName = 'texts';\n\nvar patchFilter$3 = function textsPatchFilter(context) {\n if (context.nested) {\n return;\n }\n if (context.delta[2] !== TEXT_DIFF) {\n return;\n }\n\n // text-diff, use a text-patch algorithm\n var patch = getDiffMatchPatch(true).patch;\n context.setResult(patch(context.left, context.delta[0])).exit();\n};\npatchFilter$3.filterName = 'texts';\n\nvar textDeltaReverse = function textDeltaReverse(delta) {\n var i = void 0;\n var l = void 0;\n var lines = void 0;\n var line = void 0;\n var lineTmp = void 0;\n var header = null;\n var headerRegex = /^@@ +-(\\d+),(\\d+) +\\+(\\d+),(\\d+) +@@$/;\n var lineHeader = void 0;\n lines = delta.split('\\n');\n for (i = 0, l = lines.length; i < l; i++) {\n line = lines[i];\n var lineStart = line.slice(0, 1);\n if (lineStart === '@') {\n header = headerRegex.exec(line);\n lineHeader = i;\n\n // fix header\n lines[lineHeader] = '@@ -' + header[3] + ',' + header[4] + ' +' + header[1] + ',' + header[2] + ' @@';\n } else if (lineStart === '+') {\n lines[i] = '-' + lines[i].slice(1);\n if (lines[i - 1].slice(0, 1) === '+') {\n // swap lines to keep default order (-+)\n lineTmp = lines[i];\n lines[i] = lines[i - 1];\n lines[i - 1] = lineTmp;\n }\n } else if (lineStart === '-') {\n lines[i] = '+' + lines[i].slice(1);\n }\n }\n return lines.join('\\n');\n};\n\nvar reverseFilter$3 = function textsReverseFilter(context) {\n if (context.nested) {\n return;\n }\n if (context.delta[2] !== TEXT_DIFF) {\n return;\n }\n\n // text-diff, use a text-diff algorithm\n context.setResult([textDeltaReverse(context.delta[0]), 0, TEXT_DIFF]).exit();\n};\nreverseFilter$3.filterName = 'texts';\n\nvar DiffPatcher = function () {\n function DiffPatcher(options) {\n classCallCheck(this, DiffPatcher);\n\n this.processor = new Processor(options);\n this.processor.pipe(new Pipe('diff').append(collectChildrenDiffFilter, diffFilter, diffFilter$2, diffFilter$3, objectsDiffFilter, diffFilter$1).shouldHaveResult());\n this.processor.pipe(new Pipe('patch').append(collectChildrenPatchFilter, collectChildrenPatchFilter$1, patchFilter, patchFilter$3, patchFilter$1, patchFilter$2).shouldHaveResult());\n this.processor.pipe(new Pipe('reverse').append(collectChildrenReverseFilter, collectChildrenReverseFilter$1, reverseFilter, reverseFilter$3, reverseFilter$1, reverseFilter$2).shouldHaveResult());\n }\n\n createClass(DiffPatcher, [{\n key: 'options',\n value: function options() {\n var _processor;\n\n return (_processor = this.processor).options.apply(_processor, arguments);\n }\n }, {\n key: 'diff',\n value: function diff(left, right) {\n return this.processor.process(new DiffContext(left, right));\n }\n }, {\n key: 'patch',\n value: function patch(left, delta) {\n return this.processor.process(new PatchContext(left, delta));\n }\n }, {\n key: 'reverse',\n value: function reverse(delta) {\n return this.processor.process(new ReverseContext(delta));\n }\n }, {\n key: 'unpatch',\n value: function unpatch(right, delta) {\n return this.patch(right, this.reverse(delta));\n }\n }, {\n key: 'clone',\n value: function clone$$1(value) {\n return clone(value);\n }\n }]);\n return DiffPatcher;\n}();\n\nvar isArray$3 = typeof Array.isArray === 'function' ? Array.isArray : function (a) {\n return a instanceof Array;\n};\n\nvar getObjectKeys = typeof Object.keys === 'function' ? function (obj) {\n return Object.keys(obj);\n} : function (obj) {\n var names = [];\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n names.push(property);\n }\n }\n return names;\n};\n\nvar trimUnderscore = function trimUnderscore(str) {\n if (str.substr(0, 1) === '_') {\n return str.slice(1);\n }\n return str;\n};\n\nvar arrayKeyToSortNumber = function arrayKeyToSortNumber(key) {\n if (key === '_t') {\n return -1;\n } else {\n if (key.substr(0, 1) === '_') {\n return parseInt(key.slice(1), 10);\n } else {\n return parseInt(key, 10) + 0.1;\n }\n }\n};\n\nvar arrayKeyComparer = function arrayKeyComparer(key1, key2) {\n return arrayKeyToSortNumber(key1) - arrayKeyToSortNumber(key2);\n};\n\nvar BaseFormatter = function () {\n function BaseFormatter() {\n classCallCheck(this, BaseFormatter);\n }\n\n createClass(BaseFormatter, [{\n key: 'format',\n value: function format(delta, left) {\n var context = {};\n this.prepareContext(context);\n this.recurse(context, delta, left);\n return this.finalize(context);\n }\n }, {\n key: 'prepareContext',\n value: function prepareContext(context) {\n context.buffer = [];\n context.out = function () {\n var _buffer;\n\n (_buffer = this.buffer).push.apply(_buffer, arguments);\n };\n }\n }, {\n key: 'typeFormattterNotFound',\n value: function typeFormattterNotFound(context, deltaType) {\n throw new Error('cannot format delta type: ' + deltaType);\n }\n }, {\n key: 'typeFormattterErrorFormatter',\n value: function typeFormattterErrorFormatter(context, err) {\n return err.toString();\n }\n }, {\n key: 'finalize',\n value: function finalize(_ref) {\n var buffer = _ref.buffer;\n\n if (isArray$3(buffer)) {\n return buffer.join('');\n }\n }\n }, {\n key: 'recurse',\n value: function recurse(context, delta, left, key, leftKey, movedFrom, isLast) {\n var useMoveOriginHere = delta && movedFrom;\n var leftValue = useMoveOriginHere ? movedFrom.value : left;\n\n if (typeof delta === 'undefined' && typeof key === 'undefined') {\n return undefined;\n }\n\n var type = this.getDeltaType(delta, movedFrom);\n var nodeType = type === 'node' ? delta._t === 'a' ? 'array' : 'object' : '';\n\n if (typeof key !== 'undefined') {\n this.nodeBegin(context, key, leftKey, type, nodeType, isLast);\n } else {\n this.rootBegin(context, type, nodeType);\n }\n\n var typeFormattter = void 0;\n try {\n typeFormattter = this['format_' + type] || this.typeFormattterNotFound(context, type);\n typeFormattter.call(this, context, delta, leftValue, key, leftKey, movedFrom);\n } catch (err) {\n this.typeFormattterErrorFormatter(context, err, delta, leftValue, key, leftKey, movedFrom);\n if (typeof console !== 'undefined' && console.error) {\n console.error(err.stack);\n }\n }\n\n if (typeof key !== 'undefined') {\n this.nodeEnd(context, key, leftKey, type, nodeType, isLast);\n } else {\n this.rootEnd(context, type, nodeType);\n }\n }\n }, {\n key: 'formatDeltaChildren',\n value: function formatDeltaChildren(context, delta, left) {\n var self = this;\n this.forEachDeltaKey(delta, left, function (key, leftKey, movedFrom, isLast) {\n self.recurse(context, delta[key], left ? left[leftKey] : undefined, key, leftKey, movedFrom, isLast);\n });\n }\n }, {\n key: 'forEachDeltaKey',\n value: function forEachDeltaKey(delta, left, fn) {\n var keys = getObjectKeys(delta);\n var arrayKeys = delta._t === 'a';\n var moveDestinations = {};\n var name = void 0;\n if (typeof left !== 'undefined') {\n for (name in left) {\n if (Object.prototype.hasOwnProperty.call(left, name)) {\n if (typeof delta[name] === 'undefined' && (!arrayKeys || typeof delta['_' + name] === 'undefined')) {\n keys.push(name);\n }\n }\n }\n }\n // look for move destinations\n for (name in delta) {\n if (Object.prototype.hasOwnProperty.call(delta, name)) {\n var value = delta[name];\n if (isArray$3(value) && value[2] === 3) {\n moveDestinations[value[1].toString()] = {\n key: name,\n value: left && left[parseInt(name.substr(1))]\n };\n if (this.includeMoveDestinations !== false) {\n if (typeof left === 'undefined' && typeof delta[value[1]] === 'undefined') {\n keys.push(value[1].toString());\n }\n }\n }\n }\n }\n if (arrayKeys) {\n keys.sort(arrayKeyComparer);\n } else {\n keys.sort();\n }\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n if (arrayKeys && key === '_t') {\n continue;\n }\n var leftKey = arrayKeys ? typeof key === 'number' ? key : parseInt(trimUnderscore(key), 10) : key;\n var isLast = index === length - 1;\n fn(key, leftKey, moveDestinations[leftKey], isLast);\n }\n }\n }, {\n key: 'getDeltaType',\n value: function getDeltaType(delta, movedFrom) {\n if (typeof delta === 'undefined') {\n if (typeof movedFrom !== 'undefined') {\n return 'movedestination';\n }\n return 'unchanged';\n }\n if (isArray$3(delta)) {\n if (delta.length === 1) {\n return 'added';\n }\n if (delta.length === 2) {\n return 'modified';\n }\n if (delta.length === 3 && delta[2] === 0) {\n return 'deleted';\n }\n if (delta.length === 3 && delta[2] === 2) {\n return 'textdiff';\n }\n if (delta.length === 3 && delta[2] === 3) {\n return 'moved';\n }\n } else if ((typeof delta === 'undefined' ? 'undefined' : _typeof(delta)) === 'object') {\n return 'node';\n }\n return 'unknown';\n }\n }, {\n key: 'parseTextDiff',\n value: function parseTextDiff(value) {\n var output = [];\n var lines = value.split('\\n@@ ');\n for (var i = 0, l = lines.length; i < l; i++) {\n var line = lines[i];\n var lineOutput = {\n pieces: []\n };\n var location = /^(?:@@ )?[-+]?(\\d+),(\\d+)/.exec(line).slice(1);\n lineOutput.location = {\n line: location[0],\n chr: location[1]\n };\n var pieces = line.split('\\n').slice(1);\n for (var pieceIndex = 0, piecesLength = pieces.length; pieceIndex < piecesLength; pieceIndex++) {\n var piece = pieces[pieceIndex];\n if (!piece.length) {\n continue;\n }\n var pieceOutput = {\n type: 'context'\n };\n if (piece.substr(0, 1) === '+') {\n pieceOutput.type = 'added';\n } else if (piece.substr(0, 1) === '-') {\n pieceOutput.type = 'deleted';\n }\n pieceOutput.text = piece.slice(1);\n lineOutput.pieces.push(pieceOutput);\n }\n output.push(lineOutput);\n }\n return output;\n }\n }]);\n return BaseFormatter;\n}();\n\n\n\nvar base = Object.freeze({\n\tdefault: BaseFormatter\n});\n\nvar HtmlFormatter = function (_BaseFormatter) {\n inherits(HtmlFormatter, _BaseFormatter);\n\n function HtmlFormatter() {\n classCallCheck(this, HtmlFormatter);\n return possibleConstructorReturn(this, (HtmlFormatter.__proto__ || Object.getPrototypeOf(HtmlFormatter)).apply(this, arguments));\n }\n\n createClass(HtmlFormatter, [{\n key: 'typeFormattterErrorFormatter',\n value: function typeFormattterErrorFormatter(context, err) {\n context.out('