Files
e-tib.com/.next/dev/server/vendor-chunks/prettier@3.4.2.js
Marc Mintel d14122005d Initial commit: E-TIB production hardening & E2E foundation
Former-commit-id: ef04fca3d76375630c05aac117bf586953f3b657
2026-04-28 19:11:38 +02:00

35 lines
609 KiB
JavaScript

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "vendor-chunks/prettier@3.4.2";
exports.ids = ["vendor-chunks/prettier@3.4.2"];
exports.modules = {
/***/ "(action-browser)/./node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/html.mjs":
/*!**********************************************************************************!*\
!*** ./node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/html.mjs ***!
\**********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Nh),\n/* harmony export */ languages: () => (/* binding */ As),\n/* harmony export */ options: () => (/* binding */ vs),\n/* harmony export */ parsers: () => (/* binding */ Gr),\n/* harmony export */ printers: () => (/* binding */ Io)\n/* harmony export */ });\nvar ri=Object.defineProperty;var Xr=t=>{throw TypeError(t)};var Jr=(t,e)=>{for(var r in e)ri(t,r,{get:e[r],enumerable:!0})};var Zr=(t,e,r)=>e.has(t)||Xr(\"Cannot \"+r);var K=(t,e,r)=>(Zr(t,e,\"read from private field\"),r?r.call(t):e.get(t)),en=(t,e,r)=>e.has(t)?Xr(\"Cannot add the same private member more than once\"):e instanceof WeakSet?e.add(t):e.set(t,r),tn=(t,e,r,n)=>(Zr(t,e,\"write to private field\"),n?n.call(t,r):e.set(t,r),r);var Yr={};Jr(Yr,{languages:()=>As,options:()=>vs,parsers:()=>Gr,printers:()=>Io});var ni=(t,e,r,n)=>{if(!(t&&e==null))return e.replaceAll?e.replaceAll(r,n):r.global?e.replace(r,n):e.split(r).join(n)},w=ni;var Ve=\"string\",Ue=\"array\",We=\"cursor\",De=\"indent\",ve=\"align\",ze=\"trim\",ye=\"group\",we=\"fill\",be=\"if-break\",Te=\"indent-if-break\",Ge=\"line-suffix\",Ye=\"line-suffix-boundary\",Q=\"line\",je=\"label\",xe=\"break-parent\",St=new Set([We,De,ve,ze,ye,we,be,Te,Ge,Ye,Q,je,xe]);function si(t){if(typeof t==\"string\")return Ve;if(Array.isArray(t))return Ue;if(!t)return;let{type:e}=t;if(St.has(e))return e}var Ke=si;var ii=t=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(t);function ai(t){let e=t===null?\"null\":typeof t;if(e!==\"string\"&&e!==\"object\")return`Unexpected doc '${e}', \nExpected it to be 'string' or 'object'.`;if(Ke(t))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(t);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=ii([...St].map(s=>`'${s}'`));return`Unexpected doc.type '${t.type}'.\nExpected it to be ${n}.`}var or=class extends Error{name=\"InvalidDocError\";constructor(e){super(ai(e)),this.doc=e}},ur=or;var rn=()=>{},re=rn,_t=rn;function k(t){return re(t),{type:De,contents:t}}function nn(t,e){return re(e),{type:ve,contents:e,n:t}}function _(t,e={}){return re(t),_t(e.expandedStates,!0),{type:ye,id:e.id,contents:t,break:!!e.shouldBreak,expandedStates:e.expandedStates}}function sn(t){return nn(Number.NEGATIVE_INFINITY,t)}function an(t){return nn({type:\"root\"},t)}function Et(t){return _t(t),{type:we,parts:t}}function le(t,e=\"\",r={}){return re(t),e!==\"\"&&re(e),{type:be,breakContents:t,flatContents:e,groupId:r.groupId}}function on(t,e){return re(t),{type:Te,contents:t,groupId:e.groupId,negate:e.negate}}var ne={type:xe};var oi={type:Q,hard:!0},ui={type:Q,hard:!0,literal:!0},E={type:Q},v={type:Q,soft:!0},S=[oi,ne],un=[ui,ne];function q(t,e){re(t),_t(e);let r=[];for(let n=0;n<e.length;n++)n!==0&&r.push(t),r.push(e[n]);return r}var li=(t,e,r)=>{if(!(t&&e==null))return Array.isArray(e)||typeof e==\"string\"?e[r<0?e.length+r:r]:e.at(r)},se=li;function lr(t,e){if(typeof t==\"string\")return e(t);let r=new Map;return n(t);function n(i){if(r.has(i))return r.get(i);let a=s(i);return r.set(i,a),a}function s(i){switch(Ke(i)){case Ue:return e(i.map(n));case we:return e({...i,parts:i.parts.map(n)});case be:return e({...i,breakContents:n(i.breakContents),flatContents:n(i.flatContents)});case ye:{let{expandedStates:a,contents:o}=i;return a?(a=a.map(n),o=a[0]):o=n(o),e({...i,contents:o,expandedStates:a})}case ve:case De:case Te:case je:case Ge:return e({...i,contents:n(i.contents)});case Ve:case We:case ze:case Ye:case Q:case xe:return e(i);default:throw new ur(i)}}}function B(t,e=un){return lr(t,r=>typeof r==\"string\"?q(e,r.split(`\n`)):r)}var At=\"'\",ln='\"';function ci(t,e){let r=e===!0||e===At?At:ln,n=r===At?ln:At,s=0,i=0;for(let a of t)a===r?s++:a===n&&i++;return s>i?n:r}var cn=ci;function cr(t){if(typeof t!=\"string\")throw new TypeError(\"Expected a string\");return t.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var H,pr=class{constructor(e){en(this,H);tn(this,H,new Set(e))}getLeadingWhitespaceCount(e){let r=K(this,H),n=0;for(let s=0;s<e.length&&r.has(e.charAt(s));s++)n++;return n}getTrailingWhitespaceCount(e){let r=K(this,H),n=0;for(let s=e.length-1;s>=0&&r.has(e.charAt(s));s--)n++;return n}getLeadingWhitespace(e){let r=this.getLeadingWhitespaceCount(e);return e.slice(0,r)}getTrailingWhitespace(e){let r=this.getTrailingWhitespaceCount(e);return e.slice(e.length-r)}hasLeadingWhitespace(e){return K(this,H).has(e.charAt(0))}hasTrailingWhitespace(e){return K(this,H).has(se(!1,e,-1))}trimStart(e){let r=this.getLeadingWhitespaceCount(e);return e.slice(r)}trimEnd(e){let r=this.getTrailingWhitespaceCount(e);return e.slice(0,e.length-r)}trim(e){return this.trimEnd(this.trimStart(e))}split(e,r=!1){let n=`[${cr([...K(this,H)].join(\"\"))}]+`,s=new RegExp(r?`(${n})`:n,\"u\");return e.split(s)}hasWhitespaceCharacter(e){let r=K(this,H);return Array.prototype.some.call(e,n=>r.has(n))}hasNonWhitespaceCharacter(e){let r=K(this,H);return Array.prototype.some.call(e,n=>!r.has(n))}isWhitespaceOnly(e){let r=K(this,H);return Array.prototype.every.call(e,n=>r.has(n))}};H=new WeakMap;var pn=pr;var pi=[\"\t\",`\n`,\"\\f\",\"\\r\",\" \"],hi=new pn(pi),N=hi;var hr=class extends Error{name=\"UnexpectedNodeError\";constructor(e,r,n=\"type\"){super(`Unexpected ${r} node ${n}: ${JSON.stringify(e[n])}.`),this.node=e}},hn=hr;function mi(t){return(t==null?void 0:t.type)===\"front-matter\"}var ke=mi;var fi=new Set([\"sourceSpan\",\"startSourceSpan\",\"endSourceSpan\",\"nameSpan\",\"valueSpan\",\"keySpan\",\"tagDefinition\",\"tokens\",\"valueTokens\",\"switchValueSourceSpan\",\"expSourceSpan\",\"valueSourceSpan\"]),di=new Set([\"if\",\"else if\",\"for\",\"switch\",\"case\"]);function mn(t,e){var r;if(t.type===\"text\"||t.type===\"comment\"||ke(t)||t.type===\"yaml\"||t.type===\"toml\")return null;if(t.type===\"attribute\"&&delete e.value,t.type===\"docType\"&&delete e.value,t.type===\"angularControlFlowBlock\"&&((r=t.parameters)!=null&&r.children))for(let n of e.parameters.children)di.has(t.name)?delete n.expression:n.expression=n.expression.trim();t.type===\"angularIcuExpression\"&&(e.switchValue=t.switchValue.trim()),t.type===\"angularLetDeclarationInitializer\"&&delete e.value}mn.ignoredProperties=fi;var fn=mn;async function gi(t,e){if(t.language===\"yaml\"){let r=t.value.trim(),n=r?await e(r,{parser:\"yaml\"}):\"\";return an([t.startDelimiter,t.explicitLanguage,S,n,n?S:\"\",t.endDelimiter])}}var dn=gi;function ce(t,e=!0){return[k([v,t]),e?v:\"\"]}function Y(t,e){let r=t.type===\"NGRoot\"?t.node.type===\"NGMicrosyntax\"&&t.node.body.length===1&&t.node.body[0].type===\"NGMicrosyntaxExpression\"?t.node.body[0].expression:t.node:t.type===\"JsExpressionRoot\"?t.node:t;return r&&(r.type===\"ObjectExpression\"||r.type===\"ArrayExpression\"||(e.parser===\"__vue_expression\"||e.parser===\"__vue_ts_expression\")&&(r.type===\"TemplateLiteral\"||r.type===\"StringLiteral\"))}async function T(t,e,r,n){r={__isInHtmlAttribute:!0,__embeddedInHtml:!0,...r};let s=!0;n&&(r.__onHtmlBindingRoot=(a,o)=>{s=n(a,o)});let i=await e(t,r,e);return s?_(i):ce(i)}function Ci(t,e,r,n){let{node:s}=r,i=n.originalText.slice(s.sourceSpan.start.offset,s.sourceSpan.end.offset);return/^\\s*$/u.test(i)?\"\":T(i,t,{parser:\"__ng_directive\",__isInHtmlAttribute:!1},Y)}var gn=Ci;var Si=t=>String(t).split(/[/\\\\]/u).pop();function Cn(t,e){if(!e)return;let r=Si(e).toLowerCase();return t.find(({filenames:n})=>n==null?void 0:n.some(s=>s.toLowerCase()===r))??t.find(({extensions:n})=>n==null?void 0:n.some(s=>r.endsWith(s)))}function _i(t,e){if(e)return t.find(({name:r})=>r.toLowerCase()===e)??t.find(({aliases:r})=>r==null?void 0:r.includes(e))??t.find(({extensions:r})=>r==null?void 0:r.includes(`.${e}`))}function Ei(t,e){let r=t.plugins.flatMap(s=>s.languages??[]),n=_i(r,e.language)??Cn(r,e.physicalFile)??Cn(r,e.file)??(e.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var Be=Ei;var Sn=\"inline\",_n={area:\"none\",base:\"none\",basefont:\"none\",datalist:\"none\",head:\"none\",link:\"none\",meta:\"none\",noembed:\"none\",noframes:\"none\",param:\"block\",rp:\"none\",script:\"block\",style:\"none\",template:\"inline\",title:\"none\",html:\"block\",body:\"block\",address:\"block\",blockquote:\"block\",center:\"block\",dialog:\"block\",div:\"block\",figure:\"block\",figcaption:\"block\",footer:\"block\",form:\"block\",header:\"block\",hr:\"block\",legend:\"block\",listing:\"block\",main:\"block\",p:\"block\",plaintext:\"block\",pre:\"block\",search:\"block\",xmp:\"block\",slot:\"contents\",ruby:\"ruby\",rt:\"ruby-text\",article:\"block\",aside:\"block\",h1:\"block\",h2:\"block\",h3:\"block\",h4:\"block\",h5:\"block\",h6:\"block\",hgroup:\"block\",nav:\"block\",section:\"block\",dir:\"block\",dd:\"block\",dl:\"block\",dt:\"block\",menu:\"block\",ol:\"block\",ul:\"block\",li:\"list-item\",table:\"table\",caption:\"table-caption\",colgroup:\"table-column-group\",col:\"table-column\",thead:\"table-header-group\",tbody:\"table-row-group\",tfoot:\"table-footer-group\",tr:\"table-row\",td:\"table-cell\",th:\"table-cell\",input:\"inline-block\",button:\"inline-block\",fieldset:\"block\",details:\"block\",summary:\"block\",marquee:\"inline-block\",source:\"block\",track:\"block\",meter:\"inline-block\",progress:\"inline-block\",object:\"inline-block\",video:\"inline-block\",audio:\"inline-block\",select:\"inline-block\",option:\"block\",optgroup:\"block\"},En=\"normal\",An={listing:\"pre\",plaintext:\"pre\",pre:\"pre\",xmp:\"pre\",nobr:\"nowrap\",table:\"initial\",textarea:\"pre-wrap\"};function Ai(t){return t.type===\"element\"&&!t.hasExplicitNamespace&&![\"html\",\"svg\"].includes(t.namespace)}var pe=Ai;var Di=t=>w(!1,t,/^[\\t\\f\\r ]*\\n/gu,\"\"),mr=t=>Di(N.trimEnd(t)),Dn=t=>{let e=t,r=N.getLeadingWhitespace(e);r&&(e=e.slice(r.length));let n=N.getTrailingWhitespace(e);return n&&(e=e.slice(0,-n.length)),{leadingWhitespace:r,trailingWhitespace:n,text:e}};function Dt(t,e){return!!(t.type===\"ieConditionalComment\"&&t.lastChild&&!t.lastChild.isSelfClosing&&!t.lastChild.endSourceSpan||t.type===\"ieConditionalComment\"&&!t.complete||he(t)&&t.children.some(r=>r.type!==\"text\"&&r.type!==\"interpolation\")||wt(t,e)&&!U(t)&&t.type!==\"interpolation\")}function me(t){return t.type===\"attribute\"||!t.parent||!t.prev?!1:vi(t.prev)}function vi(t){return t.type===\"comment\"&&t.value.trim()===\"prettier-ignore\"}function O(t){return t.type===\"text\"||t.type===\"comment\"}function U(t){return t.type===\"element\"&&(t.fullName===\"script\"||t.fullName===\"style\"||t.fullName===\"svg:style\"||t.fullName===\"svg:script\"||pe(t)&&(t.name===\"script\"||t.name===\"style\"))}function vn(t){return t.children&&!U(t)}function yn(t){return U(t)||t.type===\"interpolation\"||fr(t)}function fr(t){return In(t).startsWith(\"pre\")}function wn(t,e){var s,i;let r=n();if(r&&!t.prev&&((i=(s=t.parent)==null?void 0:s.tagDefinition)!=null&&i.ignoreFirstLf))return t.type===\"interpolation\";return r;function n(){return ke(t)||t.type===\"angularControlFlowBlock\"?!1:(t.type===\"text\"||t.type===\"interpolation\")&&t.prev&&(t.prev.type===\"text\"||t.prev.type===\"interpolation\")?!0:!t.parent||t.parent.cssDisplay===\"none\"?!1:he(t.parent)?!0:!(!t.prev&&(t.parent.type===\"root\"||he(t)&&t.parent||U(t.parent)||Je(t.parent,e)||!ki(t.parent.cssDisplay))||t.prev&&!Fi(t.prev.cssDisplay))}}function bn(t,e){return ke(t)||t.type===\"angularControlFlowBlock\"?!1:(t.type===\"text\"||t.type===\"interpolation\")&&t.next&&(t.next.type===\"text\"||t.next.type===\"interpolation\")?!0:!t.parent||t.parent.cssDisplay===\"none\"?!1:he(t.parent)?!0:!(!t.next&&(t.parent.type===\"root\"||he(t)&&t.parent||U(t.parent)||Je(t.parent,e)||!Bi(t.parent.cssDisplay))||t.next&&!Li(t.next.cssDisplay))}function Tn(t){return Ni(t.cssDisplay)&&!U(t)}function Qe(t){return ke(t)||t.next&&t.sourceSpan.end&&t.sourceSpan.end.line+1<t.next.sourceSpan.start.line}function xn(t){return dr(t)||t.type===\"element\"&&t.children.length>0&&([\"body\",\"script\",\"style\"].includes(t.name)||t.children.some(e=>wi(e)))||t.firstChild&&t.firstChild===t.lastChild&&t.firstChild.type!==\"text\"&&Bn(t.firstChild)&&(!t.lastChild.isTrailingSpaceSensitive||Ln(t.lastChild))}function dr(t){return t.type===\"element\"&&t.children.length>0&&([\"html\",\"head\",\"ul\",\"ol\",\"select\"].includes(t.name)||t.cssDisplay.startsWith(\"table\")&&t.cssDisplay!==\"table-cell\")}function vt(t){return Fn(t)||t.prev&&yi(t.prev)||kn(t)}function yi(t){return Fn(t)||t.type===\"element\"&&t.fullName===\"br\"||kn(t)}function kn(t){return Bn(t)&&Ln(t)}function Bn(t){return t.hasLeadingSpaces&&(t.prev?t.prev.sourceSpan.end.line<t.sourceSpan.start.line:t.parent.type===\"root\"||t.parent.startSourceSpan.end.line<t.sourceSpan.start.line)}function Ln(t){return t.hasTrailingSpaces&&(t.next?t.next.sourceSpan.start.line>t.sourceSpan.end.line:t.parent.type===\"root\"||t.parent.endSourceSpan&&t.parent.endSourceSpan.start.line>t.sourceSpan.end.line)}function Fn(t){switch(t.type){case\"ieConditionalComment\":case\"comment\":case\"directive\":return!0;case\"element\":return[\"script\",\"select\"].includes(t.name)}return!1}function yt(t){return t.lastChild?yt(t.lastChild):t}function wi(t){var e;return(e=t.children)==null?void 0:e.some(r=>r.type!==\"text\")}function Nn(t){if(t)switch(t){case\"module\":case\"text/javascript\":case\"text/babel\":case\"application/javascript\":return\"babel\";case\"application/x-typescript\":return\"typescript\";case\"text/markdown\":return\"markdown\";case\"text/html\":return\"html\";case\"text/x-handlebars-template\":return\"glimmer\";default:if(t.endsWith(\"json\")||t.endsWith(\"importmap\")||t===\"speculationrules\")return\"json\"}}function bi(t,e){let{name:r,attrMap:n}=t;if(r!==\"script\"||Object.prototype.hasOwnProperty.call(n,\"src\"))return;let{type:s,lang:i}=t.attrMap;return!i&&!s?\"babel\":Be(e,{language:i})??Nn(s)}function Ti(t,e){if(!wt(t,e))return;let{attrMap:r}=t;if(Object.prototype.hasOwnProperty.call(r,\"src\"))return;let{type:n,lang:s}=r;return Be(e,{language:s})??Nn(n)}function xi(t,e){if(t.name!==\"style\")return;let{lang:r}=t.attrMap;return r?Be(e,{language:r}):\"css\"}function gr(t,e){return bi(t,e)??xi(t,e)??Ti(t,e)}function Xe(t){return t===\"block\"||t===\"list-item\"||t.startsWith(\"table\")}function ki(t){return!Xe(t)&&t!==\"inline-block\"}function Bi(t){return!Xe(t)&&t!==\"inline-block\"}function Li(t){return!Xe(t)}function Fi(t){return!Xe(t)}function Ni(t){return!Xe(t)&&t!==\"inline-block\"}function he(t){return In(t).startsWith(\"pre\")}function Pi(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.parent}return!1}function Pn(t,e){var n;if(fe(t,e))return\"block\";if(((n=t.prev)==null?void 0:n.type)===\"comment\"){let s=t.prev.value.match(/^\\s*display:\\s*([a-z]+)\\s*$/u);if(s)return s[1]}let r=!1;if(t.type===\"element\"&&t.namespace===\"svg\")if(Pi(t,s=>s.fullName===\"svg:foreignObject\"))r=!0;else return t.name===\"svg\"?\"inline-block\":\"block\";switch(e.htmlWhitespaceSensitivity){case\"strict\":return\"inline\";case\"ignore\":return\"block\";default:return t.type===\"element\"&&(!t.namespace||r||pe(t))&&_n[t.name]||Sn}}function In(t){return t.type===\"element\"&&(!t.namespace||pe(t))&&An[t.name]||En}function Ii(t){let e=Number.POSITIVE_INFINITY;for(let r of t.split(`\n`)){if(r.length===0)continue;let n=N.getLeadingWhitespaceCount(r);if(n===0)return 0;r.length!==n&&n<e&&(e=n)}return e===Number.POSITIVE_INFINITY?0:e}function Cr(t,e=Ii(t)){return e===0?t:t.split(`\n`).map(r=>r.slice(e)).join(`\n`)}function Sr(t){return w(!1,w(!1,t,\"&apos;\",\"'\"),\"&quot;\",'\"')}function P(t){return Sr(t.value)}var Ri=new Set([\"template\",\"style\",\"script\"]);function Je(t,e){return fe(t,e)&&!Ri.has(t.fullName)}function fe(t,e){return e.parser===\"vue\"&&t.type===\"element\"&&t.parent.type===\"root\"&&t.fullName.toLowerCase()!==\"html\"}function wt(t,e){return fe(t,e)&&(Je(t,e)||t.attrMap.lang&&t.attrMap.lang!==\"html\")}function Rn(t){let e=t.fullName;return e.charAt(0)===\"#\"||e===\"slot-scope\"||e===\"v-slot\"||e.startsWith(\"v-slot:\")}function On(t,e){let r=t.parent;if(!fe(r,e))return!1;let n=r.fullName,s=t.fullName;return n===\"script\"&&s===\"setup\"||n===\"style\"&&s===\"vars\"}function bt(t,e=t.value){return t.parent.isWhitespaceSensitive?t.parent.isIndentationSensitive?B(e):B(Cr(mr(e)),S):q(E,N.split(e))}function Tt(t,e){return fe(t,e)&&t.name===\"script\"}var _r=/\\{\\{(.+?)\\}\\}/su;async function $n(t,e){let r=[];for(let[n,s]of t.split(_r).entries())if(n%2===0)r.push(B(s));else try{r.push(_([\"{{\",k([E,await T(s,e,{parser:\"__ng_interpolation\",__isInHtmlInterpolation:!0})]),E,\"}}\"]))}catch{r.push(\"{{\",B(s),\"}}\")}return r}function Er({parser:t}){return(e,r,n)=>T(P(n.node),e,{parser:t},Y)}var Oi=Er({parser:\"__ng_action\"}),$i=Er({parser:\"__ng_binding\"}),Mi=Er({parser:\"__ng_directive\"});function qi(t,e){if(e.parser!==\"angular\")return;let{node:r}=t,n=r.fullName;if(n.startsWith(\"(\")&&n.endsWith(\")\")||n.startsWith(\"on-\"))return Oi;if(n.startsWith(\"[\")&&n.endsWith(\"]\")||/^bind(?:on)?-/u.test(n)||/^ng-(?:if|show|hide|class|style)$/u.test(n))return $i;if(n.startsWith(\"*\"))return Mi;let s=P(r);if(/^i18n(?:-.+)?$/u.test(n))return()=>ce(Et(bt(r,s.trim())),!s.includes(\"@@\"));if(_r.test(s))return i=>$n(s,i)}var Mn=qi;function Hi(t,e){let{node:r}=t,n=P(r);if(r.fullName===\"class\"&&!e.parentParser&&!n.includes(\"{{\"))return()=>n.trim().split(/\\s+/u).join(\" \")}var qn=Hi;function Hn(t){return t===\"\t\"||t===`\n`||t===\"\\f\"||t===\"\\r\"||t===\" \"}var Vi=/^[ \\t\\n\\r\\u000c]+/,Ui=/^[, \\t\\n\\r\\u000c]+/,Wi=/^[^ \\t\\n\\r\\u000c]+/,zi=/[,]+$/,Vn=/^\\d+$/,Gi=/^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;function Yi(t){let e=t.length,r,n,s,i,a,o=0,u;function p(C){let A,D=C.exec(t.substring(o));if(D)return[A]=D,o+=A.length,A}let l=[];for(;;){if(p(Ui),o>=e){if(l.length===0)throw new Error(\"Must contain one or more image candidate strings.\");return l}u=o,r=p(Wi),n=[],r.slice(-1)===\",\"?(r=r.replace(zi,\"\"),d()):f()}function f(){for(p(Vi),s=\"\",i=\"in descriptor\";;){if(a=t.charAt(o),i===\"in descriptor\")if(Hn(a))s&&(n.push(s),s=\"\",i=\"after descriptor\");else if(a===\",\"){o+=1,s&&n.push(s),d();return}else if(a===\"(\")s+=a,i=\"in parens\";else if(a===\"\"){s&&n.push(s),d();return}else s+=a;else if(i===\"in parens\")if(a===\")\")s+=a,i=\"in descriptor\";else if(a===\"\"){n.push(s),d();return}else s+=a;else if(i===\"after descriptor\"&&!Hn(a))if(a===\"\"){d();return}else i=\"in descriptor\",o-=1;o+=1}}function d(){let C=!1,A,D,R,F,c={},g,y,M,x,V;for(F=0;F<n.length;F++)g=n[F],y=g[g.length-1],M=g.substring(0,g.length-1),x=parseInt(M,10),V=parseFloat(M),Vn.test(M)&&y===\"w\"?((A||D)&&(C=!0),x===0?C=!0:A=x):Gi.test(M)&&y===\"x\"?((A||D||R)&&(C=!0),V<0?C=!0:D=V):Vn.test(M)&&y===\"h\"?((R||D)&&(C=!0),x===0?C=!0:R=x):C=!0;if(!C)c.source={value:r,startOffset:u},A&&(c.width={value:A}),D&&(c.density={value:D}),R&&(c.height={value:R}),l.push(c);else throw new Error(`Invalid srcset descriptor found in \"${t}\" at \"${g}\".`)}}var Un=Yi;function ji(t){if(t.node.fullName===\"srcset\"&&(t.parent.fullName===\"img\"||t.parent.fullName===\"source\"))return()=>Qi(P(t.node))}var Wn={width:\"w\",height:\"h\",density:\"x\"},Ki=Object.keys(Wn);function Qi(t){let e=Un(t),r=Ki.filter(l=>e.some(f=>Object.prototype.hasOwnProperty.call(f,l)));if(r.length>1)throw new Error(\"Mixed descriptor in srcset is not supported\");let[n]=r,s=Wn[n],i=e.map(l=>l.source.value),a=Math.max(...i.map(l=>l.length)),o=e.map(l=>l[n]?String(l[n].value):\"\"),u=o.map(l=>{let f=l.indexOf(\".\");return f===-1?l.length:f}),p=Math.max(...u);return ce(q([\",\",E],i.map((l,f)=>{let d=[l],C=o[f];if(C){let A=a-l.length+1,D=p-u[f],R=\" \".repeat(A+D);d.push(le(R,\" \"),C+s)}return d})))}var zn=ji;function Gn(t,e){let{node:r}=t,n=P(t.node).trim();if(r.fullName===\"style\"&&!e.parentParser&&!n.includes(\"{{\"))return async s=>ce(await s(n,{parser:\"css\",__isHTMLStyleAttribute:!0}))}var Ar=new WeakMap;function Xi(t,e){let{root:r}=t;return Ar.has(r)||Ar.set(r,r.children.some(n=>Tt(n,e)&&[\"ts\",\"typescript\"].includes(n.attrMap.lang))),Ar.get(r)}var Le=Xi;function Yn(t,e,r){let{node:n}=r,s=P(n);return T(`type T<${s}> = any`,t,{parser:\"babel-ts\",__isEmbeddedTypescriptGenericParameters:!0},Y)}function jn(t,e,{parseWithTs:r}){return T(`function _(${t}) {}`,e,{parser:r?\"babel-ts\":\"babel\",__isVueBindings:!0})}async function Kn(t,e,r,n){let s=P(r.node),{left:i,operator:a,right:o}=Ji(s),u=Le(r,n);return[_(await T(`function _(${i}) {}`,t,{parser:u?\"babel-ts\":\"babel\",__isVueForBindingLeft:!0})),\" \",a,\" \",await T(o,t,{parser:u?\"__ts_expression\":\"__js_expression\"})]}function Ji(t){let e=/(.*?)\\s+(in|of)\\s+(.*)/su,r=/,([^,\\]}]*)(?:,([^,\\]}]*))?$/u,n=/^\\(|\\)$/gu,s=t.match(e);if(!s)return;let i={};if(i.for=s[3].trim(),!i.for)return;let a=w(!1,s[1].trim(),n,\"\"),o=a.match(r);o?(i.alias=a.replace(r,\"\"),i.iterator1=o[1].trim(),o[2]&&(i.iterator2=o[2].trim())):i.alias=a;let u=[i.alias,i.iterator1,i.iterator2];if(!u.some((p,l)=>!p&&(l===0||u.slice(l+1).some(Boolean))))return{left:u.filter(Boolean).join(\",\"),operator:s[2],right:i.for}}function Zi(t,e){if(e.parser!==\"vue\")return;let{node:r}=t,n=r.fullName;if(n===\"v-for\")return Kn;if(n===\"generic\"&&Tt(r.parent,e))return Yn;let s=P(r),i=Le(t,e);if(Rn(r)||On(r,e))return a=>jn(s,a,{parseWithTs:i});if(n.startsWith(\"@\")||n.startsWith(\"v-on:\"))return a=>ea(s,a,{parseWithTs:i});if(n.startsWith(\":\")||n.startsWith(\"v-bind:\"))return a=>ta(s,a,{parseWithTs:i});if(n.startsWith(\"v-\"))return a=>Qn(s,a,{parseWithTs:i})}async function ea(t,e,{parseWithTs:r}){var n;try{return await Qn(t,e,{parseWithTs:r})}catch(s){if(((n=s.cause)==null?void 0:n.code)!==\"BABEL_PARSER_SYNTAX_ERROR\")throw s}return T(t,e,{parser:r?\"__vue_ts_event_binding\":\"__vue_event_binding\"},Y)}function ta(t,e,{parseWithTs:r}){return T(t,e,{parser:r?\"__vue_ts_expression\":\"__vue_expression\"},Y)}function Qn(t,e,{parseWithTs:r}){return T(t,e,{parser:r?\"__ts_expression\":\"__js_expression\"},Y)}var Xn=Zi;function ra(t,e){let{node:r}=t;if(r.value){if(/^PRETTIER_HTML_PLACEHOLDER_\\d+_\\d+_IN_JS$/u.test(e.originalText.slice(r.valueSpan.start.offset,r.valueSpan.end.offset))||e.parser===\"lwc\"&&r.value.startsWith(\"{\")&&r.value.endsWith(\"}\"))return[r.rawName,\"=\",r.value];for(let n of[zn,Gn,qn,Xn,Mn]){let s=n(t,e);if(s)return na(s)}}}function na(t){return async(e,r,n,s)=>{let i=await t(e,r,n,s);if(i)return i=lr(i,a=>typeof a==\"string\"?w(!1,a,'\"',\"&quot;\"):a),[n.node.rawName,'=\"',_(i),'\"']}}var Jn=ra;var Zn=new Proxy(()=>{},{get:()=>Zn}),Dr=Zn;function sa(t){return Array.isArray(t)&&t.length>0}var Fe=sa;function X(t){return t.sourceSpan.start.offset}function J(t){return t.sourceSpan.end.offset}function Ze(t,e){return[t.isSelfClosing?\"\":ia(t,e),de(t,e)]}function ia(t,e){return t.lastChild&&Se(t.lastChild)?\"\":[aa(t,e),xt(t,e)]}function de(t,e){return(t.next?j(t.next):Ce(t.parent))?\"\":[ge(t,e),W(t,e)]}function aa(t,e){return Ce(t)?ge(t.lastChild,e):\"\"}function W(t,e){return Se(t)?xt(t.parent,e):et(t)?kt(t.next,e):\"\"}function xt(t,e){if(Dr(!t.isSelfClosing),ts(t,e))return\"\";switch(t.type){case\"ieConditionalComment\":return\"<!\";case\"element\":if(t.hasHtmComponentClosingTag)return\"<//\";default:return`</${t.rawName}`}}function ge(t,e){if(ts(t,e))return\"\";switch(t.type){case\"ieConditionalComment\":case\"ieConditionalEndComment\":return\"[endif]-->\";case\"ieConditionalStartComment\":return\"]><!-->\";case\"interpolation\":return\"}}\";case\"angularIcuExpression\":return\"}\";case\"element\":if(t.isSelfClosing)return\"/>\";default:return\">\"}}function ts(t,e){return!t.isSelfClosing&&!t.endSourceSpan&&(me(t)||Dt(t.parent,e))}function j(t){return t.prev&&t.prev.type!==\"docType\"&&t.type!==\"angularControlFlowBlock\"&&!O(t.prev)&&t.isLeadingSpaceSensitive&&!t.hasLeadingSpaces}function Ce(t){var e;return((e=t.lastChild)==null?void 0:e.isTrailingSpaceSensitive)&&!t.lastChild.hasTrailingSpaces&&!O(yt(t.lastChild))&&!he(t)}function Se(t){return!t.next&&!t.hasTrailingSpaces&&t.isTrailingSpaceSensitive&&O(yt(t))}function et(t){return t.next&&!O(t.next)&&O(t)&&t.isTrailingSpaceSensitive&&!t.hasTrailingSpaces}function oa(t){let e=t.trim().match(/^prettier-ignore-attribute(?:\\s+(.+))?$/su);return e?e[1]?e[1].split(/\\s+/u):!0:!1}function tt(t){return!t.prev&&t.isLeadingSpaceSensitive&&!t.hasLeadingSpaces}function ua(t,e,r){var f;let{node:n}=t;if(!Fe(n.attrs))return n.isSelfClosing?\" \":\"\";let s=((f=n.prev)==null?void 0:f.type)===\"comment\"&&oa(n.prev.value),i=typeof s==\"boolean\"?()=>s:Array.isArray(s)?d=>s.includes(d.rawName):()=>!1,a=t.map(({node:d})=>i(d)?B(e.originalText.slice(X(d),J(d))):r(),\"attrs\"),o=n.type===\"element\"&&n.fullName===\"script\"&&n.attrs.length===1&&n.attrs[0].fullName===\"src\"&&n.children.length===0,p=e.singleAttributePerLine&&n.attrs.length>1&&!fe(n,e)?S:E,l=[k([o?\" \":E,q(p,a)])];return n.firstChild&&tt(n.firstChild)||n.isSelfClosing&&Ce(n.parent)||o?l.push(n.isSelfClosing?\" \":\"\"):l.push(e.bracketSameLine?n.isSelfClosing?\" \":\"\":n.isSelfClosing?E:v),l}function la(t){return t.firstChild&&tt(t.firstChild)?\"\":Bt(t)}function rt(t,e,r){let{node:n}=t;return[_e(n,e),ua(t,e,r),n.isSelfClosing?\"\":la(n)]}function _e(t,e){return t.prev&&et(t.prev)?\"\":[z(t,e),kt(t,e)]}function z(t,e){return tt(t)?Bt(t.parent):j(t)?ge(t.prev,e):\"\"}var es=\"<!doctype\";function kt(t,e){switch(t.type){case\"ieConditionalComment\":case\"ieConditionalStartComment\":return`<!--[if ${t.condition}`;case\"ieConditionalEndComment\":return\"<!--<!\";case\"interpolation\":return\"{{\";case\"docType\":{if(t.value===\"html\"){let n=e.filepath??\"\";if(/\\.html?$/u.test(n))return es}return e.originalText.slice(X(t),J(t)).slice(0,es.length)}case\"angularIcuExpression\":return\"{\";case\"element\":if(t.condition)return`<!--[if ${t.condition}]><!--><${t.rawName}`;default:return`<${t.rawName}`}}function Bt(t){switch(Dr(!t.isSelfClosing),t.type){case\"ieConditionalComment\":return\"]>\";case\"element\":if(t.condition)return\"><!--<![endif]-->\";default:return\">\"}}function ca(t,e){if(!t.endSourceSpan)return\"\";let r=t.startSourceSpan.end.offset;t.firstChild&&tt(t.firstChild)&&(r-=Bt(t).length);let n=t.endSourceSpan.start.offset;return t.lastChild&&Se(t.lastChild)?n+=xt(t,e).length:Ce(t)&&(n-=ge(t.lastChild,e).length),e.originalText.slice(r,n)}var Lt=ca;var pa=new Set([\"if\",\"else if\",\"for\",\"switch\",\"case\"]);function ha(t,e){let{node:r}=t;switch(r.type){case\"element\":if(U(r)||r.type===\"interpolation\")return;if(!r.isSelfClosing&&wt(r,e)){let n=gr(r,e);return n?async(s,i)=>{let a=Lt(r,e),o=/^\\s*$/u.test(a),u=\"\";return o||(u=await s(mr(a),{parser:n,__embeddedInHtml:!0}),o=u===\"\"),[z(r,e),_(rt(t,e,i)),o?\"\":S,u,o?\"\":S,Ze(r,e),W(r,e)]}:void 0}break;case\"text\":if(U(r.parent)){let n=gr(r.parent,e);if(n)return async s=>{let i=n===\"markdown\"?Cr(r.value.replace(/^[^\\S\\n]*\\n/u,\"\")):r.value,a={parser:n,__embeddedInHtml:!0};if(e.parser===\"html\"&&n===\"babel\"){let o=\"script\",{attrMap:u}=r.parent;u&&(u.type===\"module\"||u.type===\"text/babel\"&&u[\"data-type\"]===\"module\")&&(o=\"module\"),a.__babelSourceType=o}return[ne,z(r,e),await s(i,a),W(r,e)]}}else if(r.parent.type===\"interpolation\")return async n=>{let s={__isInHtmlInterpolation:!0,__embeddedInHtml:!0};return e.parser===\"angular\"?s.parser=\"__ng_interpolation\":e.parser===\"vue\"?s.parser=Le(t,e)?\"__vue_ts_expression\":\"__vue_expression\":s.parser=\"__js_expression\",[k([E,await n(r.value,s)]),r.parent.next&&j(r.parent.next)?\" \":E]};break;case\"attribute\":return Jn(t,e);case\"front-matter\":return n=>dn(r,n);case\"angularControlFlowBlockParameters\":return pa.has(t.parent.name)?gn:void 0;case\"angularLetDeclarationInitializer\":return n=>T(r.value,n,{parser:\"__ng_binding\",__isInHtmlAttribute:!1})}}var rs=ha;var nt=null;function st(t){if(nt!==null&&typeof nt.property){let e=nt;return nt=st.prototype=null,e}return nt=st.prototype=t??Object.create(null),new st}var ma=10;for(let t=0;t<=ma;t++)st();function vr(t){return st(t)}function fa(t,e=\"type\"){vr(t);function r(n){let s=n[e],i=t[s];if(!Array.isArray(i))throw Object.assign(new Error(`Missing visitor keys for '${s}'.`),{node:n});return i}return r}var ns=fa;var da={\"front-matter\":[],root:[\"children\"],element:[\"attrs\",\"children\"],ieConditionalComment:[\"children\"],ieConditionalStartComment:[],ieConditionalEndComment:[],interpolation:[\"children\"],text:[\"children\"],docType:[],comment:[],attribute:[],cdata:[],angularControlFlowBlock:[\"children\",\"parameters\"],angularControlFlowBlockParameters:[\"children\"],angularControlFlowBlockParameter:[],angularLetDeclaration:[\"init\"],angularLetDeclarationInitializer:[],angularIcuExpression:[\"cases\"],angularIcuCase:[\"expression\"]},ss=da;var ga=ns(ss),is=ga;function as(t){return/^\\s*<!--\\s*@(?:format|prettier)\\s*-->/u.test(t)}function os(t){return`<!-- @format -->\n\n`+t}var us=new Map([[\"if\",new Set([\"else if\",\"else\"])],[\"else if\",new Set([\"else if\",\"else\"])],[\"for\",new Set([\"empty\"])],[\"defer\",new Set([\"placeholder\",\"error\",\"loading\"])],[\"placeholder\",new Set([\"placeholder\",\"error\",\"loading\"])],[\"error\",new Set([\"placeholder\",\"error\",\"loading\"])],[\"loading\",new Set([\"placeholder\",\"error\",\"loading\"])]]);function ls(t){let e=J(t);return t.type===\"element\"&&!t.endSourceSpan&&Fe(t.children)?Math.max(e,ls(se(!1,t.children,-1))):e}function it(t,e,r){let n=t.node;if(me(n)){let s=ls(n);return[z(n,e),B(N.trimEnd(e.originalText.slice(X(n)+(n.prev&&et(n.prev)?kt(n).length:0),s-(n.next&&j(n.next)?ge(n,e).length:0)))),W(n,e)]}return r()}function Ft(t,e){return O(t)&&O(e)?t.isTrailingSpaceSensitive?t.hasTrailingSpaces?vt(e)?S:E:\"\":vt(e)?S:v:et(t)&&(me(e)||e.firstChild||e.isSelfClosing||e.type===\"element\"&&e.attrs.length>0)||t.type===\"element\"&&t.isSelfClosing&&j(e)?\"\":!e.isLeadingSpaceSensitive||vt(e)||j(e)&&t.lastChild&&Se(t.lastChild)&&t.lastChild.lastChild&&Se(t.lastChild.lastChild)?S:e.hasLeadingSpaces?E:v}function Ne(t,e,r){let{node:n}=t;if(dr(n))return[ne,...t.map(i=>{let a=i.node,o=a.prev?Ft(a.prev,a):\"\";return[o?[o,Qe(a.prev)?S:\"\"]:\"\",it(i,e,r)]},\"children\")];let s=n.children.map(()=>Symbol(\"\"));return t.map((i,a)=>{let o=i.node;if(O(o)){if(o.prev&&O(o.prev)){let A=Ft(o.prev,o);if(A)return Qe(o.prev)?[S,S,it(i,e,r)]:[A,it(i,e,r)]}return it(i,e,r)}let u=[],p=[],l=[],f=[],d=o.prev?Ft(o.prev,o):\"\",C=o.next?Ft(o,o.next):\"\";return d&&(Qe(o.prev)?u.push(S,S):d===S?u.push(S):O(o.prev)?p.push(d):p.push(le(\"\",v,{groupId:s[a-1]}))),C&&(Qe(o)?O(o.next)&&f.push(S,S):C===S?O(o.next)&&f.push(S):l.push(C)),[...u,_([...p,_([it(i,e,r),...l],{id:s[a]})]),...f]},\"children\")}function cs(t,e,r){let{node:n}=t,s=[];Ca(t)&&s.push(\"} \"),s.push(\"@\",n.name),n.parameters&&s.push(\" (\",_(r(\"parameters\")),\")\"),s.push(\" {\");let i=ps(n);return n.children.length>0?(n.firstChild.hasLeadingSpaces=!0,n.lastChild.hasTrailingSpaces=!0,s.push(k([S,Ne(t,e,r)])),i&&s.push(S,\"}\")):i&&s.push(\"}\"),_(s,{shouldBreak:!0})}function ps(t){var e,r;return!(((e=t.next)==null?void 0:e.type)===\"angularControlFlowBlock\"&&((r=us.get(t.name))!=null&&r.has(t.next.name)))}function Ca(t){let{previous:e}=t;return(e==null?void 0:e.type)===\"angularControlFlowBlock\"&&!me(e)&&!ps(e)}function hs(t,e,r){return[k([v,q([\";\",E],t.map(r,\"children\"))]),v]}function ms(t,e,r){let{node:n}=t;return[_e(n,e),_([n.switchValue.trim(),\", \",n.clause,n.cases.length>0?[\",\",k([E,q(E,t.map(r,\"cases\"))])]:\"\",v]),de(n,e)]}function fs(t,e,r){let{node:n}=t;return[n.value,\" {\",_([k([v,t.map(({node:s})=>s.type===\"text\"&&!N.trim(s.value)?\"\":r(),\"expression\")]),v]),\"}\"]}function ds(t,e,r){let{node:n}=t;if(Dt(n,e))return[z(n,e),_(rt(t,e,r)),B(Lt(n,e)),...Ze(n,e),W(n,e)];let s=n.children.length===1&&(n.firstChild.type===\"interpolation\"||n.firstChild.type===\"angularIcuExpression\")&&n.firstChild.isLeadingSpaceSensitive&&!n.firstChild.hasLeadingSpaces&&n.lastChild.isTrailingSpaceSensitive&&!n.lastChild.hasTrailingSpaces,i=Symbol(\"element-attr-group-id\"),a=l=>_([_(rt(t,e,r),{id:i}),l,Ze(n,e)]),o=l=>s?on(l,{groupId:i}):(U(n)||Je(n,e))&&n.parent.type===\"root\"&&e.parser===\"vue\"&&!e.vueIndentScriptAndStyle?l:k(l),u=()=>s?le(v,\"\",{groupId:i}):n.firstChild.hasLeadingSpaces&&n.firstChild.isLeadingSpaceSensitive?E:n.firstChild.type===\"text\"&&n.isWhitespaceSensitive&&n.isIndentationSensitive?sn(v):v,p=()=>(n.next?j(n.next):Ce(n.parent))?n.lastChild.hasTrailingSpaces&&n.lastChild.isTrailingSpaceSensitive?\" \":\"\":s?le(v,\"\",{groupId:i}):n.lastChild.hasTrailingSpaces&&n.lastChild.isTrailingSpaceSensitive?E:(n.lastChild.type===\"comment\"||n.lastChild.type===\"text\"&&n.isWhitespaceSensitive&&n.isIndentationSensitive)&&new RegExp(`\\\\n[\\\\t ]{${e.tabWidth*(t.ancestors.length-1)}}$`,\"u\").test(n.lastChild.value)?\"\":v;return n.children.length===0?a(n.hasDanglingSpaces&&n.isDanglingSpaceSensitive?E:\"\"):a([xn(n)?ne:\"\",o([u(),Ne(t,e,r)]),p()])}function at(t){return t>=9&&t<=32||t==160}function Nt(t){return 48<=t&&t<=57}function ot(t){return t>=97&&t<=122||t>=65&&t<=90}function gs(t){return t>=97&&t<=102||t>=65&&t<=70||Nt(t)}function Pt(t){return t===10||t===13}function yr(t){return 48<=t&&t<=55}function It(t){return t===39||t===34||t===96}var Sa=/-+([a-z0-9])/g;function Ss(t){return t.replace(Sa,(...e)=>e[1].toUpperCase())}var ie=class t{constructor(e,r,n,s){this.file=e,this.offset=r,this.line=n,this.col=s}toString(){return this.offset!=null?`${this.file.url}@${this.line}:${this.col}`:this.file.url}moveBy(e){let r=this.file.content,n=r.length,s=this.offset,i=this.line,a=this.col;for(;s>0&&e<0;)if(s--,e++,r.charCodeAt(s)==10){i--;let u=r.substring(0,s-1).lastIndexOf(String.fromCharCode(10));a=u>0?s-u:s}else a--;for(;s<n&&e>0;){let o=r.charCodeAt(s);s++,e--,o==10?(i++,a=0):a++}return new t(this.file,s,i,a)}getContext(e,r){let n=this.file.content,s=this.offset;if(s!=null){s>n.length-1&&(s=n.length-1);let i=s,a=0,o=0;for(;a<e&&s>0&&(s--,a++,!(n[s]==`\n`&&++o==r)););for(a=0,o=0;a<e&&i<n.length-1&&(i++,a++,!(n[i]==`\n`&&++o==r)););return{before:n.substring(s,this.offset),after:n.substring(this.offset,i+1)}}return null}},Ee=class{constructor(e,r){this.content=e,this.url=r}},h=class{constructor(e,r,n=e,s=null){this.start=e,this.end=r,this.fullStart=n,this.details=s}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}},Rt;(function(t){t[t.WARNING=0]=\"WARNING\",t[t.ERROR=1]=\"ERROR\"})(Rt||(Rt={}));var Ie=class{constructor(e,r,n=Rt.ERROR){this.span=e,this.msg=r,this.level=n}contextualMessage(){let e=this.span.start.getContext(100,3);return e?`${this.msg} (\"${e.before}[${Rt[this.level]} ->]${e.after}\")`:this.msg}toString(){let e=this.span.details?`, ${this.span.details}`:\"\";return`${this.contextualMessage()}: ${this.span.start}${e}`}};var _a=[Aa,Da,ya,ba,Ta,Ba,xa,ka,La,wa];function Ea(t,e){for(let r of _a)r(t,e);return t}function Aa(t){t.walk(e=>{if(e.type===\"element\"&&e.tagDefinition.ignoreFirstLf&&e.children.length>0&&e.children[0].type===\"text\"&&e.children[0].value[0]===`\n`){let r=e.children[0];r.value.length===1?e.removeChild(r):r.value=r.value.slice(1)}})}function Da(t){let e=r=>{var n,s;return r.type===\"element\"&&((n=r.prev)==null?void 0:n.type)===\"ieConditionalStartComment\"&&r.prev.sourceSpan.end.offset===r.startSourceSpan.start.offset&&((s=r.firstChild)==null?void 0:s.type)===\"ieConditionalEndComment\"&&r.firstChild.sourceSpan.start.offset===r.startSourceSpan.end.offset};t.walk(r=>{if(r.children)for(let n=0;n<r.children.length;n++){let s=r.children[n];if(!e(s))continue;let i=s.prev,a=s.firstChild;r.removeChild(i),n--;let o=new h(i.sourceSpan.start,a.sourceSpan.end),u=new h(o.start,s.sourceSpan.end);s.condition=i.condition,s.sourceSpan=u,s.startSourceSpan=o,s.removeChild(a)}})}function va(t,e,r){t.walk(n=>{if(n.children)for(let s=0;s<n.children.length;s++){let i=n.children[s];if(i.type!==\"text\"&&!e(i))continue;i.type!==\"text\"&&(i.type=\"text\",i.value=r(i));let a=i.prev;!a||a.type!==\"text\"||(a.value+=i.value,a.sourceSpan=new h(a.sourceSpan.start,i.sourceSpan.end),n.removeChild(i),s--)}})}function ya(t){return va(t,e=>e.type===\"cdata\",e=>`<![CDATA[${e.value}]]>`)}function wa(t){let e=r=>{var n,s;return r.type===\"element\"&&r.attrs.length===0&&r.children.length===1&&r.firstChild.type===\"text\"&&!N.hasWhitespaceCharacter(r.children[0].value)&&!r.firstChild.hasLeadingSpaces&&!r.firstChild.hasTrailingSpaces&&r.isLeadingSpaceSensitive&&!r.hasLeadingSpaces&&r.isTrailingSpaceSensitive&&!r.hasTrailingSpaces&&((n=r.prev)==null?void 0:n.type)===\"text\"&&((s=r.next)==null?void 0:s.type)===\"text\"};t.walk(r=>{if(r.children)for(let n=0;n<r.children.length;n++){let s=r.children[n];if(!e(s))continue;let i=s.prev,a=s.next;i.value+=`<${s.rawName}>`+s.firstChild.value+`</${s.rawName}>`+a.value,i.sourceSpan=new h(i.sourceSpan.start,a.sourceSpan.end),i.isTrailingSpaceSensitive=a.isTrailingSpaceSensitive,i.hasTrailingSpaces=a.hasTrailingSpaces,r.removeChild(s),n--,r.removeChild(a)}})}function ba(t,e){if(e.parser===\"html\")return;let r=/\\{\\{(.+?)\\}\\}/su;t.walk(n=>{if(vn(n))for(let s of n.children){if(s.type!==\"text\")continue;let i=s.sourceSpan.start,a=null,o=s.value.split(r);for(let u=0;u<o.length;u++,i=a){let p=o[u];if(u%2===0){a=i.moveBy(p.length),p.length>0&&n.insertChildBefore(s,{type:\"text\",value:p,sourceSpan:new h(i,a)});continue}a=i.moveBy(p.length+4),n.insertChildBefore(s,{type:\"interpolation\",sourceSpan:new h(i,a),children:p.length===0?[]:[{type:\"text\",value:p,sourceSpan:new h(i.moveBy(2),a.moveBy(-2))}]})}n.removeChild(s)}})}function Ta(t){t.walk(e=>{if(!e.children)return;if(e.children.length===0||e.children.length===1&&e.children[0].type===\"text\"&&N.trim(e.children[0].value).length===0){e.hasDanglingSpaces=e.children.length>0,e.children=[];return}let r=yn(e),n=fr(e);if(!r)for(let s=0;s<e.children.length;s++){let i=e.children[s];if(i.type!==\"text\")continue;let{leadingWhitespace:a,text:o,trailingWhitespace:u}=Dn(i.value),p=i.prev,l=i.next;o?(i.value=o,i.sourceSpan=new h(i.sourceSpan.start.moveBy(a.length),i.sourceSpan.end.moveBy(-u.length)),a&&(p&&(p.hasTrailingSpaces=!0),i.hasLeadingSpaces=!0),u&&(i.hasTrailingSpaces=!0,l&&(l.hasLeadingSpaces=!0))):(e.removeChild(i),s--,(a||u)&&(p&&(p.hasTrailingSpaces=!0),l&&(l.hasLeadingSpaces=!0)))}e.isWhitespaceSensitive=r,e.isIndentationSensitive=n})}function xa(t){t.walk(e=>{e.isSelfClosing=!e.children||e.type===\"element\"&&(e.tagDefinition.isVoid||e.endSourceSpan&&e.startSourceSpan.start===e.endSourceSpan.start&&e.startSourceSpan.end===e.endSourceSpan.end)})}function ka(t,e){t.walk(r=>{r.type===\"element\"&&(r.hasHtmComponentClosingTag=r.endSourceSpan&&/^<\\s*\\/\\s*\\/\\s*>$/u.test(e.originalText.slice(r.endSourceSpan.start.offset,r.endSourceSpan.end.offset)))})}function Ba(t,e){t.walk(r=>{r.cssDisplay=Pn(r,e)})}function La(t,e){t.walk(r=>{let{children:n}=r;if(n){if(n.length===0){r.isDanglingSpaceSensitive=Tn(r);return}for(let s of n)s.isLeadingSpaceSensitive=wn(s,e),s.isTrailingSpaceSensitive=bn(s,e);for(let s=0;s<n.length;s++){let i=n[s];i.isLeadingSpaceSensitive=(s===0||i.prev.isTrailingSpaceSensitive)&&i.isLeadingSpaceSensitive,i.isTrailingSpaceSensitive=(s===n.length-1||i.next.isLeadingSpaceSensitive)&&i.isTrailingSpaceSensitive}}})}var _s=Ea;function Fa(t,e,r){let{node:n}=t;switch(n.type){case\"front-matter\":return B(n.raw);case\"root\":return e.__onHtmlRoot&&e.__onHtmlRoot(n),[_(Ne(t,e,r)),S];case\"element\":case\"ieConditionalComment\":return ds(t,e,r);case\"angularControlFlowBlock\":return cs(t,e,r);case\"angularControlFlowBlockParameters\":return hs(t,e,r);case\"angularControlFlowBlockParameter\":return N.trim(n.expression);case\"angularLetDeclaration\":return _([\"@let \",_([n.id,\" =\",_(k([E,r(\"init\")]))]),\";\"]);case\"angularLetDeclarationInitializer\":return n.value;case\"angularIcuExpression\":return ms(t,e,r);case\"angularIcuCase\":return fs(t,e,r);case\"ieConditionalStartComment\":case\"ieConditionalEndComment\":return[_e(n),de(n)];case\"interpolation\":return[_e(n,e),...t.map(r,\"children\"),de(n,e)];case\"text\":{if(n.parent.type===\"interpolation\"){let o=/\\n[^\\S\\n]*$/u,u=o.test(n.value),p=u?n.value.replace(o,\"\"):n.value;return[B(p),u?S:\"\"]}let s=z(n,e),i=bt(n),a=W(n,e);return i[0]=[s,i[0]],i.push([i.pop(),a]),Et(i)}case\"docType\":return[_([_e(n,e),\" \",w(!1,n.value.replace(/^html\\b/iu,\"html\"),/\\s+/gu,\" \")]),de(n,e)];case\"comment\":return[z(n,e),B(e.originalText.slice(X(n),J(n))),W(n,e)];case\"attribute\":{if(n.value===null)return n.rawName;let s=Sr(n.value),i=cn(s,'\"');return[n.rawName,\"=\",i,B(i==='\"'?w(!1,s,'\"',\"&quot;\"):w(!1,s,\"'\",\"&apos;\")),i]}case\"cdata\":default:throw new hn(n,\"HTML\")}}var Na={preprocess:_s,print:Fa,insertPragma:os,massageAstNode:fn,embed:rs,getVisitorKeys:is},Es=Na;var As=[{linguistLanguageId:146,name:\"Angular\",type:\"markup\",tmScope:\"text.html.basic\",aceMode:\"html\",codemirrorMode:\"htmlmixed\",codemirrorMimeType:\"text/html\",color:\"#e34c26\",aliases:[\"xhtml\"],extensions:[\".component.html\"],parsers:[\"angular\"],vscodeLanguageIds:[\"html\"],filenames:[]},{linguistLanguageId:146,name:\"HTML\",type:\"markup\",tmScope:\"text.html.basic\",aceMode:\"html\",codemirrorMode:\"htmlmixed\",codemirrorMimeType:\"text/html\",color:\"#e34c26\",aliases:[\"xhtml\"],extensions:[\".html\",\".hta\",\".htm\",\".html.hl\",\".inc\",\".xht\",\".xhtml\",\".mjml\"],parsers:[\"html\"],vscodeLanguageIds:[\"html\"]},{linguistLanguageId:146,name:\"Lightning Web Components\",type:\"markup\",tmScope:\"text.html.basic\",aceMode:\"html\",codemirrorMode:\"htmlmixed\",codemirrorMimeType:\"text/html\",color:\"#e34c26\",aliases:[\"xhtml\"],extensions:[],parsers:[\"lwc\"],vscodeLanguageIds:[\"html\"],filenames:[]},{linguistLanguageId:391,name:\"Vue\",type:\"markup\",color:\"#41b883\",extensions:[\".vue\"],tmScope:\"text.html.vue\",aceMode:\"html\",parsers:[\"vue\"],vscodeLanguageIds:[\"vue\"]}];var wr={bracketSpacing:{category:\"Common\",type:\"boolean\",default:!0,description:\"Print spaces between brackets.\",oppositeDescription:\"Do not print spaces between brackets.\"},singleQuote:{category:\"Common\",type:\"boolean\",default:!1,description:\"Use single quotes instead of double quotes.\"},proseWrap:{category:\"Common\",type:\"choice\",default:\"preserve\",description:\"How to wrap prose.\",choices:[{value:\"always\",description:\"Wrap prose if it exceeds the print width.\"},{value:\"never\",description:\"Do not wrap prose.\"},{value:\"preserve\",description:\"Wrap prose as-is.\"}]},bracketSameLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Put > of opening tags on the last line instead of on a new line.\"},singleAttributePerLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Enforce single attribute per line in HTML, Vue and JSX.\"}};var Ds=\"HTML\",Pa={bracketSameLine:wr.bracketSameLine,htmlWhitespaceSensitivity:{category:Ds,type:\"choice\",default:\"css\",description:\"How to handle whitespaces in HTML.\",choices:[{value:\"css\",description:\"Respect the default value of CSS display property.\"},{value:\"strict\",description:\"Whitespaces are considered sensitive.\"},{value:\"ignore\",description:\"Whitespaces are considered insensitive.\"}]},singleAttributePerLine:wr.singleAttributePerLine,vueIndentScriptAndStyle:{category:Ds,type:\"boolean\",default:!1,description:\"Indent script and style tags in Vue files.\"}},vs=Pa;var Gr={};Jr(Gr,{angular:()=>Fo,html:()=>Lo,lwc:()=>Po,vue:()=>No});var Cp=new RegExp(`(\\\\:not\\\\()|(([\\\\.\\\\#]?)[-\\\\w]+)|(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\"']?)([^\\\\]\"']*)\\\\5)?\\\\])|(\\\\))|(\\\\s*,\\\\s*)`,\"g\");var ys;(function(t){t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\"})(ys||(ys={}));var ws;(function(t){t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\"})(ws||(ws={}));var bs;(function(t){t[t.None=0]=\"None\",t[t.SignalBased=1]=\"SignalBased\",t[t.HasDecoratorInputTransform=2]=\"HasDecoratorInputTransform\"})(bs||(bs={}));var br={name:\"custom-elements\"},Tr={name:\"no-errors-schema\"};var Z;(function(t){t[t.NONE=0]=\"NONE\",t[t.HTML=1]=\"HTML\",t[t.STYLE=2]=\"STYLE\",t[t.SCRIPT=3]=\"SCRIPT\",t[t.URL=4]=\"URL\",t[t.RESOURCE_URL=5]=\"RESOURCE_URL\"})(Z||(Z={}));var Ts;(function(t){t[t.Error=0]=\"Error\",t[t.Warning=1]=\"Warning\",t[t.Ignore=2]=\"Ignore\"})(Ts||(Ts={}));var I;(function(t){t[t.RAW_TEXT=0]=\"RAW_TEXT\",t[t.ESCAPABLE_RAW_TEXT=1]=\"ESCAPABLE_RAW_TEXT\",t[t.PARSABLE_DATA=2]=\"PARSABLE_DATA\"})(I||(I={}));function ut(t,e=!0){if(t[0]!=\":\")return[null,t];let r=t.indexOf(\":\",1);if(r===-1){if(e)throw new Error(`Unsupported format \"${t}\" expecting \":namespace:name\"`);return[null,t]}return[t.slice(1,r),t.slice(r+1)]}function xr(t){return ut(t)[1]===\"ng-container\"}function kr(t){return ut(t)[1]===\"ng-content\"}function Re(t){return t===null?null:ut(t)[0]}function Oe(t,e){return t?`:${t}:${e}`:e}var $t;function Br(){return $t||($t={},Ot(Z.HTML,[\"iframe|srcdoc\",\"*|innerHTML\",\"*|outerHTML\"]),Ot(Z.STYLE,[\"*|style\"]),Ot(Z.URL,[\"*|formAction\",\"area|href\",\"area|ping\",\"audio|src\",\"a|href\",\"a|ping\",\"blockquote|cite\",\"body|background\",\"del|cite\",\"form|action\",\"img|src\",\"input|src\",\"ins|cite\",\"q|cite\",\"source|src\",\"track|src\",\"video|poster\",\"video|src\"]),Ot(Z.RESOURCE_URL,[\"applet|code\",\"applet|codebase\",\"base|href\",\"embed|src\",\"frame|src\",\"head|profile\",\"html|manifest\",\"iframe|src\",\"link|href\",\"media|src\",\"object|codebase\",\"object|data\",\"script|src\"])),$t}function Ot(t,e){for(let r of e)$t[r.toLowerCase()]=t}var Mt=class{};var Ia=\"boolean\",Ra=\"number\",Oa=\"string\",$a=\"object\",Ma=[\"[Element]|textContent,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColSpan,%ariaCurrent,%ariaDescription,%ariaDisabled,%ariaExpanded,%ariaHasPopup,%ariaHidden,%ariaKeyShortcuts,%ariaLabel,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot,*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored\",\"[HTMLElement]^[Element]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,!inert,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy\",\"abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy\",\"media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,!preservesPitch,src,%srcObject,#volume\",\":svg:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex\",\":svg:graphics^:svg:|\",\":svg:animation^:svg:|*begin,*end,*repeat\",\":svg:geometry^:svg:|\",\":svg:componentTransferFunction^:svg:|\",\":svg:gradient^:svg:|\",\":svg:textContent^:svg:graphics|\",\":svg:textPositioning^:svg:textContent|\",\"a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,rev,search,shape,target,text,type,username\",\"area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,search,shape,target,username\",\"audio^media|\",\"br^[HTMLElement]|clear\",\"base^[HTMLElement]|href,target\",\"body^[HTMLElement]|aLink,background,bgColor,link,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink\",\"button^[HTMLElement]|!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value\",\"canvas^[HTMLElement]|#height,#width\",\"content^[HTMLElement]|select\",\"dl^[HTMLElement]|!compact\",\"data^[HTMLElement]|value\",\"datalist^[HTMLElement]|\",\"details^[HTMLElement]|!open\",\"dialog^[HTMLElement]|!open,returnValue\",\"dir^[HTMLElement]|!compact\",\"div^[HTMLElement]|align\",\"embed^[HTMLElement]|align,height,name,src,type,width\",\"fieldset^[HTMLElement]|!disabled,name\",\"font^[HTMLElement]|color,face,size\",\"form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target\",\"frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src\",\"frameset^[HTMLElement]|cols,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows\",\"hr^[HTMLElement]|align,color,!noShade,size,width\",\"head^[HTMLElement]|\",\"h1,h2,h3,h4,h5,h6^[HTMLElement]|align\",\"html^[HTMLElement]|version\",\"iframe^[HTMLElement]|align,allow,!allowFullscreen,!allowPaymentRequest,csp,frameBorder,height,loading,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width\",\"img^[HTMLElement]|align,alt,border,%crossOrigin,decoding,#height,#hspace,!isMap,loading,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width\",\"input^[HTMLElement]|accept,align,alt,autocomplete,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width\",\"li^[HTMLElement]|type,#value\",\"label^[HTMLElement]|htmlFor\",\"legend^[HTMLElement]|align\",\"link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,imageSizes,imageSrcset,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type\",\"map^[HTMLElement]|name\",\"marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width\",\"menu^[HTMLElement]|!compact\",\"meta^[HTMLElement]|content,httpEquiv,media,name,scheme\",\"meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value\",\"ins,del^[HTMLElement]|cite,dateTime\",\"ol^[HTMLElement]|!compact,!reversed,#start,type\",\"object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width\",\"optgroup^[HTMLElement]|!disabled,label\",\"option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value\",\"output^[HTMLElement]|defaultValue,%htmlFor,name,value\",\"p^[HTMLElement]|align\",\"param^[HTMLElement]|name,type,value,valueType\",\"picture^[HTMLElement]|\",\"pre^[HTMLElement]|#width\",\"progress^[HTMLElement]|#max,#value\",\"q,blockquote,cite^[HTMLElement]|\",\"script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,!noModule,%referrerPolicy,src,text,type\",\"select^[HTMLElement]|autocomplete,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value\",\"slot^[HTMLElement]|name\",\"source^[HTMLElement]|#height,media,sizes,src,srcset,type,#width\",\"span^[HTMLElement]|\",\"style^[HTMLElement]|!disabled,media,type\",\"caption^[HTMLElement]|align\",\"th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width\",\"col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width\",\"table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width\",\"tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign\",\"tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign\",\"template^[HTMLElement]|\",\"textarea^[HTMLElement]|autocomplete,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap\",\"time^[HTMLElement]|dateTime\",\"title^[HTMLElement]|text\",\"track^[HTMLElement]|!default,kind,label,src,srclang\",\"ul^[HTMLElement]|!compact,type\",\"unknown^[HTMLElement]|\",\"video^media|!disablePictureInPicture,#height,*enterpictureinpicture,*leavepictureinpicture,!playsInline,poster,#width\",\":svg:a^:svg:graphics|\",\":svg:animate^:svg:animation|\",\":svg:animateMotion^:svg:animation|\",\":svg:animateTransform^:svg:animation|\",\":svg:circle^:svg:geometry|\",\":svg:clipPath^:svg:graphics|\",\":svg:defs^:svg:graphics|\",\":svg:desc^:svg:|\",\":svg:discard^:svg:|\",\":svg:ellipse^:svg:geometry|\",\":svg:feBlend^:svg:|\",\":svg:feColorMatrix^:svg:|\",\":svg:feComponentTransfer^:svg:|\",\":svg:feComposite^:svg:|\",\":svg:feConvolveMatrix^:svg:|\",\":svg:feDiffuseLighting^:svg:|\",\":svg:feDisplacementMap^:svg:|\",\":svg:feDistantLight^:svg:|\",\":svg:feDropShadow^:svg:|\",\":svg:feFlood^:svg:|\",\":svg:feFuncA^:svg:componentTransferFunction|\",\":svg:feFuncB^:svg:componentTransferFunction|\",\":svg:feFuncG^:svg:componentTransferFunction|\",\":svg:feFuncR^:svg:componentTransferFunction|\",\":svg:feGaussianBlur^:svg:|\",\":svg:feImage^:svg:|\",\":svg:feMerge^:svg:|\",\":svg:feMergeNode^:svg:|\",\":svg:feMorphology^:svg:|\",\":svg:feOffset^:svg:|\",\":svg:fePointLight^:svg:|\",\":svg:feSpecularLighting^:svg:|\",\":svg:feSpotLight^:svg:|\",\":svg:feTile^:svg:|\",\":svg:feTurbulence^:svg:|\",\":svg:filter^:svg:|\",\":svg:foreignObject^:svg:graphics|\",\":svg:g^:svg:graphics|\",\":svg:image^:svg:graphics|decoding\",\":svg:line^:svg:geometry|\",\":svg:linearGradient^:svg:gradient|\",\":svg:mpath^:svg:|\",\":svg:marker^:svg:|\",\":svg:mask^:svg:|\",\":svg:metadata^:svg:|\",\":svg:path^:svg:geometry|\",\":svg:pattern^:svg:|\",\":svg:polygon^:svg:geometry|\",\":svg:polyline^:svg:geometry|\",\":svg:radialGradient^:svg:gradient|\",\":svg:rect^:svg:geometry|\",\":svg:svg^:svg:graphics|#currentScale,#zoomAndPan\",\":svg:script^:svg:|type\",\":svg:set^:svg:animation|\",\":svg:stop^:svg:|\",\":svg:style^:svg:|!disabled,media,title,type\",\":svg:switch^:svg:graphics|\",\":svg:symbol^:svg:|\",\":svg:tspan^:svg:textPositioning|\",\":svg:text^:svg:textPositioning|\",\":svg:textPath^:svg:textContent|\",\":svg:title^:svg:|\",\":svg:use^:svg:graphics|\",\":svg:view^:svg:|#zoomAndPan\",\"data^[HTMLElement]|value\",\"keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name\",\"menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default\",\"summary^[HTMLElement]|\",\"time^[HTMLElement]|dateTime\",\":svg:cursor^:svg:|\",\":math:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforeinput,*beforematch,*beforetoggle,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contentvisibilityautostatechange,*contextlost,*contextmenu,*contextrestored,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*scrollend,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex\",\":math:math^:math:|\",\":math:maction^:math:|\",\":math:menclose^:math:|\",\":math:merror^:math:|\",\":math:mfenced^:math:|\",\":math:mfrac^:math:|\",\":math:mi^:math:|\",\":math:mmultiscripts^:math:|\",\":math:mn^:math:|\",\":math:mo^:math:|\",\":math:mover^:math:|\",\":math:mpadded^:math:|\",\":math:mphantom^:math:|\",\":math:mroot^:math:|\",\":math:mrow^:math:|\",\":math:ms^:math:|\",\":math:mspace^:math:|\",\":math:msqrt^:math:|\",\":math:mstyle^:math:|\",\":math:msub^:math:|\",\":math:msubsup^:math:|\",\":math:msup^:math:|\",\":math:mtable^:math:|\",\":math:mtd^:math:|\",\":math:mtext^:math:|\",\":math:mtr^:math:|\",\":math:munder^:math:|\",\":math:munderover^:math:|\",\":math:semantics^:math:|\"],xs=new Map(Object.entries({class:\"className\",for:\"htmlFor\",formaction:\"formAction\",innerHtml:\"innerHTML\",readonly:\"readOnly\",tabindex:\"tabIndex\"})),qa=Array.from(xs).reduce((t,[e,r])=>(t.set(e,r),t),new Map),qt=class extends Mt{constructor(){super(),this._schema=new Map,this._eventSchema=new Map,Ma.forEach(e=>{let r=new Map,n=new Set,[s,i]=e.split(\"|\"),a=i.split(\",\"),[o,u]=s.split(\"^\");o.split(\",\").forEach(l=>{this._schema.set(l.toLowerCase(),r),this._eventSchema.set(l.toLowerCase(),n)});let p=u&&this._schema.get(u.toLowerCase());if(p){for(let[l,f]of p)r.set(l,f);for(let l of this._eventSchema.get(u.toLowerCase()))n.add(l)}a.forEach(l=>{if(l.length>0)switch(l[0]){case\"*\":n.add(l.substring(1));break;case\"!\":r.set(l.substring(1),Ia);break;case\"#\":r.set(l.substring(1),Ra);break;case\"%\":r.set(l.substring(1),$a);break;default:r.set(l,Oa)}})})}hasProperty(e,r,n){if(n.some(i=>i.name===Tr.name))return!0;if(e.indexOf(\"-\")>-1){if(xr(e)||kr(e))return!1;if(n.some(i=>i.name===br.name))return!0}return(this._schema.get(e.toLowerCase())||this._schema.get(\"unknown\")).has(r)}hasElement(e,r){return r.some(n=>n.name===Tr.name)||e.indexOf(\"-\")>-1&&(xr(e)||kr(e)||r.some(n=>n.name===br.name))?!0:this._schema.has(e.toLowerCase())}securityContext(e,r,n){n&&(r=this.getMappedPropName(r)),e=e.toLowerCase(),r=r.toLowerCase();let s=Br()[e+\"|\"+r];return s||(s=Br()[\"*|\"+r],s||Z.NONE)}getMappedPropName(e){return xs.get(e)??e}getDefaultComponentElementName(){return\"ng-component\"}validateProperty(e){return e.toLowerCase().startsWith(\"on\")?{error:!0,msg:`Binding to event property '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...\nIf '${e}' is a directive input, make sure the directive is imported by the current module.`}:{error:!1}}validateAttribute(e){return e.toLowerCase().startsWith(\"on\")?{error:!0,msg:`Binding to event attribute '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...`}:{error:!1}}allKnownElementNames(){return Array.from(this._schema.keys())}allKnownAttributesOfElement(e){let r=this._schema.get(e.toLowerCase())||this._schema.get(\"unknown\");return Array.from(r.keys()).map(n=>qa.get(n)??n)}allKnownEventsOfElement(e){return Array.from(this._eventSchema.get(e.toLowerCase())??[])}normalizeAnimationStyleProperty(e){return Ss(e)}normalizeAnimationStyleValue(e,r,n){let s=\"\",i=n.toString().trim(),a=null;if(Ha(e)&&n!==0&&n!==\"0\")if(typeof n==\"number\")s=\"px\";else{let o=n.match(/^[+-]?[\\d\\.]+([a-z]*)$/);o&&o[1].length==0&&(a=`Please provide a CSS unit value for ${r}:${n}`)}return{error:a,value:i+s}}};function Ha(t){switch(t){case\"width\":case\"height\":case\"minWidth\":case\"minHeight\":case\"maxWidth\":case\"maxHeight\":case\"left\":case\"top\":case\"bottom\":case\"right\":case\"fontSize\":case\"outlineWidth\":case\"outlineOffset\":case\"paddingTop\":case\"paddingLeft\":case\"paddingBottom\":case\"paddingRight\":case\"marginTop\":case\"marginLeft\":case\"marginBottom\":case\"marginRight\":case\"borderRadius\":case\"borderWidth\":case\"borderTopWidth\":case\"borderLeftWidth\":case\"borderRightWidth\":case\"borderBottomWidth\":case\"textIndent\":return!0;default:return!1}}var m=class{constructor({closedByChildren:e,implicitNamespacePrefix:r,contentType:n=I.PARSABLE_DATA,closedByParent:s=!1,isVoid:i=!1,ignoreFirstLf:a=!1,preventNamespaceInheritance:o=!1,canSelfClose:u=!1}={}){this.closedByChildren={},this.closedByParent=!1,e&&e.length>0&&e.forEach(p=>this.closedByChildren[p]=!0),this.isVoid=i,this.closedByParent=s||i,this.implicitNamespacePrefix=r||null,this.contentType=n,this.ignoreFirstLf=a,this.preventNamespaceInheritance=o,this.canSelfClose=u??i}isClosedByChild(e){return this.isVoid||e.toLowerCase()in this.closedByChildren}getContentType(e){return typeof this.contentType==\"object\"?(e===void 0?void 0:this.contentType[e])??this.contentType.default:this.contentType}},ks,lt;function $e(t){return lt||(ks=new m({canSelfClose:!0}),lt=Object.assign(Object.create(null),{base:new m({isVoid:!0}),meta:new m({isVoid:!0}),area:new m({isVoid:!0}),embed:new m({isVoid:!0}),link:new m({isVoid:!0}),img:new m({isVoid:!0}),input:new m({isVoid:!0}),param:new m({isVoid:!0}),hr:new m({isVoid:!0}),br:new m({isVoid:!0}),source:new m({isVoid:!0}),track:new m({isVoid:!0}),wbr:new m({isVoid:!0}),p:new m({closedByChildren:[\"address\",\"article\",\"aside\",\"blockquote\",\"div\",\"dl\",\"fieldset\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"main\",\"nav\",\"ol\",\"p\",\"pre\",\"section\",\"table\",\"ul\"],closedByParent:!0}),thead:new m({closedByChildren:[\"tbody\",\"tfoot\"]}),tbody:new m({closedByChildren:[\"tbody\",\"tfoot\"],closedByParent:!0}),tfoot:new m({closedByChildren:[\"tbody\"],closedByParent:!0}),tr:new m({closedByChildren:[\"tr\"],closedByParent:!0}),td:new m({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),th:new m({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),col:new m({isVoid:!0}),svg:new m({implicitNamespacePrefix:\"svg\"}),foreignObject:new m({implicitNamespacePrefix:\"svg\",preventNamespaceInheritance:!0}),math:new m({implicitNamespacePrefix:\"math\"}),li:new m({closedByChildren:[\"li\"],closedByParent:!0}),dt:new m({closedByChildren:[\"dt\",\"dd\"]}),dd:new m({closedByChildren:[\"dt\",\"dd\"],closedByParent:!0}),rb:new m({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rt:new m({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rtc:new m({closedByChildren:[\"rb\",\"rtc\",\"rp\"],closedByParent:!0}),rp:new m({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),optgroup:new m({closedByChildren:[\"optgroup\"],closedByParent:!0}),option:new m({closedByChildren:[\"option\",\"optgroup\"],closedByParent:!0}),pre:new m({ignoreFirstLf:!0}),listing:new m({ignoreFirstLf:!0}),style:new m({contentType:I.RAW_TEXT}),script:new m({contentType:I.RAW_TEXT}),title:new m({contentType:{default:I.ESCAPABLE_RAW_TEXT,svg:I.PARSABLE_DATA}}),textarea:new m({contentType:I.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),new qt().allKnownElementNames().forEach(e=>{!lt[e]&&Re(e)===null&&(lt[e]=new m({canSelfClose:!1}))})),lt[t]??ks}var ae=class{constructor(e,r){this.sourceSpan=e,this.i18n=r}},Ht=class extends ae{constructor(e,r,n,s){super(r,s),this.value=e,this.tokens=n,this.type=\"text\"}visit(e,r){return e.visitText(this,r)}},Vt=class extends ae{constructor(e,r,n,s){super(r,s),this.value=e,this.tokens=n,this.type=\"cdata\"}visit(e,r){return e.visitCdata(this,r)}},Ut=class extends ae{constructor(e,r,n,s,i,a){super(s,a),this.switchValue=e,this.type=r,this.cases=n,this.switchValueSourceSpan=i}visit(e,r){return e.visitExpansion(this,r)}},Wt=class{constructor(e,r,n,s,i){this.value=e,this.expression=r,this.sourceSpan=n,this.valueSourceSpan=s,this.expSourceSpan=i,this.type=\"expansionCase\"}visit(e,r){return e.visitExpansionCase(this,r)}},zt=class extends ae{constructor(e,r,n,s,i,a,o){super(n,o),this.name=e,this.value=r,this.keySpan=s,this.valueSpan=i,this.valueTokens=a,this.type=\"attribute\"}visit(e,r){return e.visitAttribute(this,r)}get nameSpan(){return this.keySpan}},G=class extends ae{constructor(e,r,n,s,i,a=null,o=null,u){super(s,u),this.name=e,this.attrs=r,this.children=n,this.startSourceSpan=i,this.endSourceSpan=a,this.nameSpan=o,this.type=\"element\"}visit(e,r){return e.visitElement(this,r)}},Gt=class{constructor(e,r){this.value=e,this.sourceSpan=r,this.type=\"comment\"}visit(e,r){return e.visitComment(this,r)}},Yt=class{constructor(e,r){this.value=e,this.sourceSpan=r,this.type=\"docType\"}visit(e,r){return e.visitDocType(this,r)}},ee=class extends ae{constructor(e,r,n,s,i,a,o=null,u){super(s,u),this.name=e,this.parameters=r,this.children=n,this.nameSpan=i,this.startSourceSpan=a,this.endSourceSpan=o,this.type=\"block\"}visit(e,r){return e.visitBlock(this,r)}},ct=class{constructor(e,r){this.expression=e,this.sourceSpan=r,this.type=\"blockParameter\",this.startSourceSpan=null,this.endSourceSpan=null}visit(e,r){return e.visitBlockParameter(this,r)}},pt=class{constructor(e,r,n,s,i){this.name=e,this.value=r,this.sourceSpan=n,this.nameSpan=s,this.valueSpan=i,this.type=\"letDeclaration\",this.startSourceSpan=null,this.endSourceSpan=null}visit(e,r){return e.visitLetDeclaration(this,r)}};function jt(t,e,r=null){let n=[],s=t.visit?i=>t.visit(i,r)||i.visit(t,r):i=>i.visit(t,r);return e.forEach(i=>{let a=s(i);a&&n.push(a)}),n}var ht=class{constructor(){}visitElement(e,r){this.visitChildren(r,n=>{n(e.attrs),n(e.children)})}visitAttribute(e,r){}visitText(e,r){}visitCdata(e,r){}visitComment(e,r){}visitDocType(e,r){}visitExpansion(e,r){return this.visitChildren(r,n=>{n(e.cases)})}visitExpansionCase(e,r){}visitBlock(e,r){this.visitChildren(r,n=>{n(e.parameters),n(e.children)})}visitBlockParameter(e,r){}visitLetDeclaration(e,r){}visitChildren(e,r){let n=[],s=this;function i(a){a&&n.push(jt(s,a,e))}return r(i),Array.prototype.concat.apply([],n)}};var Me={AElig:\"\\xC6\",AMP:\"&\",amp:\"&\",Aacute:\"\\xC1\",Abreve:\"\\u0102\",Acirc:\"\\xC2\",Acy:\"\\u0410\",Afr:\"\\u{1D504}\",Agrave:\"\\xC0\",Alpha:\"\\u0391\",Amacr:\"\\u0100\",And:\"\\u2A53\",Aogon:\"\\u0104\",Aopf:\"\\u{1D538}\",ApplyFunction:\"\\u2061\",af:\"\\u2061\",Aring:\"\\xC5\",angst:\"\\xC5\",Ascr:\"\\u{1D49C}\",Assign:\"\\u2254\",colone:\"\\u2254\",coloneq:\"\\u2254\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Backslash:\"\\u2216\",setminus:\"\\u2216\",setmn:\"\\u2216\",smallsetminus:\"\\u2216\",ssetmn:\"\\u2216\",Barv:\"\\u2AE7\",Barwed:\"\\u2306\",doublebarwedge:\"\\u2306\",Bcy:\"\\u0411\",Because:\"\\u2235\",becaus:\"\\u2235\",because:\"\\u2235\",Bernoullis:\"\\u212C\",Bscr:\"\\u212C\",bernou:\"\\u212C\",Beta:\"\\u0392\",Bfr:\"\\u{1D505}\",Bopf:\"\\u{1D539}\",Breve:\"\\u02D8\",breve:\"\\u02D8\",Bumpeq:\"\\u224E\",HumpDownHump:\"\\u224E\",bump:\"\\u224E\",CHcy:\"\\u0427\",COPY:\"\\xA9\",copy:\"\\xA9\",Cacute:\"\\u0106\",Cap:\"\\u22D2\",CapitalDifferentialD:\"\\u2145\",DD:\"\\u2145\",Cayleys:\"\\u212D\",Cfr:\"\\u212D\",Ccaron:\"\\u010C\",Ccedil:\"\\xC7\",Ccirc:\"\\u0108\",Cconint:\"\\u2230\",Cdot:\"\\u010A\",Cedilla:\"\\xB8\",cedil:\"\\xB8\",CenterDot:\"\\xB7\",centerdot:\"\\xB7\",middot:\"\\xB7\",Chi:\"\\u03A7\",CircleDot:\"\\u2299\",odot:\"\\u2299\",CircleMinus:\"\\u2296\",ominus:\"\\u2296\",CirclePlus:\"\\u2295\",oplus:\"\\u2295\",CircleTimes:\"\\u2297\",otimes:\"\\u2297\",ClockwiseContourIntegral:\"\\u2232\",cwconint:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",Colon:\"\\u2237\",Proportion:\"\\u2237\",Colone:\"\\u2A74\",Congruent:\"\\u2261\",equiv:\"\\u2261\",Conint:\"\\u222F\",DoubleContourIntegral:\"\\u222F\",ContourIntegral:\"\\u222E\",conint:\"\\u222E\",oint:\"\\u222E\",Copf:\"\\u2102\",complexes:\"\\u2102\",Coproduct:\"\\u2210\",coprod:\"\\u2210\",CounterClockwiseContourIntegral:\"\\u2233\",awconint:\"\\u2233\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",Cup:\"\\u22D3\",CupCap:\"\\u224D\",asympeq:\"\\u224D\",DDotrahd:\"\\u2911\",DJcy:\"\\u0402\",DScy:\"\\u0405\",DZcy:\"\\u040F\",Dagger:\"\\u2021\",ddagger:\"\\u2021\",Darr:\"\\u21A1\",Dashv:\"\\u2AE4\",DoubleLeftTee:\"\\u2AE4\",Dcaron:\"\\u010E\",Dcy:\"\\u0414\",Del:\"\\u2207\",nabla:\"\\u2207\",Delta:\"\\u0394\",Dfr:\"\\u{1D507}\",DiacriticalAcute:\"\\xB4\",acute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",dot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",dblac:\"\\u02DD\",DiacriticalGrave:\"`\",grave:\"`\",DiacriticalTilde:\"\\u02DC\",tilde:\"\\u02DC\",Diamond:\"\\u22C4\",diam:\"\\u22C4\",diamond:\"\\u22C4\",DifferentialD:\"\\u2146\",dd:\"\\u2146\",Dopf:\"\\u{1D53B}\",Dot:\"\\xA8\",DoubleDot:\"\\xA8\",die:\"\\xA8\",uml:\"\\xA8\",DotDot:\"\\u20DC\",DotEqual:\"\\u2250\",doteq:\"\\u2250\",esdot:\"\\u2250\",DoubleDownArrow:\"\\u21D3\",Downarrow:\"\\u21D3\",dArr:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",Leftarrow:\"\\u21D0\",lArr:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",Leftrightarrow:\"\\u21D4\",hArr:\"\\u21D4\",iff:\"\\u21D4\",DoubleLongLeftArrow:\"\\u27F8\",Longleftarrow:\"\\u27F8\",xlArr:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",Longleftrightarrow:\"\\u27FA\",xhArr:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",Longrightarrow:\"\\u27F9\",xrArr:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",Implies:\"\\u21D2\",Rightarrow:\"\\u21D2\",rArr:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",vDash:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",Uparrow:\"\\u21D1\",uArr:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",Updownarrow:\"\\u21D5\",vArr:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",par:\"\\u2225\",parallel:\"\\u2225\",shortparallel:\"\\u2225\",spar:\"\\u2225\",DownArrow:\"\\u2193\",ShortDownArrow:\"\\u2193\",darr:\"\\u2193\",downarrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",duarr:\"\\u21F5\",DownBreve:\"\\u0311\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",leftharpoondown:\"\\u21BD\",lhard:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",rhard:\"\\u21C1\",rightharpoondown:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",top:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",mapstodown:\"\\u21A7\",Dscr:\"\\u{1D49F}\",Dstrok:\"\\u0110\",ENG:\"\\u014A\",ETH:\"\\xD0\",Eacute:\"\\xC9\",Ecaron:\"\\u011A\",Ecirc:\"\\xCA\",Ecy:\"\\u042D\",Edot:\"\\u0116\",Efr:\"\\u{1D508}\",Egrave:\"\\xC8\",Element:\"\\u2208\",in:\"\\u2208\",isin:\"\\u2208\",isinv:\"\\u2208\",Emacr:\"\\u0112\",EmptySmallSquare:\"\\u25FB\",EmptyVerySmallSquare:\"\\u25AB\",Eogon:\"\\u0118\",Eopf:\"\\u{1D53C}\",Epsilon:\"\\u0395\",Equal:\"\\u2A75\",EqualTilde:\"\\u2242\",eqsim:\"\\u2242\",esim:\"\\u2242\",Equilibrium:\"\\u21CC\",rightleftharpoons:\"\\u21CC\",rlhar:\"\\u21CC\",Escr:\"\\u2130\",expectation:\"\\u2130\",Esim:\"\\u2A73\",Eta:\"\\u0397\",Euml:\"\\xCB\",Exists:\"\\u2203\",exist:\"\\u2203\",ExponentialE:\"\\u2147\",ee:\"\\u2147\",exponentiale:\"\\u2147\",Fcy:\"\\u0424\",Ffr:\"\\u{1D509}\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",blacksquare:\"\\u25AA\",squarf:\"\\u25AA\",squf:\"\\u25AA\",Fopf:\"\\u{1D53D}\",ForAll:\"\\u2200\",forall:\"\\u2200\",Fouriertrf:\"\\u2131\",Fscr:\"\\u2131\",GJcy:\"\\u0403\",GT:\">\",gt:\">\",Gamma:\"\\u0393\",Gammad:\"\\u03DC\",Gbreve:\"\\u011E\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",Gcy:\"\\u0413\",Gdot:\"\\u0120\",Gfr:\"\\u{1D50A}\",Gg:\"\\u22D9\",ggg:\"\\u22D9\",Gopf:\"\\u{1D53E}\",GreaterEqual:\"\\u2265\",ge:\"\\u2265\",geq:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",gel:\"\\u22DB\",gtreqless:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",gE:\"\\u2267\",geqq:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",gl:\"\\u2277\",gtrless:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",GreaterTilde:\"\\u2273\",gsim:\"\\u2273\",gtrsim:\"\\u2273\",Gscr:\"\\u{1D4A2}\",Gt:\"\\u226B\",NestedGreaterGreater:\"\\u226B\",gg:\"\\u226B\",HARDcy:\"\\u042A\",Hacek:\"\\u02C7\",caron:\"\\u02C7\",Hat:\"^\",Hcirc:\"\\u0124\",Hfr:\"\\u210C\",Poincareplane:\"\\u210C\",HilbertSpace:\"\\u210B\",Hscr:\"\\u210B\",hamilt:\"\\u210B\",Hopf:\"\\u210D\",quaternions:\"\\u210D\",HorizontalLine:\"\\u2500\",boxh:\"\\u2500\",Hstrok:\"\\u0126\",HumpEqual:\"\\u224F\",bumpe:\"\\u224F\",bumpeq:\"\\u224F\",IEcy:\"\\u0415\",IJlig:\"\\u0132\",IOcy:\"\\u0401\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Icy:\"\\u0418\",Idot:\"\\u0130\",Ifr:\"\\u2111\",Im:\"\\u2111\",image:\"\\u2111\",imagpart:\"\\u2111\",Igrave:\"\\xCC\",Imacr:\"\\u012A\",ImaginaryI:\"\\u2148\",ii:\"\\u2148\",Int:\"\\u222C\",Integral:\"\\u222B\",int:\"\\u222B\",Intersection:\"\\u22C2\",bigcap:\"\\u22C2\",xcap:\"\\u22C2\",InvisibleComma:\"\\u2063\",ic:\"\\u2063\",InvisibleTimes:\"\\u2062\",it:\"\\u2062\",Iogon:\"\\u012E\",Iopf:\"\\u{1D540}\",Iota:\"\\u0399\",Iscr:\"\\u2110\",imagline:\"\\u2110\",Itilde:\"\\u0128\",Iukcy:\"\\u0406\",Iuml:\"\\xCF\",Jcirc:\"\\u0134\",Jcy:\"\\u0419\",Jfr:\"\\u{1D50D}\",Jopf:\"\\u{1D541}\",Jscr:\"\\u{1D4A5}\",Jsercy:\"\\u0408\",Jukcy:\"\\u0404\",KHcy:\"\\u0425\",KJcy:\"\\u040C\",Kappa:\"\\u039A\",Kcedil:\"\\u0136\",Kcy:\"\\u041A\",Kfr:\"\\u{1D50E}\",Kopf:\"\\u{1D542}\",Kscr:\"\\u{1D4A6}\",LJcy:\"\\u0409\",LT:\"<\",lt:\"<\",Lacute:\"\\u0139\",Lambda:\"\\u039B\",Lang:\"\\u27EA\",Laplacetrf:\"\\u2112\",Lscr:\"\\u2112\",lagran:\"\\u2112\",Larr:\"\\u219E\",twoheadleftarrow:\"\\u219E\",Lcaron:\"\\u013D\",Lcedil:\"\\u013B\",Lcy:\"\\u041B\",LeftAngleBracket:\"\\u27E8\",lang:\"\\u27E8\",langle:\"\\u27E8\",LeftArrow:\"\\u2190\",ShortLeftArrow:\"\\u2190\",larr:\"\\u2190\",leftarrow:\"\\u2190\",slarr:\"\\u2190\",LeftArrowBar:\"\\u21E4\",larrb:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",leftrightarrows:\"\\u21C6\",lrarr:\"\\u21C6\",LeftCeiling:\"\\u2308\",lceil:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",lobrk:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",dharl:\"\\u21C3\",downharpoonleft:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",lfloor:\"\\u230A\",LeftRightArrow:\"\\u2194\",harr:\"\\u2194\",leftrightarrow:\"\\u2194\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",dashv:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",mapstoleft:\"\\u21A4\",LeftTeeVector:\"\\u295A\",LeftTriangle:\"\\u22B2\",vartriangleleft:\"\\u22B2\",vltri:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",ltrie:\"\\u22B4\",trianglelefteq:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",uharl:\"\\u21BF\",upharpoonleft:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",leftharpoonup:\"\\u21BC\",lharu:\"\\u21BC\",LeftVectorBar:\"\\u2952\",LessEqualGreater:\"\\u22DA\",leg:\"\\u22DA\",lesseqgtr:\"\\u22DA\",LessFullEqual:\"\\u2266\",lE:\"\\u2266\",leqq:\"\\u2266\",LessGreater:\"\\u2276\",lessgtr:\"\\u2276\",lg:\"\\u2276\",LessLess:\"\\u2AA1\",LessSlantEqual:\"\\u2A7D\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",LessTilde:\"\\u2272\",lesssim:\"\\u2272\",lsim:\"\\u2272\",Lfr:\"\\u{1D50F}\",Ll:\"\\u22D8\",Lleftarrow:\"\\u21DA\",lAarr:\"\\u21DA\",Lmidot:\"\\u013F\",LongLeftArrow:\"\\u27F5\",longleftarrow:\"\\u27F5\",xlarr:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",longleftrightarrow:\"\\u27F7\",xharr:\"\\u27F7\",LongRightArrow:\"\\u27F6\",longrightarrow:\"\\u27F6\",xrarr:\"\\u27F6\",Lopf:\"\\u{1D543}\",LowerLeftArrow:\"\\u2199\",swarr:\"\\u2199\",swarrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",searr:\"\\u2198\",searrow:\"\\u2198\",Lsh:\"\\u21B0\",lsh:\"\\u21B0\",Lstrok:\"\\u0141\",Lt:\"\\u226A\",NestedLessLess:\"\\u226A\",ll:\"\\u226A\",Map:\"\\u2905\",Mcy:\"\\u041C\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mscr:\"\\u2133\",phmmat:\"\\u2133\",Mfr:\"\\u{1D510}\",MinusPlus:\"\\u2213\",mnplus:\"\\u2213\",mp:\"\\u2213\",Mopf:\"\\u{1D544}\",Mu:\"\\u039C\",NJcy:\"\\u040A\",Nacute:\"\\u0143\",Ncaron:\"\\u0147\",Ncedil:\"\\u0145\",Ncy:\"\\u041D\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",ZeroWidthSpace:\"\\u200B\",NewLine:`\n`,Nfr:\"\\u{1D511}\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",nbsp:\"\\xA0\",Nopf:\"\\u2115\",naturals:\"\\u2115\",Not:\"\\u2AEC\",NotCongruent:\"\\u2262\",nequiv:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",npar:\"\\u2226\",nparallel:\"\\u2226\",nshortparallel:\"\\u2226\",nspar:\"\\u2226\",NotElement:\"\\u2209\",notin:\"\\u2209\",notinva:\"\\u2209\",NotEqual:\"\\u2260\",ne:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",nesim:\"\\u2242\\u0338\",NotExists:\"\\u2204\",nexist:\"\\u2204\",nexists:\"\\u2204\",NotGreater:\"\\u226F\",ngt:\"\\u226F\",ngtr:\"\\u226F\",NotGreaterEqual:\"\\u2271\",nge:\"\\u2271\",ngeq:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",ngE:\"\\u2267\\u0338\",ngeqq:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",nGtv:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",ntgl:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",ngsim:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",nbump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",nbumpe:\"\\u224F\\u0338\",NotLeftTriangle:\"\\u22EA\",nltri:\"\\u22EA\",ntriangleleft:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",nltrie:\"\\u22EC\",ntrianglelefteq:\"\\u22EC\",NotLess:\"\\u226E\",nless:\"\\u226E\",nlt:\"\\u226E\",NotLessEqual:\"\\u2270\",nle:\"\\u2270\",nleq:\"\\u2270\",NotLessGreater:\"\\u2278\",ntlg:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",nLtv:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",nlsim:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",NotPrecedes:\"\\u2280\",npr:\"\\u2280\",nprec:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",npre:\"\\u2AAF\\u0338\",npreceq:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",nprcue:\"\\u22E0\",NotReverseElement:\"\\u220C\",notni:\"\\u220C\",notniva:\"\\u220C\",NotRightTriangle:\"\\u22EB\",nrtri:\"\\u22EB\",ntriangleright:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",nrtrie:\"\\u22ED\",ntrianglerighteq:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",nsqsube:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",nsqsupe:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",nsubset:\"\\u2282\\u20D2\",vnsub:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",nsube:\"\\u2288\",nsubseteq:\"\\u2288\",NotSucceeds:\"\\u2281\",nsc:\"\\u2281\",nsucc:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",nsce:\"\\u2AB0\\u0338\",nsucceq:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",nsccue:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",nsupset:\"\\u2283\\u20D2\",vnsup:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",nsupe:\"\\u2289\",nsupseteq:\"\\u2289\",NotTilde:\"\\u2241\",nsim:\"\\u2241\",NotTildeEqual:\"\\u2244\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",ncong:\"\\u2247\",NotTildeTilde:\"\\u2249\",nap:\"\\u2249\",napprox:\"\\u2249\",NotVerticalBar:\"\\u2224\",nmid:\"\\u2224\",nshortmid:\"\\u2224\",nsmid:\"\\u2224\",Nscr:\"\\u{1D4A9}\",Ntilde:\"\\xD1\",Nu:\"\\u039D\",OElig:\"\\u0152\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Ocy:\"\\u041E\",Odblac:\"\\u0150\",Ofr:\"\\u{1D512}\",Ograve:\"\\xD2\",Omacr:\"\\u014C\",Omega:\"\\u03A9\",ohm:\"\\u03A9\",Omicron:\"\\u039F\",Oopf:\"\\u{1D546}\",OpenCurlyDoubleQuote:\"\\u201C\",ldquo:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",lsquo:\"\\u2018\",Or:\"\\u2A54\",Oscr:\"\\u{1D4AA}\",Oslash:\"\\xD8\",Otilde:\"\\xD5\",Otimes:\"\\u2A37\",Ouml:\"\\xD6\",OverBar:\"\\u203E\",oline:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",tbrk:\"\\u23B4\",OverParenthesis:\"\\u23DC\",PartialD:\"\\u2202\",part:\"\\u2202\",Pcy:\"\\u041F\",Pfr:\"\\u{1D513}\",Phi:\"\\u03A6\",Pi:\"\\u03A0\",PlusMinus:\"\\xB1\",plusmn:\"\\xB1\",pm:\"\\xB1\",Popf:\"\\u2119\",primes:\"\\u2119\",Pr:\"\\u2ABB\",Precedes:\"\\u227A\",pr:\"\\u227A\",prec:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",pre:\"\\u2AAF\",preceq:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",prcue:\"\\u227C\",preccurlyeq:\"\\u227C\",PrecedesTilde:\"\\u227E\",precsim:\"\\u227E\",prsim:\"\\u227E\",Prime:\"\\u2033\",Product:\"\\u220F\",prod:\"\\u220F\",Proportional:\"\\u221D\",prop:\"\\u221D\",propto:\"\\u221D\",varpropto:\"\\u221D\",vprop:\"\\u221D\",Pscr:\"\\u{1D4AB}\",Psi:\"\\u03A8\",QUOT:'\"',quot:'\"',Qfr:\"\\u{1D514}\",Qopf:\"\\u211A\",rationals:\"\\u211A\",Qscr:\"\\u{1D4AC}\",RBarr:\"\\u2910\",drbkarow:\"\\u2910\",REG:\"\\xAE\",circledR:\"\\xAE\",reg:\"\\xAE\",Racute:\"\\u0154\",Rang:\"\\u27EB\",Rarr:\"\\u21A0\",twoheadrightarrow:\"\\u21A0\",Rarrtl:\"\\u2916\",Rcaron:\"\\u0158\",Rcedil:\"\\u0156\",Rcy:\"\\u0420\",Re:\"\\u211C\",Rfr:\"\\u211C\",real:\"\\u211C\",realpart:\"\\u211C\",ReverseElement:\"\\u220B\",SuchThat:\"\\u220B\",ni:\"\\u220B\",niv:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",leftrightharpoons:\"\\u21CB\",lrhar:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",duhar:\"\\u296F\",Rho:\"\\u03A1\",RightAngleBracket:\"\\u27E9\",rang:\"\\u27E9\",rangle:\"\\u27E9\",RightArrow:\"\\u2192\",ShortRightArrow:\"\\u2192\",rarr:\"\\u2192\",rightarrow:\"\\u2192\",srarr:\"\\u2192\",RightArrowBar:\"\\u21E5\",rarrb:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",rightleftarrows:\"\\u21C4\",rlarr:\"\\u21C4\",RightCeiling:\"\\u2309\",rceil:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",robrk:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",dharr:\"\\u21C2\",downharpoonright:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",rfloor:\"\\u230B\",RightTee:\"\\u22A2\",vdash:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",map:\"\\u21A6\",mapsto:\"\\u21A6\",RightTeeVector:\"\\u295B\",RightTriangle:\"\\u22B3\",vartriangleright:\"\\u22B3\",vrtri:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",rtrie:\"\\u22B5\",trianglerighteq:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",uharr:\"\\u21BE\",upharpoonright:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",rharu:\"\\u21C0\",rightharpoonup:\"\\u21C0\",RightVectorBar:\"\\u2953\",Ropf:\"\\u211D\",reals:\"\\u211D\",RoundImplies:\"\\u2970\",Rrightarrow:\"\\u21DB\",rAarr:\"\\u21DB\",Rscr:\"\\u211B\",realine:\"\\u211B\",Rsh:\"\\u21B1\",rsh:\"\\u21B1\",RuleDelayed:\"\\u29F4\",SHCHcy:\"\\u0429\",SHcy:\"\\u0428\",SOFTcy:\"\\u042C\",Sacute:\"\\u015A\",Sc:\"\\u2ABC\",Scaron:\"\\u0160\",Scedil:\"\\u015E\",Scirc:\"\\u015C\",Scy:\"\\u0421\",Sfr:\"\\u{1D516}\",ShortUpArrow:\"\\u2191\",UpArrow:\"\\u2191\",uarr:\"\\u2191\",uparrow:\"\\u2191\",Sigma:\"\\u03A3\",SmallCircle:\"\\u2218\",compfn:\"\\u2218\",Sopf:\"\\u{1D54A}\",Sqrt:\"\\u221A\",radic:\"\\u221A\",Square:\"\\u25A1\",squ:\"\\u25A1\",square:\"\\u25A1\",SquareIntersection:\"\\u2293\",sqcap:\"\\u2293\",SquareSubset:\"\\u228F\",sqsub:\"\\u228F\",sqsubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",sqsube:\"\\u2291\",sqsubseteq:\"\\u2291\",SquareSuperset:\"\\u2290\",sqsup:\"\\u2290\",sqsupset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",sqsupe:\"\\u2292\",sqsupseteq:\"\\u2292\",SquareUnion:\"\\u2294\",sqcup:\"\\u2294\",Sscr:\"\\u{1D4AE}\",Star:\"\\u22C6\",sstarf:\"\\u22C6\",Sub:\"\\u22D0\",Subset:\"\\u22D0\",SubsetEqual:\"\\u2286\",sube:\"\\u2286\",subseteq:\"\\u2286\",Succeeds:\"\\u227B\",sc:\"\\u227B\",succ:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",sce:\"\\u2AB0\",succeq:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",sccue:\"\\u227D\",succcurlyeq:\"\\u227D\",SucceedsTilde:\"\\u227F\",scsim:\"\\u227F\",succsim:\"\\u227F\",Sum:\"\\u2211\",sum:\"\\u2211\",Sup:\"\\u22D1\",Supset:\"\\u22D1\",Superset:\"\\u2283\",sup:\"\\u2283\",supset:\"\\u2283\",SupersetEqual:\"\\u2287\",supe:\"\\u2287\",supseteq:\"\\u2287\",THORN:\"\\xDE\",TRADE:\"\\u2122\",trade:\"\\u2122\",TSHcy:\"\\u040B\",TScy:\"\\u0426\",Tab:\"\t\",Tau:\"\\u03A4\",Tcaron:\"\\u0164\",Tcedil:\"\\u0162\",Tcy:\"\\u0422\",Tfr:\"\\u{1D517}\",Therefore:\"\\u2234\",there4:\"\\u2234\",therefore:\"\\u2234\",Theta:\"\\u0398\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",thinsp:\"\\u2009\",Tilde:\"\\u223C\",sim:\"\\u223C\",thicksim:\"\\u223C\",thksim:\"\\u223C\",TildeEqual:\"\\u2243\",sime:\"\\u2243\",simeq:\"\\u2243\",TildeFullEqual:\"\\u2245\",cong:\"\\u2245\",TildeTilde:\"\\u2248\",ap:\"\\u2248\",approx:\"\\u2248\",asymp:\"\\u2248\",thickapprox:\"\\u2248\",thkap:\"\\u2248\",Topf:\"\\u{1D54B}\",TripleDot:\"\\u20DB\",tdot:\"\\u20DB\",Tscr:\"\\u{1D4AF}\",Tstrok:\"\\u0166\",Uacute:\"\\xDA\",Uarr:\"\\u219F\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",Ubreve:\"\\u016C\",Ucirc:\"\\xDB\",Ucy:\"\\u0423\",Udblac:\"\\u0170\",Ufr:\"\\u{1D518}\",Ugrave:\"\\xD9\",Umacr:\"\\u016A\",UnderBar:\"_\",lowbar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",bbrk:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",bigcup:\"\\u22C3\",xcup:\"\\u22C3\",UnionPlus:\"\\u228E\",uplus:\"\\u228E\",Uogon:\"\\u0172\",Uopf:\"\\u{1D54C}\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",udarr:\"\\u21C5\",UpDownArrow:\"\\u2195\",updownarrow:\"\\u2195\",varr:\"\\u2195\",UpEquilibrium:\"\\u296E\",udhar:\"\\u296E\",UpTee:\"\\u22A5\",bot:\"\\u22A5\",bottom:\"\\u22A5\",perp:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",mapstoup:\"\\u21A5\",UpperLeftArrow:\"\\u2196\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",nearr:\"\\u2197\",nearrow:\"\\u2197\",Upsi:\"\\u03D2\",upsih:\"\\u03D2\",Upsilon:\"\\u03A5\",Uring:\"\\u016E\",Uscr:\"\\u{1D4B0}\",Utilde:\"\\u0168\",Uuml:\"\\xDC\",VDash:\"\\u22AB\",Vbar:\"\\u2AEB\",Vcy:\"\\u0412\",Vdash:\"\\u22A9\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",bigvee:\"\\u22C1\",xvee:\"\\u22C1\",Verbar:\"\\u2016\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",mid:\"\\u2223\",shortmid:\"\\u2223\",smid:\"\\u2223\",VerticalLine:\"|\",verbar:\"|\",vert:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",wr:\"\\u2240\",wreath:\"\\u2240\",VeryThinSpace:\"\\u200A\",hairsp:\"\\u200A\",Vfr:\"\\u{1D519}\",Vopf:\"\\u{1D54D}\",Vscr:\"\\u{1D4B1}\",Vvdash:\"\\u22AA\",Wcirc:\"\\u0174\",Wedge:\"\\u22C0\",bigwedge:\"\\u22C0\",xwedge:\"\\u22C0\",Wfr:\"\\u{1D51A}\",Wopf:\"\\u{1D54E}\",Wscr:\"\\u{1D4B2}\",Xfr:\"\\u{1D51B}\",Xi:\"\\u039E\",Xopf:\"\\u{1D54F}\",Xscr:\"\\u{1D4B3}\",YAcy:\"\\u042F\",YIcy:\"\\u0407\",YUcy:\"\\u042E\",Yacute:\"\\xDD\",Ycirc:\"\\u0176\",Ycy:\"\\u042B\",Yfr:\"\\u{1D51C}\",Yopf:\"\\u{1D550}\",Yscr:\"\\u{1D4B4}\",Yuml:\"\\u0178\",ZHcy:\"\\u0416\",Zacute:\"\\u0179\",Zcaron:\"\\u017D\",Zcy:\"\\u0417\",Zdot:\"\\u017B\",Zeta:\"\\u0396\",Zfr:\"\\u2128\",zeetrf:\"\\u2128\",Zopf:\"\\u2124\",integers:\"\\u2124\",Zscr:\"\\u{1D4B5}\",aacute:\"\\xE1\",abreve:\"\\u0103\",ac:\"\\u223E\",mstpos:\"\\u223E\",acE:\"\\u223E\\u0333\",acd:\"\\u223F\",acirc:\"\\xE2\",acy:\"\\u0430\",aelig:\"\\xE6\",afr:\"\\u{1D51E}\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",alpha:\"\\u03B1\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",and:\"\\u2227\",wedge:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",angle:\"\\u2220\",ange:\"\\u29A4\",angmsd:\"\\u2221\",measuredangle:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angzarr:\"\\u237C\",aogon:\"\\u0105\",aopf:\"\\u{1D552}\",apE:\"\\u2A70\",apacir:\"\\u2A6F\",ape:\"\\u224A\",approxeq:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",aring:\"\\xE5\",ascr:\"\\u{1D4B6}\",ast:\"*\",midast:\"*\",atilde:\"\\xE3\",auml:\"\\xE4\",awint:\"\\u2A11\",bNot:\"\\u2AED\",backcong:\"\\u224C\",bcong:\"\\u224C\",backepsilon:\"\\u03F6\",bepsi:\"\\u03F6\",backprime:\"\\u2035\",bprime:\"\\u2035\",backsim:\"\\u223D\",bsim:\"\\u223D\",backsimeq:\"\\u22CD\",bsime:\"\\u22CD\",barvee:\"\\u22BD\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrktbrk:\"\\u23B6\",bcy:\"\\u0431\",bdquo:\"\\u201E\",ldquor:\"\\u201E\",bemptyv:\"\\u29B0\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",twixt:\"\\u226C\",bfr:\"\\u{1D51F}\",bigcirc:\"\\u25EF\",xcirc:\"\\u25EF\",bigodot:\"\\u2A00\",xodot:\"\\u2A00\",bigoplus:\"\\u2A01\",xoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",xotime:\"\\u2A02\",bigsqcup:\"\\u2A06\",xsqcup:\"\\u2A06\",bigstar:\"\\u2605\",starf:\"\\u2605\",bigtriangledown:\"\\u25BD\",xdtri:\"\\u25BD\",bigtriangleup:\"\\u25B3\",xutri:\"\\u25B3\",biguplus:\"\\u2A04\",xuplus:\"\\u2A04\",bkarow:\"\\u290D\",rbarr:\"\\u290D\",blacklozenge:\"\\u29EB\",lozf:\"\\u29EB\",blacktriangle:\"\\u25B4\",utrif:\"\\u25B4\",blacktriangledown:\"\\u25BE\",dtrif:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",ltrif:\"\\u25C2\",blacktriangleright:\"\\u25B8\",rtrif:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bnot:\"\\u2310\",bopf:\"\\u{1D553}\",bowtie:\"\\u22C8\",boxDL:\"\\u2557\",boxDR:\"\\u2554\",boxDl:\"\\u2556\",boxDr:\"\\u2553\",boxH:\"\\u2550\",boxHD:\"\\u2566\",boxHU:\"\\u2569\",boxHd:\"\\u2564\",boxHu:\"\\u2567\",boxUL:\"\\u255D\",boxUR:\"\\u255A\",boxUl:\"\\u255C\",boxUr:\"\\u2559\",boxV:\"\\u2551\",boxVH:\"\\u256C\",boxVL:\"\\u2563\",boxVR:\"\\u2560\",boxVh:\"\\u256B\",boxVl:\"\\u2562\",boxVr:\"\\u255F\",boxbox:\"\\u29C9\",boxdL:\"\\u2555\",boxdR:\"\\u2552\",boxdl:\"\\u2510\",boxdr:\"\\u250C\",boxhD:\"\\u2565\",boxhU:\"\\u2568\",boxhd:\"\\u252C\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",minusb:\"\\u229F\",boxplus:\"\\u229E\",plusb:\"\\u229E\",boxtimes:\"\\u22A0\",timesb:\"\\u22A0\",boxuL:\"\\u255B\",boxuR:\"\\u2558\",boxul:\"\\u2518\",boxur:\"\\u2514\",boxv:\"\\u2502\",boxvH:\"\\u256A\",boxvL:\"\\u2561\",boxvR:\"\\u255E\",boxvh:\"\\u253C\",boxvl:\"\\u2524\",boxvr:\"\\u251C\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bumpE:\"\\u2AAE\",cacute:\"\\u0107\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",ccaps:\"\\u2A4D\",ccaron:\"\\u010D\",ccedil:\"\\xE7\",ccirc:\"\\u0109\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",cdot:\"\\u010B\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",cfr:\"\\u{1D520}\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",chi:\"\\u03C7\",cir:\"\\u25CB\",cirE:\"\\u29C3\",circ:\"\\u02C6\",circeq:\"\\u2257\",cire:\"\\u2257\",circlearrowleft:\"\\u21BA\",olarr:\"\\u21BA\",circlearrowright:\"\\u21BB\",orarr:\"\\u21BB\",circledS:\"\\u24C8\",oS:\"\\u24C8\",circledast:\"\\u229B\",oast:\"\\u229B\",circledcirc:\"\\u229A\",ocir:\"\\u229A\",circleddash:\"\\u229D\",odash:\"\\u229D\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",comma:\",\",commat:\"@\",comp:\"\\u2201\",complement:\"\\u2201\",congdot:\"\\u2A6D\",copf:\"\\u{1D554}\",copysr:\"\\u2117\",crarr:\"\\u21B5\",cross:\"\\u2717\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",curlyeqprec:\"\\u22DE\",cuesc:\"\\u22DF\",curlyeqsucc:\"\\u22DF\",cularr:\"\\u21B6\",curvearrowleft:\"\\u21B6\",cularrp:\"\\u293D\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curvearrowright:\"\\u21B7\",curarrm:\"\\u293C\",curlyvee:\"\\u22CE\",cuvee:\"\\u22CE\",curlywedge:\"\\u22CF\",cuwed:\"\\u22CF\",curren:\"\\xA4\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dHar:\"\\u2965\",dagger:\"\\u2020\",daleth:\"\\u2138\",dash:\"\\u2010\",hyphen:\"\\u2010\",dbkarow:\"\\u290F\",rBarr:\"\\u290F\",dcaron:\"\\u010F\",dcy:\"\\u0434\",ddarr:\"\\u21CA\",downdownarrows:\"\\u21CA\",ddotseq:\"\\u2A77\",eDDot:\"\\u2A77\",deg:\"\\xB0\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",dfr:\"\\u{1D521}\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",digamma:\"\\u03DD\",gammad:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",llcorner:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",dopf:\"\\u{1D555}\",doteqdot:\"\\u2251\",eDot:\"\\u2251\",dotminus:\"\\u2238\",minusd:\"\\u2238\",dotplus:\"\\u2214\",plusdo:\"\\u2214\",dotsquare:\"\\u22A1\",sdotb:\"\\u22A1\",drcorn:\"\\u231F\",lrcorner:\"\\u231F\",drcrop:\"\\u230C\",dscr:\"\\u{1D4B9}\",dscy:\"\\u0455\",dsol:\"\\u29F6\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",triangledown:\"\\u25BF\",dwangle:\"\\u29A6\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",eacute:\"\\xE9\",easter:\"\\u2A6E\",ecaron:\"\\u011B\",ecir:\"\\u2256\",eqcirc:\"\\u2256\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",eqcolon:\"\\u2255\",ecy:\"\\u044D\",edot:\"\\u0117\",efDot:\"\\u2252\",fallingdotseq:\"\\u2252\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",egrave:\"\\xE8\",egs:\"\\u2A96\",eqslantgtr:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",eqslantless:\"\\u2A95\",elsdot:\"\\u2A97\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",emptyv:\"\\u2205\",varnothing:\"\\u2205\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",eng:\"\\u014B\",ensp:\"\\u2002\",eogon:\"\\u0119\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",straightepsilon:\"\\u03F5\",varepsilon:\"\\u03F5\",equals:\"=\",equest:\"\\u225F\",questeq:\"\\u225F\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erDot:\"\\u2253\",risingdotseq:\"\\u2253\",erarr:\"\\u2971\",escr:\"\\u212F\",eta:\"\\u03B7\",eth:\"\\xF0\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",fopf:\"\\u{1D557}\",fork:\"\\u22D4\",pitchfork:\"\\u22D4\",forkv:\"\\u2AD9\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",half:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",sfrown:\"\\u2322\",fscr:\"\\u{1D4BB}\",gEl:\"\\u2A8C\",gtreqqless:\"\\u2A8C\",gacute:\"\\u01F5\",gamma:\"\\u03B3\",gap:\"\\u2A86\",gtrapprox:\"\\u2A86\",gbreve:\"\\u011F\",gcirc:\"\\u011D\",gcy:\"\\u0433\",gdot:\"\\u0121\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",gfr:\"\\u{1D524}\",gimel:\"\\u2137\",gjcy:\"\\u0453\",glE:\"\\u2A92\",gla:\"\\u2AA5\",glj:\"\\u2AA4\",gnE:\"\\u2269\",gneqq:\"\\u2269\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gnsim:\"\\u22E7\",gopf:\"\\u{1D558}\",gscr:\"\\u210A\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtrdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrarr:\"\\u2978\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",hardcy:\"\\u044A\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",leftrightsquigarrow:\"\\u21AD\",hbar:\"\\u210F\",hslash:\"\\u210F\",planck:\"\\u210F\",plankv:\"\\u210F\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",mldr:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",hksearow:\"\\u2925\",searhk:\"\\u2925\",hkswarow:\"\\u2926\",swarhk:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",larrhk:\"\\u21A9\",hookrightarrow:\"\\u21AA\",rarrhk:\"\\u21AA\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",hscr:\"\\u{1D4BD}\",hstrok:\"\\u0127\",hybull:\"\\u2043\",iacute:\"\\xED\",icirc:\"\\xEE\",icy:\"\\u0438\",iecy:\"\\u0435\",iexcl:\"\\xA1\",ifr:\"\\u{1D526}\",igrave:\"\\xEC\",iiiint:\"\\u2A0C\",qint:\"\\u2A0C\",iiint:\"\\u222D\",tint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",ijlig:\"\\u0133\",imacr:\"\\u012B\",imath:\"\\u0131\",inodot:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",intcal:\"\\u22BA\",intercal:\"\\u22BA\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",iprod:\"\\u2A3C\",iocy:\"\\u0451\",iogon:\"\\u012F\",iopf:\"\\u{1D55A}\",iota:\"\\u03B9\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",isinE:\"\\u22F9\",isindot:\"\\u22F5\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",itilde:\"\\u0129\",iukcy:\"\\u0456\",iuml:\"\\xEF\",jcirc:\"\\u0135\",jcy:\"\\u0439\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",jopf:\"\\u{1D55B}\",jscr:\"\\u{1D4BF}\",jsercy:\"\\u0458\",jukcy:\"\\u0454\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",varkappa:\"\\u03F0\",kcedil:\"\\u0137\",kcy:\"\\u043A\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",khcy:\"\\u0445\",kjcy:\"\\u045C\",kopf:\"\\u{1D55C}\",kscr:\"\\u{1D4C0}\",lAtail:\"\\u291B\",lBarr:\"\\u290E\",lEg:\"\\u2A8B\",lesseqqgtr:\"\\u2A8B\",lHar:\"\\u2962\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lambda:\"\\u03BB\",langd:\"\\u2991\",lap:\"\\u2A85\",lessapprox:\"\\u2A85\",laquo:\"\\xAB\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrlp:\"\\u21AB\",looparrowleft:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",leftarrowtail:\"\\u21A2\",lat:\"\\u2AAB\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lcub:\"{\",lbrack:\"[\",lsqb:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",lcaron:\"\\u013E\",lcedil:\"\\u013C\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",leq:\"\\u2264\",leftleftarrows:\"\\u21C7\",llarr:\"\\u21C7\",leftthreetimes:\"\\u22CB\",lthree:\"\\u22CB\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessdot:\"\\u22D6\",ltdot:\"\\u22D6\",lfisht:\"\\u297C\",lfr:\"\\u{1D529}\",lgE:\"\\u2A91\",lharul:\"\\u296A\",lhblk:\"\\u2584\",ljcy:\"\\u0459\",llhard:\"\\u296B\",lltri:\"\\u25FA\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnE:\"\\u2268\",lneqq:\"\\u2268\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",longmapsto:\"\\u27FC\",xmap:\"\\u27FC\",looparrowright:\"\\u21AC\",rarrlp:\"\\u21AC\",lopar:\"\\u2985\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lpar:\"(\",lparlt:\"\\u2993\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsquor:\"\\u201A\",sbquo:\"\\u201A\",lstrok:\"\\u0142\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltrPar:\"\\u2996\",ltri:\"\\u25C3\",triangleleft:\"\\u25C3\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",mDDot:\"\\u223A\",macr:\"\\xAF\",strns:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",mcy:\"\\u043C\",mdash:\"\\u2014\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",midcir:\"\\u2AF0\",minus:\"\\u2212\",minusdu:\"\\u2A2A\",mlcp:\"\\u2ADB\",models:\"\\u22A7\",mopf:\"\\u{1D55E}\",mscr:\"\\u{1D4C2}\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nGg:\"\\u22D9\\u0338\",nGt:\"\\u226B\\u20D2\",nLeftarrow:\"\\u21CD\",nlArr:\"\\u21CD\",nLeftrightarrow:\"\\u21CE\",nhArr:\"\\u21CE\",nLl:\"\\u22D8\\u0338\",nLt:\"\\u226A\\u20D2\",nRightarrow:\"\\u21CF\",nrArr:\"\\u21CF\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",natur:\"\\u266E\",natural:\"\\u266E\",ncap:\"\\u2A43\",ncaron:\"\\u0148\",ncedil:\"\\u0146\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",ncy:\"\\u043D\",ndash:\"\\u2013\",neArr:\"\\u21D7\",nearhk:\"\\u2924\",nedot:\"\\u2250\\u0338\",nesear:\"\\u2928\",toea:\"\\u2928\",nfr:\"\\u{1D52B}\",nharr:\"\\u21AE\",nleftrightarrow:\"\\u21AE\",nhpar:\"\\u2AF2\",nis:\"\\u22FC\",nisd:\"\\u22FA\",njcy:\"\\u045A\",nlE:\"\\u2266\\u0338\",nleqq:\"\\u2266\\u0338\",nlarr:\"\\u219A\",nleftarrow:\"\\u219A\",nldr:\"\\u2025\",nopf:\"\\u{1D55F}\",not:\"\\xAC\",notinE:\"\\u22F9\\u0338\",notindot:\"\\u22F5\\u0338\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",nrarr:\"\\u219B\",nrightarrow:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nscr:\"\\u{1D4C3}\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsubseteqq:\"\\u2AC5\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupseteqq:\"\\u2AC6\\u0338\",ntilde:\"\\xF1\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvDash:\"\\u22AD\",nvHarr:\"\\u2904\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwArr:\"\\u21D6\",nwarhk:\"\\u2923\",nwnear:\"\\u2927\",oacute:\"\\xF3\",ocirc:\"\\xF4\",ocy:\"\\u043E\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odsold:\"\\u29BC\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",olt:\"\\u29C0\",omacr:\"\\u014D\",omega:\"\\u03C9\",omicron:\"\\u03BF\",omid:\"\\u29B6\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",operp:\"\\u29B9\",or:\"\\u2228\",vee:\"\\u2228\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",oscr:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oslash:\"\\xF8\",osol:\"\\u2298\",otilde:\"\\xF5\",otimesas:\"\\u2A36\",ouml:\"\\xF6\",ovbar:\"\\u233D\",para:\"\\xB6\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",pertenk:\"\\u2031\",pfr:\"\\u{1D52D}\",phi:\"\\u03C6\",phiv:\"\\u03D5\",straightphi:\"\\u03D5\",varphi:\"\\u03D5\",phone:\"\\u260E\",pi:\"\\u03C0\",piv:\"\\u03D6\",varpi:\"\\u03D6\",planckh:\"\\u210E\",plus:\"+\",plusacir:\"\\u2A23\",pluscir:\"\\u2A22\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",pound:\"\\xA3\",prE:\"\\u2AB3\",prap:\"\\u2AB7\",precapprox:\"\\u2AB7\",precnapprox:\"\\u2AB9\",prnap:\"\\u2AB9\",precneqq:\"\\u2AB5\",prnE:\"\\u2AB5\",precnsim:\"\\u22E8\",prnsim:\"\\u22E8\",prime:\"\\u2032\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prurel:\"\\u22B0\",pscr:\"\\u{1D4C5}\",psi:\"\\u03C8\",puncsp:\"\\u2008\",qfr:\"\\u{1D52E}\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",qscr:\"\\u{1D4C6}\",quatint:\"\\u2A16\",quest:\"?\",rAtail:\"\\u291C\",rHar:\"\\u2964\",race:\"\\u223D\\u0331\",racute:\"\\u0155\",raemptyv:\"\\u29B3\",rangd:\"\\u2992\",range:\"\\u29A5\",raquo:\"\\xBB\",rarrap:\"\\u2975\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",rarrtl:\"\\u21A3\",rightarrowtail:\"\\u21A3\",rarrw:\"\\u219D\",rightsquigarrow:\"\\u219D\",ratail:\"\\u291A\",ratio:\"\\u2236\",rbbrk:\"\\u2773\",rbrace:\"}\",rcub:\"}\",rbrack:\"]\",rsqb:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",rcaron:\"\\u0159\",rcedil:\"\\u0157\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdsh:\"\\u21B3\",rect:\"\\u25AD\",rfisht:\"\\u297D\",rfr:\"\\u{1D52F}\",rharul:\"\\u296C\",rho:\"\\u03C1\",rhov:\"\\u03F1\",varrho:\"\\u03F1\",rightrightarrows:\"\\u21C9\",rrarr:\"\\u21C9\",rightthreetimes:\"\\u22CC\",rthree:\"\\u22CC\",ring:\"\\u02DA\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",triangleright:\"\\u25B9\",rtriltri:\"\\u29CE\",ruluhar:\"\\u2968\",rx:\"\\u211E\",sacute:\"\\u015B\",scE:\"\\u2AB4\",scap:\"\\u2AB8\",succapprox:\"\\u2AB8\",scaron:\"\\u0161\",scedil:\"\\u015F\",scirc:\"\\u015D\",scnE:\"\\u2AB6\",succneqq:\"\\u2AB6\",scnap:\"\\u2ABA\",succnapprox:\"\\u2ABA\",scnsim:\"\\u22E9\",succnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdote:\"\\u2A66\",seArr:\"\\u21D8\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",tosa:\"\\u2929\",sext:\"\\u2736\",sfr:\"\\u{1D530}\",sharp:\"\\u266F\",shchcy:\"\\u0449\",shcy:\"\\u0448\",shy:\"\\xAD\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",varsigma:\"\\u03C2\",simdot:\"\\u2A6A\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smile:\"\\u2323\",ssmile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",sqcaps:\"\\u2293\\uFE00\",sqcups:\"\\u2294\\uFE00\",sscr:\"\\u{1D4C8}\",star:\"\\u2606\",sub:\"\\u2282\",subset:\"\\u2282\",subE:\"\\u2AC5\",subseteqq:\"\\u2AC5\",subdot:\"\\u2ABD\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subsetneqq:\"\\u2ACB\",subne:\"\\u228A\",subsetneq:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",sung:\"\\u266A\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",supE:\"\\u2AC6\",supseteqq:\"\\u2AC6\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supedot:\"\\u2AC4\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supsetneqq:\"\\u2ACC\",supne:\"\\u228B\",supsetneq:\"\\u228B\",supplus:\"\\u2AC0\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swArr:\"\\u21D9\",swnwar:\"\\u292A\",szlig:\"\\xDF\",target:\"\\u2316\",tau:\"\\u03C4\",tcaron:\"\\u0165\",tcedil:\"\\u0163\",tcy:\"\\u0442\",telrec:\"\\u2315\",tfr:\"\\u{1D531}\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",vartheta:\"\\u03D1\",thorn:\"\\xFE\",times:\"\\xD7\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tprime:\"\\u2034\",triangle:\"\\u25B5\",utri:\"\\u25B5\",triangleq:\"\\u225C\",trie:\"\\u225C\",tridot:\"\\u25EC\",triminus:\"\\u2A3A\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",tscr:\"\\u{1D4C9}\",tscy:\"\\u0446\",tshcy:\"\\u045B\",tstrok:\"\\u0167\",uHar:\"\\u2963\",uacute:\"\\xFA\",ubrcy:\"\\u045E\",ubreve:\"\\u016D\",ucirc:\"\\xFB\",ucy:\"\\u0443\",udblac:\"\\u0171\",ufisht:\"\\u297E\",ufr:\"\\u{1D532}\",ugrave:\"\\xF9\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",umacr:\"\\u016B\",uogon:\"\\u0173\",uopf:\"\\u{1D566}\",upsi:\"\\u03C5\",upsilon:\"\\u03C5\",upuparrows:\"\\u21C8\",uuarr:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",uring:\"\\u016F\",urtri:\"\\u25F9\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",utilde:\"\\u0169\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",vangrt:\"\\u299C\",varsubsetneq:\"\\u228A\\uFE00\",vsubne:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",vsubnE:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",vsupne:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vcy:\"\\u0432\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",vfr:\"\\u{1D533}\",vopf:\"\\u{1D567}\",vscr:\"\\u{1D4CB}\",vzigzag:\"\\u299A\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",wp:\"\\u2118\",wfr:\"\\u{1D534}\",wopf:\"\\u{1D568}\",wscr:\"\\u{1D4CC}\",xfr:\"\\u{1D535}\",xi:\"\\u03BE\",xnis:\"\\u22FB\",xopf:\"\\u{1D569}\",xscr:\"\\u{1D4CD}\",yacute:\"\\xFD\",yacy:\"\\u044F\",ycirc:\"\\u0177\",ycy:\"\\u044B\",yen:\"\\xA5\",yfr:\"\\u{1D536}\",yicy:\"\\u0457\",yopf:\"\\u{1D56A}\",yscr:\"\\u{1D4CE}\",yucy:\"\\u044E\",yuml:\"\\xFF\",zacute:\"\\u017A\",zcaron:\"\\u017E\",zcy:\"\\u0437\",zdot:\"\\u017C\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},Ua=\"\\uE500\";Me.ngsp=Ua;var Wa=[/@/,/^\\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\\/\\//];function Bs(t,e){if(e!=null&&!(Array.isArray(e)&&e.length==2))throw new Error(`Expected '${t}' to be an array, [start, end].`);if(e!=null){let r=e[0],n=e[1];Wa.forEach(s=>{if(s.test(r)||s.test(n))throw new Error(`['${r}', '${n}'] contains unusable interpolation symbol.`)})}}var Lr=class t{static fromArray(e){return e?(Bs(\"interpolation\",e),new t(e[0],e[1])):Fr}constructor(e,r){this.start=e,this.end=r}},Fr=new Lr(\"{{\",\"}}\");var ft=class extends Ie{constructor(e,r,n){super(n,e),this.tokenType=r}},Or=class{constructor(e,r,n){this.tokens=e,this.errors=r,this.nonNormalizedIcuExpressions=n}};function Us(t,e,r,n={}){let s=new $r(new Ee(t,e),r,n);return s.tokenize(),new Or(Co(s.tokens),s.errors,s.nonNormalizedIcuExpressions)}var lo=/\\r\\n?/g;function qe(t){return`Unexpected character \"${t===0?\"EOF\":String.fromCharCode(t)}\"`}function Is(t){return`Unknown entity \"${t}\" - use the \"&#<decimal>;\" or \"&#x<hex>;\" syntax`}function co(t,e){return`Unable to parse entity \"${e}\" - ${t} character reference entities must end with \";\"`}var Zt;(function(t){t.HEX=\"hexadecimal\",t.DEC=\"decimal\"})(Zt||(Zt={}));var dt=class{constructor(e){this.error=e}},$r=class{constructor(e,r,n){this._getTagContentType=r,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this._fullNameStack=[],this.tokens=[],this.errors=[],this.nonNormalizedIcuExpressions=[],this._tokenizeIcu=n.tokenizeExpansionForms||!1,this._interpolationConfig=n.interpolationConfig||Fr,this._leadingTriviaCodePoints=n.leadingTriviaChars&&n.leadingTriviaChars.map(i=>i.codePointAt(0)||0),this._canSelfClose=n.canSelfClose||!1,this._allowHtmComponentClosingTags=n.allowHtmComponentClosingTags||!1;let s=n.range||{endPos:e.content.length,startPos:0,startLine:0,startCol:0};this._cursor=n.escapedString?new Mr(e,s):new er(e,s),this._preserveLineEndings=n.preserveLineEndings||!1,this._i18nNormalizeLineEndingsInICUs=n.i18nNormalizeLineEndingsInICUs||!1,this._tokenizeBlocks=n.tokenizeBlocks??!0,this._tokenizeLet=n.tokenizeLet??!0;try{this._cursor.init()}catch(i){this.handleError(i)}}_processCarriageReturns(e){return this._preserveLineEndings?e:e.replace(lo,`\n`)}tokenize(){for(;this._cursor.peek()!==0;){let e=this._cursor.clone();try{if(this._attemptCharCode(60))if(this._attemptCharCode(33))this._attemptStr(\"[CDATA[\")?this._consumeCdata(e):this._attemptStr(\"--\")?this._consumeComment(e):this._attemptStrCaseInsensitive(\"doctype\")?this._consumeDocType(e):this._consumeBogusComment(e);else if(this._attemptCharCode(47))this._consumeTagClose(e);else{let r=this._cursor.clone();this._attemptCharCode(63)?(this._cursor=r,this._consumeBogusComment(e)):this._consumeTagOpen(e)}else this._tokenizeLet&&this._cursor.peek()===64&&!this._inInterpolation&&this._attemptStr(\"@let\")?this._consumeLetDeclaration(e):this._tokenizeBlocks&&this._attemptCharCode(64)?this._consumeBlockStart(e):this._tokenizeBlocks&&!this._inInterpolation&&!this._isInExpansionCase()&&!this._isInExpansionForm()&&this._attemptCharCode(125)?this._consumeBlockEnd(e):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeWithInterpolation(5,8,()=>this._isTextEnd(),()=>this._isTagStart())}catch(r){this.handleError(r)}}this._beginToken(34),this._endToken([])}_getBlockName(){let e=!1,r=this._cursor.clone();return this._attemptCharCodeUntilFn(n=>at(n)?!e:$s(n)?(e=!0,!1):!0),this._cursor.getChars(r).trim()}_consumeBlockStart(e){this._beginToken(25,e);let r=this._endToken([this._getBlockName()]);if(this._cursor.peek()===40)if(this._cursor.advance(),this._consumeBlockParameters(),this._attemptCharCodeUntilFn(b),this._attemptCharCode(41))this._attemptCharCodeUntilFn(b);else{r.type=29;return}this._attemptCharCode(123)?(this._beginToken(26),this._endToken([])):r.type=29}_consumeBlockEnd(e){this._beginToken(27,e),this._endToken([])}_consumeBlockParameters(){for(this._attemptCharCodeUntilFn(Ms);this._cursor.peek()!==41&&this._cursor.peek()!==0;){this._beginToken(28);let e=this._cursor.clone(),r=null,n=0;for(;this._cursor.peek()!==59&&this._cursor.peek()!==0||r!==null;){let s=this._cursor.peek();if(s===92)this._cursor.advance();else if(s===r)r=null;else if(r===null&&It(s))r=s;else if(s===40&&r===null)n++;else if(s===41&&r===null){if(n===0)break;n>0&&n--}this._cursor.advance()}this._endToken([this._cursor.getChars(e)]),this._attemptCharCodeUntilFn(Ms)}}_consumeLetDeclaration(e){if(this._beginToken(30,e),at(this._cursor.peek()))this._attemptCharCodeUntilFn(b);else{let s=this._endToken([this._cursor.getChars(e)]);s.type=33;return}let r=this._endToken([this._getLetDeclarationName()]);if(this._attemptCharCodeUntilFn(b),!this._attemptCharCode(61)){r.type=33;return}this._attemptCharCodeUntilFn(s=>b(s)&&!Pt(s)),this._consumeLetDeclarationValue(),this._cursor.peek()===59?(this._beginToken(32),this._endToken([]),this._cursor.advance()):(r.type=33,r.sourceSpan=this._cursor.getSpan(e))}_getLetDeclarationName(){let e=this._cursor.clone(),r=!1;return this._attemptCharCodeUntilFn(n=>ot(n)||n===36||n===95||r&&Nt(n)?(r=!0,!1):!0),this._cursor.getChars(e).trim()}_consumeLetDeclarationValue(){let e=this._cursor.clone();for(this._beginToken(31,e);this._cursor.peek()!==0;){let r=this._cursor.peek();if(r===59)break;It(r)&&(this._cursor.advance(),this._attemptCharCodeUntilFn(n=>n===92?(this._cursor.advance(),!1):n===r)),this._cursor.advance()}this._endToken([this._cursor.getChars(e)])}_tokenizeExpansionForm(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(fo(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._cursor.peek()===125){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_beginToken(e,r=this._cursor.clone()){this._currentTokenStart=r,this._currentTokenType=e}_endToken(e,r){if(this._currentTokenStart===null)throw new ft(\"Programming error - attempted to end a token when there was no start to the token\",this._currentTokenType,this._cursor.getSpan(r));if(this._currentTokenType===null)throw new ft(\"Programming error - attempted to end a token which has no token type\",null,this._cursor.getSpan(this._currentTokenStart));let n={type:this._currentTokenType,parts:e,sourceSpan:(r??this._cursor).getSpan(this._currentTokenStart,this._leadingTriviaCodePoints)};return this.tokens.push(n),this._currentTokenStart=null,this._currentTokenType=null,n}_createError(e,r){this._isInExpansionForm()&&(e+=` (Do you have an unescaped \"{\" in your template? Use \"{{ '{' }}\") to escape it.)`);let n=new ft(e,this._currentTokenType,r);return this._currentTokenStart=null,this._currentTokenType=null,new dt(n)}handleError(e){if(e instanceof gt&&(e=this._createError(e.msg,this._cursor.getSpan(e.cursor))),e instanceof dt)this.errors.push(e.error);else throw e}_attemptCharCode(e){return this._cursor.peek()===e?(this._cursor.advance(),!0):!1}_attemptCharCodeCaseInsensitive(e){return go(this._cursor.peek(),e)?(this._cursor.advance(),!0):!1}_requireCharCode(e){let r=this._cursor.clone();if(!this._attemptCharCode(e))throw this._createError(qe(this._cursor.peek()),this._cursor.getSpan(r))}_attemptStr(e){let r=e.length;if(this._cursor.charsLeft()<r)return!1;let n=this._cursor.clone();for(let s=0;s<r;s++)if(!this._attemptCharCode(e.charCodeAt(s)))return this._cursor=n,!1;return!0}_attemptStrCaseInsensitive(e){for(let r=0;r<e.length;r++)if(!this._attemptCharCodeCaseInsensitive(e.charCodeAt(r)))return!1;return!0}_requireStr(e){let r=this._cursor.clone();if(!this._attemptStr(e))throw this._createError(qe(this._cursor.peek()),this._cursor.getSpan(r))}_requireStrCaseInsensitive(e){let r=this._cursor.clone();if(!this._attemptStrCaseInsensitive(e))throw this._createError(qe(this._cursor.peek()),this._cursor.getSpan(r))}_attemptCharCodeUntilFn(e){for(;!e(this._cursor.peek());)this._cursor.advance()}_requireCharCodeUntilFn(e,r){let n=this._cursor.clone();if(this._attemptCharCodeUntilFn(e),this._cursor.diff(n)<r)throw this._createError(qe(this._cursor.peek()),this._cursor.getSpan(n))}_attemptUntilChar(e){for(;this._cursor.peek()!==e;)this._cursor.advance()}_readChar(){let e=String.fromCodePoint(this._cursor.peek());return this._cursor.advance(),e}_consumeEntity(e){this._beginToken(9);let r=this._cursor.clone();if(this._cursor.advance(),this._attemptCharCode(35)){let n=this._attemptCharCode(120)||this._attemptCharCode(88),s=this._cursor.clone();if(this._attemptCharCodeUntilFn(ho),this._cursor.peek()!=59){this._cursor.advance();let a=n?Zt.HEX:Zt.DEC;throw this._createError(co(a,this._cursor.getChars(r)),this._cursor.getSpan())}let i=this._cursor.getChars(s);this._cursor.advance();try{let a=parseInt(i,n?16:10);this._endToken([String.fromCharCode(a),this._cursor.getChars(r)])}catch{throw this._createError(Is(this._cursor.getChars(r)),this._cursor.getSpan())}}else{let n=this._cursor.clone();if(this._attemptCharCodeUntilFn(mo),this._cursor.peek()!=59)this._beginToken(e,r),this._cursor=n,this._endToken([\"&\"]);else{let s=this._cursor.getChars(n);this._cursor.advance();let i=Me[s];if(!i)throw this._createError(Is(s),this._cursor.getSpan(r));this._endToken([i,`&${s};`])}}}_consumeRawText(e,r){this._beginToken(e?6:7);let n=[];for(;;){let s=this._cursor.clone(),i=r();if(this._cursor=s,i)break;e&&this._cursor.peek()===38?(this._endToken([this._processCarriageReturns(n.join(\"\"))]),n.length=0,this._consumeEntity(6),this._beginToken(6)):n.push(this._readChar())}this._endToken([this._processCarriageReturns(n.join(\"\"))])}_consumeComment(e){this._beginToken(10,e),this._endToken([]),this._consumeRawText(!1,()=>this._attemptStr(\"-->\")),this._beginToken(11),this._requireStr(\"-->\"),this._endToken([])}_consumeBogusComment(e){this._beginToken(10,e),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===62),this._beginToken(11),this._cursor.advance(),this._endToken([])}_consumeCdata(e){this._beginToken(12,e),this._endToken([]),this._consumeRawText(!1,()=>this._attemptStr(\"]]>\")),this._beginToken(13),this._requireStr(\"]]>\"),this._endToken([])}_consumeDocType(e){this._beginToken(18,e),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===62),this._beginToken(19),this._cursor.advance(),this._endToken([])}_consumePrefixAndName(){let e=this._cursor.clone(),r=\"\";for(;this._cursor.peek()!==58&&!po(this._cursor.peek());)this._cursor.advance();let n;this._cursor.peek()===58?(r=this._cursor.getChars(e),this._cursor.advance(),n=this._cursor.clone()):n=e,this._requireCharCodeUntilFn(Rs,r===\"\"?0:1);let s=this._cursor.getChars(n);return[r,s]}_consumeTagOpen(e){let r,n,s,i=[];try{if(!ot(this._cursor.peek()))throw this._createError(qe(this._cursor.peek()),this._cursor.getSpan(e));for(s=this._consumeTagOpenStart(e),n=s.parts[0],r=s.parts[1],this._attemptCharCodeUntilFn(b);this._cursor.peek()!==47&&this._cursor.peek()!==62&&this._cursor.peek()!==60&&this._cursor.peek()!==0;){let[o,u]=this._consumeAttributeName();if(this._attemptCharCodeUntilFn(b),this._attemptCharCode(61)){this._attemptCharCodeUntilFn(b);let p=this._consumeAttributeValue();i.push({prefix:o,name:u,value:p})}else i.push({prefix:o,name:u});this._attemptCharCodeUntilFn(b)}this._consumeTagOpenEnd()}catch(o){if(o instanceof dt){s?s.type=4:(this._beginToken(5,e),this._endToken([\"<\"]));return}throw o}if(this._canSelfClose&&this.tokens[this.tokens.length-1].type===2)return;let a=this._getTagContentType(r,n,this._fullNameStack.length>0,i);this._handleFullNameStackForTagOpen(n,r),a===I.RAW_TEXT?this._consumeRawTextWithTagClose(n,r,!1):a===I.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(n,r,!0)}_consumeRawTextWithTagClose(e,r,n){this._consumeRawText(n,()=>!this._attemptCharCode(60)||!this._attemptCharCode(47)||(this._attemptCharCodeUntilFn(b),!this._attemptStrCaseInsensitive(e?`${e}:${r}`:r))?!1:(this._attemptCharCodeUntilFn(b),this._attemptCharCode(62))),this._beginToken(3),this._requireCharCodeUntilFn(s=>s===62,3),this._cursor.advance(),this._endToken([e,r]),this._handleFullNameStackForTagClose(e,r)}_consumeTagOpenStart(e){this._beginToken(0,e);let r=this._consumePrefixAndName();return this._endToken(r)}_consumeAttributeName(){let e=this._cursor.peek();if(e===39||e===34)throw this._createError(qe(e),this._cursor.getSpan());this._beginToken(14);let r=this._consumePrefixAndName();return this._endToken(r),r}_consumeAttributeValue(){let e;if(this._cursor.peek()===39||this._cursor.peek()===34){let r=this._cursor.peek();this._consumeQuote(r);let n=()=>this._cursor.peek()===r;e=this._consumeWithInterpolation(16,17,n,n),this._consumeQuote(r)}else{let r=()=>Rs(this._cursor.peek());e=this._consumeWithInterpolation(16,17,r,r)}return e}_consumeQuote(e){this._beginToken(15),this._requireCharCode(e),this._endToken([String.fromCodePoint(e)])}_consumeTagOpenEnd(){let e=this._attemptCharCode(47)?2:1;this._beginToken(e),this._requireCharCode(62),this._endToken([])}_consumeTagClose(e){if(this._beginToken(3,e),this._attemptCharCodeUntilFn(b),this._allowHtmComponentClosingTags&&this._attemptCharCode(47))this._attemptCharCodeUntilFn(b),this._requireCharCode(62),this._endToken([]);else{let[r,n]=this._consumePrefixAndName();this._attemptCharCodeUntilFn(b),this._requireCharCode(62),this._endToken([r,n]),this._handleFullNameStackForTagClose(r,n)}}_consumeExpansionFormStart(){this._beginToken(20),this._requireCharCode(123),this._endToken([]),this._expansionCaseStack.push(20),this._beginToken(7);let e=this._readUntil(44),r=this._processCarriageReturns(e);if(this._i18nNormalizeLineEndingsInICUs)this._endToken([r]);else{let s=this._endToken([e]);r!==e&&this.nonNormalizedIcuExpressions.push(s)}this._requireCharCode(44),this._attemptCharCodeUntilFn(b),this._beginToken(7);let n=this._readUntil(44);this._endToken([n]),this._requireCharCode(44),this._attemptCharCodeUntilFn(b)}_consumeExpansionCaseStart(){this._beginToken(21);let e=this._readUntil(123).trim();this._endToken([e]),this._attemptCharCodeUntilFn(b),this._beginToken(22),this._requireCharCode(123),this._endToken([]),this._attemptCharCodeUntilFn(b),this._expansionCaseStack.push(22)}_consumeExpansionCaseEnd(){this._beginToken(23),this._requireCharCode(125),this._endToken([]),this._attemptCharCodeUntilFn(b),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(24),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()}_consumeWithInterpolation(e,r,n,s){this._beginToken(e);let i=[];for(;!n();){let o=this._cursor.clone();this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(this._endToken([this._processCarriageReturns(i.join(\"\"))],o),i.length=0,this._consumeInterpolation(r,o,s),this._beginToken(e)):this._cursor.peek()===38?(this._endToken([this._processCarriageReturns(i.join(\"\"))]),i.length=0,this._consumeEntity(e),this._beginToken(e)):i.push(this._readChar())}this._inInterpolation=!1;let a=this._processCarriageReturns(i.join(\"\"));return this._endToken([a]),a}_consumeInterpolation(e,r,n){let s=[];this._beginToken(e,r),s.push(this._interpolationConfig.start);let i=this._cursor.clone(),a=null,o=!1;for(;this._cursor.peek()!==0&&(n===null||!n());){let u=this._cursor.clone();if(this._isTagStart()){this._cursor=u,s.push(this._getProcessedChars(i,u)),this._endToken(s);return}if(a===null)if(this._attemptStr(this._interpolationConfig.end)){s.push(this._getProcessedChars(i,u)),s.push(this._interpolationConfig.end),this._endToken(s);return}else this._attemptStr(\"//\")&&(o=!0);let p=this._cursor.peek();this._cursor.advance(),p===92?this._cursor.advance():p===a?a=null:!o&&a===null&&It(p)&&(a=p)}s.push(this._getProcessedChars(i,this._cursor)),this._endToken(s)}_getProcessedChars(e,r){return this._processCarriageReturns(r.getChars(e))}_isTextEnd(){return!!(this._isTagStart()||this._cursor.peek()===0||this._tokenizeIcu&&!this._inInterpolation&&(this.isExpansionFormStart()||this._cursor.peek()===125&&this._isInExpansionCase())||this._tokenizeBlocks&&!this._inInterpolation&&!this._isInExpansion()&&(this._isBlockStart()||this._cursor.peek()===64||this._cursor.peek()===125))}_isTagStart(){if(this._cursor.peek()===60){let e=this._cursor.clone();e.advance();let r=e.peek();if(97<=r&&r<=122||65<=r&&r<=90||r===47||r===33)return!0}return!1}_isBlockStart(){if(this._tokenizeBlocks&&this._cursor.peek()===64){let e=this._cursor.clone();if(e.advance(),$s(e.peek()))return!0}return!1}_readUntil(e){let r=this._cursor.clone();return this._attemptUntilChar(e),this._cursor.getChars(r)}_isInExpansion(){return this._isInExpansionCase()||this._isInExpansionForm()}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===22}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===20}isExpansionFormStart(){if(this._cursor.peek()!==123)return!1;if(this._interpolationConfig){let e=this._cursor.clone(),r=this._attemptStr(this._interpolationConfig.start);return this._cursor=e,!r}return!0}_handleFullNameStackForTagOpen(e,r){let n=Oe(e,r);(this._fullNameStack.length===0||this._fullNameStack[this._fullNameStack.length-1]===n)&&this._fullNameStack.push(n)}_handleFullNameStackForTagClose(e,r){let n=Oe(e,r);this._fullNameStack.length!==0&&this._fullNameStack[this._fullNameStack.length-1]===n&&this._fullNameStack.pop()}};function b(t){return!at(t)||t===0}function Rs(t){return at(t)||t===62||t===60||t===47||t===39||t===34||t===61||t===0}function po(t){return(t<97||122<t)&&(t<65||90<t)&&(t<48||t>57)}function ho(t){return t===59||t===0||!gs(t)}function mo(t){return t===59||t===0||!ot(t)}function fo(t){return t!==125}function go(t,e){return Os(t)===Os(e)}function Os(t){return t>=97&&t<=122?t-97+65:t}function $s(t){return ot(t)||Nt(t)||t===95}function Ms(t){return t!==59&&b(t)}function Co(t){let e=[],r;for(let n=0;n<t.length;n++){let s=t[n];r&&r.type===5&&s.type===5||r&&r.type===16&&s.type===16?(r.parts[0]+=s.parts[0],r.sourceSpan.end=s.sourceSpan.end):(r=s,e.push(r))}return e}var er=class t{constructor(e,r){if(e instanceof t){this.file=e.file,this.input=e.input,this.end=e.end;let n=e.state;this.state={peek:n.peek,offset:n.offset,line:n.line,column:n.column}}else{if(!r)throw new Error(\"Programming error: the range argument must be provided with a file argument.\");this.file=e,this.input=e.content,this.end=r.endPos,this.state={peek:-1,offset:r.startPos,line:r.startLine,column:r.startCol}}}clone(){return new t(this)}peek(){return this.state.peek}charsLeft(){return this.end-this.state.offset}diff(e){return this.state.offset-e.state.offset}advance(){this.advanceState(this.state)}init(){this.updatePeek(this.state)}getSpan(e,r){e=e||this;let n=e;if(r)for(;this.diff(e)>0&&r.indexOf(e.peek())!==-1;)n===e&&(e=e.clone()),e.advance();let s=this.locationFromCursor(e),i=this.locationFromCursor(this),a=n!==e?this.locationFromCursor(n):s;return new h(s,i,a)}getChars(e){return this.input.substring(e.state.offset,this.state.offset)}charAt(e){return this.input.charCodeAt(e)}advanceState(e){if(e.offset>=this.end)throw this.state=e,new gt('Unexpected character \"EOF\"',this);let r=this.charAt(e.offset);r===10?(e.line++,e.column=0):Pt(r)||e.column++,e.offset++,this.updatePeek(e)}updatePeek(e){e.peek=e.offset>=this.end?0:this.charAt(e.offset)}locationFromCursor(e){return new ie(e.file,e.state.offset,e.state.line,e.state.column)}},Mr=class t extends er{constructor(e,r){e instanceof t?(super(e),this.internalState={...e.internalState}):(super(e,r),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new t(this)}getChars(e){let r=e.clone(),n=\"\";for(;r.internalState.offset<this.internalState.offset;)n+=String.fromCodePoint(r.peek()),r.advance();return n}processEscapeSequence(){let e=()=>this.internalState.peek;if(e()===92)if(this.internalState={...this.state},this.advanceState(this.internalState),e()===110)this.state.peek=10;else if(e()===114)this.state.peek=13;else if(e()===118)this.state.peek=11;else if(e()===116)this.state.peek=9;else if(e()===98)this.state.peek=8;else if(e()===102)this.state.peek=12;else if(e()===117)if(this.advanceState(this.internalState),e()===123){this.advanceState(this.internalState);let r=this.clone(),n=0;for(;e()!==125;)this.advanceState(this.internalState),n++;this.state.peek=this.decodeHexDigits(r,n)}else{let r=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(r,4)}else if(e()===120){this.advanceState(this.internalState);let r=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(r,2)}else if(yr(e())){let r=\"\",n=0,s=this.clone();for(;yr(e())&&n<3;)s=this.clone(),r+=String.fromCodePoint(e()),this.advanceState(this.internalState),n++;this.state.peek=parseInt(r,8),this.internalState=s.internalState}else Pt(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(e,r){let n=this.input.slice(e.internalState.offset,e.internalState.offset+r),s=parseInt(n,16);if(isNaN(s))throw e.state=e.internalState,new gt(\"Invalid hexadecimal escape sequence\",e);return s}},gt=class{constructor(e,r){this.msg=e,this.cursor=r}};var L=class t extends Ie{static create(e,r,n){return new t(e,r,n)}constructor(e,r,n){super(r,n),this.elementName=e}},Vr=class{constructor(e,r){this.rootNodes=e,this.errors=r}},tr=class{constructor(e){this.getTagDefinition=e}parse(e,r,n,s=!1,i){let a=D=>(R,...F)=>D(R.toLowerCase(),...F),o=s?this.getTagDefinition:a(this.getTagDefinition),u=D=>o(D).getContentType(),p=s?i:a(i),f=Us(e,r,i?(D,R,F,c)=>{let g=p(D,R,F,c);return g!==void 0?g:u(D)}:u,n),d=n&&n.canSelfClose||!1,C=n&&n.allowHtmComponentClosingTags||!1,A=new Ur(f.tokens,o,d,C,s);return A.build(),new Vr(A.rootNodes,f.errors.concat(A.errors))}},Ur=class t{constructor(e,r,n,s,i){this.tokens=e,this.getTagDefinition=r,this.canSelfClose=n,this.allowHtmComponentClosingTags=s,this.isTagNameCaseSensitive=i,this._index=-1,this._containerStack=[],this.rootNodes=[],this.errors=[],this._advance()}build(){for(;this._peek.type!==34;)this._peek.type===0||this._peek.type===4?this._consumeStartTag(this._advance()):this._peek.type===3?(this._closeVoidElement(),this._consumeEndTag(this._advance())):this._peek.type===12?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===10?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===5||this._peek.type===7||this._peek.type===6?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===20?this._consumeExpansion(this._advance()):this._peek.type===25?(this._closeVoidElement(),this._consumeBlockOpen(this._advance())):this._peek.type===27?(this._closeVoidElement(),this._consumeBlockClose(this._advance())):this._peek.type===29?(this._closeVoidElement(),this._consumeIncompleteBlock(this._advance())):this._peek.type===30?(this._closeVoidElement(),this._consumeLet(this._advance())):this._peek.type===18?this._consumeDocType(this._advance()):this._peek.type===33?(this._closeVoidElement(),this._consumeIncompleteLet(this._advance())):this._advance();for(let e of this._containerStack)e instanceof ee&&this.errors.push(L.create(e.name,e.sourceSpan,`Unclosed block \"${e.name}\"`))}_advance(){let e=this._peek;return this._index<this.tokens.length-1&&this._index++,this._peek=this.tokens[this._index],e}_advanceIf(e){return this._peek.type===e?this._advance():null}_consumeCdata(e){let r=this._advance(),n=this._getText(r),s=this._advanceIf(13);this._addToParent(new Vt(n,new h(e.sourceSpan.start,(s||r).sourceSpan.end),[r]))}_consumeComment(e){let r=this._advanceIf(7),n=this._advanceIf(11),s=r!=null?r.parts[0].trim():null,i=n==null?e.sourceSpan:new h(e.sourceSpan.start,n.sourceSpan.end,e.sourceSpan.fullStart);this._addToParent(new Gt(s,i))}_consumeDocType(e){let r=this._advanceIf(7),n=this._advanceIf(19),s=r!=null?r.parts[0].trim():null,i=new h(e.sourceSpan.start,(n||r||e).sourceSpan.end);this._addToParent(new Yt(s,i))}_consumeExpansion(e){let r=this._advance(),n=this._advance(),s=[];for(;this._peek.type===21;){let a=this._parseExpansionCase();if(!a)return;s.push(a)}if(this._peek.type!==24){this.errors.push(L.create(null,this._peek.sourceSpan,\"Invalid ICU message. Missing '}'.\"));return}let i=new h(e.sourceSpan.start,this._peek.sourceSpan.end,e.sourceSpan.fullStart);this._addToParent(new Ut(r.parts[0],n.parts[0],s,i,r.sourceSpan)),this._advance()}_parseExpansionCase(){let e=this._advance();if(this._peek.type!==22)return this.errors.push(L.create(null,this._peek.sourceSpan,\"Invalid ICU message. Missing '{'.\")),null;let r=this._advance(),n=this._collectExpansionExpTokens(r);if(!n)return null;let s=this._advance();n.push({type:34,parts:[],sourceSpan:s.sourceSpan});let i=new t(n,this.getTagDefinition,this.canSelfClose,this.allowHtmComponentClosingTags,this.isTagNameCaseSensitive);if(i.build(),i.errors.length>0)return this.errors=this.errors.concat(i.errors),null;let a=new h(e.sourceSpan.start,s.sourceSpan.end,e.sourceSpan.fullStart),o=new h(r.sourceSpan.start,s.sourceSpan.end,r.sourceSpan.fullStart);return new Wt(e.parts[0],i.rootNodes,a,e.sourceSpan,o)}_collectExpansionExpTokens(e){let r=[],n=[22];for(;;){if((this._peek.type===20||this._peek.type===22)&&n.push(this._peek.type),this._peek.type===23)if(Ws(n,22)){if(n.pop(),n.length===0)return r}else return this.errors.push(L.create(null,e.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===24)if(Ws(n,20))n.pop();else return this.errors.push(L.create(null,e.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===34)return this.errors.push(L.create(null,e.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;r.push(this._advance())}}_getText(e){let r=e.parts[0];if(r.length>0&&r[0]==`\n`){let n=this._getClosestParentElement();n!=null&&n.children.length==0&&this.getTagDefinition(n.name).ignoreFirstLf&&(r=r.substring(1))}return r}_consumeText(e){let r=[e],n=e.sourceSpan,s=e.parts[0];if(s.length>0&&s[0]===`\n`){let i=this._getContainer();i!=null&&i.children.length===0&&this.getTagDefinition(i.name).ignoreFirstLf&&(s=s.substring(1),r[0]={type:e.type,sourceSpan:e.sourceSpan,parts:[s]})}for(;this._peek.type===8||this._peek.type===5||this._peek.type===9;)e=this._advance(),r.push(e),e.type===8?s+=e.parts.join(\"\").replace(/&([^;]+);/g,zs):e.type===9?s+=e.parts[0]:s+=e.parts.join(\"\");if(s.length>0){let i=e.sourceSpan;this._addToParent(new Ht(s,new h(n.start,i.end,n.fullStart,n.details),r))}}_closeVoidElement(){let e=this._getContainer();e instanceof G&&this.getTagDefinition(e.name).isVoid&&this._containerStack.pop()}_consumeStartTag(e){let[r,n]=e.parts,s=[];for(;this._peek.type===14;)s.push(this._consumeAttr(this._advance()));let i=this._getElementFullName(r,n,this._getClosestParentElement()),a=!1;if(this._peek.type===2){this._advance(),a=!0;let C=this.getTagDefinition(i);this.canSelfClose||C.canSelfClose||Re(i)!==null||C.isVoid||this.errors.push(L.create(i,e.sourceSpan,`Only void, custom and foreign elements can be self closed \"${e.parts[1]}\"`))}else this._peek.type===1&&(this._advance(),a=!1);let o=this._peek.sourceSpan.fullStart,u=new h(e.sourceSpan.start,o,e.sourceSpan.fullStart),p=new h(e.sourceSpan.start,o,e.sourceSpan.fullStart),l=new h(e.sourceSpan.start.moveBy(1),e.sourceSpan.end),f=new G(i,s,[],u,p,void 0,l),d=this._getContainer();this._pushContainer(f,d instanceof G&&this.getTagDefinition(d.name).isClosedByChild(f.name)),a?this._popContainer(i,G,u):e.type===4&&(this._popContainer(i,G,null),this.errors.push(L.create(i,u,`Opening tag \"${i}\" not terminated.`)))}_pushContainer(e,r){r&&this._containerStack.pop(),this._addToParent(e),this._containerStack.push(e)}_consumeEndTag(e){let r=this.allowHtmComponentClosingTags&&e.parts.length===0?null:this._getElementFullName(e.parts[0],e.parts[1],this._getClosestParentElement());if(r&&this.getTagDefinition(r).isVoid)this.errors.push(L.create(r,e.sourceSpan,`Void elements do not have end tags \"${e.parts[1]}\"`));else if(!this._popContainer(r,G,e.sourceSpan)){let n=`Unexpected closing tag \"${r}\". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;this.errors.push(L.create(r,e.sourceSpan,n))}}_popContainer(e,r,n){let s=!1;for(let i=this._containerStack.length-1;i>=0;i--){let a=this._containerStack[i];if(Re(a.name)?a.name===e:(e==null||a.name.toLowerCase()===e.toLowerCase())&&a instanceof r)return a.endSourceSpan=n,a.sourceSpan.end=n!==null?n.end:a.sourceSpan.end,this._containerStack.splice(i,this._containerStack.length-i),!s;(a instanceof ee||a instanceof G&&!this.getTagDefinition(a.name).closedByParent)&&(s=!0)}return!1}_consumeAttr(e){let r=Oe(e.parts[0],e.parts[1]),n=e.sourceSpan.end,s;this._peek.type===15&&(s=this._advance());let i=\"\",a=[],o,u;if(this._peek.type===16)for(o=this._peek.sourceSpan,u=this._peek.sourceSpan.end;this._peek.type===16||this._peek.type===17||this._peek.type===9;){let f=this._advance();a.push(f),f.type===17?i+=f.parts.join(\"\").replace(/&([^;]+);/g,zs):f.type===9?i+=f.parts[0]:i+=f.parts.join(\"\"),u=n=f.sourceSpan.end}this._peek.type===15&&(u=n=this._advance().sourceSpan.end);let l=o&&u&&new h((s==null?void 0:s.sourceSpan.start)??o.start,u,(s==null?void 0:s.sourceSpan.fullStart)??o.fullStart);return new zt(r,i,new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),e.sourceSpan,l,a.length>0?a:void 0,void 0)}_consumeBlockOpen(e){let r=[];for(;this._peek.type===28;){let o=this._advance();r.push(new ct(o.parts[0],o.sourceSpan))}this._peek.type===26&&this._advance();let n=this._peek.sourceSpan.fullStart,s=new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),i=new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),a=new ee(e.parts[0],r,[],s,e.sourceSpan,i);this._pushContainer(a,!1)}_consumeBlockClose(e){this._popContainer(null,ee,e.sourceSpan)||this.errors.push(L.create(null,e.sourceSpan,'Unexpected closing block. The block may have been closed earlier. If you meant to write the } character, you should use the \"&#125;\" HTML entity instead.'))}_consumeIncompleteBlock(e){let r=[];for(;this._peek.type===28;){let o=this._advance();r.push(new ct(o.parts[0],o.sourceSpan))}let n=this._peek.sourceSpan.fullStart,s=new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),i=new h(e.sourceSpan.start,n,e.sourceSpan.fullStart),a=new ee(e.parts[0],r,[],s,e.sourceSpan,i);this._pushContainer(a,!1),this._popContainer(null,ee,null),this.errors.push(L.create(e.parts[0],s,`Incomplete block \"${e.parts[0]}\". If you meant to write the @ character, you should use the \"&#64;\" HTML entity instead.`))}_consumeLet(e){let r=e.parts[0],n,s;if(this._peek.type!==31){this.errors.push(L.create(e.parts[0],e.sourceSpan,`Invalid @let declaration \"${r}\". Declaration must have a value.`));return}else n=this._advance();if(this._peek.type!==32){this.errors.push(L.create(e.parts[0],e.sourceSpan,`Unterminated @let declaration \"${r}\". Declaration must be terminated with a semicolon.`));return}else s=this._advance();let i=s.sourceSpan.fullStart,a=new h(e.sourceSpan.start,i,e.sourceSpan.fullStart),o=e.sourceSpan.toString().lastIndexOf(r),u=e.sourceSpan.start.moveBy(o),p=new h(u,e.sourceSpan.end),l=new pt(r,n.parts[0],a,p,n.sourceSpan);this._addToParent(l)}_consumeIncompleteLet(e){let r=e.parts[0]??\"\",n=r?` \"${r}\"`:\"\";if(r.length>0){let s=e.sourceSpan.toString().lastIndexOf(r),i=e.sourceSpan.start.moveBy(s),a=new h(i,e.sourceSpan.end),o=new h(e.sourceSpan.start,e.sourceSpan.start.moveBy(0)),u=new pt(r,\"\",e.sourceSpan,a,o);this._addToParent(u)}this.errors.push(L.create(e.parts[0],e.sourceSpan,`Incomplete @let declaration${n}. @let declarations must be written as \\`@let <name> = <value>;\\``))}_getContainer(){return this._containerStack.length>0?this._containerStack[this._containerStack.length-1]:null}_getClosestParentElement(){for(let e=this._containerStack.length-1;e>-1;e--)if(this._containerStack[e]instanceof G)return this._containerStack[e];return null}_addToParent(e){let r=this._getContainer();r===null?this.rootNodes.push(e):r.children.push(e)}_getElementFullName(e,r,n){if(e===\"\"&&(e=this.getTagDefinition(r).implicitNamespacePrefix||\"\",e===\"\"&&n!=null)){let s=ut(n.name)[1];this.getTagDefinition(s).preventNamespaceInheritance||(e=Re(n.name))}return Oe(e,r)}};function Ws(t,e){return t.length>0&&t[t.length-1]===e}function zs(t,e){return Me[e]!==void 0?Me[e]||t:/^#x[a-f0-9]+$/i.test(e)?String.fromCodePoint(parseInt(e.slice(2),16)):/^#\\d+$/.test(e)?String.fromCodePoint(parseInt(e.slice(1),10)):t}var rr=class extends tr{constructor(){super($e)}parse(e,r,n,s=!1,i){return super.parse(e,r,n,s,i)}};var Wr=null,So=()=>(Wr||(Wr=new rr),Wr);function zr(t,e={}){let{canSelfClose:r=!1,allowHtmComponentClosingTags:n=!1,isTagNameCaseSensitive:s=!1,getTagContentType:i,tokenizeAngularBlocks:a=!1,tokenizeAngularLetDeclaration:o=!1}=e;return So().parse(t,\"angular-html-parser\",{tokenizeExpansionForms:a,interpolationConfig:void 0,canSelfClose:r,allowHtmComponentClosingTags:n,tokenizeBlocks:a,tokenizeLet:o},s,i)}function _o(t,e){let r=new SyntaxError(t+\" (\"+e.loc.start.line+\":\"+e.loc.start.column+\")\");return Object.assign(r,e)}var Gs=_o;var Ct=3;function Eo(t){let e=t.slice(0,Ct);if(e!==\"---\"&&e!==\"+++\")return;let r=t.indexOf(`\n`,Ct);if(r===-1)return;let n=t.slice(Ct,r).trim(),s=t.indexOf(`\n${e}`,r),i=n;if(i||(i=e===\"+++\"?\"toml\":\"yaml\"),s===-1&&e===\"---\"&&i===\"yaml\"&&(s=t.indexOf(`\n...`,r)),s===-1)return;let a=s+1+Ct,o=t.charAt(a+1);if(!/\\s?/u.test(o))return;let u=t.slice(0,a);return{type:\"front-matter\",language:i,explicitLanguage:n,value:t.slice(r+1,s),startDelimiter:e,endDelimiter:u.slice(-Ct),raw:u}}function Ao(t){let e=Eo(t);if(!e)return{content:t};let{raw:r}=e;return{frontMatter:e,content:w(!1,r,/[^\\n]/gu,\" \")+t.slice(r.length)}}var Ys=Ao;var nr={attrs:!0,children:!0,cases:!0,expression:!0},js=new Set([\"parent\"]),sr=class t{constructor(e={}){for(let r of new Set([...js,...Object.keys(e)]))this.setProperty(r,e[r])}setProperty(e,r){if(this[e]!==r){if(e in nr&&(r=r.map(n=>this.createChild(n))),!js.has(e)){this[e]=r;return}Object.defineProperty(this,e,{value:r,enumerable:!1,configurable:!0})}}map(e){let r;for(let n in nr){let s=this[n];if(s){let i=Do(s,a=>a.map(e));r!==s&&(r||(r=new t({parent:this.parent})),r.setProperty(n,i))}}if(r)for(let n in this)n in nr||(r[n]=this[n]);return e(r||this)}walk(e){for(let r in nr){let n=this[r];if(n)for(let s=0;s<n.length;s++)n[s].walk(e)}e(this)}createChild(e){let r=e instanceof t?e.clone():new t(e);return r.setProperty(\"parent\",this),r}insertChildBefore(e,r){this.children.splice(this.children.indexOf(e),0,this.createChild(r))}removeChild(e){this.children.splice(this.children.indexOf(e),1)}replaceChild(e,r){this.children[this.children.indexOf(e)]=this.createChild(r)}clone(){return new t(this)}get firstChild(){var e;return(e=this.children)==null?void 0:e[0]}get lastChild(){var e;return(e=this.children)==null?void 0:e[this.children.length-1]}get prev(){var e,r;return(r=(e=this.parent)==null?void 0:e.children)==null?void 0:r[this.parent.children.indexOf(this)-1]}get next(){var e,r;return(r=(e=this.parent)==null?void 0:e.children)==null?void 0:r[this.parent.children.indexOf(this)+1]}get rawName(){return this.hasExplicitNamespace?this.fullName:this.name}get fullName(){return this.namespace?this.namespace+\":\"+this.name:this.name}get attrMap(){return Object.fromEntries(this.attrs.map(e=>[e.fullName,e.value]))}};function Do(t,e){let r=t.map(e);return r.some((n,s)=>n!==t[s])?r:t}var vo=[{regex:/^(\\[if([^\\]]*)\\]>)(.*?)<!\\s*\\[endif\\]$/su,parse:yo},{regex:/^\\[if([^\\]]*)\\]><!$/u,parse:wo},{regex:/^<!\\s*\\[endif\\]$/u,parse:bo}];function Ks(t,e){if(t.value)for(let{regex:r,parse:n}of vo){let s=t.value.match(r);if(s)return n(t,e,s)}return null}function yo(t,e,r){let[,n,s,i]=r,a=4+n.length,o=t.sourceSpan.start.moveBy(a),u=o.moveBy(i.length),[p,l]=(()=>{try{return[!0,e(i,o).children]}catch{return[!1,[{type:\"text\",value:i,sourceSpan:new h(o,u)}]]}})();return{type:\"ieConditionalComment\",complete:p,children:l,condition:w(!1,s.trim(),/\\s+/gu,\" \"),sourceSpan:t.sourceSpan,startSourceSpan:new h(t.sourceSpan.start,o),endSourceSpan:new h(u,t.sourceSpan.end)}}function wo(t,e,r){let[,n]=r;return{type:\"ieConditionalStartComment\",condition:w(!1,n.trim(),/\\s+/gu,\" \"),sourceSpan:t.sourceSpan}}function bo(t){return{type:\"ieConditionalEndComment\",sourceSpan:t.sourceSpan}}var ir=new Map([[\"*\",new Set([\"accesskey\",\"autocapitalize\",\"autofocus\",\"class\",\"contenteditable\",\"dir\",\"draggable\",\"enterkeyhint\",\"hidden\",\"id\",\"inert\",\"inputmode\",\"is\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"nonce\",\"popover\",\"slot\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\",\"writingsuggestions\"])],[\"a\",new Set([\"charset\",\"coords\",\"download\",\"href\",\"hreflang\",\"name\",\"ping\",\"referrerpolicy\",\"rel\",\"rev\",\"shape\",\"target\",\"type\"])],[\"applet\",new Set([\"align\",\"alt\",\"archive\",\"code\",\"codebase\",\"height\",\"hspace\",\"name\",\"object\",\"vspace\",\"width\"])],[\"area\",new Set([\"alt\",\"coords\",\"download\",\"href\",\"hreflang\",\"nohref\",\"ping\",\"referrerpolicy\",\"rel\",\"shape\",\"target\",\"type\"])],[\"audio\",new Set([\"autoplay\",\"controls\",\"crossorigin\",\"loop\",\"muted\",\"preload\",\"src\"])],[\"base\",new Set([\"href\",\"target\"])],[\"basefont\",new Set([\"color\",\"face\",\"size\"])],[\"blockquote\",new Set([\"cite\"])],[\"body\",new Set([\"alink\",\"background\",\"bgcolor\",\"link\",\"text\",\"vlink\"])],[\"br\",new Set([\"clear\"])],[\"button\",new Set([\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"name\",\"popovertarget\",\"popovertargetaction\",\"type\",\"value\"])],[\"canvas\",new Set([\"height\",\"width\"])],[\"caption\",new Set([\"align\"])],[\"col\",new Set([\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"])],[\"colgroup\",new Set([\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"])],[\"data\",new Set([\"value\"])],[\"del\",new Set([\"cite\",\"datetime\"])],[\"details\",new Set([\"name\",\"open\"])],[\"dialog\",new Set([\"open\"])],[\"dir\",new Set([\"compact\"])],[\"div\",new Set([\"align\"])],[\"dl\",new Set([\"compact\"])],[\"embed\",new Set([\"height\",\"src\",\"type\",\"width\"])],[\"fieldset\",new Set([\"disabled\",\"form\",\"name\"])],[\"font\",new Set([\"color\",\"face\",\"size\"])],[\"form\",new Set([\"accept\",\"accept-charset\",\"action\",\"autocomplete\",\"enctype\",\"method\",\"name\",\"novalidate\",\"target\"])],[\"frame\",new Set([\"frameborder\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"noresize\",\"scrolling\",\"src\"])],[\"frameset\",new Set([\"cols\",\"rows\"])],[\"h1\",new Set([\"align\"])],[\"h2\",new Set([\"align\"])],[\"h3\",new Set([\"align\"])],[\"h4\",new Set([\"align\"])],[\"h5\",new Set([\"align\"])],[\"h6\",new Set([\"align\"])],[\"head\",new Set([\"profile\"])],[\"hr\",new Set([\"align\",\"noshade\",\"size\",\"width\"])],[\"html\",new Set([\"manifest\",\"version\"])],[\"iframe\",new Set([\"align\",\"allow\",\"allowfullscreen\",\"allowpaymentrequest\",\"allowusermedia\",\"frameborder\",\"height\",\"loading\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"referrerpolicy\",\"sandbox\",\"scrolling\",\"src\",\"srcdoc\",\"width\"])],[\"img\",new Set([\"align\",\"alt\",\"border\",\"crossorigin\",\"decoding\",\"fetchpriority\",\"height\",\"hspace\",\"ismap\",\"loading\",\"longdesc\",\"name\",\"referrerpolicy\",\"sizes\",\"src\",\"srcset\",\"usemap\",\"vspace\",\"width\"])],[\"input\",new Set([\"accept\",\"align\",\"alt\",\"autocomplete\",\"checked\",\"dirname\",\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"height\",\"ismap\",\"list\",\"max\",\"maxlength\",\"min\",\"minlength\",\"multiple\",\"name\",\"pattern\",\"placeholder\",\"popovertarget\",\"popovertargetaction\",\"readonly\",\"required\",\"size\",\"src\",\"step\",\"type\",\"usemap\",\"value\",\"width\"])],[\"ins\",new Set([\"cite\",\"datetime\"])],[\"isindex\",new Set([\"prompt\"])],[\"label\",new Set([\"for\",\"form\"])],[\"legend\",new Set([\"align\"])],[\"li\",new Set([\"type\",\"value\"])],[\"link\",new Set([\"as\",\"blocking\",\"charset\",\"color\",\"crossorigin\",\"disabled\",\"fetchpriority\",\"href\",\"hreflang\",\"imagesizes\",\"imagesrcset\",\"integrity\",\"media\",\"referrerpolicy\",\"rel\",\"rev\",\"sizes\",\"target\",\"type\"])],[\"map\",new Set([\"name\"])],[\"menu\",new Set([\"compact\"])],[\"meta\",new Set([\"charset\",\"content\",\"http-equiv\",\"media\",\"name\",\"scheme\"])],[\"meter\",new Set([\"high\",\"low\",\"max\",\"min\",\"optimum\",\"value\"])],[\"object\",new Set([\"align\",\"archive\",\"border\",\"classid\",\"codebase\",\"codetype\",\"data\",\"declare\",\"form\",\"height\",\"hspace\",\"name\",\"standby\",\"type\",\"typemustmatch\",\"usemap\",\"vspace\",\"width\"])],[\"ol\",new Set([\"compact\",\"reversed\",\"start\",\"type\"])],[\"optgroup\",new Set([\"disabled\",\"label\"])],[\"option\",new Set([\"disabled\",\"label\",\"selected\",\"value\"])],[\"output\",new Set([\"for\",\"form\",\"name\"])],[\"p\",new Set([\"align\"])],[\"param\",new Set([\"name\",\"type\",\"value\",\"valuetype\"])],[\"pre\",new Set([\"width\"])],[\"progress\",new Set([\"max\",\"value\"])],[\"q\",new Set([\"cite\"])],[\"script\",new Set([\"async\",\"blocking\",\"charset\",\"crossorigin\",\"defer\",\"fetchpriority\",\"integrity\",\"language\",\"nomodule\",\"referrerpolicy\",\"src\",\"type\"])],[\"select\",new Set([\"autocomplete\",\"disabled\",\"form\",\"multiple\",\"name\",\"required\",\"size\"])],[\"slot\",new Set([\"name\"])],[\"source\",new Set([\"height\",\"media\",\"sizes\",\"src\",\"srcset\",\"type\",\"width\"])],[\"style\",new Set([\"blocking\",\"media\",\"type\"])],[\"table\",new Set([\"align\",\"bgcolor\",\"border\",\"cellpadding\",\"cellspacing\",\"frame\",\"rules\",\"summary\",\"width\"])],[\"tbody\",new Set([\"align\",\"char\",\"charoff\",\"valign\"])],[\"td\",new Set([\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"])],[\"template\",new Set([\"shadowrootclonable\",\"shadowrootdelegatesfocus\",\"shadowrootmode\"])],[\"textarea\",new Set([\"autocomplete\",\"cols\",\"dirname\",\"disabled\",\"form\",\"maxlength\",\"minlength\",\"name\",\"placeholder\",\"readonly\",\"required\",\"rows\",\"wrap\"])],[\"tfoot\",new Set([\"align\",\"char\",\"charoff\",\"valign\"])],[\"th\",new Set([\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"])],[\"thead\",new Set([\"align\",\"char\",\"charoff\",\"valign\"])],[\"time\",new Set([\"datetime\"])],[\"tr\",new Set([\"align\",\"bgcolor\",\"char\",\"charoff\",\"valign\"])],[\"track\",new Set([\"default\",\"kind\",\"label\",\"src\",\"srclang\"])],[\"ul\",new Set([\"compact\",\"type\"])],[\"video\",new Set([\"autoplay\",\"controls\",\"crossorigin\",\"height\",\"loop\",\"muted\",\"playsinline\",\"poster\",\"preload\",\"src\",\"width\"])]]);var Qs=new Set([\"a\",\"abbr\",\"acronym\",\"address\",\"applet\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"basefont\",\"bdi\",\"bdo\",\"bgsound\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"command\",\"content\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"image\",\"img\",\"input\",\"ins\",\"isindex\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"listing\",\"main\",\"map\",\"mark\",\"marquee\",\"math\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"multicol\",\"nav\",\"nextid\",\"nobr\",\"noembed\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"plaintext\",\"pre\",\"progress\",\"q\",\"rb\",\"rbc\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"search\",\"section\",\"select\",\"shadow\",\"slot\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"xmp\"]);function To(t){if(t.type===\"block\"){if(t.name=w(!1,t.name.toLowerCase(),/\\s+/gu,\" \").trim(),t.type=\"angularControlFlowBlock\",!Fe(t.parameters)){delete t.parameters;return}for(let e of t.parameters)e.type=\"angularControlFlowBlockParameter\";t.parameters={type:\"angularControlFlowBlockParameters\",children:t.parameters,sourceSpan:new h(t.parameters[0].sourceSpan.start,se(!1,t.parameters,-1).sourceSpan.end)}}}function xo(t){t.type===\"letDeclaration\"&&(t.type=\"angularLetDeclaration\",t.id=t.name,t.init={type:\"angularLetDeclarationInitializer\",sourceSpan:new h(t.valueSpan.start,t.valueSpan.end),value:t.value},delete t.name,delete t.value)}function ko(t){(t.type===\"plural\"||t.type===\"select\")&&(t.clause=t.type,t.type=\"angularIcuExpression\"),t.type===\"expansionCase\"&&(t.type=\"angularIcuCase\")}function Js(t,e,r){let{name:n,canSelfClose:s=!0,normalizeTagName:i=!1,normalizeAttributeName:a=!1,allowHtmComponentClosingTags:o=!1,isTagNameCaseSensitive:u=!1,shouldParseAsRawText:p}=e,{rootNodes:l,errors:f}=zr(t,{canSelfClose:s,allowHtmComponentClosingTags:o,isTagNameCaseSensitive:u,getTagContentType:p?(...c)=>p(...c)?I.RAW_TEXT:void 0:void 0,tokenizeAngularBlocks:n===\"angular\"?!0:void 0,tokenizeAngularLetDeclaration:n===\"angular\"?!0:void 0});if(n===\"vue\"){if(l.some(x=>x.type===\"docType\"&&x.value===\"html\"||x.type===\"element\"&&x.name.toLowerCase()===\"html\"))return Js(t,ei,r);let g,y=()=>g??(g=zr(t,{canSelfClose:s,allowHtmComponentClosingTags:o,isTagNameCaseSensitive:u})),M=x=>y().rootNodes.find(({startSourceSpan:V})=>V&&V.start.offset===x.startSourceSpan.start.offset)??x;for(let[x,V]of l.entries()){let{endSourceSpan:jr,startSourceSpan:ti}=V;if(jr===null)f=y().errors,l[x]=M(V);else if(Bo(V,r)){let Kr=y().errors.find(Qr=>Qr.span.start.offset>ti.start.offset&&Qr.span.start.offset<jr.end.offset);Kr&&Xs(Kr),l[x]=M(V)}}}f.length>0&&Xs(f[0]);let d=c=>{let g=c.name.startsWith(\":\")?c.name.slice(1).split(\":\")[0]:null,y=c.nameSpan.toString(),M=g!==null&&y.startsWith(`${g}:`),x=M?y.slice(g.length+1):y;c.name=x,c.namespace=g,c.hasExplicitNamespace=M},C=c=>{switch(c.type){case\"element\":d(c);for(let g of c.attrs)d(g),g.valueSpan?(g.value=g.valueSpan.toString(),/[\"']/u.test(g.value[0])&&(g.value=g.value.slice(1,-1))):g.value=null;break;case\"comment\":c.value=c.sourceSpan.toString().slice(4,-3);break;case\"text\":c.value=c.sourceSpan.toString();break}},A=(c,g)=>{let y=c.toLowerCase();return g(y)?y:c},D=c=>{if(c.type===\"element\"&&(i&&(!c.namespace||c.namespace===c.tagDefinition.implicitNamespacePrefix||pe(c))&&(c.name=A(c.name,g=>Qs.has(g))),a))for(let g of c.attrs)g.namespace||(g.name=A(g.name,y=>ir.has(c.name)&&(ir.get(\"*\").has(y)||ir.get(c.name).has(y))))},R=c=>{c.sourceSpan&&c.endSourceSpan&&(c.sourceSpan=new h(c.sourceSpan.start,c.endSourceSpan.end))},F=c=>{if(c.type===\"element\"){let g=$e(u?c.name:c.name.toLowerCase());!c.namespace||c.namespace===g.implicitNamespacePrefix||pe(c)?c.tagDefinition=g:c.tagDefinition=$e(\"\")}};return jt(new class extends ht{visitExpansionCase(c,g){n===\"angular\"&&this.visitChildren(g,y=>{y(c.expression)})}visit(c){C(c),F(c),D(c),R(c)}},l),l}function Bo(t,e){var n;if(t.type!==\"element\"||t.name!==\"template\")return!1;let r=(n=t.attrs.find(s=>s.name===\"lang\"))==null?void 0:n.value;return!r||Be(e,{language:r})===\"html\"}function Xs(t){let{msg:e,span:{start:r,end:n}}=t;throw Gs(e,{loc:{start:{line:r.line+1,column:r.col+1},end:{line:n.line+1,column:n.col+1}},cause:t})}function Zs(t,e,r={},n=!0){let{frontMatter:s,content:i}=n?Ys(t):{frontMatter:null,content:t},a=new Ee(t,r.filepath),o=new ie(a,0,0,0),u=o.moveBy(t.length),p={type:\"root\",sourceSpan:new h(o,u),children:Js(i,e,r)};if(s){let d=new ie(a,0,0,0),C=d.moveBy(s.raw.length);s.sourceSpan=new h(d,C),p.children.unshift(s)}let l=new sr(p),f=(d,C)=>{let{offset:A}=C,D=w(!1,t.slice(0,A),/[^\\n\\r]/gu,\" \"),F=Zs(D+d,e,r,!1);F.sourceSpan=new h(C,se(!1,F.children,-1).sourceSpan.end);let c=F.children[0];return c.length===A?F.children.shift():(c.sourceSpan=new h(c.sourceSpan.start.moveBy(A),c.sourceSpan.end),c.value=c.value.slice(A)),F};return l.walk(d=>{if(d.type===\"comment\"){let C=Ks(d,f);C&&d.parent.replaceChild(d,C)}To(d),xo(d),ko(d)}),l}function ar(t){return{parse:(e,r)=>Zs(e,t,r),hasPragma:as,astFormat:\"html\",locStart:X,locEnd:J}}var ei={name:\"html\",normalizeTagName:!0,normalizeAttributeName:!0,allowHtmComponentClosingTags:!0},Lo=ar(ei),Fo=ar({name:\"angular\"}),No=ar({name:\"vue\",isTagNameCaseSensitive:!0,shouldParseAsRawText(t,e,r,n){return t.toLowerCase()!==\"html\"&&!r&&(t!==\"template\"||n.some(({name:s,value:i})=>s===\"lang\"&&i!==\"html\"&&i!==\"\"&&i!==void 0))}}),Po=ar({name:\"lwc\",canSelfClose:!1});var Io={html:Es};var Nh=Yr;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy8ucG5wbS9wcmV0dGllckAzLjQuMi9ub2RlX21vZHVsZXMvcHJldHRpZXIvcGx1Z2lucy9odG1sLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLDZCQUE2QixXQUFXLG9CQUFvQixlQUFlLHVCQUF1Qix1QkFBdUIsR0FBRywwQ0FBMEMsMFFBQTBRLFVBQVUsT0FBTywrREFBK0QsRUFBRSxtQkFBbUIsa0dBQWtHLE1BQU0scVFBQXFRLGVBQWUsZ0NBQWdDLDhCQUE4QixhQUFhLElBQUksT0FBTyxHQUFHLHNCQUFzQixVQUFVLHVDQUF1QyxtQkFBbUIsWUFBWSxlQUFlLCtCQUErQix1REFBdUQsRUFBRTtBQUN2ckMseUNBQXlDLDBDQUEwQyx3Q0FBd0Msa0RBQWtELEVBQUUsSUFBSSw0QkFBNEIsRUFBRSxLQUFLLDhCQUE4QixPQUFPO0FBQzNQLG9CQUFvQixFQUFFLEdBQUcsMkJBQTJCLHVCQUF1QixlQUFlLHlCQUF5QixPQUFPLGFBQWEsYUFBYSxjQUFjLGNBQWMsb0JBQW9CLGlCQUFpQixjQUFjLHdCQUF3QixpQkFBaUIsRUFBRSxzQ0FBc0Msa0ZBQWtGLGVBQWUsc0NBQXNDLGVBQWUsV0FBVyxZQUFZLElBQUksZUFBZSxjQUFjLGlCQUFpQix1QkFBdUIsRUFBRSw0QkFBNEIsMERBQTBELGlCQUFpQixjQUFjLHNEQUFzRCxRQUFRLFNBQVMsUUFBUSxlQUFlLEtBQUssMEJBQTBCLElBQUksT0FBTyxJQUFJLGVBQWUsc0JBQXNCLGdCQUFnQixZQUFZLFNBQVMsWUFBWSxXQUFXLGtDQUFrQyxTQUFTLGlCQUFpQix5RkFBeUYsT0FBTyxpQkFBaUIsa0NBQWtDLGNBQWMsWUFBWSxjQUFjLDRCQUE0QixXQUFXLG9CQUFvQixjQUFjLGNBQWMsMkJBQTJCLGtCQUFrQiwwQkFBMEIsRUFBRSxrQkFBa0IscUVBQXFFLEVBQUUsU0FBUyxJQUFJLDRCQUE0QixHQUFHLHVDQUF1QyxpQ0FBaUMsRUFBRSxrREFBa0QsNEJBQTRCLEVBQUUsMkRBQTJELDBCQUEwQixtQkFBbUI7QUFDNXFELE9BQU8sa0JBQWtCLGlCQUFpQixrREFBa0Qsb0NBQW9DLGVBQWUsVUFBVSxlQUFlLCtEQUErRCx3QkFBd0IsNkNBQTZDLGVBQWUsZUFBZSxXQUFXLHNCQUFzQiw2QkFBNkIsb0JBQW9CLFlBQVksK0JBQStCLFFBQVEsU0FBUyw4QkFBOEIsb0JBQW9CLHFCQUFxQix5QkFBeUIsUUFBUSxTQUFTLHdCQUF3Qix3Q0FBd0Msb0JBQW9CLHlCQUF5Qix5Q0FBeUMsMkJBQTJCLHdCQUF3QixrQ0FBa0MseUJBQXlCLGtDQUFrQyxhQUFhLHdDQUF3QyxrQkFBa0IsV0FBVyx5Q0FBeUMsNkJBQTZCLFFBQVEsdUNBQXVDLGNBQWMsVUFBVSw0QkFBNEIsdUJBQXVCLEVBQUUsVUFBVSxrQkFBa0IsMEJBQTBCLGdCQUFnQixnREFBZ0QsNkJBQTZCLGdCQUFnQixpREFBaUQsb0JBQW9CLGdCQUFnQixtREFBbUQsY0FBYyxVQUFVO0FBQ3Q4QyxvQ0FBb0MsMkJBQTJCLDJCQUEyQiwwQkFBMEIsb0JBQW9CLEdBQUcsT0FBTyxFQUFFLElBQUkscUJBQXFCLGlCQUFpQixPQUFPLGVBQWUsK0NBQStDLFVBQVUsc1BBQXNQLGlCQUFpQixNQUFNLDRGQUE0RiwyUEFBMlAsa0lBQWtJLHdCQUF3QixVQUFVLHVCQUF1Qix3QkFBd0Isb0NBQW9DLGNBQWMsS0FBSyw0RUFBNEUsVUFBVSxvQkFBb0Isd0JBQXdCLGdCQUFnQixxTUFBcU0sK0xBQStMLDBCQUEwQixHQUFHLGlEQUFpRCxTQUFTLGtDQUFrQyxTQUFTLEVBQUUscUJBQXFCLG9CQUFvQixxQkFBcUIsSUFBSSxPQUFPLDZFQUE2RSxpQ0FBaUMsK0NBQStDLElBQUksVUFBVSwwQ0FBMEMsaUJBQWlCLGFBQWEsMEJBQTBCLGdCQUFnQixZQUFZLDREQUE0RCxhQUFhLDRDQUE0QyxpQkFBaUIscUJBQXFCLE9BQU8sa0NBQWtDLFVBQVUsMkNBQTJDLGFBQWEsaUNBQWlDLEVBQUUsSUFBSSxpQkFBaUIsNEhBQTRILG1DQUFtQyxVQUFVLG9CQUFvQix3eENBQXd4QyxpQkFBaUIscUdBQXFHLGVBQWUsMEZBQTBGLFVBQVUscUVBQXFFLG9DQUFvQyx5QkFBeUIsaUNBQWlDLG9DQUFvQyxrREFBa0QsaUJBQWlCLDZRQUE2USxlQUFlLDhEQUE4RCxlQUFlLDhEQUE4RCxjQUFjLDJDQUEyQyxjQUFjLDRLQUE0SyxlQUFlLHlCQUF5QixlQUFlLDZDQUE2QyxlQUFlLCtCQUErQixpQkFBaUIsUUFBUSxVQUFVLHNIQUFzSCxTQUFTLGFBQWEsMldBQTJXLGlCQUFpQiwwV0FBMFcsZUFBZSwrQkFBK0IsZUFBZSw2RkFBNkYsZUFBZSxpUkFBaVIsZUFBZSxxS0FBcUssZUFBZSx3Q0FBd0MsZUFBZSwyREFBMkQsZUFBZSxvQkFBb0IsZUFBZSx5S0FBeUssZUFBZSxnTUFBZ00sZUFBZSxlQUFlLGtFQUFrRSx5REFBeUQsU0FBUyxlQUFlLHFDQUFxQyxlQUFlLE1BQU0sNkRBQTZELGVBQWUsZUFBZSwrRkFBK0Ysa0RBQWtELHFDQUFxQyw2QkFBNkIsaURBQWlELDZGQUE2RixpQkFBaUIsSUFBSSxpQkFBaUIsR0FBRyxzRUFBc0UsSUFBSSxjQUFjLFdBQVcsMkJBQTJCLFdBQVcsU0FBUyxpQkFBaUIsbUJBQW1CLElBQUksVUFBVSxHQUFHLHdEQUF3RCxJQUFJLGNBQWMsR0FBRyxhQUFhLFdBQVcsU0FBUyxpQkFBaUIsMkJBQTJCLElBQUksT0FBTyxXQUFXLGVBQWUsV0FBVyxRQUFRLGlCQUFpQixpQ0FBaUMsZUFBZSwyREFBMkQsZUFBZSxpQ0FBaUMsZUFBZSxpQ0FBaUMsZUFBZSxhQUFhLGVBQWUsYUFBYSxlQUFlLGlDQUFpQyxlQUFlLCtCQUErQixpQkFBaUIsUUFBUSxLQUFLLEVBQUUsRUFBRSxpQkFBaUIsV0FBVyxTQUFTLGlCQUFpQixNQUFNLHlCQUF5QixpREFBaUQseURBQXlELGlCQUFpQixTQUFTLDZGQUE2RixrREFBa0Qsb0NBQW9DLDRCQUE0QiwyQkFBMkIsNkVBQTZFLGVBQWUsaUVBQWlFLGVBQWUsK0JBQStCO0FBQ2wzUyxJQUFJLHlCQUF5QixxQ0FBcUMsa0JBQWtCLHlCQUF5Qix3Q0FBd0MsdUJBQXVCO0FBQzVLO0FBQ0EsR0FBRyxlQUFlLDBCQUEwQixjQUFjLE9BQU8sY0FBYyxtQkFBbUIsOENBQThDLGlCQUFpQixvQ0FBb0MsaUJBQWlCLHVHQUF1RyxpQkFBaUIsbUVBQW1FLGVBQWUsaUJBQWlCLGtGQUFrRixpQkFBaUIsZUFBZSxxQkFBcUIsOEJBQThCLDBEQUEwRCx5QkFBeUIsMEdBQTBHLGlCQUFpQixrQ0FBa0MsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLHVCQUF1QixTQUFTLDZEQUE2RCxTQUFTLGFBQWEsb0JBQW9CLHVEQUF1RCxTQUFTLEtBQUssTUFBTSxVQUFVLFVBQVUsR0FBRyxTQUFTLGFBQWEsU0FBUyxFQUFFLDhCQUE4QixTQUFTLElBQUksV0FBVyxxQkFBcUIsU0FBUyxzQkFBc0IsU0FBUyx3QkFBd0IsRUFBRSxpQkFBaUIsK0JBQStCLElBQUksT0FBTyxnQkFBZ0IscUVBQXFFLHdIQUF3SCwrQkFBK0IsV0FBVyxnRkFBZ0YsZ0NBQWdDLFVBQVUsaUJBQWlCLElBQUksT0FBTyxVQUFVLHlEQUF5RCw4Q0FBOEMsVUFBVSxlQUFlO0FBQ3gwRCwrQkFBK0Isd0pBQXdKLGVBQWUsK0JBQStCLGNBQWMsK0JBQStCLCtCQUErQixTQUFTLE1BQU0sRUFBRSxlQUFlLHFGQUFxRixTQUFTLGdFQUFnRSxhQUFhLGtDQUFrQyxFQUFFLHVGQUF1RixpQkFBaUIsc0JBQXNCLE9BQU8sbUNBQW1DLGdCQUFnQixpQkFBaUIsT0FBTyxVQUFVLDBEQUEwRCxnQkFBZ0IsY0FBYyxPQUFPLFVBQVUsa0RBQWtELElBQUksT0FBTyw0QkFBNEIsTUFBTSxhQUFhLHFCQUFxQixXQUFXLFFBQVEsV0FBVywwUEFBMFAsZ0JBQWdCLHNCQUFzQixjQUFjLFFBQVEsaUJBQWlCLFFBQVEsZ0JBQWdCLFFBQVEsWUFBWSw0REFBNEQsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLGVBQWUsaUhBQWlILFFBQVEsaUNBQWlDLG9CQUFvQixlQUFlLGlGQUFpRiw2RUFBNkUsaUlBQWlJLHFCQUFxQix5QkFBeUIsbUJBQW1CLGtDQUFrQyxpQkFBaUIsTUFBTSw4Q0FBOEMsc0JBQXNCLFNBQVMsSUFBSSxVQUFVLGlCQUFpQixJQUFJLE9BQU8sc0JBQXNCLHlEQUF5RCxpQ0FBaUMsdUNBQXVDLEdBQUcsbUJBQW1CLGlCQUFpQixJQUFJLE9BQU8sR0FBRyxnSEFBZ0gsVUFBVSxtQkFBbUIsSUFBSSxPQUFPLFVBQVUsbUJBQW1CLEVBQUUsWUFBWSw2REFBNkQsSUFBSSxpQkFBaUIsY0FBYyxFQUFFLHVCQUF1QixFQUFFLElBQUksS0FBSywrQ0FBK0MsRUFBRSwyQkFBMkIsaUJBQWlCLDBCQUEwQixpQkFBaUIsK0JBQStCLEVBQUUsSUFBSSxLQUFLLHFEQUFxRCwwQkFBMEIsNkNBQTZDLEdBQUcsZUFBZSw0Q0FBNEMsY0FBYyxvQ0FBb0MsYUFBYSxTQUFTLG1DQUFtQywwQ0FBMEMsOEZBQThGLHdDQUF3QyxrRUFBa0UsNERBQTRELGlCQUFpQiwyQkFBMkIsSUFBSSxPQUFPLGdCQUFnQix5QkFBeUIsMkNBQTJDLHFCQUFxQixvQ0FBb0MsY0FBYyxFQUFFLDhEQUE4RCxjQUFjLEVBQUUsZ0VBQWdFLGNBQWMsRUFBRSx3Q0FBd0MsY0FBYyxFQUFFLHVCQUF1QixjQUFjLEVBQUUsTUFBTSxJQUFJLHFCQUFxQixjQUFjLEVBQUUsU0FBUywyRUFBMkUsY0FBYyx3REFBd0QsSUFBSSxpQkFBaUIsY0FBYyxFQUFFLGNBQWMsa0RBQWtELElBQUksaUJBQWlCLGNBQWMsRUFBRSxjQUFjLDZDQUE2QyxJQUFJLFVBQVUsaUJBQWlCLElBQUksT0FBTyxHQUFHLFlBQVksb0tBQW9LLHVCQUF1QixpQ0FBaUMsOEJBQThCLGFBQWEsb0JBQW9CLGVBQWUsd0JBQXdCLHVCQUF1QiwyREFBMkQsc0NBQXNDLFVBQVUsdUJBQXVCLEVBQUUsV0FBVyxRQUFRLGVBQWUsb0NBQW9DLFVBQVUsY0FBYyxpQ0FBaUMsY0FBYywrQkFBK0IsaUJBQWlCLDJDQUEyQyxpQkFBaUIseURBQXlELGlCQUFpQiwwREFBMEQsaUJBQWlCLGtDQUFrQyxnQkFBZ0Isa0RBQWtELGlCQUFpQix5Q0FBeUMsZUFBZSxzQ0FBc0MseURBQXlELG1CQUFtQixVQUFVLEdBQUcsaUJBQWlCLG9CQUFvQixlQUFlLDRFQUE0RSxnREFBZ0QsNkJBQTZCLEVBQUUsbUNBQW1DLEVBQUUsNENBQTRDLG1CQUFtQixpQkFBaUIsa0VBQWtFLGNBQWMsdUlBQXVJLGVBQWUsTUFBTSw2SEFBNkgsZUFBZSwwRUFBMEUsZUFBZSxrRkFBa0YsZUFBZSxrRUFBa0UsdUNBQXVDLGVBQWUsOERBQThELG1CQUFtQixNQUFNLElBQUksT0FBTyxHQUFHLDhDQUE4Qyw0SkFBNEosT0FBTywrUEFBK1AsOEtBQThLLGVBQWUsK0NBQStDLG1CQUFtQixJQUFJLE9BQU8sR0FBRyxtREFBbUQsaUJBQWlCLDhDQUE4QyxnQkFBZ0IsK0NBQStDLG1CQUFtQixpQkFBaUIsZUFBZSw0RUFBNEUsWUFBWSxFQUFFLDZDQUE2Qyw2QkFBNkIsRUFBRSxlQUFlLHFCQUFxQixxQkFBcUIsaUNBQWlDLDBEQUEwRCxtQ0FBbUMsRUFBRSw4Q0FBOEMsWUFBWSxVQUFVLFVBQVUsRUFBRSxrQkFBa0IsVUFBVSxHQUFHLGVBQWUsb0NBQW9DLHNDQUFzQyx1REFBdUQsbUJBQW1CLGlCQUFpQiw2QkFBNkIsbUNBQW1DLGtEQUFrRCxtQ0FBbUMscUhBQXFILFVBQVUsdURBQXVELGlCQUFpQixJQUFJLE9BQU8sR0FBRyxlQUFlLHVEQUF1RCw4QkFBOEIsY0FBYyxzQkFBc0Isc0NBQXNDLDRCQUE0Qiw2QkFBNkIsaUVBQWlFLFFBQVEsTUFBTSwyQkFBMkIscUJBQXFCLHNCQUFzQix1RUFBdUUsOEJBQThCLG1DQUFtQyxnQkFBZ0IsVUFBVSxVQUFVLDZHQUE2Ryx1Q0FBdUMseURBQXlELE9BQU8sZ0RBQWdELG1PQUFtTyxNQUFNLCtCQUErQixxQ0FBcUMsK0VBQStFLDhEQUE4RCw2Q0FBNkMsR0FBRyxVQUFVLFlBQVksZUFBZSxrQ0FBa0MsU0FBUyw4QkFBOEIscURBQXFELFVBQVUsWUFBWSxNQUFNLFNBQVMsZUFBZSxhQUFhLHdCQUF3QixNQUFNLGNBQWMsa0JBQWtCLGdGQUFnRixFQUFFLE1BQU0sT0FBTyxFQUFFLFNBQVMsU0FBUyxVQUFVLFFBQVEseWZBQXlmLE9BQU8sb0JBQW9CLGVBQWUsdURBQXVELGVBQWU7O0FBRXR4VixJQUFJLG9WQUFvVixlQUFlLFdBQVcsbUdBQW1HLG1CQUFtQixhQUFhLFVBQVUsWUFBWSwwSUFBMEksV0FBVyxpQkFBaUIsMldBQTJXLG1CQUFtQixJQUFJLE9BQU8sR0FBRyxnQ0FBZ0Msc0NBQXNDLDJDQUEyQyxjQUFjLHFDQUFxQyxxQkFBcUIsYUFBYSxTQUFTLHNCQUFzQixtQkFBbUIscURBQXFELGlCQUFpQiwwRUFBMEUsc0ZBQXNGLGVBQWUsNkdBQTZHLFFBQVEsVUFBVSxhQUFhLG1CQUFtQixJQUFJLE9BQU8sUUFBUSxpQkFBaUIsa0ZBQWtGLEdBQUcsWUFBWSxxSUFBcUksZ0JBQWdCLFFBQVEsZUFBZSxFQUFFLGVBQWUsUUFBUSxzSEFBc0gsZUFBZSxJQUFJLFdBQVcsR0FBRywwRUFBMEUsbUJBQW1CLGlCQUFpQiwrQkFBK0IsbUJBQW1CLElBQUksT0FBTyxHQUFHLHlIQUF5SCxtQkFBbUIsSUFBSSxPQUFPLEdBQUcsa0JBQWtCLGtCQUFrQixPQUFPLGtFQUFrRSxHQUFHLG1CQUFtQixJQUFJLE9BQU8sR0FBRyxvRUFBb0Usa1RBQWtULEtBQUssMkJBQTJCLFVBQVUsZ0hBQWdILFVBQVUsMFJBQTBSLFVBQVUsNE1BQTRNLEVBQUUsbUNBQW1DLHFDQUFxQyw2SEFBNkgsZUFBZSwyQkFBMkIsZUFBZSxvQkFBb0IsZUFBZSxtQ0FBbUMsZUFBZSwwQ0FBMEMsZUFBZSxzQkFBc0IsZUFBZSxvQkFBb0IsZUFBZSw4QkFBOEIsdUJBQXVCLGVBQWUsZ0RBQWdELGVBQWUscUJBQXFCLGlEQUFpRCxXQUFXLDRCQUE0QixjQUFjLEdBQUcsVUFBVSxHQUFHLFNBQVMsZ0JBQWdCLFVBQVUsd0VBQXdFLEtBQUssU0FBUyxpQ0FBaUMsSUFBSSw4REFBOEQsWUFBWSxTQUFTLEtBQUssU0FBUyxFQUFFLHNCQUFzQiw0QkFBNEIsOEJBQThCLGdCQUFnQixzQ0FBc0MsWUFBWSw2QkFBNkIsZ0JBQWdCLEtBQUs7QUFDdHpKLFlBQVksRUFBRSxZQUFZO0FBQzFCLFlBQVksRUFBRSxPQUFPLHNFQUFzRSxhQUFhLFVBQVUsaUJBQWlCLDJCQUEyQixTQUFTLDRCQUE0Qix3REFBd0QsV0FBVyw2RUFBNkUsSUFBSSxhQUFhLDhDQUE4QyxZQUFZLEdBQUcsYUFBYSw0QkFBNEIsb0NBQW9DLG9CQUFvQix3Q0FBd0MsWUFBWSxVQUFVLElBQUksU0FBUyxHQUFHLGdCQUFnQixLQUFLLFFBQVEsYUFBYSxXQUFXLDZCQUE2QixrQkFBa0IsS0FBSyxTQUFTLHlCQUF5QixJQUFJLGdCQUFnQixFQUFFLEVBQUUsSUFBSSx1Q0FBdUMsaUJBQWlCLHVCQUF1QixTQUFTLGVBQWUsV0FBVztBQUN6MkIsR0FBRyxvQkFBb0IsOERBQThELEVBQUUsZUFBZSxVQUFVLFFBQVEsbVNBQW1TLFdBQVcsMEJBQTBCLG9CQUFvQixLQUFLLG9CQUFvQixrQkFBa0IsNEJBQTRCLHFCQUFxQixtRkFBbUYsNkVBQTZFLEVBQUUsbUJBQW1CLFdBQVcsMEJBQTBCLG9CQUFvQixLQUFLLG9CQUFvQixtQ0FBbUMsOENBQThDLGFBQWEsc0hBQXNILEVBQUUsZUFBZSwrQ0FBK0MsUUFBUSxNQUFNLGVBQWUsVUFBVSxRQUFRLDJZQUEyWSxXQUFXLDBCQUEwQixvQkFBb0IsS0FBSyxvQkFBb0Isa0JBQWtCLHNCQUFzQixhQUFhLFVBQVUsMkJBQTJCLFVBQVUsd01BQXdNLEVBQUUsaUJBQWlCLDRCQUE0QixTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxrQ0FBa0MsNEJBQTRCLG1EQUFtRCxZQUFZLFdBQVcsU0FBUyxXQUFXLFlBQVksd0RBQXdELDBDQUEwQyxFQUFFLFNBQVMsOENBQThDLHNFQUFzRSwrREFBK0QsRUFBRSxFQUFFLGtCQUFrQixFQUFFLGVBQWUsV0FBVyxzQkFBc0Isc0hBQXNILHNEQUFzRCxPQUFPLG9CQUFvQixrQkFBa0Isb0JBQW9CLEtBQUssb0JBQW9CLDRCQUE0QixJQUFJLGdEQUFnRCwrQkFBK0IsK1NBQStTLHFEQUFxRCxFQUFFLGVBQWUsV0FBVyx5TEFBeUwsRUFBRSxpQkFBaUIsV0FBVyw0S0FBNEssRUFBRSxpQkFBaUIsV0FBVyxxQkFBcUIsRUFBRSxpQkFBaUIsV0FBVyxJQUFJLFdBQVcsR0FBRyxNQUFNLGlCQUFpQixpQ0FBaUMsT0FBTyxvRkFBb0YsWUFBWSxXQUFXLEtBQUssV0FBVyx3TUFBd00sRUFBRSxVQUFVLG1CQUFtQixJQUFJLE9BQU8sR0FBRyxlQUFlLG1DQUFtQyxxRUFBcUUsMERBQTBELCtDQUErQyx5REFBeUQsbUVBQW1FLG1GQUFtRixJQUFJLHNEQUFzRCw0Q0FBNEMsc0NBQXNDLGtGQUFrRixtRUFBbUUsWUFBWSxvQ0FBb0MseUVBQXlFLG9CQUFvQiw4QkFBOEIsK0NBQStDLHFHQUFxRyx1RUFBdUUsaUJBQWlCLG1DQUFtQyw4QkFBOEIsbURBQW1ELHFCQUFxQixPQUFPLDRDQUE0QyxRQUFRLG9GQUFvRixPQUFPLFNBQVMsb1JBQW9SLEVBQUUsK1NBQStTLEVBQUUsZ1JBQWdSLEVBQUUscUtBQXFLLEVBQUUsUUFBUSxnQkFBZ0IscUpBQXFKLGNBQWMsc0dBQXNHLFlBQVksOEZBQThGLHVFQUF1RSxFQUFFLCtDQUErQyxFQUFFLGlEQUFpRCxFQUFFLGtCQUFrQiwySEFBMkgseUJBQXlCLG9IQUFvSCxrQkFBa0IsOERBQThELG1HQUFtRyw2RUFBNkUsRUFBRSxtRUFBbUUsRUFBRSxxRUFBcUUsRUFBRSwyRUFBMkUsZ0dBQWdHLE9BQU8sVUFBVSxPQUFPLGlEQUFpRCxFQUFFLGtJQUFrSSxPQUFPLGFBQWEsMkVBQTJFLFlBQVksR0FBRyxPQUFPLGFBQWEsZ0RBQWdELFlBQVksR0FBRyxPQUFPLGFBQWEsbUhBQW1ILFlBQVksR0FBRyxRQUFRLHVCQUF1QixLQUFLLHlCQUF5QixNQUFNLGFBQWEsc0lBQXNJLFVBQVUsR0FBRyxPQUFPLGFBQWEscUVBQXFFLFlBQVksR0FBRyxNQUFNLGFBQWEsK0dBQStHLFVBQVUsR0FBRyxvQkFBb0IsNEJBQTRCLHVCQUF1QixXQUFXLDRDQUE0QyxFQUFFLGdDQUFnQyxlQUFlLGtDQUFrQyxlQUFlLGlDQUFpQyxlQUFlLCtCQUErQixlQUFlLDhCQUE4QixpQkFBaUIsYUFBYSxFQUFFLEdBQUcsRUFBRSxJQUFJLE9BQU8sY0FBYyxpQkFBaUIsNGdCQUE0Z0IsaUJBQWlCLHFDQUFxQyxlQUFlLHVrY0FBdWtjLHNIQUFzSCxtRkFBbUYsY0FBYyxzRUFBc0UsNkVBQTZFLHlCQUF5Qiw2RUFBNkUsRUFBRSwyQ0FBMkMsTUFBTSw0QkFBNEIsNkRBQTZELGNBQWMsMkJBQTJCLDhCQUE4QixNQUFNLGlDQUFpQyxNQUFNLGlDQUFpQyxNQUFNLGlDQUFpQyxNQUFNLHFCQUFxQixFQUFFLEVBQUUsbUJBQW1CLHdDQUF3QyxzQkFBc0IseUJBQXlCLHdDQUF3Qyw4RUFBOEUsZ0JBQWdCLHdJQUF3SSx1QkFBdUIscUVBQXFFLG9CQUFvQixxQ0FBcUMscUJBQXFCLG9CQUFvQixpQ0FBaUMscUJBQXFCLG9CQUFvQix5Q0FBeUMsMkNBQTJDLEVBQUUsb0RBQW9ELFdBQVc7QUFDdGh6QixNQUFNLEVBQUUsb0ZBQW9GLEVBQUUsVUFBVSxxQkFBcUIseUNBQXlDLDRDQUE0QyxFQUFFLG9EQUFvRCxXQUFXLE9BQU8sRUFBRSxVQUFVLHVCQUF1Qix1Q0FBdUMsK0JBQStCLHFFQUFxRSxpREFBaUQsMkJBQTJCLDhEQUE4RCxtQ0FBbUMsYUFBYSxvQ0FBb0Msc0NBQXNDLHNEQUFzRCxLQUFLLHdDQUF3Qyw2REFBNkQsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLHFCQUFxQixlQUFlLFVBQVUsb2VBQW9lLGtCQUFrQixZQUFZLGFBQWEsaUxBQWlMLEdBQUcsRUFBRSx3QkFBd0IsK1BBQStQLG1CQUFtQiw0REFBNEQsa0JBQWtCLDZIQUE2SCxPQUFPLGVBQWUsc0JBQXNCLGdCQUFnQix3Q0FBd0MsWUFBWSxVQUFVLGNBQWMsVUFBVSxjQUFjLFVBQVUsZUFBZSxVQUFVLGNBQWMsVUFBVSxhQUFhLFVBQVUsZUFBZSxVQUFVLGVBQWUsVUFBVSxZQUFZLFVBQVUsWUFBWSxVQUFVLGdCQUFnQixVQUFVLGVBQWUsVUFBVSxhQUFhLFVBQVUsV0FBVyw0TkFBNE4sZUFBZSxtQ0FBbUMsZUFBZSxxREFBcUQsZUFBZSw2Q0FBNkMsWUFBWSwwQ0FBMEMsWUFBWSwrQ0FBK0MsWUFBWSwrQ0FBK0MsYUFBYSxVQUFVLGFBQWEsOEJBQThCLHVCQUF1Qiw2REFBNkQsY0FBYywrQkFBK0IsWUFBWSwwQ0FBMEMsWUFBWSw2QkFBNkIsWUFBWSwrQ0FBK0MsWUFBWSwwREFBMEQsWUFBWSwwREFBMEQsYUFBYSxxREFBcUQsWUFBWSwwREFBMEQsa0JBQWtCLGdEQUFnRCxnQkFBZ0IseURBQXlELGFBQWEsaUJBQWlCLGlCQUFpQixpQkFBaUIsZUFBZSx1QkFBdUIsZ0JBQWdCLHVCQUF1QixlQUFlLGFBQWEsa0RBQWtELGtCQUFrQixrREFBa0QsRUFBRSw4Q0FBOEMsb0NBQW9DLGdCQUFnQixHQUFHLGFBQWEsYUFBYSxpQkFBaUIsK0JBQStCLHFCQUFxQixxQkFBcUIsdURBQXVELFdBQVcsNEJBQTRCLHFCQUFxQixxQkFBcUIsd0RBQXdELFdBQVcsNkJBQTZCLHFCQUFxQix5QkFBeUIsb0ZBQW9GLFdBQVcsaUNBQWlDLFVBQVUsdUJBQXVCLHVIQUF1SCxXQUFXLHFDQUFxQyxxQkFBcUIsMkJBQTJCLDZHQUE2RyxXQUFXLGdDQUFnQyxlQUFlLHFCQUFxQixvQkFBb0IsdUNBQXVDLG9JQUFvSSxXQUFXLCtCQUErQixVQUFVLGlCQUFpQixtREFBbUQsV0FBVywrQkFBK0IsVUFBVSxpQkFBaUIsbURBQW1ELFdBQVcsK0JBQStCLHFCQUFxQixrQ0FBa0MsdUlBQXVJLFdBQVcsNkJBQTZCLFVBQVUsaUJBQWlCLGlIQUFpSCxXQUFXLHNDQUFzQyxVQUFVLHVCQUF1Qix5SkFBeUosV0FBVyx1Q0FBdUMsd0JBQXdCLGlFQUFpRSxxQkFBcUIsV0FBVyxhQUFhLElBQUksYUFBYSxlQUFlLGtCQUFrQix5QkFBeUIseUJBQXlCLEVBQUUscUJBQXFCLGdCQUFnQixpQkFBaUIsbUJBQW1CLG1CQUFtQixvQkFBb0IsZ0NBQWdDLFdBQVcsRUFBRSx5QkFBeUIsZ0JBQWdCLHlCQUF5Qiw4QkFBOEIsRUFBRSwwQkFBMEIsMEJBQTBCLG1CQUFtQixnQkFBZ0IsY0FBYyxxQkFBcUIsaURBQWlELFFBQVEsNkZBQTZGLE1BQU0sbUZBQW1GLE1BQU0sd0VBQXdFLE1BQU0scVdBQXFXLE1BQU0sV0FBVyxNQUFNLDhnQ0FBOGdDLE1BQU0saVJBQWlSLE1BQU0sK1JBQStSLE1BQU0saTFDQUFpMUMsTUFBTSx3SEFBd0gsTUFBTSx5S0FBeUssTUFBTSx3VUFBd1UsTUFBTSx3SEFBd0gsTUFBTSxpTkFBaU4sTUFBTSxvQ0FBb0MsTUFBTSxnV0FBZ1csTUFBTSx3dkJBQXd2QixNQUFNLCtIQUErSCxNQUFNLFdBQVcsTUFBTSxXQUFXLE1BQU0saUhBQWlILE1BQU0sV0FBVyxNQUFNLFdBQVcsTUFBTSxpZ0RBQWlnRCxNQUFNLDZRQUE2USxNQUFNLHFUQUFxVCxNQUFNLDBEQUEwRCxNQUFNO0FBQzErZCxVQUFVLE1BQU0sK3JGQUErckYsTUFBTSwyR0FBMkcsTUFBTSxxRkFBcUYsTUFBTSwyR0FBMkcsTUFBTSw4TkFBOE4sTUFBTSxrZEFBa2QsTUFBTSx5Q0FBeUMsTUFBTSw0Q0FBNEMsTUFBTSx3dERBQXd0RCxNQUFNLHFJQUFxSSxNQUFNLG9aQUFvWixNQUFNLHduQkFBd25CLE1BQU0scVlBQXFZLE1BQU0sNENBQTRDLE1BQU0saUpBQWlKLE1BQU0sZ1BBQWdQLE1BQU0sb2JBQW9iLE1BQU0sb1pBQW9aLE1BQU0sV0FBVyxNQUFNLFdBQVcsTUFBTSwwRkFBMEYsTUFBTSxXQUFXLE1BQU0sV0FBVyxNQUFNLFVBQVUsTUFBTSx1QkFBdUIsTUFBTSxXQUFXLE1BQU0sOEZBQThGLE1BQU0sV0FBVyxNQUFNLFdBQVcsTUFBTSw2S0FBNkssTUFBTSwySUFBMkksTUFBTSxtZ0JBQW1nQixNQUFNLDJHQUEyRyxNQUFNLDBiQUEwYixNQUFNLHdxQkFBd3FCLE1BQU0sbXVCQUFtdUIsTUFBTSwwWUFBMFksTUFBTSw2Z0JBQTZnQixNQUFNLHlEQUF5RCxNQUFNLDh4QkFBOHhCLE1BQU0sME9BQTBPLE1BQU0sa01BQWtNLE1BQU0scVZBQXFWLE1BQU0sK1ZBQStWLE1BQU0sMGFBQTBhLE1BQU0sK0ZBQStGLE1BQU0saVhBQWlYLE1BQU0sMFFBQTBRLE1BQU0scUxBQXFMLE1BQU0sMmJBQTJiLE1BQU0sNkxBQTZMLE1BQU0sMkJBQTJCLE1BQU0sNkdBQTZHLE1BQU0sK1dBQStXLE1BQU0sdUNBQXVDLE1BQU0sZ0pBQWdKLE1BQU0sMEJBQTBCLE1BQU0sV0FBVyxNQUFNLHVIQUF1SCxNQUFNLHVEQUF1RCxNQUFNLFdBQVcsTUFBTSxzYkFBc2IsU0FBUyx5YkFBeWIsTUFBTSxxWEFBcVgsTUFBTSwrS0FBK0ssTUFBTSwwYkFBMGIsTUFBTSxtSEFBbUgsTUFBTSxXQUFXLE1BQU0sZ2xCQUFnbEIsTUFBTSxvTUFBb00sTUFBTSxvUkFBb1IsTUFBTSxzbUJBQXNtQixNQUFNLDZLQUE2SyxNQUFNLHFaQUFxWixNQUFNLGtSQUFrUixNQUFNLGtRQUFrUSxNQUFNLHVDQUF1QyxNQUFNLFdBQVcsTUFBTSwyQkFBMkIsTUFBTSxvWUFBb1ksU0FBUyx1TUFBdU0sTUFBTSxtUkFBbVIsTUFBTSx1R0FBdUcsTUFBTSx3WkFBd1osc0RBQXNELE1BQU0sc2FBQXNhLE1BQU0sMEZBQTBGLE1BQU0sb3ZCQUFvdkIsTUFBTSwwS0FBMEssTUFBTSxrTkFBa04sTUFBTSw0S0FBNEssTUFBTSx1SUFBdUksTUFBTSw2SkFBNkosTUFBTSx5WEFBeVgsTUFBTSxXQUFXLE1BQU0sV0FBVyxNQUFNLHNHQUFzRyxNQUFNLFdBQVcsTUFBTSxXQUFXLE1BQU0sVUFBVSxNQUFNLHFDQUFxQyxNQUFNLFdBQVcsTUFBTSw2RUFBNkUsTUFBTSx5QkFBeUIsTUFBTSxXQUFXLE1BQU0sNkdBQTZHLE1BQU0sMENBQTBDLE1BQU0sV0FBVyxNQUFNLDZCQUE2QixhQUFhLFdBQVcsZ0NBQWdDLDJCQUEyQixpQkFBaUIsMEVBQTBFLEVBQUUsa0NBQWtDLFlBQVksa0JBQWtCLGVBQWUsNkNBQTZDLEVBQUUsTUFBTSxFQUFFLDZDQUE2QyxHQUFHLGVBQWUsb0JBQW9CLHFEQUFxRCxpQkFBaUIseUJBQXlCLGNBQWMsS0FBSyxHQUFHLHdCQUF3QixtQkFBbUIsNkJBQTZCLFVBQVUsbUJBQW1CLGlFQUFpRSxzQkFBc0IsRUFBRSw4QkFBOEIsZ0ZBQWdGLGdCQUFnQixlQUFlLCtCQUErQixtQ0FBbUMsR0FBRyxlQUFlLHlCQUF5QixFQUFFLHlCQUF5QixnQkFBZ0IsVUFBVSxpQkFBaUIsaUNBQWlDLEVBQUUsTUFBTSxHQUFHLDZDQUE2QyxHQUFHLE9BQU8sYUFBYSxvQ0FBb0MsWUFBWSxHQUFHLGFBQWEsZUFBZSxjQUFjLFVBQVUsbUJBQW1CLHFoQkFBcWhCLGdCQUFnQiwyREFBMkQsaVFBQWlRLElBQUksb0JBQW9CLFNBQVMscUJBQXFCLDJCQUEyQjtBQUNsdTVCLEdBQUcsV0FBVyxLQUFLLHdCQUF3QixFQUFFLDJCQUEyQixJQUFJLDJQQUEyUCwyREFBMkQsS0FBSywyQkFBMkIsZ0dBQWdHLDBlQUEwZSxTQUFTLHFCQUFxQix3Q0FBd0MsZ0JBQWdCLGdDQUFnQyxvR0FBb0csc0JBQXNCLHVCQUF1Qiw2Q0FBNkMsK0tBQStLLEtBQUssVUFBVSxPQUFPLCtFQUErRSxvQkFBb0IsMENBQTBDLDBCQUEwQixxQ0FBcUMsa0RBQWtELEVBQUUscUJBQXFCLHNDQUFzQyxLQUFLLDREQUE0RCxFQUFFLDBCQUEwQixpQ0FBaUMscUJBQXFCLDRCQUE0Qiw2QkFBNkIsMEJBQTBCLGVBQWUsU0FBUyx1QkFBdUIsNkVBQTZFLDBCQUEwQixrRkFBa0YsS0FBSyxpREFBaUQsVUFBVSxPQUFPLHNEQUFzRCwrREFBK0QsVUFBVSxPQUFPLDROQUE0Tix5QkFBeUIsZ0NBQWdDLHFIQUFxSCw4QkFBOEIsMkJBQTJCLDJCQUEyQix3QkFBd0IsRUFBRSwwQkFBMEIsZ0JBQWdCLGlJQUFpSSwyQ0FBMkMseUJBQXlCLDJFQUEyRSxrR0FBa0csOEJBQThCLHVFQUF1RSx1RUFBdUUsU0FBUyxzQ0FBc0MsbURBQW1ELGVBQWUsbUxBQW1MLHlLQUF5SyxPQUFPLGlJQUFpSSxzRkFBc0Ysa0JBQWtCLDZEQUE2RCw0QkFBNEIsRUFBRSxJQUFJLG9CQUFvQix5Q0FBeUMsMEVBQTBFLGVBQWUsMEhBQTBILGFBQWEsb0JBQW9CLDhEQUE4RCxtQ0FBbUMsZ0VBQWdFLG9CQUFvQiwyQkFBMkIsc0dBQXNHLGVBQWUsZUFBZSx1Q0FBdUMsMkJBQTJCLFlBQVksSUFBSSx3RUFBd0UsU0FBUyw4QkFBOEIsWUFBWSxXQUFXLHVFQUF1RSxTQUFTLGVBQWUsMkJBQTJCLGlHQUFpRyw4QkFBOEIsMkJBQTJCLGdIQUFnSCwyQkFBMkIsS0FBSyx3QkFBd0Isd0JBQXdCLDZCQUE2QiwyQkFBMkIsbUlBQW1JLHFCQUFxQixLQUFLLHdCQUF3Qix3QkFBd0IsWUFBWSxnREFBZ0QsZ0NBQWdDLGtCQUFrQixvQkFBb0IsMkJBQTJCLHFEQUFxRCxtRkFBbUYsNkRBQTZELHVCQUF1QixzQkFBc0IsK0VBQStFLCtCQUErQix1QkFBdUIsSUFBSSwwQkFBMEIsa0VBQWtFLE1BQU0sOEVBQThFLEtBQUssMkJBQTJCLHVIQUF1SCxLQUFLLCtCQUErQix1QkFBdUIsWUFBWSw2REFBNkQsc0JBQXNCLEdBQUcsTUFBTSxxQkFBcUIsd0JBQXdCLFNBQVMsTUFBTSxFQUFFLGlDQUFpQywwQkFBMEIsd0tBQXdLLDJEQUEyRCxtQkFBbUIsK0pBQStKLHdCQUF3QiwrSkFBK0osaUJBQWlCLCtKQUErSixtQkFBbUIsK0pBQStKLHdCQUF3QixnQ0FBZ0MsS0FBSyxtREFBbUQsd0JBQXdCLE1BQU0sb0pBQW9KLCtCQUErQixZQUFZLG1CQUFtQixlQUFlLElBQUkscUdBQXFHLDZGQUE2RixzR0FBc0csRUFBRSxzQ0FBc0MsOERBQThELGdDQUFnQyxvQ0FBb0MsUUFBUSx3QkFBd0IsRUFBRSxhQUFhLGdCQUFnQixFQUFFLGdDQUFnQywwQkFBMEIsU0FBUyxvQkFBb0IseURBQXlELE9BQU8sUUFBUSx5RUFBeUUsa0VBQWtFLG9LQUFvSyxtQ0FBbUMsMEpBQTBKLEVBQUUsR0FBRyxFQUFFLDJOQUEyTix3QkFBd0Isc0JBQXNCLG1DQUFtQyx5QkFBeUIsd0JBQXdCLDBCQUEwQix3RUFBd0UscUJBQXFCLG1DQUFtQywyQkFBMkIseUJBQXlCLE1BQU0sdURBQXVELDBCQUEwQixzQkFBc0Isa0NBQWtDLGtFQUFrRSxLQUFLLGtDQUFrQyw0Q0FBNEMsU0FBUyxpQkFBaUIsd0ZBQXdGLHFCQUFxQixvQ0FBb0MsaUVBQWlFLG9CQUFvQixvTUFBb00sS0FBSyxzQ0FBc0MsMkhBQTJILDZCQUE2Qix5SEFBeUgsNERBQTRELDREQUE0RCxLQUFLLDBCQUEwQixnREFBZ0QsOEVBQThFLDBCQUEwQiw4RUFBOEUsNkJBQTZCLHFCQUFxQixrQ0FBa0MseUxBQXlMLDJCQUEyQixrSUFBa0ksMkJBQTJCLGtHQUFrRyxtQ0FBbUMsb0JBQW9CLFNBQVMsS0FBSyxLQUFLLEVBQUUsMkJBQTJCLGtYQUFrWCx5QkFBeUIsK0NBQStDLDZCQUE2Qiw2QkFBNkIsU0FBUyw4REFBOEQsdUNBQXVDLEtBQUssMENBQTBDLEVBQUUsMkJBQTJCLHVCQUF1QixzRUFBc0UsT0FBTyxnRUFBZ0UsNkZBQTZGLE9BQU8sb0NBQW9DLDBCQUEwQiw2RkFBNkYsa0VBQWtFLHdCQUF3QixtREFBbUQsYUFBYSx5VUFBeVUsY0FBYyw2QkFBNkIsMkJBQTJCLFlBQVksZUFBZSx3REFBd0QsU0FBUyxnQkFBZ0IsbURBQW1ELDJCQUEyQixxQ0FBcUMsU0FBUyxjQUFjLDJCQUEyQiwwREFBMEQsaUJBQWlCLDREQUE0RCxxQkFBcUIsMkdBQTJHLHFCQUFxQiwyR0FBMkcsdUJBQXVCLHNDQUFzQyw4QkFBOEIsK0VBQStFLHlCQUF5QixTQUFTLG9DQUFvQyxjQUFjLHFIQUFxSCxxQ0FBcUMsY0FBYyxtSEFBbUgsY0FBYyxvQkFBb0IsZUFBZSxvRUFBb0UsZUFBZSxnREFBZ0QsZUFBZSw2QkFBNkIsZUFBZSw2QkFBNkIsZUFBZSxlQUFlLGlCQUFpQixxQkFBcUIsZUFBZSwrQkFBK0IsZUFBZSw0QkFBNEIsZUFBZSxvQkFBb0IsZUFBZSxXQUFXLFlBQVksV0FBVyxLQUFLLFdBQVcsa0lBQWtJLFNBQVMsZUFBZSxpQkFBaUIsbUJBQW1CLG1EQUFtRCxjQUFjLFlBQVkseURBQXlELEtBQUssc0dBQXNHLCtEQUErRCwrREFBK0QsUUFBUSxtQkFBbUIsT0FBTyx1QkFBdUIsWUFBWSxrQ0FBa0MsUUFBUSx3Q0FBd0MsVUFBVSw4QkFBOEIsT0FBTyw0QkFBNEIsYUFBYSxVQUFVLFFBQVEsVUFBVSx5Q0FBeUMsa0NBQWtDLHNHQUFzRyxvQkFBb0IsWUFBWSw4REFBOEQsVUFBVSxnQ0FBZ0MsZ0JBQWdCLG1GQUFtRiw0QkFBNEIsNkVBQTZFLGNBQWMsa0RBQWtELHNCQUFzQixrRUFBa0UsdUJBQXVCLGlCQUFpQiw2Q0FBNkMsbUJBQW1CLDZDQUE2QyxVQUFVLDJFQUEyRSxPQUFPLDBDQUEwQyxRQUFRLG1CQUFtQixZQUFZLHFCQUFxQixLQUFLLGlEQUFpRCwrQ0FBK0MsU0FBUyx3QkFBd0Isa0NBQWtDLG1DQUFtQyxjQUFjLG9FQUFvRSxxQ0FBcUMscUNBQXFDLG9DQUFvQyxtQ0FBbUMscUNBQXFDLHNFQUFzRSxzQ0FBc0MsdUJBQXVCLEtBQUssVUFBVSwyQ0FBMkMsMENBQTBDLEtBQUssbUJBQW1CLDRKQUE0SixtQkFBbUIsc0NBQXNDLG1CQUFtQixnRkFBZ0YsaUJBQWlCLDRCQUE0QixLQUFLLGFBQWEsdUZBQXVGLGlFQUFpRSwrSUFBK0kscUJBQXFCLHlGQUF5RiwwRkFBMEYsVUFBVSxVQUFVLGlCQUFpQiwyQkFBMkIseUJBQXlCLHFCQUFxQixvQkFBb0IsbUJBQW1CLCtCQUErQixVQUFVLGlCQUFpQixnQ0FBZ0MsVUFBVSxlQUFlLHdCQUF3QixvQkFBb0IsMkpBQTJKLGlCQUFpQix5QkFBeUIsaUdBQWlHLGdFQUFnRSxZQUFZLHVCQUF1QixvTkFBb04sUUFBUSxLQUFLLHFCQUFxQixnaENBQWdoQyxvSEFBb0gsT0FBTyxLQUFLLFdBQVcsaUJBQWlCLDZGQUE2RixjQUFjLGdEQUFnRCxpQkFBaUIsK0RBQStELGlGQUFpRixtQkFBbUIseUtBQXlLLCtCQUErQixtQkFBbUIscUlBQXFJLCtCQUErQixxQkFBcUIsNkNBQTZDLEtBQUsscUJBQXFCLEVBQUUsaUNBQWlDLGFBQWEsVUFBVSx5QkFBeUIscUZBQXFGLE1BQU0sT0FBTyxpRkFBaUYsa0ZBQWtGLHNCQUFzQixzQkFBc0Isb0hBQW9ILFdBQVcsMkRBQTJELGtCQUFrQixzQkFBc0IsUUFBUSx5Q0FBeUMsRUFBRSxxSEFBcUgsb0ZBQW9GLDRJQUE0SSx1REFBdUQsOEJBQThCLGdCQUFnQixNQUFNLEVBQUUsMkdBQTJHLGlDQUFpQyx3RkFBd0YsV0FBVyw0Q0FBNEMsd0ZBQXdGLFdBQVcsMkdBQTJHLFdBQVcseUJBQXlCLFlBQVksaUJBQWlCO0FBQ2xwdUIsR0FBRyxzQ0FBc0MsK0ZBQStGLFNBQVMsZ0JBQWdCLHNDQUFzQztBQUN2TSxHQUFHLDJCQUEyQixxR0FBcUcsOENBQThDLEVBQUUsS0FBSyw4REFBOEQsMEVBQTBFLElBQUksb0RBQW9ELGVBQWUsbUJBQW1CLDJFQUEyRSxvQkFBb0IsMkJBQTJCLGlGQUFpRixvQkFBb0Isc0JBQXNCLEtBQUsscUJBQXFCLDRDQUE0Qyx5RUFBeUUsd0JBQXdCLHFCQUFxQiwrQkFBK0Isa0tBQWtLLFdBQVcsS0FBSyxpREFBaUQsMlBBQTJQLGlOQUFpTixFQUFFLHNCQUFzQixvQkFBb0IsZ0ZBQWdGLGtCQUFrQixpSkFBaUosc0hBQXNILFdBQVcsS0FBSywrQ0FBK0MsaUNBQWlDLEVBQUUsNktBQTZLLDhDQUE4QyxxQkFBcUIsU0FBUyx3Q0FBd0MsS0FBSyxLQUFLLDhCQUE4QixxT0FBcU8seUZBQXlGLFNBQVMsZ0JBQWdCLHFEQUFxRCwwQ0FBMEMsa0JBQWtCLGdGQUFnRixnRUFBZ0UsRUFBRSxzQkFBc0Isd0RBQXdELElBQUkseUVBQXlFLDJEQUEyRCx1SEFBdUgsZ0hBQWdILHFCQUFxQixTQUFTLEtBQUsscUJBQXFCLEVBQUUsc0JBQXNCLHdDQUF3QyxzQ0FBc0MsMkxBQTJMLDBCQUEwQixzQkFBc0IscUxBQXFMLHFDQUFxQywwQkFBMEIsMkJBQTJCLFNBQVMsS0FBSyxxQkFBcUIsRUFBRSxzQkFBc0Isd0NBQXdDLDJMQUEyTCx1SEFBdUgsV0FBVyxtRUFBbUUsMEJBQTBCLGVBQWUscUJBQXFCLHlCQUF5QiwrRUFBK0UsRUFBRSxxQ0FBcUMsT0FBTyx1QkFBdUIseUJBQXlCLG9GQUFvRixFQUFFLHVEQUF1RCxPQUFPLHVCQUF1Qiw4TkFBOE4scUJBQXFCLHlCQUF5Qiw4QkFBOEIsRUFBRSxNQUFNLGVBQWUsaU1BQWlNLHFCQUFxQixnRkFBZ0YsRUFBRSwrREFBK0QsTUFBTSxnQkFBZ0IsOEZBQThGLDJCQUEyQix3Q0FBd0MsS0FBSywwRUFBMEUsWUFBWSxnQkFBZ0IsMkJBQTJCLG1EQUFtRCwyQkFBMkIscUZBQXFGLG9CQUFvQixxRUFBcUUsaUJBQWlCLGlCQUFpQixxQ0FBcUMsaUJBQWlCLHVLQUF1Syx3QkFBd0IsY0FBYyxVQUFVLG9CQUFvQixnQ0FBZ0Msd0NBQXdDLGtCQUFrQixFQUFFLElBQUksa0tBQWtLLEdBQUcsMkNBQTJDLGlJQUFpSSxNQUFNLGlCQUFpQiwwRUFBMEUsMEJBQTBCLFVBQVUsU0FBUyxlQUFlLG9CQUFvQiwrQkFBK0I7QUFDL2pPLE1BQU0saUJBQWlCO0FBQ3ZCLEVBQUUsRUFBRSxTQUFTO0FBQ2IsdUJBQXVCLDZCQUE2QiwwQkFBMEIsbUJBQW1CLE9BQU8seUhBQXlILGVBQWUsWUFBWSxhQUFhLFdBQVcsSUFBSSxNQUFNLEdBQUcsT0FBTywrREFBK0QsVUFBVSxRQUFRLDRDQUE0QyxtQ0FBbUMsZ0JBQWdCLEVBQUUseUVBQXlFLGlCQUFpQixnQkFBZ0IsMERBQTBELFVBQVUsT0FBTyw4QkFBOEIsc0NBQXNDLEdBQUcsT0FBTyxNQUFNLGlCQUFpQixjQUFjLE1BQU0sd0JBQXdCLHFCQUFxQixtQkFBbUIsd0JBQXdCLCtDQUErQyxrQkFBa0IsUUFBUSxpQkFBaUIsY0FBYyxpQkFBaUIsV0FBVyxpQkFBaUIsUUFBUSxlQUFlLHdDQUF3QyxzQ0FBc0MsdUJBQXVCLHFFQUFxRSxlQUFlLGlEQUFpRCxrQkFBa0IsNERBQTRELFFBQVEsbUJBQW1CLGlCQUFpQixNQUFNLDBDQUEwQyxnQkFBZ0IsTUFBTSwrREFBK0QsV0FBVyxRQUFRLHVHQUF1RyxXQUFXLFFBQVEsdUdBQXVHLGNBQWMseURBQXlELGVBQWUsNkRBQTZELGNBQWMscUVBQXFFLGlCQUFpQixlQUFlLG1DQUFtQyxTQUFTLDBEQUEwRCxFQUFFLHNDQUFzQyxFQUFFLG1DQUFtQyxFQUFFLGlCQUFpQixtQkFBbUIsZ0JBQWdCLE9BQU8sdUJBQXVCLHFCQUFxQixZQUFZLG1CQUFtQiwyRkFBMkYsSUFBSSwyQkFBMkIsTUFBTSxZQUFZLDBDQUEwQyxJQUFJLElBQUksT0FBTyxvTUFBb00sbUJBQW1CLFVBQVUsT0FBTywrRkFBK0YsZUFBZSxPQUFPLHdEQUF3RCw2bkxBQTZuTCxzb0NBQXNvQyxlQUFlLHFCQUFxQiw0R0FBNEcsb0JBQW9CLE9BQU8sb0VBQW9FLGNBQWMsMEpBQTBKLGVBQWUsK0VBQStFLDBHQUEwRywrQkFBK0IsZUFBZSw0SUFBNEksbUJBQW1CLElBQUksZ0tBQWdLLElBQUkscUJBQXFCLE9BQU8sd09BQXdPLEVBQUUsY0FBYyx3SEFBd0gsd0JBQXdCLHVFQUF1RSw2QkFBNkIsa0JBQWtCLDBEQUEwRCw0QkFBNEIsSUFBSSxvQ0FBb0MsR0FBRyxvQ0FBb0MsaUJBQWlCLHFHQUFxRyx1QkFBdUIscUJBQXFCLFVBQVUsb0hBQW9ILEVBQUUsOEJBQThCLGdEQUFnRCxPQUFPLGVBQWUsbUJBQW1CLDRJQUE0SSxNQUFNLDBEQUEwRCxNQUFNLDJDQUEyQyxPQUFPLFdBQVcsc0JBQXNCLGdCQUFnQixPQUFPLGdRQUFnUSxPQUFPLDRGQUE0RixPQUFPLHVCQUF1Qix3Q0FBd0Msd0dBQXdHLCtCQUErQix3QkFBd0Isd0NBQXdDLGdCQUFnQixFQUFFLFNBQVMscUJBQXFCLE1BQU0saUJBQWlCLE1BQU0sb0RBQW9ELGdFQUFnRSxnQkFBZ0IsV0FBVyxXQUFXLGVBQWUsSUFBSSxZQUFZLGVBQWUsR0FBRyxZQUFZLEtBQUssT0FBTyw2QkFBNkIsTUFBTSw4QkFBOEIsU0FBUyxFQUFFLG9CQUFvQixPQUFPLElBQUksd0JBQXdCLFVBQVUsMkJBQTJCLGtFQUFrRSxzREFBc0QsTUFBTSwrQ0FBK0MsOENBQThDLDBCQUEwQixJQUFJLFNBQVMseURBQXlELDBEQUEwRCxvQkFBb0IsdUlBQXVJLGtCQUFrQix1QkFBdUIsY0FBYyw4QkFBOEIsa0JBQWtCLElBQUksZUFBZSxPQUFPLDBFQUEwRSxRQUFRLDBGQUEwRixrQkFBa0IsZUFBZSxTQUFTLG1FQUFtRSwrREFBK0QsZUFBZSxpREFBaUQsU0FBUywyQkFBMkIsRUFBRSxRQUFRLFNBQVMsVUFBMkYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXJjbWludGVsL1Byb2plY3RzL2UtdGliLmNvbS9ub2RlX21vZHVsZXMvLnBucG0vcHJldHRpZXJAMy40LjIvbm9kZV9tb2R1bGVzL3ByZXR0aWVyL3BsdWdpbnMvaHRtbC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHJpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgWHI9dD0+e3Rocm93IFR5cGVFcnJvcih0KX07dmFyIEpyPSh0LGUpPT57Zm9yKHZhciByIGluIGUpcmkodCxyLHtnZXQ6ZVtyXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBacj0odCxlLHIpPT5lLmhhcyh0KXx8WHIoXCJDYW5ub3QgXCIrcik7dmFyIEs9KHQsZSxyKT0+KFpyKHQsZSxcInJlYWQgZnJvbSBwcml2YXRlIGZpZWxkXCIpLHI/ci5jYWxsKHQpOmUuZ2V0KHQpKSxlbj0odCxlLHIpPT5lLmhhcyh0KT9YcihcIkNhbm5vdCBhZGQgdGhlIHNhbWUgcHJpdmF0ZSBtZW1iZXIgbW9yZSB0aGFuIG9uY2VcIik6ZSBpbnN0YW5jZW9mIFdlYWtTZXQ/ZS5hZGQodCk6ZS5zZXQodCxyKSx0bj0odCxlLHIsbik9Pihacih0LGUsXCJ3cml0ZSB0byBwcml2YXRlIGZpZWxkXCIpLG4/bi5jYWxsKHQscik6ZS5zZXQodCxyKSxyKTt2YXIgWXI9e307SnIoWXIse2xhbmd1YWdlczooKT0+QXMsb3B0aW9uczooKT0+dnMscGFyc2VyczooKT0+R3IscHJpbnRlcnM6KCk9PklvfSk7dmFyIG5pPSh0LGUscixuKT0+e2lmKCEodCYmZT09bnVsbCkpcmV0dXJuIGUucmVwbGFjZUFsbD9lLnJlcGxhY2VBbGwocixuKTpyLmdsb2JhbD9lLnJlcGxhY2UocixuKTplLnNwbGl0KHIpLmpvaW4obil9LHc9bmk7dmFyIFZlPVwic3RyaW5nXCIsVWU9XCJhcnJheVwiLFdlPVwiY3Vyc29yXCIsRGU9XCJpbmRlbnRcIix2ZT1cImFsaWduXCIsemU9XCJ0cmltXCIseWU9XCJncm91cFwiLHdlPVwiZmlsbFwiLGJlPVwiaWYtYnJlYWtcIixUZT1cImluZGVudC1pZi1icmVha1wiLEdlPVwibGluZS1zdWZmaXhcIixZZT1cImxpbmUtc3VmZml4LWJvdW5kYXJ5XCIsUT1cImxpbmVcIixqZT1cImxhYmVsXCIseGU9XCJicmVhay1wYXJlbnRcIixTdD1uZXcgU2V0KFtXZSxEZSx2ZSx6ZSx5ZSx3ZSxiZSxUZSxHZSxZZSxRLGplLHhlXSk7ZnVuY3Rpb24gc2kodCl7aWYodHlwZW9mIHQ9PVwic3RyaW5nXCIpcmV0dXJuIFZlO2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIFVlO2lmKCF0KXJldHVybjtsZXR7dHlwZTplfT10O2lmKFN0LmhhcyhlKSlyZXR1cm4gZX12YXIgS2U9c2k7dmFyIGlpPXQ9Pm5ldyBJbnRsLkxpc3RGb3JtYXQoXCJlbi1VU1wiLHt0eXBlOlwiZGlzanVuY3Rpb25cIn0pLmZvcm1hdCh0KTtmdW5jdGlvbiBhaSh0KXtsZXQgZT10PT09bnVsbD9cIm51bGxcIjp0eXBlb2YgdDtpZihlIT09XCJzdHJpbmdcIiYmZSE9PVwib2JqZWN0XCIpcmV0dXJuYFVuZXhwZWN0ZWQgZG9jICcke2V9JywgXG5FeHBlY3RlZCBpdCB0byBiZSAnc3RyaW5nJyBvciAnb2JqZWN0Jy5gO2lmKEtlKHQpKXRocm93IG5ldyBFcnJvcihcImRvYyBpcyB2YWxpZC5cIik7bGV0IHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpO2lmKHIhPT1cIltvYmplY3QgT2JqZWN0XVwiKXJldHVybmBVbmV4cGVjdGVkIGRvYyAnJHtyfScuYDtsZXQgbj1paShbLi4uU3RdLm1hcChzPT5gJyR7c30nYCkpO3JldHVybmBVbmV4cGVjdGVkIGRvYy50eXBlICcke3QudHlwZX0nLlxuRXhwZWN0ZWQgaXQgdG8gYmUgJHtufS5gfXZhciBvcj1jbGFzcyBleHRlbmRzIEVycm9ye25hbWU9XCJJbnZhbGlkRG9jRXJyb3JcIjtjb25zdHJ1Y3RvcihlKXtzdXBlcihhaShlKSksdGhpcy5kb2M9ZX19LHVyPW9yO3ZhciBybj0oKT0+e30scmU9cm4sX3Q9cm47ZnVuY3Rpb24gayh0KXtyZXR1cm4gcmUodCkse3R5cGU6RGUsY29udGVudHM6dH19ZnVuY3Rpb24gbm4odCxlKXtyZXR1cm4gcmUoZSkse3R5cGU6dmUsY29udGVudHM6ZSxuOnR9fWZ1bmN0aW9uIF8odCxlPXt9KXtyZXR1cm4gcmUodCksX3QoZS5leHBhbmRlZFN0YXRlcywhMCkse3R5cGU6eWUsaWQ6ZS5pZCxjb250ZW50czp0LGJyZWFrOiEhZS5zaG91bGRCcmVhayxleHBhbmRlZFN0YXRlczplLmV4cGFuZGVkU3RhdGVzfX1mdW5jdGlvbiBzbih0KXtyZXR1cm4gbm4oTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHQpfWZ1bmN0aW9uIGFuKHQpe3JldHVybiBubih7dHlwZTpcInJvb3RcIn0sdCl9ZnVuY3Rpb24gRXQodCl7cmV0dXJuIF90KHQpLHt0eXBlOndlLHBhcnRzOnR9fWZ1bmN0aW9uIGxlKHQsZT1cIlwiLHI9e30pe3JldHVybiByZSh0KSxlIT09XCJcIiYmcmUoZSkse3R5cGU6YmUsYnJlYWtDb250ZW50czp0LGZsYXRDb250ZW50czplLGdyb3VwSWQ6ci5ncm91cElkfX1mdW5jdGlvbiBvbih0LGUpe3JldHVybiByZSh0KSx7dHlwZTpUZSxjb250ZW50czp0LGdyb3VwSWQ6ZS5ncm91cElkLG5lZ2F0ZTplLm5lZ2F0ZX19dmFyIG5lPXt0eXBlOnhlfTt2YXIgb2k9e3R5cGU6USxoYXJkOiEwfSx1aT17dHlwZTpRLGhhcmQ6ITAsbGl0ZXJhbDohMH0sRT17dHlwZTpRfSx2PXt0eXBlOlEsc29mdDohMH0sUz1bb2ksbmVdLHVuPVt1aSxuZV07ZnVuY3Rpb24gcSh0LGUpe3JlKHQpLF90KGUpO2xldCByPVtdO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKW4hPT0wJiZyLnB1c2godCksci5wdXNoKGVbbl0pO3JldHVybiByfXZhciBsaT0odCxlLHIpPT57aWYoISh0JiZlPT1udWxsKSlyZXR1cm4gQXJyYXkuaXNBcnJheShlKXx8dHlwZW9mIGU9PVwic3RyaW5nXCI/ZVtyPDA/ZS5sZW5ndGgrcjpyXTplLmF0KHIpfSxzZT1saTtmdW5jdGlvbiBscih0LGUpe2lmKHR5cGVvZiB0PT1cInN0cmluZ1wiKXJldHVybiBlKHQpO2xldCByPW5ldyBNYXA7cmV0dXJuIG4odCk7ZnVuY3Rpb24gbihpKXtpZihyLmhhcyhpKSlyZXR1cm4gci5nZXQoaSk7bGV0IGE9cyhpKTtyZXR1cm4gci5zZXQoaSxhKSxhfWZ1bmN0aW9uIHMoaSl7c3dpdGNoKEtlKGkpKXtjYXNlIFVlOnJldHVybiBlKGkubWFwKG4pKTtjYXNlIHdlOnJldHVybiBlKHsuLi5pLHBhcnRzOmkucGFydHMubWFwKG4pfSk7Y2FzZSBiZTpyZXR1cm4gZSh7Li4uaSxicmVha0NvbnRlbnRzOm4oaS5icmVha0NvbnRlbnRzKSxmbGF0Q29udGVudHM6bihpLmZsYXRDb250ZW50cyl9KTtjYXNlIHllOntsZXR7ZXhwYW5kZWRTdGF0ZXM6YSxjb250ZW50czpvfT1pO3JldHVybiBhPyhhPWEubWFwKG4pLG89YVswXSk6bz1uKG8pLGUoey4uLmksY29udGVudHM6byxleHBhbmRlZFN0YXRlczphfSl9Y2FzZSB2ZTpjYXNlIERlOmNhc2UgVGU6Y2FzZSBqZTpjYXNlIEdlOnJldHVybiBlKHsuLi5pLGNvbnRlbnRzOm4oaS5jb250ZW50cyl9KTtjYXNlIFZlOmNhc2UgV2U6Y2FzZSB6ZTpjYXNlIFllOmNhc2UgUTpjYXNlIHhlOnJldHVybiBlKGkpO2RlZmF1bHQ6dGhyb3cgbmV3IHVyKGkpfX19ZnVuY3Rpb24gQih0LGU9dW4pe3JldHVybiBscih0LHI9PnR5cGVvZiByPT1cInN0cmluZ1wiP3EoZSxyLnNwbGl0KGBcbmApKTpyKX12YXIgQXQ9XCInXCIsbG49J1wiJztmdW5jdGlvbiBjaSh0LGUpe2xldCByPWU9PT0hMHx8ZT09PUF0P0F0OmxuLG49cj09PUF0P2xuOkF0LHM9MCxpPTA7Zm9yKGxldCBhIG9mIHQpYT09PXI/cysrOmE9PT1uJiZpKys7cmV0dXJuIHM+aT9uOnJ9dmFyIGNuPWNpO2Z1bmN0aW9uIGNyKHQpe2lmKHR5cGVvZiB0IT1cInN0cmluZ1wiKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKTtyZXR1cm4gdC5yZXBsYWNlKC9bfFxcXFx7fSgpW1xcXV4kKyo/Ll0vZyxcIlxcXFwkJlwiKS5yZXBsYWNlKC8tL2csXCJcXFxceDJkXCIpfXZhciBILHByPWNsYXNze2NvbnN0cnVjdG9yKGUpe2VuKHRoaXMsSCk7dG4odGhpcyxILG5ldyBTZXQoZSkpfWdldExlYWRpbmdXaGl0ZXNwYWNlQ291bnQoZSl7bGV0IHI9Syh0aGlzLEgpLG49MDtmb3IobGV0IHM9MDtzPGUubGVuZ3RoJiZyLmhhcyhlLmNoYXJBdChzKSk7cysrKW4rKztyZXR1cm4gbn1nZXRUcmFpbGluZ1doaXRlc3BhY2VDb3VudChlKXtsZXQgcj1LKHRoaXMsSCksbj0wO2ZvcihsZXQgcz1lLmxlbmd0aC0xO3M+PTAmJnIuaGFzKGUuY2hhckF0KHMpKTtzLS0pbisrO3JldHVybiBufWdldExlYWRpbmdXaGl0ZXNwYWNlKGUpe2xldCByPXRoaXMuZ2V0TGVhZGluZ1doaXRlc3BhY2VDb3VudChlKTtyZXR1cm4gZS5zbGljZSgwLHIpfWdldFRyYWlsaW5nV2hpdGVzcGFjZShlKXtsZXQgcj10aGlzLmdldFRyYWlsaW5nV2hpdGVzcGFjZUNvdW50KGUpO3JldHVybiBlLnNsaWNlKGUubGVuZ3RoLXIpfWhhc0xlYWRpbmdXaGl0ZXNwYWNlKGUpe3JldHVybiBLKHRoaXMsSCkuaGFzKGUuY2hhckF0KDApKX1oYXNUcmFpbGluZ1doaXRlc3BhY2UoZSl7cmV0dXJuIEsodGhpcyxIKS5oYXMoc2UoITEsZSwtMSkpfXRyaW1TdGFydChlKXtsZXQgcj10aGlzLmdldExlYWRpbmdXaGl0ZXNwYWNlQ291bnQoZSk7cmV0dXJuIGUuc2xpY2Uocil9dHJpbUVuZChlKXtsZXQgcj10aGlzLmdldFRyYWlsaW5nV2hpdGVzcGFjZUNvdW50KGUpO3JldHVybiBlLnNsaWNlKDAsZS5sZW5ndGgtcil9dHJpbShlKXtyZXR1cm4gdGhpcy50cmltRW5kKHRoaXMudHJpbVN0YXJ0KGUpKX1zcGxpdChlLHI9ITEpe2xldCBuPWBbJHtjcihbLi4uSyh0aGlzLEgpXS5qb2luKFwiXCIpKX1dK2Ascz1uZXcgUmVnRXhwKHI/YCgke259KWA6bixcInVcIik7cmV0dXJuIGUuc3BsaXQocyl9aGFzV2hpdGVzcGFjZUNoYXJhY3RlcihlKXtsZXQgcj1LKHRoaXMsSCk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoZSxuPT5yLmhhcyhuKSl9aGFzTm9uV2hpdGVzcGFjZUNoYXJhY3RlcihlKXtsZXQgcj1LKHRoaXMsSCk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoZSxuPT4hci5oYXMobikpfWlzV2hpdGVzcGFjZU9ubHkoZSl7bGV0IHI9Syh0aGlzLEgpO3JldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChlLG49PnIuaGFzKG4pKX19O0g9bmV3IFdlYWtNYXA7dmFyIHBuPXByO3ZhciBwaT1bXCJcdFwiLGBcbmAsXCJcXGZcIixcIlxcclwiLFwiIFwiXSxoaT1uZXcgcG4ocGkpLE49aGk7dmFyIGhyPWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIlVuZXhwZWN0ZWROb2RlRXJyb3JcIjtjb25zdHJ1Y3RvcihlLHIsbj1cInR5cGVcIil7c3VwZXIoYFVuZXhwZWN0ZWQgJHtyfSBub2RlICR7bn06ICR7SlNPTi5zdHJpbmdpZnkoZVtuXSl9LmApLHRoaXMubm9kZT1lfX0saG49aHI7ZnVuY3Rpb24gbWkodCl7cmV0dXJuKHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cImZyb250LW1hdHRlclwifXZhciBrZT1taTt2YXIgZmk9bmV3IFNldChbXCJzb3VyY2VTcGFuXCIsXCJzdGFydFNvdXJjZVNwYW5cIixcImVuZFNvdXJjZVNwYW5cIixcIm5hbWVTcGFuXCIsXCJ2YWx1ZVNwYW5cIixcImtleVNwYW5cIixcInRhZ0RlZmluaXRpb25cIixcInRva2Vuc1wiLFwidmFsdWVUb2tlbnNcIixcInN3aXRjaFZhbHVlU291cmNlU3BhblwiLFwiZXhwU291cmNlU3BhblwiLFwidmFsdWVTb3VyY2VTcGFuXCJdKSxkaT1uZXcgU2V0KFtcImlmXCIsXCJlbHNlIGlmXCIsXCJmb3JcIixcInN3aXRjaFwiLFwiY2FzZVwiXSk7ZnVuY3Rpb24gbW4odCxlKXt2YXIgcjtpZih0LnR5cGU9PT1cInRleHRcInx8dC50eXBlPT09XCJjb21tZW50XCJ8fGtlKHQpfHx0LnR5cGU9PT1cInlhbWxcInx8dC50eXBlPT09XCJ0b21sXCIpcmV0dXJuIG51bGw7aWYodC50eXBlPT09XCJhdHRyaWJ1dGVcIiYmZGVsZXRlIGUudmFsdWUsdC50eXBlPT09XCJkb2NUeXBlXCImJmRlbGV0ZSBlLnZhbHVlLHQudHlwZT09PVwiYW5ndWxhckNvbnRyb2xGbG93QmxvY2tcIiYmKChyPXQucGFyYW1ldGVycykhPW51bGwmJnIuY2hpbGRyZW4pKWZvcihsZXQgbiBvZiBlLnBhcmFtZXRlcnMuY2hpbGRyZW4pZGkuaGFzKHQubmFtZSk/ZGVsZXRlIG4uZXhwcmVzc2lvbjpuLmV4cHJlc3Npb249bi5leHByZXNzaW9uLnRyaW0oKTt0LnR5cGU9PT1cImFuZ3VsYXJJY3VFeHByZXNzaW9uXCImJihlLnN3aXRjaFZhbHVlPXQuc3dpdGNoVmFsdWUudHJpbSgpKSx0LnR5cGU9PT1cImFuZ3VsYXJMZXREZWNsYXJhdGlvbkluaXRpYWxpemVyXCImJmRlbGV0ZSBlLnZhbHVlfW1uLmlnbm9yZWRQcm9wZXJ0aWVzPWZpO3ZhciBmbj1tbjthc3luYyBmdW5jdGlvbiBnaSh0LGUpe2lmKHQubGFuZ3VhZ2U9PT1cInlhbWxcIil7bGV0IHI9dC52YWx1ZS50cmltKCksbj1yP2F3YWl0IGUocix7cGFyc2VyOlwieWFtbFwifSk6XCJcIjtyZXR1cm4gYW4oW3Quc3RhcnREZWxpbWl0ZXIsdC5leHBsaWNpdExhbmd1YWdlLFMsbixuP1M6XCJcIix0LmVuZERlbGltaXRlcl0pfX12YXIgZG49Z2k7ZnVuY3Rpb24gY2UodCxlPSEwKXtyZXR1cm5bayhbdix0XSksZT92OlwiXCJdfWZ1bmN0aW9uIFkodCxlKXtsZXQgcj10LnR5cGU9PT1cIk5HUm9vdFwiP3Qubm9kZS50eXBlPT09XCJOR01pY3Jvc3ludGF4XCImJnQubm9kZS5ib2R5Lmxlbmd0aD09PTEmJnQubm9kZS5ib2R5WzBdLnR5cGU9PT1cIk5HTWljcm9zeW50YXhFeHByZXNzaW9uXCI/dC5ub2RlLmJvZHlbMF0uZXhwcmVzc2lvbjp0Lm5vZGU6dC50eXBlPT09XCJKc0V4cHJlc3Npb25Sb290XCI/dC5ub2RlOnQ7cmV0dXJuIHImJihyLnR5cGU9PT1cIk9iamVjdEV4cHJlc3Npb25cInx8ci50eXBlPT09XCJBcnJheUV4cHJlc3Npb25cInx8KGUucGFyc2VyPT09XCJfX3Z1ZV9leHByZXNzaW9uXCJ8fGUucGFyc2VyPT09XCJfX3Z1ZV90c19leHByZXNzaW9uXCIpJiYoci50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcInx8ci50eXBlPT09XCJTdHJpbmdMaXRlcmFsXCIpKX1hc3luYyBmdW5jdGlvbiBUKHQsZSxyLG4pe3I9e19faXNJbkh0bWxBdHRyaWJ1dGU6ITAsX19lbWJlZGRlZEluSHRtbDohMCwuLi5yfTtsZXQgcz0hMDtuJiYoci5fX29uSHRtbEJpbmRpbmdSb290PShhLG8pPT57cz1uKGEsbyl9KTtsZXQgaT1hd2FpdCBlKHQscixlKTtyZXR1cm4gcz9fKGkpOmNlKGkpfWZ1bmN0aW9uIENpKHQsZSxyLG4pe2xldHtub2RlOnN9PXIsaT1uLm9yaWdpbmFsVGV4dC5zbGljZShzLnNvdXJjZVNwYW4uc3RhcnQub2Zmc2V0LHMuc291cmNlU3Bhbi5lbmQub2Zmc2V0KTtyZXR1cm4vXlxccyokL3UudGVzdChpKT9cIlwiOlQoaSx0LHtwYXJzZXI6XCJfX25nX2RpcmVjdGl2ZVwiLF9faXNJbkh0bWxBdHRyaWJ1dGU6ITF9LFkpfXZhciBnbj1DaTt2YXIgU2k9dD0+U3RyaW5nKHQpLnNwbGl0KC9bL1xcXFxdL3UpLnBvcCgpO2Z1bmN0aW9uIENuKHQsZSl7aWYoIWUpcmV0dXJuO2xldCByPVNpKGUpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQuZmluZCgoe2ZpbGVuYW1lczpufSk9Pm49PW51bGw/dm9pZCAwOm4uc29tZShzPT5zLnRvTG93ZXJDYXNlKCk9PT1yKSk/P3QuZmluZCgoe2V4dGVuc2lvbnM6bn0pPT5uPT1udWxsP3ZvaWQgMDpuLnNvbWUocz0+ci5lbmRzV2l0aChzKSkpfWZ1bmN0aW9uIF9pKHQsZSl7aWYoZSlyZXR1cm4gdC5maW5kKCh7bmFtZTpyfSk9PnIudG9Mb3dlckNhc2UoKT09PWUpPz90LmZpbmQoKHthbGlhc2VzOnJ9KT0+cj09bnVsbD92b2lkIDA6ci5pbmNsdWRlcyhlKSk/P3QuZmluZCgoe2V4dGVuc2lvbnM6cn0pPT5yPT1udWxsP3ZvaWQgMDpyLmluY2x1ZGVzKGAuJHtlfWApKX1mdW5jdGlvbiBFaSh0LGUpe2xldCByPXQucGx1Z2lucy5mbGF0TWFwKHM9PnMubGFuZ3VhZ2VzPz9bXSksbj1faShyLGUubGFuZ3VhZ2UpPz9DbihyLGUucGh5c2ljYWxGaWxlKT8/Q24ocixlLmZpbGUpPz8oZS5waHlzaWNhbEZpbGUsdm9pZCAwKTtyZXR1cm4gbj09bnVsbD92b2lkIDA6bi5wYXJzZXJzWzBdfXZhciBCZT1FaTt2YXIgU249XCJpbmxpbmVcIixfbj17YXJlYTpcIm5vbmVcIixiYXNlOlwibm9uZVwiLGJhc2Vmb250Olwibm9uZVwiLGRhdGFsaXN0Olwibm9uZVwiLGhlYWQ6XCJub25lXCIsbGluazpcIm5vbmVcIixtZXRhOlwibm9uZVwiLG5vZW1iZWQ6XCJub25lXCIsbm9mcmFtZXM6XCJub25lXCIscGFyYW06XCJibG9ja1wiLHJwOlwibm9uZVwiLHNjcmlwdDpcImJsb2NrXCIsc3R5bGU6XCJub25lXCIsdGVtcGxhdGU6XCJpbmxpbmVcIix0aXRsZTpcIm5vbmVcIixodG1sOlwiYmxvY2tcIixib2R5OlwiYmxvY2tcIixhZGRyZXNzOlwiYmxvY2tcIixibG9ja3F1b3RlOlwiYmxvY2tcIixjZW50ZXI6XCJibG9ja1wiLGRpYWxvZzpcImJsb2NrXCIsZGl2OlwiYmxvY2tcIixmaWd1cmU6XCJibG9ja1wiLGZpZ2NhcHRpb246XCJibG9ja1wiLGZvb3RlcjpcImJsb2NrXCIsZm9ybTpcImJsb2NrXCIsaGVhZGVyOlwiYmxvY2tcIixocjpcImJsb2NrXCIsbGVnZW5kOlwiYmxvY2tcIixsaXN0aW5nOlwiYmxvY2tcIixtYWluOlwiYmxvY2tcIixwOlwiYmxvY2tcIixwbGFpbnRleHQ6XCJibG9ja1wiLHByZTpcImJsb2NrXCIsc2VhcmNoOlwiYmxvY2tcIix4bXA6XCJibG9ja1wiLHNsb3Q6XCJjb250ZW50c1wiLHJ1Ynk6XCJydWJ5XCIscnQ6XCJydWJ5LXRleHRcIixhcnRpY2xlOlwiYmxvY2tcIixhc2lkZTpcImJsb2NrXCIsaDE6XCJibG9ja1wiLGgyOlwiYmxvY2tcIixoMzpcImJsb2NrXCIsaDQ6XCJibG9ja1wiLGg1OlwiYmxvY2tcIixoNjpcImJsb2NrXCIsaGdyb3VwOlwiYmxvY2tcIixuYXY6XCJibG9ja1wiLHNlY3Rpb246XCJibG9ja1wiLGRpcjpcImJsb2NrXCIsZGQ6XCJibG9ja1wiLGRsOlwiYmxvY2tcIixkdDpcImJsb2NrXCIsbWVudTpcImJsb2NrXCIsb2w6XCJibG9ja1wiLHVsOlwiYmxvY2tcIixsaTpcImxpc3QtaXRlbVwiLHRhYmxlOlwidGFibGVcIixjYXB0aW9uOlwidGFibGUtY2FwdGlvblwiLGNvbGdyb3VwOlwidGFibGUtY29sdW1uLWdyb3VwXCIsY29sOlwidGFibGUtY29sdW1uXCIsdGhlYWQ6XCJ0YWJsZS1oZWFkZXItZ3JvdXBcIix0Ym9keTpcInRhYmxlLXJvdy1ncm91cFwiLHRmb290OlwidGFibGUtZm9vdGVyLWdyb3VwXCIsdHI6XCJ0YWJsZS1yb3dcIix0ZDpcInRhYmxlLWNlbGxcIix0aDpcInRhYmxlLWNlbGxcIixpbnB1dDpcImlubGluZS1ibG9ja1wiLGJ1dHRvbjpcImlubGluZS1ibG9ja1wiLGZpZWxkc2V0OlwiYmxvY2tcIixkZXRhaWxzOlwiYmxvY2tcIixzdW1tYXJ5OlwiYmxvY2tcIixtYXJxdWVlOlwiaW5saW5lLWJsb2NrXCIsc291cmNlOlwiYmxvY2tcIix0cmFjazpcImJsb2NrXCIsbWV0ZXI6XCJpbmxpbmUtYmxvY2tcIixwcm9ncmVzczpcImlubGluZS1ibG9ja1wiLG9iamVjdDpcImlubGluZS1ibG9ja1wiLHZpZGVvOlwiaW5saW5lLWJsb2NrXCIsYXVkaW86XCJpbmxpbmUtYmxvY2tcIixzZWxlY3Q6XCJpbmxpbmUtYmxvY2tcIixvcHRpb246XCJibG9ja1wiLG9wdGdyb3VwOlwiYmxvY2tcIn0sRW49XCJub3JtYWxcIixBbj17bGlzdGluZzpcInByZVwiLHBsYWludGV4dDpcInByZVwiLHByZTpcInByZVwiLHhtcDpcInByZVwiLG5vYnI6XCJub3dyYXBcIix0YWJsZTpcImluaXRpYWxcIix0ZXh0YXJlYTpcInByZS13cmFwXCJ9O2Z1bmN0aW9uIEFpKHQpe3JldHVybiB0LnR5cGU9PT1cImVsZW1lbnRcIiYmIXQuaGFzRXhwbGljaXROYW1lc3BhY2UmJiFbXCJodG1sXCIsXCJzdmdcIl0uaW5jbHVkZXModC5uYW1lc3BhY2UpfXZhciBwZT1BaTt2YXIgRGk9dD0+dyghMSx0LC9eW1xcdFxcZlxcciBdKlxcbi9ndSxcIlwiKSxtcj10PT5EaShOLnRyaW1FbmQodCkpLERuPXQ9PntsZXQgZT10LHI9Ti5nZXRMZWFkaW5nV2hpdGVzcGFjZShlKTtyJiYoZT1lLnNsaWNlKHIubGVuZ3RoKSk7bGV0IG49Ti5nZXRUcmFpbGluZ1doaXRlc3BhY2UoZSk7cmV0dXJuIG4mJihlPWUuc2xpY2UoMCwtbi5sZW5ndGgpKSx7bGVhZGluZ1doaXRlc3BhY2U6cix0cmFpbGluZ1doaXRlc3BhY2U6bix0ZXh0OmV9fTtmdW5jdGlvbiBEdCh0LGUpe3JldHVybiEhKHQudHlwZT09PVwiaWVDb25kaXRpb25hbENvbW1lbnRcIiYmdC5sYXN0Q2hpbGQmJiF0Lmxhc3RDaGlsZC5pc1NlbGZDbG9zaW5nJiYhdC5sYXN0Q2hpbGQuZW5kU291cmNlU3Bhbnx8dC50eXBlPT09XCJpZUNvbmRpdGlvbmFsQ29tbWVudFwiJiYhdC5jb21wbGV0ZXx8aGUodCkmJnQuY2hpbGRyZW4uc29tZShyPT5yLnR5cGUhPT1cInRleHRcIiYmci50eXBlIT09XCJpbnRlcnBvbGF0aW9uXCIpfHx3dCh0LGUpJiYhVSh0KSYmdC50eXBlIT09XCJpbnRlcnBvbGF0aW9uXCIpfWZ1bmN0aW9uIG1lKHQpe3JldHVybiB0LnR5cGU9PT1cImF0dHJpYnV0ZVwifHwhdC5wYXJlbnR8fCF0LnByZXY/ITE6dmkodC5wcmV2KX1mdW5jdGlvbiB2aSh0KXtyZXR1cm4gdC50eXBlPT09XCJjb21tZW50XCImJnQudmFsdWUudHJpbSgpPT09XCJwcmV0dGllci1pZ25vcmVcIn1mdW5jdGlvbiBPKHQpe3JldHVybiB0LnR5cGU9PT1cInRleHRcInx8dC50eXBlPT09XCJjb21tZW50XCJ9ZnVuY3Rpb24gVSh0KXtyZXR1cm4gdC50eXBlPT09XCJlbGVtZW50XCImJih0LmZ1bGxOYW1lPT09XCJzY3JpcHRcInx8dC5mdWxsTmFtZT09PVwic3R5bGVcInx8dC5mdWxsTmFtZT09PVwic3ZnOnN0eWxlXCJ8fHQuZnVsbE5hbWU9PT1cInN2ZzpzY3JpcHRcInx8cGUodCkmJih0Lm5hbWU9PT1cInNjcmlwdFwifHx0Lm5hbWU9PT1cInN0eWxlXCIpKX1mdW5jdGlvbiB2bih0KXtyZXR1cm4gdC5jaGlsZHJlbiYmIVUodCl9ZnVuY3Rpb24geW4odCl7cmV0dXJuIFUodCl8fHQudHlwZT09PVwiaW50ZXJwb2xhdGlvblwifHxmcih0KX1mdW5jdGlvbiBmcih0KXtyZXR1cm4gSW4odCkuc3RhcnRzV2l0aChcInByZVwiKX1mdW5jdGlvbiB3bih0LGUpe3ZhciBzLGk7bGV0IHI9bigpO2lmKHImJiF0LnByZXYmJigoaT0ocz10LnBhcmVudCk9PW51bGw/dm9pZCAwOnMudGFnRGVmaW5pdGlvbikhPW51bGwmJmkuaWdub3JlRmlyc3RMZikpcmV0dXJuIHQudHlwZT09PVwiaW50ZXJwb2xhdGlvblwiO3JldHVybiByO2Z1bmN0aW9uIG4oKXtyZXR1cm4ga2UodCl8fHQudHlwZT09PVwiYW5ndWxhckNvbnRyb2xGbG93QmxvY2tcIj8hMToodC50eXBlPT09XCJ0ZXh0XCJ8fHQudHlwZT09PVwiaW50ZXJwb2xhdGlvblwiKSYmdC5wcmV2JiYodC5wcmV2LnR5cGU9PT1cInRleHRcInx8dC5wcmV2LnR5cGU9PT1cImludGVycG9sYXRpb25cIik/ITA6IXQucGFyZW50fHx0LnBhcmVudC5jc3NEaXNwbGF5PT09XCJub25lXCI/ITE6aGUodC5wYXJlbnQpPyEwOiEoIXQucHJldiYmKHQucGFyZW50LnR5cGU9PT1cInJvb3RcInx8aGUodCkmJnQucGFyZW50fHxVKHQucGFyZW50KXx8SmUodC5wYXJlbnQsZSl8fCFraSh0LnBhcmVudC5jc3NEaXNwbGF5KSl8fHQucHJldiYmIUZpKHQucHJldi5jc3NEaXNwbGF5KSl9fWZ1bmN0aW9uIGJuKHQsZSl7cmV0dXJuIGtlKHQpfHx0LnR5cGU9PT1cImFuZ3VsYXJDb250cm9sRmxvd0Jsb2NrXCI/ITE6KHQudHlwZT09PVwidGV4dFwifHx0LnR5cGU9PT1cImludGVycG9sYXRpb25cIikmJnQubmV4dCYmKHQubmV4dC50eXBlPT09XCJ0ZXh0XCJ8fHQubmV4dC50eXBlPT09XCJpbnRlcnBvbGF0aW9uXCIpPyEwOiF0LnBhcmVudHx8dC5wYXJlbnQuY3NzRGlzcGxheT09PVwibm9uZVwiPyExOmhlKHQucGFyZW50KT8hMDohKCF0Lm5leHQmJih0LnBhcmVudC50eXBlPT09XCJyb290XCJ8fGhlKHQpJiZ0LnBhcmVudHx8VSh0LnBhcmVudCl8fEplKHQucGFyZW50LGUpfHwhQmkodC5wYXJlbnQuY3NzRGlzcGxheSkpfHx0Lm5leHQmJiFMaSh0Lm5leHQuY3NzRGlzcGxheSkpfWZ1bmN0aW9uIFRuKHQpe3JldHVybiBOaSh0LmNzc0Rpc3BsYXkpJiYhVSh0KX1mdW5jdGlvbiBRZSh0KXtyZXR1cm4ga2UodCl8fHQubmV4dCYmdC5zb3VyY2VTcGFuLmVuZCYmdC5zb3VyY2VTcGFuLmVuZC5saW5lKzE8dC5uZXh0LnNvdXJjZVNwYW4uc3RhcnQubGluZX1mdW5jdGlvbiB4bih0KXtyZXR1cm4gZHIodCl8fHQudHlwZT09PVwiZWxlbWVudFwiJiZ0LmNoaWxkcmVuLmxlbmd0aD4wJiYoW1wiYm9keVwiLFwic2NyaXB0XCIsXCJzdHlsZVwiXS5pbmNsdWRlcyh0Lm5hbWUpfHx0LmNoaWxkcmVuLnNvbWUoZT0+d2koZSkpKXx8dC5maXJzdENoaWxkJiZ0LmZpcnN0Q2hpbGQ9PT10Lmxhc3RDaGlsZCYmdC5maXJzdENoaWxkLnR5cGUhPT1cInRleHRcIiYmQm4odC5maXJzdENoaWxkKSYmKCF0Lmxhc3RDaGlsZC5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmV8fExuKHQubGFzdENoaWxkKSl9ZnVuY3Rpb24gZHIodCl7cmV0dXJuIHQudHlwZT09PVwiZWxlbWVudFwiJiZ0LmNoaWxkcmVuLmxlbmd0aD4wJiYoW1wiaHRtbFwiLFwiaGVhZFwiLFwidWxcIixcIm9sXCIsXCJzZWxlY3RcIl0uaW5jbHVkZXModC5uYW1lKXx8dC5jc3NEaXNwbGF5LnN0YXJ0c1dpdGgoXCJ0YWJsZVwiKSYmdC5jc3NEaXNwbGF5IT09XCJ0YWJsZS1jZWxsXCIpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiBGbih0KXx8dC5wcmV2JiZ5aSh0LnByZXYpfHxrbih0KX1mdW5jdGlvbiB5aSh0KXtyZXR1cm4gRm4odCl8fHQudHlwZT09PVwiZWxlbWVudFwiJiZ0LmZ1bGxOYW1lPT09XCJiclwifHxrbih0KX1mdW5jdGlvbiBrbih0KXtyZXR1cm4gQm4odCkmJkxuKHQpfWZ1bmN0aW9uIEJuKHQpe3JldHVybiB0Lmhhc0xlYWRpbmdTcGFjZXMmJih0LnByZXY/dC5wcmV2LnNvdXJjZVNwYW4uZW5kLmxpbmU8dC5zb3VyY2VTcGFuLnN0YXJ0LmxpbmU6dC5wYXJlbnQudHlwZT09PVwicm9vdFwifHx0LnBhcmVudC5zdGFydFNvdXJjZVNwYW4uZW5kLmxpbmU8dC5zb3VyY2VTcGFuLnN0YXJ0LmxpbmUpfWZ1bmN0aW9uIExuKHQpe3JldHVybiB0Lmhhc1RyYWlsaW5nU3BhY2VzJiYodC5uZXh0P3QubmV4dC5zb3VyY2VTcGFuLnN0YXJ0LmxpbmU+dC5zb3VyY2VTcGFuLmVuZC5saW5lOnQucGFyZW50LnR5cGU9PT1cInJvb3RcInx8dC5wYXJlbnQuZW5kU291cmNlU3BhbiYmdC5wYXJlbnQuZW5kU291cmNlU3Bhbi5zdGFydC5saW5lPnQuc291cmNlU3Bhbi5lbmQubGluZSl9ZnVuY3Rpb24gRm4odCl7c3dpdGNoKHQudHlwZSl7Y2FzZVwiaWVDb25kaXRpb25hbENvbW1lbnRcIjpjYXNlXCJjb21tZW50XCI6Y2FzZVwiZGlyZWN0aXZlXCI6cmV0dXJuITA7Y2FzZVwiZWxlbWVudFwiOnJldHVybltcInNjcmlwdFwiLFwic2VsZWN0XCJdLmluY2x1ZGVzKHQubmFtZSl9cmV0dXJuITF9ZnVuY3Rpb24geXQodCl7cmV0dXJuIHQubGFzdENoaWxkP3l0KHQubGFzdENoaWxkKTp0fWZ1bmN0aW9uIHdpKHQpe3ZhciBlO3JldHVybihlPXQuY2hpbGRyZW4pPT1udWxsP3ZvaWQgMDplLnNvbWUocj0+ci50eXBlIT09XCJ0ZXh0XCIpfWZ1bmN0aW9uIE5uKHQpe2lmKHQpc3dpdGNoKHQpe2Nhc2VcIm1vZHVsZVwiOmNhc2VcInRleHQvamF2YXNjcmlwdFwiOmNhc2VcInRleHQvYmFiZWxcIjpjYXNlXCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0XCI6cmV0dXJuXCJiYWJlbFwiO2Nhc2VcImFwcGxpY2F0aW9uL3gtdHlwZXNjcmlwdFwiOnJldHVyblwidHlwZXNjcmlwdFwiO2Nhc2VcInRleHQvbWFya2Rvd25cIjpyZXR1cm5cIm1hcmtkb3duXCI7Y2FzZVwidGV4dC9odG1sXCI6cmV0dXJuXCJodG1sXCI7Y2FzZVwidGV4dC94LWhhbmRsZWJhcnMtdGVtcGxhdGVcIjpyZXR1cm5cImdsaW1tZXJcIjtkZWZhdWx0OmlmKHQuZW5kc1dpdGgoXCJqc29uXCIpfHx0LmVuZHNXaXRoKFwiaW1wb3J0bWFwXCIpfHx0PT09XCJzcGVjdWxhdGlvbnJ1bGVzXCIpcmV0dXJuXCJqc29uXCJ9fWZ1bmN0aW9uIGJpKHQsZSl7bGV0e25hbWU6cixhdHRyTWFwOm59PXQ7aWYociE9PVwic2NyaXB0XCJ8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLFwic3JjXCIpKXJldHVybjtsZXR7dHlwZTpzLGxhbmc6aX09dC5hdHRyTWFwO3JldHVybiFpJiYhcz9cImJhYmVsXCI6QmUoZSx7bGFuZ3VhZ2U6aX0pPz9ObihzKX1mdW5jdGlvbiBUaSh0LGUpe2lmKCF3dCh0LGUpKXJldHVybjtsZXR7YXR0ck1hcDpyfT10O2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLFwic3JjXCIpKXJldHVybjtsZXR7dHlwZTpuLGxhbmc6c309cjtyZXR1cm4gQmUoZSx7bGFuZ3VhZ2U6c30pPz9ObihuKX1mdW5jdGlvbiB4aSh0LGUpe2lmKHQubmFtZSE9PVwic3R5bGVcIilyZXR1cm47bGV0e2xhbmc6cn09dC5hdHRyTWFwO3JldHVybiByP0JlKGUse2xhbmd1YWdlOnJ9KTpcImNzc1wifWZ1bmN0aW9uIGdyKHQsZSl7cmV0dXJuIGJpKHQsZSk/P3hpKHQsZSk/P1RpKHQsZSl9ZnVuY3Rpb24gWGUodCl7cmV0dXJuIHQ9PT1cImJsb2NrXCJ8fHQ9PT1cImxpc3QtaXRlbVwifHx0LnN0YXJ0c1dpdGgoXCJ0YWJsZVwiKX1mdW5jdGlvbiBraSh0KXtyZXR1cm4hWGUodCkmJnQhPT1cImlubGluZS1ibG9ja1wifWZ1bmN0aW9uIEJpKHQpe3JldHVybiFYZSh0KSYmdCE9PVwiaW5saW5lLWJsb2NrXCJ9ZnVuY3Rpb24gTGkodCl7cmV0dXJuIVhlKHQpfWZ1bmN0aW9uIEZpKHQpe3JldHVybiFYZSh0KX1mdW5jdGlvbiBOaSh0KXtyZXR1cm4hWGUodCkmJnQhPT1cImlubGluZS1ibG9ja1wifWZ1bmN0aW9uIGhlKHQpe3JldHVybiBJbih0KS5zdGFydHNXaXRoKFwicHJlXCIpfWZ1bmN0aW9uIFBpKHQsZSl7bGV0IHI9dDtmb3IoO3I7KXtpZihlKHIpKXJldHVybiEwO3I9ci5wYXJlbnR9cmV0dXJuITF9ZnVuY3Rpb24gUG4odCxlKXt2YXIgbjtpZihmZSh0LGUpKXJldHVyblwiYmxvY2tcIjtpZigoKG49dC5wcmV2KT09bnVsbD92b2lkIDA6bi50eXBlKT09PVwiY29tbWVudFwiKXtsZXQgcz10LnByZXYudmFsdWUubWF0Y2goL15cXHMqZGlzcGxheTpcXHMqKFthLXpdKylcXHMqJC91KTtpZihzKXJldHVybiBzWzFdfWxldCByPSExO2lmKHQudHlwZT09PVwiZWxlbWVudFwiJiZ0Lm5hbWVzcGFjZT09PVwic3ZnXCIpaWYoUGkodCxzPT5zLmZ1bGxOYW1lPT09XCJzdmc6Zm9yZWlnbk9iamVjdFwiKSlyPSEwO2Vsc2UgcmV0dXJuIHQubmFtZT09PVwic3ZnXCI/XCJpbmxpbmUtYmxvY2tcIjpcImJsb2NrXCI7c3dpdGNoKGUuaHRtbFdoaXRlc3BhY2VTZW5zaXRpdml0eSl7Y2FzZVwic3RyaWN0XCI6cmV0dXJuXCJpbmxpbmVcIjtjYXNlXCJpZ25vcmVcIjpyZXR1cm5cImJsb2NrXCI7ZGVmYXVsdDpyZXR1cm4gdC50eXBlPT09XCJlbGVtZW50XCImJighdC5uYW1lc3BhY2V8fHJ8fHBlKHQpKSYmX25bdC5uYW1lXXx8U259fWZ1bmN0aW9uIEluKHQpe3JldHVybiB0LnR5cGU9PT1cImVsZW1lbnRcIiYmKCF0Lm5hbWVzcGFjZXx8cGUodCkpJiZBblt0Lm5hbWVdfHxFbn1mdW5jdGlvbiBJaSh0KXtsZXQgZT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7Zm9yKGxldCByIG9mIHQuc3BsaXQoYFxuYCkpe2lmKHIubGVuZ3RoPT09MCljb250aW51ZTtsZXQgbj1OLmdldExlYWRpbmdXaGl0ZXNwYWNlQ291bnQocik7aWYobj09PTApcmV0dXJuIDA7ci5sZW5ndGghPT1uJiZuPGUmJihlPW4pfXJldHVybiBlPT09TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZPzA6ZX1mdW5jdGlvbiBDcih0LGU9SWkodCkpe3JldHVybiBlPT09MD90OnQuc3BsaXQoYFxuYCkubWFwKHI9PnIuc2xpY2UoZSkpLmpvaW4oYFxuYCl9ZnVuY3Rpb24gU3IodCl7cmV0dXJuIHcoITEsdyghMSx0LFwiJmFwb3M7XCIsXCInXCIpLFwiJnF1b3Q7XCIsJ1wiJyl9ZnVuY3Rpb24gUCh0KXtyZXR1cm4gU3IodC52YWx1ZSl9dmFyIFJpPW5ldyBTZXQoW1widGVtcGxhdGVcIixcInN0eWxlXCIsXCJzY3JpcHRcIl0pO2Z1bmN0aW9uIEplKHQsZSl7cmV0dXJuIGZlKHQsZSkmJiFSaS5oYXModC5mdWxsTmFtZSl9ZnVuY3Rpb24gZmUodCxlKXtyZXR1cm4gZS5wYXJzZXI9PT1cInZ1ZVwiJiZ0LnR5cGU9PT1cImVsZW1lbnRcIiYmdC5wYXJlbnQudHlwZT09PVwicm9vdFwiJiZ0LmZ1bGxOYW1lLnRvTG93ZXJDYXNlKCkhPT1cImh0bWxcIn1mdW5jdGlvbiB3dCh0LGUpe3JldHVybiBmZSh0LGUpJiYoSmUodCxlKXx8dC5hdHRyTWFwLmxhbmcmJnQuYXR0ck1hcC5sYW5nIT09XCJodG1sXCIpfWZ1bmN0aW9uIFJuKHQpe2xldCBlPXQuZnVsbE5hbWU7cmV0dXJuIGUuY2hhckF0KDApPT09XCIjXCJ8fGU9PT1cInNsb3Qtc2NvcGVcInx8ZT09PVwidi1zbG90XCJ8fGUuc3RhcnRzV2l0aChcInYtc2xvdDpcIil9ZnVuY3Rpb24gT24odCxlKXtsZXQgcj10LnBhcmVudDtpZighZmUocixlKSlyZXR1cm4hMTtsZXQgbj1yLmZ1bGxOYW1lLHM9dC5mdWxsTmFtZTtyZXR1cm4gbj09PVwic2NyaXB0XCImJnM9PT1cInNldHVwXCJ8fG49PT1cInN0eWxlXCImJnM9PT1cInZhcnNcIn1mdW5jdGlvbiBidCh0LGU9dC52YWx1ZSl7cmV0dXJuIHQucGFyZW50LmlzV2hpdGVzcGFjZVNlbnNpdGl2ZT90LnBhcmVudC5pc0luZGVudGF0aW9uU2Vuc2l0aXZlP0IoZSk6QihDcihtcihlKSksUyk6cShFLE4uc3BsaXQoZSkpfWZ1bmN0aW9uIFR0KHQsZSl7cmV0dXJuIGZlKHQsZSkmJnQubmFtZT09PVwic2NyaXB0XCJ9dmFyIF9yPS9cXHtcXHsoLis/KVxcfVxcfS9zdTthc3luYyBmdW5jdGlvbiAkbih0LGUpe2xldCByPVtdO2ZvcihsZXRbbixzXW9mIHQuc3BsaXQoX3IpLmVudHJpZXMoKSlpZihuJTI9PT0wKXIucHVzaChCKHMpKTtlbHNlIHRyeXtyLnB1c2goXyhbXCJ7e1wiLGsoW0UsYXdhaXQgVChzLGUse3BhcnNlcjpcIl9fbmdfaW50ZXJwb2xhdGlvblwiLF9faXNJbkh0bWxJbnRlcnBvbGF0aW9uOiEwfSldKSxFLFwifX1cIl0pKX1jYXRjaHtyLnB1c2goXCJ7e1wiLEIocyksXCJ9fVwiKX1yZXR1cm4gcn1mdW5jdGlvbiBFcih7cGFyc2VyOnR9KXtyZXR1cm4oZSxyLG4pPT5UKFAobi5ub2RlKSxlLHtwYXJzZXI6dH0sWSl9dmFyIE9pPUVyKHtwYXJzZXI6XCJfX25nX2FjdGlvblwifSksJGk9RXIoe3BhcnNlcjpcIl9fbmdfYmluZGluZ1wifSksTWk9RXIoe3BhcnNlcjpcIl9fbmdfZGlyZWN0aXZlXCJ9KTtmdW5jdGlvbiBxaSh0LGUpe2lmKGUucGFyc2VyIT09XCJhbmd1bGFyXCIpcmV0dXJuO2xldHtub2RlOnJ9PXQsbj1yLmZ1bGxOYW1lO2lmKG4uc3RhcnRzV2l0aChcIihcIikmJm4uZW5kc1dpdGgoXCIpXCIpfHxuLnN0YXJ0c1dpdGgoXCJvbi1cIikpcmV0dXJuIE9pO2lmKG4uc3RhcnRzV2l0aChcIltcIikmJm4uZW5kc1dpdGgoXCJdXCIpfHwvXmJpbmQoPzpvbik/LS91LnRlc3Qobil8fC9ebmctKD86aWZ8c2hvd3xoaWRlfGNsYXNzfHN0eWxlKSQvdS50ZXN0KG4pKXJldHVybiAkaTtpZihuLnN0YXJ0c1dpdGgoXCIqXCIpKXJldHVybiBNaTtsZXQgcz1QKHIpO2lmKC9eaTE4big/Oi0uKyk/JC91LnRlc3QobikpcmV0dXJuKCk9PmNlKEV0KGJ0KHIscy50cmltKCkpKSwhcy5pbmNsdWRlcyhcIkBAXCIpKTtpZihfci50ZXN0KHMpKXJldHVybiBpPT4kbihzLGkpfXZhciBNbj1xaTtmdW5jdGlvbiBIaSh0LGUpe2xldHtub2RlOnJ9PXQsbj1QKHIpO2lmKHIuZnVsbE5hbWU9PT1cImNsYXNzXCImJiFlLnBhcmVudFBhcnNlciYmIW4uaW5jbHVkZXMoXCJ7e1wiKSlyZXR1cm4oKT0+bi50cmltKCkuc3BsaXQoL1xccysvdSkuam9pbihcIiBcIil9dmFyIHFuPUhpO2Z1bmN0aW9uIEhuKHQpe3JldHVybiB0PT09XCJcdFwifHx0PT09YFxuYHx8dD09PVwiXFxmXCJ8fHQ9PT1cIlxcclwifHx0PT09XCIgXCJ9dmFyIFZpPS9eWyBcXHRcXG5cXHJcXHUwMDBjXSsvLFVpPS9eWywgXFx0XFxuXFxyXFx1MDAwY10rLyxXaT0vXlteIFxcdFxcblxcclxcdTAwMGNdKy8semk9L1ssXSskLyxWbj0vXlxcZCskLyxHaT0vXi0/KD86WzAtOV0rfFswLTldKlxcLlswLTldKykoPzpbZUVdWystXT9bMC05XSspPyQvO2Z1bmN0aW9uIFlpKHQpe2xldCBlPXQubGVuZ3RoLHIsbixzLGksYSxvPTAsdTtmdW5jdGlvbiBwKEMpe2xldCBBLEQ9Qy5leGVjKHQuc3Vic3RyaW5nKG8pKTtpZihEKXJldHVybltBXT1ELG8rPUEubGVuZ3RoLEF9bGV0IGw9W107Zm9yKDs7KXtpZihwKFVpKSxvPj1lKXtpZihsLmxlbmd0aD09PTApdGhyb3cgbmV3IEVycm9yKFwiTXVzdCBjb250YWluIG9uZSBvciBtb3JlIGltYWdlIGNhbmRpZGF0ZSBzdHJpbmdzLlwiKTtyZXR1cm4gbH11PW8scj1wKFdpKSxuPVtdLHIuc2xpY2UoLTEpPT09XCIsXCI/KHI9ci5yZXBsYWNlKHppLFwiXCIpLGQoKSk6ZigpfWZ1bmN0aW9uIGYoKXtmb3IocChWaSkscz1cIlwiLGk9XCJpbiBkZXNjcmlwdG9yXCI7Oyl7aWYoYT10LmNoYXJBdChvKSxpPT09XCJpbiBkZXNjcmlwdG9yXCIpaWYoSG4oYSkpcyYmKG4ucHVzaChzKSxzPVwiXCIsaT1cImFmdGVyIGRlc2NyaXB0b3JcIik7ZWxzZSBpZihhPT09XCIsXCIpe28rPTEscyYmbi5wdXNoKHMpLGQoKTtyZXR1cm59ZWxzZSBpZihhPT09XCIoXCIpcys9YSxpPVwiaW4gcGFyZW5zXCI7ZWxzZSBpZihhPT09XCJcIil7cyYmbi5wdXNoKHMpLGQoKTtyZXR1cm59ZWxzZSBzKz1hO2Vsc2UgaWYoaT09PVwiaW4gcGFyZW5zXCIpaWYoYT09PVwiKVwiKXMrPWEsaT1cImluIGRlc2NyaXB0b3JcIjtlbHNlIGlmKGE9PT1cIlwiKXtuLnB1c2gocyksZCgpO3JldHVybn1lbHNlIHMrPWE7ZWxzZSBpZihpPT09XCJhZnRlciBkZXNjcmlwdG9yXCImJiFIbihhKSlpZihhPT09XCJcIil7ZCgpO3JldHVybn1lbHNlIGk9XCJpbiBkZXNjcmlwdG9yXCIsby09MTtvKz0xfX1mdW5jdGlvbiBkKCl7bGV0IEM9ITEsQSxELFIsRixjPXt9LGcseSxNLHgsVjtmb3IoRj0wO0Y8bi5sZW5ndGg7RisrKWc9bltGXSx5PWdbZy5sZW5ndGgtMV0sTT1nLnN1YnN0cmluZygwLGcubGVuZ3RoLTEpLHg9cGFyc2VJbnQoTSwxMCksVj1wYXJzZUZsb2F0KE0pLFZuLnRlc3QoTSkmJnk9PT1cIndcIj8oKEF8fEQpJiYoQz0hMCkseD09PTA/Qz0hMDpBPXgpOkdpLnRlc3QoTSkmJnk9PT1cInhcIj8oKEF8fER8fFIpJiYoQz0hMCksVjwwP0M9ITA6RD1WKTpWbi50ZXN0KE0pJiZ5PT09XCJoXCI/KChSfHxEKSYmKEM9ITApLHg9PT0wP0M9ITA6Uj14KTpDPSEwO2lmKCFDKWMuc291cmNlPXt2YWx1ZTpyLHN0YXJ0T2Zmc2V0OnV9LEEmJihjLndpZHRoPXt2YWx1ZTpBfSksRCYmKGMuZGVuc2l0eT17dmFsdWU6RH0pLFImJihjLmhlaWdodD17dmFsdWU6Un0pLGwucHVzaChjKTtlbHNlIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzcmNzZXQgZGVzY3JpcHRvciBmb3VuZCBpbiBcIiR7dH1cIiBhdCBcIiR7Z31cIi5gKX19dmFyIFVuPVlpO2Z1bmN0aW9uIGppKHQpe2lmKHQubm9kZS5mdWxsTmFtZT09PVwic3Jjc2V0XCImJih0LnBhcmVudC5mdWxsTmFtZT09PVwiaW1nXCJ8fHQucGFyZW50LmZ1bGxOYW1lPT09XCJzb3VyY2VcIikpcmV0dXJuKCk9PlFpKFAodC5ub2RlKSl9dmFyIFduPXt3aWR0aDpcIndcIixoZWlnaHQ6XCJoXCIsZGVuc2l0eTpcInhcIn0sS2k9T2JqZWN0LmtleXMoV24pO2Z1bmN0aW9uIFFpKHQpe2xldCBlPVVuKHQpLHI9S2kuZmlsdGVyKGw9PmUuc29tZShmPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZixsKSkpO2lmKHIubGVuZ3RoPjEpdGhyb3cgbmV3IEVycm9yKFwiTWl4ZWQgZGVzY3JpcHRvciBpbiBzcmNzZXQgaXMgbm90IHN1cHBvcnRlZFwiKTtsZXRbbl09cixzPVduW25dLGk9ZS5tYXAobD0+bC5zb3VyY2UudmFsdWUpLGE9TWF0aC5tYXgoLi4uaS5tYXAobD0+bC5sZW5ndGgpKSxvPWUubWFwKGw9Pmxbbl0/U3RyaW5nKGxbbl0udmFsdWUpOlwiXCIpLHU9by5tYXAobD0+e2xldCBmPWwuaW5kZXhPZihcIi5cIik7cmV0dXJuIGY9PT0tMT9sLmxlbmd0aDpmfSkscD1NYXRoLm1heCguLi51KTtyZXR1cm4gY2UocShbXCIsXCIsRV0saS5tYXAoKGwsZik9PntsZXQgZD1bbF0sQz1vW2ZdO2lmKEMpe2xldCBBPWEtbC5sZW5ndGgrMSxEPXAtdVtmXSxSPVwiIFwiLnJlcGVhdChBK0QpO2QucHVzaChsZShSLFwiIFwiKSxDK3MpfXJldHVybiBkfSkpKX12YXIgem49amk7ZnVuY3Rpb24gR24odCxlKXtsZXR7bm9kZTpyfT10LG49UCh0Lm5vZGUpLnRyaW0oKTtpZihyLmZ1bGxOYW1lPT09XCJzdHlsZVwiJiYhZS5wYXJlbnRQYXJzZXImJiFuLmluY2x1ZGVzKFwie3tcIikpcmV0dXJuIGFzeW5jIHM9PmNlKGF3YWl0IHMobix7cGFyc2VyOlwiY3NzXCIsX19pc0hUTUxTdHlsZUF0dHJpYnV0ZTohMH0pKX12YXIgQXI9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gWGkodCxlKXtsZXR7cm9vdDpyfT10O3JldHVybiBBci5oYXMocil8fEFyLnNldChyLHIuY2hpbGRyZW4uc29tZShuPT5UdChuLGUpJiZbXCJ0c1wiLFwidHlwZXNjcmlwdFwiXS5pbmNsdWRlcyhuLmF0dHJNYXAubGFuZykpKSxBci5nZXQocil9dmFyIExlPVhpO2Z1bmN0aW9uIFluKHQsZSxyKXtsZXR7bm9kZTpufT1yLHM9UChuKTtyZXR1cm4gVChgdHlwZSBUPCR7c30+ID0gYW55YCx0LHtwYXJzZXI6XCJiYWJlbC10c1wiLF9faXNFbWJlZGRlZFR5cGVzY3JpcHRHZW5lcmljUGFyYW1ldGVyczohMH0sWSl9ZnVuY3Rpb24gam4odCxlLHtwYXJzZVdpdGhUczpyfSl7cmV0dXJuIFQoYGZ1bmN0aW9uIF8oJHt0fSkge31gLGUse3BhcnNlcjpyP1wiYmFiZWwtdHNcIjpcImJhYmVsXCIsX19pc1Z1ZUJpbmRpbmdzOiEwfSl9YXN5bmMgZnVuY3Rpb24gS24odCxlLHIsbil7bGV0IHM9UChyLm5vZGUpLHtsZWZ0Omksb3BlcmF0b3I6YSxyaWdodDpvfT1KaShzKSx1PUxlKHIsbik7cmV0dXJuW18oYXdhaXQgVChgZnVuY3Rpb24gXygke2l9KSB7fWAsdCx7cGFyc2VyOnU/XCJiYWJlbC10c1wiOlwiYmFiZWxcIixfX2lzVnVlRm9yQmluZGluZ0xlZnQ6ITB9KSksXCIgXCIsYSxcIiBcIixhd2FpdCBUKG8sdCx7cGFyc2VyOnU/XCJfX3RzX2V4cHJlc3Npb25cIjpcIl9fanNfZXhwcmVzc2lvblwifSldfWZ1bmN0aW9uIEppKHQpe2xldCBlPS8oLio/KVxccysoaW58b2YpXFxzKyguKikvc3Uscj0vLChbXixcXF19XSopKD86LChbXixcXF19XSopKT8kL3Usbj0vXlxcKHxcXCkkL2d1LHM9dC5tYXRjaChlKTtpZighcylyZXR1cm47bGV0IGk9e307aWYoaS5mb3I9c1szXS50cmltKCksIWkuZm9yKXJldHVybjtsZXQgYT13KCExLHNbMV0udHJpbSgpLG4sXCJcIiksbz1hLm1hdGNoKHIpO28/KGkuYWxpYXM9YS5yZXBsYWNlKHIsXCJcIiksaS5pdGVyYXRvcjE9b1sxXS50cmltKCksb1syXSYmKGkuaXRlcmF0b3IyPW9bMl0udHJpbSgpKSk6aS5hbGlhcz1hO2xldCB1PVtpLmFsaWFzLGkuaXRlcmF0b3IxLGkuaXRlcmF0b3IyXTtpZighdS5zb21lKChwLGwpPT4hcCYmKGw9PT0wfHx1LnNsaWNlKGwrMSkuc29tZShCb29sZWFuKSkpKXJldHVybntsZWZ0OnUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIsXCIpLG9wZXJhdG9yOnNbMl0scmlnaHQ6aS5mb3J9fWZ1bmN0aW9uIFppKHQsZSl7aWYoZS5wYXJzZXIhPT1cInZ1ZVwiKXJldHVybjtsZXR7bm9kZTpyfT10LG49ci5mdWxsTmFtZTtpZihuPT09XCJ2LWZvclwiKXJldHVybiBLbjtpZihuPT09XCJnZW5lcmljXCImJlR0KHIucGFyZW50LGUpKXJldHVybiBZbjtsZXQgcz1QKHIpLGk9TGUodCxlKTtpZihSbihyKXx8T24ocixlKSlyZXR1cm4gYT0+am4ocyxhLHtwYXJzZVdpdGhUczppfSk7aWYobi5zdGFydHNXaXRoKFwiQFwiKXx8bi5zdGFydHNXaXRoKFwidi1vbjpcIikpcmV0dXJuIGE9PmVhKHMsYSx7cGFyc2VXaXRoVHM6aX0pO2lmKG4uc3RhcnRzV2l0aChcIjpcIil8fG4uc3RhcnRzV2l0aChcInYtYmluZDpcIikpcmV0dXJuIGE9PnRhKHMsYSx7cGFyc2VXaXRoVHM6aX0pO2lmKG4uc3RhcnRzV2l0aChcInYtXCIpKXJldHVybiBhPT5RbihzLGEse3BhcnNlV2l0aFRzOml9KX1hc3luYyBmdW5jdGlvbiBlYSh0LGUse3BhcnNlV2l0aFRzOnJ9KXt2YXIgbjt0cnl7cmV0dXJuIGF3YWl0IFFuKHQsZSx7cGFyc2VXaXRoVHM6cn0pfWNhdGNoKHMpe2lmKCgobj1zLmNhdXNlKT09bnVsbD92b2lkIDA6bi5jb2RlKSE9PVwiQkFCRUxfUEFSU0VSX1NZTlRBWF9FUlJPUlwiKXRocm93IHN9cmV0dXJuIFQodCxlLHtwYXJzZXI6cj9cIl9fdnVlX3RzX2V2ZW50X2JpbmRpbmdcIjpcIl9fdnVlX2V2ZW50X2JpbmRpbmdcIn0sWSl9ZnVuY3Rpb24gdGEodCxlLHtwYXJzZVdpdGhUczpyfSl7cmV0dXJuIFQodCxlLHtwYXJzZXI6cj9cIl9fdnVlX3RzX2V4cHJlc3Npb25cIjpcIl9fdnVlX2V4cHJlc3Npb25cIn0sWSl9ZnVuY3Rpb24gUW4odCxlLHtwYXJzZVdpdGhUczpyfSl7cmV0dXJuIFQodCxlLHtwYXJzZXI6cj9cIl9fdHNfZXhwcmVzc2lvblwiOlwiX19qc19leHByZXNzaW9uXCJ9LFkpfXZhciBYbj1aaTtmdW5jdGlvbiByYSh0LGUpe2xldHtub2RlOnJ9PXQ7aWYoci52YWx1ZSl7aWYoL15QUkVUVElFUl9IVE1MX1BMQUNFSE9MREVSX1xcZCtfXFxkK19JTl9KUyQvdS50ZXN0KGUub3JpZ2luYWxUZXh0LnNsaWNlKHIudmFsdWVTcGFuLnN0YXJ0Lm9mZnNldCxyLnZhbHVlU3Bhbi5lbmQub2Zmc2V0KSl8fGUucGFyc2VyPT09XCJsd2NcIiYmci52YWx1ZS5zdGFydHNXaXRoKFwie1wiKSYmci52YWx1ZS5lbmRzV2l0aChcIn1cIikpcmV0dXJuW3IucmF3TmFtZSxcIj1cIixyLnZhbHVlXTtmb3IobGV0IG4gb2Zbem4sR24scW4sWG4sTW5dKXtsZXQgcz1uKHQsZSk7aWYocylyZXR1cm4gbmEocyl9fX1mdW5jdGlvbiBuYSh0KXtyZXR1cm4gYXN5bmMoZSxyLG4scyk9PntsZXQgaT1hd2FpdCB0KGUscixuLHMpO2lmKGkpcmV0dXJuIGk9bHIoaSxhPT50eXBlb2YgYT09XCJzdHJpbmdcIj93KCExLGEsJ1wiJyxcIiZxdW90O1wiKTphKSxbbi5ub2RlLnJhd05hbWUsJz1cIicsXyhpKSwnXCInXX19dmFyIEpuPXJhO3ZhciBabj1uZXcgUHJveHkoKCk9Pnt9LHtnZXQ6KCk9PlpufSksRHI9Wm47ZnVuY3Rpb24gc2EodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjB9dmFyIEZlPXNhO2Z1bmN0aW9uIFgodCl7cmV0dXJuIHQuc291cmNlU3Bhbi5zdGFydC5vZmZzZXR9ZnVuY3Rpb24gSih0KXtyZXR1cm4gdC5zb3VyY2VTcGFuLmVuZC5vZmZzZXR9ZnVuY3Rpb24gWmUodCxlKXtyZXR1cm5bdC5pc1NlbGZDbG9zaW5nP1wiXCI6aWEodCxlKSxkZSh0LGUpXX1mdW5jdGlvbiBpYSh0LGUpe3JldHVybiB0Lmxhc3RDaGlsZCYmU2UodC5sYXN0Q2hpbGQpP1wiXCI6W2FhKHQsZSkseHQodCxlKV19ZnVuY3Rpb24gZGUodCxlKXtyZXR1cm4odC5uZXh0P2oodC5uZXh0KTpDZSh0LnBhcmVudCkpP1wiXCI6W2dlKHQsZSksVyh0LGUpXX1mdW5jdGlvbiBhYSh0LGUpe3JldHVybiBDZSh0KT9nZSh0Lmxhc3RDaGlsZCxlKTpcIlwifWZ1bmN0aW9uIFcodCxlKXtyZXR1cm4gU2UodCk/eHQodC5wYXJlbnQsZSk6ZXQodCk/a3QodC5uZXh0LGUpOlwiXCJ9ZnVuY3Rpb24geHQodCxlKXtpZihEcighdC5pc1NlbGZDbG9zaW5nKSx0cyh0LGUpKXJldHVyblwiXCI7c3dpdGNoKHQudHlwZSl7Y2FzZVwiaWVDb25kaXRpb25hbENvbW1lbnRcIjpyZXR1cm5cIjwhXCI7Y2FzZVwiZWxlbWVudFwiOmlmKHQuaGFzSHRtQ29tcG9uZW50Q2xvc2luZ1RhZylyZXR1cm5cIjwvL1wiO2RlZmF1bHQ6cmV0dXJuYDwvJHt0LnJhd05hbWV9YH19ZnVuY3Rpb24gZ2UodCxlKXtpZih0cyh0LGUpKXJldHVyblwiXCI7c3dpdGNoKHQudHlwZSl7Y2FzZVwiaWVDb25kaXRpb25hbENvbW1lbnRcIjpjYXNlXCJpZUNvbmRpdGlvbmFsRW5kQ29tbWVudFwiOnJldHVyblwiW2VuZGlmXS0tPlwiO2Nhc2VcImllQ29uZGl0aW9uYWxTdGFydENvbW1lbnRcIjpyZXR1cm5cIl0+PCEtLT5cIjtjYXNlXCJpbnRlcnBvbGF0aW9uXCI6cmV0dXJuXCJ9fVwiO2Nhc2VcImFuZ3VsYXJJY3VFeHByZXNzaW9uXCI6cmV0dXJuXCJ9XCI7Y2FzZVwiZWxlbWVudFwiOmlmKHQuaXNTZWxmQ2xvc2luZylyZXR1cm5cIi8+XCI7ZGVmYXVsdDpyZXR1cm5cIj5cIn19ZnVuY3Rpb24gdHModCxlKXtyZXR1cm4hdC5pc1NlbGZDbG9zaW5nJiYhdC5lbmRTb3VyY2VTcGFuJiYobWUodCl8fER0KHQucGFyZW50LGUpKX1mdW5jdGlvbiBqKHQpe3JldHVybiB0LnByZXYmJnQucHJldi50eXBlIT09XCJkb2NUeXBlXCImJnQudHlwZSE9PVwiYW5ndWxhckNvbnRyb2xGbG93QmxvY2tcIiYmIU8odC5wcmV2KSYmdC5pc0xlYWRpbmdTcGFjZVNlbnNpdGl2ZSYmIXQuaGFzTGVhZGluZ1NwYWNlc31mdW5jdGlvbiBDZSh0KXt2YXIgZTtyZXR1cm4oKGU9dC5sYXN0Q2hpbGQpPT1udWxsP3ZvaWQgMDplLmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZSkmJiF0Lmxhc3RDaGlsZC5oYXNUcmFpbGluZ1NwYWNlcyYmIU8oeXQodC5sYXN0Q2hpbGQpKSYmIWhlKHQpfWZ1bmN0aW9uIFNlKHQpe3JldHVybiF0Lm5leHQmJiF0Lmhhc1RyYWlsaW5nU3BhY2VzJiZ0LmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZSYmTyh5dCh0KSl9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIHQubmV4dCYmIU8odC5uZXh0KSYmTyh0KSYmdC5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmUmJiF0Lmhhc1RyYWlsaW5nU3BhY2VzfWZ1bmN0aW9uIG9hKHQpe2xldCBlPXQudHJpbSgpLm1hdGNoKC9ecHJldHRpZXItaWdub3JlLWF0dHJpYnV0ZSg/OlxccysoLispKT8kL3N1KTtyZXR1cm4gZT9lWzFdP2VbMV0uc3BsaXQoL1xccysvdSk6ITA6ITF9ZnVuY3Rpb24gdHQodCl7cmV0dXJuIXQucHJldiYmdC5pc0xlYWRpbmdTcGFjZVNlbnNpdGl2ZSYmIXQuaGFzTGVhZGluZ1NwYWNlc31mdW5jdGlvbiB1YSh0LGUscil7dmFyIGY7bGV0e25vZGU6bn09dDtpZighRmUobi5hdHRycykpcmV0dXJuIG4uaXNTZWxmQ2xvc2luZz9cIiBcIjpcIlwiO2xldCBzPSgoZj1uLnByZXYpPT1udWxsP3ZvaWQgMDpmLnR5cGUpPT09XCJjb21tZW50XCImJm9hKG4ucHJldi52YWx1ZSksaT10eXBlb2Ygcz09XCJib29sZWFuXCI/KCk9PnM6QXJyYXkuaXNBcnJheShzKT9kPT5zLmluY2x1ZGVzKGQucmF3TmFtZSk6KCk9PiExLGE9dC5tYXAoKHtub2RlOmR9KT0+aShkKT9CKGUub3JpZ2luYWxUZXh0LnNsaWNlKFgoZCksSihkKSkpOnIoKSxcImF0dHJzXCIpLG89bi50eXBlPT09XCJlbGVtZW50XCImJm4uZnVsbE5hbWU9PT1cInNjcmlwdFwiJiZuLmF0dHJzLmxlbmd0aD09PTEmJm4uYXR0cnNbMF0uZnVsbE5hbWU9PT1cInNyY1wiJiZuLmNoaWxkcmVuLmxlbmd0aD09PTAscD1lLnNpbmdsZUF0dHJpYnV0ZVBlckxpbmUmJm4uYXR0cnMubGVuZ3RoPjEmJiFmZShuLGUpP1M6RSxsPVtrKFtvP1wiIFwiOkUscShwLGEpXSldO3JldHVybiBuLmZpcnN0Q2hpbGQmJnR0KG4uZmlyc3RDaGlsZCl8fG4uaXNTZWxmQ2xvc2luZyYmQ2Uobi5wYXJlbnQpfHxvP2wucHVzaChuLmlzU2VsZkNsb3Npbmc/XCIgXCI6XCJcIik6bC5wdXNoKGUuYnJhY2tldFNhbWVMaW5lP24uaXNTZWxmQ2xvc2luZz9cIiBcIjpcIlwiOm4uaXNTZWxmQ2xvc2luZz9FOnYpLGx9ZnVuY3Rpb24gbGEodCl7cmV0dXJuIHQuZmlyc3RDaGlsZCYmdHQodC5maXJzdENoaWxkKT9cIlwiOkJ0KHQpfWZ1bmN0aW9uIHJ0KHQsZSxyKXtsZXR7bm9kZTpufT10O3JldHVybltfZShuLGUpLHVhKHQsZSxyKSxuLmlzU2VsZkNsb3Npbmc/XCJcIjpsYShuKV19ZnVuY3Rpb24gX2UodCxlKXtyZXR1cm4gdC5wcmV2JiZldCh0LnByZXYpP1wiXCI6W3oodCxlKSxrdCh0LGUpXX1mdW5jdGlvbiB6KHQsZSl7cmV0dXJuIHR0KHQpP0J0KHQucGFyZW50KTpqKHQpP2dlKHQucHJldixlKTpcIlwifXZhciBlcz1cIjwhZG9jdHlwZVwiO2Z1bmN0aW9uIGt0KHQsZSl7c3dpdGNoKHQudHlwZSl7Y2FzZVwiaWVDb25kaXRpb25hbENvbW1lbnRcIjpjYXNlXCJpZUNvbmRpdGlvbmFsU3RhcnRDb21tZW50XCI6cmV0dXJuYDwhLS1baWYgJHt0LmNvbmRpdGlvbn1gO2Nhc2VcImllQ29uZGl0aW9uYWxFbmRDb21tZW50XCI6cmV0dXJuXCI8IS0tPCFcIjtjYXNlXCJpbnRlcnBvbGF0aW9uXCI6cmV0dXJuXCJ7e1wiO2Nhc2VcImRvY1R5cGVcIjp7aWYodC52YWx1ZT09PVwiaHRtbFwiKXtsZXQgbj1lLmZpbGVwYXRoPz9cIlwiO2lmKC9cXC5odG1sPyQvdS50ZXN0KG4pKXJldHVybiBlc31yZXR1cm4gZS5vcmlnaW5hbFRleHQuc2xpY2UoWCh0KSxKKHQpKS5zbGljZSgwLGVzLmxlbmd0aCl9Y2FzZVwiYW5ndWxhckljdUV4cHJlc3Npb25cIjpyZXR1cm5cIntcIjtjYXNlXCJlbGVtZW50XCI6aWYodC5jb25kaXRpb24pcmV0dXJuYDwhLS1baWYgJHt0LmNvbmRpdGlvbn1dPjwhLS0+PCR7dC5yYXdOYW1lfWA7ZGVmYXVsdDpyZXR1cm5gPCR7dC5yYXdOYW1lfWB9fWZ1bmN0aW9uIEJ0KHQpe3N3aXRjaChEcighdC5pc1NlbGZDbG9zaW5nKSx0LnR5cGUpe2Nhc2VcImllQ29uZGl0aW9uYWxDb21tZW50XCI6cmV0dXJuXCJdPlwiO2Nhc2VcImVsZW1lbnRcIjppZih0LmNvbmRpdGlvbilyZXR1cm5cIj48IS0tPCFbZW5kaWZdLS0+XCI7ZGVmYXVsdDpyZXR1cm5cIj5cIn19ZnVuY3Rpb24gY2EodCxlKXtpZighdC5lbmRTb3VyY2VTcGFuKXJldHVyblwiXCI7bGV0IHI9dC5zdGFydFNvdXJjZVNwYW4uZW5kLm9mZnNldDt0LmZpcnN0Q2hpbGQmJnR0KHQuZmlyc3RDaGlsZCkmJihyLT1CdCh0KS5sZW5ndGgpO2xldCBuPXQuZW5kU291cmNlU3Bhbi5zdGFydC5vZmZzZXQ7cmV0dXJuIHQubGFzdENoaWxkJiZTZSh0Lmxhc3RDaGlsZCk/bis9eHQodCxlKS5sZW5ndGg6Q2UodCkmJihuLT1nZSh0Lmxhc3RDaGlsZCxlKS5sZW5ndGgpLGUub3JpZ2luYWxUZXh0LnNsaWNlKHIsbil9dmFyIEx0PWNhO3ZhciBwYT1uZXcgU2V0KFtcImlmXCIsXCJlbHNlIGlmXCIsXCJmb3JcIixcInN3aXRjaFwiLFwiY2FzZVwiXSk7ZnVuY3Rpb24gaGEodCxlKXtsZXR7bm9kZTpyfT10O3N3aXRjaChyLnR5cGUpe2Nhc2VcImVsZW1lbnRcIjppZihVKHIpfHxyLnR5cGU9PT1cImludGVycG9sYXRpb25cIilyZXR1cm47aWYoIXIuaXNTZWxmQ2xvc2luZyYmd3QocixlKSl7bGV0IG49Z3IocixlKTtyZXR1cm4gbj9hc3luYyhzLGkpPT57bGV0IGE9THQocixlKSxvPS9eXFxzKiQvdS50ZXN0KGEpLHU9XCJcIjtyZXR1cm4gb3x8KHU9YXdhaXQgcyhtcihhKSx7cGFyc2VyOm4sX19lbWJlZGRlZEluSHRtbDohMH0pLG89dT09PVwiXCIpLFt6KHIsZSksXyhydCh0LGUsaSkpLG8/XCJcIjpTLHUsbz9cIlwiOlMsWmUocixlKSxXKHIsZSldfTp2b2lkIDB9YnJlYWs7Y2FzZVwidGV4dFwiOmlmKFUoci5wYXJlbnQpKXtsZXQgbj1ncihyLnBhcmVudCxlKTtpZihuKXJldHVybiBhc3luYyBzPT57bGV0IGk9bj09PVwibWFya2Rvd25cIj9DcihyLnZhbHVlLnJlcGxhY2UoL15bXlxcU1xcbl0qXFxuL3UsXCJcIikpOnIudmFsdWUsYT17cGFyc2VyOm4sX19lbWJlZGRlZEluSHRtbDohMH07aWYoZS5wYXJzZXI9PT1cImh0bWxcIiYmbj09PVwiYmFiZWxcIil7bGV0IG89XCJzY3JpcHRcIix7YXR0ck1hcDp1fT1yLnBhcmVudDt1JiYodS50eXBlPT09XCJtb2R1bGVcInx8dS50eXBlPT09XCJ0ZXh0L2JhYmVsXCImJnVbXCJkYXRhLXR5cGVcIl09PT1cIm1vZHVsZVwiKSYmKG89XCJtb2R1bGVcIiksYS5fX2JhYmVsU291cmNlVHlwZT1vfXJldHVybltuZSx6KHIsZSksYXdhaXQgcyhpLGEpLFcocixlKV19fWVsc2UgaWYoci5wYXJlbnQudHlwZT09PVwiaW50ZXJwb2xhdGlvblwiKXJldHVybiBhc3luYyBuPT57bGV0IHM9e19faXNJbkh0bWxJbnRlcnBvbGF0aW9uOiEwLF9fZW1iZWRkZWRJbkh0bWw6ITB9O3JldHVybiBlLnBhcnNlcj09PVwiYW5ndWxhclwiP3MucGFyc2VyPVwiX19uZ19pbnRlcnBvbGF0aW9uXCI6ZS5wYXJzZXI9PT1cInZ1ZVwiP3MucGFyc2VyPUxlKHQsZSk/XCJfX3Z1ZV90c19leHByZXNzaW9uXCI6XCJfX3Z1ZV9leHByZXNzaW9uXCI6cy5wYXJzZXI9XCJfX2pzX2V4cHJlc3Npb25cIixbayhbRSxhd2FpdCBuKHIudmFsdWUscyldKSxyLnBhcmVudC5uZXh0JiZqKHIucGFyZW50Lm5leHQpP1wiIFwiOkVdfTticmVhaztjYXNlXCJhdHRyaWJ1dGVcIjpyZXR1cm4gSm4odCxlKTtjYXNlXCJmcm9udC1tYXR0ZXJcIjpyZXR1cm4gbj0+ZG4ocixuKTtjYXNlXCJhbmd1bGFyQ29udHJvbEZsb3dCbG9ja1BhcmFtZXRlcnNcIjpyZXR1cm4gcGEuaGFzKHQucGFyZW50Lm5hbWUpP2duOnZvaWQgMDtjYXNlXCJhbmd1bGFyTGV0RGVjbGFyYXRpb25Jbml0aWFsaXplclwiOnJldHVybiBuPT5UKHIudmFsdWUsbix7cGFyc2VyOlwiX19uZ19iaW5kaW5nXCIsX19pc0luSHRtbEF0dHJpYnV0ZTohMX0pfX12YXIgcnM9aGE7dmFyIG50PW51bGw7ZnVuY3Rpb24gc3QodCl7aWYobnQhPT1udWxsJiZ0eXBlb2YgbnQucHJvcGVydHkpe2xldCBlPW50O3JldHVybiBudD1zdC5wcm90b3R5cGU9bnVsbCxlfXJldHVybiBudD1zdC5wcm90b3R5cGU9dD8/T2JqZWN0LmNyZWF0ZShudWxsKSxuZXcgc3R9dmFyIG1hPTEwO2ZvcihsZXQgdD0wO3Q8PW1hO3QrKylzdCgpO2Z1bmN0aW9uIHZyKHQpe3JldHVybiBzdCh0KX1mdW5jdGlvbiBmYSh0LGU9XCJ0eXBlXCIpe3ZyKHQpO2Z1bmN0aW9uIHIobil7bGV0IHM9bltlXSxpPXRbc107aWYoIUFycmF5LmlzQXJyYXkoaSkpdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoYE1pc3NpbmcgdmlzaXRvciBrZXlzIGZvciAnJHtzfScuYCkse25vZGU6bn0pO3JldHVybiBpfXJldHVybiByfXZhciBucz1mYTt2YXIgZGE9e1wiZnJvbnQtbWF0dGVyXCI6W10scm9vdDpbXCJjaGlsZHJlblwiXSxlbGVtZW50OltcImF0dHJzXCIsXCJjaGlsZHJlblwiXSxpZUNvbmRpdGlvbmFsQ29tbWVudDpbXCJjaGlsZHJlblwiXSxpZUNvbmRpdGlvbmFsU3RhcnRDb21tZW50OltdLGllQ29uZGl0aW9uYWxFbmRDb21tZW50OltdLGludGVycG9sYXRpb246W1wiY2hpbGRyZW5cIl0sdGV4dDpbXCJjaGlsZHJlblwiXSxkb2NUeXBlOltdLGNvbW1lbnQ6W10sYXR0cmlidXRlOltdLGNkYXRhOltdLGFuZ3VsYXJDb250cm9sRmxvd0Jsb2NrOltcImNoaWxkcmVuXCIsXCJwYXJhbWV0ZXJzXCJdLGFuZ3VsYXJDb250cm9sRmxvd0Jsb2NrUGFyYW1ldGVyczpbXCJjaGlsZHJlblwiXSxhbmd1bGFyQ29udHJvbEZsb3dCbG9ja1BhcmFtZXRlcjpbXSxhbmd1bGFyTGV0RGVjbGFyYXRpb246W1wiaW5pdFwiXSxhbmd1bGFyTGV0RGVjbGFyYXRpb25Jbml0aWFsaXplcjpbXSxhbmd1bGFySWN1RXhwcmVzc2lvbjpbXCJjYXNlc1wiXSxhbmd1bGFySWN1Q2FzZTpbXCJleHByZXNzaW9uXCJdfSxzcz1kYTt2YXIgZ2E9bnMoc3MpLGlzPWdhO2Z1bmN0aW9uIGFzKHQpe3JldHVybi9eXFxzKjwhLS1cXHMqQCg/OmZvcm1hdHxwcmV0dGllcilcXHMqLS0+L3UudGVzdCh0KX1mdW5jdGlvbiBvcyh0KXtyZXR1cm5gPCEtLSBAZm9ybWF0IC0tPlxuXG5gK3R9dmFyIHVzPW5ldyBNYXAoW1tcImlmXCIsbmV3IFNldChbXCJlbHNlIGlmXCIsXCJlbHNlXCJdKV0sW1wiZWxzZSBpZlwiLG5ldyBTZXQoW1wiZWxzZSBpZlwiLFwiZWxzZVwiXSldLFtcImZvclwiLG5ldyBTZXQoW1wiZW1wdHlcIl0pXSxbXCJkZWZlclwiLG5ldyBTZXQoW1wicGxhY2Vob2xkZXJcIixcImVycm9yXCIsXCJsb2FkaW5nXCJdKV0sW1wicGxhY2Vob2xkZXJcIixuZXcgU2V0KFtcInBsYWNlaG9sZGVyXCIsXCJlcnJvclwiLFwibG9hZGluZ1wiXSldLFtcImVycm9yXCIsbmV3IFNldChbXCJwbGFjZWhvbGRlclwiLFwiZXJyb3JcIixcImxvYWRpbmdcIl0pXSxbXCJsb2FkaW5nXCIsbmV3IFNldChbXCJwbGFjZWhvbGRlclwiLFwiZXJyb3JcIixcImxvYWRpbmdcIl0pXV0pO2Z1bmN0aW9uIGxzKHQpe2xldCBlPUoodCk7cmV0dXJuIHQudHlwZT09PVwiZWxlbWVudFwiJiYhdC5lbmRTb3VyY2VTcGFuJiZGZSh0LmNoaWxkcmVuKT9NYXRoLm1heChlLGxzKHNlKCExLHQuY2hpbGRyZW4sLTEpKSk6ZX1mdW5jdGlvbiBpdCh0LGUscil7bGV0IG49dC5ub2RlO2lmKG1lKG4pKXtsZXQgcz1scyhuKTtyZXR1cm5beihuLGUpLEIoTi50cmltRW5kKGUub3JpZ2luYWxUZXh0LnNsaWNlKFgobikrKG4ucHJldiYmZXQobi5wcmV2KT9rdChuKS5sZW5ndGg6MCkscy0obi5uZXh0JiZqKG4ubmV4dCk/Z2UobixlKS5sZW5ndGg6MCkpKSksVyhuLGUpXX1yZXR1cm4gcigpfWZ1bmN0aW9uIEZ0KHQsZSl7cmV0dXJuIE8odCkmJk8oZSk/dC5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmU/dC5oYXNUcmFpbGluZ1NwYWNlcz92dChlKT9TOkU6XCJcIjp2dChlKT9TOnY6ZXQodCkmJihtZShlKXx8ZS5maXJzdENoaWxkfHxlLmlzU2VsZkNsb3Npbmd8fGUudHlwZT09PVwiZWxlbWVudFwiJiZlLmF0dHJzLmxlbmd0aD4wKXx8dC50eXBlPT09XCJlbGVtZW50XCImJnQuaXNTZWxmQ2xvc2luZyYmaihlKT9cIlwiOiFlLmlzTGVhZGluZ1NwYWNlU2Vuc2l0aXZlfHx2dChlKXx8aihlKSYmdC5sYXN0Q2hpbGQmJlNlKHQubGFzdENoaWxkKSYmdC5sYXN0Q2hpbGQubGFzdENoaWxkJiZTZSh0Lmxhc3RDaGlsZC5sYXN0Q2hpbGQpP1M6ZS5oYXNMZWFkaW5nU3BhY2VzP0U6dn1mdW5jdGlvbiBOZSh0LGUscil7bGV0e25vZGU6bn09dDtpZihkcihuKSlyZXR1cm5bbmUsLi4udC5tYXAoaT0+e2xldCBhPWkubm9kZSxvPWEucHJldj9GdChhLnByZXYsYSk6XCJcIjtyZXR1cm5bbz9bbyxRZShhLnByZXYpP1M6XCJcIl06XCJcIixpdChpLGUscildfSxcImNoaWxkcmVuXCIpXTtsZXQgcz1uLmNoaWxkcmVuLm1hcCgoKT0+U3ltYm9sKFwiXCIpKTtyZXR1cm4gdC5tYXAoKGksYSk9PntsZXQgbz1pLm5vZGU7aWYoTyhvKSl7aWYoby5wcmV2JiZPKG8ucHJldikpe2xldCBBPUZ0KG8ucHJldixvKTtpZihBKXJldHVybiBRZShvLnByZXYpP1tTLFMsaXQoaSxlLHIpXTpbQSxpdChpLGUscildfXJldHVybiBpdChpLGUscil9bGV0IHU9W10scD1bXSxsPVtdLGY9W10sZD1vLnByZXY/RnQoby5wcmV2LG8pOlwiXCIsQz1vLm5leHQ/RnQobyxvLm5leHQpOlwiXCI7cmV0dXJuIGQmJihRZShvLnByZXYpP3UucHVzaChTLFMpOmQ9PT1TP3UucHVzaChTKTpPKG8ucHJldik/cC5wdXNoKGQpOnAucHVzaChsZShcIlwiLHYse2dyb3VwSWQ6c1thLTFdfSkpKSxDJiYoUWUobyk/TyhvLm5leHQpJiZmLnB1c2goUyxTKTpDPT09Uz9PKG8ubmV4dCkmJmYucHVzaChTKTpsLnB1c2goQykpLFsuLi51LF8oWy4uLnAsXyhbaXQoaSxlLHIpLC4uLmxdLHtpZDpzW2FdfSldKSwuLi5mXX0sXCJjaGlsZHJlblwiKX1mdW5jdGlvbiBjcyh0LGUscil7bGV0e25vZGU6bn09dCxzPVtdO0NhKHQpJiZzLnB1c2goXCJ9IFwiKSxzLnB1c2goXCJAXCIsbi5uYW1lKSxuLnBhcmFtZXRlcnMmJnMucHVzaChcIiAoXCIsXyhyKFwicGFyYW1ldGVyc1wiKSksXCIpXCIpLHMucHVzaChcIiB7XCIpO2xldCBpPXBzKG4pO3JldHVybiBuLmNoaWxkcmVuLmxlbmd0aD4wPyhuLmZpcnN0Q2hpbGQuaGFzTGVhZGluZ1NwYWNlcz0hMCxuLmxhc3RDaGlsZC5oYXNUcmFpbGluZ1NwYWNlcz0hMCxzLnB1c2goayhbUyxOZSh0LGUscildKSksaSYmcy5wdXNoKFMsXCJ9XCIpKTppJiZzLnB1c2goXCJ9XCIpLF8ocyx7c2hvdWxkQnJlYWs6ITB9KX1mdW5jdGlvbiBwcyh0KXt2YXIgZSxyO3JldHVybiEoKChlPXQubmV4dCk9PW51bGw/dm9pZCAwOmUudHlwZSk9PT1cImFuZ3VsYXJDb250cm9sRmxvd0Jsb2NrXCImJigocj11cy5nZXQodC5uYW1lKSkhPW51bGwmJnIuaGFzKHQubmV4dC5uYW1lKSkpfWZ1bmN0aW9uIENhKHQpe2xldHtwcmV2aW91czplfT10O3JldHVybihlPT1udWxsP3ZvaWQgMDplLnR5cGUpPT09XCJhbmd1bGFyQ29udHJvbEZsb3dCbG9ja1wiJiYhbWUoZSkmJiFwcyhlKX1mdW5jdGlvbiBocyh0LGUscil7cmV0dXJuW2soW3YscShbXCI7XCIsRV0sdC5tYXAocixcImNoaWxkcmVuXCIpKV0pLHZdfWZ1bmN0aW9uIG1zKHQsZSxyKXtsZXR7bm9kZTpufT10O3JldHVybltfZShuLGUpLF8oW24uc3dpdGNoVmFsdWUudHJpbSgpLFwiLCBcIixuLmNsYXVzZSxuLmNhc2VzLmxlbmd0aD4wP1tcIixcIixrKFtFLHEoRSx0Lm1hcChyLFwiY2FzZXNcIikpXSldOlwiXCIsdl0pLGRlKG4sZSldfWZ1bmN0aW9uIGZzKHQsZSxyKXtsZXR7bm9kZTpufT10O3JldHVybltuLnZhbHVlLFwiIHtcIixfKFtrKFt2LHQubWFwKCh7bm9kZTpzfSk9PnMudHlwZT09PVwidGV4dFwiJiYhTi50cmltKHMudmFsdWUpP1wiXCI6cigpLFwiZXhwcmVzc2lvblwiKV0pLHZdKSxcIn1cIl19ZnVuY3Rpb24gZHModCxlLHIpe2xldHtub2RlOm59PXQ7aWYoRHQobixlKSlyZXR1cm5beihuLGUpLF8ocnQodCxlLHIpKSxCKEx0KG4sZSkpLC4uLlplKG4sZSksVyhuLGUpXTtsZXQgcz1uLmNoaWxkcmVuLmxlbmd0aD09PTEmJihuLmZpcnN0Q2hpbGQudHlwZT09PVwiaW50ZXJwb2xhdGlvblwifHxuLmZpcnN0Q2hpbGQudHlwZT09PVwiYW5ndWxhckljdUV4cHJlc3Npb25cIikmJm4uZmlyc3RDaGlsZC5pc0xlYWRpbmdTcGFjZVNlbnNpdGl2ZSYmIW4uZmlyc3RDaGlsZC5oYXNMZWFkaW5nU3BhY2VzJiZuLmxhc3RDaGlsZC5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmUmJiFuLmxhc3RDaGlsZC5oYXNUcmFpbGluZ1NwYWNlcyxpPVN5bWJvbChcImVsZW1lbnQtYXR0ci1ncm91cC1pZFwiKSxhPWw9Pl8oW18ocnQodCxlLHIpLHtpZDppfSksbCxaZShuLGUpXSksbz1sPT5zP29uKGwse2dyb3VwSWQ6aX0pOihVKG4pfHxKZShuLGUpKSYmbi5wYXJlbnQudHlwZT09PVwicm9vdFwiJiZlLnBhcnNlcj09PVwidnVlXCImJiFlLnZ1ZUluZGVudFNjcmlwdEFuZFN0eWxlP2w6ayhsKSx1PSgpPT5zP2xlKHYsXCJcIix7Z3JvdXBJZDppfSk6bi5maXJzdENoaWxkLmhhc0xlYWRpbmdTcGFjZXMmJm4uZmlyc3RDaGlsZC5pc0xlYWRpbmdTcGFjZVNlbnNpdGl2ZT9FOm4uZmlyc3RDaGlsZC50eXBlPT09XCJ0ZXh0XCImJm4uaXNXaGl0ZXNwYWNlU2Vuc2l0aXZlJiZuLmlzSW5kZW50YXRpb25TZW5zaXRpdmU/c24odik6dixwPSgpPT4obi5uZXh0P2oobi5uZXh0KTpDZShuLnBhcmVudCkpP24ubGFzdENoaWxkLmhhc1RyYWlsaW5nU3BhY2VzJiZuLmxhc3RDaGlsZC5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmU/XCIgXCI6XCJcIjpzP2xlKHYsXCJcIix7Z3JvdXBJZDppfSk6bi5sYXN0Q2hpbGQuaGFzVHJhaWxpbmdTcGFjZXMmJm4ubGFzdENoaWxkLmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZT9FOihuLmxhc3RDaGlsZC50eXBlPT09XCJjb21tZW50XCJ8fG4ubGFzdENoaWxkLnR5cGU9PT1cInRleHRcIiYmbi5pc1doaXRlc3BhY2VTZW5zaXRpdmUmJm4uaXNJbmRlbnRhdGlvblNlbnNpdGl2ZSkmJm5ldyBSZWdFeHAoYFxcXFxuW1xcXFx0IF17JHtlLnRhYldpZHRoKih0LmFuY2VzdG9ycy5sZW5ndGgtMSl9fSRgLFwidVwiKS50ZXN0KG4ubGFzdENoaWxkLnZhbHVlKT9cIlwiOnY7cmV0dXJuIG4uY2hpbGRyZW4ubGVuZ3RoPT09MD9hKG4uaGFzRGFuZ2xpbmdTcGFjZXMmJm4uaXNEYW5nbGluZ1NwYWNlU2Vuc2l0aXZlP0U6XCJcIik6YShbeG4obik/bmU6XCJcIixvKFt1KCksTmUodCxlLHIpXSkscCgpXSl9ZnVuY3Rpb24gYXQodCl7cmV0dXJuIHQ+PTkmJnQ8PTMyfHx0PT0xNjB9ZnVuY3Rpb24gTnQodCl7cmV0dXJuIDQ4PD10JiZ0PD01N31mdW5jdGlvbiBvdCh0KXtyZXR1cm4gdD49OTcmJnQ8PTEyMnx8dD49NjUmJnQ8PTkwfWZ1bmN0aW9uIGdzKHQpe3JldHVybiB0Pj05NyYmdDw9MTAyfHx0Pj02NSYmdDw9NzB8fE50KHQpfWZ1bmN0aW9uIFB0KHQpe3JldHVybiB0PT09MTB8fHQ9PT0xM31mdW5jdGlvbiB5cih0KXtyZXR1cm4gNDg8PXQmJnQ8PTU1fWZ1bmN0aW9uIEl0KHQpe3JldHVybiB0PT09Mzl8fHQ9PT0zNHx8dD09PTk2fXZhciBTYT0vLSsoW2EtejAtOV0pL2c7ZnVuY3Rpb24gU3ModCl7cmV0dXJuIHQucmVwbGFjZShTYSwoLi4uZSk9PmVbMV0udG9VcHBlckNhc2UoKSl9dmFyIGllPWNsYXNzIHR7Y29uc3RydWN0b3IoZSxyLG4scyl7dGhpcy5maWxlPWUsdGhpcy5vZmZzZXQ9cix0aGlzLmxpbmU9bix0aGlzLmNvbD1zfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMub2Zmc2V0IT1udWxsP2Ake3RoaXMuZmlsZS51cmx9QCR7dGhpcy5saW5lfToke3RoaXMuY29sfWA6dGhpcy5maWxlLnVybH1tb3ZlQnkoZSl7bGV0IHI9dGhpcy5maWxlLmNvbnRlbnQsbj1yLmxlbmd0aCxzPXRoaXMub2Zmc2V0LGk9dGhpcy5saW5lLGE9dGhpcy5jb2w7Zm9yKDtzPjAmJmU8MDspaWYocy0tLGUrKyxyLmNoYXJDb2RlQXQocyk9PTEwKXtpLS07bGV0IHU9ci5zdWJzdHJpbmcoMCxzLTEpLmxhc3RJbmRleE9mKFN0cmluZy5mcm9tQ2hhckNvZGUoMTApKTthPXU+MD9zLXU6c31lbHNlIGEtLTtmb3IoO3M8biYmZT4wOyl7bGV0IG89ci5jaGFyQ29kZUF0KHMpO3MrKyxlLS0sbz09MTA/KGkrKyxhPTApOmErK31yZXR1cm4gbmV3IHQodGhpcy5maWxlLHMsaSxhKX1nZXRDb250ZXh0KGUscil7bGV0IG49dGhpcy5maWxlLmNvbnRlbnQscz10aGlzLm9mZnNldDtpZihzIT1udWxsKXtzPm4ubGVuZ3RoLTEmJihzPW4ubGVuZ3RoLTEpO2xldCBpPXMsYT0wLG89MDtmb3IoO2E8ZSYmcz4wJiYocy0tLGErKywhKG5bc109PWBcbmAmJisrbz09cikpOyk7Zm9yKGE9MCxvPTA7YTxlJiZpPG4ubGVuZ3RoLTEmJihpKyssYSsrLCEobltpXT09YFxuYCYmKytvPT1yKSk7KTtyZXR1cm57YmVmb3JlOm4uc3Vic3RyaW5nKHMsdGhpcy5vZmZzZXQpLGFmdGVyOm4uc3Vic3RyaW5nKHRoaXMub2Zmc2V0LGkrMSl9fXJldHVybiBudWxsfX0sRWU9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLmNvbnRlbnQ9ZSx0aGlzLnVybD1yfX0saD1jbGFzc3tjb25zdHJ1Y3RvcihlLHIsbj1lLHM9bnVsbCl7dGhpcy5zdGFydD1lLHRoaXMuZW5kPXIsdGhpcy5mdWxsU3RhcnQ9bix0aGlzLmRldGFpbHM9c310b1N0cmluZygpe3JldHVybiB0aGlzLnN0YXJ0LmZpbGUuY29udGVudC5zdWJzdHJpbmcodGhpcy5zdGFydC5vZmZzZXQsdGhpcy5lbmQub2Zmc2V0KX19LFJ0OyhmdW5jdGlvbih0KXt0W3QuV0FSTklORz0wXT1cIldBUk5JTkdcIix0W3QuRVJST1I9MV09XCJFUlJPUlwifSkoUnR8fChSdD17fSkpO3ZhciBJZT1jbGFzc3tjb25zdHJ1Y3RvcihlLHIsbj1SdC5FUlJPUil7dGhpcy5zcGFuPWUsdGhpcy5tc2c9cix0aGlzLmxldmVsPW59Y29udGV4dHVhbE1lc3NhZ2UoKXtsZXQgZT10aGlzLnNwYW4uc3RhcnQuZ2V0Q29udGV4dCgxMDAsMyk7cmV0dXJuIGU/YCR7dGhpcy5tc2d9IChcIiR7ZS5iZWZvcmV9WyR7UnRbdGhpcy5sZXZlbF19IC0+XSR7ZS5hZnRlcn1cIilgOnRoaXMubXNnfXRvU3RyaW5nKCl7bGV0IGU9dGhpcy5zcGFuLmRldGFpbHM/YCwgJHt0aGlzLnNwYW4uZGV0YWlsc31gOlwiXCI7cmV0dXJuYCR7dGhpcy5jb250ZXh0dWFsTWVzc2FnZSgpfTogJHt0aGlzLnNwYW4uc3RhcnR9JHtlfWB9fTt2YXIgX2E9W0FhLERhLHlhLGJhLFRhLEJhLHhhLGthLExhLHdhXTtmdW5jdGlvbiBFYSh0LGUpe2ZvcihsZXQgciBvZiBfYSlyKHQsZSk7cmV0dXJuIHR9ZnVuY3Rpb24gQWEodCl7dC53YWxrKGU9PntpZihlLnR5cGU9PT1cImVsZW1lbnRcIiYmZS50YWdEZWZpbml0aW9uLmlnbm9yZUZpcnN0TGYmJmUuY2hpbGRyZW4ubGVuZ3RoPjAmJmUuY2hpbGRyZW5bMF0udHlwZT09PVwidGV4dFwiJiZlLmNoaWxkcmVuWzBdLnZhbHVlWzBdPT09YFxuYCl7bGV0IHI9ZS5jaGlsZHJlblswXTtyLnZhbHVlLmxlbmd0aD09PTE/ZS5yZW1vdmVDaGlsZChyKTpyLnZhbHVlPXIudmFsdWUuc2xpY2UoMSl9fSl9ZnVuY3Rpb24gRGEodCl7bGV0IGU9cj0+e3ZhciBuLHM7cmV0dXJuIHIudHlwZT09PVwiZWxlbWVudFwiJiYoKG49ci5wcmV2KT09bnVsbD92b2lkIDA6bi50eXBlKT09PVwiaWVDb25kaXRpb25hbFN0YXJ0Q29tbWVudFwiJiZyLnByZXYuc291cmNlU3Bhbi5lbmQub2Zmc2V0PT09ci5zdGFydFNvdXJjZVNwYW4uc3RhcnQub2Zmc2V0JiYoKHM9ci5maXJzdENoaWxkKT09bnVsbD92b2lkIDA6cy50eXBlKT09PVwiaWVDb25kaXRpb25hbEVuZENvbW1lbnRcIiYmci5maXJzdENoaWxkLnNvdXJjZVNwYW4uc3RhcnQub2Zmc2V0PT09ci5zdGFydFNvdXJjZVNwYW4uZW5kLm9mZnNldH07dC53YWxrKHI9PntpZihyLmNoaWxkcmVuKWZvcihsZXQgbj0wO248ci5jaGlsZHJlbi5sZW5ndGg7bisrKXtsZXQgcz1yLmNoaWxkcmVuW25dO2lmKCFlKHMpKWNvbnRpbnVlO2xldCBpPXMucHJldixhPXMuZmlyc3RDaGlsZDtyLnJlbW92ZUNoaWxkKGkpLG4tLTtsZXQgbz1uZXcgaChpLnNvdXJjZVNwYW4uc3RhcnQsYS5zb3VyY2VTcGFuLmVuZCksdT1uZXcgaChvLnN0YXJ0LHMuc291cmNlU3Bhbi5lbmQpO3MuY29uZGl0aW9uPWkuY29uZGl0aW9uLHMuc291cmNlU3Bhbj11LHMuc3RhcnRTb3VyY2VTcGFuPW8scy5yZW1vdmVDaGlsZChhKX19KX1mdW5jdGlvbiB2YSh0LGUscil7dC53YWxrKG49PntpZihuLmNoaWxkcmVuKWZvcihsZXQgcz0wO3M8bi5jaGlsZHJlbi5sZW5ndGg7cysrKXtsZXQgaT1uLmNoaWxkcmVuW3NdO2lmKGkudHlwZSE9PVwidGV4dFwiJiYhZShpKSljb250aW51ZTtpLnR5cGUhPT1cInRleHRcIiYmKGkudHlwZT1cInRleHRcIixpLnZhbHVlPXIoaSkpO2xldCBhPWkucHJldjshYXx8YS50eXBlIT09XCJ0ZXh0XCJ8fChhLnZhbHVlKz1pLnZhbHVlLGEuc291cmNlU3Bhbj1uZXcgaChhLnNvdXJjZVNwYW4uc3RhcnQsaS5zb3VyY2VTcGFuLmVuZCksbi5yZW1vdmVDaGlsZChpKSxzLS0pfX0pfWZ1bmN0aW9uIHlhKHQpe3JldHVybiB2YSh0LGU9PmUudHlwZT09PVwiY2RhdGFcIixlPT5gPCFbQ0RBVEFbJHtlLnZhbHVlfV1dPmApfWZ1bmN0aW9uIHdhKHQpe2xldCBlPXI9Pnt2YXIgbixzO3JldHVybiByLnR5cGU9PT1cImVsZW1lbnRcIiYmci5hdHRycy5sZW5ndGg9PT0wJiZyLmNoaWxkcmVuLmxlbmd0aD09PTEmJnIuZmlyc3RDaGlsZC50eXBlPT09XCJ0ZXh0XCImJiFOLmhhc1doaXRlc3BhY2VDaGFyYWN0ZXIoci5jaGlsZHJlblswXS52YWx1ZSkmJiFyLmZpcnN0Q2hpbGQuaGFzTGVhZGluZ1NwYWNlcyYmIXIuZmlyc3RDaGlsZC5oYXNUcmFpbGluZ1NwYWNlcyYmci5pc0xlYWRpbmdTcGFjZVNlbnNpdGl2ZSYmIXIuaGFzTGVhZGluZ1NwYWNlcyYmci5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmUmJiFyLmhhc1RyYWlsaW5nU3BhY2VzJiYoKG49ci5wcmV2KT09bnVsbD92b2lkIDA6bi50eXBlKT09PVwidGV4dFwiJiYoKHM9ci5uZXh0KT09bnVsbD92b2lkIDA6cy50eXBlKT09PVwidGV4dFwifTt0LndhbGsocj0+e2lmKHIuY2hpbGRyZW4pZm9yKGxldCBuPTA7bjxyLmNoaWxkcmVuLmxlbmd0aDtuKyspe2xldCBzPXIuY2hpbGRyZW5bbl07aWYoIWUocykpY29udGludWU7bGV0IGk9cy5wcmV2LGE9cy5uZXh0O2kudmFsdWUrPWA8JHtzLnJhd05hbWV9PmArcy5maXJzdENoaWxkLnZhbHVlK2A8LyR7cy5yYXdOYW1lfT5gK2EudmFsdWUsaS5zb3VyY2VTcGFuPW5ldyBoKGkuc291cmNlU3Bhbi5zdGFydCxhLnNvdXJjZVNwYW4uZW5kKSxpLmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZT1hLmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZSxpLmhhc1RyYWlsaW5nU3BhY2VzPWEuaGFzVHJhaWxpbmdTcGFjZXMsci5yZW1vdmVDaGlsZChzKSxuLS0sci5yZW1vdmVDaGlsZChhKX19KX1mdW5jdGlvbiBiYSh0LGUpe2lmKGUucGFyc2VyPT09XCJodG1sXCIpcmV0dXJuO2xldCByPS9cXHtcXHsoLis/KVxcfVxcfS9zdTt0LndhbGsobj0+e2lmKHZuKG4pKWZvcihsZXQgcyBvZiBuLmNoaWxkcmVuKXtpZihzLnR5cGUhPT1cInRleHRcIiljb250aW51ZTtsZXQgaT1zLnNvdXJjZVNwYW4uc3RhcnQsYT1udWxsLG89cy52YWx1ZS5zcGxpdChyKTtmb3IobGV0IHU9MDt1PG8ubGVuZ3RoO3UrKyxpPWEpe2xldCBwPW9bdV07aWYodSUyPT09MCl7YT1pLm1vdmVCeShwLmxlbmd0aCkscC5sZW5ndGg+MCYmbi5pbnNlcnRDaGlsZEJlZm9yZShzLHt0eXBlOlwidGV4dFwiLHZhbHVlOnAsc291cmNlU3BhbjpuZXcgaChpLGEpfSk7Y29udGludWV9YT1pLm1vdmVCeShwLmxlbmd0aCs0KSxuLmluc2VydENoaWxkQmVmb3JlKHMse3R5cGU6XCJpbnRlcnBvbGF0aW9uXCIsc291cmNlU3BhbjpuZXcgaChpLGEpLGNoaWxkcmVuOnAubGVuZ3RoPT09MD9bXTpbe3R5cGU6XCJ0ZXh0XCIsdmFsdWU6cCxzb3VyY2VTcGFuOm5ldyBoKGkubW92ZUJ5KDIpLGEubW92ZUJ5KC0yKSl9XX0pfW4ucmVtb3ZlQ2hpbGQocyl9fSl9ZnVuY3Rpb24gVGEodCl7dC53YWxrKGU9PntpZighZS5jaGlsZHJlbilyZXR1cm47aWYoZS5jaGlsZHJlbi5sZW5ndGg9PT0wfHxlLmNoaWxkcmVuLmxlbmd0aD09PTEmJmUuY2hpbGRyZW5bMF0udHlwZT09PVwidGV4dFwiJiZOLnRyaW0oZS5jaGlsZHJlblswXS52YWx1ZSkubGVuZ3RoPT09MCl7ZS5oYXNEYW5nbGluZ1NwYWNlcz1lLmNoaWxkcmVuLmxlbmd0aD4wLGUuY2hpbGRyZW49W107cmV0dXJufWxldCByPXluKGUpLG49ZnIoZSk7aWYoIXIpZm9yKGxldCBzPTA7czxlLmNoaWxkcmVuLmxlbmd0aDtzKyspe2xldCBpPWUuY2hpbGRyZW5bc107aWYoaS50eXBlIT09XCJ0ZXh0XCIpY29udGludWU7bGV0e2xlYWRpbmdXaGl0ZXNwYWNlOmEsdGV4dDpvLHRyYWlsaW5nV2hpdGVzcGFjZTp1fT1EbihpLnZhbHVlKSxwPWkucHJldixsPWkubmV4dDtvPyhpLnZhbHVlPW8saS5zb3VyY2VTcGFuPW5ldyBoKGkuc291cmNlU3Bhbi5zdGFydC5tb3ZlQnkoYS5sZW5ndGgpLGkuc291cmNlU3Bhbi5lbmQubW92ZUJ5KC11Lmxlbmd0aCkpLGEmJihwJiYocC5oYXNUcmFpbGluZ1NwYWNlcz0hMCksaS5oYXNMZWFkaW5nU3BhY2VzPSEwKSx1JiYoaS5oYXNUcmFpbGluZ1NwYWNlcz0hMCxsJiYobC5oYXNMZWFkaW5nU3BhY2VzPSEwKSkpOihlLnJlbW92ZUNoaWxkKGkpLHMtLSwoYXx8dSkmJihwJiYocC5oYXNUcmFpbGluZ1NwYWNlcz0hMCksbCYmKGwuaGFzTGVhZGluZ1NwYWNlcz0hMCkpKX1lLmlzV2hpdGVzcGFjZVNlbnNpdGl2ZT1yLGUuaXNJbmRlbnRhdGlvblNlbnNpdGl2ZT1ufSl9ZnVuY3Rpb24geGEodCl7dC53YWxrKGU9PntlLmlzU2VsZkNsb3Npbmc9IWUuY2hpbGRyZW58fGUudHlwZT09PVwiZWxlbWVudFwiJiYoZS50YWdEZWZpbml0aW9uLmlzVm9pZHx8ZS5lbmRTb3VyY2VTcGFuJiZlLnN0YXJ0U291cmNlU3Bhbi5zdGFydD09PWUuZW5kU291cmNlU3Bhbi5zdGFydCYmZS5zdGFydFNvdXJjZVNwYW4uZW5kPT09ZS5lbmRTb3VyY2VTcGFuLmVuZCl9KX1mdW5jdGlvbiBrYSh0LGUpe3Qud2FsayhyPT57ci50eXBlPT09XCJlbGVtZW50XCImJihyLmhhc0h0bUNvbXBvbmVudENsb3NpbmdUYWc9ci5lbmRTb3VyY2VTcGFuJiYvXjxcXHMqXFwvXFxzKlxcL1xccyo+JC91LnRlc3QoZS5vcmlnaW5hbFRleHQuc2xpY2Uoci5lbmRTb3VyY2VTcGFuLnN0YXJ0Lm9mZnNldCxyLmVuZFNvdXJjZVNwYW4uZW5kLm9mZnNldCkpKX0pfWZ1bmN0aW9uIEJhKHQsZSl7dC53YWxrKHI9PntyLmNzc0Rpc3BsYXk9UG4ocixlKX0pfWZ1bmN0aW9uIExhKHQsZSl7dC53YWxrKHI9PntsZXR7Y2hpbGRyZW46bn09cjtpZihuKXtpZihuLmxlbmd0aD09PTApe3IuaXNEYW5nbGluZ1NwYWNlU2Vuc2l0aXZlPVRuKHIpO3JldHVybn1mb3IobGV0IHMgb2YgbilzLmlzTGVhZGluZ1NwYWNlU2Vuc2l0aXZlPXduKHMsZSkscy5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmU9Ym4ocyxlKTtmb3IobGV0IHM9MDtzPG4ubGVuZ3RoO3MrKyl7bGV0IGk9bltzXTtpLmlzTGVhZGluZ1NwYWNlU2Vuc2l0aXZlPShzPT09MHx8aS5wcmV2LmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZSkmJmkuaXNMZWFkaW5nU3BhY2VTZW5zaXRpdmUsaS5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmU9KHM9PT1uLmxlbmd0aC0xfHxpLm5leHQuaXNMZWFkaW5nU3BhY2VTZW5zaXRpdmUpJiZpLmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZX19fSl9dmFyIF9zPUVhO2Z1bmN0aW9uIEZhKHQsZSxyKXtsZXR7bm9kZTpufT10O3N3aXRjaChuLnR5cGUpe2Nhc2VcImZyb250LW1hdHRlclwiOnJldHVybiBCKG4ucmF3KTtjYXNlXCJyb290XCI6cmV0dXJuIGUuX19vbkh0bWxSb290JiZlLl9fb25IdG1sUm9vdChuKSxbXyhOZSh0LGUscikpLFNdO2Nhc2VcImVsZW1lbnRcIjpjYXNlXCJpZUNvbmRpdGlvbmFsQ29tbWVudFwiOnJldHVybiBkcyh0LGUscik7Y2FzZVwiYW5ndWxhckNvbnRyb2xGbG93QmxvY2tcIjpyZXR1cm4gY3ModCxlLHIpO2Nhc2VcImFuZ3VsYXJDb250cm9sRmxvd0Jsb2NrUGFyYW1ldGVyc1wiOnJldHVybiBocyh0LGUscik7Y2FzZVwiYW5ndWxhckNvbnRyb2xGbG93QmxvY2tQYXJhbWV0ZXJcIjpyZXR1cm4gTi50cmltKG4uZXhwcmVzc2lvbik7Y2FzZVwiYW5ndWxhckxldERlY2xhcmF0aW9uXCI6cmV0dXJuIF8oW1wiQGxldCBcIixfKFtuLmlkLFwiID1cIixfKGsoW0UscihcImluaXRcIildKSldKSxcIjtcIl0pO2Nhc2VcImFuZ3VsYXJMZXREZWNsYXJhdGlvbkluaXRpYWxpemVyXCI6cmV0dXJuIG4udmFsdWU7Y2FzZVwiYW5ndWxhckljdUV4cHJlc3Npb25cIjpyZXR1cm4gbXModCxlLHIpO2Nhc2VcImFuZ3VsYXJJY3VDYXNlXCI6cmV0dXJuIGZzKHQsZSxyKTtjYXNlXCJpZUNvbmRpdGlvbmFsU3RhcnRDb21tZW50XCI6Y2FzZVwiaWVDb25kaXRpb25hbEVuZENvbW1lbnRcIjpyZXR1cm5bX2UobiksZGUobildO2Nhc2VcImludGVycG9sYXRpb25cIjpyZXR1cm5bX2UobixlKSwuLi50Lm1hcChyLFwiY2hpbGRyZW5cIiksZGUobixlKV07Y2FzZVwidGV4dFwiOntpZihuLnBhcmVudC50eXBlPT09XCJpbnRlcnBvbGF0aW9uXCIpe2xldCBvPS9cXG5bXlxcU1xcbl0qJC91LHU9by50ZXN0KG4udmFsdWUpLHA9dT9uLnZhbHVlLnJlcGxhY2UobyxcIlwiKTpuLnZhbHVlO3JldHVybltCKHApLHU/UzpcIlwiXX1sZXQgcz16KG4sZSksaT1idChuKSxhPVcobixlKTtyZXR1cm4gaVswXT1bcyxpWzBdXSxpLnB1c2goW2kucG9wKCksYV0pLEV0KGkpfWNhc2VcImRvY1R5cGVcIjpyZXR1cm5bXyhbX2UobixlKSxcIiBcIix3KCExLG4udmFsdWUucmVwbGFjZSgvXmh0bWxcXGIvaXUsXCJodG1sXCIpLC9cXHMrL2d1LFwiIFwiKV0pLGRlKG4sZSldO2Nhc2VcImNvbW1lbnRcIjpyZXR1cm5beihuLGUpLEIoZS5vcmlnaW5hbFRleHQuc2xpY2UoWChuKSxKKG4pKSksVyhuLGUpXTtjYXNlXCJhdHRyaWJ1dGVcIjp7aWYobi52YWx1ZT09PW51bGwpcmV0dXJuIG4ucmF3TmFtZTtsZXQgcz1TcihuLnZhbHVlKSxpPWNuKHMsJ1wiJyk7cmV0dXJuW24ucmF3TmFtZSxcIj1cIixpLEIoaT09PSdcIic/dyghMSxzLCdcIicsXCImcXVvdDtcIik6dyghMSxzLFwiJ1wiLFwiJmFwb3M7XCIpKSxpXX1jYXNlXCJjZGF0YVwiOmRlZmF1bHQ6dGhyb3cgbmV3IGhuKG4sXCJIVE1MXCIpfX12YXIgTmE9e3ByZXByb2Nlc3M6X3MscHJpbnQ6RmEsaW5zZXJ0UHJhZ21hOm9zLG1hc3NhZ2VBc3ROb2RlOmZuLGVtYmVkOnJzLGdldFZpc2l0b3JLZXlzOmlzfSxFcz1OYTt2YXIgQXM9W3tsaW5ndWlzdExhbmd1YWdlSWQ6MTQ2LG5hbWU6XCJBbmd1bGFyXCIsdHlwZTpcIm1hcmt1cFwiLHRtU2NvcGU6XCJ0ZXh0Lmh0bWwuYmFzaWNcIixhY2VNb2RlOlwiaHRtbFwiLGNvZGVtaXJyb3JNb2RlOlwiaHRtbG1peGVkXCIsY29kZW1pcnJvck1pbWVUeXBlOlwidGV4dC9odG1sXCIsY29sb3I6XCIjZTM0YzI2XCIsYWxpYXNlczpbXCJ4aHRtbFwiXSxleHRlbnNpb25zOltcIi5jb21wb25lbnQuaHRtbFwiXSxwYXJzZXJzOltcImFuZ3VsYXJcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wiaHRtbFwiXSxmaWxlbmFtZXM6W119LHtsaW5ndWlzdExhbmd1YWdlSWQ6MTQ2LG5hbWU6XCJIVE1MXCIsdHlwZTpcIm1hcmt1cFwiLHRtU2NvcGU6XCJ0ZXh0Lmh0bWwuYmFzaWNcIixhY2VNb2RlOlwiaHRtbFwiLGNvZGVtaXJyb3JNb2RlOlwiaHRtbG1peGVkXCIsY29kZW1pcnJvck1pbWVUeXBlOlwidGV4dC9odG1sXCIsY29sb3I6XCIjZTM0YzI2XCIsYWxpYXNlczpbXCJ4aHRtbFwiXSxleHRlbnNpb25zOltcIi5odG1sXCIsXCIuaHRhXCIsXCIuaHRtXCIsXCIuaHRtbC5obFwiLFwiLmluY1wiLFwiLnhodFwiLFwiLnhodG1sXCIsXCIubWptbFwiXSxwYXJzZXJzOltcImh0bWxcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wiaHRtbFwiXX0se2xpbmd1aXN0TGFuZ3VhZ2VJZDoxNDYsbmFtZTpcIkxpZ2h0bmluZyBXZWIgQ29tcG9uZW50c1wiLHR5cGU6XCJtYXJrdXBcIix0bVNjb3BlOlwidGV4dC5odG1sLmJhc2ljXCIsYWNlTW9kZTpcImh0bWxcIixjb2RlbWlycm9yTW9kZTpcImh0bWxtaXhlZFwiLGNvZGVtaXJyb3JNaW1lVHlwZTpcInRleHQvaHRtbFwiLGNvbG9yOlwiI2UzNGMyNlwiLGFsaWFzZXM6W1wieGh0bWxcIl0sZXh0ZW5zaW9uczpbXSxwYXJzZXJzOltcImx3Y1wiXSx2c2NvZGVMYW5ndWFnZUlkczpbXCJodG1sXCJdLGZpbGVuYW1lczpbXX0se2xpbmd1aXN0TGFuZ3VhZ2VJZDozOTEsbmFtZTpcIlZ1ZVwiLHR5cGU6XCJtYXJrdXBcIixjb2xvcjpcIiM0MWI4ODNcIixleHRlbnNpb25zOltcIi52dWVcIl0sdG1TY29wZTpcInRleHQuaHRtbC52dWVcIixhY2VNb2RlOlwiaHRtbFwiLHBhcnNlcnM6W1widnVlXCJdLHZzY29kZUxhbmd1YWdlSWRzOltcInZ1ZVwiXX1dO3ZhciB3cj17YnJhY2tldFNwYWNpbmc6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiEwLGRlc2NyaXB0aW9uOlwiUHJpbnQgc3BhY2VzIGJldHdlZW4gYnJhY2tldHMuXCIsb3Bwb3NpdGVEZXNjcmlwdGlvbjpcIkRvIG5vdCBwcmludCBzcGFjZXMgYmV0d2VlbiBicmFja2V0cy5cIn0sc2luZ2xlUXVvdGU6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiExLGRlc2NyaXB0aW9uOlwiVXNlIHNpbmdsZSBxdW90ZXMgaW5zdGVhZCBvZiBkb3VibGUgcXVvdGVzLlwifSxwcm9zZVdyYXA6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImNob2ljZVwiLGRlZmF1bHQ6XCJwcmVzZXJ2ZVwiLGRlc2NyaXB0aW9uOlwiSG93IHRvIHdyYXAgcHJvc2UuXCIsY2hvaWNlczpbe3ZhbHVlOlwiYWx3YXlzXCIsZGVzY3JpcHRpb246XCJXcmFwIHByb3NlIGlmIGl0IGV4Y2VlZHMgdGhlIHByaW50IHdpZHRoLlwifSx7dmFsdWU6XCJuZXZlclwiLGRlc2NyaXB0aW9uOlwiRG8gbm90IHdyYXAgcHJvc2UuXCJ9LHt2YWx1ZTpcInByZXNlcnZlXCIsZGVzY3JpcHRpb246XCJXcmFwIHByb3NlIGFzLWlzLlwifV19LGJyYWNrZXRTYW1lTGluZTp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITEsZGVzY3JpcHRpb246XCJQdXQgPiBvZiBvcGVuaW5nIHRhZ3Mgb24gdGhlIGxhc3QgbGluZSBpbnN0ZWFkIG9mIG9uIGEgbmV3IGxpbmUuXCJ9LHNpbmdsZUF0dHJpYnV0ZVBlckxpbmU6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiExLGRlc2NyaXB0aW9uOlwiRW5mb3JjZSBzaW5nbGUgYXR0cmlidXRlIHBlciBsaW5lIGluIEhUTUwsIFZ1ZSBhbmQgSlNYLlwifX07dmFyIERzPVwiSFRNTFwiLFBhPXticmFja2V0U2FtZUxpbmU6d3IuYnJhY2tldFNhbWVMaW5lLGh0bWxXaGl0ZXNwYWNlU2Vuc2l0aXZpdHk6e2NhdGVnb3J5OkRzLHR5cGU6XCJjaG9pY2VcIixkZWZhdWx0OlwiY3NzXCIsZGVzY3JpcHRpb246XCJIb3cgdG8gaGFuZGxlIHdoaXRlc3BhY2VzIGluIEhUTUwuXCIsY2hvaWNlczpbe3ZhbHVlOlwiY3NzXCIsZGVzY3JpcHRpb246XCJSZXNwZWN0IHRoZSBkZWZhdWx0IHZhbHVlIG9mIENTUyBkaXNwbGF5IHByb3BlcnR5LlwifSx7dmFsdWU6XCJzdHJpY3RcIixkZXNjcmlwdGlvbjpcIldoaXRlc3BhY2VzIGFyZSBjb25zaWRlcmVkIHNlbnNpdGl2ZS5cIn0se3ZhbHVlOlwiaWdub3JlXCIsZGVzY3JpcHRpb246XCJXaGl0ZXNwYWNlcyBhcmUgY29uc2lkZXJlZCBpbnNlbnNpdGl2ZS5cIn1dfSxzaW5nbGVBdHRyaWJ1dGVQZXJMaW5lOndyLnNpbmdsZUF0dHJpYnV0ZVBlckxpbmUsdnVlSW5kZW50U2NyaXB0QW5kU3R5bGU6e2NhdGVnb3J5OkRzLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpcIkluZGVudCBzY3JpcHQgYW5kIHN0eWxlIHRhZ3MgaW4gVnVlIGZpbGVzLlwifX0sdnM9UGE7dmFyIEdyPXt9O0pyKEdyLHthbmd1bGFyOigpPT5GbyxodG1sOigpPT5Mbyxsd2M6KCk9PlBvLHZ1ZTooKT0+Tm99KTt2YXIgQ3A9bmV3IFJlZ0V4cChgKFxcXFw6bm90XFxcXCgpfCgoW1xcXFwuXFxcXCNdPylbLVxcXFx3XSspfCg/OlxcXFxbKFstLlxcXFx3KlxcXFxcXFxcJF0rKSg/Oj0oW1wiJ10/KShbXlxcXFxdXCInXSopXFxcXDUpP1xcXFxdKXwoXFxcXCkpfChcXFxccyosXFxcXHMqKWAsXCJnXCIpO3ZhciB5czsoZnVuY3Rpb24odCl7dFt0LkVtdWxhdGVkPTBdPVwiRW11bGF0ZWRcIix0W3QuTm9uZT0yXT1cIk5vbmVcIix0W3QuU2hhZG93RG9tPTNdPVwiU2hhZG93RG9tXCJ9KSh5c3x8KHlzPXt9KSk7dmFyIHdzOyhmdW5jdGlvbih0KXt0W3QuT25QdXNoPTBdPVwiT25QdXNoXCIsdFt0LkRlZmF1bHQ9MV09XCJEZWZhdWx0XCJ9KSh3c3x8KHdzPXt9KSk7dmFyIGJzOyhmdW5jdGlvbih0KXt0W3QuTm9uZT0wXT1cIk5vbmVcIix0W3QuU2lnbmFsQmFzZWQ9MV09XCJTaWduYWxCYXNlZFwiLHRbdC5IYXNEZWNvcmF0b3JJbnB1dFRyYW5zZm9ybT0yXT1cIkhhc0RlY29yYXRvcklucHV0VHJhbnNmb3JtXCJ9KShic3x8KGJzPXt9KSk7dmFyIGJyPXtuYW1lOlwiY3VzdG9tLWVsZW1lbnRzXCJ9LFRyPXtuYW1lOlwibm8tZXJyb3JzLXNjaGVtYVwifTt2YXIgWjsoZnVuY3Rpb24odCl7dFt0Lk5PTkU9MF09XCJOT05FXCIsdFt0LkhUTUw9MV09XCJIVE1MXCIsdFt0LlNUWUxFPTJdPVwiU1RZTEVcIix0W3QuU0NSSVBUPTNdPVwiU0NSSVBUXCIsdFt0LlVSTD00XT1cIlVSTFwiLHRbdC5SRVNPVVJDRV9VUkw9NV09XCJSRVNPVVJDRV9VUkxcIn0pKFp8fChaPXt9KSk7dmFyIFRzOyhmdW5jdGlvbih0KXt0W3QuRXJyb3I9MF09XCJFcnJvclwiLHRbdC5XYXJuaW5nPTFdPVwiV2FybmluZ1wiLHRbdC5JZ25vcmU9Ml09XCJJZ25vcmVcIn0pKFRzfHwoVHM9e30pKTt2YXIgSTsoZnVuY3Rpb24odCl7dFt0LlJBV19URVhUPTBdPVwiUkFXX1RFWFRcIix0W3QuRVNDQVBBQkxFX1JBV19URVhUPTFdPVwiRVNDQVBBQkxFX1JBV19URVhUXCIsdFt0LlBBUlNBQkxFX0RBVEE9Ml09XCJQQVJTQUJMRV9EQVRBXCJ9KShJfHwoST17fSkpO2Z1bmN0aW9uIHV0KHQsZT0hMCl7aWYodFswXSE9XCI6XCIpcmV0dXJuW251bGwsdF07bGV0IHI9dC5pbmRleE9mKFwiOlwiLDEpO2lmKHI9PT0tMSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGZvcm1hdCBcIiR7dH1cIiBleHBlY3RpbmcgXCI6bmFtZXNwYWNlOm5hbWVcImApO3JldHVybltudWxsLHRdfXJldHVyblt0LnNsaWNlKDEsciksdC5zbGljZShyKzEpXX1mdW5jdGlvbiB4cih0KXtyZXR1cm4gdXQodClbMV09PT1cIm5nLWNvbnRhaW5lclwifWZ1bmN0aW9uIGtyKHQpe3JldHVybiB1dCh0KVsxXT09PVwibmctY29udGVudFwifWZ1bmN0aW9uIFJlKHQpe3JldHVybiB0PT09bnVsbD9udWxsOnV0KHQpWzBdfWZ1bmN0aW9uIE9lKHQsZSl7cmV0dXJuIHQ/YDoke3R9OiR7ZX1gOmV9dmFyICR0O2Z1bmN0aW9uIEJyKCl7cmV0dXJuICR0fHwoJHQ9e30sT3QoWi5IVE1MLFtcImlmcmFtZXxzcmNkb2NcIixcIip8aW5uZXJIVE1MXCIsXCIqfG91dGVySFRNTFwiXSksT3QoWi5TVFlMRSxbXCIqfHN0eWxlXCJdKSxPdChaLlVSTCxbXCIqfGZvcm1BY3Rpb25cIixcImFyZWF8aHJlZlwiLFwiYXJlYXxwaW5nXCIsXCJhdWRpb3xzcmNcIixcImF8aHJlZlwiLFwiYXxwaW5nXCIsXCJibG9ja3F1b3RlfGNpdGVcIixcImJvZHl8YmFja2dyb3VuZFwiLFwiZGVsfGNpdGVcIixcImZvcm18YWN0aW9uXCIsXCJpbWd8c3JjXCIsXCJpbnB1dHxzcmNcIixcImluc3xjaXRlXCIsXCJxfGNpdGVcIixcInNvdXJjZXxzcmNcIixcInRyYWNrfHNyY1wiLFwidmlkZW98cG9zdGVyXCIsXCJ2aWRlb3xzcmNcIl0pLE90KFouUkVTT1VSQ0VfVVJMLFtcImFwcGxldHxjb2RlXCIsXCJhcHBsZXR8Y29kZWJhc2VcIixcImJhc2V8aHJlZlwiLFwiZW1iZWR8c3JjXCIsXCJmcmFtZXxzcmNcIixcImhlYWR8cHJvZmlsZVwiLFwiaHRtbHxtYW5pZmVzdFwiLFwiaWZyYW1lfHNyY1wiLFwibGlua3xocmVmXCIsXCJtZWRpYXxzcmNcIixcIm9iamVjdHxjb2RlYmFzZVwiLFwib2JqZWN0fGRhdGFcIixcInNjcmlwdHxzcmNcIl0pKSwkdH1mdW5jdGlvbiBPdCh0LGUpe2ZvcihsZXQgciBvZiBlKSR0W3IudG9Mb3dlckNhc2UoKV09dH12YXIgTXQ9Y2xhc3N7fTt2YXIgSWE9XCJib29sZWFuXCIsUmE9XCJudW1iZXJcIixPYT1cInN0cmluZ1wiLCRhPVwib2JqZWN0XCIsTWE9W1wiW0VsZW1lbnRdfHRleHRDb250ZW50LCVhcmlhQXRvbWljLCVhcmlhQXV0b0NvbXBsZXRlLCVhcmlhQnVzeSwlYXJpYUNoZWNrZWQsJWFyaWFDb2xDb3VudCwlYXJpYUNvbEluZGV4LCVhcmlhQ29sU3BhbiwlYXJpYUN1cnJlbnQsJWFyaWFEZXNjcmlwdGlvbiwlYXJpYURpc2FibGVkLCVhcmlhRXhwYW5kZWQsJWFyaWFIYXNQb3B1cCwlYXJpYUhpZGRlbiwlYXJpYUtleVNob3J0Y3V0cywlYXJpYUxhYmVsLCVhcmlhTGV2ZWwsJWFyaWFMaXZlLCVhcmlhTW9kYWwsJWFyaWFNdWx0aUxpbmUsJWFyaWFNdWx0aVNlbGVjdGFibGUsJWFyaWFPcmllbnRhdGlvbiwlYXJpYVBsYWNlaG9sZGVyLCVhcmlhUG9zSW5TZXQsJWFyaWFQcmVzc2VkLCVhcmlhUmVhZE9ubHksJWFyaWFSZWxldmFudCwlYXJpYVJlcXVpcmVkLCVhcmlhUm9sZURlc2NyaXB0aW9uLCVhcmlhUm93Q291bnQsJWFyaWFSb3dJbmRleCwlYXJpYVJvd1NwYW4sJWFyaWFTZWxlY3RlZCwlYXJpYVNldFNpemUsJWFyaWFTb3J0LCVhcmlhVmFsdWVNYXgsJWFyaWFWYWx1ZU1pbiwlYXJpYVZhbHVlTm93LCVhcmlhVmFsdWVUZXh0LCVjbGFzc0xpc3QsY2xhc3NOYW1lLGVsZW1lbnRUaW1pbmcsaWQsaW5uZXJIVE1MLCpiZWZvcmVjb3B5LCpiZWZvcmVjdXQsKmJlZm9yZXBhc3RlLCpmdWxsc2NyZWVuY2hhbmdlLCpmdWxsc2NyZWVuZXJyb3IsKnNlYXJjaCwqd2Via2l0ZnVsbHNjcmVlbmNoYW5nZSwqd2Via2l0ZnVsbHNjcmVlbmVycm9yLG91dGVySFRNTCwlcGFydCwjc2Nyb2xsTGVmdCwjc2Nyb2xsVG9wLHNsb3QsKm1lc3NhZ2UsKm1vemZ1bGxzY3JlZW5jaGFuZ2UsKm1vemZ1bGxzY3JlZW5lcnJvciwqbW96cG9pbnRlcmxvY2tjaGFuZ2UsKm1venBvaW50ZXJsb2NrZXJyb3IsKndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IsKndlYmdsY29udGV4dGxvc3QsKndlYmdsY29udGV4dHJlc3RvcmVkXCIsXCJbSFRNTEVsZW1lbnRdXltFbGVtZW50XXxhY2Nlc3NLZXksYXV0b2NhcGl0YWxpemUsIWF1dG9mb2N1cyxjb250ZW50RWRpdGFibGUsZGlyLCFkcmFnZ2FibGUsZW50ZXJLZXlIaW50LCFoaWRkZW4sIWluZXJ0LGlubmVyVGV4dCxpbnB1dE1vZGUsbGFuZyxub25jZSwqYWJvcnQsKmFuaW1hdGlvbmVuZCwqYW5pbWF0aW9uaXRlcmF0aW9uLCphbmltYXRpb25zdGFydCwqYXV4Y2xpY2ssKmJlZm9yZXhyc2VsZWN0LCpibHVyLCpjYW5jZWwsKmNhbnBsYXksKmNhbnBsYXl0aHJvdWdoLCpjaGFuZ2UsKmNsaWNrLCpjbG9zZSwqY29udGV4dG1lbnUsKmNvcHksKmN1ZWNoYW5nZSwqY3V0LCpkYmxjbGljaywqZHJhZywqZHJhZ2VuZCwqZHJhZ2VudGVyLCpkcmFnbGVhdmUsKmRyYWdvdmVyLCpkcmFnc3RhcnQsKmRyb3AsKmR1cmF0aW9uY2hhbmdlLCplbXB0aWVkLCplbmRlZCwqZXJyb3IsKmZvY3VzLCpmb3JtZGF0YSwqZ290cG9pbnRlcmNhcHR1cmUsKmlucHV0LCppbnZhbGlkLCprZXlkb3duLCprZXlwcmVzcywqa2V5dXAsKmxvYWQsKmxvYWRlZGRhdGEsKmxvYWRlZG1ldGFkYXRhLCpsb2Fkc3RhcnQsKmxvc3Rwb2ludGVyY2FwdHVyZSwqbW91c2Vkb3duLCptb3VzZWVudGVyLCptb3VzZWxlYXZlLCptb3VzZW1vdmUsKm1vdXNlb3V0LCptb3VzZW92ZXIsKm1vdXNldXAsKm1vdXNld2hlZWwsKnBhc3RlLCpwYXVzZSwqcGxheSwqcGxheWluZywqcG9pbnRlcmNhbmNlbCwqcG9pbnRlcmRvd24sKnBvaW50ZXJlbnRlciwqcG9pbnRlcmxlYXZlLCpwb2ludGVybW92ZSwqcG9pbnRlcm91dCwqcG9pbnRlcm92ZXIsKnBvaW50ZXJyYXd1cGRhdGUsKnBvaW50ZXJ1cCwqcHJvZ3Jlc3MsKnJhdGVjaGFuZ2UsKnJlc2V0LCpyZXNpemUsKnNjcm9sbCwqc2VjdXJpdHlwb2xpY3l2aW9sYXRpb24sKnNlZWtlZCwqc2Vla2luZywqc2VsZWN0LCpzZWxlY3Rpb25jaGFuZ2UsKnNlbGVjdHN0YXJ0LCpzbG90Y2hhbmdlLCpzdGFsbGVkLCpzdWJtaXQsKnN1c3BlbmQsKnRpbWV1cGRhdGUsKnRvZ2dsZSwqdHJhbnNpdGlvbmNhbmNlbCwqdHJhbnNpdGlvbmVuZCwqdHJhbnNpdGlvbnJ1biwqdHJhbnNpdGlvbnN0YXJ0LCp2b2x1bWVjaGFuZ2UsKndhaXRpbmcsKndlYmtpdGFuaW1hdGlvbmVuZCwqd2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uLCp3ZWJraXRhbmltYXRpb25zdGFydCwqd2Via2l0dHJhbnNpdGlvbmVuZCwqd2hlZWwsb3V0ZXJUZXh0LCFzcGVsbGNoZWNrLCVzdHlsZSwjdGFiSW5kZXgsdGl0bGUsIXRyYW5zbGF0ZSx2aXJ0dWFsS2V5Ym9hcmRQb2xpY3lcIixcImFiYnIsYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGIsYmRpLGJkbyxjaXRlLGNvbnRlbnQsY29kZSxkZCxkZm4sZHQsZW0sZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsaSxrYmQsbWFpbixtYXJrLG5hdixub3NjcmlwdCxyYixycCxydCxydGMscnVieSxzLHNhbXAsc2VjdGlvbixzbWFsbCxzdHJvbmcsc3ViLHN1cCx1LHZhcix3YnJeW0hUTUxFbGVtZW50XXxhY2Nlc3NLZXksYXV0b2NhcGl0YWxpemUsIWF1dG9mb2N1cyxjb250ZW50RWRpdGFibGUsZGlyLCFkcmFnZ2FibGUsZW50ZXJLZXlIaW50LCFoaWRkZW4saW5uZXJUZXh0LGlucHV0TW9kZSxsYW5nLG5vbmNlLCphYm9ydCwqYW5pbWF0aW9uZW5kLCphbmltYXRpb25pdGVyYXRpb24sKmFuaW1hdGlvbnN0YXJ0LCphdXhjbGljaywqYmVmb3JleHJzZWxlY3QsKmJsdXIsKmNhbmNlbCwqY2FucGxheSwqY2FucGxheXRocm91Z2gsKmNoYW5nZSwqY2xpY2ssKmNsb3NlLCpjb250ZXh0bWVudSwqY29weSwqY3VlY2hhbmdlLCpjdXQsKmRibGNsaWNrLCpkcmFnLCpkcmFnZW5kLCpkcmFnZW50ZXIsKmRyYWdsZWF2ZSwqZHJhZ292ZXIsKmRyYWdzdGFydCwqZHJvcCwqZHVyYXRpb25jaGFuZ2UsKmVtcHRpZWQsKmVuZGVkLCplcnJvciwqZm9jdXMsKmZvcm1kYXRhLCpnb3Rwb2ludGVyY2FwdHVyZSwqaW5wdXQsKmludmFsaWQsKmtleWRvd24sKmtleXByZXNzLCprZXl1cCwqbG9hZCwqbG9hZGVkZGF0YSwqbG9hZGVkbWV0YWRhdGEsKmxvYWRzdGFydCwqbG9zdHBvaW50ZXJjYXB0dXJlLCptb3VzZWRvd24sKm1vdXNlZW50ZXIsKm1vdXNlbGVhdmUsKm1vdXNlbW92ZSwqbW91c2VvdXQsKm1vdXNlb3ZlciwqbW91c2V1cCwqbW91c2V3aGVlbCwqcGFzdGUsKnBhdXNlLCpwbGF5LCpwbGF5aW5nLCpwb2ludGVyY2FuY2VsLCpwb2ludGVyZG93biwqcG9pbnRlcmVudGVyLCpwb2ludGVybGVhdmUsKnBvaW50ZXJtb3ZlLCpwb2ludGVyb3V0LCpwb2ludGVyb3ZlciwqcG9pbnRlcnJhd3VwZGF0ZSwqcG9pbnRlcnVwLCpwcm9ncmVzcywqcmF0ZWNoYW5nZSwqcmVzZXQsKnJlc2l6ZSwqc2Nyb2xsLCpzZWN1cml0eXBvbGljeXZpb2xhdGlvbiwqc2Vla2VkLCpzZWVraW5nLCpzZWxlY3QsKnNlbGVjdGlvbmNoYW5nZSwqc2VsZWN0c3RhcnQsKnNsb3RjaGFuZ2UsKnN0YWxsZWQsKnN1Ym1pdCwqc3VzcGVuZCwqdGltZXVwZGF0ZSwqdG9nZ2xlLCp0cmFuc2l0aW9uY2FuY2VsLCp0cmFuc2l0aW9uZW5kLCp0cmFuc2l0aW9ucnVuLCp0cmFuc2l0aW9uc3RhcnQsKnZvbHVtZWNoYW5nZSwqd2FpdGluZywqd2Via2l0YW5pbWF0aW9uZW5kLCp3ZWJraXRhbmltYXRpb25pdGVyYXRpb24sKndlYmtpdGFuaW1hdGlvbnN0YXJ0LCp3ZWJraXR0cmFuc2l0aW9uZW5kLCp3aGVlbCxvdXRlclRleHQsIXNwZWxsY2hlY2ssJXN0eWxlLCN0YWJJbmRleCx0aXRsZSwhdHJhbnNsYXRlLHZpcnR1YWxLZXlib2FyZFBvbGljeVwiLFwibWVkaWFeW0hUTUxFbGVtZW50XXwhYXV0b3BsYXksIWNvbnRyb2xzLCVjb250cm9sc0xpc3QsJWNyb3NzT3JpZ2luLCNjdXJyZW50VGltZSwhZGVmYXVsdE11dGVkLCNkZWZhdWx0UGxheWJhY2tSYXRlLCFkaXNhYmxlUmVtb3RlUGxheWJhY2ssIWxvb3AsIW11dGVkLCplbmNyeXB0ZWQsKndhaXRpbmdmb3JrZXksI3BsYXliYWNrUmF0ZSxwcmVsb2FkLCFwcmVzZXJ2ZXNQaXRjaCxzcmMsJXNyY09iamVjdCwjdm9sdW1lXCIsXCI6c3ZnOl5bSFRNTEVsZW1lbnRdfCFhdXRvZm9jdXMsbm9uY2UsKmFib3J0LCphbmltYXRpb25lbmQsKmFuaW1hdGlvbml0ZXJhdGlvbiwqYW5pbWF0aW9uc3RhcnQsKmF1eGNsaWNrLCpiZWZvcmV4cnNlbGVjdCwqYmx1ciwqY2FuY2VsLCpjYW5wbGF5LCpjYW5wbGF5dGhyb3VnaCwqY2hhbmdlLCpjbGljaywqY2xvc2UsKmNvbnRleHRtZW51LCpjb3B5LCpjdWVjaGFuZ2UsKmN1dCwqZGJsY2xpY2ssKmRyYWcsKmRyYWdlbmQsKmRyYWdlbnRlciwqZHJhZ2xlYXZlLCpkcmFnb3ZlciwqZHJhZ3N0YXJ0LCpkcm9wLCpkdXJhdGlvbmNoYW5nZSwqZW1wdGllZCwqZW5kZWQsKmVycm9yLCpmb2N1cywqZm9ybWRhdGEsKmdvdHBvaW50ZXJjYXB0dXJlLCppbnB1dCwqaW52YWxpZCwqa2V5ZG93biwqa2V5cHJlc3MsKmtleXVwLCpsb2FkLCpsb2FkZWRkYXRhLCpsb2FkZWRtZXRhZGF0YSwqbG9hZHN0YXJ0LCpsb3N0cG9pbnRlcmNhcHR1cmUsKm1vdXNlZG93biwqbW91c2VlbnRlciwqbW91c2VsZWF2ZSwqbW91c2Vtb3ZlLCptb3VzZW91dCwqbW91c2VvdmVyLCptb3VzZXVwLCptb3VzZXdoZWVsLCpwYXN0ZSwqcGF1c2UsKnBsYXksKnBsYXlpbmcsKnBvaW50ZXJjYW5jZWwsKnBvaW50ZXJkb3duLCpwb2ludGVyZW50ZXIsKnBvaW50ZXJsZWF2ZSwqcG9pbnRlcm1vdmUsKnBvaW50ZXJvdXQsKnBvaW50ZXJvdmVyLCpwb2ludGVycmF3dXBkYXRlLCpwb2ludGVydXAsKnByb2dyZXNzLCpyYXRlY2hhbmdlLCpyZXNldCwqcmVzaXplLCpzY3JvbGwsKnNlY3VyaXR5cG9saWN5dmlvbGF0aW9uLCpzZWVrZWQsKnNlZWtpbmcsKnNlbGVjdCwqc2VsZWN0aW9uY2hhbmdlLCpzZWxlY3RzdGFydCwqc2xvdGNoYW5nZSwqc3RhbGxlZCwqc3VibWl0LCpzdXNwZW5kLCp0aW1ldXBkYXRlLCp0b2dnbGUsKnRyYW5zaXRpb25jYW5jZWwsKnRyYW5zaXRpb25lbmQsKnRyYW5zaXRpb25ydW4sKnRyYW5zaXRpb25zdGFydCwqdm9sdW1lY2hhbmdlLCp3YWl0aW5nLCp3ZWJraXRhbmltYXRpb25lbmQsKndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbiwqd2Via2l0YW5pbWF0aW9uc3RhcnQsKndlYmtpdHRyYW5zaXRpb25lbmQsKndoZWVsLCVzdHlsZSwjdGFiSW5kZXhcIixcIjpzdmc6Z3JhcGhpY3NeOnN2Zzp8XCIsXCI6c3ZnOmFuaW1hdGlvbl46c3ZnOnwqYmVnaW4sKmVuZCwqcmVwZWF0XCIsXCI6c3ZnOmdlb21ldHJ5Xjpzdmc6fFwiLFwiOnN2Zzpjb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uXjpzdmc6fFwiLFwiOnN2ZzpncmFkaWVudF46c3ZnOnxcIixcIjpzdmc6dGV4dENvbnRlbnReOnN2ZzpncmFwaGljc3xcIixcIjpzdmc6dGV4dFBvc2l0aW9uaW5nXjpzdmc6dGV4dENvbnRlbnR8XCIsXCJhXltIVE1MRWxlbWVudF18Y2hhcnNldCxjb29yZHMsZG93bmxvYWQsaGFzaCxob3N0LGhvc3RuYW1lLGhyZWYsaHJlZmxhbmcsbmFtZSxwYXNzd29yZCxwYXRobmFtZSxwaW5nLHBvcnQscHJvdG9jb2wscmVmZXJyZXJQb2xpY3kscmVsLCVyZWxMaXN0LHJldixzZWFyY2gsc2hhcGUsdGFyZ2V0LHRleHQsdHlwZSx1c2VybmFtZVwiLFwiYXJlYV5bSFRNTEVsZW1lbnRdfGFsdCxjb29yZHMsZG93bmxvYWQsaGFzaCxob3N0LGhvc3RuYW1lLGhyZWYsIW5vSHJlZixwYXNzd29yZCxwYXRobmFtZSxwaW5nLHBvcnQscHJvdG9jb2wscmVmZXJyZXJQb2xpY3kscmVsLCVyZWxMaXN0LHNlYXJjaCxzaGFwZSx0YXJnZXQsdXNlcm5hbWVcIixcImF1ZGlvXm1lZGlhfFwiLFwiYnJeW0hUTUxFbGVtZW50XXxjbGVhclwiLFwiYmFzZV5bSFRNTEVsZW1lbnRdfGhyZWYsdGFyZ2V0XCIsXCJib2R5XltIVE1MRWxlbWVudF18YUxpbmssYmFja2dyb3VuZCxiZ0NvbG9yLGxpbmssKmFmdGVycHJpbnQsKmJlZm9yZXByaW50LCpiZWZvcmV1bmxvYWQsKmJsdXIsKmVycm9yLCpmb2N1cywqaGFzaGNoYW5nZSwqbGFuZ3VhZ2VjaGFuZ2UsKmxvYWQsKm1lc3NhZ2UsKm1lc3NhZ2VlcnJvciwqb2ZmbGluZSwqb25saW5lLCpwYWdlaGlkZSwqcGFnZXNob3csKnBvcHN0YXRlLCpyZWplY3Rpb25oYW5kbGVkLCpyZXNpemUsKnNjcm9sbCwqc3RvcmFnZSwqdW5oYW5kbGVkcmVqZWN0aW9uLCp1bmxvYWQsdGV4dCx2TGlua1wiLFwiYnV0dG9uXltIVE1MRWxlbWVudF18IWRpc2FibGVkLGZvcm1BY3Rpb24sZm9ybUVuY3R5cGUsZm9ybU1ldGhvZCwhZm9ybU5vVmFsaWRhdGUsZm9ybVRhcmdldCxuYW1lLHR5cGUsdmFsdWVcIixcImNhbnZhc15bSFRNTEVsZW1lbnRdfCNoZWlnaHQsI3dpZHRoXCIsXCJjb250ZW50XltIVE1MRWxlbWVudF18c2VsZWN0XCIsXCJkbF5bSFRNTEVsZW1lbnRdfCFjb21wYWN0XCIsXCJkYXRhXltIVE1MRWxlbWVudF18dmFsdWVcIixcImRhdGFsaXN0XltIVE1MRWxlbWVudF18XCIsXCJkZXRhaWxzXltIVE1MRWxlbWVudF18IW9wZW5cIixcImRpYWxvZ15bSFRNTEVsZW1lbnRdfCFvcGVuLHJldHVyblZhbHVlXCIsXCJkaXJeW0hUTUxFbGVtZW50XXwhY29tcGFjdFwiLFwiZGl2XltIVE1MRWxlbWVudF18YWxpZ25cIixcImVtYmVkXltIVE1MRWxlbWVudF18YWxpZ24saGVpZ2h0LG5hbWUsc3JjLHR5cGUsd2lkdGhcIixcImZpZWxkc2V0XltIVE1MRWxlbWVudF18IWRpc2FibGVkLG5hbWVcIixcImZvbnReW0hUTUxFbGVtZW50XXxjb2xvcixmYWNlLHNpemVcIixcImZvcm1eW0hUTUxFbGVtZW50XXxhY2NlcHRDaGFyc2V0LGFjdGlvbixhdXRvY29tcGxldGUsZW5jb2RpbmcsZW5jdHlwZSxtZXRob2QsbmFtZSwhbm9WYWxpZGF0ZSx0YXJnZXRcIixcImZyYW1lXltIVE1MRWxlbWVudF18ZnJhbWVCb3JkZXIsbG9uZ0Rlc2MsbWFyZ2luSGVpZ2h0LG1hcmdpbldpZHRoLG5hbWUsIW5vUmVzaXplLHNjcm9sbGluZyxzcmNcIixcImZyYW1lc2V0XltIVE1MRWxlbWVudF18Y29scywqYWZ0ZXJwcmludCwqYmVmb3JlcHJpbnQsKmJlZm9yZXVubG9hZCwqYmx1ciwqZXJyb3IsKmZvY3VzLCpoYXNoY2hhbmdlLCpsYW5ndWFnZWNoYW5nZSwqbG9hZCwqbWVzc2FnZSwqbWVzc2FnZWVycm9yLCpvZmZsaW5lLCpvbmxpbmUsKnBhZ2VoaWRlLCpwYWdlc2hvdywqcG9wc3RhdGUsKnJlamVjdGlvbmhhbmRsZWQsKnJlc2l6ZSwqc2Nyb2xsLCpzdG9yYWdlLCp1bmhhbmRsZWRyZWplY3Rpb24sKnVubG9hZCxyb3dzXCIsXCJocl5bSFRNTEVsZW1lbnRdfGFsaWduLGNvbG9yLCFub1NoYWRlLHNpemUsd2lkdGhcIixcImhlYWReW0hUTUxFbGVtZW50XXxcIixcImgxLGgyLGgzLGg0LGg1LGg2XltIVE1MRWxlbWVudF18YWxpZ25cIixcImh0bWxeW0hUTUxFbGVtZW50XXx2ZXJzaW9uXCIsXCJpZnJhbWVeW0hUTUxFbGVtZW50XXxhbGlnbixhbGxvdywhYWxsb3dGdWxsc2NyZWVuLCFhbGxvd1BheW1lbnRSZXF1ZXN0LGNzcCxmcmFtZUJvcmRlcixoZWlnaHQsbG9hZGluZyxsb25nRGVzYyxtYXJnaW5IZWlnaHQsbWFyZ2luV2lkdGgsbmFtZSxyZWZlcnJlclBvbGljeSwlc2FuZGJveCxzY3JvbGxpbmcsc3JjLHNyY2RvYyx3aWR0aFwiLFwiaW1nXltIVE1MRWxlbWVudF18YWxpZ24sYWx0LGJvcmRlciwlY3Jvc3NPcmlnaW4sZGVjb2RpbmcsI2hlaWdodCwjaHNwYWNlLCFpc01hcCxsb2FkaW5nLGxvbmdEZXNjLGxvd3NyYyxuYW1lLHJlZmVycmVyUG9saWN5LHNpemVzLHNyYyxzcmNzZXQsdXNlTWFwLCN2c3BhY2UsI3dpZHRoXCIsXCJpbnB1dF5bSFRNTEVsZW1lbnRdfGFjY2VwdCxhbGlnbixhbHQsYXV0b2NvbXBsZXRlLCFjaGVja2VkLCFkZWZhdWx0Q2hlY2tlZCxkZWZhdWx0VmFsdWUsZGlyTmFtZSwhZGlzYWJsZWQsJWZpbGVzLGZvcm1BY3Rpb24sZm9ybUVuY3R5cGUsZm9ybU1ldGhvZCwhZm9ybU5vVmFsaWRhdGUsZm9ybVRhcmdldCwjaGVpZ2h0LCFpbmNyZW1lbnRhbCwhaW5kZXRlcm1pbmF0ZSxtYXgsI21heExlbmd0aCxtaW4sI21pbkxlbmd0aCwhbXVsdGlwbGUsbmFtZSxwYXR0ZXJuLHBsYWNlaG9sZGVyLCFyZWFkT25seSwhcmVxdWlyZWQsc2VsZWN0aW9uRGlyZWN0aW9uLCNzZWxlY3Rpb25FbmQsI3NlbGVjdGlvblN0YXJ0LCNzaXplLHNyYyxzdGVwLHR5cGUsdXNlTWFwLHZhbHVlLCV2YWx1ZUFzRGF0ZSwjdmFsdWVBc051bWJlciwjd2lkdGhcIixcImxpXltIVE1MRWxlbWVudF18dHlwZSwjdmFsdWVcIixcImxhYmVsXltIVE1MRWxlbWVudF18aHRtbEZvclwiLFwibGVnZW5kXltIVE1MRWxlbWVudF18YWxpZ25cIixcImxpbmteW0hUTUxFbGVtZW50XXxhcyxjaGFyc2V0LCVjcm9zc09yaWdpbiwhZGlzYWJsZWQsaHJlZixocmVmbGFuZyxpbWFnZVNpemVzLGltYWdlU3Jjc2V0LGludGVncml0eSxtZWRpYSxyZWZlcnJlclBvbGljeSxyZWwsJXJlbExpc3QscmV2LCVzaXplcyx0YXJnZXQsdHlwZVwiLFwibWFwXltIVE1MRWxlbWVudF18bmFtZVwiLFwibWFycXVlZV5bSFRNTEVsZW1lbnRdfGJlaGF2aW9yLGJnQ29sb3IsZGlyZWN0aW9uLGhlaWdodCwjaHNwYWNlLCNsb29wLCNzY3JvbGxBbW91bnQsI3Njcm9sbERlbGF5LCF0cnVlU3BlZWQsI3ZzcGFjZSx3aWR0aFwiLFwibWVudV5bSFRNTEVsZW1lbnRdfCFjb21wYWN0XCIsXCJtZXRhXltIVE1MRWxlbWVudF18Y29udGVudCxodHRwRXF1aXYsbWVkaWEsbmFtZSxzY2hlbWVcIixcIm1ldGVyXltIVE1MRWxlbWVudF18I2hpZ2gsI2xvdywjbWF4LCNtaW4sI29wdGltdW0sI3ZhbHVlXCIsXCJpbnMsZGVsXltIVE1MRWxlbWVudF18Y2l0ZSxkYXRlVGltZVwiLFwib2xeW0hUTUxFbGVtZW50XXwhY29tcGFjdCwhcmV2ZXJzZWQsI3N0YXJ0LHR5cGVcIixcIm9iamVjdF5bSFRNTEVsZW1lbnRdfGFsaWduLGFyY2hpdmUsYm9yZGVyLGNvZGUsY29kZUJhc2UsY29kZVR5cGUsZGF0YSwhZGVjbGFyZSxoZWlnaHQsI2hzcGFjZSxuYW1lLHN0YW5kYnksdHlwZSx1c2VNYXAsI3ZzcGFjZSx3aWR0aFwiLFwib3B0Z3JvdXBeW0hUTUxFbGVtZW50XXwhZGlzYWJsZWQsbGFiZWxcIixcIm9wdGlvbl5bSFRNTEVsZW1lbnRdfCFkZWZhdWx0U2VsZWN0ZWQsIWRpc2FibGVkLGxhYmVsLCFzZWxlY3RlZCx0ZXh0LHZhbHVlXCIsXCJvdXRwdXReW0hUTUxFbGVtZW50XXxkZWZhdWx0VmFsdWUsJWh0bWxGb3IsbmFtZSx2YWx1ZVwiLFwicF5bSFRNTEVsZW1lbnRdfGFsaWduXCIsXCJwYXJhbV5bSFRNTEVsZW1lbnRdfG5hbWUsdHlwZSx2YWx1ZSx2YWx1ZVR5cGVcIixcInBpY3R1cmVeW0hUTUxFbGVtZW50XXxcIixcInByZV5bSFRNTEVsZW1lbnRdfCN3aWR0aFwiLFwicHJvZ3Jlc3NeW0hUTUxFbGVtZW50XXwjbWF4LCN2YWx1ZVwiLFwicSxibG9ja3F1b3RlLGNpdGVeW0hUTUxFbGVtZW50XXxcIixcInNjcmlwdF5bSFRNTEVsZW1lbnRdfCFhc3luYyxjaGFyc2V0LCVjcm9zc09yaWdpbiwhZGVmZXIsZXZlbnQsaHRtbEZvcixpbnRlZ3JpdHksIW5vTW9kdWxlLCVyZWZlcnJlclBvbGljeSxzcmMsdGV4dCx0eXBlXCIsXCJzZWxlY3ReW0hUTUxFbGVtZW50XXxhdXRvY29tcGxldGUsIWRpc2FibGVkLCNsZW5ndGgsIW11bHRpcGxlLG5hbWUsIXJlcXVpcmVkLCNzZWxlY3RlZEluZGV4LCNzaXplLHZhbHVlXCIsXCJzbG90XltIVE1MRWxlbWVudF18bmFtZVwiLFwic291cmNlXltIVE1MRWxlbWVudF18I2hlaWdodCxtZWRpYSxzaXplcyxzcmMsc3Jjc2V0LHR5cGUsI3dpZHRoXCIsXCJzcGFuXltIVE1MRWxlbWVudF18XCIsXCJzdHlsZV5bSFRNTEVsZW1lbnRdfCFkaXNhYmxlZCxtZWRpYSx0eXBlXCIsXCJjYXB0aW9uXltIVE1MRWxlbWVudF18YWxpZ25cIixcInRoLHRkXltIVE1MRWxlbWVudF18YWJicixhbGlnbixheGlzLGJnQ29sb3IsY2gsY2hPZmYsI2NvbFNwYW4saGVhZGVycyxoZWlnaHQsIW5vV3JhcCwjcm93U3BhbixzY29wZSx2QWxpZ24sd2lkdGhcIixcImNvbCxjb2xncm91cF5bSFRNTEVsZW1lbnRdfGFsaWduLGNoLGNoT2ZmLCNzcGFuLHZBbGlnbix3aWR0aFwiLFwidGFibGVeW0hUTUxFbGVtZW50XXxhbGlnbixiZ0NvbG9yLGJvcmRlciwlY2FwdGlvbixjZWxsUGFkZGluZyxjZWxsU3BhY2luZyxmcmFtZSxydWxlcyxzdW1tYXJ5LCV0Rm9vdCwldEhlYWQsd2lkdGhcIixcInRyXltIVE1MRWxlbWVudF18YWxpZ24sYmdDb2xvcixjaCxjaE9mZix2QWxpZ25cIixcInRmb290LHRoZWFkLHRib2R5XltIVE1MRWxlbWVudF18YWxpZ24sY2gsY2hPZmYsdkFsaWduXCIsXCJ0ZW1wbGF0ZV5bSFRNTEVsZW1lbnRdfFwiLFwidGV4dGFyZWFeW0hUTUxFbGVtZW50XXxhdXRvY29tcGxldGUsI2NvbHMsZGVmYXVsdFZhbHVlLGRpck5hbWUsIWRpc2FibGVkLCNtYXhMZW5ndGgsI21pbkxlbmd0aCxuYW1lLHBsYWNlaG9sZGVyLCFyZWFkT25seSwhcmVxdWlyZWQsI3Jvd3Msc2VsZWN0aW9uRGlyZWN0aW9uLCNzZWxlY3Rpb25FbmQsI3NlbGVjdGlvblN0YXJ0LHZhbHVlLHdyYXBcIixcInRpbWVeW0hUTUxFbGVtZW50XXxkYXRlVGltZVwiLFwidGl0bGVeW0hUTUxFbGVtZW50XXx0ZXh0XCIsXCJ0cmFja15bSFRNTEVsZW1lbnRdfCFkZWZhdWx0LGtpbmQsbGFiZWwsc3JjLHNyY2xhbmdcIixcInVsXltIVE1MRWxlbWVudF18IWNvbXBhY3QsdHlwZVwiLFwidW5rbm93bl5bSFRNTEVsZW1lbnRdfFwiLFwidmlkZW9ebWVkaWF8IWRpc2FibGVQaWN0dXJlSW5QaWN0dXJlLCNoZWlnaHQsKmVudGVycGljdHVyZWlucGljdHVyZSwqbGVhdmVwaWN0dXJlaW5waWN0dXJlLCFwbGF5c0lubGluZSxwb3N0ZXIsI3dpZHRoXCIsXCI6c3ZnOmFeOnN2ZzpncmFwaGljc3xcIixcIjpzdmc6YW5pbWF0ZV46c3ZnOmFuaW1hdGlvbnxcIixcIjpzdmc6YW5pbWF0ZU1vdGlvbl46c3ZnOmFuaW1hdGlvbnxcIixcIjpzdmc6YW5pbWF0ZVRyYW5zZm9ybV46c3ZnOmFuaW1hdGlvbnxcIixcIjpzdmc6Y2lyY2xlXjpzdmc6Z2VvbWV0cnl8XCIsXCI6c3ZnOmNsaXBQYXRoXjpzdmc6Z3JhcGhpY3N8XCIsXCI6c3ZnOmRlZnNeOnN2ZzpncmFwaGljc3xcIixcIjpzdmc6ZGVzY146c3ZnOnxcIixcIjpzdmc6ZGlzY2FyZF46c3ZnOnxcIixcIjpzdmc6ZWxsaXBzZV46c3ZnOmdlb21ldHJ5fFwiLFwiOnN2ZzpmZUJsZW5kXjpzdmc6fFwiLFwiOnN2ZzpmZUNvbG9yTWF0cml4Xjpzdmc6fFwiLFwiOnN2ZzpmZUNvbXBvbmVudFRyYW5zZmVyXjpzdmc6fFwiLFwiOnN2ZzpmZUNvbXBvc2l0ZV46c3ZnOnxcIixcIjpzdmc6ZmVDb252b2x2ZU1hdHJpeF46c3ZnOnxcIixcIjpzdmc6ZmVEaWZmdXNlTGlnaHRpbmdeOnN2Zzp8XCIsXCI6c3ZnOmZlRGlzcGxhY2VtZW50TWFwXjpzdmc6fFwiLFwiOnN2ZzpmZURpc3RhbnRMaWdodF46c3ZnOnxcIixcIjpzdmc6ZmVEcm9wU2hhZG93Xjpzdmc6fFwiLFwiOnN2ZzpmZUZsb29kXjpzdmc6fFwiLFwiOnN2ZzpmZUZ1bmNBXjpzdmc6Y29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbnxcIixcIjpzdmc6ZmVGdW5jQl46c3ZnOmNvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb258XCIsXCI6c3ZnOmZlRnVuY0deOnN2Zzpjb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9ufFwiLFwiOnN2ZzpmZUZ1bmNSXjpzdmc6Y29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbnxcIixcIjpzdmc6ZmVHYXVzc2lhbkJsdXJeOnN2Zzp8XCIsXCI6c3ZnOmZlSW1hZ2VeOnN2Zzp8XCIsXCI6c3ZnOmZlTWVyZ2VeOnN2Zzp8XCIsXCI6c3ZnOmZlTWVyZ2VOb2RlXjpzdmc6fFwiLFwiOnN2ZzpmZU1vcnBob2xvZ3leOnN2Zzp8XCIsXCI6c3ZnOmZlT2Zmc2V0Xjpzdmc6fFwiLFwiOnN2ZzpmZVBvaW50TGlnaHReOnN2Zzp8XCIsXCI6c3ZnOmZlU3BlY3VsYXJMaWdodGluZ146c3ZnOnxcIixcIjpzdmc6ZmVTcG90TGlnaHReOnN2Zzp8XCIsXCI6c3ZnOmZlVGlsZV46c3ZnOnxcIixcIjpzdmc6ZmVUdXJidWxlbmNlXjpzdmc6fFwiLFwiOnN2ZzpmaWx0ZXJeOnN2Zzp8XCIsXCI6c3ZnOmZvcmVpZ25PYmplY3ReOnN2ZzpncmFwaGljc3xcIixcIjpzdmc6Z146c3ZnOmdyYXBoaWNzfFwiLFwiOnN2ZzppbWFnZV46c3ZnOmdyYXBoaWNzfGRlY29kaW5nXCIsXCI6c3ZnOmxpbmVeOnN2ZzpnZW9tZXRyeXxcIixcIjpzdmc6bGluZWFyR3JhZGllbnReOnN2ZzpncmFkaWVudHxcIixcIjpzdmc6bXBhdGheOnN2Zzp8XCIsXCI6c3ZnOm1hcmtlcl46c3ZnOnxcIixcIjpzdmc6bWFza146c3ZnOnxcIixcIjpzdmc6bWV0YWRhdGFeOnN2Zzp8XCIsXCI6c3ZnOnBhdGheOnN2ZzpnZW9tZXRyeXxcIixcIjpzdmc6cGF0dGVybl46c3ZnOnxcIixcIjpzdmc6cG9seWdvbl46c3ZnOmdlb21ldHJ5fFwiLFwiOnN2Zzpwb2x5bGluZV46c3ZnOmdlb21ldHJ5fFwiLFwiOnN2ZzpyYWRpYWxHcmFkaWVudF46c3ZnOmdyYWRpZW50fFwiLFwiOnN2ZzpyZWN0Xjpzdmc6Z2VvbWV0cnl8XCIsXCI6c3ZnOnN2Z146c3ZnOmdyYXBoaWNzfCNjdXJyZW50U2NhbGUsI3pvb21BbmRQYW5cIixcIjpzdmc6c2NyaXB0Xjpzdmc6fHR5cGVcIixcIjpzdmc6c2V0Xjpzdmc6YW5pbWF0aW9ufFwiLFwiOnN2ZzpzdG9wXjpzdmc6fFwiLFwiOnN2ZzpzdHlsZV46c3ZnOnwhZGlzYWJsZWQsbWVkaWEsdGl0bGUsdHlwZVwiLFwiOnN2Zzpzd2l0Y2heOnN2ZzpncmFwaGljc3xcIixcIjpzdmc6c3ltYm9sXjpzdmc6fFwiLFwiOnN2Zzp0c3Bhbl46c3ZnOnRleHRQb3NpdGlvbmluZ3xcIixcIjpzdmc6dGV4dF46c3ZnOnRleHRQb3NpdGlvbmluZ3xcIixcIjpzdmc6dGV4dFBhdGheOnN2Zzp0ZXh0Q29udGVudHxcIixcIjpzdmc6dGl0bGVeOnN2Zzp8XCIsXCI6c3ZnOnVzZV46c3ZnOmdyYXBoaWNzfFwiLFwiOnN2Zzp2aWV3Xjpzdmc6fCN6b29tQW5kUGFuXCIsXCJkYXRhXltIVE1MRWxlbWVudF18dmFsdWVcIixcImtleWdlbl5bSFRNTEVsZW1lbnRdfCFhdXRvZm9jdXMsY2hhbGxlbmdlLCFkaXNhYmxlZCxmb3JtLGtleXR5cGUsbmFtZVwiLFwibWVudWl0ZW1eW0hUTUxFbGVtZW50XXx0eXBlLGxhYmVsLGljb24sIWRpc2FibGVkLCFjaGVja2VkLHJhZGlvZ3JvdXAsIWRlZmF1bHRcIixcInN1bW1hcnleW0hUTUxFbGVtZW50XXxcIixcInRpbWVeW0hUTUxFbGVtZW50XXxkYXRlVGltZVwiLFwiOnN2ZzpjdXJzb3JeOnN2Zzp8XCIsXCI6bWF0aDpeW0hUTUxFbGVtZW50XXwhYXV0b2ZvY3VzLG5vbmNlLCphYm9ydCwqYW5pbWF0aW9uZW5kLCphbmltYXRpb25pdGVyYXRpb24sKmFuaW1hdGlvbnN0YXJ0LCphdXhjbGljaywqYmVmb3JlaW5wdXQsKmJlZm9yZW1hdGNoLCpiZWZvcmV0b2dnbGUsKmJlZm9yZXhyc2VsZWN0LCpibHVyLCpjYW5jZWwsKmNhbnBsYXksKmNhbnBsYXl0aHJvdWdoLCpjaGFuZ2UsKmNsaWNrLCpjbG9zZSwqY29udGVudHZpc2liaWxpdHlhdXRvc3RhdGVjaGFuZ2UsKmNvbnRleHRsb3N0LCpjb250ZXh0bWVudSwqY29udGV4dHJlc3RvcmVkLCpjb3B5LCpjdWVjaGFuZ2UsKmN1dCwqZGJsY2xpY2ssKmRyYWcsKmRyYWdlbmQsKmRyYWdlbnRlciwqZHJhZ2xlYXZlLCpkcmFnb3ZlciwqZHJhZ3N0YXJ0LCpkcm9wLCpkdXJhdGlvbmNoYW5nZSwqZW1wdGllZCwqZW5kZWQsKmVycm9yLCpmb2N1cywqZm9ybWRhdGEsKmdvdHBvaW50ZXJjYXB0dXJlLCppbnB1dCwqaW52YWxpZCwqa2V5ZG93biwqa2V5cHJlc3MsKmtleXVwLCpsb2FkLCpsb2FkZWRkYXRhLCpsb2FkZWRtZXRhZGF0YSwqbG9hZHN0YXJ0LCpsb3N0cG9pbnRlcmNhcHR1cmUsKm1vdXNlZG93biwqbW91c2VlbnRlciwqbW91c2VsZWF2ZSwqbW91c2Vtb3ZlLCptb3VzZW91dCwqbW91c2VvdmVyLCptb3VzZXVwLCptb3VzZXdoZWVsLCpwYXN0ZSwqcGF1c2UsKnBsYXksKnBsYXlpbmcsKnBvaW50ZXJjYW5jZWwsKnBvaW50ZXJkb3duLCpwb2ludGVyZW50ZXIsKnBvaW50ZXJsZWF2ZSwqcG9pbnRlcm1vdmUsKnBvaW50ZXJvdXQsKnBvaW50ZXJvdmVyLCpwb2ludGVycmF3dXBkYXRlLCpwb2ludGVydXAsKnByb2dyZXNzLCpyYXRlY2hhbmdlLCpyZXNldCwqcmVzaXplLCpzY3JvbGwsKnNjcm9sbGVuZCwqc2VjdXJpdHlwb2xpY3l2aW9sYXRpb24sKnNlZWtlZCwqc2Vla2luZywqc2VsZWN0LCpzZWxlY3Rpb25jaGFuZ2UsKnNlbGVjdHN0YXJ0LCpzbG90Y2hhbmdlLCpzdGFsbGVkLCpzdWJtaXQsKnN1c3BlbmQsKnRpbWV1cGRhdGUsKnRvZ2dsZSwqdHJhbnNpdGlvbmNhbmNlbCwqdHJhbnNpdGlvbmVuZCwqdHJhbnNpdGlvbnJ1biwqdHJhbnNpdGlvbnN0YXJ0LCp2b2x1bWVjaGFuZ2UsKndhaXRpbmcsKndlYmtpdGFuaW1hdGlvbmVuZCwqd2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uLCp3ZWJraXRhbmltYXRpb25zdGFydCwqd2Via2l0dHJhbnNpdGlvbmVuZCwqd2hlZWwsJXN0eWxlLCN0YWJJbmRleFwiLFwiOm1hdGg6bWF0aF46bWF0aDp8XCIsXCI6bWF0aDptYWN0aW9uXjptYXRoOnxcIixcIjptYXRoOm1lbmNsb3NlXjptYXRoOnxcIixcIjptYXRoOm1lcnJvcl46bWF0aDp8XCIsXCI6bWF0aDptZmVuY2VkXjptYXRoOnxcIixcIjptYXRoOm1mcmFjXjptYXRoOnxcIixcIjptYXRoOm1pXjptYXRoOnxcIixcIjptYXRoOm1tdWx0aXNjcmlwdHNeOm1hdGg6fFwiLFwiOm1hdGg6bW5eOm1hdGg6fFwiLFwiOm1hdGg6bW9eOm1hdGg6fFwiLFwiOm1hdGg6bW92ZXJeOm1hdGg6fFwiLFwiOm1hdGg6bXBhZGRlZF46bWF0aDp8XCIsXCI6bWF0aDptcGhhbnRvbV46bWF0aDp8XCIsXCI6bWF0aDptcm9vdF46bWF0aDp8XCIsXCI6bWF0aDptcm93XjptYXRoOnxcIixcIjptYXRoOm1zXjptYXRoOnxcIixcIjptYXRoOm1zcGFjZV46bWF0aDp8XCIsXCI6bWF0aDptc3FydF46bWF0aDp8XCIsXCI6bWF0aDptc3R5bGVeOm1hdGg6fFwiLFwiOm1hdGg6bXN1Yl46bWF0aDp8XCIsXCI6bWF0aDptc3Vic3VwXjptYXRoOnxcIixcIjptYXRoOm1zdXBeOm1hdGg6fFwiLFwiOm1hdGg6bXRhYmxlXjptYXRoOnxcIixcIjptYXRoOm10ZF46bWF0aDp8XCIsXCI6bWF0aDptdGV4dF46bWF0aDp8XCIsXCI6bWF0aDptdHJeOm1hdGg6fFwiLFwiOm1hdGg6bXVuZGVyXjptYXRoOnxcIixcIjptYXRoOm11bmRlcm92ZXJeOm1hdGg6fFwiLFwiOm1hdGg6c2VtYW50aWNzXjptYXRoOnxcIl0seHM9bmV3IE1hcChPYmplY3QuZW50cmllcyh7Y2xhc3M6XCJjbGFzc05hbWVcIixmb3I6XCJodG1sRm9yXCIsZm9ybWFjdGlvbjpcImZvcm1BY3Rpb25cIixpbm5lckh0bWw6XCJpbm5lckhUTUxcIixyZWFkb25seTpcInJlYWRPbmx5XCIsdGFiaW5kZXg6XCJ0YWJJbmRleFwifSkpLHFhPUFycmF5LmZyb20oeHMpLnJlZHVjZSgodCxbZSxyXSk9Pih0LnNldChlLHIpLHQpLG5ldyBNYXApLHF0PWNsYXNzIGV4dGVuZHMgTXR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX3NjaGVtYT1uZXcgTWFwLHRoaXMuX2V2ZW50U2NoZW1hPW5ldyBNYXAsTWEuZm9yRWFjaChlPT57bGV0IHI9bmV3IE1hcCxuPW5ldyBTZXQsW3MsaV09ZS5zcGxpdChcInxcIiksYT1pLnNwbGl0KFwiLFwiKSxbbyx1XT1zLnNwbGl0KFwiXlwiKTtvLnNwbGl0KFwiLFwiKS5mb3JFYWNoKGw9Pnt0aGlzLl9zY2hlbWEuc2V0KGwudG9Mb3dlckNhc2UoKSxyKSx0aGlzLl9ldmVudFNjaGVtYS5zZXQobC50b0xvd2VyQ2FzZSgpLG4pfSk7bGV0IHA9dSYmdGhpcy5fc2NoZW1hLmdldCh1LnRvTG93ZXJDYXNlKCkpO2lmKHApe2ZvcihsZXRbbCxmXW9mIHApci5zZXQobCxmKTtmb3IobGV0IGwgb2YgdGhpcy5fZXZlbnRTY2hlbWEuZ2V0KHUudG9Mb3dlckNhc2UoKSkpbi5hZGQobCl9YS5mb3JFYWNoKGw9PntpZihsLmxlbmd0aD4wKXN3aXRjaChsWzBdKXtjYXNlXCIqXCI6bi5hZGQobC5zdWJzdHJpbmcoMSkpO2JyZWFrO2Nhc2VcIiFcIjpyLnNldChsLnN1YnN0cmluZygxKSxJYSk7YnJlYWs7Y2FzZVwiI1wiOnIuc2V0KGwuc3Vic3RyaW5nKDEpLFJhKTticmVhaztjYXNlXCIlXCI6ci5zZXQobC5zdWJzdHJpbmcoMSksJGEpO2JyZWFrO2RlZmF1bHQ6ci5zZXQobCxPYSl9fSl9KX1oYXNQcm9wZXJ0eShlLHIsbil7aWYobi5zb21lKGk9PmkubmFtZT09PVRyLm5hbWUpKXJldHVybiEwO2lmKGUuaW5kZXhPZihcIi1cIik+LTEpe2lmKHhyKGUpfHxrcihlKSlyZXR1cm4hMTtpZihuLnNvbWUoaT0+aS5uYW1lPT09YnIubmFtZSkpcmV0dXJuITB9cmV0dXJuKHRoaXMuX3NjaGVtYS5nZXQoZS50b0xvd2VyQ2FzZSgpKXx8dGhpcy5fc2NoZW1hLmdldChcInVua25vd25cIikpLmhhcyhyKX1oYXNFbGVtZW50KGUscil7cmV0dXJuIHIuc29tZShuPT5uLm5hbWU9PT1Uci5uYW1lKXx8ZS5pbmRleE9mKFwiLVwiKT4tMSYmKHhyKGUpfHxrcihlKXx8ci5zb21lKG49Pm4ubmFtZT09PWJyLm5hbWUpKT8hMDp0aGlzLl9zY2hlbWEuaGFzKGUudG9Mb3dlckNhc2UoKSl9c2VjdXJpdHlDb250ZXh0KGUscixuKXtuJiYocj10aGlzLmdldE1hcHBlZFByb3BOYW1lKHIpKSxlPWUudG9Mb3dlckNhc2UoKSxyPXIudG9Mb3dlckNhc2UoKTtsZXQgcz1CcigpW2UrXCJ8XCIrcl07cmV0dXJuIHN8fChzPUJyKClbXCIqfFwiK3JdLHN8fFouTk9ORSl9Z2V0TWFwcGVkUHJvcE5hbWUoZSl7cmV0dXJuIHhzLmdldChlKT8/ZX1nZXREZWZhdWx0Q29tcG9uZW50RWxlbWVudE5hbWUoKXtyZXR1cm5cIm5nLWNvbXBvbmVudFwifXZhbGlkYXRlUHJvcGVydHkoZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwib25cIik/e2Vycm9yOiEwLG1zZzpgQmluZGluZyB0byBldmVudCBwcm9wZXJ0eSAnJHtlfScgaXMgZGlzYWxsb3dlZCBmb3Igc2VjdXJpdHkgcmVhc29ucywgcGxlYXNlIHVzZSAoJHtlLnNsaWNlKDIpfSk9Li4uXG5JZiAnJHtlfScgaXMgYSBkaXJlY3RpdmUgaW5wdXQsIG1ha2Ugc3VyZSB0aGUgZGlyZWN0aXZlIGlzIGltcG9ydGVkIGJ5IHRoZSBjdXJyZW50IG1vZHVsZS5gfTp7ZXJyb3I6ITF9fXZhbGlkYXRlQXR0cmlidXRlKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcIm9uXCIpP3tlcnJvcjohMCxtc2c6YEJpbmRpbmcgdG8gZXZlbnQgYXR0cmlidXRlICcke2V9JyBpcyBkaXNhbGxvd2VkIGZvciBzZWN1cml0eSByZWFzb25zLCBwbGVhc2UgdXNlICgke2Uuc2xpY2UoMil9KT0uLi5gfTp7ZXJyb3I6ITF9fWFsbEtub3duRWxlbWVudE5hbWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fc2NoZW1hLmtleXMoKSl9YWxsS25vd25BdHRyaWJ1dGVzT2ZFbGVtZW50KGUpe2xldCByPXRoaXMuX3NjaGVtYS5nZXQoZS50b0xvd2VyQ2FzZSgpKXx8dGhpcy5fc2NoZW1hLmdldChcInVua25vd25cIik7cmV0dXJuIEFycmF5LmZyb20oci5rZXlzKCkpLm1hcChuPT5xYS5nZXQobik/P24pfWFsbEtub3duRXZlbnRzT2ZFbGVtZW50KGUpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2V2ZW50U2NoZW1hLmdldChlLnRvTG93ZXJDYXNlKCkpPz9bXSl9bm9ybWFsaXplQW5pbWF0aW9uU3R5bGVQcm9wZXJ0eShlKXtyZXR1cm4gU3MoZSl9bm9ybWFsaXplQW5pbWF0aW9uU3R5bGVWYWx1ZShlLHIsbil7bGV0IHM9XCJcIixpPW4udG9TdHJpbmcoKS50cmltKCksYT1udWxsO2lmKEhhKGUpJiZuIT09MCYmbiE9PVwiMFwiKWlmKHR5cGVvZiBuPT1cIm51bWJlclwiKXM9XCJweFwiO2Vsc2V7bGV0IG89bi5tYXRjaCgvXlsrLV0/W1xcZFxcLl0rKFthLXpdKikkLyk7byYmb1sxXS5sZW5ndGg9PTAmJihhPWBQbGVhc2UgcHJvdmlkZSBhIENTUyB1bml0IHZhbHVlIGZvciAke3J9OiR7bn1gKX1yZXR1cm57ZXJyb3I6YSx2YWx1ZTppK3N9fX07ZnVuY3Rpb24gSGEodCl7c3dpdGNoKHQpe2Nhc2VcIndpZHRoXCI6Y2FzZVwiaGVpZ2h0XCI6Y2FzZVwibWluV2lkdGhcIjpjYXNlXCJtaW5IZWlnaHRcIjpjYXNlXCJtYXhXaWR0aFwiOmNhc2VcIm1heEhlaWdodFwiOmNhc2VcImxlZnRcIjpjYXNlXCJ0b3BcIjpjYXNlXCJib3R0b21cIjpjYXNlXCJyaWdodFwiOmNhc2VcImZvbnRTaXplXCI6Y2FzZVwib3V0bGluZVdpZHRoXCI6Y2FzZVwib3V0bGluZU9mZnNldFwiOmNhc2VcInBhZGRpbmdUb3BcIjpjYXNlXCJwYWRkaW5nTGVmdFwiOmNhc2VcInBhZGRpbmdCb3R0b21cIjpjYXNlXCJwYWRkaW5nUmlnaHRcIjpjYXNlXCJtYXJnaW5Ub3BcIjpjYXNlXCJtYXJnaW5MZWZ0XCI6Y2FzZVwibWFyZ2luQm90dG9tXCI6Y2FzZVwibWFyZ2luUmlnaHRcIjpjYXNlXCJib3JkZXJSYWRpdXNcIjpjYXNlXCJib3JkZXJXaWR0aFwiOmNhc2VcImJvcmRlclRvcFdpZHRoXCI6Y2FzZVwiYm9yZGVyTGVmdFdpZHRoXCI6Y2FzZVwiYm9yZGVyUmlnaHRXaWR0aFwiOmNhc2VcImJvcmRlckJvdHRvbVdpZHRoXCI6Y2FzZVwidGV4dEluZGVudFwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fXZhciBtPWNsYXNze2NvbnN0cnVjdG9yKHtjbG9zZWRCeUNoaWxkcmVuOmUsaW1wbGljaXROYW1lc3BhY2VQcmVmaXg6cixjb250ZW50VHlwZTpuPUkuUEFSU0FCTEVfREFUQSxjbG9zZWRCeVBhcmVudDpzPSExLGlzVm9pZDppPSExLGlnbm9yZUZpcnN0TGY6YT0hMSxwcmV2ZW50TmFtZXNwYWNlSW5oZXJpdGFuY2U6bz0hMSxjYW5TZWxmQ2xvc2U6dT0hMX09e30pe3RoaXMuY2xvc2VkQnlDaGlsZHJlbj17fSx0aGlzLmNsb3NlZEJ5UGFyZW50PSExLGUmJmUubGVuZ3RoPjAmJmUuZm9yRWFjaChwPT50aGlzLmNsb3NlZEJ5Q2hpbGRyZW5bcF09ITApLHRoaXMuaXNWb2lkPWksdGhpcy5jbG9zZWRCeVBhcmVudD1zfHxpLHRoaXMuaW1wbGljaXROYW1lc3BhY2VQcmVmaXg9cnx8bnVsbCx0aGlzLmNvbnRlbnRUeXBlPW4sdGhpcy5pZ25vcmVGaXJzdExmPWEsdGhpcy5wcmV2ZW50TmFtZXNwYWNlSW5oZXJpdGFuY2U9byx0aGlzLmNhblNlbGZDbG9zZT11Pz9pfWlzQ2xvc2VkQnlDaGlsZChlKXtyZXR1cm4gdGhpcy5pc1ZvaWR8fGUudG9Mb3dlckNhc2UoKWluIHRoaXMuY2xvc2VkQnlDaGlsZHJlbn1nZXRDb250ZW50VHlwZShlKXtyZXR1cm4gdHlwZW9mIHRoaXMuY29udGVudFR5cGU9PVwib2JqZWN0XCI/KGU9PT12b2lkIDA/dm9pZCAwOnRoaXMuY29udGVudFR5cGVbZV0pPz90aGlzLmNvbnRlbnRUeXBlLmRlZmF1bHQ6dGhpcy5jb250ZW50VHlwZX19LGtzLGx0O2Z1bmN0aW9uICRlKHQpe3JldHVybiBsdHx8KGtzPW5ldyBtKHtjYW5TZWxmQ2xvc2U6ITB9KSxsdD1PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUobnVsbCkse2Jhc2U6bmV3IG0oe2lzVm9pZDohMH0pLG1ldGE6bmV3IG0oe2lzVm9pZDohMH0pLGFyZWE6bmV3IG0oe2lzVm9pZDohMH0pLGVtYmVkOm5ldyBtKHtpc1ZvaWQ6ITB9KSxsaW5rOm5ldyBtKHtpc1ZvaWQ6ITB9KSxpbWc6bmV3IG0oe2lzVm9pZDohMH0pLGlucHV0Om5ldyBtKHtpc1ZvaWQ6ITB9KSxwYXJhbTpuZXcgbSh7aXNWb2lkOiEwfSksaHI6bmV3IG0oe2lzVm9pZDohMH0pLGJyOm5ldyBtKHtpc1ZvaWQ6ITB9KSxzb3VyY2U6bmV3IG0oe2lzVm9pZDohMH0pLHRyYWNrOm5ldyBtKHtpc1ZvaWQ6ITB9KSx3YnI6bmV3IG0oe2lzVm9pZDohMH0pLHA6bmV3IG0oe2Nsb3NlZEJ5Q2hpbGRyZW46W1wiYWRkcmVzc1wiLFwiYXJ0aWNsZVwiLFwiYXNpZGVcIixcImJsb2NrcXVvdGVcIixcImRpdlwiLFwiZGxcIixcImZpZWxkc2V0XCIsXCJmb290ZXJcIixcImZvcm1cIixcImgxXCIsXCJoMlwiLFwiaDNcIixcImg0XCIsXCJoNVwiLFwiaDZcIixcImhlYWRlclwiLFwiaGdyb3VwXCIsXCJoclwiLFwibWFpblwiLFwibmF2XCIsXCJvbFwiLFwicFwiLFwicHJlXCIsXCJzZWN0aW9uXCIsXCJ0YWJsZVwiLFwidWxcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSx0aGVhZDpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJ0Ym9keVwiLFwidGZvb3RcIl19KSx0Ym9keTpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJ0Ym9keVwiLFwidGZvb3RcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSx0Zm9vdDpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJ0Ym9keVwiXSxjbG9zZWRCeVBhcmVudDohMH0pLHRyOm5ldyBtKHtjbG9zZWRCeUNoaWxkcmVuOltcInRyXCJdLGNsb3NlZEJ5UGFyZW50OiEwfSksdGQ6bmV3IG0oe2Nsb3NlZEJ5Q2hpbGRyZW46W1widGRcIixcInRoXCJdLGNsb3NlZEJ5UGFyZW50OiEwfSksdGg6bmV3IG0oe2Nsb3NlZEJ5Q2hpbGRyZW46W1widGRcIixcInRoXCJdLGNsb3NlZEJ5UGFyZW50OiEwfSksY29sOm5ldyBtKHtpc1ZvaWQ6ITB9KSxzdmc6bmV3IG0oe2ltcGxpY2l0TmFtZXNwYWNlUHJlZml4Olwic3ZnXCJ9KSxmb3JlaWduT2JqZWN0Om5ldyBtKHtpbXBsaWNpdE5hbWVzcGFjZVByZWZpeDpcInN2Z1wiLHByZXZlbnROYW1lc3BhY2VJbmhlcml0YW5jZTohMH0pLG1hdGg6bmV3IG0oe2ltcGxpY2l0TmFtZXNwYWNlUHJlZml4OlwibWF0aFwifSksbGk6bmV3IG0oe2Nsb3NlZEJ5Q2hpbGRyZW46W1wibGlcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSxkdDpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJkdFwiLFwiZGRcIl19KSxkZDpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJkdFwiLFwiZGRcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSxyYjpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJyYlwiLFwicnRcIixcInJ0Y1wiLFwicnBcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSxydDpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJyYlwiLFwicnRcIixcInJ0Y1wiLFwicnBcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSxydGM6bmV3IG0oe2Nsb3NlZEJ5Q2hpbGRyZW46W1wicmJcIixcInJ0Y1wiLFwicnBcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSxycDpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJyYlwiLFwicnRcIixcInJ0Y1wiLFwicnBcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSxvcHRncm91cDpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJvcHRncm91cFwiXSxjbG9zZWRCeVBhcmVudDohMH0pLG9wdGlvbjpuZXcgbSh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJvcHRpb25cIixcIm9wdGdyb3VwXCJdLGNsb3NlZEJ5UGFyZW50OiEwfSkscHJlOm5ldyBtKHtpZ25vcmVGaXJzdExmOiEwfSksbGlzdGluZzpuZXcgbSh7aWdub3JlRmlyc3RMZjohMH0pLHN0eWxlOm5ldyBtKHtjb250ZW50VHlwZTpJLlJBV19URVhUfSksc2NyaXB0Om5ldyBtKHtjb250ZW50VHlwZTpJLlJBV19URVhUfSksdGl0bGU6bmV3IG0oe2NvbnRlbnRUeXBlOntkZWZhdWx0OkkuRVNDQVBBQkxFX1JBV19URVhULHN2ZzpJLlBBUlNBQkxFX0RBVEF9fSksdGV4dGFyZWE6bmV3IG0oe2NvbnRlbnRUeXBlOkkuRVNDQVBBQkxFX1JBV19URVhULGlnbm9yZUZpcnN0TGY6ITB9KX0pLG5ldyBxdCgpLmFsbEtub3duRWxlbWVudE5hbWVzKCkuZm9yRWFjaChlPT57IWx0W2VdJiZSZShlKT09PW51bGwmJihsdFtlXT1uZXcgbSh7Y2FuU2VsZkNsb3NlOiExfSkpfSkpLGx0W3RdPz9rc312YXIgYWU9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLnNvdXJjZVNwYW49ZSx0aGlzLmkxOG49cn19LEh0PWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IoZSxyLG4scyl7c3VwZXIocixzKSx0aGlzLnZhbHVlPWUsdGhpcy50b2tlbnM9bix0aGlzLnR5cGU9XCJ0ZXh0XCJ9dmlzaXQoZSxyKXtyZXR1cm4gZS52aXNpdFRleHQodGhpcyxyKX19LFZ0PWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IoZSxyLG4scyl7c3VwZXIocixzKSx0aGlzLnZhbHVlPWUsdGhpcy50b2tlbnM9bix0aGlzLnR5cGU9XCJjZGF0YVwifXZpc2l0KGUscil7cmV0dXJuIGUudmlzaXRDZGF0YSh0aGlzLHIpfX0sVXQ9Y2xhc3MgZXh0ZW5kcyBhZXtjb25zdHJ1Y3RvcihlLHIsbixzLGksYSl7c3VwZXIocyxhKSx0aGlzLnN3aXRjaFZhbHVlPWUsdGhpcy50eXBlPXIsdGhpcy5jYXNlcz1uLHRoaXMuc3dpdGNoVmFsdWVTb3VyY2VTcGFuPWl9dmlzaXQoZSxyKXtyZXR1cm4gZS52aXNpdEV4cGFuc2lvbih0aGlzLHIpfX0sV3Q9Y2xhc3N7Y29uc3RydWN0b3IoZSxyLG4scyxpKXt0aGlzLnZhbHVlPWUsdGhpcy5leHByZXNzaW9uPXIsdGhpcy5zb3VyY2VTcGFuPW4sdGhpcy52YWx1ZVNvdXJjZVNwYW49cyx0aGlzLmV4cFNvdXJjZVNwYW49aSx0aGlzLnR5cGU9XCJleHBhbnNpb25DYXNlXCJ9dmlzaXQoZSxyKXtyZXR1cm4gZS52aXNpdEV4cGFuc2lvbkNhc2UodGhpcyxyKX19LHp0PWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IoZSxyLG4scyxpLGEsbyl7c3VwZXIobixvKSx0aGlzLm5hbWU9ZSx0aGlzLnZhbHVlPXIsdGhpcy5rZXlTcGFuPXMsdGhpcy52YWx1ZVNwYW49aSx0aGlzLnZhbHVlVG9rZW5zPWEsdGhpcy50eXBlPVwiYXR0cmlidXRlXCJ9dmlzaXQoZSxyKXtyZXR1cm4gZS52aXNpdEF0dHJpYnV0ZSh0aGlzLHIpfWdldCBuYW1lU3Bhbigpe3JldHVybiB0aGlzLmtleVNwYW59fSxHPWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IoZSxyLG4scyxpLGE9bnVsbCxvPW51bGwsdSl7c3VwZXIocyx1KSx0aGlzLm5hbWU9ZSx0aGlzLmF0dHJzPXIsdGhpcy5jaGlsZHJlbj1uLHRoaXMuc3RhcnRTb3VyY2VTcGFuPWksdGhpcy5lbmRTb3VyY2VTcGFuPWEsdGhpcy5uYW1lU3Bhbj1vLHRoaXMudHlwZT1cImVsZW1lbnRcIn12aXNpdChlLHIpe3JldHVybiBlLnZpc2l0RWxlbWVudCh0aGlzLHIpfX0sR3Q9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLnZhbHVlPWUsdGhpcy5zb3VyY2VTcGFuPXIsdGhpcy50eXBlPVwiY29tbWVudFwifXZpc2l0KGUscil7cmV0dXJuIGUudmlzaXRDb21tZW50KHRoaXMscil9fSxZdD1jbGFzc3tjb25zdHJ1Y3RvcihlLHIpe3RoaXMudmFsdWU9ZSx0aGlzLnNvdXJjZVNwYW49cix0aGlzLnR5cGU9XCJkb2NUeXBlXCJ9dmlzaXQoZSxyKXtyZXR1cm4gZS52aXNpdERvY1R5cGUodGhpcyxyKX19LGVlPWNsYXNzIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IoZSxyLG4scyxpLGEsbz1udWxsLHUpe3N1cGVyKHMsdSksdGhpcy5uYW1lPWUsdGhpcy5wYXJhbWV0ZXJzPXIsdGhpcy5jaGlsZHJlbj1uLHRoaXMubmFtZVNwYW49aSx0aGlzLnN0YXJ0U291cmNlU3Bhbj1hLHRoaXMuZW5kU291cmNlU3Bhbj1vLHRoaXMudHlwZT1cImJsb2NrXCJ9dmlzaXQoZSxyKXtyZXR1cm4gZS52aXNpdEJsb2NrKHRoaXMscil9fSxjdD1jbGFzc3tjb25zdHJ1Y3RvcihlLHIpe3RoaXMuZXhwcmVzc2lvbj1lLHRoaXMuc291cmNlU3Bhbj1yLHRoaXMudHlwZT1cImJsb2NrUGFyYW1ldGVyXCIsdGhpcy5zdGFydFNvdXJjZVNwYW49bnVsbCx0aGlzLmVuZFNvdXJjZVNwYW49bnVsbH12aXNpdChlLHIpe3JldHVybiBlLnZpc2l0QmxvY2tQYXJhbWV0ZXIodGhpcyxyKX19LHB0PWNsYXNze2NvbnN0cnVjdG9yKGUscixuLHMsaSl7dGhpcy5uYW1lPWUsdGhpcy52YWx1ZT1yLHRoaXMuc291cmNlU3Bhbj1uLHRoaXMubmFtZVNwYW49cyx0aGlzLnZhbHVlU3Bhbj1pLHRoaXMudHlwZT1cImxldERlY2xhcmF0aW9uXCIsdGhpcy5zdGFydFNvdXJjZVNwYW49bnVsbCx0aGlzLmVuZFNvdXJjZVNwYW49bnVsbH12aXNpdChlLHIpe3JldHVybiBlLnZpc2l0TGV0RGVjbGFyYXRpb24odGhpcyxyKX19O2Z1bmN0aW9uIGp0KHQsZSxyPW51bGwpe2xldCBuPVtdLHM9dC52aXNpdD9pPT50LnZpc2l0KGkscil8fGkudmlzaXQodCxyKTppPT5pLnZpc2l0KHQscik7cmV0dXJuIGUuZm9yRWFjaChpPT57bGV0IGE9cyhpKTthJiZuLnB1c2goYSl9KSxufXZhciBodD1jbGFzc3tjb25zdHJ1Y3Rvcigpe312aXNpdEVsZW1lbnQoZSxyKXt0aGlzLnZpc2l0Q2hpbGRyZW4ocixuPT57bihlLmF0dHJzKSxuKGUuY2hpbGRyZW4pfSl9dmlzaXRBdHRyaWJ1dGUoZSxyKXt9dmlzaXRUZXh0KGUscil7fXZpc2l0Q2RhdGEoZSxyKXt9dmlzaXRDb21tZW50KGUscil7fXZpc2l0RG9jVHlwZShlLHIpe312aXNpdEV4cGFuc2lvbihlLHIpe3JldHVybiB0aGlzLnZpc2l0Q2hpbGRyZW4ocixuPT57bihlLmNhc2VzKX0pfXZpc2l0RXhwYW5zaW9uQ2FzZShlLHIpe312aXNpdEJsb2NrKGUscil7dGhpcy52aXNpdENoaWxkcmVuKHIsbj0+e24oZS5wYXJhbWV0ZXJzKSxuKGUuY2hpbGRyZW4pfSl9dmlzaXRCbG9ja1BhcmFtZXRlcihlLHIpe312aXNpdExldERlY2xhcmF0aW9uKGUscil7fXZpc2l0Q2hpbGRyZW4oZSxyKXtsZXQgbj1bXSxzPXRoaXM7ZnVuY3Rpb24gaShhKXthJiZuLnB1c2goanQocyxhLGUpKX1yZXR1cm4gcihpKSxBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLG4pfX07dmFyIE1lPXtBRWxpZzpcIlxceEM2XCIsQU1QOlwiJlwiLGFtcDpcIiZcIixBYWN1dGU6XCJcXHhDMVwiLEFicmV2ZTpcIlxcdTAxMDJcIixBY2lyYzpcIlxceEMyXCIsQWN5OlwiXFx1MDQxMFwiLEFmcjpcIlxcdXsxRDUwNH1cIixBZ3JhdmU6XCJcXHhDMFwiLEFscGhhOlwiXFx1MDM5MVwiLEFtYWNyOlwiXFx1MDEwMFwiLEFuZDpcIlxcdTJBNTNcIixBb2dvbjpcIlxcdTAxMDRcIixBb3BmOlwiXFx1ezFENTM4fVwiLEFwcGx5RnVuY3Rpb246XCJcXHUyMDYxXCIsYWY6XCJcXHUyMDYxXCIsQXJpbmc6XCJcXHhDNVwiLGFuZ3N0OlwiXFx4QzVcIixBc2NyOlwiXFx1ezFENDlDfVwiLEFzc2lnbjpcIlxcdTIyNTRcIixjb2xvbmU6XCJcXHUyMjU0XCIsY29sb25lcTpcIlxcdTIyNTRcIixBdGlsZGU6XCJcXHhDM1wiLEF1bWw6XCJcXHhDNFwiLEJhY2tzbGFzaDpcIlxcdTIyMTZcIixzZXRtaW51czpcIlxcdTIyMTZcIixzZXRtbjpcIlxcdTIyMTZcIixzbWFsbHNldG1pbnVzOlwiXFx1MjIxNlwiLHNzZXRtbjpcIlxcdTIyMTZcIixCYXJ2OlwiXFx1MkFFN1wiLEJhcndlZDpcIlxcdTIzMDZcIixkb3VibGViYXJ3ZWRnZTpcIlxcdTIzMDZcIixCY3k6XCJcXHUwNDExXCIsQmVjYXVzZTpcIlxcdTIyMzVcIixiZWNhdXM6XCJcXHUyMjM1XCIsYmVjYXVzZTpcIlxcdTIyMzVcIixCZXJub3VsbGlzOlwiXFx1MjEyQ1wiLEJzY3I6XCJcXHUyMTJDXCIsYmVybm91OlwiXFx1MjEyQ1wiLEJldGE6XCJcXHUwMzkyXCIsQmZyOlwiXFx1ezFENTA1fVwiLEJvcGY6XCJcXHV7MUQ1Mzl9XCIsQnJldmU6XCJcXHUwMkQ4XCIsYnJldmU6XCJcXHUwMkQ4XCIsQnVtcGVxOlwiXFx1MjI0RVwiLEh1bXBEb3duSHVtcDpcIlxcdTIyNEVcIixidW1wOlwiXFx1MjI0RVwiLENIY3k6XCJcXHUwNDI3XCIsQ09QWTpcIlxceEE5XCIsY29weTpcIlxceEE5XCIsQ2FjdXRlOlwiXFx1MDEwNlwiLENhcDpcIlxcdTIyRDJcIixDYXBpdGFsRGlmZmVyZW50aWFsRDpcIlxcdTIxNDVcIixERDpcIlxcdTIxNDVcIixDYXlsZXlzOlwiXFx1MjEyRFwiLENmcjpcIlxcdTIxMkRcIixDY2Fyb246XCJcXHUwMTBDXCIsQ2NlZGlsOlwiXFx4QzdcIixDY2lyYzpcIlxcdTAxMDhcIixDY29uaW50OlwiXFx1MjIzMFwiLENkb3Q6XCJcXHUwMTBBXCIsQ2VkaWxsYTpcIlxceEI4XCIsY2VkaWw6XCJcXHhCOFwiLENlbnRlckRvdDpcIlxceEI3XCIsY2VudGVyZG90OlwiXFx4QjdcIixtaWRkb3Q6XCJcXHhCN1wiLENoaTpcIlxcdTAzQTdcIixDaXJjbGVEb3Q6XCJcXHUyMjk5XCIsb2RvdDpcIlxcdTIyOTlcIixDaXJjbGVNaW51czpcIlxcdTIyOTZcIixvbWludXM6XCJcXHUyMjk2XCIsQ2lyY2xlUGx1czpcIlxcdTIyOTVcIixvcGx1czpcIlxcdTIyOTVcIixDaXJjbGVUaW1lczpcIlxcdTIyOTdcIixvdGltZXM6XCJcXHUyMjk3XCIsQ2xvY2t3aXNlQ29udG91ckludGVncmFsOlwiXFx1MjIzMlwiLGN3Y29uaW50OlwiXFx1MjIzMlwiLENsb3NlQ3VybHlEb3VibGVRdW90ZTpcIlxcdTIwMURcIixyZHF1bzpcIlxcdTIwMURcIixyZHF1b3I6XCJcXHUyMDFEXCIsQ2xvc2VDdXJseVF1b3RlOlwiXFx1MjAxOVwiLHJzcXVvOlwiXFx1MjAxOVwiLHJzcXVvcjpcIlxcdTIwMTlcIixDb2xvbjpcIlxcdTIyMzdcIixQcm9wb3J0aW9uOlwiXFx1MjIzN1wiLENvbG9uZTpcIlxcdTJBNzRcIixDb25ncnVlbnQ6XCJcXHUyMjYxXCIsZXF1aXY6XCJcXHUyMjYxXCIsQ29uaW50OlwiXFx1MjIyRlwiLERvdWJsZUNvbnRvdXJJbnRlZ3JhbDpcIlxcdTIyMkZcIixDb250b3VySW50ZWdyYWw6XCJcXHUyMjJFXCIsY29uaW50OlwiXFx1MjIyRVwiLG9pbnQ6XCJcXHUyMjJFXCIsQ29wZjpcIlxcdTIxMDJcIixjb21wbGV4ZXM6XCJcXHUyMTAyXCIsQ29wcm9kdWN0OlwiXFx1MjIxMFwiLGNvcHJvZDpcIlxcdTIyMTBcIixDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsOlwiXFx1MjIzM1wiLGF3Y29uaW50OlwiXFx1MjIzM1wiLENyb3NzOlwiXFx1MkEyRlwiLENzY3I6XCJcXHV7MUQ0OUV9XCIsQ3VwOlwiXFx1MjJEM1wiLEN1cENhcDpcIlxcdTIyNERcIixhc3ltcGVxOlwiXFx1MjI0RFwiLEREb3RyYWhkOlwiXFx1MjkxMVwiLERKY3k6XCJcXHUwNDAyXCIsRFNjeTpcIlxcdTA0MDVcIixEWmN5OlwiXFx1MDQwRlwiLERhZ2dlcjpcIlxcdTIwMjFcIixkZGFnZ2VyOlwiXFx1MjAyMVwiLERhcnI6XCJcXHUyMUExXCIsRGFzaHY6XCJcXHUyQUU0XCIsRG91YmxlTGVmdFRlZTpcIlxcdTJBRTRcIixEY2Fyb246XCJcXHUwMTBFXCIsRGN5OlwiXFx1MDQxNFwiLERlbDpcIlxcdTIyMDdcIixuYWJsYTpcIlxcdTIyMDdcIixEZWx0YTpcIlxcdTAzOTRcIixEZnI6XCJcXHV7MUQ1MDd9XCIsRGlhY3JpdGljYWxBY3V0ZTpcIlxceEI0XCIsYWN1dGU6XCJcXHhCNFwiLERpYWNyaXRpY2FsRG90OlwiXFx1MDJEOVwiLGRvdDpcIlxcdTAyRDlcIixEaWFjcml0aWNhbERvdWJsZUFjdXRlOlwiXFx1MDJERFwiLGRibGFjOlwiXFx1MDJERFwiLERpYWNyaXRpY2FsR3JhdmU6XCJgXCIsZ3JhdmU6XCJgXCIsRGlhY3JpdGljYWxUaWxkZTpcIlxcdTAyRENcIix0aWxkZTpcIlxcdTAyRENcIixEaWFtb25kOlwiXFx1MjJDNFwiLGRpYW06XCJcXHUyMkM0XCIsZGlhbW9uZDpcIlxcdTIyQzRcIixEaWZmZXJlbnRpYWxEOlwiXFx1MjE0NlwiLGRkOlwiXFx1MjE0NlwiLERvcGY6XCJcXHV7MUQ1M0J9XCIsRG90OlwiXFx4QThcIixEb3VibGVEb3Q6XCJcXHhBOFwiLGRpZTpcIlxceEE4XCIsdW1sOlwiXFx4QThcIixEb3REb3Q6XCJcXHUyMERDXCIsRG90RXF1YWw6XCJcXHUyMjUwXCIsZG90ZXE6XCJcXHUyMjUwXCIsZXNkb3Q6XCJcXHUyMjUwXCIsRG91YmxlRG93bkFycm93OlwiXFx1MjFEM1wiLERvd25hcnJvdzpcIlxcdTIxRDNcIixkQXJyOlwiXFx1MjFEM1wiLERvdWJsZUxlZnRBcnJvdzpcIlxcdTIxRDBcIixMZWZ0YXJyb3c6XCJcXHUyMUQwXCIsbEFycjpcIlxcdTIxRDBcIixEb3VibGVMZWZ0UmlnaHRBcnJvdzpcIlxcdTIxRDRcIixMZWZ0cmlnaHRhcnJvdzpcIlxcdTIxRDRcIixoQXJyOlwiXFx1MjFENFwiLGlmZjpcIlxcdTIxRDRcIixEb3VibGVMb25nTGVmdEFycm93OlwiXFx1MjdGOFwiLExvbmdsZWZ0YXJyb3c6XCJcXHUyN0Y4XCIseGxBcnI6XCJcXHUyN0Y4XCIsRG91YmxlTG9uZ0xlZnRSaWdodEFycm93OlwiXFx1MjdGQVwiLExvbmdsZWZ0cmlnaHRhcnJvdzpcIlxcdTI3RkFcIix4aEFycjpcIlxcdTI3RkFcIixEb3VibGVMb25nUmlnaHRBcnJvdzpcIlxcdTI3RjlcIixMb25ncmlnaHRhcnJvdzpcIlxcdTI3RjlcIix4ckFycjpcIlxcdTI3RjlcIixEb3VibGVSaWdodEFycm93OlwiXFx1MjFEMlwiLEltcGxpZXM6XCJcXHUyMUQyXCIsUmlnaHRhcnJvdzpcIlxcdTIxRDJcIixyQXJyOlwiXFx1MjFEMlwiLERvdWJsZVJpZ2h0VGVlOlwiXFx1MjJBOFwiLHZEYXNoOlwiXFx1MjJBOFwiLERvdWJsZVVwQXJyb3c6XCJcXHUyMUQxXCIsVXBhcnJvdzpcIlxcdTIxRDFcIix1QXJyOlwiXFx1MjFEMVwiLERvdWJsZVVwRG93bkFycm93OlwiXFx1MjFENVwiLFVwZG93bmFycm93OlwiXFx1MjFENVwiLHZBcnI6XCJcXHUyMUQ1XCIsRG91YmxlVmVydGljYWxCYXI6XCJcXHUyMjI1XCIscGFyOlwiXFx1MjIyNVwiLHBhcmFsbGVsOlwiXFx1MjIyNVwiLHNob3J0cGFyYWxsZWw6XCJcXHUyMjI1XCIsc3BhcjpcIlxcdTIyMjVcIixEb3duQXJyb3c6XCJcXHUyMTkzXCIsU2hvcnREb3duQXJyb3c6XCJcXHUyMTkzXCIsZGFycjpcIlxcdTIxOTNcIixkb3duYXJyb3c6XCJcXHUyMTkzXCIsRG93bkFycm93QmFyOlwiXFx1MjkxM1wiLERvd25BcnJvd1VwQXJyb3c6XCJcXHUyMUY1XCIsZHVhcnI6XCJcXHUyMUY1XCIsRG93bkJyZXZlOlwiXFx1MDMxMVwiLERvd25MZWZ0UmlnaHRWZWN0b3I6XCJcXHUyOTUwXCIsRG93bkxlZnRUZWVWZWN0b3I6XCJcXHUyOTVFXCIsRG93bkxlZnRWZWN0b3I6XCJcXHUyMUJEXCIsbGVmdGhhcnBvb25kb3duOlwiXFx1MjFCRFwiLGxoYXJkOlwiXFx1MjFCRFwiLERvd25MZWZ0VmVjdG9yQmFyOlwiXFx1Mjk1NlwiLERvd25SaWdodFRlZVZlY3RvcjpcIlxcdTI5NUZcIixEb3duUmlnaHRWZWN0b3I6XCJcXHUyMUMxXCIscmhhcmQ6XCJcXHUyMUMxXCIscmlnaHRoYXJwb29uZG93bjpcIlxcdTIxQzFcIixEb3duUmlnaHRWZWN0b3JCYXI6XCJcXHUyOTU3XCIsRG93blRlZTpcIlxcdTIyQTRcIix0b3A6XCJcXHUyMkE0XCIsRG93blRlZUFycm93OlwiXFx1MjFBN1wiLG1hcHN0b2Rvd246XCJcXHUyMUE3XCIsRHNjcjpcIlxcdXsxRDQ5Rn1cIixEc3Ryb2s6XCJcXHUwMTEwXCIsRU5HOlwiXFx1MDE0QVwiLEVUSDpcIlxceEQwXCIsRWFjdXRlOlwiXFx4QzlcIixFY2Fyb246XCJcXHUwMTFBXCIsRWNpcmM6XCJcXHhDQVwiLEVjeTpcIlxcdTA0MkRcIixFZG90OlwiXFx1MDExNlwiLEVmcjpcIlxcdXsxRDUwOH1cIixFZ3JhdmU6XCJcXHhDOFwiLEVsZW1lbnQ6XCJcXHUyMjA4XCIsaW46XCJcXHUyMjA4XCIsaXNpbjpcIlxcdTIyMDhcIixpc2ludjpcIlxcdTIyMDhcIixFbWFjcjpcIlxcdTAxMTJcIixFbXB0eVNtYWxsU3F1YXJlOlwiXFx1MjVGQlwiLEVtcHR5VmVyeVNtYWxsU3F1YXJlOlwiXFx1MjVBQlwiLEVvZ29uOlwiXFx1MDExOFwiLEVvcGY6XCJcXHV7MUQ1M0N9XCIsRXBzaWxvbjpcIlxcdTAzOTVcIixFcXVhbDpcIlxcdTJBNzVcIixFcXVhbFRpbGRlOlwiXFx1MjI0MlwiLGVxc2ltOlwiXFx1MjI0MlwiLGVzaW06XCJcXHUyMjQyXCIsRXF1aWxpYnJpdW06XCJcXHUyMUNDXCIscmlnaHRsZWZ0aGFycG9vbnM6XCJcXHUyMUNDXCIscmxoYXI6XCJcXHUyMUNDXCIsRXNjcjpcIlxcdTIxMzBcIixleHBlY3RhdGlvbjpcIlxcdTIxMzBcIixFc2ltOlwiXFx1MkE3M1wiLEV0YTpcIlxcdTAzOTdcIixFdW1sOlwiXFx4Q0JcIixFeGlzdHM6XCJcXHUyMjAzXCIsZXhpc3Q6XCJcXHUyMjAzXCIsRXhwb25lbnRpYWxFOlwiXFx1MjE0N1wiLGVlOlwiXFx1MjE0N1wiLGV4cG9uZW50aWFsZTpcIlxcdTIxNDdcIixGY3k6XCJcXHUwNDI0XCIsRmZyOlwiXFx1ezFENTA5fVwiLEZpbGxlZFNtYWxsU3F1YXJlOlwiXFx1MjVGQ1wiLEZpbGxlZFZlcnlTbWFsbFNxdWFyZTpcIlxcdTI1QUFcIixibGFja3NxdWFyZTpcIlxcdTI1QUFcIixzcXVhcmY6XCJcXHUyNUFBXCIsc3F1ZjpcIlxcdTI1QUFcIixGb3BmOlwiXFx1ezFENTNEfVwiLEZvckFsbDpcIlxcdTIyMDBcIixmb3JhbGw6XCJcXHUyMjAwXCIsRm91cmllcnRyZjpcIlxcdTIxMzFcIixGc2NyOlwiXFx1MjEzMVwiLEdKY3k6XCJcXHUwNDAzXCIsR1Q6XCI+XCIsZ3Q6XCI+XCIsR2FtbWE6XCJcXHUwMzkzXCIsR2FtbWFkOlwiXFx1MDNEQ1wiLEdicmV2ZTpcIlxcdTAxMUVcIixHY2VkaWw6XCJcXHUwMTIyXCIsR2NpcmM6XCJcXHUwMTFDXCIsR2N5OlwiXFx1MDQxM1wiLEdkb3Q6XCJcXHUwMTIwXCIsR2ZyOlwiXFx1ezFENTBBfVwiLEdnOlwiXFx1MjJEOVwiLGdnZzpcIlxcdTIyRDlcIixHb3BmOlwiXFx1ezFENTNFfVwiLEdyZWF0ZXJFcXVhbDpcIlxcdTIyNjVcIixnZTpcIlxcdTIyNjVcIixnZXE6XCJcXHUyMjY1XCIsR3JlYXRlckVxdWFsTGVzczpcIlxcdTIyREJcIixnZWw6XCJcXHUyMkRCXCIsZ3RyZXFsZXNzOlwiXFx1MjJEQlwiLEdyZWF0ZXJGdWxsRXF1YWw6XCJcXHUyMjY3XCIsZ0U6XCJcXHUyMjY3XCIsZ2VxcTpcIlxcdTIyNjdcIixHcmVhdGVyR3JlYXRlcjpcIlxcdTJBQTJcIixHcmVhdGVyTGVzczpcIlxcdTIyNzdcIixnbDpcIlxcdTIyNzdcIixndHJsZXNzOlwiXFx1MjI3N1wiLEdyZWF0ZXJTbGFudEVxdWFsOlwiXFx1MkE3RVwiLGdlcXNsYW50OlwiXFx1MkE3RVwiLGdlczpcIlxcdTJBN0VcIixHcmVhdGVyVGlsZGU6XCJcXHUyMjczXCIsZ3NpbTpcIlxcdTIyNzNcIixndHJzaW06XCJcXHUyMjczXCIsR3NjcjpcIlxcdXsxRDRBMn1cIixHdDpcIlxcdTIyNkJcIixOZXN0ZWRHcmVhdGVyR3JlYXRlcjpcIlxcdTIyNkJcIixnZzpcIlxcdTIyNkJcIixIQVJEY3k6XCJcXHUwNDJBXCIsSGFjZWs6XCJcXHUwMkM3XCIsY2Fyb246XCJcXHUwMkM3XCIsSGF0OlwiXlwiLEhjaXJjOlwiXFx1MDEyNFwiLEhmcjpcIlxcdTIxMENcIixQb2luY2FyZXBsYW5lOlwiXFx1MjEwQ1wiLEhpbGJlcnRTcGFjZTpcIlxcdTIxMEJcIixIc2NyOlwiXFx1MjEwQlwiLGhhbWlsdDpcIlxcdTIxMEJcIixIb3BmOlwiXFx1MjEwRFwiLHF1YXRlcm5pb25zOlwiXFx1MjEwRFwiLEhvcml6b250YWxMaW5lOlwiXFx1MjUwMFwiLGJveGg6XCJcXHUyNTAwXCIsSHN0cm9rOlwiXFx1MDEyNlwiLEh1bXBFcXVhbDpcIlxcdTIyNEZcIixidW1wZTpcIlxcdTIyNEZcIixidW1wZXE6XCJcXHUyMjRGXCIsSUVjeTpcIlxcdTA0MTVcIixJSmxpZzpcIlxcdTAxMzJcIixJT2N5OlwiXFx1MDQwMVwiLElhY3V0ZTpcIlxceENEXCIsSWNpcmM6XCJcXHhDRVwiLEljeTpcIlxcdTA0MThcIixJZG90OlwiXFx1MDEzMFwiLElmcjpcIlxcdTIxMTFcIixJbTpcIlxcdTIxMTFcIixpbWFnZTpcIlxcdTIxMTFcIixpbWFncGFydDpcIlxcdTIxMTFcIixJZ3JhdmU6XCJcXHhDQ1wiLEltYWNyOlwiXFx1MDEyQVwiLEltYWdpbmFyeUk6XCJcXHUyMTQ4XCIsaWk6XCJcXHUyMTQ4XCIsSW50OlwiXFx1MjIyQ1wiLEludGVncmFsOlwiXFx1MjIyQlwiLGludDpcIlxcdTIyMkJcIixJbnRlcnNlY3Rpb246XCJcXHUyMkMyXCIsYmlnY2FwOlwiXFx1MjJDMlwiLHhjYXA6XCJcXHUyMkMyXCIsSW52aXNpYmxlQ29tbWE6XCJcXHUyMDYzXCIsaWM6XCJcXHUyMDYzXCIsSW52aXNpYmxlVGltZXM6XCJcXHUyMDYyXCIsaXQ6XCJcXHUyMDYyXCIsSW9nb246XCJcXHUwMTJFXCIsSW9wZjpcIlxcdXsxRDU0MH1cIixJb3RhOlwiXFx1MDM5OVwiLElzY3I6XCJcXHUyMTEwXCIsaW1hZ2xpbmU6XCJcXHUyMTEwXCIsSXRpbGRlOlwiXFx1MDEyOFwiLEl1a2N5OlwiXFx1MDQwNlwiLEl1bWw6XCJcXHhDRlwiLEpjaXJjOlwiXFx1MDEzNFwiLEpjeTpcIlxcdTA0MTlcIixKZnI6XCJcXHV7MUQ1MER9XCIsSm9wZjpcIlxcdXsxRDU0MX1cIixKc2NyOlwiXFx1ezFENEE1fVwiLEpzZXJjeTpcIlxcdTA0MDhcIixKdWtjeTpcIlxcdTA0MDRcIixLSGN5OlwiXFx1MDQyNVwiLEtKY3k6XCJcXHUwNDBDXCIsS2FwcGE6XCJcXHUwMzlBXCIsS2NlZGlsOlwiXFx1MDEzNlwiLEtjeTpcIlxcdTA0MUFcIixLZnI6XCJcXHV7MUQ1MEV9XCIsS29wZjpcIlxcdXsxRDU0Mn1cIixLc2NyOlwiXFx1ezFENEE2fVwiLExKY3k6XCJcXHUwNDA5XCIsTFQ6XCI8XCIsbHQ6XCI8XCIsTGFjdXRlOlwiXFx1MDEzOVwiLExhbWJkYTpcIlxcdTAzOUJcIixMYW5nOlwiXFx1MjdFQVwiLExhcGxhY2V0cmY6XCJcXHUyMTEyXCIsTHNjcjpcIlxcdTIxMTJcIixsYWdyYW46XCJcXHUyMTEyXCIsTGFycjpcIlxcdTIxOUVcIix0d29oZWFkbGVmdGFycm93OlwiXFx1MjE5RVwiLExjYXJvbjpcIlxcdTAxM0RcIixMY2VkaWw6XCJcXHUwMTNCXCIsTGN5OlwiXFx1MDQxQlwiLExlZnRBbmdsZUJyYWNrZXQ6XCJcXHUyN0U4XCIsbGFuZzpcIlxcdTI3RThcIixsYW5nbGU6XCJcXHUyN0U4XCIsTGVmdEFycm93OlwiXFx1MjE5MFwiLFNob3J0TGVmdEFycm93OlwiXFx1MjE5MFwiLGxhcnI6XCJcXHUyMTkwXCIsbGVmdGFycm93OlwiXFx1MjE5MFwiLHNsYXJyOlwiXFx1MjE5MFwiLExlZnRBcnJvd0JhcjpcIlxcdTIxRTRcIixsYXJyYjpcIlxcdTIxRTRcIixMZWZ0QXJyb3dSaWdodEFycm93OlwiXFx1MjFDNlwiLGxlZnRyaWdodGFycm93czpcIlxcdTIxQzZcIixscmFycjpcIlxcdTIxQzZcIixMZWZ0Q2VpbGluZzpcIlxcdTIzMDhcIixsY2VpbDpcIlxcdTIzMDhcIixMZWZ0RG91YmxlQnJhY2tldDpcIlxcdTI3RTZcIixsb2JyazpcIlxcdTI3RTZcIixMZWZ0RG93blRlZVZlY3RvcjpcIlxcdTI5NjFcIixMZWZ0RG93blZlY3RvcjpcIlxcdTIxQzNcIixkaGFybDpcIlxcdTIxQzNcIixkb3duaGFycG9vbmxlZnQ6XCJcXHUyMUMzXCIsTGVmdERvd25WZWN0b3JCYXI6XCJcXHUyOTU5XCIsTGVmdEZsb29yOlwiXFx1MjMwQVwiLGxmbG9vcjpcIlxcdTIzMEFcIixMZWZ0UmlnaHRBcnJvdzpcIlxcdTIxOTRcIixoYXJyOlwiXFx1MjE5NFwiLGxlZnRyaWdodGFycm93OlwiXFx1MjE5NFwiLExlZnRSaWdodFZlY3RvcjpcIlxcdTI5NEVcIixMZWZ0VGVlOlwiXFx1MjJBM1wiLGRhc2h2OlwiXFx1MjJBM1wiLExlZnRUZWVBcnJvdzpcIlxcdTIxQTRcIixtYXBzdG9sZWZ0OlwiXFx1MjFBNFwiLExlZnRUZWVWZWN0b3I6XCJcXHUyOTVBXCIsTGVmdFRyaWFuZ2xlOlwiXFx1MjJCMlwiLHZhcnRyaWFuZ2xlbGVmdDpcIlxcdTIyQjJcIix2bHRyaTpcIlxcdTIyQjJcIixMZWZ0VHJpYW5nbGVCYXI6XCJcXHUyOUNGXCIsTGVmdFRyaWFuZ2xlRXF1YWw6XCJcXHUyMkI0XCIsbHRyaWU6XCJcXHUyMkI0XCIsdHJpYW5nbGVsZWZ0ZXE6XCJcXHUyMkI0XCIsTGVmdFVwRG93blZlY3RvcjpcIlxcdTI5NTFcIixMZWZ0VXBUZWVWZWN0b3I6XCJcXHUyOTYwXCIsTGVmdFVwVmVjdG9yOlwiXFx1MjFCRlwiLHVoYXJsOlwiXFx1MjFCRlwiLHVwaGFycG9vbmxlZnQ6XCJcXHUyMUJGXCIsTGVmdFVwVmVjdG9yQmFyOlwiXFx1Mjk1OFwiLExlZnRWZWN0b3I6XCJcXHUyMUJDXCIsbGVmdGhhcnBvb251cDpcIlxcdTIxQkNcIixsaGFydTpcIlxcdTIxQkNcIixMZWZ0VmVjdG9yQmFyOlwiXFx1Mjk1MlwiLExlc3NFcXVhbEdyZWF0ZXI6XCJcXHUyMkRBXCIsbGVnOlwiXFx1MjJEQVwiLGxlc3NlcWd0cjpcIlxcdTIyREFcIixMZXNzRnVsbEVxdWFsOlwiXFx1MjI2NlwiLGxFOlwiXFx1MjI2NlwiLGxlcXE6XCJcXHUyMjY2XCIsTGVzc0dyZWF0ZXI6XCJcXHUyMjc2XCIsbGVzc2d0cjpcIlxcdTIyNzZcIixsZzpcIlxcdTIyNzZcIixMZXNzTGVzczpcIlxcdTJBQTFcIixMZXNzU2xhbnRFcXVhbDpcIlxcdTJBN0RcIixsZXFzbGFudDpcIlxcdTJBN0RcIixsZXM6XCJcXHUyQTdEXCIsTGVzc1RpbGRlOlwiXFx1MjI3MlwiLGxlc3NzaW06XCJcXHUyMjcyXCIsbHNpbTpcIlxcdTIyNzJcIixMZnI6XCJcXHV7MUQ1MEZ9XCIsTGw6XCJcXHUyMkQ4XCIsTGxlZnRhcnJvdzpcIlxcdTIxREFcIixsQWFycjpcIlxcdTIxREFcIixMbWlkb3Q6XCJcXHUwMTNGXCIsTG9uZ0xlZnRBcnJvdzpcIlxcdTI3RjVcIixsb25nbGVmdGFycm93OlwiXFx1MjdGNVwiLHhsYXJyOlwiXFx1MjdGNVwiLExvbmdMZWZ0UmlnaHRBcnJvdzpcIlxcdTI3RjdcIixsb25nbGVmdHJpZ2h0YXJyb3c6XCJcXHUyN0Y3XCIseGhhcnI6XCJcXHUyN0Y3XCIsTG9uZ1JpZ2h0QXJyb3c6XCJcXHUyN0Y2XCIsbG9uZ3JpZ2h0YXJyb3c6XCJcXHUyN0Y2XCIseHJhcnI6XCJcXHUyN0Y2XCIsTG9wZjpcIlxcdXsxRDU0M31cIixMb3dlckxlZnRBcnJvdzpcIlxcdTIxOTlcIixzd2FycjpcIlxcdTIxOTlcIixzd2Fycm93OlwiXFx1MjE5OVwiLExvd2VyUmlnaHRBcnJvdzpcIlxcdTIxOThcIixzZWFycjpcIlxcdTIxOThcIixzZWFycm93OlwiXFx1MjE5OFwiLExzaDpcIlxcdTIxQjBcIixsc2g6XCJcXHUyMUIwXCIsTHN0cm9rOlwiXFx1MDE0MVwiLEx0OlwiXFx1MjI2QVwiLE5lc3RlZExlc3NMZXNzOlwiXFx1MjI2QVwiLGxsOlwiXFx1MjI2QVwiLE1hcDpcIlxcdTI5MDVcIixNY3k6XCJcXHUwNDFDXCIsTWVkaXVtU3BhY2U6XCJcXHUyMDVGXCIsTWVsbGludHJmOlwiXFx1MjEzM1wiLE1zY3I6XCJcXHUyMTMzXCIscGhtbWF0OlwiXFx1MjEzM1wiLE1mcjpcIlxcdXsxRDUxMH1cIixNaW51c1BsdXM6XCJcXHUyMjEzXCIsbW5wbHVzOlwiXFx1MjIxM1wiLG1wOlwiXFx1MjIxM1wiLE1vcGY6XCJcXHV7MUQ1NDR9XCIsTXU6XCJcXHUwMzlDXCIsTkpjeTpcIlxcdTA0MEFcIixOYWN1dGU6XCJcXHUwMTQzXCIsTmNhcm9uOlwiXFx1MDE0N1wiLE5jZWRpbDpcIlxcdTAxNDVcIixOY3k6XCJcXHUwNDFEXCIsTmVnYXRpdmVNZWRpdW1TcGFjZTpcIlxcdTIwMEJcIixOZWdhdGl2ZVRoaWNrU3BhY2U6XCJcXHUyMDBCXCIsTmVnYXRpdmVUaGluU3BhY2U6XCJcXHUyMDBCXCIsTmVnYXRpdmVWZXJ5VGhpblNwYWNlOlwiXFx1MjAwQlwiLFplcm9XaWR0aFNwYWNlOlwiXFx1MjAwQlwiLE5ld0xpbmU6YFxuYCxOZnI6XCJcXHV7MUQ1MTF9XCIsTm9CcmVhazpcIlxcdTIwNjBcIixOb25CcmVha2luZ1NwYWNlOlwiXFx4QTBcIixuYnNwOlwiXFx4QTBcIixOb3BmOlwiXFx1MjExNVwiLG5hdHVyYWxzOlwiXFx1MjExNVwiLE5vdDpcIlxcdTJBRUNcIixOb3RDb25ncnVlbnQ6XCJcXHUyMjYyXCIsbmVxdWl2OlwiXFx1MjI2MlwiLE5vdEN1cENhcDpcIlxcdTIyNkRcIixOb3REb3VibGVWZXJ0aWNhbEJhcjpcIlxcdTIyMjZcIixucGFyOlwiXFx1MjIyNlwiLG5wYXJhbGxlbDpcIlxcdTIyMjZcIixuc2hvcnRwYXJhbGxlbDpcIlxcdTIyMjZcIixuc3BhcjpcIlxcdTIyMjZcIixOb3RFbGVtZW50OlwiXFx1MjIwOVwiLG5vdGluOlwiXFx1MjIwOVwiLG5vdGludmE6XCJcXHUyMjA5XCIsTm90RXF1YWw6XCJcXHUyMjYwXCIsbmU6XCJcXHUyMjYwXCIsTm90RXF1YWxUaWxkZTpcIlxcdTIyNDJcXHUwMzM4XCIsbmVzaW06XCJcXHUyMjQyXFx1MDMzOFwiLE5vdEV4aXN0czpcIlxcdTIyMDRcIixuZXhpc3Q6XCJcXHUyMjA0XCIsbmV4aXN0czpcIlxcdTIyMDRcIixOb3RHcmVhdGVyOlwiXFx1MjI2RlwiLG5ndDpcIlxcdTIyNkZcIixuZ3RyOlwiXFx1MjI2RlwiLE5vdEdyZWF0ZXJFcXVhbDpcIlxcdTIyNzFcIixuZ2U6XCJcXHUyMjcxXCIsbmdlcTpcIlxcdTIyNzFcIixOb3RHcmVhdGVyRnVsbEVxdWFsOlwiXFx1MjI2N1xcdTAzMzhcIixuZ0U6XCJcXHUyMjY3XFx1MDMzOFwiLG5nZXFxOlwiXFx1MjI2N1xcdTAzMzhcIixOb3RHcmVhdGVyR3JlYXRlcjpcIlxcdTIyNkJcXHUwMzM4XCIsbkd0djpcIlxcdTIyNkJcXHUwMzM4XCIsTm90R3JlYXRlckxlc3M6XCJcXHUyMjc5XCIsbnRnbDpcIlxcdTIyNzlcIixOb3RHcmVhdGVyU2xhbnRFcXVhbDpcIlxcdTJBN0VcXHUwMzM4XCIsbmdlcXNsYW50OlwiXFx1MkE3RVxcdTAzMzhcIixuZ2VzOlwiXFx1MkE3RVxcdTAzMzhcIixOb3RHcmVhdGVyVGlsZGU6XCJcXHUyMjc1XCIsbmdzaW06XCJcXHUyMjc1XCIsTm90SHVtcERvd25IdW1wOlwiXFx1MjI0RVxcdTAzMzhcIixuYnVtcDpcIlxcdTIyNEVcXHUwMzM4XCIsTm90SHVtcEVxdWFsOlwiXFx1MjI0RlxcdTAzMzhcIixuYnVtcGU6XCJcXHUyMjRGXFx1MDMzOFwiLE5vdExlZnRUcmlhbmdsZTpcIlxcdTIyRUFcIixubHRyaTpcIlxcdTIyRUFcIixudHJpYW5nbGVsZWZ0OlwiXFx1MjJFQVwiLE5vdExlZnRUcmlhbmdsZUJhcjpcIlxcdTI5Q0ZcXHUwMzM4XCIsTm90TGVmdFRyaWFuZ2xlRXF1YWw6XCJcXHUyMkVDXCIsbmx0cmllOlwiXFx1MjJFQ1wiLG50cmlhbmdsZWxlZnRlcTpcIlxcdTIyRUNcIixOb3RMZXNzOlwiXFx1MjI2RVwiLG5sZXNzOlwiXFx1MjI2RVwiLG5sdDpcIlxcdTIyNkVcIixOb3RMZXNzRXF1YWw6XCJcXHUyMjcwXCIsbmxlOlwiXFx1MjI3MFwiLG5sZXE6XCJcXHUyMjcwXCIsTm90TGVzc0dyZWF0ZXI6XCJcXHUyMjc4XCIsbnRsZzpcIlxcdTIyNzhcIixOb3RMZXNzTGVzczpcIlxcdTIyNkFcXHUwMzM4XCIsbkx0djpcIlxcdTIyNkFcXHUwMzM4XCIsTm90TGVzc1NsYW50RXF1YWw6XCJcXHUyQTdEXFx1MDMzOFwiLG5sZXFzbGFudDpcIlxcdTJBN0RcXHUwMzM4XCIsbmxlczpcIlxcdTJBN0RcXHUwMzM4XCIsTm90TGVzc1RpbGRlOlwiXFx1MjI3NFwiLG5sc2ltOlwiXFx1MjI3NFwiLE5vdE5lc3RlZEdyZWF0ZXJHcmVhdGVyOlwiXFx1MkFBMlxcdTAzMzhcIixOb3ROZXN0ZWRMZXNzTGVzczpcIlxcdTJBQTFcXHUwMzM4XCIsTm90UHJlY2VkZXM6XCJcXHUyMjgwXCIsbnByOlwiXFx1MjI4MFwiLG5wcmVjOlwiXFx1MjI4MFwiLE5vdFByZWNlZGVzRXF1YWw6XCJcXHUyQUFGXFx1MDMzOFwiLG5wcmU6XCJcXHUyQUFGXFx1MDMzOFwiLG5wcmVjZXE6XCJcXHUyQUFGXFx1MDMzOFwiLE5vdFByZWNlZGVzU2xhbnRFcXVhbDpcIlxcdTIyRTBcIixucHJjdWU6XCJcXHUyMkUwXCIsTm90UmV2ZXJzZUVsZW1lbnQ6XCJcXHUyMjBDXCIsbm90bmk6XCJcXHUyMjBDXCIsbm90bml2YTpcIlxcdTIyMENcIixOb3RSaWdodFRyaWFuZ2xlOlwiXFx1MjJFQlwiLG5ydHJpOlwiXFx1MjJFQlwiLG50cmlhbmdsZXJpZ2h0OlwiXFx1MjJFQlwiLE5vdFJpZ2h0VHJpYW5nbGVCYXI6XCJcXHUyOUQwXFx1MDMzOFwiLE5vdFJpZ2h0VHJpYW5nbGVFcXVhbDpcIlxcdTIyRURcIixucnRyaWU6XCJcXHUyMkVEXCIsbnRyaWFuZ2xlcmlnaHRlcTpcIlxcdTIyRURcIixOb3RTcXVhcmVTdWJzZXQ6XCJcXHUyMjhGXFx1MDMzOFwiLE5vdFNxdWFyZVN1YnNldEVxdWFsOlwiXFx1MjJFMlwiLG5zcXN1YmU6XCJcXHUyMkUyXCIsTm90U3F1YXJlU3VwZXJzZXQ6XCJcXHUyMjkwXFx1MDMzOFwiLE5vdFNxdWFyZVN1cGVyc2V0RXF1YWw6XCJcXHUyMkUzXCIsbnNxc3VwZTpcIlxcdTIyRTNcIixOb3RTdWJzZXQ6XCJcXHUyMjgyXFx1MjBEMlwiLG5zdWJzZXQ6XCJcXHUyMjgyXFx1MjBEMlwiLHZuc3ViOlwiXFx1MjI4MlxcdTIwRDJcIixOb3RTdWJzZXRFcXVhbDpcIlxcdTIyODhcIixuc3ViZTpcIlxcdTIyODhcIixuc3Vic2V0ZXE6XCJcXHUyMjg4XCIsTm90U3VjY2VlZHM6XCJcXHUyMjgxXCIsbnNjOlwiXFx1MjI4MVwiLG5zdWNjOlwiXFx1MjI4MVwiLE5vdFN1Y2NlZWRzRXF1YWw6XCJcXHUyQUIwXFx1MDMzOFwiLG5zY2U6XCJcXHUyQUIwXFx1MDMzOFwiLG5zdWNjZXE6XCJcXHUyQUIwXFx1MDMzOFwiLE5vdFN1Y2NlZWRzU2xhbnRFcXVhbDpcIlxcdTIyRTFcIixuc2NjdWU6XCJcXHUyMkUxXCIsTm90U3VjY2VlZHNUaWxkZTpcIlxcdTIyN0ZcXHUwMzM4XCIsTm90U3VwZXJzZXQ6XCJcXHUyMjgzXFx1MjBEMlwiLG5zdXBzZXQ6XCJcXHUyMjgzXFx1MjBEMlwiLHZuc3VwOlwiXFx1MjI4M1xcdTIwRDJcIixOb3RTdXBlcnNldEVxdWFsOlwiXFx1MjI4OVwiLG5zdXBlOlwiXFx1MjI4OVwiLG5zdXBzZXRlcTpcIlxcdTIyODlcIixOb3RUaWxkZTpcIlxcdTIyNDFcIixuc2ltOlwiXFx1MjI0MVwiLE5vdFRpbGRlRXF1YWw6XCJcXHUyMjQ0XCIsbnNpbWU6XCJcXHUyMjQ0XCIsbnNpbWVxOlwiXFx1MjI0NFwiLE5vdFRpbGRlRnVsbEVxdWFsOlwiXFx1MjI0N1wiLG5jb25nOlwiXFx1MjI0N1wiLE5vdFRpbGRlVGlsZGU6XCJcXHUyMjQ5XCIsbmFwOlwiXFx1MjI0OVwiLG5hcHByb3g6XCJcXHUyMjQ5XCIsTm90VmVydGljYWxCYXI6XCJcXHUyMjI0XCIsbm1pZDpcIlxcdTIyMjRcIixuc2hvcnRtaWQ6XCJcXHUyMjI0XCIsbnNtaWQ6XCJcXHUyMjI0XCIsTnNjcjpcIlxcdXsxRDRBOX1cIixOdGlsZGU6XCJcXHhEMVwiLE51OlwiXFx1MDM5RFwiLE9FbGlnOlwiXFx1MDE1MlwiLE9hY3V0ZTpcIlxceEQzXCIsT2NpcmM6XCJcXHhENFwiLE9jeTpcIlxcdTA0MUVcIixPZGJsYWM6XCJcXHUwMTUwXCIsT2ZyOlwiXFx1ezFENTEyfVwiLE9ncmF2ZTpcIlxceEQyXCIsT21hY3I6XCJcXHUwMTRDXCIsT21lZ2E6XCJcXHUwM0E5XCIsb2htOlwiXFx1MDNBOVwiLE9taWNyb246XCJcXHUwMzlGXCIsT29wZjpcIlxcdXsxRDU0Nn1cIixPcGVuQ3VybHlEb3VibGVRdW90ZTpcIlxcdTIwMUNcIixsZHF1bzpcIlxcdTIwMUNcIixPcGVuQ3VybHlRdW90ZTpcIlxcdTIwMThcIixsc3F1bzpcIlxcdTIwMThcIixPcjpcIlxcdTJBNTRcIixPc2NyOlwiXFx1ezFENEFBfVwiLE9zbGFzaDpcIlxceEQ4XCIsT3RpbGRlOlwiXFx4RDVcIixPdGltZXM6XCJcXHUyQTM3XCIsT3VtbDpcIlxceEQ2XCIsT3ZlckJhcjpcIlxcdTIwM0VcIixvbGluZTpcIlxcdTIwM0VcIixPdmVyQnJhY2U6XCJcXHUyM0RFXCIsT3ZlckJyYWNrZXQ6XCJcXHUyM0I0XCIsdGJyazpcIlxcdTIzQjRcIixPdmVyUGFyZW50aGVzaXM6XCJcXHUyM0RDXCIsUGFydGlhbEQ6XCJcXHUyMjAyXCIscGFydDpcIlxcdTIyMDJcIixQY3k6XCJcXHUwNDFGXCIsUGZyOlwiXFx1ezFENTEzfVwiLFBoaTpcIlxcdTAzQTZcIixQaTpcIlxcdTAzQTBcIixQbHVzTWludXM6XCJcXHhCMVwiLHBsdXNtbjpcIlxceEIxXCIscG06XCJcXHhCMVwiLFBvcGY6XCJcXHUyMTE5XCIscHJpbWVzOlwiXFx1MjExOVwiLFByOlwiXFx1MkFCQlwiLFByZWNlZGVzOlwiXFx1MjI3QVwiLHByOlwiXFx1MjI3QVwiLHByZWM6XCJcXHUyMjdBXCIsUHJlY2VkZXNFcXVhbDpcIlxcdTJBQUZcIixwcmU6XCJcXHUyQUFGXCIscHJlY2VxOlwiXFx1MkFBRlwiLFByZWNlZGVzU2xhbnRFcXVhbDpcIlxcdTIyN0NcIixwcmN1ZTpcIlxcdTIyN0NcIixwcmVjY3VybHllcTpcIlxcdTIyN0NcIixQcmVjZWRlc1RpbGRlOlwiXFx1MjI3RVwiLHByZWNzaW06XCJcXHUyMjdFXCIscHJzaW06XCJcXHUyMjdFXCIsUHJpbWU6XCJcXHUyMDMzXCIsUHJvZHVjdDpcIlxcdTIyMEZcIixwcm9kOlwiXFx1MjIwRlwiLFByb3BvcnRpb25hbDpcIlxcdTIyMURcIixwcm9wOlwiXFx1MjIxRFwiLHByb3B0bzpcIlxcdTIyMURcIix2YXJwcm9wdG86XCJcXHUyMjFEXCIsdnByb3A6XCJcXHUyMjFEXCIsUHNjcjpcIlxcdXsxRDRBQn1cIixQc2k6XCJcXHUwM0E4XCIsUVVPVDonXCInLHF1b3Q6J1wiJyxRZnI6XCJcXHV7MUQ1MTR9XCIsUW9wZjpcIlxcdTIxMUFcIixyYXRpb25hbHM6XCJcXHUyMTFBXCIsUXNjcjpcIlxcdXsxRDRBQ31cIixSQmFycjpcIlxcdTI5MTBcIixkcmJrYXJvdzpcIlxcdTI5MTBcIixSRUc6XCJcXHhBRVwiLGNpcmNsZWRSOlwiXFx4QUVcIixyZWc6XCJcXHhBRVwiLFJhY3V0ZTpcIlxcdTAxNTRcIixSYW5nOlwiXFx1MjdFQlwiLFJhcnI6XCJcXHUyMUEwXCIsdHdvaGVhZHJpZ2h0YXJyb3c6XCJcXHUyMUEwXCIsUmFycnRsOlwiXFx1MjkxNlwiLFJjYXJvbjpcIlxcdTAxNThcIixSY2VkaWw6XCJcXHUwMTU2XCIsUmN5OlwiXFx1MDQyMFwiLFJlOlwiXFx1MjExQ1wiLFJmcjpcIlxcdTIxMUNcIixyZWFsOlwiXFx1MjExQ1wiLHJlYWxwYXJ0OlwiXFx1MjExQ1wiLFJldmVyc2VFbGVtZW50OlwiXFx1MjIwQlwiLFN1Y2hUaGF0OlwiXFx1MjIwQlwiLG5pOlwiXFx1MjIwQlwiLG5pdjpcIlxcdTIyMEJcIixSZXZlcnNlRXF1aWxpYnJpdW06XCJcXHUyMUNCXCIsbGVmdHJpZ2h0aGFycG9vbnM6XCJcXHUyMUNCXCIsbHJoYXI6XCJcXHUyMUNCXCIsUmV2ZXJzZVVwRXF1aWxpYnJpdW06XCJcXHUyOTZGXCIsZHVoYXI6XCJcXHUyOTZGXCIsUmhvOlwiXFx1MDNBMVwiLFJpZ2h0QW5nbGVCcmFja2V0OlwiXFx1MjdFOVwiLHJhbmc6XCJcXHUyN0U5XCIscmFuZ2xlOlwiXFx1MjdFOVwiLFJpZ2h0QXJyb3c6XCJcXHUyMTkyXCIsU2hvcnRSaWdodEFycm93OlwiXFx1MjE5MlwiLHJhcnI6XCJcXHUyMTkyXCIscmlnaHRhcnJvdzpcIlxcdTIxOTJcIixzcmFycjpcIlxcdTIxOTJcIixSaWdodEFycm93QmFyOlwiXFx1MjFFNVwiLHJhcnJiOlwiXFx1MjFFNVwiLFJpZ2h0QXJyb3dMZWZ0QXJyb3c6XCJcXHUyMUM0XCIscmlnaHRsZWZ0YXJyb3dzOlwiXFx1MjFDNFwiLHJsYXJyOlwiXFx1MjFDNFwiLFJpZ2h0Q2VpbGluZzpcIlxcdTIzMDlcIixyY2VpbDpcIlxcdTIzMDlcIixSaWdodERvdWJsZUJyYWNrZXQ6XCJcXHUyN0U3XCIscm9icms6XCJcXHUyN0U3XCIsUmlnaHREb3duVGVlVmVjdG9yOlwiXFx1Mjk1RFwiLFJpZ2h0RG93blZlY3RvcjpcIlxcdTIxQzJcIixkaGFycjpcIlxcdTIxQzJcIixkb3duaGFycG9vbnJpZ2h0OlwiXFx1MjFDMlwiLFJpZ2h0RG93blZlY3RvckJhcjpcIlxcdTI5NTVcIixSaWdodEZsb29yOlwiXFx1MjMwQlwiLHJmbG9vcjpcIlxcdTIzMEJcIixSaWdodFRlZTpcIlxcdTIyQTJcIix2ZGFzaDpcIlxcdTIyQTJcIixSaWdodFRlZUFycm93OlwiXFx1MjFBNlwiLG1hcDpcIlxcdTIxQTZcIixtYXBzdG86XCJcXHUyMUE2XCIsUmlnaHRUZWVWZWN0b3I6XCJcXHUyOTVCXCIsUmlnaHRUcmlhbmdsZTpcIlxcdTIyQjNcIix2YXJ0cmlhbmdsZXJpZ2h0OlwiXFx1MjJCM1wiLHZydHJpOlwiXFx1MjJCM1wiLFJpZ2h0VHJpYW5nbGVCYXI6XCJcXHUyOUQwXCIsUmlnaHRUcmlhbmdsZUVxdWFsOlwiXFx1MjJCNVwiLHJ0cmllOlwiXFx1MjJCNVwiLHRyaWFuZ2xlcmlnaHRlcTpcIlxcdTIyQjVcIixSaWdodFVwRG93blZlY3RvcjpcIlxcdTI5NEZcIixSaWdodFVwVGVlVmVjdG9yOlwiXFx1Mjk1Q1wiLFJpZ2h0VXBWZWN0b3I6XCJcXHUyMUJFXCIsdWhhcnI6XCJcXHUyMUJFXCIsdXBoYXJwb29ucmlnaHQ6XCJcXHUyMUJFXCIsUmlnaHRVcFZlY3RvckJhcjpcIlxcdTI5NTRcIixSaWdodFZlY3RvcjpcIlxcdTIxQzBcIixyaGFydTpcIlxcdTIxQzBcIixyaWdodGhhcnBvb251cDpcIlxcdTIxQzBcIixSaWdodFZlY3RvckJhcjpcIlxcdTI5NTNcIixSb3BmOlwiXFx1MjExRFwiLHJlYWxzOlwiXFx1MjExRFwiLFJvdW5kSW1wbGllczpcIlxcdTI5NzBcIixScmlnaHRhcnJvdzpcIlxcdTIxREJcIixyQWFycjpcIlxcdTIxREJcIixSc2NyOlwiXFx1MjExQlwiLHJlYWxpbmU6XCJcXHUyMTFCXCIsUnNoOlwiXFx1MjFCMVwiLHJzaDpcIlxcdTIxQjFcIixSdWxlRGVsYXllZDpcIlxcdTI5RjRcIixTSENIY3k6XCJcXHUwNDI5XCIsU0hjeTpcIlxcdTA0MjhcIixTT0ZUY3k6XCJcXHUwNDJDXCIsU2FjdXRlOlwiXFx1MDE1QVwiLFNjOlwiXFx1MkFCQ1wiLFNjYXJvbjpcIlxcdTAxNjBcIixTY2VkaWw6XCJcXHUwMTVFXCIsU2NpcmM6XCJcXHUwMTVDXCIsU2N5OlwiXFx1MDQyMVwiLFNmcjpcIlxcdXsxRDUxNn1cIixTaG9ydFVwQXJyb3c6XCJcXHUyMTkxXCIsVXBBcnJvdzpcIlxcdTIxOTFcIix1YXJyOlwiXFx1MjE5MVwiLHVwYXJyb3c6XCJcXHUyMTkxXCIsU2lnbWE6XCJcXHUwM0EzXCIsU21hbGxDaXJjbGU6XCJcXHUyMjE4XCIsY29tcGZuOlwiXFx1MjIxOFwiLFNvcGY6XCJcXHV7MUQ1NEF9XCIsU3FydDpcIlxcdTIyMUFcIixyYWRpYzpcIlxcdTIyMUFcIixTcXVhcmU6XCJcXHUyNUExXCIsc3F1OlwiXFx1MjVBMVwiLHNxdWFyZTpcIlxcdTI1QTFcIixTcXVhcmVJbnRlcnNlY3Rpb246XCJcXHUyMjkzXCIsc3FjYXA6XCJcXHUyMjkzXCIsU3F1YXJlU3Vic2V0OlwiXFx1MjI4RlwiLHNxc3ViOlwiXFx1MjI4RlwiLHNxc3Vic2V0OlwiXFx1MjI4RlwiLFNxdWFyZVN1YnNldEVxdWFsOlwiXFx1MjI5MVwiLHNxc3ViZTpcIlxcdTIyOTFcIixzcXN1YnNldGVxOlwiXFx1MjI5MVwiLFNxdWFyZVN1cGVyc2V0OlwiXFx1MjI5MFwiLHNxc3VwOlwiXFx1MjI5MFwiLHNxc3Vwc2V0OlwiXFx1MjI5MFwiLFNxdWFyZVN1cGVyc2V0RXF1YWw6XCJcXHUyMjkyXCIsc3FzdXBlOlwiXFx1MjI5MlwiLHNxc3Vwc2V0ZXE6XCJcXHUyMjkyXCIsU3F1YXJlVW5pb246XCJcXHUyMjk0XCIsc3FjdXA6XCJcXHUyMjk0XCIsU3NjcjpcIlxcdXsxRDRBRX1cIixTdGFyOlwiXFx1MjJDNlwiLHNzdGFyZjpcIlxcdTIyQzZcIixTdWI6XCJcXHUyMkQwXCIsU3Vic2V0OlwiXFx1MjJEMFwiLFN1YnNldEVxdWFsOlwiXFx1MjI4NlwiLHN1YmU6XCJcXHUyMjg2XCIsc3Vic2V0ZXE6XCJcXHUyMjg2XCIsU3VjY2VlZHM6XCJcXHUyMjdCXCIsc2M6XCJcXHUyMjdCXCIsc3VjYzpcIlxcdTIyN0JcIixTdWNjZWVkc0VxdWFsOlwiXFx1MkFCMFwiLHNjZTpcIlxcdTJBQjBcIixzdWNjZXE6XCJcXHUyQUIwXCIsU3VjY2VlZHNTbGFudEVxdWFsOlwiXFx1MjI3RFwiLHNjY3VlOlwiXFx1MjI3RFwiLHN1Y2NjdXJseWVxOlwiXFx1MjI3RFwiLFN1Y2NlZWRzVGlsZGU6XCJcXHUyMjdGXCIsc2NzaW06XCJcXHUyMjdGXCIsc3VjY3NpbTpcIlxcdTIyN0ZcIixTdW06XCJcXHUyMjExXCIsc3VtOlwiXFx1MjIxMVwiLFN1cDpcIlxcdTIyRDFcIixTdXBzZXQ6XCJcXHUyMkQxXCIsU3VwZXJzZXQ6XCJcXHUyMjgzXCIsc3VwOlwiXFx1MjI4M1wiLHN1cHNldDpcIlxcdTIyODNcIixTdXBlcnNldEVxdWFsOlwiXFx1MjI4N1wiLHN1cGU6XCJcXHUyMjg3XCIsc3Vwc2V0ZXE6XCJcXHUyMjg3XCIsVEhPUk46XCJcXHhERVwiLFRSQURFOlwiXFx1MjEyMlwiLHRyYWRlOlwiXFx1MjEyMlwiLFRTSGN5OlwiXFx1MDQwQlwiLFRTY3k6XCJcXHUwNDI2XCIsVGFiOlwiXHRcIixUYXU6XCJcXHUwM0E0XCIsVGNhcm9uOlwiXFx1MDE2NFwiLFRjZWRpbDpcIlxcdTAxNjJcIixUY3k6XCJcXHUwNDIyXCIsVGZyOlwiXFx1ezFENTE3fVwiLFRoZXJlZm9yZTpcIlxcdTIyMzRcIix0aGVyZTQ6XCJcXHUyMjM0XCIsdGhlcmVmb3JlOlwiXFx1MjIzNFwiLFRoZXRhOlwiXFx1MDM5OFwiLFRoaWNrU3BhY2U6XCJcXHUyMDVGXFx1MjAwQVwiLFRoaW5TcGFjZTpcIlxcdTIwMDlcIix0aGluc3A6XCJcXHUyMDA5XCIsVGlsZGU6XCJcXHUyMjNDXCIsc2ltOlwiXFx1MjIzQ1wiLHRoaWNrc2ltOlwiXFx1MjIzQ1wiLHRoa3NpbTpcIlxcdTIyM0NcIixUaWxkZUVxdWFsOlwiXFx1MjI0M1wiLHNpbWU6XCJcXHUyMjQzXCIsc2ltZXE6XCJcXHUyMjQzXCIsVGlsZGVGdWxsRXF1YWw6XCJcXHUyMjQ1XCIsY29uZzpcIlxcdTIyNDVcIixUaWxkZVRpbGRlOlwiXFx1MjI0OFwiLGFwOlwiXFx1MjI0OFwiLGFwcHJveDpcIlxcdTIyNDhcIixhc3ltcDpcIlxcdTIyNDhcIix0aGlja2FwcHJveDpcIlxcdTIyNDhcIix0aGthcDpcIlxcdTIyNDhcIixUb3BmOlwiXFx1ezFENTRCfVwiLFRyaXBsZURvdDpcIlxcdTIwREJcIix0ZG90OlwiXFx1MjBEQlwiLFRzY3I6XCJcXHV7MUQ0QUZ9XCIsVHN0cm9rOlwiXFx1MDE2NlwiLFVhY3V0ZTpcIlxceERBXCIsVWFycjpcIlxcdTIxOUZcIixVYXJyb2NpcjpcIlxcdTI5NDlcIixVYnJjeTpcIlxcdTA0MEVcIixVYnJldmU6XCJcXHUwMTZDXCIsVWNpcmM6XCJcXHhEQlwiLFVjeTpcIlxcdTA0MjNcIixVZGJsYWM6XCJcXHUwMTcwXCIsVWZyOlwiXFx1ezFENTE4fVwiLFVncmF2ZTpcIlxceEQ5XCIsVW1hY3I6XCJcXHUwMTZBXCIsVW5kZXJCYXI6XCJfXCIsbG93YmFyOlwiX1wiLFVuZGVyQnJhY2U6XCJcXHUyM0RGXCIsVW5kZXJCcmFja2V0OlwiXFx1MjNCNVwiLGJicms6XCJcXHUyM0I1XCIsVW5kZXJQYXJlbnRoZXNpczpcIlxcdTIzRERcIixVbmlvbjpcIlxcdTIyQzNcIixiaWdjdXA6XCJcXHUyMkMzXCIseGN1cDpcIlxcdTIyQzNcIixVbmlvblBsdXM6XCJcXHUyMjhFXCIsdXBsdXM6XCJcXHUyMjhFXCIsVW9nb246XCJcXHUwMTcyXCIsVW9wZjpcIlxcdXsxRDU0Q31cIixVcEFycm93QmFyOlwiXFx1MjkxMlwiLFVwQXJyb3dEb3duQXJyb3c6XCJcXHUyMUM1XCIsdWRhcnI6XCJcXHUyMUM1XCIsVXBEb3duQXJyb3c6XCJcXHUyMTk1XCIsdXBkb3duYXJyb3c6XCJcXHUyMTk1XCIsdmFycjpcIlxcdTIxOTVcIixVcEVxdWlsaWJyaXVtOlwiXFx1Mjk2RVwiLHVkaGFyOlwiXFx1Mjk2RVwiLFVwVGVlOlwiXFx1MjJBNVwiLGJvdDpcIlxcdTIyQTVcIixib3R0b206XCJcXHUyMkE1XCIscGVycDpcIlxcdTIyQTVcIixVcFRlZUFycm93OlwiXFx1MjFBNVwiLG1hcHN0b3VwOlwiXFx1MjFBNVwiLFVwcGVyTGVmdEFycm93OlwiXFx1MjE5NlwiLG53YXJyOlwiXFx1MjE5NlwiLG53YXJyb3c6XCJcXHUyMTk2XCIsVXBwZXJSaWdodEFycm93OlwiXFx1MjE5N1wiLG5lYXJyOlwiXFx1MjE5N1wiLG5lYXJyb3c6XCJcXHUyMTk3XCIsVXBzaTpcIlxcdTAzRDJcIix1cHNpaDpcIlxcdTAzRDJcIixVcHNpbG9uOlwiXFx1MDNBNVwiLFVyaW5nOlwiXFx1MDE2RVwiLFVzY3I6XCJcXHV7MUQ0QjB9XCIsVXRpbGRlOlwiXFx1MDE2OFwiLFV1bWw6XCJcXHhEQ1wiLFZEYXNoOlwiXFx1MjJBQlwiLFZiYXI6XCJcXHUyQUVCXCIsVmN5OlwiXFx1MDQxMlwiLFZkYXNoOlwiXFx1MjJBOVwiLFZkYXNobDpcIlxcdTJBRTZcIixWZWU6XCJcXHUyMkMxXCIsYmlndmVlOlwiXFx1MjJDMVwiLHh2ZWU6XCJcXHUyMkMxXCIsVmVyYmFyOlwiXFx1MjAxNlwiLFZlcnQ6XCJcXHUyMDE2XCIsVmVydGljYWxCYXI6XCJcXHUyMjIzXCIsbWlkOlwiXFx1MjIyM1wiLHNob3J0bWlkOlwiXFx1MjIyM1wiLHNtaWQ6XCJcXHUyMjIzXCIsVmVydGljYWxMaW5lOlwifFwiLHZlcmJhcjpcInxcIix2ZXJ0OlwifFwiLFZlcnRpY2FsU2VwYXJhdG9yOlwiXFx1Mjc1OFwiLFZlcnRpY2FsVGlsZGU6XCJcXHUyMjQwXCIsd3I6XCJcXHUyMjQwXCIsd3JlYXRoOlwiXFx1MjI0MFwiLFZlcnlUaGluU3BhY2U6XCJcXHUyMDBBXCIsaGFpcnNwOlwiXFx1MjAwQVwiLFZmcjpcIlxcdXsxRDUxOX1cIixWb3BmOlwiXFx1ezFENTREfVwiLFZzY3I6XCJcXHV7MUQ0QjF9XCIsVnZkYXNoOlwiXFx1MjJBQVwiLFdjaXJjOlwiXFx1MDE3NFwiLFdlZGdlOlwiXFx1MjJDMFwiLGJpZ3dlZGdlOlwiXFx1MjJDMFwiLHh3ZWRnZTpcIlxcdTIyQzBcIixXZnI6XCJcXHV7MUQ1MUF9XCIsV29wZjpcIlxcdXsxRDU0RX1cIixXc2NyOlwiXFx1ezFENEIyfVwiLFhmcjpcIlxcdXsxRDUxQn1cIixYaTpcIlxcdTAzOUVcIixYb3BmOlwiXFx1ezFENTRGfVwiLFhzY3I6XCJcXHV7MUQ0QjN9XCIsWUFjeTpcIlxcdTA0MkZcIixZSWN5OlwiXFx1MDQwN1wiLFlVY3k6XCJcXHUwNDJFXCIsWWFjdXRlOlwiXFx4RERcIixZY2lyYzpcIlxcdTAxNzZcIixZY3k6XCJcXHUwNDJCXCIsWWZyOlwiXFx1ezFENTFDfVwiLFlvcGY6XCJcXHV7MUQ1NTB9XCIsWXNjcjpcIlxcdXsxRDRCNH1cIixZdW1sOlwiXFx1MDE3OFwiLFpIY3k6XCJcXHUwNDE2XCIsWmFjdXRlOlwiXFx1MDE3OVwiLFpjYXJvbjpcIlxcdTAxN0RcIixaY3k6XCJcXHUwNDE3XCIsWmRvdDpcIlxcdTAxN0JcIixaZXRhOlwiXFx1MDM5NlwiLFpmcjpcIlxcdTIxMjhcIix6ZWV0cmY6XCJcXHUyMTI4XCIsWm9wZjpcIlxcdTIxMjRcIixpbnRlZ2VyczpcIlxcdTIxMjRcIixac2NyOlwiXFx1ezFENEI1fVwiLGFhY3V0ZTpcIlxceEUxXCIsYWJyZXZlOlwiXFx1MDEwM1wiLGFjOlwiXFx1MjIzRVwiLG1zdHBvczpcIlxcdTIyM0VcIixhY0U6XCJcXHUyMjNFXFx1MDMzM1wiLGFjZDpcIlxcdTIyM0ZcIixhY2lyYzpcIlxceEUyXCIsYWN5OlwiXFx1MDQzMFwiLGFlbGlnOlwiXFx4RTZcIixhZnI6XCJcXHV7MUQ1MUV9XCIsYWdyYXZlOlwiXFx4RTBcIixhbGVmc3ltOlwiXFx1MjEzNVwiLGFsZXBoOlwiXFx1MjEzNVwiLGFscGhhOlwiXFx1MDNCMVwiLGFtYWNyOlwiXFx1MDEwMVwiLGFtYWxnOlwiXFx1MkEzRlwiLGFuZDpcIlxcdTIyMjdcIix3ZWRnZTpcIlxcdTIyMjdcIixhbmRhbmQ6XCJcXHUyQTU1XCIsYW5kZDpcIlxcdTJBNUNcIixhbmRzbG9wZTpcIlxcdTJBNThcIixhbmR2OlwiXFx1MkE1QVwiLGFuZzpcIlxcdTIyMjBcIixhbmdsZTpcIlxcdTIyMjBcIixhbmdlOlwiXFx1MjlBNFwiLGFuZ21zZDpcIlxcdTIyMjFcIixtZWFzdXJlZGFuZ2xlOlwiXFx1MjIyMVwiLGFuZ21zZGFhOlwiXFx1MjlBOFwiLGFuZ21zZGFiOlwiXFx1MjlBOVwiLGFuZ21zZGFjOlwiXFx1MjlBQVwiLGFuZ21zZGFkOlwiXFx1MjlBQlwiLGFuZ21zZGFlOlwiXFx1MjlBQ1wiLGFuZ21zZGFmOlwiXFx1MjlBRFwiLGFuZ21zZGFnOlwiXFx1MjlBRVwiLGFuZ21zZGFoOlwiXFx1MjlBRlwiLGFuZ3J0OlwiXFx1MjIxRlwiLGFuZ3J0dmI6XCJcXHUyMkJFXCIsYW5ncnR2YmQ6XCJcXHUyOTlEXCIsYW5nc3BoOlwiXFx1MjIyMlwiLGFuZ3phcnI6XCJcXHUyMzdDXCIsYW9nb246XCJcXHUwMTA1XCIsYW9wZjpcIlxcdXsxRDU1Mn1cIixhcEU6XCJcXHUyQTcwXCIsYXBhY2lyOlwiXFx1MkE2RlwiLGFwZTpcIlxcdTIyNEFcIixhcHByb3hlcTpcIlxcdTIyNEFcIixhcGlkOlwiXFx1MjI0QlwiLGFwb3M6XCInXCIsYXJpbmc6XCJcXHhFNVwiLGFzY3I6XCJcXHV7MUQ0QjZ9XCIsYXN0OlwiKlwiLG1pZGFzdDpcIipcIixhdGlsZGU6XCJcXHhFM1wiLGF1bWw6XCJcXHhFNFwiLGF3aW50OlwiXFx1MkExMVwiLGJOb3Q6XCJcXHUyQUVEXCIsYmFja2Nvbmc6XCJcXHUyMjRDXCIsYmNvbmc6XCJcXHUyMjRDXCIsYmFja2Vwc2lsb246XCJcXHUwM0Y2XCIsYmVwc2k6XCJcXHUwM0Y2XCIsYmFja3ByaW1lOlwiXFx1MjAzNVwiLGJwcmltZTpcIlxcdTIwMzVcIixiYWNrc2ltOlwiXFx1MjIzRFwiLGJzaW06XCJcXHUyMjNEXCIsYmFja3NpbWVxOlwiXFx1MjJDRFwiLGJzaW1lOlwiXFx1MjJDRFwiLGJhcnZlZTpcIlxcdTIyQkRcIixiYXJ3ZWQ6XCJcXHUyMzA1XCIsYmFyd2VkZ2U6XCJcXHUyMzA1XCIsYmJya3Ricms6XCJcXHUyM0I2XCIsYmN5OlwiXFx1MDQzMVwiLGJkcXVvOlwiXFx1MjAxRVwiLGxkcXVvcjpcIlxcdTIwMUVcIixiZW1wdHl2OlwiXFx1MjlCMFwiLGJldGE6XCJcXHUwM0IyXCIsYmV0aDpcIlxcdTIxMzZcIixiZXR3ZWVuOlwiXFx1MjI2Q1wiLHR3aXh0OlwiXFx1MjI2Q1wiLGJmcjpcIlxcdXsxRDUxRn1cIixiaWdjaXJjOlwiXFx1MjVFRlwiLHhjaXJjOlwiXFx1MjVFRlwiLGJpZ29kb3Q6XCJcXHUyQTAwXCIseG9kb3Q6XCJcXHUyQTAwXCIsYmlnb3BsdXM6XCJcXHUyQTAxXCIseG9wbHVzOlwiXFx1MkEwMVwiLGJpZ290aW1lczpcIlxcdTJBMDJcIix4b3RpbWU6XCJcXHUyQTAyXCIsYmlnc3FjdXA6XCJcXHUyQTA2XCIseHNxY3VwOlwiXFx1MkEwNlwiLGJpZ3N0YXI6XCJcXHUyNjA1XCIsc3RhcmY6XCJcXHUyNjA1XCIsYmlndHJpYW5nbGVkb3duOlwiXFx1MjVCRFwiLHhkdHJpOlwiXFx1MjVCRFwiLGJpZ3RyaWFuZ2xldXA6XCJcXHUyNUIzXCIseHV0cmk6XCJcXHUyNUIzXCIsYmlndXBsdXM6XCJcXHUyQTA0XCIseHVwbHVzOlwiXFx1MkEwNFwiLGJrYXJvdzpcIlxcdTI5MERcIixyYmFycjpcIlxcdTI5MERcIixibGFja2xvemVuZ2U6XCJcXHUyOUVCXCIsbG96ZjpcIlxcdTI5RUJcIixibGFja3RyaWFuZ2xlOlwiXFx1MjVCNFwiLHV0cmlmOlwiXFx1MjVCNFwiLGJsYWNrdHJpYW5nbGVkb3duOlwiXFx1MjVCRVwiLGR0cmlmOlwiXFx1MjVCRVwiLGJsYWNrdHJpYW5nbGVsZWZ0OlwiXFx1MjVDMlwiLGx0cmlmOlwiXFx1MjVDMlwiLGJsYWNrdHJpYW5nbGVyaWdodDpcIlxcdTI1QjhcIixydHJpZjpcIlxcdTI1QjhcIixibGFuazpcIlxcdTI0MjNcIixibGsxMjpcIlxcdTI1OTJcIixibGsxNDpcIlxcdTI1OTFcIixibGszNDpcIlxcdTI1OTNcIixibG9jazpcIlxcdTI1ODhcIixibmU6XCI9XFx1MjBFNVwiLGJuZXF1aXY6XCJcXHUyMjYxXFx1MjBFNVwiLGJub3Q6XCJcXHUyMzEwXCIsYm9wZjpcIlxcdXsxRDU1M31cIixib3d0aWU6XCJcXHUyMkM4XCIsYm94REw6XCJcXHUyNTU3XCIsYm94RFI6XCJcXHUyNTU0XCIsYm94RGw6XCJcXHUyNTU2XCIsYm94RHI6XCJcXHUyNTUzXCIsYm94SDpcIlxcdTI1NTBcIixib3hIRDpcIlxcdTI1NjZcIixib3hIVTpcIlxcdTI1NjlcIixib3hIZDpcIlxcdTI1NjRcIixib3hIdTpcIlxcdTI1NjdcIixib3hVTDpcIlxcdTI1NURcIixib3hVUjpcIlxcdTI1NUFcIixib3hVbDpcIlxcdTI1NUNcIixib3hVcjpcIlxcdTI1NTlcIixib3hWOlwiXFx1MjU1MVwiLGJveFZIOlwiXFx1MjU2Q1wiLGJveFZMOlwiXFx1MjU2M1wiLGJveFZSOlwiXFx1MjU2MFwiLGJveFZoOlwiXFx1MjU2QlwiLGJveFZsOlwiXFx1MjU2MlwiLGJveFZyOlwiXFx1MjU1RlwiLGJveGJveDpcIlxcdTI5QzlcIixib3hkTDpcIlxcdTI1NTVcIixib3hkUjpcIlxcdTI1NTJcIixib3hkbDpcIlxcdTI1MTBcIixib3hkcjpcIlxcdTI1MENcIixib3hoRDpcIlxcdTI1NjVcIixib3hoVTpcIlxcdTI1NjhcIixib3hoZDpcIlxcdTI1MkNcIixib3hodTpcIlxcdTI1MzRcIixib3htaW51czpcIlxcdTIyOUZcIixtaW51c2I6XCJcXHUyMjlGXCIsYm94cGx1czpcIlxcdTIyOUVcIixwbHVzYjpcIlxcdTIyOUVcIixib3h0aW1lczpcIlxcdTIyQTBcIix0aW1lc2I6XCJcXHUyMkEwXCIsYm94dUw6XCJcXHUyNTVCXCIsYm94dVI6XCJcXHUyNTU4XCIsYm94dWw6XCJcXHUyNTE4XCIsYm94dXI6XCJcXHUyNTE0XCIsYm94djpcIlxcdTI1MDJcIixib3h2SDpcIlxcdTI1NkFcIixib3h2TDpcIlxcdTI1NjFcIixib3h2UjpcIlxcdTI1NUVcIixib3h2aDpcIlxcdTI1M0NcIixib3h2bDpcIlxcdTI1MjRcIixib3h2cjpcIlxcdTI1MUNcIixicnZiYXI6XCJcXHhBNlwiLGJzY3I6XCJcXHV7MUQ0Qjd9XCIsYnNlbWk6XCJcXHUyMDRGXCIsYnNvbDpcIlxcXFxcIixic29sYjpcIlxcdTI5QzVcIixic29saHN1YjpcIlxcdTI3QzhcIixidWxsOlwiXFx1MjAyMlwiLGJ1bGxldDpcIlxcdTIwMjJcIixidW1wRTpcIlxcdTJBQUVcIixjYWN1dGU6XCJcXHUwMTA3XCIsY2FwOlwiXFx1MjIyOVwiLGNhcGFuZDpcIlxcdTJBNDRcIixjYXBicmN1cDpcIlxcdTJBNDlcIixjYXBjYXA6XCJcXHUyQTRCXCIsY2FwY3VwOlwiXFx1MkE0N1wiLGNhcGRvdDpcIlxcdTJBNDBcIixjYXBzOlwiXFx1MjIyOVxcdUZFMDBcIixjYXJldDpcIlxcdTIwNDFcIixjY2FwczpcIlxcdTJBNERcIixjY2Fyb246XCJcXHUwMTBEXCIsY2NlZGlsOlwiXFx4RTdcIixjY2lyYzpcIlxcdTAxMDlcIixjY3VwczpcIlxcdTJBNENcIixjY3Vwc3NtOlwiXFx1MkE1MFwiLGNkb3Q6XCJcXHUwMTBCXCIsY2VtcHR5djpcIlxcdTI5QjJcIixjZW50OlwiXFx4QTJcIixjZnI6XCJcXHV7MUQ1MjB9XCIsY2hjeTpcIlxcdTA0NDdcIixjaGVjazpcIlxcdTI3MTNcIixjaGVja21hcms6XCJcXHUyNzEzXCIsY2hpOlwiXFx1MDNDN1wiLGNpcjpcIlxcdTI1Q0JcIixjaXJFOlwiXFx1MjlDM1wiLGNpcmM6XCJcXHUwMkM2XCIsY2lyY2VxOlwiXFx1MjI1N1wiLGNpcmU6XCJcXHUyMjU3XCIsY2lyY2xlYXJyb3dsZWZ0OlwiXFx1MjFCQVwiLG9sYXJyOlwiXFx1MjFCQVwiLGNpcmNsZWFycm93cmlnaHQ6XCJcXHUyMUJCXCIsb3JhcnI6XCJcXHUyMUJCXCIsY2lyY2xlZFM6XCJcXHUyNEM4XCIsb1M6XCJcXHUyNEM4XCIsY2lyY2xlZGFzdDpcIlxcdTIyOUJcIixvYXN0OlwiXFx1MjI5QlwiLGNpcmNsZWRjaXJjOlwiXFx1MjI5QVwiLG9jaXI6XCJcXHUyMjlBXCIsY2lyY2xlZGRhc2g6XCJcXHUyMjlEXCIsb2Rhc2g6XCJcXHUyMjlEXCIsY2lyZm5pbnQ6XCJcXHUyQTEwXCIsY2lybWlkOlwiXFx1MkFFRlwiLGNpcnNjaXI6XCJcXHUyOUMyXCIsY2x1YnM6XCJcXHUyNjYzXCIsY2x1YnN1aXQ6XCJcXHUyNjYzXCIsY29sb246XCI6XCIsY29tbWE6XCIsXCIsY29tbWF0OlwiQFwiLGNvbXA6XCJcXHUyMjAxXCIsY29tcGxlbWVudDpcIlxcdTIyMDFcIixjb25nZG90OlwiXFx1MkE2RFwiLGNvcGY6XCJcXHV7MUQ1NTR9XCIsY29weXNyOlwiXFx1MjExN1wiLGNyYXJyOlwiXFx1MjFCNVwiLGNyb3NzOlwiXFx1MjcxN1wiLGNzY3I6XCJcXHV7MUQ0Qjh9XCIsY3N1YjpcIlxcdTJBQ0ZcIixjc3ViZTpcIlxcdTJBRDFcIixjc3VwOlwiXFx1MkFEMFwiLGNzdXBlOlwiXFx1MkFEMlwiLGN0ZG90OlwiXFx1MjJFRlwiLGN1ZGFycmw6XCJcXHUyOTM4XCIsY3VkYXJycjpcIlxcdTI5MzVcIixjdWVwcjpcIlxcdTIyREVcIixjdXJseWVxcHJlYzpcIlxcdTIyREVcIixjdWVzYzpcIlxcdTIyREZcIixjdXJseWVxc3VjYzpcIlxcdTIyREZcIixjdWxhcnI6XCJcXHUyMUI2XCIsY3VydmVhcnJvd2xlZnQ6XCJcXHUyMUI2XCIsY3VsYXJycDpcIlxcdTI5M0RcIixjdXA6XCJcXHUyMjJBXCIsY3VwYnJjYXA6XCJcXHUyQTQ4XCIsY3VwY2FwOlwiXFx1MkE0NlwiLGN1cGN1cDpcIlxcdTJBNEFcIixjdXBkb3Q6XCJcXHUyMjhEXCIsY3Vwb3I6XCJcXHUyQTQ1XCIsY3VwczpcIlxcdTIyMkFcXHVGRTAwXCIsY3VyYXJyOlwiXFx1MjFCN1wiLGN1cnZlYXJyb3dyaWdodDpcIlxcdTIxQjdcIixjdXJhcnJtOlwiXFx1MjkzQ1wiLGN1cmx5dmVlOlwiXFx1MjJDRVwiLGN1dmVlOlwiXFx1MjJDRVwiLGN1cmx5d2VkZ2U6XCJcXHUyMkNGXCIsY3V3ZWQ6XCJcXHUyMkNGXCIsY3VycmVuOlwiXFx4QTRcIixjd2ludDpcIlxcdTIyMzFcIixjeWxjdHk6XCJcXHUyMzJEXCIsZEhhcjpcIlxcdTI5NjVcIixkYWdnZXI6XCJcXHUyMDIwXCIsZGFsZXRoOlwiXFx1MjEzOFwiLGRhc2g6XCJcXHUyMDEwXCIsaHlwaGVuOlwiXFx1MjAxMFwiLGRia2Fyb3c6XCJcXHUyOTBGXCIsckJhcnI6XCJcXHUyOTBGXCIsZGNhcm9uOlwiXFx1MDEwRlwiLGRjeTpcIlxcdTA0MzRcIixkZGFycjpcIlxcdTIxQ0FcIixkb3duZG93bmFycm93czpcIlxcdTIxQ0FcIixkZG90c2VxOlwiXFx1MkE3N1wiLGVERG90OlwiXFx1MkE3N1wiLGRlZzpcIlxceEIwXCIsZGVsdGE6XCJcXHUwM0I0XCIsZGVtcHR5djpcIlxcdTI5QjFcIixkZmlzaHQ6XCJcXHUyOTdGXCIsZGZyOlwiXFx1ezFENTIxfVwiLGRpYW1vbmRzdWl0OlwiXFx1MjY2NlwiLGRpYW1zOlwiXFx1MjY2NlwiLGRpZ2FtbWE6XCJcXHUwM0REXCIsZ2FtbWFkOlwiXFx1MDNERFwiLGRpc2luOlwiXFx1MjJGMlwiLGRpdjpcIlxceEY3XCIsZGl2aWRlOlwiXFx4RjdcIixkaXZpZGVvbnRpbWVzOlwiXFx1MjJDN1wiLGRpdm9ueDpcIlxcdTIyQzdcIixkamN5OlwiXFx1MDQ1MlwiLGRsY29ybjpcIlxcdTIzMUVcIixsbGNvcm5lcjpcIlxcdTIzMUVcIixkbGNyb3A6XCJcXHUyMzBEXCIsZG9sbGFyOlwiJFwiLGRvcGY6XCJcXHV7MUQ1NTV9XCIsZG90ZXFkb3Q6XCJcXHUyMjUxXCIsZURvdDpcIlxcdTIyNTFcIixkb3RtaW51czpcIlxcdTIyMzhcIixtaW51c2Q6XCJcXHUyMjM4XCIsZG90cGx1czpcIlxcdTIyMTRcIixwbHVzZG86XCJcXHUyMjE0XCIsZG90c3F1YXJlOlwiXFx1MjJBMVwiLHNkb3RiOlwiXFx1MjJBMVwiLGRyY29ybjpcIlxcdTIzMUZcIixscmNvcm5lcjpcIlxcdTIzMUZcIixkcmNyb3A6XCJcXHUyMzBDXCIsZHNjcjpcIlxcdXsxRDRCOX1cIixkc2N5OlwiXFx1MDQ1NVwiLGRzb2w6XCJcXHUyOUY2XCIsZHN0cm9rOlwiXFx1MDExMVwiLGR0ZG90OlwiXFx1MjJGMVwiLGR0cmk6XCJcXHUyNUJGXCIsdHJpYW5nbGVkb3duOlwiXFx1MjVCRlwiLGR3YW5nbGU6XCJcXHUyOUE2XCIsZHpjeTpcIlxcdTA0NUZcIixkemlncmFycjpcIlxcdTI3RkZcIixlYWN1dGU6XCJcXHhFOVwiLGVhc3RlcjpcIlxcdTJBNkVcIixlY2Fyb246XCJcXHUwMTFCXCIsZWNpcjpcIlxcdTIyNTZcIixlcWNpcmM6XCJcXHUyMjU2XCIsZWNpcmM6XCJcXHhFQVwiLGVjb2xvbjpcIlxcdTIyNTVcIixlcWNvbG9uOlwiXFx1MjI1NVwiLGVjeTpcIlxcdTA0NERcIixlZG90OlwiXFx1MDExN1wiLGVmRG90OlwiXFx1MjI1MlwiLGZhbGxpbmdkb3RzZXE6XCJcXHUyMjUyXCIsZWZyOlwiXFx1ezFENTIyfVwiLGVnOlwiXFx1MkE5QVwiLGVncmF2ZTpcIlxceEU4XCIsZWdzOlwiXFx1MkE5NlwiLGVxc2xhbnRndHI6XCJcXHUyQTk2XCIsZWdzZG90OlwiXFx1MkE5OFwiLGVsOlwiXFx1MkE5OVwiLGVsaW50ZXJzOlwiXFx1MjNFN1wiLGVsbDpcIlxcdTIxMTNcIixlbHM6XCJcXHUyQTk1XCIsZXFzbGFudGxlc3M6XCJcXHUyQTk1XCIsZWxzZG90OlwiXFx1MkE5N1wiLGVtYWNyOlwiXFx1MDExM1wiLGVtcHR5OlwiXFx1MjIwNVwiLGVtcHR5c2V0OlwiXFx1MjIwNVwiLGVtcHR5djpcIlxcdTIyMDVcIix2YXJub3RoaW5nOlwiXFx1MjIwNVwiLGVtc3AxMzpcIlxcdTIwMDRcIixlbXNwMTQ6XCJcXHUyMDA1XCIsZW1zcDpcIlxcdTIwMDNcIixlbmc6XCJcXHUwMTRCXCIsZW5zcDpcIlxcdTIwMDJcIixlb2dvbjpcIlxcdTAxMTlcIixlb3BmOlwiXFx1ezFENTU2fVwiLGVwYXI6XCJcXHUyMkQ1XCIsZXBhcnNsOlwiXFx1MjlFM1wiLGVwbHVzOlwiXFx1MkE3MVwiLGVwc2k6XCJcXHUwM0I1XCIsZXBzaWxvbjpcIlxcdTAzQjVcIixlcHNpdjpcIlxcdTAzRjVcIixzdHJhaWdodGVwc2lsb246XCJcXHUwM0Y1XCIsdmFyZXBzaWxvbjpcIlxcdTAzRjVcIixlcXVhbHM6XCI9XCIsZXF1ZXN0OlwiXFx1MjI1RlwiLHF1ZXN0ZXE6XCJcXHUyMjVGXCIsZXF1aXZERDpcIlxcdTJBNzhcIixlcXZwYXJzbDpcIlxcdTI5RTVcIixlckRvdDpcIlxcdTIyNTNcIixyaXNpbmdkb3RzZXE6XCJcXHUyMjUzXCIsZXJhcnI6XCJcXHUyOTcxXCIsZXNjcjpcIlxcdTIxMkZcIixldGE6XCJcXHUwM0I3XCIsZXRoOlwiXFx4RjBcIixldW1sOlwiXFx4RUJcIixldXJvOlwiXFx1MjBBQ1wiLGV4Y2w6XCIhXCIsZmN5OlwiXFx1MDQ0NFwiLGZlbWFsZTpcIlxcdTI2NDBcIixmZmlsaWc6XCJcXHVGQjAzXCIsZmZsaWc6XCJcXHVGQjAwXCIsZmZsbGlnOlwiXFx1RkIwNFwiLGZmcjpcIlxcdXsxRDUyM31cIixmaWxpZzpcIlxcdUZCMDFcIixmamxpZzpcImZqXCIsZmxhdDpcIlxcdTI2NkRcIixmbGxpZzpcIlxcdUZCMDJcIixmbHRuczpcIlxcdTI1QjFcIixmbm9mOlwiXFx1MDE5MlwiLGZvcGY6XCJcXHV7MUQ1NTd9XCIsZm9yazpcIlxcdTIyRDRcIixwaXRjaGZvcms6XCJcXHUyMkQ0XCIsZm9ya3Y6XCJcXHUyQUQ5XCIsZnBhcnRpbnQ6XCJcXHUyQTBEXCIsZnJhYzEyOlwiXFx4QkRcIixoYWxmOlwiXFx4QkRcIixmcmFjMTM6XCJcXHUyMTUzXCIsZnJhYzE0OlwiXFx4QkNcIixmcmFjMTU6XCJcXHUyMTU1XCIsZnJhYzE2OlwiXFx1MjE1OVwiLGZyYWMxODpcIlxcdTIxNUJcIixmcmFjMjM6XCJcXHUyMTU0XCIsZnJhYzI1OlwiXFx1MjE1NlwiLGZyYWMzNDpcIlxceEJFXCIsZnJhYzM1OlwiXFx1MjE1N1wiLGZyYWMzODpcIlxcdTIxNUNcIixmcmFjNDU6XCJcXHUyMTU4XCIsZnJhYzU2OlwiXFx1MjE1QVwiLGZyYWM1ODpcIlxcdTIxNURcIixmcmFjNzg6XCJcXHUyMTVFXCIsZnJhc2w6XCJcXHUyMDQ0XCIsZnJvd246XCJcXHUyMzIyXCIsc2Zyb3duOlwiXFx1MjMyMlwiLGZzY3I6XCJcXHV7MUQ0QkJ9XCIsZ0VsOlwiXFx1MkE4Q1wiLGd0cmVxcWxlc3M6XCJcXHUyQThDXCIsZ2FjdXRlOlwiXFx1MDFGNVwiLGdhbW1hOlwiXFx1MDNCM1wiLGdhcDpcIlxcdTJBODZcIixndHJhcHByb3g6XCJcXHUyQTg2XCIsZ2JyZXZlOlwiXFx1MDExRlwiLGdjaXJjOlwiXFx1MDExRFwiLGdjeTpcIlxcdTA0MzNcIixnZG90OlwiXFx1MDEyMVwiLGdlc2NjOlwiXFx1MkFBOVwiLGdlc2RvdDpcIlxcdTJBODBcIixnZXNkb3RvOlwiXFx1MkE4MlwiLGdlc2RvdG9sOlwiXFx1MkE4NFwiLGdlc2w6XCJcXHUyMkRCXFx1RkUwMFwiLGdlc2xlczpcIlxcdTJBOTRcIixnZnI6XCJcXHV7MUQ1MjR9XCIsZ2ltZWw6XCJcXHUyMTM3XCIsZ2pjeTpcIlxcdTA0NTNcIixnbEU6XCJcXHUyQTkyXCIsZ2xhOlwiXFx1MkFBNVwiLGdsajpcIlxcdTJBQTRcIixnbkU6XCJcXHUyMjY5XCIsZ25lcXE6XCJcXHUyMjY5XCIsZ25hcDpcIlxcdTJBOEFcIixnbmFwcHJveDpcIlxcdTJBOEFcIixnbmU6XCJcXHUyQTg4XCIsZ25lcTpcIlxcdTJBODhcIixnbnNpbTpcIlxcdTIyRTdcIixnb3BmOlwiXFx1ezFENTU4fVwiLGdzY3I6XCJcXHUyMTBBXCIsZ3NpbWU6XCJcXHUyQThFXCIsZ3NpbWw6XCJcXHUyQTkwXCIsZ3RjYzpcIlxcdTJBQTdcIixndGNpcjpcIlxcdTJBN0FcIixndGRvdDpcIlxcdTIyRDdcIixndHJkb3Q6XCJcXHUyMkQ3XCIsZ3RsUGFyOlwiXFx1Mjk5NVwiLGd0cXVlc3Q6XCJcXHUyQTdDXCIsZ3RyYXJyOlwiXFx1Mjk3OFwiLGd2ZXJ0bmVxcTpcIlxcdTIyNjlcXHVGRTAwXCIsZ3ZuRTpcIlxcdTIyNjlcXHVGRTAwXCIsaGFyZGN5OlwiXFx1MDQ0QVwiLGhhcnJjaXI6XCJcXHUyOTQ4XCIsaGFycnc6XCJcXHUyMUFEXCIsbGVmdHJpZ2h0c3F1aWdhcnJvdzpcIlxcdTIxQURcIixoYmFyOlwiXFx1MjEwRlwiLGhzbGFzaDpcIlxcdTIxMEZcIixwbGFuY2s6XCJcXHUyMTBGXCIscGxhbmt2OlwiXFx1MjEwRlwiLGhjaXJjOlwiXFx1MDEyNVwiLGhlYXJ0czpcIlxcdTI2NjVcIixoZWFydHN1aXQ6XCJcXHUyNjY1XCIsaGVsbGlwOlwiXFx1MjAyNlwiLG1sZHI6XCJcXHUyMDI2XCIsaGVyY29uOlwiXFx1MjJCOVwiLGhmcjpcIlxcdXsxRDUyNX1cIixoa3NlYXJvdzpcIlxcdTI5MjVcIixzZWFyaGs6XCJcXHUyOTI1XCIsaGtzd2Fyb3c6XCJcXHUyOTI2XCIsc3dhcmhrOlwiXFx1MjkyNlwiLGhvYXJyOlwiXFx1MjFGRlwiLGhvbXRodDpcIlxcdTIyM0JcIixob29rbGVmdGFycm93OlwiXFx1MjFBOVwiLGxhcnJoazpcIlxcdTIxQTlcIixob29rcmlnaHRhcnJvdzpcIlxcdTIxQUFcIixyYXJyaGs6XCJcXHUyMUFBXCIsaG9wZjpcIlxcdXsxRDU1OX1cIixob3JiYXI6XCJcXHUyMDE1XCIsaHNjcjpcIlxcdXsxRDRCRH1cIixoc3Ryb2s6XCJcXHUwMTI3XCIsaHlidWxsOlwiXFx1MjA0M1wiLGlhY3V0ZTpcIlxceEVEXCIsaWNpcmM6XCJcXHhFRVwiLGljeTpcIlxcdTA0MzhcIixpZWN5OlwiXFx1MDQzNVwiLGlleGNsOlwiXFx4QTFcIixpZnI6XCJcXHV7MUQ1MjZ9XCIsaWdyYXZlOlwiXFx4RUNcIixpaWlpbnQ6XCJcXHUyQTBDXCIscWludDpcIlxcdTJBMENcIixpaWludDpcIlxcdTIyMkRcIix0aW50OlwiXFx1MjIyRFwiLGlpbmZpbjpcIlxcdTI5RENcIixpaW90YTpcIlxcdTIxMjlcIixpamxpZzpcIlxcdTAxMzNcIixpbWFjcjpcIlxcdTAxMkJcIixpbWF0aDpcIlxcdTAxMzFcIixpbm9kb3Q6XCJcXHUwMTMxXCIsaW1vZjpcIlxcdTIyQjdcIixpbXBlZDpcIlxcdTAxQjVcIixpbmNhcmU6XCJcXHUyMTA1XCIsaW5maW46XCJcXHUyMjFFXCIsaW5maW50aWU6XCJcXHUyOUREXCIsaW50Y2FsOlwiXFx1MjJCQVwiLGludGVyY2FsOlwiXFx1MjJCQVwiLGludGxhcmhrOlwiXFx1MkExN1wiLGludHByb2Q6XCJcXHUyQTNDXCIsaXByb2Q6XCJcXHUyQTNDXCIsaW9jeTpcIlxcdTA0NTFcIixpb2dvbjpcIlxcdTAxMkZcIixpb3BmOlwiXFx1ezFENTVBfVwiLGlvdGE6XCJcXHUwM0I5XCIsaXF1ZXN0OlwiXFx4QkZcIixpc2NyOlwiXFx1ezFENEJFfVwiLGlzaW5FOlwiXFx1MjJGOVwiLGlzaW5kb3Q6XCJcXHUyMkY1XCIsaXNpbnM6XCJcXHUyMkY0XCIsaXNpbnN2OlwiXFx1MjJGM1wiLGl0aWxkZTpcIlxcdTAxMjlcIixpdWtjeTpcIlxcdTA0NTZcIixpdW1sOlwiXFx4RUZcIixqY2lyYzpcIlxcdTAxMzVcIixqY3k6XCJcXHUwNDM5XCIsamZyOlwiXFx1ezFENTI3fVwiLGptYXRoOlwiXFx1MDIzN1wiLGpvcGY6XCJcXHV7MUQ1NUJ9XCIsanNjcjpcIlxcdXsxRDRCRn1cIixqc2VyY3k6XCJcXHUwNDU4XCIsanVrY3k6XCJcXHUwNDU0XCIsa2FwcGE6XCJcXHUwM0JBXCIsa2FwcGF2OlwiXFx1MDNGMFwiLHZhcmthcHBhOlwiXFx1MDNGMFwiLGtjZWRpbDpcIlxcdTAxMzdcIixrY3k6XCJcXHUwNDNBXCIsa2ZyOlwiXFx1ezFENTI4fVwiLGtncmVlbjpcIlxcdTAxMzhcIixraGN5OlwiXFx1MDQ0NVwiLGtqY3k6XCJcXHUwNDVDXCIsa29wZjpcIlxcdXsxRDU1Q31cIixrc2NyOlwiXFx1ezFENEMwfVwiLGxBdGFpbDpcIlxcdTI5MUJcIixsQmFycjpcIlxcdTI5MEVcIixsRWc6XCJcXHUyQThCXCIsbGVzc2VxcWd0cjpcIlxcdTJBOEJcIixsSGFyOlwiXFx1Mjk2MlwiLGxhY3V0ZTpcIlxcdTAxM0FcIixsYWVtcHR5djpcIlxcdTI5QjRcIixsYW1iZGE6XCJcXHUwM0JCXCIsbGFuZ2Q6XCJcXHUyOTkxXCIsbGFwOlwiXFx1MkE4NVwiLGxlc3NhcHByb3g6XCJcXHUyQTg1XCIsbGFxdW86XCJcXHhBQlwiLGxhcnJiZnM6XCJcXHUyOTFGXCIsbGFycmZzOlwiXFx1MjkxRFwiLGxhcnJscDpcIlxcdTIxQUJcIixsb29wYXJyb3dsZWZ0OlwiXFx1MjFBQlwiLGxhcnJwbDpcIlxcdTI5MzlcIixsYXJyc2ltOlwiXFx1Mjk3M1wiLGxhcnJ0bDpcIlxcdTIxQTJcIixsZWZ0YXJyb3d0YWlsOlwiXFx1MjFBMlwiLGxhdDpcIlxcdTJBQUJcIixsYXRhaWw6XCJcXHUyOTE5XCIsbGF0ZTpcIlxcdTJBQURcIixsYXRlczpcIlxcdTJBQURcXHVGRTAwXCIsbGJhcnI6XCJcXHUyOTBDXCIsbGJicms6XCJcXHUyNzcyXCIsbGJyYWNlOlwie1wiLGxjdWI6XCJ7XCIsbGJyYWNrOlwiW1wiLGxzcWI6XCJbXCIsbGJya2U6XCJcXHUyOThCXCIsbGJya3NsZDpcIlxcdTI5OEZcIixsYnJrc2x1OlwiXFx1Mjk4RFwiLGxjYXJvbjpcIlxcdTAxM0VcIixsY2VkaWw6XCJcXHUwMTNDXCIsbGN5OlwiXFx1MDQzQlwiLGxkY2E6XCJcXHUyOTM2XCIsbGRyZGhhcjpcIlxcdTI5NjdcIixsZHJ1c2hhcjpcIlxcdTI5NEJcIixsZHNoOlwiXFx1MjFCMlwiLGxlOlwiXFx1MjI2NFwiLGxlcTpcIlxcdTIyNjRcIixsZWZ0bGVmdGFycm93czpcIlxcdTIxQzdcIixsbGFycjpcIlxcdTIxQzdcIixsZWZ0dGhyZWV0aW1lczpcIlxcdTIyQ0JcIixsdGhyZWU6XCJcXHUyMkNCXCIsbGVzY2M6XCJcXHUyQUE4XCIsbGVzZG90OlwiXFx1MkE3RlwiLGxlc2RvdG86XCJcXHUyQTgxXCIsbGVzZG90b3I6XCJcXHUyQTgzXCIsbGVzZzpcIlxcdTIyREFcXHVGRTAwXCIsbGVzZ2VzOlwiXFx1MkE5M1wiLGxlc3Nkb3Q6XCJcXHUyMkQ2XCIsbHRkb3Q6XCJcXHUyMkQ2XCIsbGZpc2h0OlwiXFx1Mjk3Q1wiLGxmcjpcIlxcdXsxRDUyOX1cIixsZ0U6XCJcXHUyQTkxXCIsbGhhcnVsOlwiXFx1Mjk2QVwiLGxoYmxrOlwiXFx1MjU4NFwiLGxqY3k6XCJcXHUwNDU5XCIsbGxoYXJkOlwiXFx1Mjk2QlwiLGxsdHJpOlwiXFx1MjVGQVwiLGxtaWRvdDpcIlxcdTAxNDBcIixsbW91c3Q6XCJcXHUyM0IwXCIsbG1vdXN0YWNoZTpcIlxcdTIzQjBcIixsbkU6XCJcXHUyMjY4XCIsbG5lcXE6XCJcXHUyMjY4XCIsbG5hcDpcIlxcdTJBODlcIixsbmFwcHJveDpcIlxcdTJBODlcIixsbmU6XCJcXHUyQTg3XCIsbG5lcTpcIlxcdTJBODdcIixsbnNpbTpcIlxcdTIyRTZcIixsb2FuZzpcIlxcdTI3RUNcIixsb2FycjpcIlxcdTIxRkRcIixsb25nbWFwc3RvOlwiXFx1MjdGQ1wiLHhtYXA6XCJcXHUyN0ZDXCIsbG9vcGFycm93cmlnaHQ6XCJcXHUyMUFDXCIscmFycmxwOlwiXFx1MjFBQ1wiLGxvcGFyOlwiXFx1Mjk4NVwiLGxvcGY6XCJcXHV7MUQ1NUR9XCIsbG9wbHVzOlwiXFx1MkEyRFwiLGxvdGltZXM6XCJcXHUyQTM0XCIsbG93YXN0OlwiXFx1MjIxN1wiLGxvejpcIlxcdTI1Q0FcIixsb3plbmdlOlwiXFx1MjVDQVwiLGxwYXI6XCIoXCIsbHBhcmx0OlwiXFx1Mjk5M1wiLGxyaGFyZDpcIlxcdTI5NkRcIixscm06XCJcXHUyMDBFXCIsbHJ0cmk6XCJcXHUyMkJGXCIsbHNhcXVvOlwiXFx1MjAzOVwiLGxzY3I6XCJcXHV7MUQ0QzF9XCIsbHNpbWU6XCJcXHUyQThEXCIsbHNpbWc6XCJcXHUyQThGXCIsbHNxdW9yOlwiXFx1MjAxQVwiLHNicXVvOlwiXFx1MjAxQVwiLGxzdHJvazpcIlxcdTAxNDJcIixsdGNjOlwiXFx1MkFBNlwiLGx0Y2lyOlwiXFx1MkE3OVwiLGx0aW1lczpcIlxcdTIyQzlcIixsdGxhcnI6XCJcXHUyOTc2XCIsbHRxdWVzdDpcIlxcdTJBN0JcIixsdHJQYXI6XCJcXHUyOTk2XCIsbHRyaTpcIlxcdTI1QzNcIix0cmlhbmdsZWxlZnQ6XCJcXHUyNUMzXCIsbHVyZHNoYXI6XCJcXHUyOTRBXCIsbHVydWhhcjpcIlxcdTI5NjZcIixsdmVydG5lcXE6XCJcXHUyMjY4XFx1RkUwMFwiLGx2bkU6XCJcXHUyMjY4XFx1RkUwMFwiLG1ERG90OlwiXFx1MjIzQVwiLG1hY3I6XCJcXHhBRlwiLHN0cm5zOlwiXFx4QUZcIixtYWxlOlwiXFx1MjY0MlwiLG1hbHQ6XCJcXHUyNzIwXCIsbWFsdGVzZTpcIlxcdTI3MjBcIixtYXJrZXI6XCJcXHUyNUFFXCIsbWNvbW1hOlwiXFx1MkEyOVwiLG1jeTpcIlxcdTA0M0NcIixtZGFzaDpcIlxcdTIwMTRcIixtZnI6XCJcXHV7MUQ1MkF9XCIsbWhvOlwiXFx1MjEyN1wiLG1pY3JvOlwiXFx4QjVcIixtaWRjaXI6XCJcXHUyQUYwXCIsbWludXM6XCJcXHUyMjEyXCIsbWludXNkdTpcIlxcdTJBMkFcIixtbGNwOlwiXFx1MkFEQlwiLG1vZGVsczpcIlxcdTIyQTdcIixtb3BmOlwiXFx1ezFENTVFfVwiLG1zY3I6XCJcXHV7MUQ0QzJ9XCIsbXU6XCJcXHUwM0JDXCIsbXVsdGltYXA6XCJcXHUyMkI4XCIsbXVtYXA6XCJcXHUyMkI4XCIsbkdnOlwiXFx1MjJEOVxcdTAzMzhcIixuR3Q6XCJcXHUyMjZCXFx1MjBEMlwiLG5MZWZ0YXJyb3c6XCJcXHUyMUNEXCIsbmxBcnI6XCJcXHUyMUNEXCIsbkxlZnRyaWdodGFycm93OlwiXFx1MjFDRVwiLG5oQXJyOlwiXFx1MjFDRVwiLG5MbDpcIlxcdTIyRDhcXHUwMzM4XCIsbkx0OlwiXFx1MjI2QVxcdTIwRDJcIixuUmlnaHRhcnJvdzpcIlxcdTIxQ0ZcIixuckFycjpcIlxcdTIxQ0ZcIixuVkRhc2g6XCJcXHUyMkFGXCIsblZkYXNoOlwiXFx1MjJBRVwiLG5hY3V0ZTpcIlxcdTAxNDRcIixuYW5nOlwiXFx1MjIyMFxcdTIwRDJcIixuYXBFOlwiXFx1MkE3MFxcdTAzMzhcIixuYXBpZDpcIlxcdTIyNEJcXHUwMzM4XCIsbmFwb3M6XCJcXHUwMTQ5XCIsbmF0dXI6XCJcXHUyNjZFXCIsbmF0dXJhbDpcIlxcdTI2NkVcIixuY2FwOlwiXFx1MkE0M1wiLG5jYXJvbjpcIlxcdTAxNDhcIixuY2VkaWw6XCJcXHUwMTQ2XCIsbmNvbmdkb3Q6XCJcXHUyQTZEXFx1MDMzOFwiLG5jdXA6XCJcXHUyQTQyXCIsbmN5OlwiXFx1MDQzRFwiLG5kYXNoOlwiXFx1MjAxM1wiLG5lQXJyOlwiXFx1MjFEN1wiLG5lYXJoazpcIlxcdTI5MjRcIixuZWRvdDpcIlxcdTIyNTBcXHUwMzM4XCIsbmVzZWFyOlwiXFx1MjkyOFwiLHRvZWE6XCJcXHUyOTI4XCIsbmZyOlwiXFx1ezFENTJCfVwiLG5oYXJyOlwiXFx1MjFBRVwiLG5sZWZ0cmlnaHRhcnJvdzpcIlxcdTIxQUVcIixuaHBhcjpcIlxcdTJBRjJcIixuaXM6XCJcXHUyMkZDXCIsbmlzZDpcIlxcdTIyRkFcIixuamN5OlwiXFx1MDQ1QVwiLG5sRTpcIlxcdTIyNjZcXHUwMzM4XCIsbmxlcXE6XCJcXHUyMjY2XFx1MDMzOFwiLG5sYXJyOlwiXFx1MjE5QVwiLG5sZWZ0YXJyb3c6XCJcXHUyMTlBXCIsbmxkcjpcIlxcdTIwMjVcIixub3BmOlwiXFx1ezFENTVGfVwiLG5vdDpcIlxceEFDXCIsbm90aW5FOlwiXFx1MjJGOVxcdTAzMzhcIixub3RpbmRvdDpcIlxcdTIyRjVcXHUwMzM4XCIsbm90aW52YjpcIlxcdTIyRjdcIixub3RpbnZjOlwiXFx1MjJGNlwiLG5vdG5pdmI6XCJcXHUyMkZFXCIsbm90bml2YzpcIlxcdTIyRkRcIixucGFyc2w6XCJcXHUyQUZEXFx1MjBFNVwiLG5wYXJ0OlwiXFx1MjIwMlxcdTAzMzhcIixucG9saW50OlwiXFx1MkExNFwiLG5yYXJyOlwiXFx1MjE5QlwiLG5yaWdodGFycm93OlwiXFx1MjE5QlwiLG5yYXJyYzpcIlxcdTI5MzNcXHUwMzM4XCIsbnJhcnJ3OlwiXFx1MjE5RFxcdTAzMzhcIixuc2NyOlwiXFx1ezFENEMzfVwiLG5zdWI6XCJcXHUyMjg0XCIsbnN1YkU6XCJcXHUyQUM1XFx1MDMzOFwiLG5zdWJzZXRlcXE6XCJcXHUyQUM1XFx1MDMzOFwiLG5zdXA6XCJcXHUyMjg1XCIsbnN1cEU6XCJcXHUyQUM2XFx1MDMzOFwiLG5zdXBzZXRlcXE6XCJcXHUyQUM2XFx1MDMzOFwiLG50aWxkZTpcIlxceEYxXCIsbnU6XCJcXHUwM0JEXCIsbnVtOlwiI1wiLG51bWVybzpcIlxcdTIxMTZcIixudW1zcDpcIlxcdTIwMDdcIixudkRhc2g6XCJcXHUyMkFEXCIsbnZIYXJyOlwiXFx1MjkwNFwiLG52YXA6XCJcXHUyMjREXFx1MjBEMlwiLG52ZGFzaDpcIlxcdTIyQUNcIixudmdlOlwiXFx1MjI2NVxcdTIwRDJcIixudmd0OlwiPlxcdTIwRDJcIixudmluZmluOlwiXFx1MjlERVwiLG52bEFycjpcIlxcdTI5MDJcIixudmxlOlwiXFx1MjI2NFxcdTIwRDJcIixudmx0OlwiPFxcdTIwRDJcIixudmx0cmllOlwiXFx1MjJCNFxcdTIwRDJcIixudnJBcnI6XCJcXHUyOTAzXCIsbnZydHJpZTpcIlxcdTIyQjVcXHUyMEQyXCIsbnZzaW06XCJcXHUyMjNDXFx1MjBEMlwiLG53QXJyOlwiXFx1MjFENlwiLG53YXJoazpcIlxcdTI5MjNcIixud25lYXI6XCJcXHUyOTI3XCIsb2FjdXRlOlwiXFx4RjNcIixvY2lyYzpcIlxceEY0XCIsb2N5OlwiXFx1MDQzRVwiLG9kYmxhYzpcIlxcdTAxNTFcIixvZGl2OlwiXFx1MkEzOFwiLG9kc29sZDpcIlxcdTI5QkNcIixvZWxpZzpcIlxcdTAxNTNcIixvZmNpcjpcIlxcdTI5QkZcIixvZnI6XCJcXHV7MUQ1MkN9XCIsb2dvbjpcIlxcdTAyREJcIixvZ3JhdmU6XCJcXHhGMlwiLG9ndDpcIlxcdTI5QzFcIixvaGJhcjpcIlxcdTI5QjVcIixvbGNpcjpcIlxcdTI5QkVcIixvbGNyb3NzOlwiXFx1MjlCQlwiLG9sdDpcIlxcdTI5QzBcIixvbWFjcjpcIlxcdTAxNERcIixvbWVnYTpcIlxcdTAzQzlcIixvbWljcm9uOlwiXFx1MDNCRlwiLG9taWQ6XCJcXHUyOUI2XCIsb29wZjpcIlxcdXsxRDU2MH1cIixvcGFyOlwiXFx1MjlCN1wiLG9wZXJwOlwiXFx1MjlCOVwiLG9yOlwiXFx1MjIyOFwiLHZlZTpcIlxcdTIyMjhcIixvcmQ6XCJcXHUyQTVEXCIsb3JkZXI6XCJcXHUyMTM0XCIsb3JkZXJvZjpcIlxcdTIxMzRcIixvc2NyOlwiXFx1MjEzNFwiLG9yZGY6XCJcXHhBQVwiLG9yZG06XCJcXHhCQVwiLG9yaWdvZjpcIlxcdTIyQjZcIixvcm9yOlwiXFx1MkE1NlwiLG9yc2xvcGU6XCJcXHUyQTU3XCIsb3J2OlwiXFx1MkE1QlwiLG9zbGFzaDpcIlxceEY4XCIsb3NvbDpcIlxcdTIyOThcIixvdGlsZGU6XCJcXHhGNVwiLG90aW1lc2FzOlwiXFx1MkEzNlwiLG91bWw6XCJcXHhGNlwiLG92YmFyOlwiXFx1MjMzRFwiLHBhcmE6XCJcXHhCNlwiLHBhcnNpbTpcIlxcdTJBRjNcIixwYXJzbDpcIlxcdTJBRkRcIixwY3k6XCJcXHUwNDNGXCIscGVyY250OlwiJVwiLHBlcmlvZDpcIi5cIixwZXJtaWw6XCJcXHUyMDMwXCIscGVydGVuazpcIlxcdTIwMzFcIixwZnI6XCJcXHV7MUQ1MkR9XCIscGhpOlwiXFx1MDNDNlwiLHBoaXY6XCJcXHUwM0Q1XCIsc3RyYWlnaHRwaGk6XCJcXHUwM0Q1XCIsdmFycGhpOlwiXFx1MDNENVwiLHBob25lOlwiXFx1MjYwRVwiLHBpOlwiXFx1MDNDMFwiLHBpdjpcIlxcdTAzRDZcIix2YXJwaTpcIlxcdTAzRDZcIixwbGFuY2toOlwiXFx1MjEwRVwiLHBsdXM6XCIrXCIscGx1c2FjaXI6XCJcXHUyQTIzXCIscGx1c2NpcjpcIlxcdTJBMjJcIixwbHVzZHU6XCJcXHUyQTI1XCIscGx1c2U6XCJcXHUyQTcyXCIscGx1c3NpbTpcIlxcdTJBMjZcIixwbHVzdHdvOlwiXFx1MkEyN1wiLHBvaW50aW50OlwiXFx1MkExNVwiLHBvcGY6XCJcXHV7MUQ1NjF9XCIscG91bmQ6XCJcXHhBM1wiLHByRTpcIlxcdTJBQjNcIixwcmFwOlwiXFx1MkFCN1wiLHByZWNhcHByb3g6XCJcXHUyQUI3XCIscHJlY25hcHByb3g6XCJcXHUyQUI5XCIscHJuYXA6XCJcXHUyQUI5XCIscHJlY25lcXE6XCJcXHUyQUI1XCIscHJuRTpcIlxcdTJBQjVcIixwcmVjbnNpbTpcIlxcdTIyRThcIixwcm5zaW06XCJcXHUyMkU4XCIscHJpbWU6XCJcXHUyMDMyXCIscHJvZmFsYXI6XCJcXHUyMzJFXCIscHJvZmxpbmU6XCJcXHUyMzEyXCIscHJvZnN1cmY6XCJcXHUyMzEzXCIscHJ1cmVsOlwiXFx1MjJCMFwiLHBzY3I6XCJcXHV7MUQ0QzV9XCIscHNpOlwiXFx1MDNDOFwiLHB1bmNzcDpcIlxcdTIwMDhcIixxZnI6XCJcXHV7MUQ1MkV9XCIscW9wZjpcIlxcdXsxRDU2Mn1cIixxcHJpbWU6XCJcXHUyMDU3XCIscXNjcjpcIlxcdXsxRDRDNn1cIixxdWF0aW50OlwiXFx1MkExNlwiLHF1ZXN0OlwiP1wiLHJBdGFpbDpcIlxcdTI5MUNcIixySGFyOlwiXFx1Mjk2NFwiLHJhY2U6XCJcXHUyMjNEXFx1MDMzMVwiLHJhY3V0ZTpcIlxcdTAxNTVcIixyYWVtcHR5djpcIlxcdTI5QjNcIixyYW5nZDpcIlxcdTI5OTJcIixyYW5nZTpcIlxcdTI5QTVcIixyYXF1bzpcIlxceEJCXCIscmFycmFwOlwiXFx1Mjk3NVwiLHJhcnJiZnM6XCJcXHUyOTIwXCIscmFycmM6XCJcXHUyOTMzXCIscmFycmZzOlwiXFx1MjkxRVwiLHJhcnJwbDpcIlxcdTI5NDVcIixyYXJyc2ltOlwiXFx1Mjk3NFwiLHJhcnJ0bDpcIlxcdTIxQTNcIixyaWdodGFycm93dGFpbDpcIlxcdTIxQTNcIixyYXJydzpcIlxcdTIxOURcIixyaWdodHNxdWlnYXJyb3c6XCJcXHUyMTlEXCIscmF0YWlsOlwiXFx1MjkxQVwiLHJhdGlvOlwiXFx1MjIzNlwiLHJiYnJrOlwiXFx1Mjc3M1wiLHJicmFjZTpcIn1cIixyY3ViOlwifVwiLHJicmFjazpcIl1cIixyc3FiOlwiXVwiLHJicmtlOlwiXFx1Mjk4Q1wiLHJicmtzbGQ6XCJcXHUyOThFXCIscmJya3NsdTpcIlxcdTI5OTBcIixyY2Fyb246XCJcXHUwMTU5XCIscmNlZGlsOlwiXFx1MDE1N1wiLHJjeTpcIlxcdTA0NDBcIixyZGNhOlwiXFx1MjkzN1wiLHJkbGRoYXI6XCJcXHUyOTY5XCIscmRzaDpcIlxcdTIxQjNcIixyZWN0OlwiXFx1MjVBRFwiLHJmaXNodDpcIlxcdTI5N0RcIixyZnI6XCJcXHV7MUQ1MkZ9XCIscmhhcnVsOlwiXFx1Mjk2Q1wiLHJobzpcIlxcdTAzQzFcIixyaG92OlwiXFx1MDNGMVwiLHZhcnJobzpcIlxcdTAzRjFcIixyaWdodHJpZ2h0YXJyb3dzOlwiXFx1MjFDOVwiLHJyYXJyOlwiXFx1MjFDOVwiLHJpZ2h0dGhyZWV0aW1lczpcIlxcdTIyQ0NcIixydGhyZWU6XCJcXHUyMkNDXCIscmluZzpcIlxcdTAyREFcIixybG06XCJcXHUyMDBGXCIscm1vdXN0OlwiXFx1MjNCMVwiLHJtb3VzdGFjaGU6XCJcXHUyM0IxXCIscm5taWQ6XCJcXHUyQUVFXCIscm9hbmc6XCJcXHUyN0VEXCIscm9hcnI6XCJcXHUyMUZFXCIscm9wYXI6XCJcXHUyOTg2XCIscm9wZjpcIlxcdXsxRDU2M31cIixyb3BsdXM6XCJcXHUyQTJFXCIscm90aW1lczpcIlxcdTJBMzVcIixycGFyOlwiKVwiLHJwYXJndDpcIlxcdTI5OTRcIixycHBvbGludDpcIlxcdTJBMTJcIixyc2FxdW86XCJcXHUyMDNBXCIscnNjcjpcIlxcdXsxRDRDN31cIixydGltZXM6XCJcXHUyMkNBXCIscnRyaTpcIlxcdTI1QjlcIix0cmlhbmdsZXJpZ2h0OlwiXFx1MjVCOVwiLHJ0cmlsdHJpOlwiXFx1MjlDRVwiLHJ1bHVoYXI6XCJcXHUyOTY4XCIscng6XCJcXHUyMTFFXCIsc2FjdXRlOlwiXFx1MDE1QlwiLHNjRTpcIlxcdTJBQjRcIixzY2FwOlwiXFx1MkFCOFwiLHN1Y2NhcHByb3g6XCJcXHUyQUI4XCIsc2Nhcm9uOlwiXFx1MDE2MVwiLHNjZWRpbDpcIlxcdTAxNUZcIixzY2lyYzpcIlxcdTAxNURcIixzY25FOlwiXFx1MkFCNlwiLHN1Y2NuZXFxOlwiXFx1MkFCNlwiLHNjbmFwOlwiXFx1MkFCQVwiLHN1Y2NuYXBwcm94OlwiXFx1MkFCQVwiLHNjbnNpbTpcIlxcdTIyRTlcIixzdWNjbnNpbTpcIlxcdTIyRTlcIixzY3BvbGludDpcIlxcdTJBMTNcIixzY3k6XCJcXHUwNDQxXCIsc2RvdDpcIlxcdTIyQzVcIixzZG90ZTpcIlxcdTJBNjZcIixzZUFycjpcIlxcdTIxRDhcIixzZWN0OlwiXFx4QTdcIixzZW1pOlwiO1wiLHNlc3dhcjpcIlxcdTI5MjlcIix0b3NhOlwiXFx1MjkyOVwiLHNleHQ6XCJcXHUyNzM2XCIsc2ZyOlwiXFx1ezFENTMwfVwiLHNoYXJwOlwiXFx1MjY2RlwiLHNoY2hjeTpcIlxcdTA0NDlcIixzaGN5OlwiXFx1MDQ0OFwiLHNoeTpcIlxceEFEXCIsc2lnbWE6XCJcXHUwM0MzXCIsc2lnbWFmOlwiXFx1MDNDMlwiLHNpZ21hdjpcIlxcdTAzQzJcIix2YXJzaWdtYTpcIlxcdTAzQzJcIixzaW1kb3Q6XCJcXHUyQTZBXCIsc2ltZzpcIlxcdTJBOUVcIixzaW1nRTpcIlxcdTJBQTBcIixzaW1sOlwiXFx1MkE5RFwiLHNpbWxFOlwiXFx1MkE5RlwiLHNpbW5lOlwiXFx1MjI0NlwiLHNpbXBsdXM6XCJcXHUyQTI0XCIsc2ltcmFycjpcIlxcdTI5NzJcIixzbWFzaHA6XCJcXHUyQTMzXCIsc21lcGFyc2w6XCJcXHUyOUU0XCIsc21pbGU6XCJcXHUyMzIzXCIsc3NtaWxlOlwiXFx1MjMyM1wiLHNtdDpcIlxcdTJBQUFcIixzbXRlOlwiXFx1MkFBQ1wiLHNtdGVzOlwiXFx1MkFBQ1xcdUZFMDBcIixzb2Z0Y3k6XCJcXHUwNDRDXCIsc29sOlwiL1wiLHNvbGI6XCJcXHUyOUM0XCIsc29sYmFyOlwiXFx1MjMzRlwiLHNvcGY6XCJcXHV7MUQ1NjR9XCIsc3BhZGVzOlwiXFx1MjY2MFwiLHNwYWRlc3VpdDpcIlxcdTI2NjBcIixzcWNhcHM6XCJcXHUyMjkzXFx1RkUwMFwiLHNxY3VwczpcIlxcdTIyOTRcXHVGRTAwXCIsc3NjcjpcIlxcdXsxRDRDOH1cIixzdGFyOlwiXFx1MjYwNlwiLHN1YjpcIlxcdTIyODJcIixzdWJzZXQ6XCJcXHUyMjgyXCIsc3ViRTpcIlxcdTJBQzVcIixzdWJzZXRlcXE6XCJcXHUyQUM1XCIsc3ViZG90OlwiXFx1MkFCRFwiLHN1YmVkb3Q6XCJcXHUyQUMzXCIsc3VibXVsdDpcIlxcdTJBQzFcIixzdWJuRTpcIlxcdTJBQ0JcIixzdWJzZXRuZXFxOlwiXFx1MkFDQlwiLHN1Ym5lOlwiXFx1MjI4QVwiLHN1YnNldG5lcTpcIlxcdTIyOEFcIixzdWJwbHVzOlwiXFx1MkFCRlwiLHN1YnJhcnI6XCJcXHUyOTc5XCIsc3Vic2ltOlwiXFx1MkFDN1wiLHN1YnN1YjpcIlxcdTJBRDVcIixzdWJzdXA6XCJcXHUyQUQzXCIsc3VuZzpcIlxcdTI2NkFcIixzdXAxOlwiXFx4QjlcIixzdXAyOlwiXFx4QjJcIixzdXAzOlwiXFx4QjNcIixzdXBFOlwiXFx1MkFDNlwiLHN1cHNldGVxcTpcIlxcdTJBQzZcIixzdXBkb3Q6XCJcXHUyQUJFXCIsc3VwZHN1YjpcIlxcdTJBRDhcIixzdXBlZG90OlwiXFx1MkFDNFwiLHN1cGhzb2w6XCJcXHUyN0M5XCIsc3VwaHN1YjpcIlxcdTJBRDdcIixzdXBsYXJyOlwiXFx1Mjk3QlwiLHN1cG11bHQ6XCJcXHUyQUMyXCIsc3VwbkU6XCJcXHUyQUNDXCIsc3Vwc2V0bmVxcTpcIlxcdTJBQ0NcIixzdXBuZTpcIlxcdTIyOEJcIixzdXBzZXRuZXE6XCJcXHUyMjhCXCIsc3VwcGx1czpcIlxcdTJBQzBcIixzdXBzaW06XCJcXHUyQUM4XCIsc3Vwc3ViOlwiXFx1MkFENFwiLHN1cHN1cDpcIlxcdTJBRDZcIixzd0FycjpcIlxcdTIxRDlcIixzd253YXI6XCJcXHUyOTJBXCIsc3psaWc6XCJcXHhERlwiLHRhcmdldDpcIlxcdTIzMTZcIix0YXU6XCJcXHUwM0M0XCIsdGNhcm9uOlwiXFx1MDE2NVwiLHRjZWRpbDpcIlxcdTAxNjNcIix0Y3k6XCJcXHUwNDQyXCIsdGVscmVjOlwiXFx1MjMxNVwiLHRmcjpcIlxcdXsxRDUzMX1cIix0aGV0YTpcIlxcdTAzQjhcIix0aGV0YXN5bTpcIlxcdTAzRDFcIix0aGV0YXY6XCJcXHUwM0QxXCIsdmFydGhldGE6XCJcXHUwM0QxXCIsdGhvcm46XCJcXHhGRVwiLHRpbWVzOlwiXFx4RDdcIix0aW1lc2JhcjpcIlxcdTJBMzFcIix0aW1lc2Q6XCJcXHUyQTMwXCIsdG9wYm90OlwiXFx1MjMzNlwiLHRvcGNpcjpcIlxcdTJBRjFcIix0b3BmOlwiXFx1ezFENTY1fVwiLHRvcGZvcms6XCJcXHUyQURBXCIsdHByaW1lOlwiXFx1MjAzNFwiLHRyaWFuZ2xlOlwiXFx1MjVCNVwiLHV0cmk6XCJcXHUyNUI1XCIsdHJpYW5nbGVxOlwiXFx1MjI1Q1wiLHRyaWU6XCJcXHUyMjVDXCIsdHJpZG90OlwiXFx1MjVFQ1wiLHRyaW1pbnVzOlwiXFx1MkEzQVwiLHRyaXBsdXM6XCJcXHUyQTM5XCIsdHJpc2I6XCJcXHUyOUNEXCIsdHJpdGltZTpcIlxcdTJBM0JcIix0cnBleml1bTpcIlxcdTIzRTJcIix0c2NyOlwiXFx1ezFENEM5fVwiLHRzY3k6XCJcXHUwNDQ2XCIsdHNoY3k6XCJcXHUwNDVCXCIsdHN0cm9rOlwiXFx1MDE2N1wiLHVIYXI6XCJcXHUyOTYzXCIsdWFjdXRlOlwiXFx4RkFcIix1YnJjeTpcIlxcdTA0NUVcIix1YnJldmU6XCJcXHUwMTZEXCIsdWNpcmM6XCJcXHhGQlwiLHVjeTpcIlxcdTA0NDNcIix1ZGJsYWM6XCJcXHUwMTcxXCIsdWZpc2h0OlwiXFx1Mjk3RVwiLHVmcjpcIlxcdXsxRDUzMn1cIix1Z3JhdmU6XCJcXHhGOVwiLHVoYmxrOlwiXFx1MjU4MFwiLHVsY29ybjpcIlxcdTIzMUNcIix1bGNvcm5lcjpcIlxcdTIzMUNcIix1bGNyb3A6XCJcXHUyMzBGXCIsdWx0cmk6XCJcXHUyNUY4XCIsdW1hY3I6XCJcXHUwMTZCXCIsdW9nb246XCJcXHUwMTczXCIsdW9wZjpcIlxcdXsxRDU2Nn1cIix1cHNpOlwiXFx1MDNDNVwiLHVwc2lsb246XCJcXHUwM0M1XCIsdXB1cGFycm93czpcIlxcdTIxQzhcIix1dWFycjpcIlxcdTIxQzhcIix1cmNvcm46XCJcXHUyMzFEXCIsdXJjb3JuZXI6XCJcXHUyMzFEXCIsdXJjcm9wOlwiXFx1MjMwRVwiLHVyaW5nOlwiXFx1MDE2RlwiLHVydHJpOlwiXFx1MjVGOVwiLHVzY3I6XCJcXHV7MUQ0Q0F9XCIsdXRkb3Q6XCJcXHUyMkYwXCIsdXRpbGRlOlwiXFx1MDE2OVwiLHV1bWw6XCJcXHhGQ1wiLHV3YW5nbGU6XCJcXHUyOUE3XCIsdkJhcjpcIlxcdTJBRThcIix2QmFydjpcIlxcdTJBRTlcIix2YW5ncnQ6XCJcXHUyOTlDXCIsdmFyc3Vic2V0bmVxOlwiXFx1MjI4QVxcdUZFMDBcIix2c3VibmU6XCJcXHUyMjhBXFx1RkUwMFwiLHZhcnN1YnNldG5lcXE6XCJcXHUyQUNCXFx1RkUwMFwiLHZzdWJuRTpcIlxcdTJBQ0JcXHVGRTAwXCIsdmFyc3Vwc2V0bmVxOlwiXFx1MjI4QlxcdUZFMDBcIix2c3VwbmU6XCJcXHUyMjhCXFx1RkUwMFwiLHZhcnN1cHNldG5lcXE6XCJcXHUyQUNDXFx1RkUwMFwiLHZzdXBuRTpcIlxcdTJBQ0NcXHVGRTAwXCIsdmN5OlwiXFx1MDQzMlwiLHZlZWJhcjpcIlxcdTIyQkJcIix2ZWVlcTpcIlxcdTIyNUFcIix2ZWxsaXA6XCJcXHUyMkVFXCIsdmZyOlwiXFx1ezFENTMzfVwiLHZvcGY6XCJcXHV7MUQ1Njd9XCIsdnNjcjpcIlxcdXsxRDRDQn1cIix2emlnemFnOlwiXFx1Mjk5QVwiLHdjaXJjOlwiXFx1MDE3NVwiLHdlZGJhcjpcIlxcdTJBNUZcIix3ZWRnZXE6XCJcXHUyMjU5XCIsd2VpZXJwOlwiXFx1MjExOFwiLHdwOlwiXFx1MjExOFwiLHdmcjpcIlxcdXsxRDUzNH1cIix3b3BmOlwiXFx1ezFENTY4fVwiLHdzY3I6XCJcXHV7MUQ0Q0N9XCIseGZyOlwiXFx1ezFENTM1fVwiLHhpOlwiXFx1MDNCRVwiLHhuaXM6XCJcXHUyMkZCXCIseG9wZjpcIlxcdXsxRDU2OX1cIix4c2NyOlwiXFx1ezFENENEfVwiLHlhY3V0ZTpcIlxceEZEXCIseWFjeTpcIlxcdTA0NEZcIix5Y2lyYzpcIlxcdTAxNzdcIix5Y3k6XCJcXHUwNDRCXCIseWVuOlwiXFx4QTVcIix5ZnI6XCJcXHV7MUQ1MzZ9XCIseWljeTpcIlxcdTA0NTdcIix5b3BmOlwiXFx1ezFENTZBfVwiLHlzY3I6XCJcXHV7MUQ0Q0V9XCIseXVjeTpcIlxcdTA0NEVcIix5dW1sOlwiXFx4RkZcIix6YWN1dGU6XCJcXHUwMTdBXCIsemNhcm9uOlwiXFx1MDE3RVwiLHpjeTpcIlxcdTA0MzdcIix6ZG90OlwiXFx1MDE3Q1wiLHpldGE6XCJcXHUwM0I2XCIsemZyOlwiXFx1ezFENTM3fVwiLHpoY3k6XCJcXHUwNDM2XCIsemlncmFycjpcIlxcdTIxRERcIix6b3BmOlwiXFx1ezFENTZCfVwiLHpzY3I6XCJcXHV7MUQ0Q0Z9XCIsendqOlwiXFx1MjAwRFwiLHp3bmo6XCJcXHUyMDBDXCJ9LFVhPVwiXFx1RTUwMFwiO01lLm5nc3A9VWE7dmFyIFdhPVsvQC8sL15cXHMqJC8sL1s8Pl0vLC9eW3t9XSQvLC8mKCN8W2Etel0pL2ksL15cXC9cXC8vXTtmdW5jdGlvbiBCcyh0LGUpe2lmKGUhPW51bGwmJiEoQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg9PTIpKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJyR7dH0nIHRvIGJlIGFuIGFycmF5LCBbc3RhcnQsIGVuZF0uYCk7aWYoZSE9bnVsbCl7bGV0IHI9ZVswXSxuPWVbMV07V2EuZm9yRWFjaChzPT57aWYocy50ZXN0KHIpfHxzLnRlc3QobikpdGhyb3cgbmV3IEVycm9yKGBbJyR7cn0nLCAnJHtufSddIGNvbnRhaW5zIHVudXNhYmxlIGludGVycG9sYXRpb24gc3ltYm9sLmApfSl9fXZhciBMcj1jbGFzcyB0e3N0YXRpYyBmcm9tQXJyYXkoZSl7cmV0dXJuIGU/KEJzKFwiaW50ZXJwb2xhdGlvblwiLGUpLG5ldyB0KGVbMF0sZVsxXSkpOkZyfWNvbnN0cnVjdG9yKGUscil7dGhpcy5zdGFydD1lLHRoaXMuZW5kPXJ9fSxGcj1uZXcgTHIoXCJ7e1wiLFwifX1cIik7dmFyIGZ0PWNsYXNzIGV4dGVuZHMgSWV7Y29uc3RydWN0b3IoZSxyLG4pe3N1cGVyKG4sZSksdGhpcy50b2tlblR5cGU9cn19LE9yPWNsYXNze2NvbnN0cnVjdG9yKGUscixuKXt0aGlzLnRva2Vucz1lLHRoaXMuZXJyb3JzPXIsdGhpcy5ub25Ob3JtYWxpemVkSWN1RXhwcmVzc2lvbnM9bn19O2Z1bmN0aW9uIFVzKHQsZSxyLG49e30pe2xldCBzPW5ldyAkcihuZXcgRWUodCxlKSxyLG4pO3JldHVybiBzLnRva2VuaXplKCksbmV3IE9yKENvKHMudG9rZW5zKSxzLmVycm9ycyxzLm5vbk5vcm1hbGl6ZWRJY3VFeHByZXNzaW9ucyl9dmFyIGxvPS9cXHJcXG4/L2c7ZnVuY3Rpb24gcWUodCl7cmV0dXJuYFVuZXhwZWN0ZWQgY2hhcmFjdGVyIFwiJHt0PT09MD9cIkVPRlwiOlN0cmluZy5mcm9tQ2hhckNvZGUodCl9XCJgfWZ1bmN0aW9uIElzKHQpe3JldHVybmBVbmtub3duIGVudGl0eSBcIiR7dH1cIiAtIHVzZSB0aGUgXCImIzxkZWNpbWFsPjtcIiBvciAgXCImI3g8aGV4PjtcIiBzeW50YXhgfWZ1bmN0aW9uIGNvKHQsZSl7cmV0dXJuYFVuYWJsZSB0byBwYXJzZSBlbnRpdHkgXCIke2V9XCIgLSAke3R9IGNoYXJhY3RlciByZWZlcmVuY2UgZW50aXRpZXMgbXVzdCBlbmQgd2l0aCBcIjtcImB9dmFyIFp0OyhmdW5jdGlvbih0KXt0LkhFWD1cImhleGFkZWNpbWFsXCIsdC5ERUM9XCJkZWNpbWFsXCJ9KShadHx8KFp0PXt9KSk7dmFyIGR0PWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZXJyb3I9ZX19LCRyPWNsYXNze2NvbnN0cnVjdG9yKGUscixuKXt0aGlzLl9nZXRUYWdDb250ZW50VHlwZT1yLHRoaXMuX2N1cnJlbnRUb2tlblN0YXJ0PW51bGwsdGhpcy5fY3VycmVudFRva2VuVHlwZT1udWxsLHRoaXMuX2V4cGFuc2lvbkNhc2VTdGFjaz1bXSx0aGlzLl9pbkludGVycG9sYXRpb249ITEsdGhpcy5fZnVsbE5hbWVTdGFjaz1bXSx0aGlzLnRva2Vucz1bXSx0aGlzLmVycm9ycz1bXSx0aGlzLm5vbk5vcm1hbGl6ZWRJY3VFeHByZXNzaW9ucz1bXSx0aGlzLl90b2tlbml6ZUljdT1uLnRva2VuaXplRXhwYW5zaW9uRm9ybXN8fCExLHRoaXMuX2ludGVycG9sYXRpb25Db25maWc9bi5pbnRlcnBvbGF0aW9uQ29uZmlnfHxGcix0aGlzLl9sZWFkaW5nVHJpdmlhQ29kZVBvaW50cz1uLmxlYWRpbmdUcml2aWFDaGFycyYmbi5sZWFkaW5nVHJpdmlhQ2hhcnMubWFwKGk9PmkuY29kZVBvaW50QXQoMCl8fDApLHRoaXMuX2NhblNlbGZDbG9zZT1uLmNhblNlbGZDbG9zZXx8ITEsdGhpcy5fYWxsb3dIdG1Db21wb25lbnRDbG9zaW5nVGFncz1uLmFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3N8fCExO2xldCBzPW4ucmFuZ2V8fHtlbmRQb3M6ZS5jb250ZW50Lmxlbmd0aCxzdGFydFBvczowLHN0YXJ0TGluZTowLHN0YXJ0Q29sOjB9O3RoaXMuX2N1cnNvcj1uLmVzY2FwZWRTdHJpbmc/bmV3IE1yKGUscyk6bmV3IGVyKGUscyksdGhpcy5fcHJlc2VydmVMaW5lRW5kaW5ncz1uLnByZXNlcnZlTGluZUVuZGluZ3N8fCExLHRoaXMuX2kxOG5Ob3JtYWxpemVMaW5lRW5kaW5nc0luSUNVcz1uLmkxOG5Ob3JtYWxpemVMaW5lRW5kaW5nc0luSUNVc3x8ITEsdGhpcy5fdG9rZW5pemVCbG9ja3M9bi50b2tlbml6ZUJsb2Nrcz8/ITAsdGhpcy5fdG9rZW5pemVMZXQ9bi50b2tlbml6ZUxldD8/ITA7dHJ5e3RoaXMuX2N1cnNvci5pbml0KCl9Y2F0Y2goaSl7dGhpcy5oYW5kbGVFcnJvcihpKX19X3Byb2Nlc3NDYXJyaWFnZVJldHVybnMoZSl7cmV0dXJuIHRoaXMuX3ByZXNlcnZlTGluZUVuZGluZ3M/ZTplLnJlcGxhY2UobG8sYFxuYCl9dG9rZW5pemUoKXtmb3IoO3RoaXMuX2N1cnNvci5wZWVrKCkhPT0wOyl7bGV0IGU9dGhpcy5fY3Vyc29yLmNsb25lKCk7dHJ5e2lmKHRoaXMuX2F0dGVtcHRDaGFyQ29kZSg2MCkpaWYodGhpcy5fYXR0ZW1wdENoYXJDb2RlKDMzKSl0aGlzLl9hdHRlbXB0U3RyKFwiW0NEQVRBW1wiKT90aGlzLl9jb25zdW1lQ2RhdGEoZSk6dGhpcy5fYXR0ZW1wdFN0cihcIi0tXCIpP3RoaXMuX2NvbnN1bWVDb21tZW50KGUpOnRoaXMuX2F0dGVtcHRTdHJDYXNlSW5zZW5zaXRpdmUoXCJkb2N0eXBlXCIpP3RoaXMuX2NvbnN1bWVEb2NUeXBlKGUpOnRoaXMuX2NvbnN1bWVCb2d1c0NvbW1lbnQoZSk7ZWxzZSBpZih0aGlzLl9hdHRlbXB0Q2hhckNvZGUoNDcpKXRoaXMuX2NvbnN1bWVUYWdDbG9zZShlKTtlbHNle2xldCByPXRoaXMuX2N1cnNvci5jbG9uZSgpO3RoaXMuX2F0dGVtcHRDaGFyQ29kZSg2Myk/KHRoaXMuX2N1cnNvcj1yLHRoaXMuX2NvbnN1bWVCb2d1c0NvbW1lbnQoZSkpOnRoaXMuX2NvbnN1bWVUYWdPcGVuKGUpfWVsc2UgdGhpcy5fdG9rZW5pemVMZXQmJnRoaXMuX2N1cnNvci5wZWVrKCk9PT02NCYmIXRoaXMuX2luSW50ZXJwb2xhdGlvbiYmdGhpcy5fYXR0ZW1wdFN0cihcIkBsZXRcIik/dGhpcy5fY29uc3VtZUxldERlY2xhcmF0aW9uKGUpOnRoaXMuX3Rva2VuaXplQmxvY2tzJiZ0aGlzLl9hdHRlbXB0Q2hhckNvZGUoNjQpP3RoaXMuX2NvbnN1bWVCbG9ja1N0YXJ0KGUpOnRoaXMuX3Rva2VuaXplQmxvY2tzJiYhdGhpcy5faW5JbnRlcnBvbGF0aW9uJiYhdGhpcy5faXNJbkV4cGFuc2lvbkNhc2UoKSYmIXRoaXMuX2lzSW5FeHBhbnNpb25Gb3JtKCkmJnRoaXMuX2F0dGVtcHRDaGFyQ29kZSgxMjUpP3RoaXMuX2NvbnN1bWVCbG9ja0VuZChlKTp0aGlzLl90b2tlbml6ZUljdSYmdGhpcy5fdG9rZW5pemVFeHBhbnNpb25Gb3JtKCl8fHRoaXMuX2NvbnN1bWVXaXRoSW50ZXJwb2xhdGlvbig1LDgsKCk9PnRoaXMuX2lzVGV4dEVuZCgpLCgpPT50aGlzLl9pc1RhZ1N0YXJ0KCkpfWNhdGNoKHIpe3RoaXMuaGFuZGxlRXJyb3Iocil9fXRoaXMuX2JlZ2luVG9rZW4oMzQpLHRoaXMuX2VuZFRva2VuKFtdKX1fZ2V0QmxvY2tOYW1lKCl7bGV0IGU9ITEscj10aGlzLl9jdXJzb3IuY2xvbmUoKTtyZXR1cm4gdGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihuPT5hdChuKT8hZTokcyhuKT8oZT0hMCwhMSk6ITApLHRoaXMuX2N1cnNvci5nZXRDaGFycyhyKS50cmltKCl9X2NvbnN1bWVCbG9ja1N0YXJ0KGUpe3RoaXMuX2JlZ2luVG9rZW4oMjUsZSk7bGV0IHI9dGhpcy5fZW5kVG9rZW4oW3RoaXMuX2dldEJsb2NrTmFtZSgpXSk7aWYodGhpcy5fY3Vyc29yLnBlZWsoKT09PTQwKWlmKHRoaXMuX2N1cnNvci5hZHZhbmNlKCksdGhpcy5fY29uc3VtZUJsb2NrUGFyYW1ldGVycygpLHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oYiksdGhpcy5fYXR0ZW1wdENoYXJDb2RlKDQxKSl0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKGIpO2Vsc2V7ci50eXBlPTI5O3JldHVybn10aGlzLl9hdHRlbXB0Q2hhckNvZGUoMTIzKT8odGhpcy5fYmVnaW5Ub2tlbigyNiksdGhpcy5fZW5kVG9rZW4oW10pKTpyLnR5cGU9Mjl9X2NvbnN1bWVCbG9ja0VuZChlKXt0aGlzLl9iZWdpblRva2VuKDI3LGUpLHRoaXMuX2VuZFRva2VuKFtdKX1fY29uc3VtZUJsb2NrUGFyYW1ldGVycygpe2Zvcih0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKE1zKTt0aGlzLl9jdXJzb3IucGVlaygpIT09NDEmJnRoaXMuX2N1cnNvci5wZWVrKCkhPT0wOyl7dGhpcy5fYmVnaW5Ub2tlbigyOCk7bGV0IGU9dGhpcy5fY3Vyc29yLmNsb25lKCkscj1udWxsLG49MDtmb3IoO3RoaXMuX2N1cnNvci5wZWVrKCkhPT01OSYmdGhpcy5fY3Vyc29yLnBlZWsoKSE9PTB8fHIhPT1udWxsOyl7bGV0IHM9dGhpcy5fY3Vyc29yLnBlZWsoKTtpZihzPT09OTIpdGhpcy5fY3Vyc29yLmFkdmFuY2UoKTtlbHNlIGlmKHM9PT1yKXI9bnVsbDtlbHNlIGlmKHI9PT1udWxsJiZJdChzKSlyPXM7ZWxzZSBpZihzPT09NDAmJnI9PT1udWxsKW4rKztlbHNlIGlmKHM9PT00MSYmcj09PW51bGwpe2lmKG49PT0wKWJyZWFrO24+MCYmbi0tfXRoaXMuX2N1cnNvci5hZHZhbmNlKCl9dGhpcy5fZW5kVG9rZW4oW3RoaXMuX2N1cnNvci5nZXRDaGFycyhlKV0pLHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oTXMpfX1fY29uc3VtZUxldERlY2xhcmF0aW9uKGUpe2lmKHRoaXMuX2JlZ2luVG9rZW4oMzAsZSksYXQodGhpcy5fY3Vyc29yLnBlZWsoKSkpdGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihiKTtlbHNle2xldCBzPXRoaXMuX2VuZFRva2VuKFt0aGlzLl9jdXJzb3IuZ2V0Q2hhcnMoZSldKTtzLnR5cGU9MzM7cmV0dXJufWxldCByPXRoaXMuX2VuZFRva2VuKFt0aGlzLl9nZXRMZXREZWNsYXJhdGlvbk5hbWUoKV0pO2lmKHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oYiksIXRoaXMuX2F0dGVtcHRDaGFyQ29kZSg2MSkpe3IudHlwZT0zMztyZXR1cm59dGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihzPT5iKHMpJiYhUHQocykpLHRoaXMuX2NvbnN1bWVMZXREZWNsYXJhdGlvblZhbHVlKCksdGhpcy5fY3Vyc29yLnBlZWsoKT09PTU5Pyh0aGlzLl9iZWdpblRva2VuKDMyKSx0aGlzLl9lbmRUb2tlbihbXSksdGhpcy5fY3Vyc29yLmFkdmFuY2UoKSk6KHIudHlwZT0zMyxyLnNvdXJjZVNwYW49dGhpcy5fY3Vyc29yLmdldFNwYW4oZSkpfV9nZXRMZXREZWNsYXJhdGlvbk5hbWUoKXtsZXQgZT10aGlzLl9jdXJzb3IuY2xvbmUoKSxyPSExO3JldHVybiB0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKG49Pm90KG4pfHxuPT09MzZ8fG49PT05NXx8ciYmTnQobik/KHI9ITAsITEpOiEwKSx0aGlzLl9jdXJzb3IuZ2V0Q2hhcnMoZSkudHJpbSgpfV9jb25zdW1lTGV0RGVjbGFyYXRpb25WYWx1ZSgpe2xldCBlPXRoaXMuX2N1cnNvci5jbG9uZSgpO2Zvcih0aGlzLl9iZWdpblRva2VuKDMxLGUpO3RoaXMuX2N1cnNvci5wZWVrKCkhPT0wOyl7bGV0IHI9dGhpcy5fY3Vyc29yLnBlZWsoKTtpZihyPT09NTkpYnJlYWs7SXQocikmJih0aGlzLl9jdXJzb3IuYWR2YW5jZSgpLHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4obj0+bj09PTkyPyh0aGlzLl9jdXJzb3IuYWR2YW5jZSgpLCExKTpuPT09cikpLHRoaXMuX2N1cnNvci5hZHZhbmNlKCl9dGhpcy5fZW5kVG9rZW4oW3RoaXMuX2N1cnNvci5nZXRDaGFycyhlKV0pfV90b2tlbml6ZUV4cGFuc2lvbkZvcm0oKXtpZih0aGlzLmlzRXhwYW5zaW9uRm9ybVN0YXJ0KCkpcmV0dXJuIHRoaXMuX2NvbnN1bWVFeHBhbnNpb25Gb3JtU3RhcnQoKSwhMDtpZihmbyh0aGlzLl9jdXJzb3IucGVlaygpKSYmdGhpcy5faXNJbkV4cGFuc2lvbkZvcm0oKSlyZXR1cm4gdGhpcy5fY29uc3VtZUV4cGFuc2lvbkNhc2VTdGFydCgpLCEwO2lmKHRoaXMuX2N1cnNvci5wZWVrKCk9PT0xMjUpe2lmKHRoaXMuX2lzSW5FeHBhbnNpb25DYXNlKCkpcmV0dXJuIHRoaXMuX2NvbnN1bWVFeHBhbnNpb25DYXNlRW5kKCksITA7aWYodGhpcy5faXNJbkV4cGFuc2lvbkZvcm0oKSlyZXR1cm4gdGhpcy5fY29uc3VtZUV4cGFuc2lvbkZvcm1FbmQoKSwhMH1yZXR1cm4hMX1fYmVnaW5Ub2tlbihlLHI9dGhpcy5fY3Vyc29yLmNsb25lKCkpe3RoaXMuX2N1cnJlbnRUb2tlblN0YXJ0PXIsdGhpcy5fY3VycmVudFRva2VuVHlwZT1lfV9lbmRUb2tlbihlLHIpe2lmKHRoaXMuX2N1cnJlbnRUb2tlblN0YXJ0PT09bnVsbCl0aHJvdyBuZXcgZnQoXCJQcm9ncmFtbWluZyBlcnJvciAtIGF0dGVtcHRlZCB0byBlbmQgYSB0b2tlbiB3aGVuIHRoZXJlIHdhcyBubyBzdGFydCB0byB0aGUgdG9rZW5cIix0aGlzLl9jdXJyZW50VG9rZW5UeXBlLHRoaXMuX2N1cnNvci5nZXRTcGFuKHIpKTtpZih0aGlzLl9jdXJyZW50VG9rZW5UeXBlPT09bnVsbCl0aHJvdyBuZXcgZnQoXCJQcm9ncmFtbWluZyBlcnJvciAtIGF0dGVtcHRlZCB0byBlbmQgYSB0b2tlbiB3aGljaCBoYXMgbm8gdG9rZW4gdHlwZVwiLG51bGwsdGhpcy5fY3Vyc29yLmdldFNwYW4odGhpcy5fY3VycmVudFRva2VuU3RhcnQpKTtsZXQgbj17dHlwZTp0aGlzLl9jdXJyZW50VG9rZW5UeXBlLHBhcnRzOmUsc291cmNlU3Bhbjoocj8/dGhpcy5fY3Vyc29yKS5nZXRTcGFuKHRoaXMuX2N1cnJlbnRUb2tlblN0YXJ0LHRoaXMuX2xlYWRpbmdUcml2aWFDb2RlUG9pbnRzKX07cmV0dXJuIHRoaXMudG9rZW5zLnB1c2gobiksdGhpcy5fY3VycmVudFRva2VuU3RhcnQ9bnVsbCx0aGlzLl9jdXJyZW50VG9rZW5UeXBlPW51bGwsbn1fY3JlYXRlRXJyb3IoZSxyKXt0aGlzLl9pc0luRXhwYW5zaW9uRm9ybSgpJiYoZSs9YCAoRG8geW91IGhhdmUgYW4gdW5lc2NhcGVkIFwie1wiIGluIHlvdXIgdGVtcGxhdGU/IFVzZSBcInt7ICd7JyB9fVwiKSB0byBlc2NhcGUgaXQuKWApO2xldCBuPW5ldyBmdChlLHRoaXMuX2N1cnJlbnRUb2tlblR5cGUscik7cmV0dXJuIHRoaXMuX2N1cnJlbnRUb2tlblN0YXJ0PW51bGwsdGhpcy5fY3VycmVudFRva2VuVHlwZT1udWxsLG5ldyBkdChuKX1oYW5kbGVFcnJvcihlKXtpZihlIGluc3RhbmNlb2YgZ3QmJihlPXRoaXMuX2NyZWF0ZUVycm9yKGUubXNnLHRoaXMuX2N1cnNvci5nZXRTcGFuKGUuY3Vyc29yKSkpLGUgaW5zdGFuY2VvZiBkdCl0aGlzLmVycm9ycy5wdXNoKGUuZXJyb3IpO2Vsc2UgdGhyb3cgZX1fYXR0ZW1wdENoYXJDb2RlKGUpe3JldHVybiB0aGlzLl9jdXJzb3IucGVlaygpPT09ZT8odGhpcy5fY3Vyc29yLmFkdmFuY2UoKSwhMCk6ITF9X2F0dGVtcHRDaGFyQ29kZUNhc2VJbnNlbnNpdGl2ZShlKXtyZXR1cm4gZ28odGhpcy5fY3Vyc29yLnBlZWsoKSxlKT8odGhpcy5fY3Vyc29yLmFkdmFuY2UoKSwhMCk6ITF9X3JlcXVpcmVDaGFyQ29kZShlKXtsZXQgcj10aGlzLl9jdXJzb3IuY2xvbmUoKTtpZighdGhpcy5fYXR0ZW1wdENoYXJDb2RlKGUpKXRocm93IHRoaXMuX2NyZWF0ZUVycm9yKHFlKHRoaXMuX2N1cnNvci5wZWVrKCkpLHRoaXMuX2N1cnNvci5nZXRTcGFuKHIpKX1fYXR0ZW1wdFN0cihlKXtsZXQgcj1lLmxlbmd0aDtpZih0aGlzLl9jdXJzb3IuY2hhcnNMZWZ0KCk8cilyZXR1cm4hMTtsZXQgbj10aGlzLl9jdXJzb3IuY2xvbmUoKTtmb3IobGV0IHM9MDtzPHI7cysrKWlmKCF0aGlzLl9hdHRlbXB0Q2hhckNvZGUoZS5jaGFyQ29kZUF0KHMpKSlyZXR1cm4gdGhpcy5fY3Vyc29yPW4sITE7cmV0dXJuITB9X2F0dGVtcHRTdHJDYXNlSW5zZW5zaXRpdmUoZSl7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYoIXRoaXMuX2F0dGVtcHRDaGFyQ29kZUNhc2VJbnNlbnNpdGl2ZShlLmNoYXJDb2RlQXQocikpKXJldHVybiExO3JldHVybiEwfV9yZXF1aXJlU3RyKGUpe2xldCByPXRoaXMuX2N1cnNvci5jbG9uZSgpO2lmKCF0aGlzLl9hdHRlbXB0U3RyKGUpKXRocm93IHRoaXMuX2NyZWF0ZUVycm9yKHFlKHRoaXMuX2N1cnNvci5wZWVrKCkpLHRoaXMuX2N1cnNvci5nZXRTcGFuKHIpKX1fcmVxdWlyZVN0ckNhc2VJbnNlbnNpdGl2ZShlKXtsZXQgcj10aGlzLl9jdXJzb3IuY2xvbmUoKTtpZighdGhpcy5fYXR0ZW1wdFN0ckNhc2VJbnNlbnNpdGl2ZShlKSl0aHJvdyB0aGlzLl9jcmVhdGVFcnJvcihxZSh0aGlzLl9jdXJzb3IucGVlaygpKSx0aGlzLl9jdXJzb3IuZ2V0U3BhbihyKSl9X2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oZSl7Zm9yKDshZSh0aGlzLl9jdXJzb3IucGVlaygpKTspdGhpcy5fY3Vyc29yLmFkdmFuY2UoKX1fcmVxdWlyZUNoYXJDb2RlVW50aWxGbihlLHIpe2xldCBuPXRoaXMuX2N1cnNvci5jbG9uZSgpO2lmKHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oZSksdGhpcy5fY3Vyc29yLmRpZmYobik8cil0aHJvdyB0aGlzLl9jcmVhdGVFcnJvcihxZSh0aGlzLl9jdXJzb3IucGVlaygpKSx0aGlzLl9jdXJzb3IuZ2V0U3BhbihuKSl9X2F0dGVtcHRVbnRpbENoYXIoZSl7Zm9yKDt0aGlzLl9jdXJzb3IucGVlaygpIT09ZTspdGhpcy5fY3Vyc29yLmFkdmFuY2UoKX1fcmVhZENoYXIoKXtsZXQgZT1TdHJpbmcuZnJvbUNvZGVQb2ludCh0aGlzLl9jdXJzb3IucGVlaygpKTtyZXR1cm4gdGhpcy5fY3Vyc29yLmFkdmFuY2UoKSxlfV9jb25zdW1lRW50aXR5KGUpe3RoaXMuX2JlZ2luVG9rZW4oOSk7bGV0IHI9dGhpcy5fY3Vyc29yLmNsb25lKCk7aWYodGhpcy5fY3Vyc29yLmFkdmFuY2UoKSx0aGlzLl9hdHRlbXB0Q2hhckNvZGUoMzUpKXtsZXQgbj10aGlzLl9hdHRlbXB0Q2hhckNvZGUoMTIwKXx8dGhpcy5fYXR0ZW1wdENoYXJDb2RlKDg4KSxzPXRoaXMuX2N1cnNvci5jbG9uZSgpO2lmKHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oaG8pLHRoaXMuX2N1cnNvci5wZWVrKCkhPTU5KXt0aGlzLl9jdXJzb3IuYWR2YW5jZSgpO2xldCBhPW4/WnQuSEVYOlp0LkRFQzt0aHJvdyB0aGlzLl9jcmVhdGVFcnJvcihjbyhhLHRoaXMuX2N1cnNvci5nZXRDaGFycyhyKSksdGhpcy5fY3Vyc29yLmdldFNwYW4oKSl9bGV0IGk9dGhpcy5fY3Vyc29yLmdldENoYXJzKHMpO3RoaXMuX2N1cnNvci5hZHZhbmNlKCk7dHJ5e2xldCBhPXBhcnNlSW50KGksbj8xNjoxMCk7dGhpcy5fZW5kVG9rZW4oW1N0cmluZy5mcm9tQ2hhckNvZGUoYSksdGhpcy5fY3Vyc29yLmdldENoYXJzKHIpXSl9Y2F0Y2h7dGhyb3cgdGhpcy5fY3JlYXRlRXJyb3IoSXModGhpcy5fY3Vyc29yLmdldENoYXJzKHIpKSx0aGlzLl9jdXJzb3IuZ2V0U3BhbigpKX19ZWxzZXtsZXQgbj10aGlzLl9jdXJzb3IuY2xvbmUoKTtpZih0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKG1vKSx0aGlzLl9jdXJzb3IucGVlaygpIT01OSl0aGlzLl9iZWdpblRva2VuKGUsciksdGhpcy5fY3Vyc29yPW4sdGhpcy5fZW5kVG9rZW4oW1wiJlwiXSk7ZWxzZXtsZXQgcz10aGlzLl9jdXJzb3IuZ2V0Q2hhcnMobik7dGhpcy5fY3Vyc29yLmFkdmFuY2UoKTtsZXQgaT1NZVtzXTtpZighaSl0aHJvdyB0aGlzLl9jcmVhdGVFcnJvcihJcyhzKSx0aGlzLl9jdXJzb3IuZ2V0U3BhbihyKSk7dGhpcy5fZW5kVG9rZW4oW2ksYCYke3N9O2BdKX19fV9jb25zdW1lUmF3VGV4dChlLHIpe3RoaXMuX2JlZ2luVG9rZW4oZT82OjcpO2xldCBuPVtdO2Zvcig7Oyl7bGV0IHM9dGhpcy5fY3Vyc29yLmNsb25lKCksaT1yKCk7aWYodGhpcy5fY3Vyc29yPXMsaSlicmVhaztlJiZ0aGlzLl9jdXJzb3IucGVlaygpPT09Mzg/KHRoaXMuX2VuZFRva2VuKFt0aGlzLl9wcm9jZXNzQ2FycmlhZ2VSZXR1cm5zKG4uam9pbihcIlwiKSldKSxuLmxlbmd0aD0wLHRoaXMuX2NvbnN1bWVFbnRpdHkoNiksdGhpcy5fYmVnaW5Ub2tlbig2KSk6bi5wdXNoKHRoaXMuX3JlYWRDaGFyKCkpfXRoaXMuX2VuZFRva2VuKFt0aGlzLl9wcm9jZXNzQ2FycmlhZ2VSZXR1cm5zKG4uam9pbihcIlwiKSldKX1fY29uc3VtZUNvbW1lbnQoZSl7dGhpcy5fYmVnaW5Ub2tlbigxMCxlKSx0aGlzLl9lbmRUb2tlbihbXSksdGhpcy5fY29uc3VtZVJhd1RleHQoITEsKCk9PnRoaXMuX2F0dGVtcHRTdHIoXCItLT5cIikpLHRoaXMuX2JlZ2luVG9rZW4oMTEpLHRoaXMuX3JlcXVpcmVTdHIoXCItLT5cIiksdGhpcy5fZW5kVG9rZW4oW10pfV9jb25zdW1lQm9ndXNDb21tZW50KGUpe3RoaXMuX2JlZ2luVG9rZW4oMTAsZSksdGhpcy5fZW5kVG9rZW4oW10pLHRoaXMuX2NvbnN1bWVSYXdUZXh0KCExLCgpPT50aGlzLl9jdXJzb3IucGVlaygpPT09NjIpLHRoaXMuX2JlZ2luVG9rZW4oMTEpLHRoaXMuX2N1cnNvci5hZHZhbmNlKCksdGhpcy5fZW5kVG9rZW4oW10pfV9jb25zdW1lQ2RhdGEoZSl7dGhpcy5fYmVnaW5Ub2tlbigxMixlKSx0aGlzLl9lbmRUb2tlbihbXSksdGhpcy5fY29uc3VtZVJhd1RleHQoITEsKCk9PnRoaXMuX2F0dGVtcHRTdHIoXCJdXT5cIikpLHRoaXMuX2JlZ2luVG9rZW4oMTMpLHRoaXMuX3JlcXVpcmVTdHIoXCJdXT5cIiksdGhpcy5fZW5kVG9rZW4oW10pfV9jb25zdW1lRG9jVHlwZShlKXt0aGlzLl9iZWdpblRva2VuKDE4LGUpLHRoaXMuX2VuZFRva2VuKFtdKSx0aGlzLl9jb25zdW1lUmF3VGV4dCghMSwoKT0+dGhpcy5fY3Vyc29yLnBlZWsoKT09PTYyKSx0aGlzLl9iZWdpblRva2VuKDE5KSx0aGlzLl9jdXJzb3IuYWR2YW5jZSgpLHRoaXMuX2VuZFRva2VuKFtdKX1fY29uc3VtZVByZWZpeEFuZE5hbWUoKXtsZXQgZT10aGlzLl9jdXJzb3IuY2xvbmUoKSxyPVwiXCI7Zm9yKDt0aGlzLl9jdXJzb3IucGVlaygpIT09NTgmJiFwbyh0aGlzLl9jdXJzb3IucGVlaygpKTspdGhpcy5fY3Vyc29yLmFkdmFuY2UoKTtsZXQgbjt0aGlzLl9jdXJzb3IucGVlaygpPT09NTg/KHI9dGhpcy5fY3Vyc29yLmdldENoYXJzKGUpLHRoaXMuX2N1cnNvci5hZHZhbmNlKCksbj10aGlzLl9jdXJzb3IuY2xvbmUoKSk6bj1lLHRoaXMuX3JlcXVpcmVDaGFyQ29kZVVudGlsRm4oUnMscj09PVwiXCI/MDoxKTtsZXQgcz10aGlzLl9jdXJzb3IuZ2V0Q2hhcnMobik7cmV0dXJuW3Isc119X2NvbnN1bWVUYWdPcGVuKGUpe2xldCByLG4scyxpPVtdO3RyeXtpZighb3QodGhpcy5fY3Vyc29yLnBlZWsoKSkpdGhyb3cgdGhpcy5fY3JlYXRlRXJyb3IocWUodGhpcy5fY3Vyc29yLnBlZWsoKSksdGhpcy5fY3Vyc29yLmdldFNwYW4oZSkpO2ZvcihzPXRoaXMuX2NvbnN1bWVUYWdPcGVuU3RhcnQoZSksbj1zLnBhcnRzWzBdLHI9cy5wYXJ0c1sxXSx0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKGIpO3RoaXMuX2N1cnNvci5wZWVrKCkhPT00NyYmdGhpcy5fY3Vyc29yLnBlZWsoKSE9PTYyJiZ0aGlzLl9jdXJzb3IucGVlaygpIT09NjAmJnRoaXMuX2N1cnNvci5wZWVrKCkhPT0wOyl7bGV0W28sdV09dGhpcy5fY29uc3VtZUF0dHJpYnV0ZU5hbWUoKTtpZih0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKGIpLHRoaXMuX2F0dGVtcHRDaGFyQ29kZSg2MSkpe3RoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oYik7bGV0IHA9dGhpcy5fY29uc3VtZUF0dHJpYnV0ZVZhbHVlKCk7aS5wdXNoKHtwcmVmaXg6byxuYW1lOnUsdmFsdWU6cH0pfWVsc2UgaS5wdXNoKHtwcmVmaXg6byxuYW1lOnV9KTt0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKGIpfXRoaXMuX2NvbnN1bWVUYWdPcGVuRW5kKCl9Y2F0Y2gobyl7aWYobyBpbnN0YW5jZW9mIGR0KXtzP3MudHlwZT00Oih0aGlzLl9iZWdpblRva2VuKDUsZSksdGhpcy5fZW5kVG9rZW4oW1wiPFwiXSkpO3JldHVybn10aHJvdyBvfWlmKHRoaXMuX2NhblNlbGZDbG9zZSYmdGhpcy50b2tlbnNbdGhpcy50b2tlbnMubGVuZ3RoLTFdLnR5cGU9PT0yKXJldHVybjtsZXQgYT10aGlzLl9nZXRUYWdDb250ZW50VHlwZShyLG4sdGhpcy5fZnVsbE5hbWVTdGFjay5sZW5ndGg+MCxpKTt0aGlzLl9oYW5kbGVGdWxsTmFtZVN0YWNrRm9yVGFnT3BlbihuLHIpLGE9PT1JLlJBV19URVhUP3RoaXMuX2NvbnN1bWVSYXdUZXh0V2l0aFRhZ0Nsb3NlKG4sciwhMSk6YT09PUkuRVNDQVBBQkxFX1JBV19URVhUJiZ0aGlzLl9jb25zdW1lUmF3VGV4dFdpdGhUYWdDbG9zZShuLHIsITApfV9jb25zdW1lUmF3VGV4dFdpdGhUYWdDbG9zZShlLHIsbil7dGhpcy5fY29uc3VtZVJhd1RleHQobiwoKT0+IXRoaXMuX2F0dGVtcHRDaGFyQ29kZSg2MCl8fCF0aGlzLl9hdHRlbXB0Q2hhckNvZGUoNDcpfHwodGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihiKSwhdGhpcy5fYXR0ZW1wdFN0ckNhc2VJbnNlbnNpdGl2ZShlP2Ake2V9OiR7cn1gOnIpKT8hMToodGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihiKSx0aGlzLl9hdHRlbXB0Q2hhckNvZGUoNjIpKSksdGhpcy5fYmVnaW5Ub2tlbigzKSx0aGlzLl9yZXF1aXJlQ2hhckNvZGVVbnRpbEZuKHM9PnM9PT02MiwzKSx0aGlzLl9jdXJzb3IuYWR2YW5jZSgpLHRoaXMuX2VuZFRva2VuKFtlLHJdKSx0aGlzLl9oYW5kbGVGdWxsTmFtZVN0YWNrRm9yVGFnQ2xvc2UoZSxyKX1fY29uc3VtZVRhZ09wZW5TdGFydChlKXt0aGlzLl9iZWdpblRva2VuKDAsZSk7bGV0IHI9dGhpcy5fY29uc3VtZVByZWZpeEFuZE5hbWUoKTtyZXR1cm4gdGhpcy5fZW5kVG9rZW4ocil9X2NvbnN1bWVBdHRyaWJ1dGVOYW1lKCl7bGV0IGU9dGhpcy5fY3Vyc29yLnBlZWsoKTtpZihlPT09Mzl8fGU9PT0zNCl0aHJvdyB0aGlzLl9jcmVhdGVFcnJvcihxZShlKSx0aGlzLl9jdXJzb3IuZ2V0U3BhbigpKTt0aGlzLl9iZWdpblRva2VuKDE0KTtsZXQgcj10aGlzLl9jb25zdW1lUHJlZml4QW5kTmFtZSgpO3JldHVybiB0aGlzLl9lbmRUb2tlbihyKSxyfV9jb25zdW1lQXR0cmlidXRlVmFsdWUoKXtsZXQgZTtpZih0aGlzLl9jdXJzb3IucGVlaygpPT09Mzl8fHRoaXMuX2N1cnNvci5wZWVrKCk9PT0zNCl7bGV0IHI9dGhpcy5fY3Vyc29yLnBlZWsoKTt0aGlzLl9jb25zdW1lUXVvdGUocik7bGV0IG49KCk9PnRoaXMuX2N1cnNvci5wZWVrKCk9PT1yO2U9dGhpcy5fY29uc3VtZVdpdGhJbnRlcnBvbGF0aW9uKDE2LDE3LG4sbiksdGhpcy5fY29uc3VtZVF1b3RlKHIpfWVsc2V7bGV0IHI9KCk9PlJzKHRoaXMuX2N1cnNvci5wZWVrKCkpO2U9dGhpcy5fY29uc3VtZVdpdGhJbnRlcnBvbGF0aW9uKDE2LDE3LHIscil9cmV0dXJuIGV9X2NvbnN1bWVRdW90ZShlKXt0aGlzLl9iZWdpblRva2VuKDE1KSx0aGlzLl9yZXF1aXJlQ2hhckNvZGUoZSksdGhpcy5fZW5kVG9rZW4oW1N0cmluZy5mcm9tQ29kZVBvaW50KGUpXSl9X2NvbnN1bWVUYWdPcGVuRW5kKCl7bGV0IGU9dGhpcy5fYXR0ZW1wdENoYXJDb2RlKDQ3KT8yOjE7dGhpcy5fYmVnaW5Ub2tlbihlKSx0aGlzLl9yZXF1aXJlQ2hhckNvZGUoNjIpLHRoaXMuX2VuZFRva2VuKFtdKX1fY29uc3VtZVRhZ0Nsb3NlKGUpe2lmKHRoaXMuX2JlZ2luVG9rZW4oMyxlKSx0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKGIpLHRoaXMuX2FsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3MmJnRoaXMuX2F0dGVtcHRDaGFyQ29kZSg0NykpdGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihiKSx0aGlzLl9yZXF1aXJlQ2hhckNvZGUoNjIpLHRoaXMuX2VuZFRva2VuKFtdKTtlbHNle2xldFtyLG5dPXRoaXMuX2NvbnN1bWVQcmVmaXhBbmROYW1lKCk7dGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihiKSx0aGlzLl9yZXF1aXJlQ2hhckNvZGUoNjIpLHRoaXMuX2VuZFRva2VuKFtyLG5dKSx0aGlzLl9oYW5kbGVGdWxsTmFtZVN0YWNrRm9yVGFnQ2xvc2UocixuKX19X2NvbnN1bWVFeHBhbnNpb25Gb3JtU3RhcnQoKXt0aGlzLl9iZWdpblRva2VuKDIwKSx0aGlzLl9yZXF1aXJlQ2hhckNvZGUoMTIzKSx0aGlzLl9lbmRUb2tlbihbXSksdGhpcy5fZXhwYW5zaW9uQ2FzZVN0YWNrLnB1c2goMjApLHRoaXMuX2JlZ2luVG9rZW4oNyk7bGV0IGU9dGhpcy5fcmVhZFVudGlsKDQ0KSxyPXRoaXMuX3Byb2Nlc3NDYXJyaWFnZVJldHVybnMoZSk7aWYodGhpcy5faTE4bk5vcm1hbGl6ZUxpbmVFbmRpbmdzSW5JQ1VzKXRoaXMuX2VuZFRva2VuKFtyXSk7ZWxzZXtsZXQgcz10aGlzLl9lbmRUb2tlbihbZV0pO3IhPT1lJiZ0aGlzLm5vbk5vcm1hbGl6ZWRJY3VFeHByZXNzaW9ucy5wdXNoKHMpfXRoaXMuX3JlcXVpcmVDaGFyQ29kZSg0NCksdGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihiKSx0aGlzLl9iZWdpblRva2VuKDcpO2xldCBuPXRoaXMuX3JlYWRVbnRpbCg0NCk7dGhpcy5fZW5kVG9rZW4oW25dKSx0aGlzLl9yZXF1aXJlQ2hhckNvZGUoNDQpLHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oYil9X2NvbnN1bWVFeHBhbnNpb25DYXNlU3RhcnQoKXt0aGlzLl9iZWdpblRva2VuKDIxKTtsZXQgZT10aGlzLl9yZWFkVW50aWwoMTIzKS50cmltKCk7dGhpcy5fZW5kVG9rZW4oW2VdKSx0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKGIpLHRoaXMuX2JlZ2luVG9rZW4oMjIpLHRoaXMuX3JlcXVpcmVDaGFyQ29kZSgxMjMpLHRoaXMuX2VuZFRva2VuKFtdKSx0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKGIpLHRoaXMuX2V4cGFuc2lvbkNhc2VTdGFjay5wdXNoKDIyKX1fY29uc3VtZUV4cGFuc2lvbkNhc2VFbmQoKXt0aGlzLl9iZWdpblRva2VuKDIzKSx0aGlzLl9yZXF1aXJlQ2hhckNvZGUoMTI1KSx0aGlzLl9lbmRUb2tlbihbXSksdGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihiKSx0aGlzLl9leHBhbnNpb25DYXNlU3RhY2sucG9wKCl9X2NvbnN1bWVFeHBhbnNpb25Gb3JtRW5kKCl7dGhpcy5fYmVnaW5Ub2tlbigyNCksdGhpcy5fcmVxdWlyZUNoYXJDb2RlKDEyNSksdGhpcy5fZW5kVG9rZW4oW10pLHRoaXMuX2V4cGFuc2lvbkNhc2VTdGFjay5wb3AoKX1fY29uc3VtZVdpdGhJbnRlcnBvbGF0aW9uKGUscixuLHMpe3RoaXMuX2JlZ2luVG9rZW4oZSk7bGV0IGk9W107Zm9yKDshbigpOyl7bGV0IG89dGhpcy5fY3Vyc29yLmNsb25lKCk7dGhpcy5faW50ZXJwb2xhdGlvbkNvbmZpZyYmdGhpcy5fYXR0ZW1wdFN0cih0aGlzLl9pbnRlcnBvbGF0aW9uQ29uZmlnLnN0YXJ0KT8odGhpcy5fZW5kVG9rZW4oW3RoaXMuX3Byb2Nlc3NDYXJyaWFnZVJldHVybnMoaS5qb2luKFwiXCIpKV0sbyksaS5sZW5ndGg9MCx0aGlzLl9jb25zdW1lSW50ZXJwb2xhdGlvbihyLG8scyksdGhpcy5fYmVnaW5Ub2tlbihlKSk6dGhpcy5fY3Vyc29yLnBlZWsoKT09PTM4Pyh0aGlzLl9lbmRUb2tlbihbdGhpcy5fcHJvY2Vzc0NhcnJpYWdlUmV0dXJucyhpLmpvaW4oXCJcIikpXSksaS5sZW5ndGg9MCx0aGlzLl9jb25zdW1lRW50aXR5KGUpLHRoaXMuX2JlZ2luVG9rZW4oZSkpOmkucHVzaCh0aGlzLl9yZWFkQ2hhcigpKX10aGlzLl9pbkludGVycG9sYXRpb249ITE7bGV0IGE9dGhpcy5fcHJvY2Vzc0NhcnJpYWdlUmV0dXJucyhpLmpvaW4oXCJcIikpO3JldHVybiB0aGlzLl9lbmRUb2tlbihbYV0pLGF9X2NvbnN1bWVJbnRlcnBvbGF0aW9uKGUscixuKXtsZXQgcz1bXTt0aGlzLl9iZWdpblRva2VuKGUscikscy5wdXNoKHRoaXMuX2ludGVycG9sYXRpb25Db25maWcuc3RhcnQpO2xldCBpPXRoaXMuX2N1cnNvci5jbG9uZSgpLGE9bnVsbCxvPSExO2Zvcig7dGhpcy5fY3Vyc29yLnBlZWsoKSE9PTAmJihuPT09bnVsbHx8IW4oKSk7KXtsZXQgdT10aGlzLl9jdXJzb3IuY2xvbmUoKTtpZih0aGlzLl9pc1RhZ1N0YXJ0KCkpe3RoaXMuX2N1cnNvcj11LHMucHVzaCh0aGlzLl9nZXRQcm9jZXNzZWRDaGFycyhpLHUpKSx0aGlzLl9lbmRUb2tlbihzKTtyZXR1cm59aWYoYT09PW51bGwpaWYodGhpcy5fYXR0ZW1wdFN0cih0aGlzLl9pbnRlcnBvbGF0aW9uQ29uZmlnLmVuZCkpe3MucHVzaCh0aGlzLl9nZXRQcm9jZXNzZWRDaGFycyhpLHUpKSxzLnB1c2godGhpcy5faW50ZXJwb2xhdGlvbkNvbmZpZy5lbmQpLHRoaXMuX2VuZFRva2VuKHMpO3JldHVybn1lbHNlIHRoaXMuX2F0dGVtcHRTdHIoXCIvL1wiKSYmKG89ITApO2xldCBwPXRoaXMuX2N1cnNvci5wZWVrKCk7dGhpcy5fY3Vyc29yLmFkdmFuY2UoKSxwPT09OTI/dGhpcy5fY3Vyc29yLmFkdmFuY2UoKTpwPT09YT9hPW51bGw6IW8mJmE9PT1udWxsJiZJdChwKSYmKGE9cCl9cy5wdXNoKHRoaXMuX2dldFByb2Nlc3NlZENoYXJzKGksdGhpcy5fY3Vyc29yKSksdGhpcy5fZW5kVG9rZW4ocyl9X2dldFByb2Nlc3NlZENoYXJzKGUscil7cmV0dXJuIHRoaXMuX3Byb2Nlc3NDYXJyaWFnZVJldHVybnMoci5nZXRDaGFycyhlKSl9X2lzVGV4dEVuZCgpe3JldHVybiEhKHRoaXMuX2lzVGFnU3RhcnQoKXx8dGhpcy5fY3Vyc29yLnBlZWsoKT09PTB8fHRoaXMuX3Rva2VuaXplSWN1JiYhdGhpcy5faW5JbnRlcnBvbGF0aW9uJiYodGhpcy5pc0V4cGFuc2lvbkZvcm1TdGFydCgpfHx0aGlzLl9jdXJzb3IucGVlaygpPT09MTI1JiZ0aGlzLl9pc0luRXhwYW5zaW9uQ2FzZSgpKXx8dGhpcy5fdG9rZW5pemVCbG9ja3MmJiF0aGlzLl9pbkludGVycG9sYXRpb24mJiF0aGlzLl9pc0luRXhwYW5zaW9uKCkmJih0aGlzLl9pc0Jsb2NrU3RhcnQoKXx8dGhpcy5fY3Vyc29yLnBlZWsoKT09PTY0fHx0aGlzLl9jdXJzb3IucGVlaygpPT09MTI1KSl9X2lzVGFnU3RhcnQoKXtpZih0aGlzLl9jdXJzb3IucGVlaygpPT09NjApe2xldCBlPXRoaXMuX2N1cnNvci5jbG9uZSgpO2UuYWR2YW5jZSgpO2xldCByPWUucGVlaygpO2lmKDk3PD1yJiZyPD0xMjJ8fDY1PD1yJiZyPD05MHx8cj09PTQ3fHxyPT09MzMpcmV0dXJuITB9cmV0dXJuITF9X2lzQmxvY2tTdGFydCgpe2lmKHRoaXMuX3Rva2VuaXplQmxvY2tzJiZ0aGlzLl9jdXJzb3IucGVlaygpPT09NjQpe2xldCBlPXRoaXMuX2N1cnNvci5jbG9uZSgpO2lmKGUuYWR2YW5jZSgpLCRzKGUucGVlaygpKSlyZXR1cm4hMH1yZXR1cm4hMX1fcmVhZFVudGlsKGUpe2xldCByPXRoaXMuX2N1cnNvci5jbG9uZSgpO3JldHVybiB0aGlzLl9hdHRlbXB0VW50aWxDaGFyKGUpLHRoaXMuX2N1cnNvci5nZXRDaGFycyhyKX1faXNJbkV4cGFuc2lvbigpe3JldHVybiB0aGlzLl9pc0luRXhwYW5zaW9uQ2FzZSgpfHx0aGlzLl9pc0luRXhwYW5zaW9uRm9ybSgpfV9pc0luRXhwYW5zaW9uQ2FzZSgpe3JldHVybiB0aGlzLl9leHBhbnNpb25DYXNlU3RhY2subGVuZ3RoPjAmJnRoaXMuX2V4cGFuc2lvbkNhc2VTdGFja1t0aGlzLl9leHBhbnNpb25DYXNlU3RhY2subGVuZ3RoLTFdPT09MjJ9X2lzSW5FeHBhbnNpb25Gb3JtKCl7cmV0dXJuIHRoaXMuX2V4cGFuc2lvbkNhc2VTdGFjay5sZW5ndGg+MCYmdGhpcy5fZXhwYW5zaW9uQ2FzZVN0YWNrW3RoaXMuX2V4cGFuc2lvbkNhc2VTdGFjay5sZW5ndGgtMV09PT0yMH1pc0V4cGFuc2lvbkZvcm1TdGFydCgpe2lmKHRoaXMuX2N1cnNvci5wZWVrKCkhPT0xMjMpcmV0dXJuITE7aWYodGhpcy5faW50ZXJwb2xhdGlvbkNvbmZpZyl7bGV0IGU9dGhpcy5fY3Vyc29yLmNsb25lKCkscj10aGlzLl9hdHRlbXB0U3RyKHRoaXMuX2ludGVycG9sYXRpb25Db25maWcuc3RhcnQpO3JldHVybiB0aGlzLl9jdXJzb3I9ZSwhcn1yZXR1cm4hMH1faGFuZGxlRnVsbE5hbWVTdGFja0ZvclRhZ09wZW4oZSxyKXtsZXQgbj1PZShlLHIpOyh0aGlzLl9mdWxsTmFtZVN0YWNrLmxlbmd0aD09PTB8fHRoaXMuX2Z1bGxOYW1lU3RhY2tbdGhpcy5fZnVsbE5hbWVTdGFjay5sZW5ndGgtMV09PT1uKSYmdGhpcy5fZnVsbE5hbWVTdGFjay5wdXNoKG4pfV9oYW5kbGVGdWxsTmFtZVN0YWNrRm9yVGFnQ2xvc2UoZSxyKXtsZXQgbj1PZShlLHIpO3RoaXMuX2Z1bGxOYW1lU3RhY2subGVuZ3RoIT09MCYmdGhpcy5fZnVsbE5hbWVTdGFja1t0aGlzLl9mdWxsTmFtZVN0YWNrLmxlbmd0aC0xXT09PW4mJnRoaXMuX2Z1bGxOYW1lU3RhY2sucG9wKCl9fTtmdW5jdGlvbiBiKHQpe3JldHVybiFhdCh0KXx8dD09PTB9ZnVuY3Rpb24gUnModCl7cmV0dXJuIGF0KHQpfHx0PT09NjJ8fHQ9PT02MHx8dD09PTQ3fHx0PT09Mzl8fHQ9PT0zNHx8dD09PTYxfHx0PT09MH1mdW5jdGlvbiBwbyh0KXtyZXR1cm4odDw5N3x8MTIyPHQpJiYodDw2NXx8OTA8dCkmJih0PDQ4fHx0PjU3KX1mdW5jdGlvbiBobyh0KXtyZXR1cm4gdD09PTU5fHx0PT09MHx8IWdzKHQpfWZ1bmN0aW9uIG1vKHQpe3JldHVybiB0PT09NTl8fHQ9PT0wfHwhb3QodCl9ZnVuY3Rpb24gZm8odCl7cmV0dXJuIHQhPT0xMjV9ZnVuY3Rpb24gZ28odCxlKXtyZXR1cm4gT3ModCk9PT1PcyhlKX1mdW5jdGlvbiBPcyh0KXtyZXR1cm4gdD49OTcmJnQ8PTEyMj90LTk3KzY1OnR9ZnVuY3Rpb24gJHModCl7cmV0dXJuIG90KHQpfHxOdCh0KXx8dD09PTk1fWZ1bmN0aW9uIE1zKHQpe3JldHVybiB0IT09NTkmJmIodCl9ZnVuY3Rpb24gQ28odCl7bGV0IGU9W10scjtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IHM9dFtuXTtyJiZyLnR5cGU9PT01JiZzLnR5cGU9PT01fHxyJiZyLnR5cGU9PT0xNiYmcy50eXBlPT09MTY/KHIucGFydHNbMF0rPXMucGFydHNbMF0sci5zb3VyY2VTcGFuLmVuZD1zLnNvdXJjZVNwYW4uZW5kKToocj1zLGUucHVzaChyKSl9cmV0dXJuIGV9dmFyIGVyPWNsYXNzIHR7Y29uc3RydWN0b3IoZSxyKXtpZihlIGluc3RhbmNlb2YgdCl7dGhpcy5maWxlPWUuZmlsZSx0aGlzLmlucHV0PWUuaW5wdXQsdGhpcy5lbmQ9ZS5lbmQ7bGV0IG49ZS5zdGF0ZTt0aGlzLnN0YXRlPXtwZWVrOm4ucGVlayxvZmZzZXQ6bi5vZmZzZXQsbGluZTpuLmxpbmUsY29sdW1uOm4uY29sdW1ufX1lbHNle2lmKCFyKXRocm93IG5ldyBFcnJvcihcIlByb2dyYW1taW5nIGVycm9yOiB0aGUgcmFuZ2UgYXJndW1lbnQgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGEgZmlsZSBhcmd1bWVudC5cIik7dGhpcy5maWxlPWUsdGhpcy5pbnB1dD1lLmNvbnRlbnQsdGhpcy5lbmQ9ci5lbmRQb3MsdGhpcy5zdGF0ZT17cGVlazotMSxvZmZzZXQ6ci5zdGFydFBvcyxsaW5lOnIuc3RhcnRMaW5lLGNvbHVtbjpyLnN0YXJ0Q29sfX19Y2xvbmUoKXtyZXR1cm4gbmV3IHQodGhpcyl9cGVlaygpe3JldHVybiB0aGlzLnN0YXRlLnBlZWt9Y2hhcnNMZWZ0KCl7cmV0dXJuIHRoaXMuZW5kLXRoaXMuc3RhdGUub2Zmc2V0fWRpZmYoZSl7cmV0dXJuIHRoaXMuc3RhdGUub2Zmc2V0LWUuc3RhdGUub2Zmc2V0fWFkdmFuY2UoKXt0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLnN0YXRlKX1pbml0KCl7dGhpcy51cGRhdGVQZWVrKHRoaXMuc3RhdGUpfWdldFNwYW4oZSxyKXtlPWV8fHRoaXM7bGV0IG49ZTtpZihyKWZvcig7dGhpcy5kaWZmKGUpPjAmJnIuaW5kZXhPZihlLnBlZWsoKSkhPT0tMTspbj09PWUmJihlPWUuY2xvbmUoKSksZS5hZHZhbmNlKCk7bGV0IHM9dGhpcy5sb2NhdGlvbkZyb21DdXJzb3IoZSksaT10aGlzLmxvY2F0aW9uRnJvbUN1cnNvcih0aGlzKSxhPW4hPT1lP3RoaXMubG9jYXRpb25Gcm9tQ3Vyc29yKG4pOnM7cmV0dXJuIG5ldyBoKHMsaSxhKX1nZXRDaGFycyhlKXtyZXR1cm4gdGhpcy5pbnB1dC5zdWJzdHJpbmcoZS5zdGF0ZS5vZmZzZXQsdGhpcy5zdGF0ZS5vZmZzZXQpfWNoYXJBdChlKXtyZXR1cm4gdGhpcy5pbnB1dC5jaGFyQ29kZUF0KGUpfWFkdmFuY2VTdGF0ZShlKXtpZihlLm9mZnNldD49dGhpcy5lbmQpdGhyb3cgdGhpcy5zdGF0ZT1lLG5ldyBndCgnVW5leHBlY3RlZCBjaGFyYWN0ZXIgXCJFT0ZcIicsdGhpcyk7bGV0IHI9dGhpcy5jaGFyQXQoZS5vZmZzZXQpO3I9PT0xMD8oZS5saW5lKyssZS5jb2x1bW49MCk6UHQocil8fGUuY29sdW1uKyssZS5vZmZzZXQrKyx0aGlzLnVwZGF0ZVBlZWsoZSl9dXBkYXRlUGVlayhlKXtlLnBlZWs9ZS5vZmZzZXQ+PXRoaXMuZW5kPzA6dGhpcy5jaGFyQXQoZS5vZmZzZXQpfWxvY2F0aW9uRnJvbUN1cnNvcihlKXtyZXR1cm4gbmV3IGllKGUuZmlsZSxlLnN0YXRlLm9mZnNldCxlLnN0YXRlLmxpbmUsZS5zdGF0ZS5jb2x1bW4pfX0sTXI9Y2xhc3MgdCBleHRlbmRzIGVye2NvbnN0cnVjdG9yKGUscil7ZSBpbnN0YW5jZW9mIHQ/KHN1cGVyKGUpLHRoaXMuaW50ZXJuYWxTdGF0ZT17Li4uZS5pbnRlcm5hbFN0YXRlfSk6KHN1cGVyKGUsciksdGhpcy5pbnRlcm5hbFN0YXRlPXRoaXMuc3RhdGUpfWFkdmFuY2UoKXt0aGlzLnN0YXRlPXRoaXMuaW50ZXJuYWxTdGF0ZSxzdXBlci5hZHZhbmNlKCksdGhpcy5wcm9jZXNzRXNjYXBlU2VxdWVuY2UoKX1pbml0KCl7c3VwZXIuaW5pdCgpLHRoaXMucHJvY2Vzc0VzY2FwZVNlcXVlbmNlKCl9Y2xvbmUoKXtyZXR1cm4gbmV3IHQodGhpcyl9Z2V0Q2hhcnMoZSl7bGV0IHI9ZS5jbG9uZSgpLG49XCJcIjtmb3IoO3IuaW50ZXJuYWxTdGF0ZS5vZmZzZXQ8dGhpcy5pbnRlcm5hbFN0YXRlLm9mZnNldDspbis9U3RyaW5nLmZyb21Db2RlUG9pbnQoci5wZWVrKCkpLHIuYWR2YW5jZSgpO3JldHVybiBufXByb2Nlc3NFc2NhcGVTZXF1ZW5jZSgpe2xldCBlPSgpPT50aGlzLmludGVybmFsU3RhdGUucGVlaztpZihlKCk9PT05MilpZih0aGlzLmludGVybmFsU3RhdGU9ey4uLnRoaXMuc3RhdGV9LHRoaXMuYWR2YW5jZVN0YXRlKHRoaXMuaW50ZXJuYWxTdGF0ZSksZSgpPT09MTEwKXRoaXMuc3RhdGUucGVlaz0xMDtlbHNlIGlmKGUoKT09PTExNCl0aGlzLnN0YXRlLnBlZWs9MTM7ZWxzZSBpZihlKCk9PT0xMTgpdGhpcy5zdGF0ZS5wZWVrPTExO2Vsc2UgaWYoZSgpPT09MTE2KXRoaXMuc3RhdGUucGVlaz05O2Vsc2UgaWYoZSgpPT09OTgpdGhpcy5zdGF0ZS5wZWVrPTg7ZWxzZSBpZihlKCk9PT0xMDIpdGhpcy5zdGF0ZS5wZWVrPTEyO2Vsc2UgaWYoZSgpPT09MTE3KWlmKHRoaXMuYWR2YW5jZVN0YXRlKHRoaXMuaW50ZXJuYWxTdGF0ZSksZSgpPT09MTIzKXt0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLmludGVybmFsU3RhdGUpO2xldCByPXRoaXMuY2xvbmUoKSxuPTA7Zm9yKDtlKCkhPT0xMjU7KXRoaXMuYWR2YW5jZVN0YXRlKHRoaXMuaW50ZXJuYWxTdGF0ZSksbisrO3RoaXMuc3RhdGUucGVlaz10aGlzLmRlY29kZUhleERpZ2l0cyhyLG4pfWVsc2V7bGV0IHI9dGhpcy5jbG9uZSgpO3RoaXMuYWR2YW5jZVN0YXRlKHRoaXMuaW50ZXJuYWxTdGF0ZSksdGhpcy5hZHZhbmNlU3RhdGUodGhpcy5pbnRlcm5hbFN0YXRlKSx0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLmludGVybmFsU3RhdGUpLHRoaXMuc3RhdGUucGVlaz10aGlzLmRlY29kZUhleERpZ2l0cyhyLDQpfWVsc2UgaWYoZSgpPT09MTIwKXt0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLmludGVybmFsU3RhdGUpO2xldCByPXRoaXMuY2xvbmUoKTt0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLmludGVybmFsU3RhdGUpLHRoaXMuc3RhdGUucGVlaz10aGlzLmRlY29kZUhleERpZ2l0cyhyLDIpfWVsc2UgaWYoeXIoZSgpKSl7bGV0IHI9XCJcIixuPTAscz10aGlzLmNsb25lKCk7Zm9yKDt5cihlKCkpJiZuPDM7KXM9dGhpcy5jbG9uZSgpLHIrPVN0cmluZy5mcm9tQ29kZVBvaW50KGUoKSksdGhpcy5hZHZhbmNlU3RhdGUodGhpcy5pbnRlcm5hbFN0YXRlKSxuKys7dGhpcy5zdGF0ZS5wZWVrPXBhcnNlSW50KHIsOCksdGhpcy5pbnRlcm5hbFN0YXRlPXMuaW50ZXJuYWxTdGF0ZX1lbHNlIFB0KHRoaXMuaW50ZXJuYWxTdGF0ZS5wZWVrKT8odGhpcy5hZHZhbmNlU3RhdGUodGhpcy5pbnRlcm5hbFN0YXRlKSx0aGlzLnN0YXRlPXRoaXMuaW50ZXJuYWxTdGF0ZSk6dGhpcy5zdGF0ZS5wZWVrPXRoaXMuaW50ZXJuYWxTdGF0ZS5wZWVrfWRlY29kZUhleERpZ2l0cyhlLHIpe2xldCBuPXRoaXMuaW5wdXQuc2xpY2UoZS5pbnRlcm5hbFN0YXRlLm9mZnNldCxlLmludGVybmFsU3RhdGUub2Zmc2V0K3IpLHM9cGFyc2VJbnQobiwxNik7aWYoaXNOYU4ocykpdGhyb3cgZS5zdGF0ZT1lLmludGVybmFsU3RhdGUsbmV3IGd0KFwiSW52YWxpZCBoZXhhZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2VcIixlKTtyZXR1cm4gc319LGd0PWNsYXNze2NvbnN0cnVjdG9yKGUscil7dGhpcy5tc2c9ZSx0aGlzLmN1cnNvcj1yfX07dmFyIEw9Y2xhc3MgdCBleHRlbmRzIElle3N0YXRpYyBjcmVhdGUoZSxyLG4pe3JldHVybiBuZXcgdChlLHIsbil9Y29uc3RydWN0b3IoZSxyLG4pe3N1cGVyKHIsbiksdGhpcy5lbGVtZW50TmFtZT1lfX0sVnI9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLnJvb3ROb2Rlcz1lLHRoaXMuZXJyb3JzPXJ9fSx0cj1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmdldFRhZ0RlZmluaXRpb249ZX1wYXJzZShlLHIsbixzPSExLGkpe2xldCBhPUQ9PihSLC4uLkYpPT5EKFIudG9Mb3dlckNhc2UoKSwuLi5GKSxvPXM/dGhpcy5nZXRUYWdEZWZpbml0aW9uOmEodGhpcy5nZXRUYWdEZWZpbml0aW9uKSx1PUQ9Pm8oRCkuZ2V0Q29udGVudFR5cGUoKSxwPXM/aTphKGkpLGY9VXMoZSxyLGk/KEQsUixGLGMpPT57bGV0IGc9cChELFIsRixjKTtyZXR1cm4gZyE9PXZvaWQgMD9nOnUoRCl9OnUsbiksZD1uJiZuLmNhblNlbGZDbG9zZXx8ITEsQz1uJiZuLmFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3N8fCExLEE9bmV3IFVyKGYudG9rZW5zLG8sZCxDLHMpO3JldHVybiBBLmJ1aWxkKCksbmV3IFZyKEEucm9vdE5vZGVzLGYuZXJyb3JzLmNvbmNhdChBLmVycm9ycykpfX0sVXI9Y2xhc3MgdHtjb25zdHJ1Y3RvcihlLHIsbixzLGkpe3RoaXMudG9rZW5zPWUsdGhpcy5nZXRUYWdEZWZpbml0aW9uPXIsdGhpcy5jYW5TZWxmQ2xvc2U9bix0aGlzLmFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3M9cyx0aGlzLmlzVGFnTmFtZUNhc2VTZW5zaXRpdmU9aSx0aGlzLl9pbmRleD0tMSx0aGlzLl9jb250YWluZXJTdGFjaz1bXSx0aGlzLnJvb3ROb2Rlcz1bXSx0aGlzLmVycm9ycz1bXSx0aGlzLl9hZHZhbmNlKCl9YnVpbGQoKXtmb3IoO3RoaXMuX3BlZWsudHlwZSE9PTM0Oyl0aGlzLl9wZWVrLnR5cGU9PT0wfHx0aGlzLl9wZWVrLnR5cGU9PT00P3RoaXMuX2NvbnN1bWVTdGFydFRhZyh0aGlzLl9hZHZhbmNlKCkpOnRoaXMuX3BlZWsudHlwZT09PTM/KHRoaXMuX2Nsb3NlVm9pZEVsZW1lbnQoKSx0aGlzLl9jb25zdW1lRW5kVGFnKHRoaXMuX2FkdmFuY2UoKSkpOnRoaXMuX3BlZWsudHlwZT09PTEyPyh0aGlzLl9jbG9zZVZvaWRFbGVtZW50KCksdGhpcy5fY29uc3VtZUNkYXRhKHRoaXMuX2FkdmFuY2UoKSkpOnRoaXMuX3BlZWsudHlwZT09PTEwPyh0aGlzLl9jbG9zZVZvaWRFbGVtZW50KCksdGhpcy5fY29uc3VtZUNvbW1lbnQodGhpcy5fYWR2YW5jZSgpKSk6dGhpcy5fcGVlay50eXBlPT09NXx8dGhpcy5fcGVlay50eXBlPT09N3x8dGhpcy5fcGVlay50eXBlPT09Nj8odGhpcy5fY2xvc2VWb2lkRWxlbWVudCgpLHRoaXMuX2NvbnN1bWVUZXh0KHRoaXMuX2FkdmFuY2UoKSkpOnRoaXMuX3BlZWsudHlwZT09PTIwP3RoaXMuX2NvbnN1bWVFeHBhbnNpb24odGhpcy5fYWR2YW5jZSgpKTp0aGlzLl9wZWVrLnR5cGU9PT0yNT8odGhpcy5fY2xvc2VWb2lkRWxlbWVudCgpLHRoaXMuX2NvbnN1bWVCbG9ja09wZW4odGhpcy5fYWR2YW5jZSgpKSk6dGhpcy5fcGVlay50eXBlPT09Mjc/KHRoaXMuX2Nsb3NlVm9pZEVsZW1lbnQoKSx0aGlzLl9jb25zdW1lQmxvY2tDbG9zZSh0aGlzLl9hZHZhbmNlKCkpKTp0aGlzLl9wZWVrLnR5cGU9PT0yOT8odGhpcy5fY2xvc2VWb2lkRWxlbWVudCgpLHRoaXMuX2NvbnN1bWVJbmNvbXBsZXRlQmxvY2sodGhpcy5fYWR2YW5jZSgpKSk6dGhpcy5fcGVlay50eXBlPT09MzA/KHRoaXMuX2Nsb3NlVm9pZEVsZW1lbnQoKSx0aGlzLl9jb25zdW1lTGV0KHRoaXMuX2FkdmFuY2UoKSkpOnRoaXMuX3BlZWsudHlwZT09PTE4P3RoaXMuX2NvbnN1bWVEb2NUeXBlKHRoaXMuX2FkdmFuY2UoKSk6dGhpcy5fcGVlay50eXBlPT09MzM/KHRoaXMuX2Nsb3NlVm9pZEVsZW1lbnQoKSx0aGlzLl9jb25zdW1lSW5jb21wbGV0ZUxldCh0aGlzLl9hZHZhbmNlKCkpKTp0aGlzLl9hZHZhbmNlKCk7Zm9yKGxldCBlIG9mIHRoaXMuX2NvbnRhaW5lclN0YWNrKWUgaW5zdGFuY2VvZiBlZSYmdGhpcy5lcnJvcnMucHVzaChMLmNyZWF0ZShlLm5hbWUsZS5zb3VyY2VTcGFuLGBVbmNsb3NlZCBibG9jayBcIiR7ZS5uYW1lfVwiYCkpfV9hZHZhbmNlKCl7bGV0IGU9dGhpcy5fcGVlaztyZXR1cm4gdGhpcy5faW5kZXg8dGhpcy50b2tlbnMubGVuZ3RoLTEmJnRoaXMuX2luZGV4KyssdGhpcy5fcGVlaz10aGlzLnRva2Vuc1t0aGlzLl9pbmRleF0sZX1fYWR2YW5jZUlmKGUpe3JldHVybiB0aGlzLl9wZWVrLnR5cGU9PT1lP3RoaXMuX2FkdmFuY2UoKTpudWxsfV9jb25zdW1lQ2RhdGEoZSl7bGV0IHI9dGhpcy5fYWR2YW5jZSgpLG49dGhpcy5fZ2V0VGV4dChyKSxzPXRoaXMuX2FkdmFuY2VJZigxMyk7dGhpcy5fYWRkVG9QYXJlbnQobmV3IFZ0KG4sbmV3IGgoZS5zb3VyY2VTcGFuLnN0YXJ0LChzfHxyKS5zb3VyY2VTcGFuLmVuZCksW3JdKSl9X2NvbnN1bWVDb21tZW50KGUpe2xldCByPXRoaXMuX2FkdmFuY2VJZig3KSxuPXRoaXMuX2FkdmFuY2VJZigxMSkscz1yIT1udWxsP3IucGFydHNbMF0udHJpbSgpOm51bGwsaT1uPT1udWxsP2Uuc291cmNlU3BhbjpuZXcgaChlLnNvdXJjZVNwYW4uc3RhcnQsbi5zb3VyY2VTcGFuLmVuZCxlLnNvdXJjZVNwYW4uZnVsbFN0YXJ0KTt0aGlzLl9hZGRUb1BhcmVudChuZXcgR3QocyxpKSl9X2NvbnN1bWVEb2NUeXBlKGUpe2xldCByPXRoaXMuX2FkdmFuY2VJZig3KSxuPXRoaXMuX2FkdmFuY2VJZigxOSkscz1yIT1udWxsP3IucGFydHNbMF0udHJpbSgpOm51bGwsaT1uZXcgaChlLnNvdXJjZVNwYW4uc3RhcnQsKG58fHJ8fGUpLnNvdXJjZVNwYW4uZW5kKTt0aGlzLl9hZGRUb1BhcmVudChuZXcgWXQocyxpKSl9X2NvbnN1bWVFeHBhbnNpb24oZSl7bGV0IHI9dGhpcy5fYWR2YW5jZSgpLG49dGhpcy5fYWR2YW5jZSgpLHM9W107Zm9yKDt0aGlzLl9wZWVrLnR5cGU9PT0yMTspe2xldCBhPXRoaXMuX3BhcnNlRXhwYW5zaW9uQ2FzZSgpO2lmKCFhKXJldHVybjtzLnB1c2goYSl9aWYodGhpcy5fcGVlay50eXBlIT09MjQpe3RoaXMuZXJyb3JzLnB1c2goTC5jcmVhdGUobnVsbCx0aGlzLl9wZWVrLnNvdXJjZVNwYW4sXCJJbnZhbGlkIElDVSBtZXNzYWdlLiBNaXNzaW5nICd9Jy5cIikpO3JldHVybn1sZXQgaT1uZXcgaChlLnNvdXJjZVNwYW4uc3RhcnQsdGhpcy5fcGVlay5zb3VyY2VTcGFuLmVuZCxlLnNvdXJjZVNwYW4uZnVsbFN0YXJ0KTt0aGlzLl9hZGRUb1BhcmVudChuZXcgVXQoci5wYXJ0c1swXSxuLnBhcnRzWzBdLHMsaSxyLnNvdXJjZVNwYW4pKSx0aGlzLl9hZHZhbmNlKCl9X3BhcnNlRXhwYW5zaW9uQ2FzZSgpe2xldCBlPXRoaXMuX2FkdmFuY2UoKTtpZih0aGlzLl9wZWVrLnR5cGUhPT0yMilyZXR1cm4gdGhpcy5lcnJvcnMucHVzaChMLmNyZWF0ZShudWxsLHRoaXMuX3BlZWsuc291cmNlU3BhbixcIkludmFsaWQgSUNVIG1lc3NhZ2UuIE1pc3NpbmcgJ3snLlwiKSksbnVsbDtsZXQgcj10aGlzLl9hZHZhbmNlKCksbj10aGlzLl9jb2xsZWN0RXhwYW5zaW9uRXhwVG9rZW5zKHIpO2lmKCFuKXJldHVybiBudWxsO2xldCBzPXRoaXMuX2FkdmFuY2UoKTtuLnB1c2goe3R5cGU6MzQscGFydHM6W10sc291cmNlU3BhbjpzLnNvdXJjZVNwYW59KTtsZXQgaT1uZXcgdChuLHRoaXMuZ2V0VGFnRGVmaW5pdGlvbix0aGlzLmNhblNlbGZDbG9zZSx0aGlzLmFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3MsdGhpcy5pc1RhZ05hbWVDYXNlU2Vuc2l0aXZlKTtpZihpLmJ1aWxkKCksaS5lcnJvcnMubGVuZ3RoPjApcmV0dXJuIHRoaXMuZXJyb3JzPXRoaXMuZXJyb3JzLmNvbmNhdChpLmVycm9ycyksbnVsbDtsZXQgYT1uZXcgaChlLnNvdXJjZVNwYW4uc3RhcnQscy5zb3VyY2VTcGFuLmVuZCxlLnNvdXJjZVNwYW4uZnVsbFN0YXJ0KSxvPW5ldyBoKHIuc291cmNlU3Bhbi5zdGFydCxzLnNvdXJjZVNwYW4uZW5kLHIuc291cmNlU3Bhbi5mdWxsU3RhcnQpO3JldHVybiBuZXcgV3QoZS5wYXJ0c1swXSxpLnJvb3ROb2RlcyxhLGUuc291cmNlU3BhbixvKX1fY29sbGVjdEV4cGFuc2lvbkV4cFRva2VucyhlKXtsZXQgcj1bXSxuPVsyMl07Zm9yKDs7KXtpZigodGhpcy5fcGVlay50eXBlPT09MjB8fHRoaXMuX3BlZWsudHlwZT09PTIyKSYmbi5wdXNoKHRoaXMuX3BlZWsudHlwZSksdGhpcy5fcGVlay50eXBlPT09MjMpaWYoV3MobiwyMikpe2lmKG4ucG9wKCksbi5sZW5ndGg9PT0wKXJldHVybiByfWVsc2UgcmV0dXJuIHRoaXMuZXJyb3JzLnB1c2goTC5jcmVhdGUobnVsbCxlLnNvdXJjZVNwYW4sXCJJbnZhbGlkIElDVSBtZXNzYWdlLiBNaXNzaW5nICd9Jy5cIikpLG51bGw7aWYodGhpcy5fcGVlay50eXBlPT09MjQpaWYoV3MobiwyMCkpbi5wb3AoKTtlbHNlIHJldHVybiB0aGlzLmVycm9ycy5wdXNoKEwuY3JlYXRlKG51bGwsZS5zb3VyY2VTcGFuLFwiSW52YWxpZCBJQ1UgbWVzc2FnZS4gTWlzc2luZyAnfScuXCIpKSxudWxsO2lmKHRoaXMuX3BlZWsudHlwZT09PTM0KXJldHVybiB0aGlzLmVycm9ycy5wdXNoKEwuY3JlYXRlKG51bGwsZS5zb3VyY2VTcGFuLFwiSW52YWxpZCBJQ1UgbWVzc2FnZS4gTWlzc2luZyAnfScuXCIpKSxudWxsO3IucHVzaCh0aGlzLl9hZHZhbmNlKCkpfX1fZ2V0VGV4dChlKXtsZXQgcj1lLnBhcnRzWzBdO2lmKHIubGVuZ3RoPjAmJnJbMF09PWBcbmApe2xldCBuPXRoaXMuX2dldENsb3Nlc3RQYXJlbnRFbGVtZW50KCk7biE9bnVsbCYmbi5jaGlsZHJlbi5sZW5ndGg9PTAmJnRoaXMuZ2V0VGFnRGVmaW5pdGlvbihuLm5hbWUpLmlnbm9yZUZpcnN0TGYmJihyPXIuc3Vic3RyaW5nKDEpKX1yZXR1cm4gcn1fY29uc3VtZVRleHQoZSl7bGV0IHI9W2VdLG49ZS5zb3VyY2VTcGFuLHM9ZS5wYXJ0c1swXTtpZihzLmxlbmd0aD4wJiZzWzBdPT09YFxuYCl7bGV0IGk9dGhpcy5fZ2V0Q29udGFpbmVyKCk7aSE9bnVsbCYmaS5jaGlsZHJlbi5sZW5ndGg9PT0wJiZ0aGlzLmdldFRhZ0RlZmluaXRpb24oaS5uYW1lKS5pZ25vcmVGaXJzdExmJiYocz1zLnN1YnN0cmluZygxKSxyWzBdPXt0eXBlOmUudHlwZSxzb3VyY2VTcGFuOmUuc291cmNlU3BhbixwYXJ0czpbc119KX1mb3IoO3RoaXMuX3BlZWsudHlwZT09PTh8fHRoaXMuX3BlZWsudHlwZT09PTV8fHRoaXMuX3BlZWsudHlwZT09PTk7KWU9dGhpcy5fYWR2YW5jZSgpLHIucHVzaChlKSxlLnR5cGU9PT04P3MrPWUucGFydHMuam9pbihcIlwiKS5yZXBsYWNlKC8mKFteO10rKTsvZyx6cyk6ZS50eXBlPT09OT9zKz1lLnBhcnRzWzBdOnMrPWUucGFydHMuam9pbihcIlwiKTtpZihzLmxlbmd0aD4wKXtsZXQgaT1lLnNvdXJjZVNwYW47dGhpcy5fYWRkVG9QYXJlbnQobmV3IEh0KHMsbmV3IGgobi5zdGFydCxpLmVuZCxuLmZ1bGxTdGFydCxuLmRldGFpbHMpLHIpKX19X2Nsb3NlVm9pZEVsZW1lbnQoKXtsZXQgZT10aGlzLl9nZXRDb250YWluZXIoKTtlIGluc3RhbmNlb2YgRyYmdGhpcy5nZXRUYWdEZWZpbml0aW9uKGUubmFtZSkuaXNWb2lkJiZ0aGlzLl9jb250YWluZXJTdGFjay5wb3AoKX1fY29uc3VtZVN0YXJ0VGFnKGUpe2xldFtyLG5dPWUucGFydHMscz1bXTtmb3IoO3RoaXMuX3BlZWsudHlwZT09PTE0OylzLnB1c2godGhpcy5fY29uc3VtZUF0dHIodGhpcy5fYWR2YW5jZSgpKSk7bGV0IGk9dGhpcy5fZ2V0RWxlbWVudEZ1bGxOYW1lKHIsbix0aGlzLl9nZXRDbG9zZXN0UGFyZW50RWxlbWVudCgpKSxhPSExO2lmKHRoaXMuX3BlZWsudHlwZT09PTIpe3RoaXMuX2FkdmFuY2UoKSxhPSEwO2xldCBDPXRoaXMuZ2V0VGFnRGVmaW5pdGlvbihpKTt0aGlzLmNhblNlbGZDbG9zZXx8Qy5jYW5TZWxmQ2xvc2V8fFJlKGkpIT09bnVsbHx8Qy5pc1ZvaWR8fHRoaXMuZXJyb3JzLnB1c2goTC5jcmVhdGUoaSxlLnNvdXJjZVNwYW4sYE9ubHkgdm9pZCwgY3VzdG9tIGFuZCBmb3JlaWduIGVsZW1lbnRzIGNhbiBiZSBzZWxmIGNsb3NlZCBcIiR7ZS5wYXJ0c1sxXX1cImApKX1lbHNlIHRoaXMuX3BlZWsudHlwZT09PTEmJih0aGlzLl9hZHZhbmNlKCksYT0hMSk7bGV0IG89dGhpcy5fcGVlay5zb3VyY2VTcGFuLmZ1bGxTdGFydCx1PW5ldyBoKGUuc291cmNlU3Bhbi5zdGFydCxvLGUuc291cmNlU3Bhbi5mdWxsU3RhcnQpLHA9bmV3IGgoZS5zb3VyY2VTcGFuLnN0YXJ0LG8sZS5zb3VyY2VTcGFuLmZ1bGxTdGFydCksbD1uZXcgaChlLnNvdXJjZVNwYW4uc3RhcnQubW92ZUJ5KDEpLGUuc291cmNlU3Bhbi5lbmQpLGY9bmV3IEcoaSxzLFtdLHUscCx2b2lkIDAsbCksZD10aGlzLl9nZXRDb250YWluZXIoKTt0aGlzLl9wdXNoQ29udGFpbmVyKGYsZCBpbnN0YW5jZW9mIEcmJnRoaXMuZ2V0VGFnRGVmaW5pdGlvbihkLm5hbWUpLmlzQ2xvc2VkQnlDaGlsZChmLm5hbWUpKSxhP3RoaXMuX3BvcENvbnRhaW5lcihpLEcsdSk6ZS50eXBlPT09NCYmKHRoaXMuX3BvcENvbnRhaW5lcihpLEcsbnVsbCksdGhpcy5lcnJvcnMucHVzaChMLmNyZWF0ZShpLHUsYE9wZW5pbmcgdGFnIFwiJHtpfVwiIG5vdCB0ZXJtaW5hdGVkLmApKSl9X3B1c2hDb250YWluZXIoZSxyKXtyJiZ0aGlzLl9jb250YWluZXJTdGFjay5wb3AoKSx0aGlzLl9hZGRUb1BhcmVudChlKSx0aGlzLl9jb250YWluZXJTdGFjay5wdXNoKGUpfV9jb25zdW1lRW5kVGFnKGUpe2xldCByPXRoaXMuYWxsb3dIdG1Db21wb25lbnRDbG9zaW5nVGFncyYmZS5wYXJ0cy5sZW5ndGg9PT0wP251bGw6dGhpcy5fZ2V0RWxlbWVudEZ1bGxOYW1lKGUucGFydHNbMF0sZS5wYXJ0c1sxXSx0aGlzLl9nZXRDbG9zZXN0UGFyZW50RWxlbWVudCgpKTtpZihyJiZ0aGlzLmdldFRhZ0RlZmluaXRpb24ocikuaXNWb2lkKXRoaXMuZXJyb3JzLnB1c2goTC5jcmVhdGUocixlLnNvdXJjZVNwYW4sYFZvaWQgZWxlbWVudHMgZG8gbm90IGhhdmUgZW5kIHRhZ3MgXCIke2UucGFydHNbMV19XCJgKSk7ZWxzZSBpZighdGhpcy5fcG9wQ29udGFpbmVyKHIsRyxlLnNvdXJjZVNwYW4pKXtsZXQgbj1gVW5leHBlY3RlZCBjbG9zaW5nIHRhZyBcIiR7cn1cIi4gSXQgbWF5IGhhcHBlbiB3aGVuIHRoZSB0YWcgaGFzIGFscmVhZHkgYmVlbiBjbG9zZWQgYnkgYW5vdGhlciB0YWcuIEZvciBtb3JlIGluZm8gc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zeW50YXguaHRtbCNjbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzYDt0aGlzLmVycm9ycy5wdXNoKEwuY3JlYXRlKHIsZS5zb3VyY2VTcGFuLG4pKX19X3BvcENvbnRhaW5lcihlLHIsbil7bGV0IHM9ITE7Zm9yKGxldCBpPXRoaXMuX2NvbnRhaW5lclN0YWNrLmxlbmd0aC0xO2k+PTA7aS0tKXtsZXQgYT10aGlzLl9jb250YWluZXJTdGFja1tpXTtpZihSZShhLm5hbWUpP2EubmFtZT09PWU6KGU9PW51bGx8fGEubmFtZS50b0xvd2VyQ2FzZSgpPT09ZS50b0xvd2VyQ2FzZSgpKSYmYSBpbnN0YW5jZW9mIHIpcmV0dXJuIGEuZW5kU291cmNlU3Bhbj1uLGEuc291cmNlU3Bhbi5lbmQ9biE9PW51bGw/bi5lbmQ6YS5zb3VyY2VTcGFuLmVuZCx0aGlzLl9jb250YWluZXJTdGFjay5zcGxpY2UoaSx0aGlzLl9jb250YWluZXJTdGFjay5sZW5ndGgtaSksIXM7KGEgaW5zdGFuY2VvZiBlZXx8YSBpbnN0YW5jZW9mIEcmJiF0aGlzLmdldFRhZ0RlZmluaXRpb24oYS5uYW1lKS5jbG9zZWRCeVBhcmVudCkmJihzPSEwKX1yZXR1cm4hMX1fY29uc3VtZUF0dHIoZSl7bGV0IHI9T2UoZS5wYXJ0c1swXSxlLnBhcnRzWzFdKSxuPWUuc291cmNlU3Bhbi5lbmQsczt0aGlzLl9wZWVrLnR5cGU9PT0xNSYmKHM9dGhpcy5fYWR2YW5jZSgpKTtsZXQgaT1cIlwiLGE9W10sbyx1O2lmKHRoaXMuX3BlZWsudHlwZT09PTE2KWZvcihvPXRoaXMuX3BlZWsuc291cmNlU3Bhbix1PXRoaXMuX3BlZWsuc291cmNlU3Bhbi5lbmQ7dGhpcy5fcGVlay50eXBlPT09MTZ8fHRoaXMuX3BlZWsudHlwZT09PTE3fHx0aGlzLl9wZWVrLnR5cGU9PT05Oyl7bGV0IGY9dGhpcy5fYWR2YW5jZSgpO2EucHVzaChmKSxmLnR5cGU9PT0xNz9pKz1mLnBhcnRzLmpvaW4oXCJcIikucmVwbGFjZSgvJihbXjtdKyk7L2csenMpOmYudHlwZT09PTk/aSs9Zi5wYXJ0c1swXTppKz1mLnBhcnRzLmpvaW4oXCJcIiksdT1uPWYuc291cmNlU3Bhbi5lbmR9dGhpcy5fcGVlay50eXBlPT09MTUmJih1PW49dGhpcy5fYWR2YW5jZSgpLnNvdXJjZVNwYW4uZW5kKTtsZXQgbD1vJiZ1JiZuZXcgaCgocz09bnVsbD92b2lkIDA6cy5zb3VyY2VTcGFuLnN0YXJ0KT8/by5zdGFydCx1LChzPT1udWxsP3ZvaWQgMDpzLnNvdXJjZVNwYW4uZnVsbFN0YXJ0KT8/by5mdWxsU3RhcnQpO3JldHVybiBuZXcgenQocixpLG5ldyBoKGUuc291cmNlU3Bhbi5zdGFydCxuLGUuc291cmNlU3Bhbi5mdWxsU3RhcnQpLGUuc291cmNlU3BhbixsLGEubGVuZ3RoPjA/YTp2b2lkIDAsdm9pZCAwKX1fY29uc3VtZUJsb2NrT3BlbihlKXtsZXQgcj1bXTtmb3IoO3RoaXMuX3BlZWsudHlwZT09PTI4Oyl7bGV0IG89dGhpcy5fYWR2YW5jZSgpO3IucHVzaChuZXcgY3Qoby5wYXJ0c1swXSxvLnNvdXJjZVNwYW4pKX10aGlzLl9wZWVrLnR5cGU9PT0yNiYmdGhpcy5fYWR2YW5jZSgpO2xldCBuPXRoaXMuX3BlZWsuc291cmNlU3Bhbi5mdWxsU3RhcnQscz1uZXcgaChlLnNvdXJjZVNwYW4uc3RhcnQsbixlLnNvdXJjZVNwYW4uZnVsbFN0YXJ0KSxpPW5ldyBoKGUuc291cmNlU3Bhbi5zdGFydCxuLGUuc291cmNlU3Bhbi5mdWxsU3RhcnQpLGE9bmV3IGVlKGUucGFydHNbMF0scixbXSxzLGUuc291cmNlU3BhbixpKTt0aGlzLl9wdXNoQ29udGFpbmVyKGEsITEpfV9jb25zdW1lQmxvY2tDbG9zZShlKXt0aGlzLl9wb3BDb250YWluZXIobnVsbCxlZSxlLnNvdXJjZVNwYW4pfHx0aGlzLmVycm9ycy5wdXNoKEwuY3JlYXRlKG51bGwsZS5zb3VyY2VTcGFuLCdVbmV4cGVjdGVkIGNsb3NpbmcgYmxvY2suIFRoZSBibG9jayBtYXkgaGF2ZSBiZWVuIGNsb3NlZCBlYXJsaWVyLiBJZiB5b3UgbWVhbnQgdG8gd3JpdGUgdGhlIH0gY2hhcmFjdGVyLCB5b3Ugc2hvdWxkIHVzZSB0aGUgXCImIzEyNTtcIiBIVE1MIGVudGl0eSBpbnN0ZWFkLicpKX1fY29uc3VtZUluY29tcGxldGVCbG9jayhlKXtsZXQgcj1bXTtmb3IoO3RoaXMuX3BlZWsudHlwZT09PTI4Oyl7bGV0IG89dGhpcy5fYWR2YW5jZSgpO3IucHVzaChuZXcgY3Qoby5wYXJ0c1swXSxvLnNvdXJjZVNwYW4pKX1sZXQgbj10aGlzLl9wZWVrLnNvdXJjZVNwYW4uZnVsbFN0YXJ0LHM9bmV3IGgoZS5zb3VyY2VTcGFuLnN0YXJ0LG4sZS5zb3VyY2VTcGFuLmZ1bGxTdGFydCksaT1uZXcgaChlLnNvdXJjZVNwYW4uc3RhcnQsbixlLnNvdXJjZVNwYW4uZnVsbFN0YXJ0KSxhPW5ldyBlZShlLnBhcnRzWzBdLHIsW10scyxlLnNvdXJjZVNwYW4saSk7dGhpcy5fcHVzaENvbnRhaW5lcihhLCExKSx0aGlzLl9wb3BDb250YWluZXIobnVsbCxlZSxudWxsKSx0aGlzLmVycm9ycy5wdXNoKEwuY3JlYXRlKGUucGFydHNbMF0scyxgSW5jb21wbGV0ZSBibG9jayBcIiR7ZS5wYXJ0c1swXX1cIi4gSWYgeW91IG1lYW50IHRvIHdyaXRlIHRoZSBAIGNoYXJhY3RlciwgeW91IHNob3VsZCB1c2UgdGhlIFwiJiM2NDtcIiBIVE1MIGVudGl0eSBpbnN0ZWFkLmApKX1fY29uc3VtZUxldChlKXtsZXQgcj1lLnBhcnRzWzBdLG4scztpZih0aGlzLl9wZWVrLnR5cGUhPT0zMSl7dGhpcy5lcnJvcnMucHVzaChMLmNyZWF0ZShlLnBhcnRzWzBdLGUuc291cmNlU3BhbixgSW52YWxpZCBAbGV0IGRlY2xhcmF0aW9uIFwiJHtyfVwiLiBEZWNsYXJhdGlvbiBtdXN0IGhhdmUgYSB2YWx1ZS5gKSk7cmV0dXJufWVsc2Ugbj10aGlzLl9hZHZhbmNlKCk7aWYodGhpcy5fcGVlay50eXBlIT09MzIpe3RoaXMuZXJyb3JzLnB1c2goTC5jcmVhdGUoZS5wYXJ0c1swXSxlLnNvdXJjZVNwYW4sYFVudGVybWluYXRlZCBAbGV0IGRlY2xhcmF0aW9uIFwiJHtyfVwiLiBEZWNsYXJhdGlvbiBtdXN0IGJlIHRlcm1pbmF0ZWQgd2l0aCBhIHNlbWljb2xvbi5gKSk7cmV0dXJufWVsc2Ugcz10aGlzLl9hZHZhbmNlKCk7bGV0IGk9cy5zb3VyY2VTcGFuLmZ1bGxTdGFydCxhPW5ldyBoKGUuc291cmNlU3Bhbi5zdGFydCxpLGUuc291cmNlU3Bhbi5mdWxsU3RhcnQpLG89ZS5zb3VyY2VTcGFuLnRvU3RyaW5nKCkubGFzdEluZGV4T2YociksdT1lLnNvdXJjZVNwYW4uc3RhcnQubW92ZUJ5KG8pLHA9bmV3IGgodSxlLnNvdXJjZVNwYW4uZW5kKSxsPW5ldyBwdChyLG4ucGFydHNbMF0sYSxwLG4uc291cmNlU3Bhbik7dGhpcy5fYWRkVG9QYXJlbnQobCl9X2NvbnN1bWVJbmNvbXBsZXRlTGV0KGUpe2xldCByPWUucGFydHNbMF0/P1wiXCIsbj1yP2AgXCIke3J9XCJgOlwiXCI7aWYoci5sZW5ndGg+MCl7bGV0IHM9ZS5zb3VyY2VTcGFuLnRvU3RyaW5nKCkubGFzdEluZGV4T2YociksaT1lLnNvdXJjZVNwYW4uc3RhcnQubW92ZUJ5KHMpLGE9bmV3IGgoaSxlLnNvdXJjZVNwYW4uZW5kKSxvPW5ldyBoKGUuc291cmNlU3Bhbi5zdGFydCxlLnNvdXJjZVNwYW4uc3RhcnQubW92ZUJ5KDApKSx1PW5ldyBwdChyLFwiXCIsZS5zb3VyY2VTcGFuLGEsbyk7dGhpcy5fYWRkVG9QYXJlbnQodSl9dGhpcy5lcnJvcnMucHVzaChMLmNyZWF0ZShlLnBhcnRzWzBdLGUuc291cmNlU3BhbixgSW5jb21wbGV0ZSBAbGV0IGRlY2xhcmF0aW9uJHtufS4gQGxldCBkZWNsYXJhdGlvbnMgbXVzdCBiZSB3cml0dGVuIGFzIFxcYEBsZXQgPG5hbWU+ID0gPHZhbHVlPjtcXGBgKSl9X2dldENvbnRhaW5lcigpe3JldHVybiB0aGlzLl9jb250YWluZXJTdGFjay5sZW5ndGg+MD90aGlzLl9jb250YWluZXJTdGFja1t0aGlzLl9jb250YWluZXJTdGFjay5sZW5ndGgtMV06bnVsbH1fZ2V0Q2xvc2VzdFBhcmVudEVsZW1lbnQoKXtmb3IobGV0IGU9dGhpcy5fY29udGFpbmVyU3RhY2subGVuZ3RoLTE7ZT4tMTtlLS0paWYodGhpcy5fY29udGFpbmVyU3RhY2tbZV1pbnN0YW5jZW9mIEcpcmV0dXJuIHRoaXMuX2NvbnRhaW5lclN0YWNrW2VdO3JldHVybiBudWxsfV9hZGRUb1BhcmVudChlKXtsZXQgcj10aGlzLl9nZXRDb250YWluZXIoKTtyPT09bnVsbD90aGlzLnJvb3ROb2Rlcy5wdXNoKGUpOnIuY2hpbGRyZW4ucHVzaChlKX1fZ2V0RWxlbWVudEZ1bGxOYW1lKGUscixuKXtpZihlPT09XCJcIiYmKGU9dGhpcy5nZXRUYWdEZWZpbml0aW9uKHIpLmltcGxpY2l0TmFtZXNwYWNlUHJlZml4fHxcIlwiLGU9PT1cIlwiJiZuIT1udWxsKSl7bGV0IHM9dXQobi5uYW1lKVsxXTt0aGlzLmdldFRhZ0RlZmluaXRpb24ocykucHJldmVudE5hbWVzcGFjZUluaGVyaXRhbmNlfHwoZT1SZShuLm5hbWUpKX1yZXR1cm4gT2UoZSxyKX19O2Z1bmN0aW9uIFdzKHQsZSl7cmV0dXJuIHQubGVuZ3RoPjAmJnRbdC5sZW5ndGgtMV09PT1lfWZ1bmN0aW9uIHpzKHQsZSl7cmV0dXJuIE1lW2VdIT09dm9pZCAwP01lW2VdfHx0Oi9eI3hbYS1mMC05XSskL2kudGVzdChlKT9TdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChlLnNsaWNlKDIpLDE2KSk6L14jXFxkKyQvLnRlc3QoZSk/U3RyaW5nLmZyb21Db2RlUG9pbnQocGFyc2VJbnQoZS5zbGljZSgxKSwxMCkpOnR9dmFyIHJyPWNsYXNzIGV4dGVuZHMgdHJ7Y29uc3RydWN0b3IoKXtzdXBlcigkZSl9cGFyc2UoZSxyLG4scz0hMSxpKXtyZXR1cm4gc3VwZXIucGFyc2UoZSxyLG4scyxpKX19O3ZhciBXcj1udWxsLFNvPSgpPT4oV3J8fChXcj1uZXcgcnIpLFdyKTtmdW5jdGlvbiB6cih0LGU9e30pe2xldHtjYW5TZWxmQ2xvc2U6cj0hMSxhbGxvd0h0bUNvbXBvbmVudENsb3NpbmdUYWdzOm49ITEsaXNUYWdOYW1lQ2FzZVNlbnNpdGl2ZTpzPSExLGdldFRhZ0NvbnRlbnRUeXBlOmksdG9rZW5pemVBbmd1bGFyQmxvY2tzOmE9ITEsdG9rZW5pemVBbmd1bGFyTGV0RGVjbGFyYXRpb246bz0hMX09ZTtyZXR1cm4gU28oKS5wYXJzZSh0LFwiYW5ndWxhci1odG1sLXBhcnNlclwiLHt0b2tlbml6ZUV4cGFuc2lvbkZvcm1zOmEsaW50ZXJwb2xhdGlvbkNvbmZpZzp2b2lkIDAsY2FuU2VsZkNsb3NlOnIsYWxsb3dIdG1Db21wb25lbnRDbG9zaW5nVGFnczpuLHRva2VuaXplQmxvY2tzOmEsdG9rZW5pemVMZXQ6b30scyxpKX1mdW5jdGlvbiBfbyh0LGUpe2xldCByPW5ldyBTeW50YXhFcnJvcih0K1wiIChcIitlLmxvYy5zdGFydC5saW5lK1wiOlwiK2UubG9jLnN0YXJ0LmNvbHVtbitcIilcIik7cmV0dXJuIE9iamVjdC5hc3NpZ24ocixlKX12YXIgR3M9X287dmFyIEN0PTM7ZnVuY3Rpb24gRW8odCl7bGV0IGU9dC5zbGljZSgwLEN0KTtpZihlIT09XCItLS1cIiYmZSE9PVwiKysrXCIpcmV0dXJuO2xldCByPXQuaW5kZXhPZihgXG5gLEN0KTtpZihyPT09LTEpcmV0dXJuO2xldCBuPXQuc2xpY2UoQ3QscikudHJpbSgpLHM9dC5pbmRleE9mKGBcbiR7ZX1gLHIpLGk9bjtpZihpfHwoaT1lPT09XCIrKytcIj9cInRvbWxcIjpcInlhbWxcIikscz09PS0xJiZlPT09XCItLS1cIiYmaT09PVwieWFtbFwiJiYocz10LmluZGV4T2YoYFxuLi4uYCxyKSkscz09PS0xKXJldHVybjtsZXQgYT1zKzErQ3Qsbz10LmNoYXJBdChhKzEpO2lmKCEvXFxzPy91LnRlc3QobykpcmV0dXJuO2xldCB1PXQuc2xpY2UoMCxhKTtyZXR1cm57dHlwZTpcImZyb250LW1hdHRlclwiLGxhbmd1YWdlOmksZXhwbGljaXRMYW5ndWFnZTpuLHZhbHVlOnQuc2xpY2UocisxLHMpLHN0YXJ0RGVsaW1pdGVyOmUsZW5kRGVsaW1pdGVyOnUuc2xpY2UoLUN0KSxyYXc6dX19ZnVuY3Rpb24gQW8odCl7bGV0IGU9RW8odCk7aWYoIWUpcmV0dXJue2NvbnRlbnQ6dH07bGV0e3JhdzpyfT1lO3JldHVybntmcm9udE1hdHRlcjplLGNvbnRlbnQ6dyghMSxyLC9bXlxcbl0vZ3UsXCIgXCIpK3Quc2xpY2Uoci5sZW5ndGgpfX12YXIgWXM9QW87dmFyIG5yPXthdHRyczohMCxjaGlsZHJlbjohMCxjYXNlczohMCxleHByZXNzaW9uOiEwfSxqcz1uZXcgU2V0KFtcInBhcmVudFwiXSksc3I9Y2xhc3MgdHtjb25zdHJ1Y3RvcihlPXt9KXtmb3IobGV0IHIgb2YgbmV3IFNldChbLi4uanMsLi4uT2JqZWN0LmtleXMoZSldKSl0aGlzLnNldFByb3BlcnR5KHIsZVtyXSl9c2V0UHJvcGVydHkoZSxyKXtpZih0aGlzW2VdIT09cil7aWYoZSBpbiBuciYmKHI9ci5tYXAobj0+dGhpcy5jcmVhdGVDaGlsZChuKSkpLCFqcy5oYXMoZSkpe3RoaXNbZV09cjtyZXR1cm59T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZSx7dmFsdWU6cixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfX1tYXAoZSl7bGV0IHI7Zm9yKGxldCBuIGluIG5yKXtsZXQgcz10aGlzW25dO2lmKHMpe2xldCBpPURvKHMsYT0+YS5tYXAoZSkpO3IhPT1zJiYocnx8KHI9bmV3IHQoe3BhcmVudDp0aGlzLnBhcmVudH0pKSxyLnNldFByb3BlcnR5KG4saSkpfX1pZihyKWZvcihsZXQgbiBpbiB0aGlzKW4gaW4gbnJ8fChyW25dPXRoaXNbbl0pO3JldHVybiBlKHJ8fHRoaXMpfXdhbGsoZSl7Zm9yKGxldCByIGluIG5yKXtsZXQgbj10aGlzW3JdO2lmKG4pZm9yKGxldCBzPTA7czxuLmxlbmd0aDtzKyspbltzXS53YWxrKGUpfWUodGhpcyl9Y3JlYXRlQ2hpbGQoZSl7bGV0IHI9ZSBpbnN0YW5jZW9mIHQ/ZS5jbG9uZSgpOm5ldyB0KGUpO3JldHVybiByLnNldFByb3BlcnR5KFwicGFyZW50XCIsdGhpcykscn1pbnNlcnRDaGlsZEJlZm9yZShlLHIpe3RoaXMuY2hpbGRyZW4uc3BsaWNlKHRoaXMuY2hpbGRyZW4uaW5kZXhPZihlKSwwLHRoaXMuY3JlYXRlQ2hpbGQocikpfXJlbW92ZUNoaWxkKGUpe3RoaXMuY2hpbGRyZW4uc3BsaWNlKHRoaXMuY2hpbGRyZW4uaW5kZXhPZihlKSwxKX1yZXBsYWNlQ2hpbGQoZSxyKXt0aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4uaW5kZXhPZihlKV09dGhpcy5jcmVhdGVDaGlsZChyKX1jbG9uZSgpe3JldHVybiBuZXcgdCh0aGlzKX1nZXQgZmlyc3RDaGlsZCgpe3ZhciBlO3JldHVybihlPXRoaXMuY2hpbGRyZW4pPT1udWxsP3ZvaWQgMDplWzBdfWdldCBsYXN0Q2hpbGQoKXt2YXIgZTtyZXR1cm4oZT10aGlzLmNoaWxkcmVuKT09bnVsbD92b2lkIDA6ZVt0aGlzLmNoaWxkcmVuLmxlbmd0aC0xXX1nZXQgcHJldigpe3ZhciBlLHI7cmV0dXJuKHI9KGU9dGhpcy5wYXJlbnQpPT1udWxsP3ZvaWQgMDplLmNoaWxkcmVuKT09bnVsbD92b2lkIDA6clt0aGlzLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMpLTFdfWdldCBuZXh0KCl7dmFyIGUscjtyZXR1cm4ocj0oZT10aGlzLnBhcmVudCk9PW51bGw/dm9pZCAwOmUuY2hpbGRyZW4pPT1udWxsP3ZvaWQgMDpyW3RoaXMucGFyZW50LmNoaWxkcmVuLmluZGV4T2YodGhpcykrMV19Z2V0IHJhd05hbWUoKXtyZXR1cm4gdGhpcy5oYXNFeHBsaWNpdE5hbWVzcGFjZT90aGlzLmZ1bGxOYW1lOnRoaXMubmFtZX1nZXQgZnVsbE5hbWUoKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2U/dGhpcy5uYW1lc3BhY2UrXCI6XCIrdGhpcy5uYW1lOnRoaXMubmFtZX1nZXQgYXR0ck1hcCgpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXModGhpcy5hdHRycy5tYXAoZT0+W2UuZnVsbE5hbWUsZS52YWx1ZV0pKX19O2Z1bmN0aW9uIERvKHQsZSl7bGV0IHI9dC5tYXAoZSk7cmV0dXJuIHIuc29tZSgobixzKT0+biE9PXRbc10pP3I6dH12YXIgdm89W3tyZWdleDovXihcXFtpZihbXlxcXV0qKVxcXT4pKC4qPyk8IVxccypcXFtlbmRpZlxcXSQvc3UscGFyc2U6eW99LHtyZWdleDovXlxcW2lmKFteXFxdXSopXFxdPjwhJC91LHBhcnNlOndvfSx7cmVnZXg6L148IVxccypcXFtlbmRpZlxcXSQvdSxwYXJzZTpib31dO2Z1bmN0aW9uIEtzKHQsZSl7aWYodC52YWx1ZSlmb3IobGV0e3JlZ2V4OnIscGFyc2U6bn1vZiB2byl7bGV0IHM9dC52YWx1ZS5tYXRjaChyKTtpZihzKXJldHVybiBuKHQsZSxzKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB5byh0LGUscil7bGV0WyxuLHMsaV09cixhPTQrbi5sZW5ndGgsbz10LnNvdXJjZVNwYW4uc3RhcnQubW92ZUJ5KGEpLHU9by5tb3ZlQnkoaS5sZW5ndGgpLFtwLGxdPSgoKT0+e3RyeXtyZXR1cm5bITAsZShpLG8pLmNoaWxkcmVuXX1jYXRjaHtyZXR1cm5bITEsW3t0eXBlOlwidGV4dFwiLHZhbHVlOmksc291cmNlU3BhbjpuZXcgaChvLHUpfV1dfX0pKCk7cmV0dXJue3R5cGU6XCJpZUNvbmRpdGlvbmFsQ29tbWVudFwiLGNvbXBsZXRlOnAsY2hpbGRyZW46bCxjb25kaXRpb246dyghMSxzLnRyaW0oKSwvXFxzKy9ndSxcIiBcIiksc291cmNlU3Bhbjp0LnNvdXJjZVNwYW4sc3RhcnRTb3VyY2VTcGFuOm5ldyBoKHQuc291cmNlU3Bhbi5zdGFydCxvKSxlbmRTb3VyY2VTcGFuOm5ldyBoKHUsdC5zb3VyY2VTcGFuLmVuZCl9fWZ1bmN0aW9uIHdvKHQsZSxyKXtsZXRbLG5dPXI7cmV0dXJue3R5cGU6XCJpZUNvbmRpdGlvbmFsU3RhcnRDb21tZW50XCIsY29uZGl0aW9uOncoITEsbi50cmltKCksL1xccysvZ3UsXCIgXCIpLHNvdXJjZVNwYW46dC5zb3VyY2VTcGFufX1mdW5jdGlvbiBibyh0KXtyZXR1cm57dHlwZTpcImllQ29uZGl0aW9uYWxFbmRDb21tZW50XCIsc291cmNlU3Bhbjp0LnNvdXJjZVNwYW59fXZhciBpcj1uZXcgTWFwKFtbXCIqXCIsbmV3IFNldChbXCJhY2Nlc3NrZXlcIixcImF1dG9jYXBpdGFsaXplXCIsXCJhdXRvZm9jdXNcIixcImNsYXNzXCIsXCJjb250ZW50ZWRpdGFibGVcIixcImRpclwiLFwiZHJhZ2dhYmxlXCIsXCJlbnRlcmtleWhpbnRcIixcImhpZGRlblwiLFwiaWRcIixcImluZXJ0XCIsXCJpbnB1dG1vZGVcIixcImlzXCIsXCJpdGVtaWRcIixcIml0ZW1wcm9wXCIsXCJpdGVtcmVmXCIsXCJpdGVtc2NvcGVcIixcIml0ZW10eXBlXCIsXCJsYW5nXCIsXCJub25jZVwiLFwicG9wb3ZlclwiLFwic2xvdFwiLFwic3BlbGxjaGVja1wiLFwic3R5bGVcIixcInRhYmluZGV4XCIsXCJ0aXRsZVwiLFwidHJhbnNsYXRlXCIsXCJ3cml0aW5nc3VnZ2VzdGlvbnNcIl0pXSxbXCJhXCIsbmV3IFNldChbXCJjaGFyc2V0XCIsXCJjb29yZHNcIixcImRvd25sb2FkXCIsXCJocmVmXCIsXCJocmVmbGFuZ1wiLFwibmFtZVwiLFwicGluZ1wiLFwicmVmZXJyZXJwb2xpY3lcIixcInJlbFwiLFwicmV2XCIsXCJzaGFwZVwiLFwidGFyZ2V0XCIsXCJ0eXBlXCJdKV0sW1wiYXBwbGV0XCIsbmV3IFNldChbXCJhbGlnblwiLFwiYWx0XCIsXCJhcmNoaXZlXCIsXCJjb2RlXCIsXCJjb2RlYmFzZVwiLFwiaGVpZ2h0XCIsXCJoc3BhY2VcIixcIm5hbWVcIixcIm9iamVjdFwiLFwidnNwYWNlXCIsXCJ3aWR0aFwiXSldLFtcImFyZWFcIixuZXcgU2V0KFtcImFsdFwiLFwiY29vcmRzXCIsXCJkb3dubG9hZFwiLFwiaHJlZlwiLFwiaHJlZmxhbmdcIixcIm5vaHJlZlwiLFwicGluZ1wiLFwicmVmZXJyZXJwb2xpY3lcIixcInJlbFwiLFwic2hhcGVcIixcInRhcmdldFwiLFwidHlwZVwiXSldLFtcImF1ZGlvXCIsbmV3IFNldChbXCJhdXRvcGxheVwiLFwiY29udHJvbHNcIixcImNyb3Nzb3JpZ2luXCIsXCJsb29wXCIsXCJtdXRlZFwiLFwicHJlbG9hZFwiLFwic3JjXCJdKV0sW1wiYmFzZVwiLG5ldyBTZXQoW1wiaHJlZlwiLFwidGFyZ2V0XCJdKV0sW1wiYmFzZWZvbnRcIixuZXcgU2V0KFtcImNvbG9yXCIsXCJmYWNlXCIsXCJzaXplXCJdKV0sW1wiYmxvY2txdW90ZVwiLG5ldyBTZXQoW1wiY2l0ZVwiXSldLFtcImJvZHlcIixuZXcgU2V0KFtcImFsaW5rXCIsXCJiYWNrZ3JvdW5kXCIsXCJiZ2NvbG9yXCIsXCJsaW5rXCIsXCJ0ZXh0XCIsXCJ2bGlua1wiXSldLFtcImJyXCIsbmV3IFNldChbXCJjbGVhclwiXSldLFtcImJ1dHRvblwiLG5ldyBTZXQoW1wiZGlzYWJsZWRcIixcImZvcm1cIixcImZvcm1hY3Rpb25cIixcImZvcm1lbmN0eXBlXCIsXCJmb3JtbWV0aG9kXCIsXCJmb3Jtbm92YWxpZGF0ZVwiLFwiZm9ybXRhcmdldFwiLFwibmFtZVwiLFwicG9wb3ZlcnRhcmdldFwiLFwicG9wb3ZlcnRhcmdldGFjdGlvblwiLFwidHlwZVwiLFwidmFsdWVcIl0pXSxbXCJjYW52YXNcIixuZXcgU2V0KFtcImhlaWdodFwiLFwid2lkdGhcIl0pXSxbXCJjYXB0aW9uXCIsbmV3IFNldChbXCJhbGlnblwiXSldLFtcImNvbFwiLG5ldyBTZXQoW1wiYWxpZ25cIixcImNoYXJcIixcImNoYXJvZmZcIixcInNwYW5cIixcInZhbGlnblwiLFwid2lkdGhcIl0pXSxbXCJjb2xncm91cFwiLG5ldyBTZXQoW1wiYWxpZ25cIixcImNoYXJcIixcImNoYXJvZmZcIixcInNwYW5cIixcInZhbGlnblwiLFwid2lkdGhcIl0pXSxbXCJkYXRhXCIsbmV3IFNldChbXCJ2YWx1ZVwiXSldLFtcImRlbFwiLG5ldyBTZXQoW1wiY2l0ZVwiLFwiZGF0ZXRpbWVcIl0pXSxbXCJkZXRhaWxzXCIsbmV3IFNldChbXCJuYW1lXCIsXCJvcGVuXCJdKV0sW1wiZGlhbG9nXCIsbmV3IFNldChbXCJvcGVuXCJdKV0sW1wiZGlyXCIsbmV3IFNldChbXCJjb21wYWN0XCJdKV0sW1wiZGl2XCIsbmV3IFNldChbXCJhbGlnblwiXSldLFtcImRsXCIsbmV3IFNldChbXCJjb21wYWN0XCJdKV0sW1wiZW1iZWRcIixuZXcgU2V0KFtcImhlaWdodFwiLFwic3JjXCIsXCJ0eXBlXCIsXCJ3aWR0aFwiXSldLFtcImZpZWxkc2V0XCIsbmV3IFNldChbXCJkaXNhYmxlZFwiLFwiZm9ybVwiLFwibmFtZVwiXSldLFtcImZvbnRcIixuZXcgU2V0KFtcImNvbG9yXCIsXCJmYWNlXCIsXCJzaXplXCJdKV0sW1wiZm9ybVwiLG5ldyBTZXQoW1wiYWNjZXB0XCIsXCJhY2NlcHQtY2hhcnNldFwiLFwiYWN0aW9uXCIsXCJhdXRvY29tcGxldGVcIixcImVuY3R5cGVcIixcIm1ldGhvZFwiLFwibmFtZVwiLFwibm92YWxpZGF0ZVwiLFwidGFyZ2V0XCJdKV0sW1wiZnJhbWVcIixuZXcgU2V0KFtcImZyYW1lYm9yZGVyXCIsXCJsb25nZGVzY1wiLFwibWFyZ2luaGVpZ2h0XCIsXCJtYXJnaW53aWR0aFwiLFwibmFtZVwiLFwibm9yZXNpemVcIixcInNjcm9sbGluZ1wiLFwic3JjXCJdKV0sW1wiZnJhbWVzZXRcIixuZXcgU2V0KFtcImNvbHNcIixcInJvd3NcIl0pXSxbXCJoMVwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoMlwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoM1wiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoNFwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoNVwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoNlwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoZWFkXCIsbmV3IFNldChbXCJwcm9maWxlXCJdKV0sW1wiaHJcIixuZXcgU2V0KFtcImFsaWduXCIsXCJub3NoYWRlXCIsXCJzaXplXCIsXCJ3aWR0aFwiXSldLFtcImh0bWxcIixuZXcgU2V0KFtcIm1hbmlmZXN0XCIsXCJ2ZXJzaW9uXCJdKV0sW1wiaWZyYW1lXCIsbmV3IFNldChbXCJhbGlnblwiLFwiYWxsb3dcIixcImFsbG93ZnVsbHNjcmVlblwiLFwiYWxsb3dwYXltZW50cmVxdWVzdFwiLFwiYWxsb3d1c2VybWVkaWFcIixcImZyYW1lYm9yZGVyXCIsXCJoZWlnaHRcIixcImxvYWRpbmdcIixcImxvbmdkZXNjXCIsXCJtYXJnaW5oZWlnaHRcIixcIm1hcmdpbndpZHRoXCIsXCJuYW1lXCIsXCJyZWZlcnJlcnBvbGljeVwiLFwic2FuZGJveFwiLFwic2Nyb2xsaW5nXCIsXCJzcmNcIixcInNyY2RvY1wiLFwid2lkdGhcIl0pXSxbXCJpbWdcIixuZXcgU2V0KFtcImFsaWduXCIsXCJhbHRcIixcImJvcmRlclwiLFwiY3Jvc3NvcmlnaW5cIixcImRlY29kaW5nXCIsXCJmZXRjaHByaW9yaXR5XCIsXCJoZWlnaHRcIixcImhzcGFjZVwiLFwiaXNtYXBcIixcImxvYWRpbmdcIixcImxvbmdkZXNjXCIsXCJuYW1lXCIsXCJyZWZlcnJlcnBvbGljeVwiLFwic2l6ZXNcIixcInNyY1wiLFwic3Jjc2V0XCIsXCJ1c2VtYXBcIixcInZzcGFjZVwiLFwid2lkdGhcIl0pXSxbXCJpbnB1dFwiLG5ldyBTZXQoW1wiYWNjZXB0XCIsXCJhbGlnblwiLFwiYWx0XCIsXCJhdXRvY29tcGxldGVcIixcImNoZWNrZWRcIixcImRpcm5hbWVcIixcImRpc2FibGVkXCIsXCJmb3JtXCIsXCJmb3JtYWN0aW9uXCIsXCJmb3JtZW5jdHlwZVwiLFwiZm9ybW1ldGhvZFwiLFwiZm9ybW5vdmFsaWRhdGVcIixcImZvcm10YXJnZXRcIixcImhlaWdodFwiLFwiaXNtYXBcIixcImxpc3RcIixcIm1heFwiLFwibWF4bGVuZ3RoXCIsXCJtaW5cIixcIm1pbmxlbmd0aFwiLFwibXVsdGlwbGVcIixcIm5hbWVcIixcInBhdHRlcm5cIixcInBsYWNlaG9sZGVyXCIsXCJwb3BvdmVydGFyZ2V0XCIsXCJwb3BvdmVydGFyZ2V0YWN0aW9uXCIsXCJyZWFkb25seVwiLFwicmVxdWlyZWRcIixcInNpemVcIixcInNyY1wiLFwic3RlcFwiLFwidHlwZVwiLFwidXNlbWFwXCIsXCJ2YWx1ZVwiLFwid2lkdGhcIl0pXSxbXCJpbnNcIixuZXcgU2V0KFtcImNpdGVcIixcImRhdGV0aW1lXCJdKV0sW1wiaXNpbmRleFwiLG5ldyBTZXQoW1wicHJvbXB0XCJdKV0sW1wibGFiZWxcIixuZXcgU2V0KFtcImZvclwiLFwiZm9ybVwiXSldLFtcImxlZ2VuZFwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJsaVwiLG5ldyBTZXQoW1widHlwZVwiLFwidmFsdWVcIl0pXSxbXCJsaW5rXCIsbmV3IFNldChbXCJhc1wiLFwiYmxvY2tpbmdcIixcImNoYXJzZXRcIixcImNvbG9yXCIsXCJjcm9zc29yaWdpblwiLFwiZGlzYWJsZWRcIixcImZldGNocHJpb3JpdHlcIixcImhyZWZcIixcImhyZWZsYW5nXCIsXCJpbWFnZXNpemVzXCIsXCJpbWFnZXNyY3NldFwiLFwiaW50ZWdyaXR5XCIsXCJtZWRpYVwiLFwicmVmZXJyZXJwb2xpY3lcIixcInJlbFwiLFwicmV2XCIsXCJzaXplc1wiLFwidGFyZ2V0XCIsXCJ0eXBlXCJdKV0sW1wibWFwXCIsbmV3IFNldChbXCJuYW1lXCJdKV0sW1wibWVudVwiLG5ldyBTZXQoW1wiY29tcGFjdFwiXSldLFtcIm1ldGFcIixuZXcgU2V0KFtcImNoYXJzZXRcIixcImNvbnRlbnRcIixcImh0dHAtZXF1aXZcIixcIm1lZGlhXCIsXCJuYW1lXCIsXCJzY2hlbWVcIl0pXSxbXCJtZXRlclwiLG5ldyBTZXQoW1wiaGlnaFwiLFwibG93XCIsXCJtYXhcIixcIm1pblwiLFwib3B0aW11bVwiLFwidmFsdWVcIl0pXSxbXCJvYmplY3RcIixuZXcgU2V0KFtcImFsaWduXCIsXCJhcmNoaXZlXCIsXCJib3JkZXJcIixcImNsYXNzaWRcIixcImNvZGViYXNlXCIsXCJjb2RldHlwZVwiLFwiZGF0YVwiLFwiZGVjbGFyZVwiLFwiZm9ybVwiLFwiaGVpZ2h0XCIsXCJoc3BhY2VcIixcIm5hbWVcIixcInN0YW5kYnlcIixcInR5cGVcIixcInR5cGVtdXN0bWF0Y2hcIixcInVzZW1hcFwiLFwidnNwYWNlXCIsXCJ3aWR0aFwiXSldLFtcIm9sXCIsbmV3IFNldChbXCJjb21wYWN0XCIsXCJyZXZlcnNlZFwiLFwic3RhcnRcIixcInR5cGVcIl0pXSxbXCJvcHRncm91cFwiLG5ldyBTZXQoW1wiZGlzYWJsZWRcIixcImxhYmVsXCJdKV0sW1wib3B0aW9uXCIsbmV3IFNldChbXCJkaXNhYmxlZFwiLFwibGFiZWxcIixcInNlbGVjdGVkXCIsXCJ2YWx1ZVwiXSldLFtcIm91dHB1dFwiLG5ldyBTZXQoW1wiZm9yXCIsXCJmb3JtXCIsXCJuYW1lXCJdKV0sW1wicFwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJwYXJhbVwiLG5ldyBTZXQoW1wibmFtZVwiLFwidHlwZVwiLFwidmFsdWVcIixcInZhbHVldHlwZVwiXSldLFtcInByZVwiLG5ldyBTZXQoW1wid2lkdGhcIl0pXSxbXCJwcm9ncmVzc1wiLG5ldyBTZXQoW1wibWF4XCIsXCJ2YWx1ZVwiXSldLFtcInFcIixuZXcgU2V0KFtcImNpdGVcIl0pXSxbXCJzY3JpcHRcIixuZXcgU2V0KFtcImFzeW5jXCIsXCJibG9ja2luZ1wiLFwiY2hhcnNldFwiLFwiY3Jvc3NvcmlnaW5cIixcImRlZmVyXCIsXCJmZXRjaHByaW9yaXR5XCIsXCJpbnRlZ3JpdHlcIixcImxhbmd1YWdlXCIsXCJub21vZHVsZVwiLFwicmVmZXJyZXJwb2xpY3lcIixcInNyY1wiLFwidHlwZVwiXSldLFtcInNlbGVjdFwiLG5ldyBTZXQoW1wiYXV0b2NvbXBsZXRlXCIsXCJkaXNhYmxlZFwiLFwiZm9ybVwiLFwibXVsdGlwbGVcIixcIm5hbWVcIixcInJlcXVpcmVkXCIsXCJzaXplXCJdKV0sW1wic2xvdFwiLG5ldyBTZXQoW1wibmFtZVwiXSldLFtcInNvdXJjZVwiLG5ldyBTZXQoW1wiaGVpZ2h0XCIsXCJtZWRpYVwiLFwic2l6ZXNcIixcInNyY1wiLFwic3Jjc2V0XCIsXCJ0eXBlXCIsXCJ3aWR0aFwiXSldLFtcInN0eWxlXCIsbmV3IFNldChbXCJibG9ja2luZ1wiLFwibWVkaWFcIixcInR5cGVcIl0pXSxbXCJ0YWJsZVwiLG5ldyBTZXQoW1wiYWxpZ25cIixcImJnY29sb3JcIixcImJvcmRlclwiLFwiY2VsbHBhZGRpbmdcIixcImNlbGxzcGFjaW5nXCIsXCJmcmFtZVwiLFwicnVsZXNcIixcInN1bW1hcnlcIixcIndpZHRoXCJdKV0sW1widGJvZHlcIixuZXcgU2V0KFtcImFsaWduXCIsXCJjaGFyXCIsXCJjaGFyb2ZmXCIsXCJ2YWxpZ25cIl0pXSxbXCJ0ZFwiLG5ldyBTZXQoW1wiYWJiclwiLFwiYWxpZ25cIixcImF4aXNcIixcImJnY29sb3JcIixcImNoYXJcIixcImNoYXJvZmZcIixcImNvbHNwYW5cIixcImhlYWRlcnNcIixcImhlaWdodFwiLFwibm93cmFwXCIsXCJyb3dzcGFuXCIsXCJzY29wZVwiLFwidmFsaWduXCIsXCJ3aWR0aFwiXSldLFtcInRlbXBsYXRlXCIsbmV3IFNldChbXCJzaGFkb3dyb290Y2xvbmFibGVcIixcInNoYWRvd3Jvb3RkZWxlZ2F0ZXNmb2N1c1wiLFwic2hhZG93cm9vdG1vZGVcIl0pXSxbXCJ0ZXh0YXJlYVwiLG5ldyBTZXQoW1wiYXV0b2NvbXBsZXRlXCIsXCJjb2xzXCIsXCJkaXJuYW1lXCIsXCJkaXNhYmxlZFwiLFwiZm9ybVwiLFwibWF4bGVuZ3RoXCIsXCJtaW5sZW5ndGhcIixcIm5hbWVcIixcInBsYWNlaG9sZGVyXCIsXCJyZWFkb25seVwiLFwicmVxdWlyZWRcIixcInJvd3NcIixcIndyYXBcIl0pXSxbXCJ0Zm9vdFwiLG5ldyBTZXQoW1wiYWxpZ25cIixcImNoYXJcIixcImNoYXJvZmZcIixcInZhbGlnblwiXSldLFtcInRoXCIsbmV3IFNldChbXCJhYmJyXCIsXCJhbGlnblwiLFwiYXhpc1wiLFwiYmdjb2xvclwiLFwiY2hhclwiLFwiY2hhcm9mZlwiLFwiY29sc3BhblwiLFwiaGVhZGVyc1wiLFwiaGVpZ2h0XCIsXCJub3dyYXBcIixcInJvd3NwYW5cIixcInNjb3BlXCIsXCJ2YWxpZ25cIixcIndpZHRoXCJdKV0sW1widGhlYWRcIixuZXcgU2V0KFtcImFsaWduXCIsXCJjaGFyXCIsXCJjaGFyb2ZmXCIsXCJ2YWxpZ25cIl0pXSxbXCJ0aW1lXCIsbmV3IFNldChbXCJkYXRldGltZVwiXSldLFtcInRyXCIsbmV3IFNldChbXCJhbGlnblwiLFwiYmdjb2xvclwiLFwiY2hhclwiLFwiY2hhcm9mZlwiLFwidmFsaWduXCJdKV0sW1widHJhY2tcIixuZXcgU2V0KFtcImRlZmF1bHRcIixcImtpbmRcIixcImxhYmVsXCIsXCJzcmNcIixcInNyY2xhbmdcIl0pXSxbXCJ1bFwiLG5ldyBTZXQoW1wiY29tcGFjdFwiLFwidHlwZVwiXSldLFtcInZpZGVvXCIsbmV3IFNldChbXCJhdXRvcGxheVwiLFwiY29udHJvbHNcIixcImNyb3Nzb3JpZ2luXCIsXCJoZWlnaHRcIixcImxvb3BcIixcIm11dGVkXCIsXCJwbGF5c2lubGluZVwiLFwicG9zdGVyXCIsXCJwcmVsb2FkXCIsXCJzcmNcIixcIndpZHRoXCJdKV1dKTt2YXIgUXM9bmV3IFNldChbXCJhXCIsXCJhYmJyXCIsXCJhY3JvbnltXCIsXCJhZGRyZXNzXCIsXCJhcHBsZXRcIixcImFyZWFcIixcImFydGljbGVcIixcImFzaWRlXCIsXCJhdWRpb1wiLFwiYlwiLFwiYmFzZVwiLFwiYmFzZWZvbnRcIixcImJkaVwiLFwiYmRvXCIsXCJiZ3NvdW5kXCIsXCJiaWdcIixcImJsaW5rXCIsXCJibG9ja3F1b3RlXCIsXCJib2R5XCIsXCJiclwiLFwiYnV0dG9uXCIsXCJjYW52YXNcIixcImNhcHRpb25cIixcImNlbnRlclwiLFwiY2l0ZVwiLFwiY29kZVwiLFwiY29sXCIsXCJjb2xncm91cFwiLFwiY29tbWFuZFwiLFwiY29udGVudFwiLFwiZGF0YVwiLFwiZGF0YWxpc3RcIixcImRkXCIsXCJkZWxcIixcImRldGFpbHNcIixcImRmblwiLFwiZGlhbG9nXCIsXCJkaXJcIixcImRpdlwiLFwiZGxcIixcImR0XCIsXCJlbGVtZW50XCIsXCJlbVwiLFwiZW1iZWRcIixcImZpZWxkc2V0XCIsXCJmaWdjYXB0aW9uXCIsXCJmaWd1cmVcIixcImZvbnRcIixcImZvb3RlclwiLFwiZm9ybVwiLFwiZnJhbWVcIixcImZyYW1lc2V0XCIsXCJoMVwiLFwiaDJcIixcImgzXCIsXCJoNFwiLFwiaDVcIixcImg2XCIsXCJoZWFkXCIsXCJoZWFkZXJcIixcImhncm91cFwiLFwiaHJcIixcImh0bWxcIixcImlcIixcImlmcmFtZVwiLFwiaW1hZ2VcIixcImltZ1wiLFwiaW5wdXRcIixcImluc1wiLFwiaXNpbmRleFwiLFwia2JkXCIsXCJrZXlnZW5cIixcImxhYmVsXCIsXCJsZWdlbmRcIixcImxpXCIsXCJsaW5rXCIsXCJsaXN0aW5nXCIsXCJtYWluXCIsXCJtYXBcIixcIm1hcmtcIixcIm1hcnF1ZWVcIixcIm1hdGhcIixcIm1lbnVcIixcIm1lbnVpdGVtXCIsXCJtZXRhXCIsXCJtZXRlclwiLFwibXVsdGljb2xcIixcIm5hdlwiLFwibmV4dGlkXCIsXCJub2JyXCIsXCJub2VtYmVkXCIsXCJub2ZyYW1lc1wiLFwibm9zY3JpcHRcIixcIm9iamVjdFwiLFwib2xcIixcIm9wdGdyb3VwXCIsXCJvcHRpb25cIixcIm91dHB1dFwiLFwicFwiLFwicGFyYW1cIixcInBpY3R1cmVcIixcInBsYWludGV4dFwiLFwicHJlXCIsXCJwcm9ncmVzc1wiLFwicVwiLFwicmJcIixcInJiY1wiLFwicnBcIixcInJ0XCIsXCJydGNcIixcInJ1YnlcIixcInNcIixcInNhbXBcIixcInNjcmlwdFwiLFwic2VhcmNoXCIsXCJzZWN0aW9uXCIsXCJzZWxlY3RcIixcInNoYWRvd1wiLFwic2xvdFwiLFwic21hbGxcIixcInNvdXJjZVwiLFwic3BhY2VyXCIsXCJzcGFuXCIsXCJzdHJpa2VcIixcInN0cm9uZ1wiLFwic3R5bGVcIixcInN1YlwiLFwic3VtbWFyeVwiLFwic3VwXCIsXCJzdmdcIixcInRhYmxlXCIsXCJ0Ym9keVwiLFwidGRcIixcInRlbXBsYXRlXCIsXCJ0ZXh0YXJlYVwiLFwidGZvb3RcIixcInRoXCIsXCJ0aGVhZFwiLFwidGltZVwiLFwidGl0bGVcIixcInRyXCIsXCJ0cmFja1wiLFwidHRcIixcInVcIixcInVsXCIsXCJ2YXJcIixcInZpZGVvXCIsXCJ3YnJcIixcInhtcFwiXSk7ZnVuY3Rpb24gVG8odCl7aWYodC50eXBlPT09XCJibG9ja1wiKXtpZih0Lm5hbWU9dyghMSx0Lm5hbWUudG9Mb3dlckNhc2UoKSwvXFxzKy9ndSxcIiBcIikudHJpbSgpLHQudHlwZT1cImFuZ3VsYXJDb250cm9sRmxvd0Jsb2NrXCIsIUZlKHQucGFyYW1ldGVycykpe2RlbGV0ZSB0LnBhcmFtZXRlcnM7cmV0dXJufWZvcihsZXQgZSBvZiB0LnBhcmFtZXRlcnMpZS50eXBlPVwiYW5ndWxhckNvbnRyb2xGbG93QmxvY2tQYXJhbWV0ZXJcIjt0LnBhcmFtZXRlcnM9e3R5cGU6XCJhbmd1bGFyQ29udHJvbEZsb3dCbG9ja1BhcmFtZXRlcnNcIixjaGlsZHJlbjp0LnBhcmFtZXRlcnMsc291cmNlU3BhbjpuZXcgaCh0LnBhcmFtZXRlcnNbMF0uc291cmNlU3Bhbi5zdGFydCxzZSghMSx0LnBhcmFtZXRlcnMsLTEpLnNvdXJjZVNwYW4uZW5kKX19fWZ1bmN0aW9uIHhvKHQpe3QudHlwZT09PVwibGV0RGVjbGFyYXRpb25cIiYmKHQudHlwZT1cImFuZ3VsYXJMZXREZWNsYXJhdGlvblwiLHQuaWQ9dC5uYW1lLHQuaW5pdD17dHlwZTpcImFuZ3VsYXJMZXREZWNsYXJhdGlvbkluaXRpYWxpemVyXCIsc291cmNlU3BhbjpuZXcgaCh0LnZhbHVlU3Bhbi5zdGFydCx0LnZhbHVlU3Bhbi5lbmQpLHZhbHVlOnQudmFsdWV9LGRlbGV0ZSB0Lm5hbWUsZGVsZXRlIHQudmFsdWUpfWZ1bmN0aW9uIGtvKHQpeyh0LnR5cGU9PT1cInBsdXJhbFwifHx0LnR5cGU9PT1cInNlbGVjdFwiKSYmKHQuY2xhdXNlPXQudHlwZSx0LnR5cGU9XCJhbmd1bGFySWN1RXhwcmVzc2lvblwiKSx0LnR5cGU9PT1cImV4cGFuc2lvbkNhc2VcIiYmKHQudHlwZT1cImFuZ3VsYXJJY3VDYXNlXCIpfWZ1bmN0aW9uIEpzKHQsZSxyKXtsZXR7bmFtZTpuLGNhblNlbGZDbG9zZTpzPSEwLG5vcm1hbGl6ZVRhZ05hbWU6aT0hMSxub3JtYWxpemVBdHRyaWJ1dGVOYW1lOmE9ITEsYWxsb3dIdG1Db21wb25lbnRDbG9zaW5nVGFnczpvPSExLGlzVGFnTmFtZUNhc2VTZW5zaXRpdmU6dT0hMSxzaG91bGRQYXJzZUFzUmF3VGV4dDpwfT1lLHtyb290Tm9kZXM6bCxlcnJvcnM6Zn09enIodCx7Y2FuU2VsZkNsb3NlOnMsYWxsb3dIdG1Db21wb25lbnRDbG9zaW5nVGFnczpvLGlzVGFnTmFtZUNhc2VTZW5zaXRpdmU6dSxnZXRUYWdDb250ZW50VHlwZTpwPyguLi5jKT0+cCguLi5jKT9JLlJBV19URVhUOnZvaWQgMDp2b2lkIDAsdG9rZW5pemVBbmd1bGFyQmxvY2tzOm49PT1cImFuZ3VsYXJcIj8hMDp2b2lkIDAsdG9rZW5pemVBbmd1bGFyTGV0RGVjbGFyYXRpb246bj09PVwiYW5ndWxhclwiPyEwOnZvaWQgMH0pO2lmKG49PT1cInZ1ZVwiKXtpZihsLnNvbWUoeD0+eC50eXBlPT09XCJkb2NUeXBlXCImJngudmFsdWU9PT1cImh0bWxcInx8eC50eXBlPT09XCJlbGVtZW50XCImJngubmFtZS50b0xvd2VyQ2FzZSgpPT09XCJodG1sXCIpKXJldHVybiBKcyh0LGVpLHIpO2xldCBnLHk9KCk9Pmc/PyhnPXpyKHQse2NhblNlbGZDbG9zZTpzLGFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3M6byxpc1RhZ05hbWVDYXNlU2Vuc2l0aXZlOnV9KSksTT14PT55KCkucm9vdE5vZGVzLmZpbmQoKHtzdGFydFNvdXJjZVNwYW46Vn0pPT5WJiZWLnN0YXJ0Lm9mZnNldD09PXguc3RhcnRTb3VyY2VTcGFuLnN0YXJ0Lm9mZnNldCk/P3g7Zm9yKGxldFt4LFZdb2YgbC5lbnRyaWVzKCkpe2xldHtlbmRTb3VyY2VTcGFuOmpyLHN0YXJ0U291cmNlU3Bhbjp0aX09VjtpZihqcj09PW51bGwpZj15KCkuZXJyb3JzLGxbeF09TShWKTtlbHNlIGlmKEJvKFYscikpe2xldCBLcj15KCkuZXJyb3JzLmZpbmQoUXI9PlFyLnNwYW4uc3RhcnQub2Zmc2V0PnRpLnN0YXJ0Lm9mZnNldCYmUXIuc3Bhbi5zdGFydC5vZmZzZXQ8anIuZW5kLm9mZnNldCk7S3ImJlhzKEtyKSxsW3hdPU0oVil9fX1mLmxlbmd0aD4wJiZYcyhmWzBdKTtsZXQgZD1jPT57bGV0IGc9Yy5uYW1lLnN0YXJ0c1dpdGgoXCI6XCIpP2MubmFtZS5zbGljZSgxKS5zcGxpdChcIjpcIilbMF06bnVsbCx5PWMubmFtZVNwYW4udG9TdHJpbmcoKSxNPWchPT1udWxsJiZ5LnN0YXJ0c1dpdGgoYCR7Z306YCkseD1NP3kuc2xpY2UoZy5sZW5ndGgrMSk6eTtjLm5hbWU9eCxjLm5hbWVzcGFjZT1nLGMuaGFzRXhwbGljaXROYW1lc3BhY2U9TX0sQz1jPT57c3dpdGNoKGMudHlwZSl7Y2FzZVwiZWxlbWVudFwiOmQoYyk7Zm9yKGxldCBnIG9mIGMuYXR0cnMpZChnKSxnLnZhbHVlU3Bhbj8oZy52YWx1ZT1nLnZhbHVlU3Bhbi50b1N0cmluZygpLC9bXCInXS91LnRlc3QoZy52YWx1ZVswXSkmJihnLnZhbHVlPWcudmFsdWUuc2xpY2UoMSwtMSkpKTpnLnZhbHVlPW51bGw7YnJlYWs7Y2FzZVwiY29tbWVudFwiOmMudmFsdWU9Yy5zb3VyY2VTcGFuLnRvU3RyaW5nKCkuc2xpY2UoNCwtMyk7YnJlYWs7Y2FzZVwidGV4dFwiOmMudmFsdWU9Yy5zb3VyY2VTcGFuLnRvU3RyaW5nKCk7YnJlYWt9fSxBPShjLGcpPT57bGV0IHk9Yy50b0xvd2VyQ2FzZSgpO3JldHVybiBnKHkpP3k6Y30sRD1jPT57aWYoYy50eXBlPT09XCJlbGVtZW50XCImJihpJiYoIWMubmFtZXNwYWNlfHxjLm5hbWVzcGFjZT09PWMudGFnRGVmaW5pdGlvbi5pbXBsaWNpdE5hbWVzcGFjZVByZWZpeHx8cGUoYykpJiYoYy5uYW1lPUEoYy5uYW1lLGc9PlFzLmhhcyhnKSkpLGEpKWZvcihsZXQgZyBvZiBjLmF0dHJzKWcubmFtZXNwYWNlfHwoZy5uYW1lPUEoZy5uYW1lLHk9PmlyLmhhcyhjLm5hbWUpJiYoaXIuZ2V0KFwiKlwiKS5oYXMoeSl8fGlyLmdldChjLm5hbWUpLmhhcyh5KSkpKX0sUj1jPT57Yy5zb3VyY2VTcGFuJiZjLmVuZFNvdXJjZVNwYW4mJihjLnNvdXJjZVNwYW49bmV3IGgoYy5zb3VyY2VTcGFuLnN0YXJ0LGMuZW5kU291cmNlU3Bhbi5lbmQpKX0sRj1jPT57aWYoYy50eXBlPT09XCJlbGVtZW50XCIpe2xldCBnPSRlKHU/Yy5uYW1lOmMubmFtZS50b0xvd2VyQ2FzZSgpKTshYy5uYW1lc3BhY2V8fGMubmFtZXNwYWNlPT09Zy5pbXBsaWNpdE5hbWVzcGFjZVByZWZpeHx8cGUoYyk/Yy50YWdEZWZpbml0aW9uPWc6Yy50YWdEZWZpbml0aW9uPSRlKFwiXCIpfX07cmV0dXJuIGp0KG5ldyBjbGFzcyBleHRlbmRzIGh0e3Zpc2l0RXhwYW5zaW9uQ2FzZShjLGcpe249PT1cImFuZ3VsYXJcIiYmdGhpcy52aXNpdENoaWxkcmVuKGcseT0+e3koYy5leHByZXNzaW9uKX0pfXZpc2l0KGMpe0MoYyksRihjKSxEKGMpLFIoYyl9fSxsKSxsfWZ1bmN0aW9uIEJvKHQsZSl7dmFyIG47aWYodC50eXBlIT09XCJlbGVtZW50XCJ8fHQubmFtZSE9PVwidGVtcGxhdGVcIilyZXR1cm4hMTtsZXQgcj0obj10LmF0dHJzLmZpbmQocz0+cy5uYW1lPT09XCJsYW5nXCIpKT09bnVsbD92b2lkIDA6bi52YWx1ZTtyZXR1cm4hcnx8QmUoZSx7bGFuZ3VhZ2U6cn0pPT09XCJodG1sXCJ9ZnVuY3Rpb24gWHModCl7bGV0e21zZzplLHNwYW46e3N0YXJ0OnIsZW5kOm59fT10O3Rocm93IEdzKGUse2xvYzp7c3RhcnQ6e2xpbmU6ci5saW5lKzEsY29sdW1uOnIuY29sKzF9LGVuZDp7bGluZTpuLmxpbmUrMSxjb2x1bW46bi5jb2wrMX19LGNhdXNlOnR9KX1mdW5jdGlvbiBacyh0LGUscj17fSxuPSEwKXtsZXR7ZnJvbnRNYXR0ZXI6cyxjb250ZW50Oml9PW4/WXModCk6e2Zyb250TWF0dGVyOm51bGwsY29udGVudDp0fSxhPW5ldyBFZSh0LHIuZmlsZXBhdGgpLG89bmV3IGllKGEsMCwwLDApLHU9by5tb3ZlQnkodC5sZW5ndGgpLHA9e3R5cGU6XCJyb290XCIsc291cmNlU3BhbjpuZXcgaChvLHUpLGNoaWxkcmVuOkpzKGksZSxyKX07aWYocyl7bGV0IGQ9bmV3IGllKGEsMCwwLDApLEM9ZC5tb3ZlQnkocy5yYXcubGVuZ3RoKTtzLnNvdXJjZVNwYW49bmV3IGgoZCxDKSxwLmNoaWxkcmVuLnVuc2hpZnQocyl9bGV0IGw9bmV3IHNyKHApLGY9KGQsQyk9PntsZXR7b2Zmc2V0OkF9PUMsRD13KCExLHQuc2xpY2UoMCxBKSwvW15cXG5cXHJdL2d1LFwiIFwiKSxGPVpzKEQrZCxlLHIsITEpO0Yuc291cmNlU3Bhbj1uZXcgaChDLHNlKCExLEYuY2hpbGRyZW4sLTEpLnNvdXJjZVNwYW4uZW5kKTtsZXQgYz1GLmNoaWxkcmVuWzBdO3JldHVybiBjLmxlbmd0aD09PUE/Ri5jaGlsZHJlbi5zaGlmdCgpOihjLnNvdXJjZVNwYW49bmV3IGgoYy5zb3VyY2VTcGFuLnN0YXJ0Lm1vdmVCeShBKSxjLnNvdXJjZVNwYW4uZW5kKSxjLnZhbHVlPWMudmFsdWUuc2xpY2UoQSkpLEZ9O3JldHVybiBsLndhbGsoZD0+e2lmKGQudHlwZT09PVwiY29tbWVudFwiKXtsZXQgQz1LcyhkLGYpO0MmJmQucGFyZW50LnJlcGxhY2VDaGlsZChkLEMpfVRvKGQpLHhvKGQpLGtvKGQpfSksbH1mdW5jdGlvbiBhcih0KXtyZXR1cm57cGFyc2U6KGUscik9PlpzKGUsdCxyKSxoYXNQcmFnbWE6YXMsYXN0Rm9ybWF0OlwiaHRtbFwiLGxvY1N0YXJ0OlgsbG9jRW5kOkp9fXZhciBlaT17bmFtZTpcImh0bWxcIixub3JtYWxpemVUYWdOYW1lOiEwLG5vcm1hbGl6ZUF0dHJpYnV0ZU5hbWU6ITAsYWxsb3dIdG1Db21wb25lbnRDbG9zaW5nVGFnczohMH0sTG89YXIoZWkpLEZvPWFyKHtuYW1lOlwiYW5ndWxhclwifSksTm89YXIoe25hbWU6XCJ2dWVcIixpc1RhZ05hbWVDYXNlU2Vuc2l0aXZlOiEwLHNob3VsZFBhcnNlQXNSYXdUZXh0KHQsZSxyLG4pe3JldHVybiB0LnRvTG93ZXJDYXNlKCkhPT1cImh0bWxcIiYmIXImJih0IT09XCJ0ZW1wbGF0ZVwifHxuLnNvbWUoKHtuYW1lOnMsdmFsdWU6aX0pPT5zPT09XCJsYW5nXCImJmkhPT1cImh0bWxcIiYmaSE9PVwiXCImJmkhPT12b2lkIDApKX19KSxQbz1hcih7bmFtZTpcImx3Y1wiLGNhblNlbGZDbG9zZTohMX0pO3ZhciBJbz17aHRtbDpFc307dmFyIE5oPVlyO2V4cG9ydHtOaCBhcyBkZWZhdWx0LEFzIGFzIGxhbmd1YWdlcyx2cyBhcyBvcHRpb25zLEdyIGFzIHBhcnNlcnMsSW8gYXMgcHJpbnRlcnN9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/html.mjs\n");
/***/ }),
/***/ "(action-browser)/./node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/standalone.mjs":
/*!********************************************************************************!*\
!*** ./node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/standalone.mjs ***!
\********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __debug: () => (/* binding */ Do),\n/* harmony export */ check: () => (/* binding */ so),\n/* harmony export */ \"default\": () => (/* binding */ lc),\n/* harmony export */ doc: () => (/* binding */ ar),\n/* harmony export */ format: () => (/* binding */ gu),\n/* harmony export */ formatWithCursor: () => (/* binding */ Cu),\n/* harmony export */ getSupportInfo: () => (/* binding */ ao),\n/* harmony export */ util: () => (/* binding */ lr),\n/* harmony export */ version: () => (/* binding */ lu)\n/* harmony export */ });\nvar yu=Object.create;var vt=Object.defineProperty;var Au=Object.getOwnPropertyDescriptor;var vu=Object.getOwnPropertyNames;var Bu=Object.getPrototypeOf,wu=Object.prototype.hasOwnProperty;var fr=e=>{throw TypeError(e)};var dr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Bt=(e,t)=>{for(var r in t)vt(e,r,{get:t[r],enumerable:!0})},_u=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let u of vu(t))!wu.call(e,u)&&u!==r&&vt(e,u,{get:()=>t[u],enumerable:!(n=Au(t,u))||n.enumerable});return e};var Me=(e,t,r)=>(r=e!=null?yu(Bu(e)):{},_u(t||!e||!e.__esModule?vt(r,\"default\",{value:e,enumerable:!0}):r,e));var xu=(e,t,r)=>t.has(e)||fr(\"Cannot \"+r);var pr=(e,t,r)=>t.has(e)?fr(\"Cannot add the same private member more than once\"):t instanceof WeakSet?t.add(e):t.set(e,r);var pe=(e,t,r)=>(xu(e,t,\"access private method\"),r);var st=dr((na,Fn)=>{\"use strict\";var pn=new Proxy(String,{get:()=>pn});Fn.exports=pn});var Wn=dr(nr=>{\"use strict\";Object.defineProperty(nr,\"__esModule\",{value:!0});function Bi(){return new Proxy({},{get:()=>e=>e})}var Hn=/\\r\\n|[\\n\\r\\u2028\\u2029]/;function wi(e,t,r){let n=Object.assign({column:0,line:-1},e.start),u=Object.assign({},n,e.end),{linesAbove:i=2,linesBelow:o=3}=r||{},s=n.line,a=n.column,D=u.line,l=u.column,p=Math.max(s-(i+1),0),f=Math.min(t.length,D+o);s===-1&&(p=0),D===-1&&(f=t.length);let d=D-s,c={};if(d)for(let F=0;F<=d;F++){let m=F+s;if(!a)c[m]=!0;else if(F===0){let h=t[m-1].length;c[m]=[a,h-a+1]}else if(F===d)c[m]=[0,l];else{let h=t[m-F].length;c[m]=[0,h]}}else a===l?a?c[s]=[a,0]:c[s]=!0:c[s]=[a,l-a];return{start:p,end:f,markerLines:c}}function _i(e,t,r={}){let u=Bi(!1),i=e.split(Hn),{start:o,end:s,markerLines:a}=wi(t,i,r),D=t.start&&typeof t.start.column==\"number\",l=String(s).length,f=e.split(Hn,s).slice(o,s).map((d,c)=>{let F=o+1+c,h=` ${` ${F}`.slice(-l)} |`,C=a[F],v=!a[F+1];if(C){let E=\"\";if(Array.isArray(C)){let g=d.slice(0,Math.max(C[0]-1,0)).replace(/[^\\t]/g,\" \"),j=C[1]||1;E=[`\n `,u.gutter(h.replace(/\\d/g,\" \")),\" \",g,u.marker(\"^\").repeat(j)].join(\"\"),v&&r.message&&(E+=\" \"+u.message(r.message))}return[u.marker(\">\"),u.gutter(h),d.length>0?` ${d}`:\"\",E].join(\"\")}else return` ${u.gutter(h)}${d.length>0?` ${d}`:\"\"}`}).join(`\n`);return r.message&&!D&&(f=`${\" \".repeat(l+1)}${r.message}\n${f}`),f}nr.codeFrameColumns=_i});var cr={};Bt(cr,{__debug:()=>Do,check:()=>so,doc:()=>ar,format:()=>gu,formatWithCursor:()=>Cu,getSupportInfo:()=>ao,util:()=>lr,version:()=>lu});var bu=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},ne=bu;function M(){}M.prototype={diff:function(t,r){var n,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=u.callback;typeof u==\"function\"&&(i=u,u={});var o=this;function s(E){return E=o.postProcess(E,u),i?(setTimeout(function(){i(E)},0),!0):E}t=this.castInput(t,u),r=this.castInput(r,u),t=this.removeEmpty(this.tokenize(t,u)),r=this.removeEmpty(this.tokenize(r,u));var a=r.length,D=t.length,l=1,p=a+D;u.maxEditLength!=null&&(p=Math.min(p,u.maxEditLength));var f=(n=u.timeout)!==null&&n!==void 0?n:1/0,d=Date.now()+f,c=[{oldPos:-1,lastComponent:void 0}],F=this.extractCommon(c[0],r,t,0,u);if(c[0].oldPos+1>=D&&F+1>=a)return s(Fr(o,c[0].lastComponent,r,t,o.useLongestToken));var m=-1/0,h=1/0;function C(){for(var E=Math.max(m,-l);E<=Math.min(h,l);E+=2){var g=void 0,j=c[E-1],b=c[E+1];j&&(c[E-1]=void 0);var X=!1;if(b){var ae=b.oldPos-E;X=b&&0<=ae&&ae<a}var $e=j&&j.oldPos+1<D;if(!X&&!$e){c[E]=void 0;continue}if(!$e||X&&j.oldPos<b.oldPos?g=o.addToPath(b,!0,!1,0,u):g=o.addToPath(j,!1,!0,1,u),F=o.extractCommon(g,r,t,E,u),g.oldPos+1>=D&&F+1>=a)return s(Fr(o,g.lastComponent,r,t,o.useLongestToken));c[E]=g,g.oldPos+1>=D&&(h=Math.min(h,E-1)),F+1>=a&&(m=Math.max(m,E+1))}l++}if(i)(function E(){setTimeout(function(){if(l>p||Date.now()>d)return i();C()||E()},0)})();else for(;l<=p&&Date.now()<=d;){var v=C();if(v)return v}},addToPath:function(t,r,n,u,i){var o=t.lastComponent;return o&&!i.oneChangePerToken&&o.added===r&&o.removed===n?{oldPos:t.oldPos+u,lastComponent:{count:o.count+1,added:r,removed:n,previousComponent:o.previousComponent}}:{oldPos:t.oldPos+u,lastComponent:{count:1,added:r,removed:n,previousComponent:o}}},extractCommon:function(t,r,n,u,i){for(var o=r.length,s=n.length,a=t.oldPos,D=a-u,l=0;D+1<o&&a+1<s&&this.equals(n[a+1],r[D+1],i);)D++,a++,l++,i.oneChangePerToken&&(t.lastComponent={count:1,previousComponent:t.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(t.lastComponent={count:l,previousComponent:t.lastComponent,added:!1,removed:!1}),t.oldPos=a,D},equals:function(t,r,n){return n.comparator?n.comparator(t,r):t===r||n.ignoreCase&&t.toLowerCase()===r.toLowerCase()},removeEmpty:function(t){for(var r=[],n=0;n<t.length;n++)t[n]&&r.push(t[n]);return r},castInput:function(t){return t},tokenize:function(t){return Array.from(t)},join:function(t){return t.join(\"\")},postProcess:function(t){return t}};function Fr(e,t,r,n,u){for(var i=[],o;t;)i.push(t),o=t.previousComponent,delete t.previousComponent,t=o;i.reverse();for(var s=0,a=i.length,D=0,l=0;s<a;s++){var p=i[s];if(p.removed)p.value=e.join(n.slice(l,l+p.count)),l+=p.count;else{if(!p.added&&u){var f=r.slice(D,D+p.count);f=f.map(function(d,c){var F=n[l+c];return F.length>d.length?F:d}),p.value=e.join(f)}else p.value=e.join(r.slice(D,D+p.count));D+=p.count,p.added||(l+=p.count)}}return i}var Fo=new M;function mr(e,t){var r;for(r=0;r<e.length&&r<t.length;r++)if(e[r]!=t[r])return e.slice(0,r);return e.slice(0,r)}function hr(e,t){var r;if(!e||!t||e[e.length-1]!=t[t.length-1])return\"\";for(r=0;r<e.length&&r<t.length;r++)if(e[e.length-(r+1)]!=t[t.length-(r+1)])return e.slice(-r);return e.slice(-r)}function wt(e,t,r){if(e.slice(0,t.length)!=t)throw Error(\"string \".concat(JSON.stringify(e),\" doesn't start with prefix \").concat(JSON.stringify(t),\"; this is a bug\"));return r+e.slice(t.length)}function _t(e,t,r){if(!t)return e+r;if(e.slice(-t.length)!=t)throw Error(\"string \".concat(JSON.stringify(e),\" doesn't end with suffix \").concat(JSON.stringify(t),\"; this is a bug\"));return e.slice(0,-t.length)+r}function we(e,t){return wt(e,t,\"\")}function Ue(e,t){return _t(e,t,\"\")}function Er(e,t){return t.slice(0,Nu(e,t))}function Nu(e,t){var r=0;e.length>t.length&&(r=e.length-t.length);var n=t.length;e.length<t.length&&(n=e.length);var u=Array(n),i=0;u[0]=0;for(var o=1;o<n;o++){for(t[o]==t[i]?u[o]=u[i]:u[o]=i;i>0&&t[o]!=t[i];)i=u[i];t[o]==t[i]&&i++}i=0;for(var s=r;s<e.length;s++){for(;i>0&&e[s]!=t[i];)i=u[i];e[s]==t[i]&&i++}return i}var Ve=\"a-zA-Z0-9_\\\\u{C0}-\\\\u{FF}\\\\u{D8}-\\\\u{F6}\\\\u{F8}-\\\\u{2C6}\\\\u{2C8}-\\\\u{2D7}\\\\u{2DE}-\\\\u{2FF}\\\\u{1E00}-\\\\u{1EFF}\",Ou=new RegExp(\"[\".concat(Ve,\"]+|\\\\s+|[^\").concat(Ve,\"]\"),\"ug\"),Ge=new M;Ge.equals=function(e,t,r){return r.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()};Ge.tokenize=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(t.intlSegmenter){if(t.intlSegmenter.resolvedOptions().granularity!=\"word\")throw new Error('The segmenter passed must have a granularity of \"word\"');r=Array.from(t.intlSegmenter.segment(e),function(i){return i.segment})}else r=e.match(Ou)||[];var n=[],u=null;return r.forEach(function(i){/\\s/.test(i)?u==null?n.push(i):n.push(n.pop()+i):/\\s/.test(u)?n[n.length-1]==u?n.push(n.pop()+i):n.push(u+i):n.push(i),u=i}),n};Ge.join=function(e){return e.map(function(t,r){return r==0?t:t.replace(/^\\s+/,\"\")}).join(\"\")};Ge.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var r=null,n=null,u=null;return e.forEach(function(i){i.added?n=i:i.removed?u=i:((n||u)&&Cr(r,u,n,i),r=i,n=null,u=null)}),(n||u)&&Cr(r,u,n,null),e};function Cr(e,t,r,n){if(t&&r){var u=t.value.match(/^\\s*/)[0],i=t.value.match(/\\s*$/)[0],o=r.value.match(/^\\s*/)[0],s=r.value.match(/\\s*$/)[0];if(e){var a=mr(u,o);e.value=_t(e.value,o,a),t.value=we(t.value,a),r.value=we(r.value,a)}if(n){var D=hr(i,s);n.value=wt(n.value,s,D),t.value=Ue(t.value,D),r.value=Ue(r.value,D)}}else if(r)e&&(r.value=r.value.replace(/^\\s*/,\"\")),n&&(n.value=n.value.replace(/^\\s*/,\"\"));else if(e&&n){var l=n.value.match(/^\\s*/)[0],p=t.value.match(/^\\s*/)[0],f=t.value.match(/\\s*$/)[0],d=mr(l,p);t.value=we(t.value,d);var c=hr(we(l,d),f);t.value=Ue(t.value,c),n.value=wt(n.value,l,c),e.value=_t(e.value,l,l.slice(0,l.length-c.length))}else if(n){var F=n.value.match(/^\\s*/)[0],m=t.value.match(/\\s*$/)[0],h=Er(m,F);t.value=Ue(t.value,h)}else if(e){var C=e.value.match(/\\s*$/)[0],v=t.value.match(/^\\s*/)[0],E=Er(C,v);t.value=we(t.value,E)}}var Su=new M;Su.tokenize=function(e){var t=new RegExp(\"(\\\\r?\\\\n)|[\".concat(Ve,\"]+|[^\\\\S\\\\n\\\\r]+|[^\").concat(Ve,\"]\"),\"ug\");return e.match(t)||[]};var Nt=new M;Nt.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\\r\\n/g,`\n`));var r=[],n=e.split(/(\\n|\\r\\n)/);n[n.length-1]||n.pop();for(var u=0;u<n.length;u++){var i=n[u];u%2&&!t.newlineIsToken?r[r.length-1]+=i:r.push(i)}return r};Nt.equals=function(e,t,r){return r.ignoreWhitespace?((!r.newlineIsToken||!e.includes(`\n`))&&(e=e.trim()),(!r.newlineIsToken||!t.includes(`\n`))&&(t=t.trim())):r.ignoreNewlineAtEof&&!r.newlineIsToken&&(e.endsWith(`\n`)&&(e=e.slice(0,-1)),t.endsWith(`\n`)&&(t=t.slice(0,-1))),M.prototype.equals.call(this,e,t,r)};var Tu=new M;Tu.tokenize=function(e){return e.split(/(\\S.+?[.!?])(?=\\s+|$)/)};var ku=new M;ku.tokenize=function(e){return e.split(/([{}:;,]|\\s+)/)};function xt(e){\"@babel/helpers - typeof\";return xt=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol==\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},xt(e)}var _e=new M;_e.useLongestToken=!0;_e.tokenize=Nt.tokenize;_e.castInput=function(e,t){var r=t.undefinedReplacement,n=t.stringifyReplacer,u=n===void 0?function(i,o){return typeof o>\"u\"?r:o}:n;return typeof e==\"string\"?e:JSON.stringify(bt(e,null,null,u),u,\" \")};_e.equals=function(e,t,r){return M.prototype.equals.call(_e,e.replace(/,([\\r\\n])/g,\"$1\"),t.replace(/,([\\r\\n])/g,\"$1\"),r)};function bt(e,t,r,n,u){t=t||[],r=r||[],n&&(e=n(u,e));var i;for(i=0;i<t.length;i+=1)if(t[i]===e)return r[i];var o;if(Object.prototype.toString.call(e)===\"[object Array]\"){for(t.push(e),o=new Array(e.length),r.push(o),i=0;i<e.length;i+=1)o[i]=bt(e[i],t,r,n,u);return t.pop(),r.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),xt(e)===\"object\"&&e!==null){t.push(e),o={},r.push(o);var s=[],a;for(a in e)Object.prototype.hasOwnProperty.call(e,a)&&s.push(a);for(s.sort(),i=0;i<s.length;i+=1)a=s[i],o[a]=bt(e[a],t,r,n,a);t.pop(),r.pop()}else o=e;return o}var ze=new M;ze.tokenize=function(e){return e.slice()};ze.join=ze.removeEmpty=function(e){return e};function gr(e,t,r){return ze.diff(e,t,r)}function yr(e){let t=e.indexOf(\"\\r\");return t!==-1?e.charAt(t+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function xe(e){switch(e){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function Ot(e,t){let r;switch(t){case`\n`:r=/\\n/gu;break;case\"\\r\":r=/\\r/gu;break;case`\\r\n`:r=/\\r\\n/gu;break;default:throw new Error(`Unexpected \"eol\" ${JSON.stringify(t)}.`)}let n=e.match(r);return n?n.length:0}function Ar(e){return ne(!1,e,/\\r\\n?/gu,`\n`)}var U=\"string\",H=\"array\",V=\"cursor\",T=\"indent\",k=\"align\",L=\"trim\",B=\"group\",N=\"fill\",w=\"if-break\",P=\"indent-if-break\",I=\"line-suffix\",R=\"line-suffix-boundary\",A=\"line\",O=\"label\",_=\"break-parent\",Ke=new Set([V,T,k,L,B,N,w,P,I,R,A,O,_]);function Lu(e){if(typeof e==\"string\")return U;if(Array.isArray(e))return H;if(!e)return;let{type:t}=e;if(Ke.has(t))return t}var z=Lu;var Pu=e=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(e);function Iu(e){let t=e===null?\"null\":typeof e;if(t!==\"string\"&&t!==\"object\")return`Unexpected doc '${t}', \nExpected it to be 'string' or 'object'.`;if(z(e))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(e);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=Pu([...Ke].map(u=>`'${u}'`));return`Unexpected doc.type '${e.type}'.\nExpected it to be ${n}.`}var St=class extends Error{name=\"InvalidDocError\";constructor(t){super(Iu(t)),this.doc=t}},Q=St;var vr={};function Ru(e,t,r,n){let u=[e];for(;u.length>0;){let i=u.pop();if(i===vr){r(u.pop());continue}r&&u.push(i,vr);let o=z(i);if(!o)throw new Q(i);if((t==null?void 0:t(i))!==!1)switch(o){case H:case N:{let s=o===H?i:i.parts;for(let a=s.length,D=a-1;D>=0;--D)u.push(s[D]);break}case w:u.push(i.flatContents,i.breakContents);break;case B:if(n&&i.expandedStates)for(let s=i.expandedStates.length,a=s-1;a>=0;--a)u.push(i.expandedStates[a]);else u.push(i.contents);break;case k:case T:case P:case O:case I:u.push(i.contents);break;case U:case V:case L:case R:case A:case _:break;default:throw new Q(i)}}}var be=Ru;var Br=()=>{},G=Br,Je=Br;function le(e){return G(e),{type:T,contents:e}}function De(e,t){return G(t),{type:k,contents:t,n:e}}function Tt(e,t={}){return G(e),Je(t.expandedStates,!0),{type:B,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function wr(e){return De(Number.NEGATIVE_INFINITY,e)}function _r(e){return De({type:\"root\"},e)}function xr(e){return De(-1,e)}function br(e,t){return Tt(e[0],{...t,expandedStates:e})}function Nr(e){return Je(e),{type:N,parts:e}}function Or(e,t=\"\",r={}){return G(e),t!==\"\"&&G(t),{type:w,breakContents:e,flatContents:t,groupId:r.groupId}}function Sr(e,t){return G(e),{type:P,contents:e,groupId:t.groupId,negate:t.negate}}function Ne(e){return G(e),{type:I,contents:e}}var Tr={type:R},Fe={type:_},kr={type:L},Oe={type:A,hard:!0},kt={type:A,hard:!0,literal:!0},qe={type:A},Lr={type:A,soft:!0},K=[Oe,Fe],Xe=[kt,Fe],Z={type:V};function Se(e,t){G(e),Je(t);let r=[];for(let n=0;n<t.length;n++)n!==0&&r.push(e),r.push(t[n]);return r}function Qe(e,t,r){G(e);let n=e;if(t>0){for(let u=0;u<Math.floor(t/r);++u)n=le(n);n=De(t%r,n),n=De(Number.NEGATIVE_INFINITY,n)}return n}function Pr(e,t){return G(t),e?{type:O,label:e,contents:t}:t}function ee(e){var t;if(!e)return\"\";if(Array.isArray(e)){let r=[];for(let n of e)if(Array.isArray(n))r.push(...ee(n));else{let u=ee(n);u!==\"\"&&r.push(u)}return r}return e.type===w?{...e,breakContents:ee(e.breakContents),flatContents:ee(e.flatContents)}:e.type===B?{...e,contents:ee(e.contents),expandedStates:(t=e.expandedStates)==null?void 0:t.map(ee)}:e.type===N?{type:\"fill\",parts:e.parts.map(ee)}:e.contents?{...e,contents:ee(e.contents)}:e}function Ir(e){let t=Object.create(null),r=new Set;return n(ee(e));function n(i,o,s){var a,D;if(typeof i==\"string\")return JSON.stringify(i);if(Array.isArray(i)){let l=i.map(n).filter(Boolean);return l.length===1?l[0]:`[${l.join(\", \")}]`}if(i.type===A){let l=((a=s==null?void 0:s[o+1])==null?void 0:a.type)===_;return i.literal?l?\"literalline\":\"literallineWithoutBreakParent\":i.hard?l?\"hardline\":\"hardlineWithoutBreakParent\":i.soft?\"softline\":\"line\"}if(i.type===_)return((D=s==null?void 0:s[o-1])==null?void 0:D.type)===A&&s[o-1].hard?void 0:\"breakParent\";if(i.type===L)return\"trim\";if(i.type===T)return\"indent(\"+n(i.contents)+\")\";if(i.type===k)return i.n===Number.NEGATIVE_INFINITY?\"dedentToRoot(\"+n(i.contents)+\")\":i.n<0?\"dedent(\"+n(i.contents)+\")\":i.n.type===\"root\"?\"markAsRoot(\"+n(i.contents)+\")\":\"align(\"+JSON.stringify(i.n)+\", \"+n(i.contents)+\")\";if(i.type===w)return\"ifBreak(\"+n(i.breakContents)+(i.flatContents?\", \"+n(i.flatContents):\"\")+(i.groupId?(i.flatContents?\"\":', \"\"')+`, { groupId: ${u(i.groupId)} }`:\"\")+\")\";if(i.type===P){let l=[];i.negate&&l.push(\"negate: true\"),i.groupId&&l.push(`groupId: ${u(i.groupId)}`);let p=l.length>0?`, { ${l.join(\", \")} }`:\"\";return`indentIfBreak(${n(i.contents)}${p})`}if(i.type===B){let l=[];i.break&&i.break!==\"propagated\"&&l.push(\"shouldBreak: true\"),i.id&&l.push(`id: ${u(i.id)}`);let p=l.length>0?`, { ${l.join(\", \")} }`:\"\";return i.expandedStates?`conditionalGroup([${i.expandedStates.map(f=>n(f)).join(\",\")}]${p})`:`group(${n(i.contents)}${p})`}if(i.type===N)return`fill([${i.parts.map(l=>n(l)).join(\", \")}])`;if(i.type===I)return\"lineSuffix(\"+n(i.contents)+\")\";if(i.type===R)return\"lineSuffixBoundary\";if(i.type===O)return`label(${JSON.stringify(i.label)}, ${n(i.contents)})`;throw new Error(\"Unknown doc type \"+i.type)}function u(i){if(typeof i!=\"symbol\")return JSON.stringify(String(i));if(i in t)return t[i];let o=i.description||\"symbol\";for(let s=0;;s++){let a=o+(s>0?` #${s}`:\"\");if(!r.has(a))return r.add(a),t[i]=`Symbol.for(${JSON.stringify(a)})`}}}var Yu=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t==\"string\"?t[r<0?t.length+r:r]:t.at(r)},y=Yu;var Rr=()=>/[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;function Yr(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function jr(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var Hr=e=>!(Yr(e)||jr(e));var ju=/[^\\x20-\\x7F]/u;function Hu(e){if(!e)return 0;if(!ju.test(e))return e.length;e=e.replace(Rr(),\" \");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=Hr(n)?1:2)}return t}var Te=Hu;function Le(e,t){if(typeof e==\"string\")return t(e);let r=new Map;return n(e);function n(i){if(r.has(i))return r.get(i);let o=u(i);return r.set(i,o),o}function u(i){switch(z(i)){case H:return t(i.map(n));case N:return t({...i,parts:i.parts.map(n)});case w:return t({...i,breakContents:n(i.breakContents),flatContents:n(i.flatContents)});case B:{let{expandedStates:o,contents:s}=i;return o?(o=o.map(n),s=o[0]):s=n(s),t({...i,contents:s,expandedStates:o})}case k:case T:case P:case O:case I:return t({...i,contents:n(i.contents)});case U:case V:case L:case R:case A:case _:return t(i);default:throw new Q(i)}}}function Ze(e,t,r){let n=r,u=!1;function i(o){if(u)return!1;let s=t(o);s!==void 0&&(u=!0,n=s)}return be(e,i),n}function Wu(e){if(e.type===B&&e.break||e.type===A&&e.hard||e.type===_)return!0}function Mr(e){return Ze(e,Wu,!1)}function Wr(e){if(e.length>0){let t=y(!1,e,-1);!t.expandedStates&&!t.break&&(t.break=\"propagated\")}return null}function Ur(e){let t=new Set,r=[];function n(i){if(i.type===_&&Wr(r),i.type===B){if(r.push(i),t.has(i))return!1;t.add(i)}}function u(i){i.type===B&&r.pop().break&&Wr(r)}be(e,n,u,!0)}function $u(e){return e.type===A&&!e.hard?e.soft?\"\":\" \":e.type===w?e.flatContents:e}function Vr(e){return Le(e,$u)}function $r(e){for(e=[...e];e.length>=2&&y(!1,e,-2).type===A&&y(!1,e,-1).type===_;)e.length-=2;if(e.length>0){let t=ke(y(!1,e,-1));e[e.length-1]=t}return e}function ke(e){switch(z(e)){case T:case P:case B:case I:case O:{let t=ke(e.contents);return{...e,contents:t}}case w:return{...e,breakContents:ke(e.breakContents),flatContents:ke(e.flatContents)};case N:return{...e,parts:$r(e.parts)};case H:return $r(e);case U:return e.replace(/[\\n\\r]*$/u,\"\");case k:case V:case L:case R:case A:case _:break;default:throw new Q(e)}return e}function et(e){return ke(Uu(e))}function Mu(e){switch(z(e)){case N:if(e.parts.every(t=>t===\"\"))return\"\";break;case B:if(!e.contents&&!e.id&&!e.break&&!e.expandedStates)return\"\";if(e.contents.type===B&&e.contents.id===e.id&&e.contents.break===e.break&&e.contents.expandedStates===e.expandedStates)return e.contents;break;case k:case T:case P:case I:if(!e.contents)return\"\";break;case w:if(!e.flatContents&&!e.breakContents)return\"\";break;case H:{let t=[];for(let r of e){if(!r)continue;let[n,...u]=Array.isArray(r)?r:[r];typeof n==\"string\"&&typeof y(!1,t,-1)==\"string\"?t[t.length-1]+=n:t.push(n),t.push(...u)}return t.length===0?\"\":t.length===1?t[0]:t}case U:case V:case L:case R:case A:case O:case _:break;default:throw new Q(e)}return e}function Uu(e){return Le(e,t=>Mu(t))}function zr(e,t=Xe){return Le(e,r=>typeof r==\"string\"?Se(t,r.split(`\n`)):r)}function Vu(e){if(e.type===A)return!0}function Gr(e){return Ze(e,Vu,!1)}function me(e,t){return e.type===O?{...e,contents:t(e.contents)}:t(e)}var Y=Symbol(\"MODE_BREAK\"),J=Symbol(\"MODE_FLAT\"),he=Symbol(\"cursor\"),Lt=Symbol(\"DOC_FILL_PRINTED_LENGTH\");function Kr(){return{value:\"\",length:0,queue:[]}}function zu(e,t){return Pt(e,{type:\"indent\"},t)}function Gu(e,t,r){return t===Number.NEGATIVE_INFINITY?e.root||Kr():t<0?Pt(e,{type:\"dedent\"},r):t?t.type===\"root\"?{...e,root:e}:Pt(e,{type:typeof t==\"string\"?\"stringAlign\":\"numberAlign\",n:t},r):e}function Pt(e,t,r){let n=t.type===\"dedent\"?e.queue.slice(0,-1):[...e.queue,t],u=\"\",i=0,o=0,s=0;for(let c of n)switch(c.type){case\"indent\":l(),r.useTabs?a(1):D(r.tabWidth);break;case\"stringAlign\":l(),u+=c.n,i+=c.n.length;break;case\"numberAlign\":o+=1,s+=c.n;break;default:throw new Error(`Unexpected type '${c.type}'`)}return f(),{...e,value:u,length:i,queue:n};function a(c){u+=\"\t\".repeat(c),i+=r.tabWidth*c}function D(c){u+=\" \".repeat(c),i+=c}function l(){r.useTabs?p():f()}function p(){o>0&&a(o),d()}function f(){s>0&&D(s),d()}function d(){o=0,s=0}}function It(e){let t=0,r=0,n=e.length;e:for(;n--;){let u=e[n];if(u===he){r++;continue}for(let i=u.length-1;i>=0;i--){let o=u[i];if(o===\" \"||o===\"\t\")t++;else{e[n]=u.slice(0,i+1);break e}}}if(t>0||r>0)for(e.length=n+1;r-- >0;)e.push(he);return t}function tt(e,t,r,n,u,i){if(r===Number.POSITIVE_INFINITY)return!0;let o=t.length,s=[e],a=[];for(;r>=0;){if(s.length===0){if(o===0)return!0;s.push(t[--o]);continue}let{mode:D,doc:l}=s.pop(),p=z(l);switch(p){case U:a.push(l),r-=Te(l);break;case H:case N:{let f=p===H?l:l.parts,d=l[Lt]??0;for(let c=f.length-1;c>=d;c--)s.push({mode:D,doc:f[c]});break}case T:case k:case P:case O:s.push({mode:D,doc:l.contents});break;case L:r+=It(a);break;case B:{if(i&&l.break)return!1;let f=l.break?Y:D,d=l.expandedStates&&f===Y?y(!1,l.expandedStates,-1):l.contents;s.push({mode:f,doc:d});break}case w:{let d=(l.groupId?u[l.groupId]||J:D)===Y?l.breakContents:l.flatContents;d&&s.push({mode:D,doc:d});break}case A:if(D===Y||l.hard)return!0;l.soft||(a.push(\" \"),r--);break;case I:n=!0;break;case R:if(n)return!1;break}}return!1}function Ee(e,t){let r={},n=t.printWidth,u=xe(t.endOfLine),i=0,o=[{ind:Kr(),mode:Y,doc:e}],s=[],a=!1,D=[],l=0;for(Ur(e);o.length>0;){let{ind:f,mode:d,doc:c}=o.pop();switch(z(c)){case U:{let F=u!==`\n`?ne(!1,c,`\n`,u):c;s.push(F),o.length>0&&(i+=Te(F));break}case H:for(let F=c.length-1;F>=0;F--)o.push({ind:f,mode:d,doc:c[F]});break;case V:if(l>=2)throw new Error(\"There are too many 'cursor' in doc.\");s.push(he),l++;break;case T:o.push({ind:zu(f,t),mode:d,doc:c.contents});break;case k:o.push({ind:Gu(f,c.n,t),mode:d,doc:c.contents});break;case L:i-=It(s);break;case B:switch(d){case J:if(!a){o.push({ind:f,mode:c.break?Y:J,doc:c.contents});break}case Y:{a=!1;let F={ind:f,mode:J,doc:c.contents},m=n-i,h=D.length>0;if(!c.break&&tt(F,o,m,h,r))o.push(F);else if(c.expandedStates){let C=y(!1,c.expandedStates,-1);if(c.break){o.push({ind:f,mode:Y,doc:C});break}else for(let v=1;v<c.expandedStates.length+1;v++)if(v>=c.expandedStates.length){o.push({ind:f,mode:Y,doc:C});break}else{let E=c.expandedStates[v],g={ind:f,mode:J,doc:E};if(tt(g,o,m,h,r)){o.push(g);break}}}else o.push({ind:f,mode:Y,doc:c.contents});break}}c.id&&(r[c.id]=y(!1,o,-1).mode);break;case N:{let F=n-i,m=c[Lt]??0,{parts:h}=c,C=h.length-m;if(C===0)break;let v=h[m+0],E=h[m+1],g={ind:f,mode:J,doc:v},j={ind:f,mode:Y,doc:v},b=tt(g,[],F,D.length>0,r,!0);if(C===1){b?o.push(g):o.push(j);break}let X={ind:f,mode:J,doc:E},ae={ind:f,mode:Y,doc:E};if(C===2){b?o.push(X,g):o.push(ae,j);break}let $e=h[m+2],At={ind:f,mode:d,doc:{...c,[Lt]:m+2}};tt({ind:f,mode:J,doc:[v,E,$e]},[],F,D.length>0,r,!0)?o.push(At,X,g):b?o.push(At,ae,g):o.push(At,ae,j);break}case w:case P:{let F=c.groupId?r[c.groupId]:d;if(F===Y){let m=c.type===w?c.breakContents:c.negate?c.contents:le(c.contents);m&&o.push({ind:f,mode:d,doc:m})}if(F===J){let m=c.type===w?c.flatContents:c.negate?le(c.contents):c.contents;m&&o.push({ind:f,mode:d,doc:m})}break}case I:D.push({ind:f,mode:d,doc:c.contents});break;case R:D.length>0&&o.push({ind:f,mode:d,doc:Oe});break;case A:switch(d){case J:if(c.hard)a=!0;else{c.soft||(s.push(\" \"),i+=1);break}case Y:if(D.length>0){o.push({ind:f,mode:d,doc:c},...D.reverse()),D.length=0;break}c.literal?f.root?(s.push(u,f.root.value),i=f.root.length):(s.push(u),i=0):(i-=It(s),s.push(u+f.value),i=f.length);break}break;case O:o.push({ind:f,mode:d,doc:c.contents});break;case _:break;default:throw new Q(c)}o.length===0&&D.length>0&&(o.push(...D.reverse()),D.length=0)}let p=s.indexOf(he);if(p!==-1){let f=s.indexOf(he,p+1);if(f===-1)return{formatted:s.filter(m=>m!==he).join(\"\")};let d=s.slice(0,p).join(\"\"),c=s.slice(p+1,f).join(\"\"),F=s.slice(f+1).join(\"\");return{formatted:d+c+F,cursorNodeStart:d.length,cursorNodeText:c}}return{formatted:s.join(\"\")}}function Ku(e,t,r=0){let n=0;for(let u=r;u<e.length;++u)e[u]===\"\t\"?n=n+t-n%t:n++;return n}var Ce=Ku;var te,Yt,rt,Rt=class{constructor(t){pr(this,te);this.stack=[t]}get key(){let{stack:t,siblings:r}=this;return y(!1,t,r===null?-2:-4)??null}get index(){return this.siblings===null?null:y(!1,this.stack,-2)}get node(){return y(!1,this.stack,-1)}get parent(){return this.getNode(1)}get grandparent(){return this.getNode(2)}get isInArray(){return this.siblings!==null}get siblings(){let{stack:t}=this,r=y(!1,t,-3);return Array.isArray(r)?r:null}get next(){let{siblings:t}=this;return t===null?null:t[this.index+1]}get previous(){let{siblings:t}=this;return t===null?null:t[this.index-1]}get isFirst(){return this.index===0}get isLast(){let{siblings:t,index:r}=this;return t!==null&&r===t.length-1}get isRoot(){return this.stack.length===1}get root(){return this.stack[0]}get ancestors(){return[...pe(this,te,rt).call(this)]}getName(){let{stack:t}=this,{length:r}=t;return r>1?y(!1,t,-2):null}getValue(){return y(!1,this.stack,-1)}getNode(t=0){let r=pe(this,te,Yt).call(this,t);return r===-1?null:this.stack[r]}getParentNode(t=0){return this.getNode(t+1)}call(t,...r){let{stack:n}=this,{length:u}=n,i=y(!1,n,-1);for(let o of r)i=i[o],n.push(o,i);try{return t(this)}finally{n.length=u}}callParent(t,r=0){let n=pe(this,te,Yt).call(this,r+1),u=this.stack.splice(n+1);try{return t(this)}finally{this.stack.push(...u)}}each(t,...r){let{stack:n}=this,{length:u}=n,i=y(!1,n,-1);for(let o of r)i=i[o],n.push(o,i);try{for(let o=0;o<i.length;++o)n.push(o,i[o]),t(this,o,i),n.length-=2}finally{n.length=u}}map(t,...r){let n=[];return this.each((u,i,o)=>{n[i]=t(u,i,o)},...r),n}match(...t){let r=this.stack.length-1,n=null,u=this.stack[r--];for(let i of t){if(u===void 0)return!1;let o=null;if(typeof n==\"number\"&&(o=n,n=this.stack[r--],u=this.stack[r--]),i&&!i(u,n,o))return!1;n=this.stack[r--],u=this.stack[r--]}return!0}findAncestor(t){for(let r of pe(this,te,rt).call(this))if(t(r))return r}hasAncestor(t){for(let r of pe(this,te,rt).call(this))if(t(r))return!0;return!1}};te=new WeakSet,Yt=function(t){let{stack:r}=this;for(let n=r.length-1;n>=0;n-=2)if(!Array.isArray(r[n])&&--t<0)return n;return-1},rt=function*(){let{stack:t}=this;for(let r=t.length-3;r>=0;r-=2){let n=t[r];Array.isArray(n)||(yield n)}};var Jr=Rt;var qr=new Proxy(()=>{},{get:()=>qr}),Pe=qr;function Ju(e){return e!==null&&typeof e==\"object\"}var Xr=Ju;function*ge(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,u=i=>Xr(i)&&n(i);for(let i of r(e)){let o=e[i];if(Array.isArray(o))for(let s of o)u(s)&&(yield s);else u(o)&&(yield o)}}function*Qr(e,t){let r=[e];for(let n=0;n<r.length;n++){let u=r[n];for(let i of ge(u,t))yield i,r.push(i)}}function Zr(e,t){return ge(e,t).next().done}function ye(e){return(t,r,n)=>{let u=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:i}=t,o=r;for(;o>=0&&o<i;){let s=t.charAt(o);if(e instanceof RegExp){if(!e.test(s))return o}else if(!e.includes(s))return o;u?o--:o++}return o===-1||o===i?o:!1}}var en=ye(/\\s/u),S=ye(\" \t\"),nt=ye(\",; \t\"),ut=ye(/[^\\n\\r]/u);function qu(e,t,r){let n=!!(r!=null&&r.backwards);if(t===!1)return!1;let u=e.charAt(t);if(n){if(e.charAt(t-1)===\"\\r\"&&u===`\n`)return t-2;if(u===`\n`||u===\"\\r\"||u===\"\\u2028\"||u===\"\\u2029\")return t-1}else{if(u===\"\\r\"&&e.charAt(t+1)===`\n`)return t+2;if(u===`\n`||u===\"\\r\"||u===\"\\u2028\"||u===\"\\u2029\")return t+1}return t}var W=qu;function Xu(e,t,r={}){let n=S(e,r.backwards?t-1:t,r),u=W(e,n,r);return n!==u}var $=Xu;function Qu(e){return Array.isArray(e)&&e.length>0}var jt=Qu;var tn=new Set([\"tokens\",\"comments\",\"parent\",\"enclosingNode\",\"precedingNode\",\"followingNode\"]),Zu=e=>Object.keys(e).filter(t=>!tn.has(t));function ei(e){return e?t=>e(t,tn):Zu}var q=ei;function ti(e){let t=e.type||e.kind||\"(unknown type)\",r=String(e.name||e.id&&(typeof e.id==\"object\"?e.id.name:e.id)||e.key&&(typeof e.key==\"object\"?e.key.name:e.key)||e.value&&(typeof e.value==\"object\"?\"\":String(e.value))||e.operator||\"\");return r.length>20&&(r=r.slice(0,19)+\"\\u2026\"),t+(r?\" \"+r:\"\")}function Ht(e,t){(e.comments??(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=ti(e)}function ue(e,t){t.leading=!0,t.trailing=!1,Ht(e,t)}function re(e,t,r){t.leading=!1,t.trailing=!1,r&&(t.marker=r),Ht(e,t)}function ie(e,t){t.leading=!1,t.trailing=!0,Ht(e,t)}var Wt=new WeakMap;function it(e,t){if(Wt.has(e))return Wt.get(e);let{printer:{getCommentChildNodes:r,canAttachComment:n,getVisitorKeys:u},locStart:i,locEnd:o}=t;if(!n)return[];let s=((r==null?void 0:r(e,t))??[...ge(e,{getVisitorKeys:q(u)})]).flatMap(a=>n(a)?[a]:it(a,t));return s.sort((a,D)=>i(a)-i(D)||o(a)-o(D)),Wt.set(e,s),s}function nn(e,t,r,n){let{locStart:u,locEnd:i}=r,o=u(t),s=i(t),a=it(e,r),D,l,p=0,f=a.length;for(;p<f;){let d=p+f>>1,c=a[d],F=u(c),m=i(c);if(F<=o&&s<=m)return nn(c,t,r,c);if(m<=o){D=c,p=d+1;continue}if(s<=F){l=c,f=d;continue}throw new Error(\"Comment location overlaps with node location\")}if((n==null?void 0:n.type)===\"TemplateLiteral\"){let{quasis:d}=n,c=Mt(d,t,r);D&&Mt(d,D,r)!==c&&(D=null),l&&Mt(d,l,r)!==c&&(l=null)}return{enclosingNode:n,precedingNode:D,followingNode:l}}var $t=()=>!1;function un(e,t){let{comments:r}=e;if(delete e.comments,!jt(r)||!t.printer.canAttachComment)return;let n=[],{locStart:u,locEnd:i,printer:{experimentalFeatures:{avoidAstMutation:o=!1}={},handleComments:s={}},originalText:a}=t,{ownLine:D=$t,endOfLine:l=$t,remaining:p=$t}=s,f=r.map((d,c)=>({...nn(e,d,t),comment:d,text:a,options:t,ast:e,isLastComment:r.length-1===c}));for(let[d,c]of f.entries()){let{comment:F,precedingNode:m,enclosingNode:h,followingNode:C,text:v,options:E,ast:g,isLastComment:j}=c;if(E.parser===\"json\"||E.parser===\"json5\"||E.parser===\"jsonc\"||E.parser===\"__js_expression\"||E.parser===\"__ts_expression\"||E.parser===\"__vue_expression\"||E.parser===\"__vue_ts_expression\"){if(u(F)-u(g)<=0){ue(g,F);continue}if(i(F)-i(g)>=0){ie(g,F);continue}}let b;if(o?b=[c]:(F.enclosingNode=h,F.precedingNode=m,F.followingNode=C,b=[F,v,E,g,j]),ri(v,E,f,d))F.placement=\"ownLine\",D(...b)||(C?ue(C,F):m?ie(m,F):h?re(h,F):re(g,F));else if(ni(v,E,f,d))F.placement=\"endOfLine\",l(...b)||(m?ie(m,F):C?ue(C,F):h?re(h,F):re(g,F));else if(F.placement=\"remaining\",!p(...b))if(m&&C){let X=n.length;X>0&&n[X-1].followingNode!==C&&rn(n,E),n.push(c)}else m?ie(m,F):C?ue(C,F):h?re(h,F):re(g,F)}if(rn(n,t),!o)for(let d of r)delete d.precedingNode,delete d.enclosingNode,delete d.followingNode}var on=e=>!/[\\S\\n\\u2028\\u2029]/u.test(e);function ri(e,t,r,n){let{comment:u,precedingNode:i}=r[n],{locStart:o,locEnd:s}=t,a=o(u);if(i)for(let D=n-1;D>=0;D--){let{comment:l,precedingNode:p}=r[D];if(p!==i||!on(e.slice(s(l),a)))break;a=o(l)}return $(e,a,{backwards:!0})}function ni(e,t,r,n){let{comment:u,followingNode:i}=r[n],{locStart:o,locEnd:s}=t,a=s(u);if(i)for(let D=n+1;D<r.length;D++){let{comment:l,followingNode:p}=r[D];if(p!==i||!on(e.slice(a,o(l))))break;a=s(l)}return $(e,a)}function rn(e,t){var s,a;let r=e.length;if(r===0)return;let{precedingNode:n,followingNode:u}=e[0],i=t.locStart(u),o;for(o=r;o>0;--o){let{comment:D,precedingNode:l,followingNode:p}=e[o-1];Pe.strictEqual(l,n),Pe.strictEqual(p,u);let f=t.originalText.slice(t.locEnd(D),i);if(((a=(s=t.printer).isGap)==null?void 0:a.call(s,f,t))??/^[\\s(]*$/u.test(f))i=t.locStart(D);else break}for(let[D,{comment:l}]of e.entries())D<o?ie(n,l):ue(u,l);for(let D of[n,u])D.comments&&D.comments.length>1&&D.comments.sort((l,p)=>t.locStart(l)-t.locStart(p));e.length=0}function Mt(e,t,r){let n=r.locStart(t)-1;for(let u=1;u<e.length;++u)if(n<r.locStart(e[u]))return u-1;return 0}function ui(e,t){let r=t-1;r=S(e,r,{backwards:!0}),r=W(e,r,{backwards:!0}),r=S(e,r,{backwards:!0});let n=W(e,r,{backwards:!0});return r!==n}var Ie=ui;function sn(e,t){let r=e.node;return r.printed=!0,t.printer.printComment(e,t)}function ii(e,t){var l;let r=e.node,n=[sn(e,t)],{printer:u,originalText:i,locStart:o,locEnd:s}=t;if((l=u.isBlockComment)==null?void 0:l.call(u,r)){let p=$(i,s(r))?$(i,o(r),{backwards:!0})?K:qe:\" \";n.push(p)}else n.push(K);let D=W(i,S(i,s(r)));return D!==!1&&$(i,D)&&n.push(K),n}function oi(e,t,r){var D;let n=e.node,u=sn(e,t),{printer:i,originalText:o,locStart:s}=t,a=(D=i.isBlockComment)==null?void 0:D.call(i,n);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||$(o,s(n),{backwards:!0})){let l=Ie(o,s(n));return{doc:Ne([K,l?K:\"\",u]),isBlock:a,hasLineSuffix:!0}}return!a||r!=null&&r.hasLineSuffix?{doc:[Ne([\" \",u]),Fe],isBlock:a,hasLineSuffix:!0}:{doc:[\" \",u],isBlock:a,hasLineSuffix:!1}}function si(e,t){let r=e.node;if(!r)return{};let n=t[Symbol.for(\"printedComments\")];if((r.comments||[]).filter(a=>!n.has(a)).length===0)return{leading:\"\",trailing:\"\"};let i=[],o=[],s;return e.each(()=>{let a=e.node;if(n!=null&&n.has(a))return;let{leading:D,trailing:l}=a;D?i.push(ii(e,t)):l&&(s=oi(e,t,s),o.push(s.doc))},\"comments\"),{leading:i,trailing:o}}function an(e,t,r){let{leading:n,trailing:u}=si(e,r);return!n&&!u?t:me(t,i=>[n,i,u])}function Dn(e){let{[Symbol.for(\"comments\")]:t,[Symbol.for(\"printedComments\")]:r}=e;for(let n of t){if(!n.printed&&!r.has(n))throw new Error('Comment \"'+n.value.trim()+'\" was not printed. Please report this error!');delete n.printed}}function ai(e){return()=>{}}var ln=ai;var Re=class extends Error{name=\"ConfigError\"},Ye=class extends Error{name=\"UndefinedParserError\"};var cn={cursorOffset:{category:\"Special\",type:\"int\",default:-1,range:{start:-1,end:1/0,step:1},description:\"Print (to stderr) where a cursor at the given position would move to after formatting.\",cliCategory:\"Editor\"},endOfLine:{category:\"Global\",type:\"choice\",default:\"lf\",description:\"Which end of line characters to apply.\",choices:[{value:\"lf\",description:\"Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos\"},{value:\"crlf\",description:\"Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows\"},{value:\"cr\",description:\"Carriage Return character only (\\\\r), used very rarely\"},{value:\"auto\",description:`Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)`}]},filepath:{category:\"Special\",type:\"path\",description:\"Specify the input filepath. This will be used to do parser inference.\",cliName:\"stdin-filepath\",cliCategory:\"Other\",cliDescription:\"Path to the file to pretend that stdin comes from.\"},insertPragma:{category:\"Special\",type:\"boolean\",default:!1,description:\"Insert @format pragma into file's first docblock comment.\",cliCategory:\"Other\"},parser:{category:\"Global\",type:\"choice\",default:void 0,description:\"Which parser to use.\",exception:e=>typeof e==\"string\"||typeof e==\"function\",choices:[{value:\"flow\",description:\"Flow\"},{value:\"babel\",description:\"JavaScript\"},{value:\"babel-flow\",description:\"Flow\"},{value:\"babel-ts\",description:\"TypeScript\"},{value:\"typescript\",description:\"TypeScript\"},{value:\"acorn\",description:\"JavaScript\"},{value:\"espree\",description:\"JavaScript\"},{value:\"meriyah\",description:\"JavaScript\"},{value:\"css\",description:\"CSS\"},{value:\"less\",description:\"Less\"},{value:\"scss\",description:\"SCSS\"},{value:\"json\",description:\"JSON\"},{value:\"json5\",description:\"JSON5\"},{value:\"jsonc\",description:\"JSON with Comments\"},{value:\"json-stringify\",description:\"JSON.stringify\"},{value:\"graphql\",description:\"GraphQL\"},{value:\"markdown\",description:\"Markdown\"},{value:\"mdx\",description:\"MDX\"},{value:\"vue\",description:\"Vue\"},{value:\"yaml\",description:\"YAML\"},{value:\"glimmer\",description:\"Ember / Handlebars\"},{value:\"html\",description:\"HTML\"},{value:\"angular\",description:\"Angular\"},{value:\"lwc\",description:\"Lightning Web Components\"}]},plugins:{type:\"path\",array:!0,default:[{value:[]}],category:\"Global\",description:\"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",exception:e=>typeof e==\"string\"||typeof e==\"object\",cliName:\"plugin\",cliCategory:\"Config\"},printWidth:{category:\"Global\",type:\"int\",default:80,description:\"The line length where Prettier will try wrap.\",range:{start:0,end:1/0,step:1}},rangeEnd:{category:\"Special\",type:\"int\",default:1/0,range:{start:0,end:1/0,step:1},description:`Format code ending at a given character offset (exclusive).\nThe range will extend forwards to the end of the selected statement.`,cliCategory:\"Editor\"},rangeStart:{category:\"Special\",type:\"int\",default:0,range:{start:0,end:1/0,step:1},description:`Format code starting at a given character offset.\nThe range will extend backwards to the start of the first line containing the selected statement.`,cliCategory:\"Editor\"},requirePragma:{category:\"Special\",type:\"boolean\",default:!1,description:`Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.`,cliCategory:\"Other\"},tabWidth:{type:\"int\",category:\"Global\",default:2,description:\"Number of spaces per indentation level.\",range:{start:0,end:1/0,step:1}},useTabs:{category:\"Global\",type:\"boolean\",default:!1,description:\"Indent with tabs instead of spaces.\"},embeddedLanguageFormatting:{category:\"Global\",type:\"choice\",default:\"auto\",description:\"Control how Prettier formats quoted code embedded in the file.\",choices:[{value:\"auto\",description:\"Format embedded code if Prettier can automatically identify it.\"},{value:\"off\",description:\"Never automatically format embedded code.\"}]}};function ot({plugins:e=[],showDeprecated:t=!1}={}){let r=e.flatMap(u=>u.languages??[]),n=[];for(let u of li(Object.assign({},...e.map(({options:i})=>i),cn)))!t&&u.deprecated||(Array.isArray(u.choices)&&(t||(u.choices=u.choices.filter(i=>!i.deprecated)),u.name===\"parser\"&&(u.choices=[...u.choices,...Di(u.choices,r,e)])),u.pluginDefaults=Object.fromEntries(e.filter(i=>{var o;return((o=i.defaultOptions)==null?void 0:o[u.name])!==void 0}).map(i=>[i.name,i.defaultOptions[u.name]])),n.push(u));return{languages:r,options:n}}function*Di(e,t,r){let n=new Set(e.map(u=>u.value));for(let u of t)if(u.parsers){for(let i of u.parsers)if(!n.has(i)){n.add(i);let o=r.find(a=>a.parsers&&Object.prototype.hasOwnProperty.call(a.parsers,i)),s=u.name;o!=null&&o.name&&(s+=` (plugin: ${o.name})`),yield{value:i,description:s}}}}function li(e){let t=[];for(let[r,n]of Object.entries(e)){let u={name:r,...n};Array.isArray(u.default)&&(u.default=y(!1,u.default,-1).value),t.push(u)}return t}var ci=e=>String(e).split(/[/\\\\]/u).pop();function fn(e,t){if(!t)return;let r=ci(t).toLowerCase();return e.find(({filenames:n})=>n==null?void 0:n.some(u=>u.toLowerCase()===r))??e.find(({extensions:n})=>n==null?void 0:n.some(u=>r.endsWith(u)))}function fi(e,t){if(t)return e.find(({name:r})=>r.toLowerCase()===t)??e.find(({aliases:r})=>r==null?void 0:r.includes(t))??e.find(({extensions:r})=>r==null?void 0:r.includes(`.${t}`))}function di(e,t){let r=e.plugins.flatMap(u=>u.languages??[]),n=fi(r,t.language)??fn(r,t.physicalFile)??fn(r,t.file)??(t.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var dn=di;var oe={key:e=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e)?e:JSON.stringify(e),value(e){if(e===null||typeof e!=\"object\")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>oe.value(r)).join(\", \")}]`;let t=Object.keys(e);return t.length===0?\"{}\":`{ ${t.map(r=>`${oe.key(r)}: ${oe.value(e[r])}`).join(\", \")} }`},pair:({key:e,value:t})=>oe.value({[e]:t})};var Ut=Me(st(),1),mn=(e,t,{descriptor:r})=>{let n=[`${Ut.default.yellow(typeof e==\"string\"?r.key(e):r.pair(e))} is deprecated`];return t&&n.push(`we now treat it as ${Ut.default.blue(typeof t==\"string\"?r.key(t):r.pair(t))}`),n.join(\"; \")+\".\"};var ce=Me(st(),1);var at=Symbol.for(\"vnopts.VALUE_NOT_EXIST\"),Ae=Symbol.for(\"vnopts.VALUE_UNCHANGED\");var hn=\" \".repeat(2),Cn=(e,t,r)=>{let{text:n,list:u}=r.normalizeExpectedResult(r.schemas[e].expected(r)),i=[];return n&&i.push(En(e,t,n,r.descriptor)),u&&i.push([En(e,t,u.title,r.descriptor)].concat(u.values.map(o=>gn(o,r.loggerPrintWidth))).join(`\n`)),yn(i,r.loggerPrintWidth)};function En(e,t,r,n){return[`Invalid ${ce.default.red(n.key(e))} value.`,`Expected ${ce.default.blue(r)},`,`but received ${t===at?ce.default.gray(\"nothing\"):ce.default.red(n.value(t))}.`].join(\" \")}function gn({text:e,list:t},r){let n=[];return e&&n.push(`- ${ce.default.blue(e)}`),t&&n.push([`- ${ce.default.blue(t.title)}:`].concat(t.values.map(u=>gn(u,r-hn.length).replace(/^|\\n/g,`$&${hn}`))).join(`\n`)),yn(n,r)}function yn(e,t){if(e.length===1)return e[0];let[r,n]=e,[u,i]=e.map(o=>o.split(`\n`,1)[0].length);return u>t&&u>i?n:r}var Gt=Me(st(),1);var Vt=[],An=[];function zt(e,t){if(e===t)return 0;let r=e;e.length>t.length&&(e=t,t=r);let n=e.length,u=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-u);)n--,u--;let i=0;for(;i<n&&e.charCodeAt(i)===t.charCodeAt(i);)i++;if(n-=i,u-=i,n===0)return u;let o,s,a,D,l=0,p=0;for(;l<n;)An[l]=e.charCodeAt(i+l),Vt[l]=++l;for(;p<u;)for(o=t.charCodeAt(i+p),a=p++,s=p,l=0;l<n;l++)D=o===An[l]?a:a+1,a=Vt[l],s=Vt[l]=a>s?D>s?s+1:D:D>a?a+1:D;return s}var Dt=(e,t,{descriptor:r,logger:n,schemas:u})=>{let i=[`Ignored unknown option ${Gt.default.yellow(r.pair({key:e,value:t}))}.`],o=Object.keys(u).sort().find(s=>zt(e,s)<3);o&&i.push(`Did you mean ${Gt.default.blue(r.key(o))}?`),n.warn(i.join(\" \"))};var pi=[\"default\",\"expected\",\"validate\",\"deprecated\",\"forward\",\"redirect\",\"overlap\",\"preprocess\",\"postprocess\"];function Fi(e,t){let r=new e(t),n=Object.create(r);for(let u of pi)u in t&&(n[u]=mi(t[u],r,x.prototype[u].length));return n}var x=class{static create(t){return Fi(this,t)}constructor(t){this.name=t.name}default(t){}expected(t){return\"nothing\"}validate(t,r){return!1}deprecated(t,r){return!1}forward(t,r){}redirect(t,r){}overlap(t,r,n){return t}preprocess(t,r){return t}postprocess(t,r){return Ae}};function mi(e,t,r){return typeof e==\"function\"?(...n)=>e(...n.slice(0,r-1),t,...n.slice(r-1)):()=>e}var lt=class extends x{constructor(t){super(t),this._sourceName=t.sourceName}expected(t){return t.schemas[this._sourceName].expected(t)}validate(t,r){return r.schemas[this._sourceName].validate(t,r)}redirect(t,r){return this._sourceName}};var ct=class extends x{expected(){return\"anything\"}validate(){return!0}};var ft=class extends x{constructor({valueSchema:t,name:r=t.name,...n}){super({...n,name:r}),this._valueSchema=t}expected(t){let{text:r,list:n}=t.normalizeExpectedResult(this._valueSchema.expected(t));return{text:r&&`an array of ${r}`,list:n&&{title:\"an array of the following values\",values:[{list:n}]}}}validate(t,r){if(!Array.isArray(t))return!1;let n=[];for(let u of t){let i=r.normalizeValidateResult(this._valueSchema.validate(u,r),u);i!==!0&&n.push(i.value)}return n.length===0?!0:{value:n}}deprecated(t,r){let n=[];for(let u of t){let i=r.normalizeDeprecatedResult(this._valueSchema.deprecated(u,r),u);i!==!1&&n.push(...i.map(({value:o})=>({value:[o]})))}return n}forward(t,r){let n=[];for(let u of t){let i=r.normalizeForwardResult(this._valueSchema.forward(u,r),u);n.push(...i.map(vn))}return n}redirect(t,r){let n=[],u=[];for(let i of t){let o=r.normalizeRedirectResult(this._valueSchema.redirect(i,r),i);\"remain\"in o&&n.push(o.remain),u.push(...o.redirect.map(vn))}return n.length===0?{redirect:u}:{redirect:u,remain:n}}overlap(t,r){return t.concat(r)}};function vn({from:e,to:t}){return{from:[e],to:t}}var dt=class extends x{expected(){return\"true or false\"}validate(t){return typeof t==\"boolean\"}};function wn(e,t){let r=Object.create(null);for(let n of e){let u=n[t];if(r[u])throw new Error(`Duplicate ${t} ${JSON.stringify(u)}`);r[u]=n}return r}function _n(e,t){let r=new Map;for(let n of e){let u=n[t];if(r.has(u))throw new Error(`Duplicate ${t} ${JSON.stringify(u)}`);r.set(u,n)}return r}function xn(){let e=Object.create(null);return t=>{let r=JSON.stringify(t);return e[r]?!0:(e[r]=!0,!1)}}function bn(e,t){let r=[],n=[];for(let u of e)t(u)?r.push(u):n.push(u);return[r,n]}function Nn(e){return e===Math.floor(e)}function On(e,t){if(e===t)return 0;let r=typeof e,n=typeof t,u=[\"undefined\",\"object\",\"boolean\",\"number\",\"string\"];return r!==n?u.indexOf(r)-u.indexOf(n):r!==\"string\"?Number(e)-Number(t):e.localeCompare(t)}function Sn(e){return(...t)=>{let r=e(...t);return typeof r==\"string\"?new Error(r):r}}function Kt(e){return e===void 0?{}:e}function Jt(e){if(typeof e==\"string\")return{text:e};let{text:t,list:r}=e;return hi((t||r)!==void 0,\"Unexpected `expected` result, there should be at least one field.\"),r?{text:t,list:{title:r.title,values:r.values.map(Jt)}}:{text:t}}function qt(e,t){return e===!0?!0:e===!1?{value:t}:e}function Xt(e,t,r=!1){return e===!1?!1:e===!0?r?!0:[{value:t}]:\"value\"in e?[e]:e.length===0?!1:e}function Bn(e,t){return typeof e==\"string\"||\"key\"in e?{from:t,to:e}:\"from\"in e?{from:e.from,to:e.to}:{from:t,to:e.to}}function pt(e,t){return e===void 0?[]:Array.isArray(e)?e.map(r=>Bn(r,t)):[Bn(e,t)]}function Qt(e,t){let r=pt(typeof e==\"object\"&&\"redirect\"in e?e.redirect:e,t);return r.length===0?{remain:t,redirect:r}:typeof e==\"object\"&&\"remain\"in e?{remain:e.remain,redirect:r}:{redirect:r}}function hi(e,t){if(!e)throw new Error(t)}var Ft=class extends x{constructor(t){super(t),this._choices=_n(t.choices.map(r=>r&&typeof r==\"object\"?r:{value:r}),\"value\")}expected({descriptor:t}){let r=Array.from(this._choices.keys()).map(o=>this._choices.get(o)).filter(({hidden:o})=>!o).map(o=>o.value).sort(On).map(t.value),n=r.slice(0,-2),u=r.slice(-2);return{text:n.concat(u.join(\" or \")).join(\", \"),list:{title:\"one of the following values\",values:r}}}validate(t){return this._choices.has(t)}deprecated(t){let r=this._choices.get(t);return r&&r.deprecated?{value:t}:!1}forward(t){let r=this._choices.get(t);return r?r.forward:void 0}redirect(t){let r=this._choices.get(t);return r?r.redirect:void 0}};var mt=class extends x{expected(){return\"a number\"}validate(t,r){return typeof t==\"number\"}};var ht=class extends mt{expected(){return\"an integer\"}validate(t,r){return r.normalizeValidateResult(super.validate(t,r),t)===!0&&Nn(t)}};var je=class extends x{expected(){return\"a string\"}validate(t){return typeof t==\"string\"}};var Tn=oe,kn=Dt,Ln=Cn,Pn=mn;var Et=class{constructor(t,r){let{logger:n=console,loggerPrintWidth:u=80,descriptor:i=Tn,unknown:o=kn,invalid:s=Ln,deprecated:a=Pn,missing:D=()=>!1,required:l=()=>!1,preprocess:p=d=>d,postprocess:f=()=>Ae}=r||{};this._utils={descriptor:i,logger:n||{warn:()=>{}},loggerPrintWidth:u,schemas:wn(t,\"name\"),normalizeDefaultResult:Kt,normalizeExpectedResult:Jt,normalizeDeprecatedResult:Xt,normalizeForwardResult:pt,normalizeRedirectResult:Qt,normalizeValidateResult:qt},this._unknownHandler=o,this._invalidHandler=Sn(s),this._deprecatedHandler=a,this._identifyMissing=(d,c)=>!(d in c)||D(d,c),this._identifyRequired=l,this._preprocess=p,this._postprocess=f,this.cleanHistory()}cleanHistory(){this._hasDeprecationWarned=xn()}normalize(t){let r={},u=[this._preprocess(t,this._utils)],i=()=>{for(;u.length!==0;){let o=u.shift(),s=this._applyNormalization(o,r);u.push(...s)}};i();for(let o of Object.keys(this._utils.schemas)){let s=this._utils.schemas[o];if(!(o in r)){let a=Kt(s.default(this._utils));\"value\"in a&&u.push({[o]:a.value})}}i();for(let o of Object.keys(this._utils.schemas)){if(!(o in r))continue;let s=this._utils.schemas[o],a=r[o],D=s.postprocess(a,this._utils);D!==Ae&&(this._applyValidation(D,o,s),r[o]=D)}return this._applyPostprocess(r),this._applyRequiredCheck(r),r}_applyNormalization(t,r){let n=[],{knownKeys:u,unknownKeys:i}=this._partitionOptionKeys(t);for(let o of u){let s=this._utils.schemas[o],a=s.preprocess(t[o],this._utils);this._applyValidation(a,o,s);let D=({from:d,to:c})=>{n.push(typeof c==\"string\"?{[c]:d}:{[c.key]:c.value})},l=({value:d,redirectTo:c})=>{let F=Xt(s.deprecated(d,this._utils),a,!0);if(F!==!1)if(F===!0)this._hasDeprecationWarned(o)||this._utils.logger.warn(this._deprecatedHandler(o,c,this._utils));else for(let{value:m}of F){let h={key:o,value:m};if(!this._hasDeprecationWarned(h)){let C=typeof c==\"string\"?{key:c,value:m}:c;this._utils.logger.warn(this._deprecatedHandler(h,C,this._utils))}}};pt(s.forward(a,this._utils),a).forEach(D);let f=Qt(s.redirect(a,this._utils),a);if(f.redirect.forEach(D),\"remain\"in f){let d=f.remain;r[o]=o in r?s.overlap(r[o],d,this._utils):d,l({value:d})}for(let{from:d,to:c}of f.redirect)l({value:d,redirectTo:c})}for(let o of i){let s=t[o];this._applyUnknownHandler(o,s,r,(a,D)=>{n.push({[a]:D})})}return n}_applyRequiredCheck(t){for(let r of Object.keys(this._utils.schemas))if(this._identifyMissing(r,t)&&this._identifyRequired(r))throw this._invalidHandler(r,at,this._utils)}_partitionOptionKeys(t){let[r,n]=bn(Object.keys(t).filter(u=>!this._identifyMissing(u,t)),u=>u in this._utils.schemas);return{knownKeys:r,unknownKeys:n}}_applyValidation(t,r,n){let u=qt(n.validate(t,this._utils),t);if(u!==!0)throw this._invalidHandler(r,u.value,this._utils)}_applyUnknownHandler(t,r,n,u){let i=this._unknownHandler(t,r,this._utils);if(i)for(let o of Object.keys(i)){if(this._identifyMissing(o,i))continue;let s=i[o];o in this._utils.schemas?u(o,s):n[o]=s}}_applyPostprocess(t){let r=this._postprocess(t,this._utils);if(r!==Ae){if(r.delete)for(let n of r.delete)delete t[n];if(r.override){let{knownKeys:n,unknownKeys:u}=this._partitionOptionKeys(r.override);for(let i of n){let o=r.override[i];this._applyValidation(o,i,this._utils.schemas[i]),t[i]=o}for(let i of u){let o=r.override[i];this._applyUnknownHandler(i,o,t,(s,a)=>{let D=this._utils.schemas[s];this._applyValidation(a,s,D),t[s]=a})}}}}};var Zt;function Ci(e,t,{logger:r=!1,isCLI:n=!1,passThrough:u=!1,FlagSchema:i,descriptor:o}={}){if(n){if(!i)throw new Error(\"'FlagSchema' option is required.\");if(!o)throw new Error(\"'descriptor' option is required.\")}else o=oe;let s=u?Array.isArray(u)?(f,d)=>u.includes(f)?{[f]:d}:void 0:(f,d)=>({[f]:d}):(f,d,c)=>{let{_:F,...m}=c.schemas;return Dt(f,d,{...c,schemas:m})},a=gi(t,{isCLI:n,FlagSchema:i}),D=new Et(a,{logger:r,unknown:s,descriptor:o}),l=r!==!1;l&&Zt&&(D._hasDeprecationWarned=Zt);let p=D.normalize(e);return l&&(Zt=D._hasDeprecationWarned),p}function gi(e,{isCLI:t,FlagSchema:r}){let n=[];t&&n.push(ct.create({name:\"_\"}));for(let u of e)n.push(yi(u,{isCLI:t,optionInfos:e,FlagSchema:r})),u.alias&&t&&n.push(lt.create({name:u.alias,sourceName:u.name}));return n}function yi(e,{isCLI:t,optionInfos:r,FlagSchema:n}){let{name:u}=e,i={name:u},o,s={};switch(e.type){case\"int\":o=ht,t&&(i.preprocess=Number);break;case\"string\":o=je;break;case\"choice\":o=Ft,i.choices=e.choices.map(a=>a!=null&&a.redirect?{...a,redirect:{to:{key:e.name,value:a.redirect}}}:a);break;case\"boolean\":o=dt;break;case\"flag\":o=n,i.flags=r.flatMap(a=>[a.alias,a.description&&a.name,a.oppositeDescription&&`no-${a.name}`].filter(Boolean));break;case\"path\":o=je;break;default:throw new Error(`Unexpected type ${e.type}`)}if(e.exception?i.validate=(a,D,l)=>e.exception(a)||D.validate(a,l):i.validate=(a,D,l)=>a===void 0||D.validate(a,l),e.redirect&&(s.redirect=a=>a?{to:typeof e.redirect==\"string\"?e.redirect:{key:e.redirect.option,value:e.redirect.value}}:void 0),e.deprecated&&(s.deprecated=!0),t&&!e.array){let a=i.preprocess||(D=>D);i.preprocess=(D,l,p)=>l.preprocess(a(Array.isArray(D)?y(!1,D,-1):D),p)}return e.array?ft.create({...t?{preprocess:a=>Array.isArray(a)?a:[a]}:{},...s,valueSchema:o.create(i)}):o.create({...i,...s})}var In=Ci;var Ai=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let u=t[n];if(r(u,n,t))return u}}},er=Ai;function tr(e,t){if(!t)throw new Error(\"parserName is required.\");let r=er(!1,e,u=>u.parsers&&Object.prototype.hasOwnProperty.call(u.parsers,t));if(r)return r;let n=`Couldn't resolve parser \"${t}\".`;throw n+=\" Plugins must be explicitly added to the standalone bundle.\",new Re(n)}function Rn(e,t){if(!t)throw new Error(\"astFormat is required.\");let r=er(!1,e,u=>u.printers&&Object.prototype.hasOwnProperty.call(u.printers,t));if(r)return r;let n=`Couldn't find plugin for AST format \"${t}\".`;throw n+=\" Plugins must be explicitly added to the standalone bundle.\",new Re(n)}function Ct({plugins:e,parser:t}){let r=tr(e,t);return rr(r,t)}function rr(e,t){let r=e.parsers[t];return typeof r==\"function\"?r():r}function Yn(e,t){let r=e.printers[t];return typeof r==\"function\"?r():r}var jn={astFormat:\"estree\",printer:{},originalText:void 0,locStart:null,locEnd:null};async function vi(e,t={}){var p;let r={...e};if(!r.parser)if(r.filepath){if(r.parser=dn(r,{physicalFile:r.filepath}),!r.parser)throw new Ye(`No parser could be inferred for file \"${r.filepath}\".`)}else throw new Ye(\"No parser and no file path given, couldn't infer a parser.\");let n=ot({plugins:e.plugins,showDeprecated:!0}).options,u={...jn,...Object.fromEntries(n.filter(f=>f.default!==void 0).map(f=>[f.name,f.default]))},i=tr(r.plugins,r.parser),o=await rr(i,r.parser);r.astFormat=o.astFormat,r.locEnd=o.locEnd,r.locStart=o.locStart;let s=(p=i.printers)!=null&&p[o.astFormat]?i:Rn(r.plugins,o.astFormat),a=await Yn(s,o.astFormat);r.printer=a;let D=s.defaultOptions?Object.fromEntries(Object.entries(s.defaultOptions).filter(([,f])=>f!==void 0)):{},l={...u,...D};for(let[f,d]of Object.entries(l))(r[f]===null||r[f]===void 0)&&(r[f]=d);return r.parser===\"json\"&&(r.trailingComma=\"none\"),In(r,n,{passThrough:Object.keys(jn),...t})}var se=vi;var $n=Me(Wn(),1);async function xi(e,t){let r=await Ct(t),n=r.preprocess?r.preprocess(e,t):e;t.originalText=n;let u;try{u=await r.parse(n,t,t)}catch(i){bi(i,e)}return{text:n,ast:u}}function bi(e,t){let{loc:r}=e;if(r){let n=(0,$n.codeFrameColumns)(t,r,{highlightCode:!0});throw e.message+=`\n`+n,e.codeFrame=n,e}throw e}var fe=xi;async function Mn(e,t,r,n,u){let{embeddedLanguageFormatting:i,printer:{embed:o,hasPrettierIgnore:s=()=>!1,getVisitorKeys:a}}=r;if(!o||i!==\"auto\")return;if(o.length>2)throw new Error(\"printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed\");let D=q(o.getVisitorKeys??a),l=[];d();let p=e.stack;for(let{print:c,node:F,pathStack:m}of l)try{e.stack=m;let h=await c(f,t,e,r);h&&u.set(F,h)}catch(h){if(globalThis.PRETTIER_DEBUG)throw h}e.stack=p;function f(c,F){return Ni(c,F,r,n)}function d(){let{node:c}=e;if(c===null||typeof c!=\"object\"||s(e))return;for(let m of D(c))Array.isArray(c[m])?e.each(d,m):e.call(d,m);let F=o(e,r);if(F){if(typeof F==\"function\"){l.push({print:F,node:c,pathStack:[...e.stack]});return}u.set(c,F)}}}async function Ni(e,t,r,n){let u=await se({...r,...t,parentParser:r.parser,originalText:e},{passThrough:!0}),{ast:i}=await fe(e,u),o=await n(i,u);return et(o)}function Oi(e,t){let{originalText:r,[Symbol.for(\"comments\")]:n,locStart:u,locEnd:i,[Symbol.for(\"printedComments\")]:o}=t,{node:s}=e,a=u(s),D=i(s);for(let l of n)u(l)>=a&&i(l)<=D&&o.add(l);return r.slice(a,D)}var Un=Oi;async function He(e,t){({ast:e}=await ur(e,t));let r=new Map,n=new Jr(e),u=ln(t),i=new Map;await Mn(n,s,t,He,i);let o=await Vn(n,t,s,void 0,i);if(Dn(t),t.nodeAfterCursor&&!t.nodeBeforeCursor)return[Z,o];if(t.nodeBeforeCursor&&!t.nodeAfterCursor)return[o,Z];return o;function s(D,l){return D===void 0||D===n?a(l):Array.isArray(D)?n.call(()=>a(l),...D):n.call(()=>a(l),D)}function a(D){u(n);let l=n.node;if(l==null)return\"\";let p=l&&typeof l==\"object\"&&D===void 0;if(p&&r.has(l))return r.get(l);let f=Vn(n,t,s,D,i);return p&&r.set(l,f),f}}function Vn(e,t,r,n,u){var a;let{node:i}=e,{printer:o}=t,s;switch((a=o.hasPrettierIgnore)!=null&&a.call(o,e)?s=Un(e,t):u.has(i)?s=u.get(i):s=o.print(e,t,r,n),i){case t.cursorNode:s=me(s,D=>[Z,D,Z]);break;case t.nodeBeforeCursor:s=me(s,D=>[D,Z]);break;case t.nodeAfterCursor:s=me(s,D=>[Z,D]);break}return o.printComment&&(!o.willPrintOwnComments||!o.willPrintOwnComments(e,t))&&(s=an(e,s,t)),s}async function ur(e,t){let r=e.comments??[];t[Symbol.for(\"comments\")]=r,t[Symbol.for(\"tokens\")]=e.tokens??[],t[Symbol.for(\"printedComments\")]=new Set,un(e,t);let{printer:{preprocess:n}}=t;return e=n?await n(e,t):e,{ast:e,comments:r}}function Si(e,t){let{cursorOffset:r,locStart:n,locEnd:u}=t,i=q(t.printer.getVisitorKeys),o=d=>n(d)<=r&&u(d)>=r,s=e,a=[e];for(let d of Qr(e,{getVisitorKeys:i,filter:o}))a.push(d),s=d;if(Zr(s,{getVisitorKeys:i}))return{cursorNode:s};let D,l,p=-1,f=Number.POSITIVE_INFINITY;for(;a.length>0&&(D===void 0||l===void 0);){s=a.pop();let d=D!==void 0,c=l!==void 0;for(let F of ge(s,{getVisitorKeys:i})){if(!d){let m=u(F);m<=r&&m>p&&(D=F,p=m)}if(!c){let m=n(F);m>=r&&m<f&&(l=F,f=m)}}}return{nodeBeforeCursor:D,nodeAfterCursor:l}}var zn=Si;function Ti(e,t){let{printer:{massageAstNode:r,getVisitorKeys:n}}=t;if(!r)return e;let u=q(n),i=r.ignoredProperties??new Set;return o(e);function o(s,a){if(!(s!==null&&typeof s==\"object\"))return s;if(Array.isArray(s))return s.map(f=>o(f,a)).filter(Boolean);let D={},l=new Set(u(s));for(let f in s)!Object.prototype.hasOwnProperty.call(s,f)||i.has(f)||(l.has(f)?D[f]=o(s[f],s):D[f]=s[f]);let p=r(s,D,a);if(p!==null)return p??D}}var Gn=Ti;var ki=(e,t,r)=>{if(!(e&&t==null)){if(t.findLastIndex)return t.findLastIndex(r);for(let n=t.length-1;n>=0;n--){let u=t[n];if(r(u,n,t))return n}return-1}},Kn=ki;var Li=({parser:e})=>e===\"json\"||e===\"json5\"||e===\"jsonc\"||e===\"json-stringify\";function Pi(e,t){let r=[e.node,...e.parentNodes],n=new Set([t.node,...t.parentNodes]);return r.find(u=>Xn.has(u.type)&&n.has(u))}function Jn(e){let t=Kn(!1,e,r=>r.type!==\"Program\"&&r.type!==\"File\");return t===-1?e:e.slice(0,t+1)}function Ii(e,t,{locStart:r,locEnd:n}){let u=e.node,i=t.node;if(u===i)return{startNode:u,endNode:i};let o=r(e.node);for(let a of Jn(t.parentNodes))if(r(a)>=o)i=a;else break;let s=n(t.node);for(let a of Jn(e.parentNodes)){if(n(a)<=s)u=a;else break;if(u===i)break}return{startNode:u,endNode:i}}function ir(e,t,r,n,u=[],i){let{locStart:o,locEnd:s}=r,a=o(e),D=s(e);if(!(t>D||t<a||i===\"rangeEnd\"&&t===a||i===\"rangeStart\"&&t===D)){for(let l of it(e,r)){let p=ir(l,t,r,n,[e,...u],i);if(p)return p}if(!n||n(e,u[0]))return{node:e,parentNodes:u}}}function Ri(e,t){return t!==\"DeclareExportDeclaration\"&&e!==\"TypeParameterDeclaration\"&&(e===\"Directive\"||e===\"TypeAlias\"||e===\"TSExportAssignment\"||e.startsWith(\"Declare\")||e.startsWith(\"TSDeclare\")||e.endsWith(\"Statement\")||e.endsWith(\"Declaration\"))}var Xn=new Set([\"JsonRoot\",\"ObjectExpression\",\"ArrayExpression\",\"StringLiteral\",\"NumericLiteral\",\"BooleanLiteral\",\"NullLiteral\",\"UnaryExpression\",\"TemplateLiteral\"]),Yi=new Set([\"OperationDefinition\",\"FragmentDefinition\",\"VariableDefinition\",\"TypeExtensionDefinition\",\"ObjectTypeDefinition\",\"FieldDefinition\",\"DirectiveDefinition\",\"EnumTypeDefinition\",\"EnumValueDefinition\",\"InputValueDefinition\",\"InputObjectTypeDefinition\",\"SchemaDefinition\",\"OperationTypeDefinition\",\"InterfaceTypeDefinition\",\"UnionTypeDefinition\",\"ScalarTypeDefinition\"]);function qn(e,t,r){if(!t)return!1;switch(e.parser){case\"flow\":case\"babel\":case\"babel-flow\":case\"babel-ts\":case\"typescript\":case\"acorn\":case\"espree\":case\"meriyah\":case\"__babel_estree\":return Ri(t.type,r==null?void 0:r.type);case\"json\":case\"json5\":case\"jsonc\":case\"json-stringify\":return Xn.has(t.type);case\"graphql\":return Yi.has(t.kind);case\"vue\":return t.tag!==\"root\"}return!1}function Qn(e,t,r){let{rangeStart:n,rangeEnd:u,locStart:i,locEnd:o}=t;Pe.ok(u>n);let s=e.slice(n,u).search(/\\S/u),a=s===-1;if(!a)for(n+=s;u>n&&!/\\S/u.test(e[u-1]);--u);let D=ir(r,n,t,(d,c)=>qn(t,d,c),[],\"rangeStart\"),l=a?D:ir(r,u,t,d=>qn(t,d),[],\"rangeEnd\");if(!D||!l)return{rangeStart:0,rangeEnd:0};let p,f;if(Li(t)){let d=Pi(D,l);p=d,f=d}else({startNode:p,endNode:f}=Ii(D,l,t));return{rangeStart:Math.min(i(p),i(f)),rangeEnd:Math.max(o(p),o(f))}}var ru=\"\\uFEFF\",Zn=Symbol(\"cursor\");async function nu(e,t,r=0){if(!e||e.trim().length===0)return{formatted:\"\",cursorOffset:-1,comments:[]};let{ast:n,text:u}=await fe(e,t);t.cursorOffset>=0&&(t={...t,...zn(n,t)});let i=await He(n,t,r);r>0&&(i=Qe([K,i],r,t.tabWidth));let o=Ee(i,t);if(r>0){let a=o.formatted.trim();o.cursorNodeStart!==void 0&&(o.cursorNodeStart-=o.formatted.indexOf(a),o.cursorNodeStart<0&&(o.cursorNodeStart=0,o.cursorNodeText=o.cursorNodeText.trimStart()),o.cursorNodeStart+o.cursorNodeText.length>a.length&&(o.cursorNodeText=o.cursorNodeText.trimEnd())),o.formatted=a+xe(t.endOfLine)}let s=t[Symbol.for(\"comments\")];if(t.cursorOffset>=0){let a,D,l,p;if((t.cursorNode||t.nodeBeforeCursor||t.nodeAfterCursor)&&o.cursorNodeText)if(l=o.cursorNodeStart,p=o.cursorNodeText,t.cursorNode)a=t.locStart(t.cursorNode),D=u.slice(a,t.locEnd(t.cursorNode));else{if(!t.nodeBeforeCursor&&!t.nodeAfterCursor)throw new Error(\"Cursor location must contain at least one of cursorNode, nodeBeforeCursor, nodeAfterCursor\");a=t.nodeBeforeCursor?t.locEnd(t.nodeBeforeCursor):0;let h=t.nodeAfterCursor?t.locStart(t.nodeAfterCursor):u.length;D=u.slice(a,h)}else a=0,D=u,l=0,p=o.formatted;let f=t.cursorOffset-a;if(D===p)return{formatted:o.formatted,cursorOffset:l+f,comments:s};let d=D.split(\"\");d.splice(f,0,Zn);let c=p.split(\"\"),F=gr(d,c),m=l;for(let h of F)if(h.removed){if(h.value.includes(Zn))break}else m+=h.count;return{formatted:o.formatted,cursorOffset:m,comments:s}}return{formatted:o.formatted,cursorOffset:-1,comments:s}}async function ji(e,t){let{ast:r,text:n}=await fe(e,t),{rangeStart:u,rangeEnd:i}=Qn(n,t,r),o=n.slice(u,i),s=Math.min(u,n.lastIndexOf(`\n`,u)+1),a=n.slice(s,u).match(/^\\s*/u)[0],D=Ce(a,t.tabWidth),l=await nu(o,{...t,rangeStart:0,rangeEnd:Number.POSITIVE_INFINITY,cursorOffset:t.cursorOffset>u&&t.cursorOffset<=i?t.cursorOffset-u:-1,endOfLine:\"lf\"},D),p=l.formatted.trimEnd(),{cursorOffset:f}=t;f>i?f+=p.length-o.length:l.cursorOffset>=0&&(f=l.cursorOffset+u);let d=n.slice(0,u)+p+n.slice(i);if(t.endOfLine!==\"lf\"){let c=xe(t.endOfLine);f>=0&&c===`\\r\n`&&(f+=Ot(d.slice(0,f),`\n`)),d=ne(!1,d,`\n`,c)}return{formatted:d,cursorOffset:f,comments:l.comments}}function or(e,t,r){return typeof t!=\"number\"||Number.isNaN(t)||t<0||t>e.length?r:t}function eu(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:u}=t;return r=or(e,r,-1),n=or(e,n,0),u=or(e,u,e.length),{...t,cursorOffset:r,rangeStart:n,rangeEnd:u}}function uu(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:u,endOfLine:i}=eu(e,t),o=e.charAt(0)===ru;if(o&&(e=e.slice(1),r--,n--,u--),i===\"auto\"&&(i=yr(e)),e.includes(\"\\r\")){let s=a=>Ot(e.slice(0,Math.max(a,0)),`\\r\n`);r-=s(r),n-=s(n),u-=s(u),e=Ar(e)}return{hasBOM:o,text:e,options:eu(e,{...t,cursorOffset:r,rangeStart:n,rangeEnd:u,endOfLine:i})}}async function tu(e,t){let r=await Ct(t);return!r.hasPragma||r.hasPragma(e)}async function sr(e,t){let{hasBOM:r,text:n,options:u}=uu(e,await se(t));if(u.rangeStart>=u.rangeEnd&&n!==\"\"||u.requirePragma&&!await tu(n,u))return{formatted:e,cursorOffset:t.cursorOffset,comments:[]};let i;return u.rangeStart>0||u.rangeEnd<n.length?i=await ji(n,u):(!u.requirePragma&&u.insertPragma&&u.printer.insertPragma&&!await tu(n,u)&&(n=u.printer.insertPragma(n)),i=await nu(n,u)),r&&(i.formatted=ru+i.formatted,i.cursorOffset>=0&&i.cursorOffset++),i}async function iu(e,t,r){let{text:n,options:u}=uu(e,await se(t)),i=await fe(n,u);return r&&(r.preprocessForPrint&&(i.ast=await ur(i.ast,u)),r.massage&&(i.ast=Gn(i.ast,u))),i}async function ou(e,t){t=await se(t);let r=await He(e,t);return Ee(r,t)}async function su(e,t){let r=Ir(e),{formatted:n}=await sr(r,{...t,parser:\"__js_expression\"});return n}async function au(e,t){t=await se(t);let{ast:r}=await fe(e,t);return He(r,t)}async function Du(e,t){return Ee(e,await se(t))}var ar={};Bt(ar,{builders:()=>Wi,printer:()=>$i,utils:()=>Mi});var Wi={join:Se,line:qe,softline:Lr,hardline:K,literalline:Xe,group:Tt,conditionalGroup:br,fill:Nr,lineSuffix:Ne,lineSuffixBoundary:Tr,cursor:Z,breakParent:Fe,ifBreak:Or,trim:kr,indent:le,indentIfBreak:Sr,align:De,addAlignmentToDoc:Qe,markAsRoot:_r,dedentToRoot:wr,dedent:xr,hardlineWithoutBreakParent:Oe,literallineWithoutBreakParent:kt,label:Pr,concat:e=>e},$i={printDocToString:Ee},Mi={willBreak:Mr,traverseDoc:be,findInDoc:Ze,mapDoc:Le,removeLines:Vr,stripTrailingHardline:et,replaceEndOfLine:zr,canBreak:Gr};var lu=\"3.4.2\";var lr={};Bt(lr,{addDanglingComment:()=>re,addLeadingComment:()=>ue,addTrailingComment:()=>ie,getAlignmentSize:()=>Ce,getIndentSize:()=>cu,getMaxContinuousCount:()=>fu,getNextNonSpaceNonCommentCharacter:()=>du,getNextNonSpaceNonCommentCharacterIndex:()=>ro,getPreferredQuote:()=>Fu,getStringWidth:()=>Te,hasNewline:()=>$,hasNewlineInRange:()=>mu,hasSpaces:()=>hu,isNextLineEmpty:()=>oo,isNextLineEmptyAfterIndex:()=>gt,isPreviousLineEmpty:()=>uo,makeString:()=>Eu,skip:()=>ye,skipEverythingButNewLine:()=>ut,skipInlineComment:()=>ve,skipNewline:()=>W,skipSpaces:()=>S,skipToLineEnd:()=>nt,skipTrailingComment:()=>Be,skipWhitespace:()=>en});function Ui(e,t){if(t===!1)return!1;if(e.charAt(t)===\"/\"&&e.charAt(t+1)===\"*\"){for(let r=t+2;r<e.length;++r)if(e.charAt(r)===\"*\"&&e.charAt(r+1)===\"/\")return r+2}return t}var ve=Ui;function Vi(e,t){return t===!1?!1:e.charAt(t)===\"/\"&&e.charAt(t+1)===\"/\"?ut(e,t):t}var Be=Vi;function zi(e,t){let r=null,n=t;for(;n!==r;)r=n,n=S(e,n),n=ve(e,n),n=Be(e,n),n=W(e,n);return n}var We=zi;function Gi(e,t){let r=null,n=t;for(;n!==r;)r=n,n=nt(e,n),n=ve(e,n),n=S(e,n);return n=Be(e,n),n=W(e,n),n!==!1&&$(e,n)}var gt=Gi;function Ki(e,t){let r=e.lastIndexOf(`\n`);return r===-1?0:Ce(e.slice(r+1).match(/^[\\t ]*/u)[0],t)}var cu=Ki;function Dr(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}function Ji(e,t){let r=e.match(new RegExp(`(${Dr(t)})+`,\"gu\"));return r===null?0:r.reduce((n,u)=>Math.max(n,u.length/t.length),0)}var fu=Ji;function qi(e,t){let r=We(e,t);return r===!1?\"\":e.charAt(r)}var du=qi;var yt=\"'\",pu='\"';function Xi(e,t){let r=t===!0||t===yt?yt:pu,n=r===yt?pu:yt,u=0,i=0;for(let o of e)o===r?u++:o===n&&i++;return u>i?n:r}var Fu=Xi;function Qi(e,t,r){for(let n=t;n<r;++n)if(e.charAt(n)===`\n`)return!0;return!1}var mu=Qi;function Zi(e,t,r={}){return S(e,r.backwards?t-1:t,r)!==t}var hu=Zi;function eo(e,t,r){let n=t==='\"'?\"'\":'\"',i=ne(!1,e,/\\\\(.)|([\"'])/gsu,(o,s,a)=>s===n?s:a===t?\"\\\\\"+a:a||(r&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/u.test(s)?s:\"\\\\\"+s));return t+i+t}var Eu=eo;function to(e,t,r){return We(e,r(t))}function ro(e,t){return arguments.length===2||typeof t==\"number\"?We(e,t):to(...arguments)}function no(e,t,r){return Ie(e,r(t))}function uo(e,t){return arguments.length===2||typeof t==\"number\"?Ie(e,t):no(...arguments)}function io(e,t,r){return gt(e,r(t))}function oo(e,t){return arguments.length===2||typeof t==\"number\"?gt(e,t):io(...arguments)}function de(e,t=1){return async(...r)=>{let n=r[t]??{},u=n.plugins??[];return r[t]={...n,plugins:Array.isArray(u)?u:Object.values(u)},e(...r)}}var Cu=de(sr);async function gu(e,t){let{formatted:r}=await Cu(e,{...t,cursorOffset:-1});return r}async function so(e,t){return await gu(e,t)===e}var ao=de(ot,0),Do={parse:de(iu),formatAST:de(ou),formatDoc:de(su),printToDoc:de(au),printDocToString:de(Du)};var lc=cr;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy8ucG5wbS9wcmV0dGllckAzLjQuMi9ub2RlX21vZHVsZXMvcHJldHRpZXIvc3RhbmRhbG9uZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEscUJBQXFCLDZCQUE2Qix1Q0FBdUMsa0NBQWtDLGdFQUFnRSxXQUFXLG9CQUFvQiw0QkFBNEIsV0FBVyxtQ0FBbUMsdUJBQXVCLHVCQUF1QixFQUFFLGdCQUFnQixnR0FBZ0csbURBQW1ELEVBQUUsVUFBVSx1Q0FBdUMseUNBQXlDLHNCQUFzQixRQUFRLDBDQUEwQywwSEFBMEgsb0RBQW9ELG9CQUFvQixhQUFhLHlCQUF5QixXQUFXLEVBQUUsY0FBYyxFQUFFLGVBQWUsYUFBYSx1Q0FBdUMsU0FBUyxFQUFFLGNBQWMsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlDQUFpQyxtQkFBbUIscUJBQXFCLGlCQUFpQiw0QkFBNEIsV0FBVyw4QkFBOEIsTUFBTSx3RkFBd0YsbUNBQW1DLGVBQWUsaUJBQWlCLEtBQUssS0FBSyxVQUFVLGNBQWMsZUFBZSxvQkFBb0IsZUFBZSx5QkFBeUIsS0FBSyxvQkFBb0IsWUFBWSw2Q0FBNkMsT0FBTyw2QkFBNkIsb0JBQW9CLEVBQUUsNEJBQTRCLDRCQUE0QixnSEFBZ0gsa0JBQWtCLElBQUksRUFBRSxhQUFhLG9CQUFvQixNQUFNLFNBQVMscUJBQXFCLG9FQUFvRTtBQUNsNkQsc0hBQXNILGdEQUFnRCxFQUFFLGlCQUFpQixlQUFlLFlBQVksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFO0FBQzlPLEdBQUcsNEJBQTRCLGdCQUFnQixFQUFFO0FBQ2pELEVBQUUsRUFBRSxLQUFLLHVCQUF1QixFQUFFLFVBQVUsT0FBTyw4SEFBOEgsRUFBRSxtQkFBbUIsa0dBQWtHLE9BQU8sY0FBYyxhQUFhLG1CQUFtQixpRUFBaUUsY0FBYywrQkFBK0IsRUFBRSxXQUFXLGNBQWMscURBQXFELEtBQUssVUFBVSwwSEFBMEgsb0NBQW9DLHVEQUF1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QUFlLCtEQUErRCx3QkFBd0IsNkNBQTZDLGlCQUFpQiw2QkFBNkIsTUFBTSxXQUFXLG1FQUFtRSxVQUFVLGlCQUFpQixjQUFjLDZCQUE2QixVQUFVLGtCQUFrQixpQkFBaUIsa0RBQWtELG9DQUFvQyxlQUFlLFVBQVUsbUJBQW1CLFlBQVksSUFBSTtBQUMvbEIsV0FBVyxTQUFTLFVBQVUsb0JBQW9CLEVBQUUsb0NBQW9DLFVBQVUsbUJBQW1CLGtKQUFrSixhQUFhLFVBQVUsbUJBQW1CLGtCQUFrQixpQkFBaUIseUVBQXlFLG1CQUFtQixrQkFBa0IsaUJBQWlCLHlFQUF5RSxtQkFBbUIsa0JBQWtCLGlCQUFpQix5RUFBeUUsbUJBQW1CLHFCQUFxQixjQUFjLGlCQUFpQixhQUFhLGlEQUFpRCxVQUFVLGNBQWMsdUJBQXVCLElBQUksWUFBWSxhQUFhLHFCQUFxQixFQUFFLFNBQVMsdUJBQXVCLHlCQUF5QixvQkFBb0IsMEZBQTBGLFVBQXNKIiwic291cmNlcyI6WyIvVXNlcnMvbWFyY21pbnRlbC9Qcm9qZWN0cy9lLXRpYi5jb20vbm9kZV9tb2R1bGVzLy5wbnBtL3ByZXR0aWVyQDMuNC4yL25vZGVfbW9kdWxlcy9wcmV0dGllci9zdGFuZGFsb25lLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgeXU9T2JqZWN0LmNyZWF0ZTt2YXIgdnQ9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBBdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciB2dT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgQnU9T2JqZWN0LmdldFByb3RvdHlwZU9mLHd1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGZyPWU9Pnt0aHJvdyBUeXBlRXJyb3IoZSl9O3ZhciBkcj0oZSx0KT0+KCk9Pih0fHxlKCh0PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx0KSx0LmV4cG9ydHMpLEJ0PShlLHQpPT57Zm9yKHZhciByIGluIHQpdnQoZSxyLHtnZXQ6dFtyXSxlbnVtZXJhYmxlOiEwfSl9LF91PShlLHQscixuKT0+e2lmKHQmJnR5cGVvZiB0PT1cIm9iamVjdFwifHx0eXBlb2YgdD09XCJmdW5jdGlvblwiKWZvcihsZXQgdSBvZiB2dSh0KSkhd3UuY2FsbChlLHUpJiZ1IT09ciYmdnQoZSx1LHtnZXQ6KCk9PnRbdV0sZW51bWVyYWJsZTohKG49QXUodCx1KSl8fG4uZW51bWVyYWJsZX0pO3JldHVybiBlfTt2YXIgTWU9KGUsdCxyKT0+KHI9ZSE9bnVsbD95dShCdShlKSk6e30sX3UodHx8IWV8fCFlLl9fZXNNb2R1bGU/dnQocixcImRlZmF1bHRcIix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6cixlKSk7dmFyIHh1PShlLHQscik9PnQuaGFzKGUpfHxmcihcIkNhbm5vdCBcIityKTt2YXIgcHI9KGUsdCxyKT0+dC5oYXMoZSk/ZnIoXCJDYW5ub3QgYWRkIHRoZSBzYW1lIHByaXZhdGUgbWVtYmVyIG1vcmUgdGhhbiBvbmNlXCIpOnQgaW5zdGFuY2VvZiBXZWFrU2V0P3QuYWRkKGUpOnQuc2V0KGUscik7dmFyIHBlPShlLHQscik9Pih4dShlLHQsXCJhY2Nlc3MgcHJpdmF0ZSBtZXRob2RcIikscik7dmFyIHN0PWRyKChuYSxGbik9PntcInVzZSBzdHJpY3RcIjt2YXIgcG49bmV3IFByb3h5KFN0cmluZyx7Z2V0OigpPT5wbn0pO0ZuLmV4cG9ydHM9cG59KTt2YXIgV249ZHIobnI9PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkobnIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7ZnVuY3Rpb24gQmkoKXtyZXR1cm4gbmV3IFByb3h5KHt9LHtnZXQ6KCk9PmU9PmV9KX12YXIgSG49L1xcclxcbnxbXFxuXFxyXFx1MjAyOFxcdTIwMjldLztmdW5jdGlvbiB3aShlLHQscil7bGV0IG49T2JqZWN0LmFzc2lnbih7Y29sdW1uOjAsbGluZTotMX0sZS5zdGFydCksdT1PYmplY3QuYXNzaWduKHt9LG4sZS5lbmQpLHtsaW5lc0Fib3ZlOmk9MixsaW5lc0JlbG93Om89M309cnx8e30scz1uLmxpbmUsYT1uLmNvbHVtbixEPXUubGluZSxsPXUuY29sdW1uLHA9TWF0aC5tYXgocy0oaSsxKSwwKSxmPU1hdGgubWluKHQubGVuZ3RoLEQrbyk7cz09PS0xJiYocD0wKSxEPT09LTEmJihmPXQubGVuZ3RoKTtsZXQgZD1ELXMsYz17fTtpZihkKWZvcihsZXQgRj0wO0Y8PWQ7RisrKXtsZXQgbT1GK3M7aWYoIWEpY1ttXT0hMDtlbHNlIGlmKEY9PT0wKXtsZXQgaD10W20tMV0ubGVuZ3RoO2NbbV09W2EsaC1hKzFdfWVsc2UgaWYoRj09PWQpY1ttXT1bMCxsXTtlbHNle2xldCBoPXRbbS1GXS5sZW5ndGg7Y1ttXT1bMCxoXX19ZWxzZSBhPT09bD9hP2Nbc109W2EsMF06Y1tzXT0hMDpjW3NdPVthLGwtYV07cmV0dXJue3N0YXJ0OnAsZW5kOmYsbWFya2VyTGluZXM6Y319ZnVuY3Rpb24gX2koZSx0LHI9e30pe2xldCB1PUJpKCExKSxpPWUuc3BsaXQoSG4pLHtzdGFydDpvLGVuZDpzLG1hcmtlckxpbmVzOmF9PXdpKHQsaSxyKSxEPXQuc3RhcnQmJnR5cGVvZiB0LnN0YXJ0LmNvbHVtbj09XCJudW1iZXJcIixsPVN0cmluZyhzKS5sZW5ndGgsZj1lLnNwbGl0KEhuLHMpLnNsaWNlKG8scykubWFwKChkLGMpPT57bGV0IEY9bysxK2MsaD1gICR7YCAke0Z9YC5zbGljZSgtbCl9IHxgLEM9YVtGXSx2PSFhW0YrMV07aWYoQyl7bGV0IEU9XCJcIjtpZihBcnJheS5pc0FycmF5KEMpKXtsZXQgZz1kLnNsaWNlKDAsTWF0aC5tYXgoQ1swXS0xLDApKS5yZXBsYWNlKC9bXlxcdF0vZyxcIiBcIiksaj1DWzFdfHwxO0U9W2BcbiBgLHUuZ3V0dGVyKGgucmVwbGFjZSgvXFxkL2csXCIgXCIpKSxcIiBcIixnLHUubWFya2VyKFwiXlwiKS5yZXBlYXQoaildLmpvaW4oXCJcIiksdiYmci5tZXNzYWdlJiYoRSs9XCIgXCIrdS5tZXNzYWdlKHIubWVzc2FnZSkpfXJldHVyblt1Lm1hcmtlcihcIj5cIiksdS5ndXR0ZXIoaCksZC5sZW5ndGg+MD9gICR7ZH1gOlwiXCIsRV0uam9pbihcIlwiKX1lbHNlIHJldHVybmAgJHt1Lmd1dHRlcihoKX0ke2QubGVuZ3RoPjA/YCAke2R9YDpcIlwifWB9KS5qb2luKGBcbmApO3JldHVybiByLm1lc3NhZ2UmJiFEJiYoZj1gJHtcIiBcIi5yZXBlYXQobCsxKX0ke3IubWVzc2FnZX1cbiR7Zn1gKSxmfW5yLmNvZGVGcmFtZUNvbHVtbnM9X2l9KTt2YXIgY3I9e307QnQoY3Ise19fZGVidWc6KCk9PkRvLGNoZWNrOigpPT5zbyxkb2M6KCk9PmFyLGZvcm1hdDooKT0+Z3UsZm9ybWF0V2l0aEN1cnNvcjooKT0+Q3UsZ2V0U3VwcG9ydEluZm86KCk9PmFvLHV0aWw6KCk9PmxyLHZlcnNpb246KCk9Pmx1fSk7dmFyIGJ1PShlLHQscixuKT0+e2lmKCEoZSYmdD09bnVsbCkpcmV0dXJuIHQucmVwbGFjZUFsbD90LnJlcGxhY2VBbGwocixuKTpyLmdsb2JhbD90LnJlcGxhY2UocixuKTp0LnNwbGl0KHIpLmpvaW4obil9LG5lPWJ1O2Z1bmN0aW9uIE0oKXt9TS5wcm90b3R5cGU9e2RpZmY6ZnVuY3Rpb24odCxyKXt2YXIgbix1PWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7fSxpPXUuY2FsbGJhY2s7dHlwZW9mIHU9PVwiZnVuY3Rpb25cIiYmKGk9dSx1PXt9KTt2YXIgbz10aGlzO2Z1bmN0aW9uIHMoRSl7cmV0dXJuIEU9by5wb3N0UHJvY2VzcyhFLHUpLGk/KHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpKEUpfSwwKSwhMCk6RX10PXRoaXMuY2FzdElucHV0KHQsdSkscj10aGlzLmNhc3RJbnB1dChyLHUpLHQ9dGhpcy5yZW1vdmVFbXB0eSh0aGlzLnRva2VuaXplKHQsdSkpLHI9dGhpcy5yZW1vdmVFbXB0eSh0aGlzLnRva2VuaXplKHIsdSkpO3ZhciBhPXIubGVuZ3RoLEQ9dC5sZW5ndGgsbD0xLHA9YStEO3UubWF4RWRpdExlbmd0aCE9bnVsbCYmKHA9TWF0aC5taW4ocCx1Lm1heEVkaXRMZW5ndGgpKTt2YXIgZj0obj11LnRpbWVvdXQpIT09bnVsbCYmbiE9PXZvaWQgMD9uOjEvMCxkPURhdGUubm93KCkrZixjPVt7b2xkUG9zOi0xLGxhc3RDb21wb25lbnQ6dm9pZCAwfV0sRj10aGlzLmV4dHJhY3RDb21tb24oY1swXSxyLHQsMCx1KTtpZihjWzBdLm9sZFBvcysxPj1EJiZGKzE+PWEpcmV0dXJuIHMoRnIobyxjWzBdLmxhc3RDb21wb25lbnQscix0LG8udXNlTG9uZ2VzdFRva2VuKSk7dmFyIG09LTEvMCxoPTEvMDtmdW5jdGlvbiBDKCl7Zm9yKHZhciBFPU1hdGgubWF4KG0sLWwpO0U8PU1hdGgubWluKGgsbCk7RSs9Mil7dmFyIGc9dm9pZCAwLGo9Y1tFLTFdLGI9Y1tFKzFdO2omJihjW0UtMV09dm9pZCAwKTt2YXIgWD0hMTtpZihiKXt2YXIgYWU9Yi5vbGRQb3MtRTtYPWImJjA8PWFlJiZhZTxhfXZhciAkZT1qJiZqLm9sZFBvcysxPEQ7aWYoIVgmJiEkZSl7Y1tFXT12b2lkIDA7Y29udGludWV9aWYoISRlfHxYJiZqLm9sZFBvczxiLm9sZFBvcz9nPW8uYWRkVG9QYXRoKGIsITAsITEsMCx1KTpnPW8uYWRkVG9QYXRoKGosITEsITAsMSx1KSxGPW8uZXh0cmFjdENvbW1vbihnLHIsdCxFLHUpLGcub2xkUG9zKzE+PUQmJkYrMT49YSlyZXR1cm4gcyhGcihvLGcubGFzdENvbXBvbmVudCxyLHQsby51c2VMb25nZXN0VG9rZW4pKTtjW0VdPWcsZy5vbGRQb3MrMT49RCYmKGg9TWF0aC5taW4oaCxFLTEpKSxGKzE+PWEmJihtPU1hdGgubWF4KG0sRSsxKSl9bCsrfWlmKGkpKGZ1bmN0aW9uIEUoKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYobD5wfHxEYXRlLm5vdygpPmQpcmV0dXJuIGkoKTtDKCl8fEUoKX0sMCl9KSgpO2Vsc2UgZm9yKDtsPD1wJiZEYXRlLm5vdygpPD1kOyl7dmFyIHY9QygpO2lmKHYpcmV0dXJuIHZ9fSxhZGRUb1BhdGg6ZnVuY3Rpb24odCxyLG4sdSxpKXt2YXIgbz10Lmxhc3RDb21wb25lbnQ7cmV0dXJuIG8mJiFpLm9uZUNoYW5nZVBlclRva2VuJiZvLmFkZGVkPT09ciYmby5yZW1vdmVkPT09bj97b2xkUG9zOnQub2xkUG9zK3UsbGFzdENvbXBvbmVudDp7Y291bnQ6by5jb3VudCsxLGFkZGVkOnIscmVtb3ZlZDpuLHByZXZpb3VzQ29tcG9uZW50Om8ucHJldmlvdXNDb21wb25lbnR9fTp7b2xkUG9zOnQub2xkUG9zK3UsbGFzdENvbXBvbmVudDp7Y291bnQ6MSxhZGRlZDpyLHJlbW92ZWQ6bixwcmV2aW91c0NvbXBvbmVudDpvfX19LGV4dHJhY3RDb21tb246ZnVuY3Rpb24odCxyLG4sdSxpKXtmb3IodmFyIG89ci5sZW5ndGgscz1uLmxlbmd0aCxhPXQub2xkUG9zLEQ9YS11LGw9MDtEKzE8byYmYSsxPHMmJnRoaXMuZXF1YWxzKG5bYSsxXSxyW0QrMV0saSk7KUQrKyxhKyssbCsrLGkub25lQ2hhbmdlUGVyVG9rZW4mJih0Lmxhc3RDb21wb25lbnQ9e2NvdW50OjEscHJldmlvdXNDb21wb25lbnQ6dC5sYXN0Q29tcG9uZW50LGFkZGVkOiExLHJlbW92ZWQ6ITF9KTtyZXR1cm4gbCYmIWkub25lQ2hhbmdlUGVyVG9rZW4mJih0Lmxhc3RDb21wb25lbnQ9e2NvdW50OmwscHJldmlvdXNDb21wb25lbnQ6dC5sYXN0Q29tcG9uZW50LGFkZGVkOiExLHJlbW92ZWQ6ITF9KSx0Lm9sZFBvcz1hLER9LGVxdWFsczpmdW5jdGlvbih0LHIsbil7cmV0dXJuIG4uY29tcGFyYXRvcj9uLmNvbXBhcmF0b3IodCxyKTp0PT09cnx8bi5pZ25vcmVDYXNlJiZ0LnRvTG93ZXJDYXNlKCk9PT1yLnRvTG93ZXJDYXNlKCl9LHJlbW92ZUVtcHR5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj1bXSxuPTA7bjx0Lmxlbmd0aDtuKyspdFtuXSYmci5wdXNoKHRbbl0pO3JldHVybiByfSxjYXN0SW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHRva2VuaXplOmZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5mcm9tKHQpfSxqb2luOmZ1bmN0aW9uKHQpe3JldHVybiB0LmpvaW4oXCJcIil9LHBvc3RQcm9jZXNzOmZ1bmN0aW9uKHQpe3JldHVybiB0fX07ZnVuY3Rpb24gRnIoZSx0LHIsbix1KXtmb3IodmFyIGk9W10sbzt0OylpLnB1c2godCksbz10LnByZXZpb3VzQ29tcG9uZW50LGRlbGV0ZSB0LnByZXZpb3VzQ29tcG9uZW50LHQ9bztpLnJldmVyc2UoKTtmb3IodmFyIHM9MCxhPWkubGVuZ3RoLEQ9MCxsPTA7czxhO3MrKyl7dmFyIHA9aVtzXTtpZihwLnJlbW92ZWQpcC52YWx1ZT1lLmpvaW4obi5zbGljZShsLGwrcC5jb3VudCkpLGwrPXAuY291bnQ7ZWxzZXtpZighcC5hZGRlZCYmdSl7dmFyIGY9ci5zbGljZShELEQrcC5jb3VudCk7Zj1mLm1hcChmdW5jdGlvbihkLGMpe3ZhciBGPW5bbCtjXTtyZXR1cm4gRi5sZW5ndGg+ZC5sZW5ndGg/RjpkfSkscC52YWx1ZT1lLmpvaW4oZil9ZWxzZSBwLnZhbHVlPWUuam9pbihyLnNsaWNlKEQsRCtwLmNvdW50KSk7RCs9cC5jb3VudCxwLmFkZGVkfHwobCs9cC5jb3VudCl9fXJldHVybiBpfXZhciBGbz1uZXcgTTtmdW5jdGlvbiBtcihlLHQpe3ZhciByO2ZvcihyPTA7cjxlLmxlbmd0aCYmcjx0Lmxlbmd0aDtyKyspaWYoZVtyXSE9dFtyXSlyZXR1cm4gZS5zbGljZSgwLHIpO3JldHVybiBlLnNsaWNlKDAscil9ZnVuY3Rpb24gaHIoZSx0KXt2YXIgcjtpZighZXx8IXR8fGVbZS5sZW5ndGgtMV0hPXRbdC5sZW5ndGgtMV0pcmV0dXJuXCJcIjtmb3Iocj0wO3I8ZS5sZW5ndGgmJnI8dC5sZW5ndGg7cisrKWlmKGVbZS5sZW5ndGgtKHIrMSldIT10W3QubGVuZ3RoLShyKzEpXSlyZXR1cm4gZS5zbGljZSgtcik7cmV0dXJuIGUuc2xpY2UoLXIpfWZ1bmN0aW9uIHd0KGUsdCxyKXtpZihlLnNsaWNlKDAsdC5sZW5ndGgpIT10KXRocm93IEVycm9yKFwic3RyaW5nIFwiLmNvbmNhdChKU09OLnN0cmluZ2lmeShlKSxcIiBkb2Vzbid0IHN0YXJ0IHdpdGggcHJlZml4IFwiKS5jb25jYXQoSlNPTi5zdHJpbmdpZnkodCksXCI7IHRoaXMgaXMgYSBidWdcIikpO3JldHVybiByK2Uuc2xpY2UodC5sZW5ndGgpfWZ1bmN0aW9uIF90KGUsdCxyKXtpZighdClyZXR1cm4gZStyO2lmKGUuc2xpY2UoLXQubGVuZ3RoKSE9dCl0aHJvdyBFcnJvcihcInN0cmluZyBcIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZSksXCIgZG9lc24ndCBlbmQgd2l0aCBzdWZmaXggXCIpLmNvbmNhdChKU09OLnN0cmluZ2lmeSh0KSxcIjsgdGhpcyBpcyBhIGJ1Z1wiKSk7cmV0dXJuIGUuc2xpY2UoMCwtdC5sZW5ndGgpK3J9ZnVuY3Rpb24gd2UoZSx0KXtyZXR1cm4gd3QoZSx0LFwiXCIpfWZ1bmN0aW9uIFVlKGUsdCl7cmV0dXJuIF90KGUsdCxcIlwiKX1mdW5jdGlvbiBFcihlLHQpe3JldHVybiB0LnNsaWNlKDAsTnUoZSx0KSl9ZnVuY3Rpb24gTnUoZSx0KXt2YXIgcj0wO2UubGVuZ3RoPnQubGVuZ3RoJiYocj1lLmxlbmd0aC10Lmxlbmd0aCk7dmFyIG49dC5sZW5ndGg7ZS5sZW5ndGg8dC5sZW5ndGgmJihuPWUubGVuZ3RoKTt2YXIgdT1BcnJheShuKSxpPTA7dVswXT0wO2Zvcih2YXIgbz0xO288bjtvKyspe2Zvcih0W29dPT10W2ldP3Vbb109dVtpXTp1W29dPWk7aT4wJiZ0W29dIT10W2ldOylpPXVbaV07dFtvXT09dFtpXSYmaSsrfWk9MDtmb3IodmFyIHM9cjtzPGUubGVuZ3RoO3MrKyl7Zm9yKDtpPjAmJmVbc10hPXRbaV07KWk9dVtpXTtlW3NdPT10W2ldJiZpKyt9cmV0dXJuIGl9dmFyIFZlPVwiYS16QS1aMC05X1xcXFx1e0MwfS1cXFxcdXtGRn1cXFxcdXtEOH0tXFxcXHV7RjZ9XFxcXHV7Rjh9LVxcXFx1ezJDNn1cXFxcdXsyQzh9LVxcXFx1ezJEN31cXFxcdXsyREV9LVxcXFx1ezJGRn1cXFxcdXsxRTAwfS1cXFxcdXsxRUZGfVwiLE91PW5ldyBSZWdFeHAoXCJbXCIuY29uY2F0KFZlLFwiXSt8XFxcXHMrfFteXCIpLmNvbmNhdChWZSxcIl1cIiksXCJ1Z1wiKSxHZT1uZXcgTTtHZS5lcXVhbHM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiByLmlnbm9yZUNhc2UmJihlPWUudG9Mb3dlckNhc2UoKSx0PXQudG9Mb3dlckNhc2UoKSksZS50cmltKCk9PT10LnRyaW0oKX07R2UudG9rZW5pemU9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHI7aWYodC5pbnRsU2VnbWVudGVyKXtpZih0LmludGxTZWdtZW50ZXIucmVzb2x2ZWRPcHRpb25zKCkuZ3JhbnVsYXJpdHkhPVwid29yZFwiKXRocm93IG5ldyBFcnJvcignVGhlIHNlZ21lbnRlciBwYXNzZWQgbXVzdCBoYXZlIGEgZ3JhbnVsYXJpdHkgb2YgXCJ3b3JkXCInKTtyPUFycmF5LmZyb20odC5pbnRsU2VnbWVudGVyLnNlZ21lbnQoZSksZnVuY3Rpb24oaSl7cmV0dXJuIGkuc2VnbWVudH0pfWVsc2Ugcj1lLm1hdGNoKE91KXx8W107dmFyIG49W10sdT1udWxsO3JldHVybiByLmZvckVhY2goZnVuY3Rpb24oaSl7L1xccy8udGVzdChpKT91PT1udWxsP24ucHVzaChpKTpuLnB1c2gobi5wb3AoKStpKTovXFxzLy50ZXN0KHUpP25bbi5sZW5ndGgtMV09PXU/bi5wdXNoKG4ucG9wKCkraSk6bi5wdXNoKHUraSk6bi5wdXNoKGkpLHU9aX0pLG59O0dlLmpvaW49ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKHQscil7cmV0dXJuIHI9PTA/dDp0LnJlcGxhY2UoL15cXHMrLyxcIlwiKX0pLmpvaW4oXCJcIil9O0dlLnBvc3RQcm9jZXNzPWZ1bmN0aW9uKGUsdCl7aWYoIWV8fHQub25lQ2hhbmdlUGVyVG9rZW4pcmV0dXJuIGU7dmFyIHI9bnVsbCxuPW51bGwsdT1udWxsO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oaSl7aS5hZGRlZD9uPWk6aS5yZW1vdmVkP3U9aTooKG58fHUpJiZDcihyLHUsbixpKSxyPWksbj1udWxsLHU9bnVsbCl9KSwobnx8dSkmJkNyKHIsdSxuLG51bGwpLGV9O2Z1bmN0aW9uIENyKGUsdCxyLG4pe2lmKHQmJnIpe3ZhciB1PXQudmFsdWUubWF0Y2goL15cXHMqLylbMF0saT10LnZhbHVlLm1hdGNoKC9cXHMqJC8pWzBdLG89ci52YWx1ZS5tYXRjaCgvXlxccyovKVswXSxzPXIudmFsdWUubWF0Y2goL1xccyokLylbMF07aWYoZSl7dmFyIGE9bXIodSxvKTtlLnZhbHVlPV90KGUudmFsdWUsbyxhKSx0LnZhbHVlPXdlKHQudmFsdWUsYSksci52YWx1ZT13ZShyLnZhbHVlLGEpfWlmKG4pe3ZhciBEPWhyKGkscyk7bi52YWx1ZT13dChuLnZhbHVlLHMsRCksdC52YWx1ZT1VZSh0LnZhbHVlLEQpLHIudmFsdWU9VWUoci52YWx1ZSxEKX19ZWxzZSBpZihyKWUmJihyLnZhbHVlPXIudmFsdWUucmVwbGFjZSgvXlxccyovLFwiXCIpKSxuJiYobi52YWx1ZT1uLnZhbHVlLnJlcGxhY2UoL15cXHMqLyxcIlwiKSk7ZWxzZSBpZihlJiZuKXt2YXIgbD1uLnZhbHVlLm1hdGNoKC9eXFxzKi8pWzBdLHA9dC52YWx1ZS5tYXRjaCgvXlxccyovKVswXSxmPXQudmFsdWUubWF0Y2goL1xccyokLylbMF0sZD1tcihsLHApO3QudmFsdWU9d2UodC52YWx1ZSxkKTt2YXIgYz1ocih3ZShsLGQpLGYpO3QudmFsdWU9VWUodC52YWx1ZSxjKSxuLnZhbHVlPXd0KG4udmFsdWUsbCxjKSxlLnZhbHVlPV90KGUudmFsdWUsbCxsLnNsaWNlKDAsbC5sZW5ndGgtYy5sZW5ndGgpKX1lbHNlIGlmKG4pe3ZhciBGPW4udmFsdWUubWF0Y2goL15cXHMqLylbMF0sbT10LnZhbHVlLm1hdGNoKC9cXHMqJC8pWzBdLGg9RXIobSxGKTt0LnZhbHVlPVVlKHQudmFsdWUsaCl9ZWxzZSBpZihlKXt2YXIgQz1lLnZhbHVlLm1hdGNoKC9cXHMqJC8pWzBdLHY9dC52YWx1ZS5tYXRjaCgvXlxccyovKVswXSxFPUVyKEMsdik7dC52YWx1ZT13ZSh0LnZhbHVlLEUpfX12YXIgU3U9bmV3IE07U3UudG9rZW5pemU9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFJlZ0V4cChcIihcXFxccj9cXFxcbil8W1wiLmNvbmNhdChWZSxcIl0rfFteXFxcXFNcXFxcblxcXFxyXSt8W15cIikuY29uY2F0KFZlLFwiXVwiKSxcInVnXCIpO3JldHVybiBlLm1hdGNoKHQpfHxbXX07dmFyIE50PW5ldyBNO050LnRva2VuaXplPWZ1bmN0aW9uKGUsdCl7dC5zdHJpcFRyYWlsaW5nQ3ImJihlPWUucmVwbGFjZSgvXFxyXFxuL2csYFxuYCkpO3ZhciByPVtdLG49ZS5zcGxpdCgvKFxcbnxcXHJcXG4pLyk7bltuLmxlbmd0aC0xXXx8bi5wb3AoKTtmb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIGk9blt1XTt1JTImJiF0Lm5ld2xpbmVJc1Rva2VuP3Jbci5sZW5ndGgtMV0rPWk6ci5wdXNoKGkpfXJldHVybiByfTtOdC5lcXVhbHM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiByLmlnbm9yZVdoaXRlc3BhY2U/KCghci5uZXdsaW5lSXNUb2tlbnx8IWUuaW5jbHVkZXMoYFxuYCkpJiYoZT1lLnRyaW0oKSksKCFyLm5ld2xpbmVJc1Rva2VufHwhdC5pbmNsdWRlcyhgXG5gKSkmJih0PXQudHJpbSgpKSk6ci5pZ25vcmVOZXdsaW5lQXRFb2YmJiFyLm5ld2xpbmVJc1Rva2VuJiYoZS5lbmRzV2l0aChgXG5gKSYmKGU9ZS5zbGljZSgwLC0xKSksdC5lbmRzV2l0aChgXG5gKSYmKHQ9dC5zbGljZSgwLC0xKSkpLE0ucHJvdG90eXBlLmVxdWFscy5jYWxsKHRoaXMsZSx0LHIpfTt2YXIgVHU9bmV3IE07VHUudG9rZW5pemU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyl9O3ZhciBrdT1uZXcgTTtrdS50b2tlbml6ZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdCgvKFt7fTo7LF18XFxzKykvKX07ZnVuY3Rpb24geHQoZSl7XCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO3JldHVybiB4dD10eXBlb2YgU3ltYm9sPT1cImZ1bmN0aW9uXCImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PVwic3ltYm9sXCI/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIFN5bWJvbD09XCJmdW5jdGlvblwiJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSx4dChlKX12YXIgX2U9bmV3IE07X2UudXNlTG9uZ2VzdFRva2VuPSEwO19lLnRva2VuaXplPU50LnRva2VuaXplO19lLmNhc3RJbnB1dD1mdW5jdGlvbihlLHQpe3ZhciByPXQudW5kZWZpbmVkUmVwbGFjZW1lbnQsbj10LnN0cmluZ2lmeVJlcGxhY2VyLHU9bj09PXZvaWQgMD9mdW5jdGlvbihpLG8pe3JldHVybiB0eXBlb2Ygbz5cInVcIj9yOm99Om47cmV0dXJuIHR5cGVvZiBlPT1cInN0cmluZ1wiP2U6SlNPTi5zdHJpbmdpZnkoYnQoZSxudWxsLG51bGwsdSksdSxcIiAgXCIpfTtfZS5lcXVhbHM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBNLnByb3RvdHlwZS5lcXVhbHMuY2FsbChfZSxlLnJlcGxhY2UoLywoW1xcclxcbl0pL2csXCIkMVwiKSx0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csXCIkMVwiKSxyKX07ZnVuY3Rpb24gYnQoZSx0LHIsbix1KXt0PXR8fFtdLHI9cnx8W10sbiYmKGU9bih1LGUpKTt2YXIgaTtmb3IoaT0wO2k8dC5sZW5ndGg7aSs9MSlpZih0W2ldPT09ZSlyZXR1cm4gcltpXTt2YXIgbztpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT1cIltvYmplY3QgQXJyYXldXCIpe2Zvcih0LnB1c2goZSksbz1uZXcgQXJyYXkoZS5sZW5ndGgpLHIucHVzaChvKSxpPTA7aTxlLmxlbmd0aDtpKz0xKW9baV09YnQoZVtpXSx0LHIsbix1KTtyZXR1cm4gdC5wb3AoKSxyLnBvcCgpLG99aWYoZSYmZS50b0pTT04mJihlPWUudG9KU09OKCkpLHh0KGUpPT09XCJvYmplY3RcIiYmZSE9PW51bGwpe3QucHVzaChlKSxvPXt9LHIucHVzaChvKTt2YXIgcz1bXSxhO2ZvcihhIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYSkmJnMucHVzaChhKTtmb3Iocy5zb3J0KCksaT0wO2k8cy5sZW5ndGg7aSs9MSlhPXNbaV0sb1thXT1idChlW2FdLHQscixuLGEpO3QucG9wKCksci5wb3AoKX1lbHNlIG89ZTtyZXR1cm4gb312YXIgemU9bmV3IE07emUudG9rZW5pemU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2xpY2UoKX07emUuam9pbj16ZS5yZW1vdmVFbXB0eT1mdW5jdGlvbihlKXtyZXR1cm4gZX07ZnVuY3Rpb24gZ3IoZSx0LHIpe3JldHVybiB6ZS5kaWZmKGUsdCxyKX1mdW5jdGlvbiB5cihlKXtsZXQgdD1lLmluZGV4T2YoXCJcXHJcIik7cmV0dXJuIHQhPT0tMT9lLmNoYXJBdCh0KzEpPT09YFxuYD9cImNybGZcIjpcImNyXCI6XCJsZlwifWZ1bmN0aW9uIHhlKGUpe3N3aXRjaChlKXtjYXNlXCJjclwiOnJldHVyblwiXFxyXCI7Y2FzZVwiY3JsZlwiOnJldHVybmBcXHJcbmA7ZGVmYXVsdDpyZXR1cm5gXG5gfX1mdW5jdGlvbiBPdChlLHQpe2xldCByO3N3aXRjaCh0KXtjYXNlYFxuYDpyPS9cXG4vZ3U7YnJlYWs7Y2FzZVwiXFxyXCI6cj0vXFxyL2d1O2JyZWFrO2Nhc2VgXFxyXG5gOnI9L1xcclxcbi9ndTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBcImVvbFwiICR7SlNPTi5zdHJpbmdpZnkodCl9LmApfWxldCBuPWUubWF0Y2gocik7cmV0dXJuIG4/bi5sZW5ndGg6MH1mdW5jdGlvbiBBcihlKXtyZXR1cm4gbmUoITEsZSwvXFxyXFxuPy9ndSxgXG5gKX12YXIgVT1cInN0cmluZ1wiLEg9XCJhcnJheVwiLFY9XCJjdXJzb3JcIixUPVwiaW5kZW50XCIsaz1cImFsaWduXCIsTD1cInRyaW1cIixCPVwiZ3JvdXBcIixOPVwiZmlsbFwiLHc9XCJpZi1icmVha1wiLFA9XCJpbmRlbnQtaWYtYnJlYWtcIixJPVwibGluZS1zdWZmaXhcIixSPVwibGluZS1zdWZmaXgtYm91bmRhcnlcIixBPVwibGluZVwiLE89XCJsYWJlbFwiLF89XCJicmVhay1wYXJlbnRcIixLZT1uZXcgU2V0KFtWLFQsayxMLEIsTix3LFAsSSxSLEEsTyxfXSk7ZnVuY3Rpb24gTHUoZSl7aWYodHlwZW9mIGU9PVwic3RyaW5nXCIpcmV0dXJuIFU7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gSDtpZighZSlyZXR1cm47bGV0e3R5cGU6dH09ZTtpZihLZS5oYXModCkpcmV0dXJuIHR9dmFyIHo9THU7dmFyIFB1PWU9Pm5ldyBJbnRsLkxpc3RGb3JtYXQoXCJlbi1VU1wiLHt0eXBlOlwiZGlzanVuY3Rpb25cIn0pLmZvcm1hdChlKTtmdW5jdGlvbiBJdShlKXtsZXQgdD1lPT09bnVsbD9cIm51bGxcIjp0eXBlb2YgZTtpZih0IT09XCJzdHJpbmdcIiYmdCE9PVwib2JqZWN0XCIpcmV0dXJuYFVuZXhwZWN0ZWQgZG9jICcke3R9JywgXG5FeHBlY3RlZCBpdCB0byBiZSAnc3RyaW5nJyBvciAnb2JqZWN0Jy5gO2lmKHooZSkpdGhyb3cgbmV3IEVycm9yKFwiZG9jIGlzIHZhbGlkLlwiKTtsZXQgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk7aWYociE9PVwiW29iamVjdCBPYmplY3RdXCIpcmV0dXJuYFVuZXhwZWN0ZWQgZG9jICcke3J9Jy5gO2xldCBuPVB1KFsuLi5LZV0ubWFwKHU9PmAnJHt1fSdgKSk7cmV0dXJuYFVuZXhwZWN0ZWQgZG9jLnR5cGUgJyR7ZS50eXBlfScuXG5FeHBlY3RlZCBpdCB0byBiZSAke259LmB9dmFyIFN0PWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIkludmFsaWREb2NFcnJvclwiO2NvbnN0cnVjdG9yKHQpe3N1cGVyKEl1KHQpKSx0aGlzLmRvYz10fX0sUT1TdDt2YXIgdnI9e307ZnVuY3Rpb24gUnUoZSx0LHIsbil7bGV0IHU9W2VdO2Zvcig7dS5sZW5ndGg+MDspe2xldCBpPXUucG9wKCk7aWYoaT09PXZyKXtyKHUucG9wKCkpO2NvbnRpbnVlfXImJnUucHVzaChpLHZyKTtsZXQgbz16KGkpO2lmKCFvKXRocm93IG5ldyBRKGkpO2lmKCh0PT1udWxsP3ZvaWQgMDp0KGkpKSE9PSExKXN3aXRjaChvKXtjYXNlIEg6Y2FzZSBOOntsZXQgcz1vPT09SD9pOmkucGFydHM7Zm9yKGxldCBhPXMubGVuZ3RoLEQ9YS0xO0Q+PTA7LS1EKXUucHVzaChzW0RdKTticmVha31jYXNlIHc6dS5wdXNoKGkuZmxhdENvbnRlbnRzLGkuYnJlYWtDb250ZW50cyk7YnJlYWs7Y2FzZSBCOmlmKG4mJmkuZXhwYW5kZWRTdGF0ZXMpZm9yKGxldCBzPWkuZXhwYW5kZWRTdGF0ZXMubGVuZ3RoLGE9cy0xO2E+PTA7LS1hKXUucHVzaChpLmV4cGFuZGVkU3RhdGVzW2FdKTtlbHNlIHUucHVzaChpLmNvbnRlbnRzKTticmVhaztjYXNlIGs6Y2FzZSBUOmNhc2UgUDpjYXNlIE86Y2FzZSBJOnUucHVzaChpLmNvbnRlbnRzKTticmVhaztjYXNlIFU6Y2FzZSBWOmNhc2UgTDpjYXNlIFI6Y2FzZSBBOmNhc2UgXzpicmVhaztkZWZhdWx0OnRocm93IG5ldyBRKGkpfX19dmFyIGJlPVJ1O3ZhciBCcj0oKT0+e30sRz1CcixKZT1CcjtmdW5jdGlvbiBsZShlKXtyZXR1cm4gRyhlKSx7dHlwZTpULGNvbnRlbnRzOmV9fWZ1bmN0aW9uIERlKGUsdCl7cmV0dXJuIEcodCkse3R5cGU6ayxjb250ZW50czp0LG46ZX19ZnVuY3Rpb24gVHQoZSx0PXt9KXtyZXR1cm4gRyhlKSxKZSh0LmV4cGFuZGVkU3RhdGVzLCEwKSx7dHlwZTpCLGlkOnQuaWQsY29udGVudHM6ZSxicmVhazohIXQuc2hvdWxkQnJlYWssZXhwYW5kZWRTdGF0ZXM6dC5leHBhbmRlZFN0YXRlc319ZnVuY3Rpb24gd3IoZSl7cmV0dXJuIERlKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxlKX1mdW5jdGlvbiBfcihlKXtyZXR1cm4gRGUoe3R5cGU6XCJyb290XCJ9LGUpfWZ1bmN0aW9uIHhyKGUpe3JldHVybiBEZSgtMSxlKX1mdW5jdGlvbiBicihlLHQpe3JldHVybiBUdChlWzBdLHsuLi50LGV4cGFuZGVkU3RhdGVzOmV9KX1mdW5jdGlvbiBOcihlKXtyZXR1cm4gSmUoZSkse3R5cGU6TixwYXJ0czplfX1mdW5jdGlvbiBPcihlLHQ9XCJcIixyPXt9KXtyZXR1cm4gRyhlKSx0IT09XCJcIiYmRyh0KSx7dHlwZTp3LGJyZWFrQ29udGVudHM6ZSxmbGF0Q29udGVudHM6dCxncm91cElkOnIuZ3JvdXBJZH19ZnVuY3Rpb24gU3IoZSx0KXtyZXR1cm4gRyhlKSx7dHlwZTpQLGNvbnRlbnRzOmUsZ3JvdXBJZDp0Lmdyb3VwSWQsbmVnYXRlOnQubmVnYXRlfX1mdW5jdGlvbiBOZShlKXtyZXR1cm4gRyhlKSx7dHlwZTpJLGNvbnRlbnRzOmV9fXZhciBUcj17dHlwZTpSfSxGZT17dHlwZTpffSxrcj17dHlwZTpMfSxPZT17dHlwZTpBLGhhcmQ6ITB9LGt0PXt0eXBlOkEsaGFyZDohMCxsaXRlcmFsOiEwfSxxZT17dHlwZTpBfSxMcj17dHlwZTpBLHNvZnQ6ITB9LEs9W09lLEZlXSxYZT1ba3QsRmVdLFo9e3R5cGU6Vn07ZnVuY3Rpb24gU2UoZSx0KXtHKGUpLEplKHQpO2xldCByPVtdO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKW4hPT0wJiZyLnB1c2goZSksci5wdXNoKHRbbl0pO3JldHVybiByfWZ1bmN0aW9uIFFlKGUsdCxyKXtHKGUpO2xldCBuPWU7aWYodD4wKXtmb3IobGV0IHU9MDt1PE1hdGguZmxvb3IodC9yKTsrK3Upbj1sZShuKTtuPURlKHQlcixuKSxuPURlKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxuKX1yZXR1cm4gbn1mdW5jdGlvbiBQcihlLHQpe3JldHVybiBHKHQpLGU/e3R5cGU6TyxsYWJlbDplLGNvbnRlbnRzOnR9OnR9ZnVuY3Rpb24gZWUoZSl7dmFyIHQ7aWYoIWUpcmV0dXJuXCJcIjtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgcj1bXTtmb3IobGV0IG4gb2YgZSlpZihBcnJheS5pc0FycmF5KG4pKXIucHVzaCguLi5lZShuKSk7ZWxzZXtsZXQgdT1lZShuKTt1IT09XCJcIiYmci5wdXNoKHUpfXJldHVybiByfXJldHVybiBlLnR5cGU9PT13P3suLi5lLGJyZWFrQ29udGVudHM6ZWUoZS5icmVha0NvbnRlbnRzKSxmbGF0Q29udGVudHM6ZWUoZS5mbGF0Q29udGVudHMpfTplLnR5cGU9PT1CP3suLi5lLGNvbnRlbnRzOmVlKGUuY29udGVudHMpLGV4cGFuZGVkU3RhdGVzOih0PWUuZXhwYW5kZWRTdGF0ZXMpPT1udWxsP3ZvaWQgMDp0Lm1hcChlZSl9OmUudHlwZT09PU4/e3R5cGU6XCJmaWxsXCIscGFydHM6ZS5wYXJ0cy5tYXAoZWUpfTplLmNvbnRlbnRzP3suLi5lLGNvbnRlbnRzOmVlKGUuY29udGVudHMpfTplfWZ1bmN0aW9uIElyKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCkscj1uZXcgU2V0O3JldHVybiBuKGVlKGUpKTtmdW5jdGlvbiBuKGksbyxzKXt2YXIgYSxEO2lmKHR5cGVvZiBpPT1cInN0cmluZ1wiKXJldHVybiBKU09OLnN0cmluZ2lmeShpKTtpZihBcnJheS5pc0FycmF5KGkpKXtsZXQgbD1pLm1hcChuKS5maWx0ZXIoQm9vbGVhbik7cmV0dXJuIGwubGVuZ3RoPT09MT9sWzBdOmBbJHtsLmpvaW4oXCIsIFwiKX1dYH1pZihpLnR5cGU9PT1BKXtsZXQgbD0oKGE9cz09bnVsbD92b2lkIDA6c1tvKzFdKT09bnVsbD92b2lkIDA6YS50eXBlKT09PV87cmV0dXJuIGkubGl0ZXJhbD9sP1wibGl0ZXJhbGxpbmVcIjpcImxpdGVyYWxsaW5lV2l0aG91dEJyZWFrUGFyZW50XCI6aS5oYXJkP2w/XCJoYXJkbGluZVwiOlwiaGFyZGxpbmVXaXRob3V0QnJlYWtQYXJlbnRcIjppLnNvZnQ/XCJzb2Z0bGluZVwiOlwibGluZVwifWlmKGkudHlwZT09PV8pcmV0dXJuKChEPXM9PW51bGw/dm9pZCAwOnNbby0xXSk9PW51bGw/dm9pZCAwOkQudHlwZSk9PT1BJiZzW28tMV0uaGFyZD92b2lkIDA6XCJicmVha1BhcmVudFwiO2lmKGkudHlwZT09PUwpcmV0dXJuXCJ0cmltXCI7aWYoaS50eXBlPT09VClyZXR1cm5cImluZGVudChcIituKGkuY29udGVudHMpK1wiKVwiO2lmKGkudHlwZT09PWspcmV0dXJuIGkubj09PU51bWJlci5ORUdBVElWRV9JTkZJTklUWT9cImRlZGVudFRvUm9vdChcIituKGkuY29udGVudHMpK1wiKVwiOmkubjwwP1wiZGVkZW50KFwiK24oaS5jb250ZW50cykrXCIpXCI6aS5uLnR5cGU9PT1cInJvb3RcIj9cIm1hcmtBc1Jvb3QoXCIrbihpLmNvbnRlbnRzKStcIilcIjpcImFsaWduKFwiK0pTT04uc3RyaW5naWZ5KGkubikrXCIsIFwiK24oaS5jb250ZW50cykrXCIpXCI7aWYoaS50eXBlPT09dylyZXR1cm5cImlmQnJlYWsoXCIrbihpLmJyZWFrQ29udGVudHMpKyhpLmZsYXRDb250ZW50cz9cIiwgXCIrbihpLmZsYXRDb250ZW50cyk6XCJcIikrKGkuZ3JvdXBJZD8oaS5mbGF0Q29udGVudHM/XCJcIjonLCBcIlwiJykrYCwgeyBncm91cElkOiAke3UoaS5ncm91cElkKX0gfWA6XCJcIikrXCIpXCI7aWYoaS50eXBlPT09UCl7bGV0IGw9W107aS5uZWdhdGUmJmwucHVzaChcIm5lZ2F0ZTogdHJ1ZVwiKSxpLmdyb3VwSWQmJmwucHVzaChgZ3JvdXBJZDogJHt1KGkuZ3JvdXBJZCl9YCk7bGV0IHA9bC5sZW5ndGg+MD9gLCB7ICR7bC5qb2luKFwiLCBcIil9IH1gOlwiXCI7cmV0dXJuYGluZGVudElmQnJlYWsoJHtuKGkuY29udGVudHMpfSR7cH0pYH1pZihpLnR5cGU9PT1CKXtsZXQgbD1bXTtpLmJyZWFrJiZpLmJyZWFrIT09XCJwcm9wYWdhdGVkXCImJmwucHVzaChcInNob3VsZEJyZWFrOiB0cnVlXCIpLGkuaWQmJmwucHVzaChgaWQ6ICR7dShpLmlkKX1gKTtsZXQgcD1sLmxlbmd0aD4wP2AsIHsgJHtsLmpvaW4oXCIsIFwiKX0gfWA6XCJcIjtyZXR1cm4gaS5leHBhbmRlZFN0YXRlcz9gY29uZGl0aW9uYWxHcm91cChbJHtpLmV4cGFuZGVkU3RhdGVzLm1hcChmPT5uKGYpKS5qb2luKFwiLFwiKX1dJHtwfSlgOmBncm91cCgke24oaS5jb250ZW50cyl9JHtwfSlgfWlmKGkudHlwZT09PU4pcmV0dXJuYGZpbGwoWyR7aS5wYXJ0cy5tYXAobD0+bihsKSkuam9pbihcIiwgXCIpfV0pYDtpZihpLnR5cGU9PT1JKXJldHVyblwibGluZVN1ZmZpeChcIituKGkuY29udGVudHMpK1wiKVwiO2lmKGkudHlwZT09PVIpcmV0dXJuXCJsaW5lU3VmZml4Qm91bmRhcnlcIjtpZihpLnR5cGU9PT1PKXJldHVybmBsYWJlbCgke0pTT04uc3RyaW5naWZ5KGkubGFiZWwpfSwgJHtuKGkuY29udGVudHMpfSlgO3Rocm93IG5ldyBFcnJvcihcIlVua25vd24gZG9jIHR5cGUgXCIraS50eXBlKX1mdW5jdGlvbiB1KGkpe2lmKHR5cGVvZiBpIT1cInN5bWJvbFwiKXJldHVybiBKU09OLnN0cmluZ2lmeShTdHJpbmcoaSkpO2lmKGkgaW4gdClyZXR1cm4gdFtpXTtsZXQgbz1pLmRlc2NyaXB0aW9ufHxcInN5bWJvbFwiO2ZvcihsZXQgcz0wOztzKyspe2xldCBhPW8rKHM+MD9gICMke3N9YDpcIlwiKTtpZighci5oYXMoYSkpcmV0dXJuIHIuYWRkKGEpLHRbaV09YFN5bWJvbC5mb3IoJHtKU09OLnN0cmluZ2lmeShhKX0pYH19fXZhciBZdT0oZSx0LHIpPT57aWYoIShlJiZ0PT1udWxsKSlyZXR1cm4gQXJyYXkuaXNBcnJheSh0KXx8dHlwZW9mIHQ9PVwic3RyaW5nXCI/dFtyPDA/dC5sZW5ndGgrcjpyXTp0LmF0KHIpfSx5PVl1O3ZhciBScj0oKT0+L1sjKjAtOV1cXHVGRTBGP1xcdTIwRTN8W1xceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjVGRVxcdTI2MDAtXFx1MjYwNFxcdTI2MEVcXHUyNjExXFx1MjYxNFxcdTI2MTVcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5MlxcdTI2OTQtXFx1MjY5N1xcdTI2OTlcXHUyNjlCXFx1MjY5Q1xcdTI2QTBcXHUyNkE3XFx1MjZBQVxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDOFxcdTI2Q0ZcXHUyNkQxXFx1MjZFOVxcdTI2RjAtXFx1MjZGNVxcdTI2RjdcXHUyNkY4XFx1MjZGQVxcdTI3MDJcXHUyNzA4XFx1MjcwOVxcdTI3MEZcXHUyNzEyXFx1MjcxNFxcdTI3MTZcXHUyNzFEXFx1MjcyMVxcdTI3MzNcXHUyNzM0XFx1Mjc0NFxcdTI3NDdcXHUyNzU3XFx1Mjc2M1xcdTI3QTFcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTJCMUJcXHUyQjFDXFx1MkI1NVxcdTMwMzBcXHUzMDNEXFx1MzI5N1xcdTMyOTldXFx1RkUwRj98W1xcdTI2MURcXHUyNzBDXFx1MjcwRF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/fFtcXHUyNzBBXFx1MjcwQl0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1MjNFOS1cXHUyM0VDXFx1MjNGMFxcdTIzRjNcXHUyNUZEXFx1MjY5M1xcdTI2QTFcXHUyNkFCXFx1MjZDNVxcdTI2Q0VcXHUyNkQ0XFx1MjZFQVxcdTI2RkRcXHUyNzA1XFx1MjcyOFxcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc5NS1cXHUyNzk3XFx1MjdCMFxcdTI3QkZcXHUyQjUwXXxcXHUyNkQzXFx1RkUwRj8oPzpcXHUyMDBEXFx1RDgzRFxcdURDQTUpP3xcXHUyNkY5KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHUyNzY0XFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1RDgzRFxcdUREMjV8XFx1RDgzRVxcdURFNzkpKT98XFx1RDgzQyg/OltcXHVEQzA0XFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdURFMDJcXHVERTM3XFx1REYyMVxcdURGMjQtXFx1REYyQ1xcdURGMzZcXHVERjdEXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFXFx1REY5RlxcdURGQ0RcXHVERkNFXFx1REZENC1cXHVERkRGXFx1REZGNVxcdURGRjddXFx1RkUwRj98W1xcdURGODVcXHVERkMyXFx1REZDN10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REZDNFxcdURGQ0FdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdURGQ0JcXHVERkNDXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdURDQ0ZcXHVERDhFXFx1REQ5MS1cXHVERDlBXFx1REUwMVxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTM2XFx1REUzOC1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjBcXHVERjJELVxcdURGMzVcXHVERjM3LVxcdURGNDNcXHVERjQ1LVxcdURGNEFcXHVERjRDLVxcdURGN0NcXHVERjdFLVxcdURGODRcXHVERjg2LVxcdURGOTNcXHVERkEwLVxcdURGQzFcXHVERkM1XFx1REZDNlxcdURGQzhcXHVERkM5XFx1REZDRi1cXHVERkQzXFx1REZFMC1cXHVERkYwXFx1REZGOC1cXHVERkZGXXxcXHVEREU2XFx1RDgzQ1tcXHVEREU4LVxcdURERUNcXHVEREVFXFx1RERGMVxcdURERjJcXHVEREY0XFx1RERGNi1cXHVEREZBXFx1RERGQ1xcdURERkRcXHVEREZGXXxcXHVEREU3XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRlxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRVxcdURERkZdfFxcdURERThcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFOVxcdURERUItXFx1RERFRVxcdURERjAtXFx1RERGN1xcdURERkEtXFx1RERGRl18XFx1RERFOVxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl18XFx1RERFQVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdfFxcdURERUJcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN118XFx1RERFQ1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV18XFx1RERFRFxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXXxcXHVEREVFXFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldfFxcdURERUZcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdfFxcdURERjBcXHVEODNDW1xcdURERUFcXHVEREVDLVxcdURERUVcXHVEREYyXFx1RERGM1xcdURERjVcXHVEREY3XFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREYxXFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdfFxcdURERjJcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdfFxcdURERjNcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl18XFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdURERjVcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV18XFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdURERjdcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXXxcXHVEREY4XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXXxcXHVEREY5XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl18XFx1RERGQVxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl18XFx1RERGQlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV18XFx1RERGQ1xcdUQ4M0NbXFx1RERFQlxcdURERjhdfFxcdURERkRcXHVEODNDXFx1RERGMHxcXHVEREZFXFx1RDgzQ1tcXHVEREVBXFx1RERGOV18XFx1RERGRlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXXxcXHVERjQ0KD86XFx1MjAwRFxcdUQ4M0RcXHVERkVCKT98XFx1REY0Qig/OlxcdTIwMERcXHVEODNEXFx1REZFOSk/fFxcdURGQzMoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMEQoPzpbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98XFx1MjdBMVxcdUZFMEY/KSk/fFxcdURGRjNcXHVGRTBGPyg/OlxcdTIwMEQoPzpcXHUyNkE3XFx1RkUwRj98XFx1RDgzQ1xcdURGMDgpKT98XFx1REZGNCg/OlxcdTIwMERcXHUyNjIwXFx1RkUwRj98XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2MlxcdURCNDAoPzpcXHVEQzY1XFx1REI0MFxcdURDNkVcXHVEQjQwXFx1REM2N3xcXHVEQzczXFx1REI0MFxcdURDNjNcXHVEQjQwXFx1REM3NHxcXHVEQzc3XFx1REI0MFxcdURDNkNcXHVEQjQwXFx1REM3MylcXHVEQjQwXFx1REM3Rik/KXxcXHVEODNEKD86W1xcdURDM0ZcXHVEQ0ZEXFx1REQ0OVxcdURENEFcXHVERDZGXFx1REQ3MFxcdURENzNcXHVERDc2LVxcdURENzlcXHVERDg3XFx1REQ4QS1cXHVERDhEXFx1RERBNVxcdUREQThcXHVEREIxXFx1RERCMlxcdUREQkNcXHVEREMyLVxcdUREQzRcXHVEREQxLVxcdURERDNcXHVERERDLVxcdUREREVcXHVEREUxXFx1RERFM1xcdURERThcXHVEREVGXFx1RERGM1xcdURERkFcXHVERUNCXFx1REVDRC1cXHVERUNGXFx1REVFMC1cXHVERUU1XFx1REVFOVxcdURFRjBcXHVERUYzXVxcdUZFMEY/fFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjZcXHVEQzY3XFx1REM2Qi1cXHVEQzZEXFx1REM3MlxcdURDNzQtXFx1REM3NlxcdURDNzhcXHVEQzdDXFx1REM4M1xcdURDODVcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDdBXFx1REQ5NVxcdUREOTZcXHVERTRDXFx1REU0RlxcdURFQzBcXHVERUNDXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVEQzZFXFx1REM3MFxcdURDNzFcXHVEQzczXFx1REM3N1xcdURDODFcXHVEQzgyXFx1REM4NlxcdURDODdcXHVERTQ1LVxcdURFNDdcXHVERTRCXFx1REU0RFxcdURFNEVcXHVERUEzXFx1REVCNFxcdURFQjVdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdURENzRcXHVERDkwXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT98W1xcdURDMDAtXFx1REMwN1xcdURDMDktXFx1REMxNFxcdURDMTYtXFx1REMyNVxcdURDMjctXFx1REMzQVxcdURDM0MtXFx1REMzRVxcdURDNDBcXHVEQzQ0XFx1REM0NVxcdURDNTEtXFx1REM2NVxcdURDNkFcXHVEQzc5LVxcdURDN0JcXHVEQzdELVxcdURDODBcXHVEQzg0XFx1REM4OC1cXHVEQzhFXFx1REM5MFxcdURDOTItXFx1RENBOVxcdURDQUItXFx1RENGQ1xcdURDRkYtXFx1REQzRFxcdURENEItXFx1REQ0RVxcdURENTAtXFx1REQ2N1xcdUREQTRcXHVEREZCLVxcdURFMkRcXHVERTJGLVxcdURFMzRcXHVERTM3LVxcdURFNDFcXHVERTQzXFx1REU0NFxcdURFNDgtXFx1REU0QVxcdURFODAtXFx1REVBMlxcdURFQTQtXFx1REVCM1xcdURFQjctXFx1REVCRlxcdURFQzEtXFx1REVDNVxcdURFRDAtXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFREMtXFx1REVERlxcdURFRUJcXHVERUVDXFx1REVGNC1cXHVERUZDXFx1REZFMC1cXHVERkVCXFx1REZGMF18XFx1REMwOCg/OlxcdTIwMERcXHUyQjFCKT98XFx1REMxNSg/OlxcdTIwMERcXHVEODNFXFx1RERCQSk/fFxcdURDMjYoPzpcXHUyMDBEKD86XFx1MkIxQnxcXHVEODNEXFx1REQyNSkpP3xcXHVEQzNCKD86XFx1MjAwRFxcdTI3NDRcXHVGRTBGPyk/fFxcdURDNDFcXHVGRTBGPyg/OlxcdTIwMERcXHVEODNEXFx1RERFOFxcdUZFMEY/KT98XFx1REM2OCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4fFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldXFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KXxbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM10pKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSkpKT8pKT98XFx1REM2OSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9bXFx1REM2OFxcdURDNjldfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0QoPzpbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/fFxcdURDNjlcXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pKXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM10pKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkMtXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzZGKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURENzUoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURFMkUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQTgpP3xcXHVERTM1KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCKT98XFx1REUzNig/OlxcdTIwMERcXHVEODNDXFx1REYyQlxcdUZFMEY/KT98XFx1REU0Mig/OlxcdTIwMERbXFx1MjE5NFxcdTIxOTVdXFx1RkUwRj8pP3xcXHVERUI2KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEKD86W1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFxcdTI3QTFcXHVGRTBGPykpPyl8XFx1RDgzRSg/OltcXHVERDBDXFx1REQwRlxcdUREMTgtXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XFx1REVDMy1cXHVERUM1XFx1REVGMFxcdURFRjItXFx1REVGOF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REQyNlxcdUREMzVcXHVERDM3LVxcdUREMzlcXHVERDNEXFx1REQzRVxcdUREQjhcXHVEREI5XFx1RERDRFxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERERFXFx1RERERl0oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREMERcXHVERDBFXFx1REQxMC1cXHVERDE3XFx1REQyMC1cXHVERDI1XFx1REQyNy1cXHVERDJGXFx1REQzQVxcdUREM0YtXFx1REQ0NVxcdURENDctXFx1REQ3NlxcdURENzgtXFx1RERCNFxcdUREQjdcXHVEREJBXFx1RERCQy1cXHVERENDXFx1REREMFxcdURERTAtXFx1RERGRlxcdURFNzAtXFx1REU3Q1xcdURFODAtXFx1REU4OVxcdURFOEYtXFx1REVDMlxcdURFQzZcXHVERUNFLVxcdURFRENcXHVERURGLVxcdURFRTldfFxcdUREM0MoPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/fFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFxcdUREQ0UoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMEQoPzpbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98XFx1MjdBMVxcdUZFMEY/KSk/fFxcdURERDEoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxfFxcdURERDFcXHUyMDBEXFx1RDgzRVxcdURERDIoPzpcXHUyMDBEXFx1RDgzRVxcdURERDIpP3xcXHVEREQyKD86XFx1MjAwRFxcdUQ4M0VcXHVEREQyKT8pKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpPykpP3xcXHVERUYxKD86XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pP3xcXHVERkZDKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSk/fFxcdURGRkQoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKT98XFx1REZGRSg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pP3xcXHVERkZGKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKT8pKT8pL2c7ZnVuY3Rpb24gWXIoZSl7cmV0dXJuIGU9PT0xMjI4OHx8ZT49NjUyODEmJmU8PTY1Mzc2fHxlPj02NTUwNCYmZTw9NjU1MTB9ZnVuY3Rpb24ganIoZSl7cmV0dXJuIGU+PTQzNTImJmU8PTQ0NDd8fGU9PT04OTg2fHxlPT09ODk4N3x8ZT09PTkwMDF8fGU9PT05MDAyfHxlPj05MTkzJiZlPD05MTk2fHxlPT09OTIwMHx8ZT09PTkyMDN8fGU9PT05NzI1fHxlPT09OTcyNnx8ZT09PTk3NDh8fGU9PT05NzQ5fHxlPj05Nzc2JiZlPD05NzgzfHxlPj05ODAwJiZlPD05ODExfHxlPT09OTg1NXx8ZT49OTg2NiYmZTw9OTg3MXx8ZT09PTk4NzV8fGU9PT05ODg5fHxlPT09OTg5OHx8ZT09PTk4OTl8fGU9PT05OTE3fHxlPT09OTkxOHx8ZT09PTk5MjR8fGU9PT05OTI1fHxlPT09OTkzNHx8ZT09PTk5NDB8fGU9PT05OTYyfHxlPT09OTk3MHx8ZT09PTk5NzF8fGU9PT05OTczfHxlPT09OTk3OHx8ZT09PTk5ODF8fGU9PT05OTg5fHxlPT09OTk5NHx8ZT09PTk5OTV8fGU9PT0xMDAyNHx8ZT09PTEwMDYwfHxlPT09MTAwNjJ8fGU+PTEwMDY3JiZlPD0xMDA2OXx8ZT09PTEwMDcxfHxlPj0xMDEzMyYmZTw9MTAxMzV8fGU9PT0xMDE2MHx8ZT09PTEwMTc1fHxlPT09MTEwMzV8fGU9PT0xMTAzNnx8ZT09PTExMDg4fHxlPT09MTEwOTN8fGU+PTExOTA0JiZlPD0xMTkyOXx8ZT49MTE5MzEmJmU8PTEyMDE5fHxlPj0xMjAzMiYmZTw9MTIyNDV8fGU+PTEyMjcyJiZlPD0xMjI4N3x8ZT49MTIyODkmJmU8PTEyMzUwfHxlPj0xMjM1MyYmZTw9MTI0Mzh8fGU+PTEyNDQxJiZlPD0xMjU0M3x8ZT49MTI1NDkmJmU8PTEyNTkxfHxlPj0xMjU5MyYmZTw9MTI2ODZ8fGU+PTEyNjg4JiZlPD0xMjc3M3x8ZT49MTI3ODMmJmU8PTEyODMwfHxlPj0xMjgzMiYmZTw9MTI4NzF8fGU+PTEyODgwJiZlPD00MjEyNHx8ZT49NDIxMjgmJmU8PTQyMTgyfHxlPj00MzM2MCYmZTw9NDMzODh8fGU+PTQ0MDMyJiZlPD01NTIwM3x8ZT49NjM3NDQmJmU8PTY0MjU1fHxlPj02NTA0MCYmZTw9NjUwNDl8fGU+PTY1MDcyJiZlPD02NTEwNnx8ZT49NjUxMDgmJmU8PTY1MTI2fHxlPj02NTEyOCYmZTw9NjUxMzF8fGU+PTk0MTc2JiZlPD05NDE4MHx8ZT09PTk0MTkyfHxlPT09OTQxOTN8fGU+PTk0MjA4JiZlPD0xMDAzNDN8fGU+PTEwMDM1MiYmZTw9MTAxNTg5fHxlPj0xMDE2MzEmJmU8PTEwMTY0MHx8ZT49MTEwNTc2JiZlPD0xMTA1Nzl8fGU+PTExMDU4MSYmZTw9MTEwNTg3fHxlPT09MTEwNTg5fHxlPT09MTEwNTkwfHxlPj0xMTA1OTImJmU8PTExMDg4Mnx8ZT09PTExMDg5OHx8ZT49MTEwOTI4JiZlPD0xMTA5MzB8fGU9PT0xMTA5MzN8fGU+PTExMDk0OCYmZTw9MTEwOTUxfHxlPj0xMTA5NjAmJmU8PTExMTM1NXx8ZT49MTE5NTUyJiZlPD0xMTk2Mzh8fGU+PTExOTY0OCYmZTw9MTE5NjcwfHxlPT09MTI2OTgwfHxlPT09MTI3MTgzfHxlPT09MTI3Mzc0fHxlPj0xMjczNzcmJmU8PTEyNzM4Nnx8ZT49MTI3NDg4JiZlPD0xMjc0OTB8fGU+PTEyNzUwNCYmZTw9MTI3NTQ3fHxlPj0xMjc1NTImJmU8PTEyNzU2MHx8ZT09PTEyNzU2OHx8ZT09PTEyNzU2OXx8ZT49MTI3NTg0JiZlPD0xMjc1ODl8fGU+PTEyNzc0NCYmZTw9MTI3Nzc2fHxlPj0xMjc3ODkmJmU8PTEyNzc5N3x8ZT49MTI3Nzk5JiZlPD0xMjc4Njh8fGU+PTEyNzg3MCYmZTw9MTI3ODkxfHxlPj0xMjc5MDQmJmU8PTEyNzk0Nnx8ZT49MTI3OTUxJiZlPD0xMjc5NTV8fGU+PTEyNzk2OCYmZTw9MTI3OTg0fHxlPT09MTI3OTg4fHxlPj0xMjc5OTImJmU8PTEyODA2Mnx8ZT09PTEyODA2NHx8ZT49MTI4MDY2JiZlPD0xMjgyNTJ8fGU+PTEyODI1NSYmZTw9MTI4MzE3fHxlPj0xMjgzMzEmJmU8PTEyODMzNHx8ZT49MTI4MzM2JiZlPD0xMjgzNTl8fGU9PT0xMjgzNzh8fGU9PT0xMjg0MDV8fGU9PT0xMjg0MDZ8fGU9PT0xMjg0MjB8fGU+PTEyODUwNyYmZTw9MTI4NTkxfHxlPj0xMjg2NDAmJmU8PTEyODcwOXx8ZT09PTEyODcxNnx8ZT49MTI4NzIwJiZlPD0xMjg3MjJ8fGU+PTEyODcyNSYmZTw9MTI4NzI3fHxlPj0xMjg3MzImJmU8PTEyODczNXx8ZT09PTEyODc0N3x8ZT09PTEyODc0OHx8ZT49MTI4NzU2JiZlPD0xMjg3NjR8fGU+PTEyODk5MiYmZTw9MTI5MDAzfHxlPT09MTI5MDA4fHxlPj0xMjkyOTImJmU8PTEyOTMzOHx8ZT49MTI5MzQwJiZlPD0xMjkzNDl8fGU+PTEyOTM1MSYmZTw9MTI5NTM1fHxlPj0xMjk2NDgmJmU8PTEyOTY2MHx8ZT49MTI5NjY0JiZlPD0xMjk2NzN8fGU+PTEyOTY3OSYmZTw9MTI5NzM0fHxlPj0xMjk3NDImJmU8PTEyOTc1Nnx8ZT49MTI5NzU5JiZlPD0xMjk3Njl8fGU+PTEyOTc3NiYmZTw9MTI5Nzg0fHxlPj0xMzEwNzImJmU8PTE5NjYwNXx8ZT49MTk2NjA4JiZlPD0yNjIxNDF9dmFyIEhyPWU9PiEoWXIoZSl8fGpyKGUpKTt2YXIganU9L1teXFx4MjAtXFx4N0ZdL3U7ZnVuY3Rpb24gSHUoZSl7aWYoIWUpcmV0dXJuIDA7aWYoIWp1LnRlc3QoZSkpcmV0dXJuIGUubGVuZ3RoO2U9ZS5yZXBsYWNlKFJyKCksXCIgIFwiKTtsZXQgdD0wO2ZvcihsZXQgciBvZiBlKXtsZXQgbj1yLmNvZGVQb2ludEF0KDApO248PTMxfHxuPj0xMjcmJm48PTE1OXx8bj49NzY4JiZuPD04Nzl8fCh0Kz1IcihuKT8xOjIpfXJldHVybiB0fXZhciBUZT1IdTtmdW5jdGlvbiBMZShlLHQpe2lmKHR5cGVvZiBlPT1cInN0cmluZ1wiKXJldHVybiB0KGUpO2xldCByPW5ldyBNYXA7cmV0dXJuIG4oZSk7ZnVuY3Rpb24gbihpKXtpZihyLmhhcyhpKSlyZXR1cm4gci5nZXQoaSk7bGV0IG89dShpKTtyZXR1cm4gci5zZXQoaSxvKSxvfWZ1bmN0aW9uIHUoaSl7c3dpdGNoKHooaSkpe2Nhc2UgSDpyZXR1cm4gdChpLm1hcChuKSk7Y2FzZSBOOnJldHVybiB0KHsuLi5pLHBhcnRzOmkucGFydHMubWFwKG4pfSk7Y2FzZSB3OnJldHVybiB0KHsuLi5pLGJyZWFrQ29udGVudHM6bihpLmJyZWFrQ29udGVudHMpLGZsYXRDb250ZW50czpuKGkuZmxhdENvbnRlbnRzKX0pO2Nhc2UgQjp7bGV0e2V4cGFuZGVkU3RhdGVzOm8sY29udGVudHM6c309aTtyZXR1cm4gbz8obz1vLm1hcChuKSxzPW9bMF0pOnM9bihzKSx0KHsuLi5pLGNvbnRlbnRzOnMsZXhwYW5kZWRTdGF0ZXM6b30pfWNhc2UgazpjYXNlIFQ6Y2FzZSBQOmNhc2UgTzpjYXNlIEk6cmV0dXJuIHQoey4uLmksY29udGVudHM6bihpLmNvbnRlbnRzKX0pO2Nhc2UgVTpjYXNlIFY6Y2FzZSBMOmNhc2UgUjpjYXNlIEE6Y2FzZSBfOnJldHVybiB0KGkpO2RlZmF1bHQ6dGhyb3cgbmV3IFEoaSl9fX1mdW5jdGlvbiBaZShlLHQscil7bGV0IG49cix1PSExO2Z1bmN0aW9uIGkobyl7aWYodSlyZXR1cm4hMTtsZXQgcz10KG8pO3MhPT12b2lkIDAmJih1PSEwLG49cyl9cmV0dXJuIGJlKGUsaSksbn1mdW5jdGlvbiBXdShlKXtpZihlLnR5cGU9PT1CJiZlLmJyZWFrfHxlLnR5cGU9PT1BJiZlLmhhcmR8fGUudHlwZT09PV8pcmV0dXJuITB9ZnVuY3Rpb24gTXIoZSl7cmV0dXJuIFplKGUsV3UsITEpfWZ1bmN0aW9uIFdyKGUpe2lmKGUubGVuZ3RoPjApe2xldCB0PXkoITEsZSwtMSk7IXQuZXhwYW5kZWRTdGF0ZXMmJiF0LmJyZWFrJiYodC5icmVhaz1cInByb3BhZ2F0ZWRcIil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gVXIoZSl7bGV0IHQ9bmV3IFNldCxyPVtdO2Z1bmN0aW9uIG4oaSl7aWYoaS50eXBlPT09XyYmV3IociksaS50eXBlPT09Qil7aWYoci5wdXNoKGkpLHQuaGFzKGkpKXJldHVybiExO3QuYWRkKGkpfX1mdW5jdGlvbiB1KGkpe2kudHlwZT09PUImJnIucG9wKCkuYnJlYWsmJldyKHIpfWJlKGUsbix1LCEwKX1mdW5jdGlvbiAkdShlKXtyZXR1cm4gZS50eXBlPT09QSYmIWUuaGFyZD9lLnNvZnQ/XCJcIjpcIiBcIjplLnR5cGU9PT13P2UuZmxhdENvbnRlbnRzOmV9ZnVuY3Rpb24gVnIoZSl7cmV0dXJuIExlKGUsJHUpfWZ1bmN0aW9uICRyKGUpe2ZvcihlPVsuLi5lXTtlLmxlbmd0aD49MiYmeSghMSxlLC0yKS50eXBlPT09QSYmeSghMSxlLC0xKS50eXBlPT09XzspZS5sZW5ndGgtPTI7aWYoZS5sZW5ndGg+MCl7bGV0IHQ9a2UoeSghMSxlLC0xKSk7ZVtlLmxlbmd0aC0xXT10fXJldHVybiBlfWZ1bmN0aW9uIGtlKGUpe3N3aXRjaCh6KGUpKXtjYXNlIFQ6Y2FzZSBQOmNhc2UgQjpjYXNlIEk6Y2FzZSBPOntsZXQgdD1rZShlLmNvbnRlbnRzKTtyZXR1cm57Li4uZSxjb250ZW50czp0fX1jYXNlIHc6cmV0dXJuey4uLmUsYnJlYWtDb250ZW50czprZShlLmJyZWFrQ29udGVudHMpLGZsYXRDb250ZW50czprZShlLmZsYXRDb250ZW50cyl9O2Nhc2UgTjpyZXR1cm57Li4uZSxwYXJ0czokcihlLnBhcnRzKX07Y2FzZSBIOnJldHVybiAkcihlKTtjYXNlIFU6cmV0dXJuIGUucmVwbGFjZSgvW1xcblxccl0qJC91LFwiXCIpO2Nhc2UgazpjYXNlIFY6Y2FzZSBMOmNhc2UgUjpjYXNlIEE6Y2FzZSBfOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFEoZSl9cmV0dXJuIGV9ZnVuY3Rpb24gZXQoZSl7cmV0dXJuIGtlKFV1KGUpKX1mdW5jdGlvbiBNdShlKXtzd2l0Y2goeihlKSl7Y2FzZSBOOmlmKGUucGFydHMuZXZlcnkodD0+dD09PVwiXCIpKXJldHVyblwiXCI7YnJlYWs7Y2FzZSBCOmlmKCFlLmNvbnRlbnRzJiYhZS5pZCYmIWUuYnJlYWsmJiFlLmV4cGFuZGVkU3RhdGVzKXJldHVyblwiXCI7aWYoZS5jb250ZW50cy50eXBlPT09QiYmZS5jb250ZW50cy5pZD09PWUuaWQmJmUuY29udGVudHMuYnJlYWs9PT1lLmJyZWFrJiZlLmNvbnRlbnRzLmV4cGFuZGVkU3RhdGVzPT09ZS5leHBhbmRlZFN0YXRlcylyZXR1cm4gZS5jb250ZW50czticmVhaztjYXNlIGs6Y2FzZSBUOmNhc2UgUDpjYXNlIEk6aWYoIWUuY29udGVudHMpcmV0dXJuXCJcIjticmVhaztjYXNlIHc6aWYoIWUuZmxhdENvbnRlbnRzJiYhZS5icmVha0NvbnRlbnRzKXJldHVyblwiXCI7YnJlYWs7Y2FzZSBIOntsZXQgdD1bXTtmb3IobGV0IHIgb2YgZSl7aWYoIXIpY29udGludWU7bGV0W24sLi4udV09QXJyYXkuaXNBcnJheShyKT9yOltyXTt0eXBlb2Ygbj09XCJzdHJpbmdcIiYmdHlwZW9mIHkoITEsdCwtMSk9PVwic3RyaW5nXCI/dFt0Lmxlbmd0aC0xXSs9bjp0LnB1c2gobiksdC5wdXNoKC4uLnUpfXJldHVybiB0Lmxlbmd0aD09PTA/XCJcIjp0Lmxlbmd0aD09PTE/dFswXTp0fWNhc2UgVTpjYXNlIFY6Y2FzZSBMOmNhc2UgUjpjYXNlIEE6Y2FzZSBPOmNhc2UgXzpicmVhaztkZWZhdWx0OnRocm93IG5ldyBRKGUpfXJldHVybiBlfWZ1bmN0aW9uIFV1KGUpe3JldHVybiBMZShlLHQ9Pk11KHQpKX1mdW5jdGlvbiB6cihlLHQ9WGUpe3JldHVybiBMZShlLHI9PnR5cGVvZiByPT1cInN0cmluZ1wiP1NlKHQsci5zcGxpdChgXG5gKSk6cil9ZnVuY3Rpb24gVnUoZSl7aWYoZS50eXBlPT09QSlyZXR1cm4hMH1mdW5jdGlvbiBHcihlKXtyZXR1cm4gWmUoZSxWdSwhMSl9ZnVuY3Rpb24gbWUoZSx0KXtyZXR1cm4gZS50eXBlPT09Tz97Li4uZSxjb250ZW50czp0KGUuY29udGVudHMpfTp0KGUpfXZhciBZPVN5bWJvbChcIk1PREVfQlJFQUtcIiksSj1TeW1ib2woXCJNT0RFX0ZMQVRcIiksaGU9U3ltYm9sKFwiY3Vyc29yXCIpLEx0PVN5bWJvbChcIkRPQ19GSUxMX1BSSU5URURfTEVOR1RIXCIpO2Z1bmN0aW9uIEtyKCl7cmV0dXJue3ZhbHVlOlwiXCIsbGVuZ3RoOjAscXVldWU6W119fWZ1bmN0aW9uIHp1KGUsdCl7cmV0dXJuIFB0KGUse3R5cGU6XCJpbmRlbnRcIn0sdCl9ZnVuY3Rpb24gR3UoZSx0LHIpe3JldHVybiB0PT09TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZP2Uucm9vdHx8S3IoKTp0PDA/UHQoZSx7dHlwZTpcImRlZGVudFwifSxyKTp0P3QudHlwZT09PVwicm9vdFwiP3suLi5lLHJvb3Q6ZX06UHQoZSx7dHlwZTp0eXBlb2YgdD09XCJzdHJpbmdcIj9cInN0cmluZ0FsaWduXCI6XCJudW1iZXJBbGlnblwiLG46dH0scik6ZX1mdW5jdGlvbiBQdChlLHQscil7bGV0IG49dC50eXBlPT09XCJkZWRlbnRcIj9lLnF1ZXVlLnNsaWNlKDAsLTEpOlsuLi5lLnF1ZXVlLHRdLHU9XCJcIixpPTAsbz0wLHM9MDtmb3IobGV0IGMgb2Ygbilzd2l0Y2goYy50eXBlKXtjYXNlXCJpbmRlbnRcIjpsKCksci51c2VUYWJzP2EoMSk6RChyLnRhYldpZHRoKTticmVhaztjYXNlXCJzdHJpbmdBbGlnblwiOmwoKSx1Kz1jLm4saSs9Yy5uLmxlbmd0aDticmVhaztjYXNlXCJudW1iZXJBbGlnblwiOm8rPTEscys9Yy5uO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHR5cGUgJyR7Yy50eXBlfSdgKX1yZXR1cm4gZigpLHsuLi5lLHZhbHVlOnUsbGVuZ3RoOmkscXVldWU6bn07ZnVuY3Rpb24gYShjKXt1Kz1cIlx0XCIucmVwZWF0KGMpLGkrPXIudGFiV2lkdGgqY31mdW5jdGlvbiBEKGMpe3UrPVwiIFwiLnJlcGVhdChjKSxpKz1jfWZ1bmN0aW9uIGwoKXtyLnVzZVRhYnM/cCgpOmYoKX1mdW5jdGlvbiBwKCl7bz4wJiZhKG8pLGQoKX1mdW5jdGlvbiBmKCl7cz4wJiZEKHMpLGQoKX1mdW5jdGlvbiBkKCl7bz0wLHM9MH19ZnVuY3Rpb24gSXQoZSl7bGV0IHQ9MCxyPTAsbj1lLmxlbmd0aDtlOmZvcig7bi0tOyl7bGV0IHU9ZVtuXTtpZih1PT09aGUpe3IrKztjb250aW51ZX1mb3IobGV0IGk9dS5sZW5ndGgtMTtpPj0wO2ktLSl7bGV0IG89dVtpXTtpZihvPT09XCIgXCJ8fG89PT1cIlx0XCIpdCsrO2Vsc2V7ZVtuXT11LnNsaWNlKDAsaSsxKTticmVhayBlfX19aWYodD4wfHxyPjApZm9yKGUubGVuZ3RoPW4rMTtyLS0gPjA7KWUucHVzaChoZSk7cmV0dXJuIHR9ZnVuY3Rpb24gdHQoZSx0LHIsbix1LGkpe2lmKHI9PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpcmV0dXJuITA7bGV0IG89dC5sZW5ndGgscz1bZV0sYT1bXTtmb3IoO3I+PTA7KXtpZihzLmxlbmd0aD09PTApe2lmKG89PT0wKXJldHVybiEwO3MucHVzaCh0Wy0tb10pO2NvbnRpbnVlfWxldHttb2RlOkQsZG9jOmx9PXMucG9wKCkscD16KGwpO3N3aXRjaChwKXtjYXNlIFU6YS5wdXNoKGwpLHItPVRlKGwpO2JyZWFrO2Nhc2UgSDpjYXNlIE46e2xldCBmPXA9PT1IP2w6bC5wYXJ0cyxkPWxbTHRdPz8wO2ZvcihsZXQgYz1mLmxlbmd0aC0xO2M+PWQ7Yy0tKXMucHVzaCh7bW9kZTpELGRvYzpmW2NdfSk7YnJlYWt9Y2FzZSBUOmNhc2UgazpjYXNlIFA6Y2FzZSBPOnMucHVzaCh7bW9kZTpELGRvYzpsLmNvbnRlbnRzfSk7YnJlYWs7Y2FzZSBMOnIrPUl0KGEpO2JyZWFrO2Nhc2UgQjp7aWYoaSYmbC5icmVhaylyZXR1cm4hMTtsZXQgZj1sLmJyZWFrP1k6RCxkPWwuZXhwYW5kZWRTdGF0ZXMmJmY9PT1ZP3koITEsbC5leHBhbmRlZFN0YXRlcywtMSk6bC5jb250ZW50cztzLnB1c2goe21vZGU6Zixkb2M6ZH0pO2JyZWFrfWNhc2Ugdzp7bGV0IGQ9KGwuZ3JvdXBJZD91W2wuZ3JvdXBJZF18fEo6RCk9PT1ZP2wuYnJlYWtDb250ZW50czpsLmZsYXRDb250ZW50cztkJiZzLnB1c2goe21vZGU6RCxkb2M6ZH0pO2JyZWFrfWNhc2UgQTppZihEPT09WXx8bC5oYXJkKXJldHVybiEwO2wuc29mdHx8KGEucHVzaChcIiBcIiksci0tKTticmVhaztjYXNlIEk6bj0hMDticmVhaztjYXNlIFI6aWYobilyZXR1cm4hMTticmVha319cmV0dXJuITF9ZnVuY3Rpb24gRWUoZSx0KXtsZXQgcj17fSxuPXQucHJpbnRXaWR0aCx1PXhlKHQuZW5kT2ZMaW5lKSxpPTAsbz1be2luZDpLcigpLG1vZGU6WSxkb2M6ZX1dLHM9W10sYT0hMSxEPVtdLGw9MDtmb3IoVXIoZSk7by5sZW5ndGg+MDspe2xldHtpbmQ6Zixtb2RlOmQsZG9jOmN9PW8ucG9wKCk7c3dpdGNoKHooYykpe2Nhc2UgVTp7bGV0IEY9dSE9PWBcbmA/bmUoITEsYyxgXG5gLHUpOmM7cy5wdXNoKEYpLG8ubGVuZ3RoPjAmJihpKz1UZShGKSk7YnJlYWt9Y2FzZSBIOmZvcihsZXQgRj1jLmxlbmd0aC0xO0Y+PTA7Ri0tKW8ucHVzaCh7aW5kOmYsbW9kZTpkLGRvYzpjW0ZdfSk7YnJlYWs7Y2FzZSBWOmlmKGw+PTIpdGhyb3cgbmV3IEVycm9yKFwiVGhlcmUgYXJlIHRvbyBtYW55ICdjdXJzb3InIGluIGRvYy5cIik7cy5wdXNoKGhlKSxsKys7YnJlYWs7Y2FzZSBUOm8ucHVzaCh7aW5kOnp1KGYsdCksbW9kZTpkLGRvYzpjLmNvbnRlbnRzfSk7YnJlYWs7Y2FzZSBrOm8ucHVzaCh7aW5kOkd1KGYsYy5uLHQpLG1vZGU6ZCxkb2M6Yy5jb250ZW50c30pO2JyZWFrO2Nhc2UgTDppLT1JdChzKTticmVhaztjYXNlIEI6c3dpdGNoKGQpe2Nhc2UgSjppZighYSl7by5wdXNoKHtpbmQ6Zixtb2RlOmMuYnJlYWs/WTpKLGRvYzpjLmNvbnRlbnRzfSk7YnJlYWt9Y2FzZSBZOnthPSExO2xldCBGPXtpbmQ6Zixtb2RlOkosZG9jOmMuY29udGVudHN9LG09bi1pLGg9RC5sZW5ndGg+MDtpZighYy5icmVhayYmdHQoRixvLG0saCxyKSlvLnB1c2goRik7ZWxzZSBpZihjLmV4cGFuZGVkU3RhdGVzKXtsZXQgQz15KCExLGMuZXhwYW5kZWRTdGF0ZXMsLTEpO2lmKGMuYnJlYWspe28ucHVzaCh7aW5kOmYsbW9kZTpZLGRvYzpDfSk7YnJlYWt9ZWxzZSBmb3IobGV0IHY9MTt2PGMuZXhwYW5kZWRTdGF0ZXMubGVuZ3RoKzE7disrKWlmKHY+PWMuZXhwYW5kZWRTdGF0ZXMubGVuZ3RoKXtvLnB1c2goe2luZDpmLG1vZGU6WSxkb2M6Q30pO2JyZWFrfWVsc2V7bGV0IEU9Yy5leHBhbmRlZFN0YXRlc1t2XSxnPXtpbmQ6Zixtb2RlOkosZG9jOkV9O2lmKHR0KGcsbyxtLGgscikpe28ucHVzaChnKTticmVha319fWVsc2Ugby5wdXNoKHtpbmQ6Zixtb2RlOlksZG9jOmMuY29udGVudHN9KTticmVha319Yy5pZCYmKHJbYy5pZF09eSghMSxvLC0xKS5tb2RlKTticmVhaztjYXNlIE46e2xldCBGPW4taSxtPWNbTHRdPz8wLHtwYXJ0czpofT1jLEM9aC5sZW5ndGgtbTtpZihDPT09MClicmVhaztsZXQgdj1oW20rMF0sRT1oW20rMV0sZz17aW5kOmYsbW9kZTpKLGRvYzp2fSxqPXtpbmQ6Zixtb2RlOlksZG9jOnZ9LGI9dHQoZyxbXSxGLEQubGVuZ3RoPjAsciwhMCk7aWYoQz09PTEpe2I/by5wdXNoKGcpOm8ucHVzaChqKTticmVha31sZXQgWD17aW5kOmYsbW9kZTpKLGRvYzpFfSxhZT17aW5kOmYsbW9kZTpZLGRvYzpFfTtpZihDPT09Mil7Yj9vLnB1c2goWCxnKTpvLnB1c2goYWUsaik7YnJlYWt9bGV0ICRlPWhbbSsyXSxBdD17aW5kOmYsbW9kZTpkLGRvYzp7Li4uYyxbTHRdOm0rMn19O3R0KHtpbmQ6Zixtb2RlOkosZG9jOlt2LEUsJGVdfSxbXSxGLEQubGVuZ3RoPjAsciwhMCk/by5wdXNoKEF0LFgsZyk6Yj9vLnB1c2goQXQsYWUsZyk6by5wdXNoKEF0LGFlLGopO2JyZWFrfWNhc2UgdzpjYXNlIFA6e2xldCBGPWMuZ3JvdXBJZD9yW2MuZ3JvdXBJZF06ZDtpZihGPT09WSl7bGV0IG09Yy50eXBlPT09dz9jLmJyZWFrQ29udGVudHM6Yy5uZWdhdGU/Yy5jb250ZW50czpsZShjLmNvbnRlbnRzKTttJiZvLnB1c2goe2luZDpmLG1vZGU6ZCxkb2M6bX0pfWlmKEY9PT1KKXtsZXQgbT1jLnR5cGU9PT13P2MuZmxhdENvbnRlbnRzOmMubmVnYXRlP2xlKGMuY29udGVudHMpOmMuY29udGVudHM7bSYmby5wdXNoKHtpbmQ6Zixtb2RlOmQsZG9jOm19KX1icmVha31jYXNlIEk6RC5wdXNoKHtpbmQ6Zixtb2RlOmQsZG9jOmMuY29udGVudHN9KTticmVhaztjYXNlIFI6RC5sZW5ndGg+MCYmby5wdXNoKHtpbmQ6Zixtb2RlOmQsZG9jOk9lfSk7YnJlYWs7Y2FzZSBBOnN3aXRjaChkKXtjYXNlIEo6aWYoYy5oYXJkKWE9ITA7ZWxzZXtjLnNvZnR8fChzLnB1c2goXCIgXCIpLGkrPTEpO2JyZWFrfWNhc2UgWTppZihELmxlbmd0aD4wKXtvLnB1c2goe2luZDpmLG1vZGU6ZCxkb2M6Y30sLi4uRC5yZXZlcnNlKCkpLEQubGVuZ3RoPTA7YnJlYWt9Yy5saXRlcmFsP2Yucm9vdD8ocy5wdXNoKHUsZi5yb290LnZhbHVlKSxpPWYucm9vdC5sZW5ndGgpOihzLnB1c2godSksaT0wKTooaS09SXQocykscy5wdXNoKHUrZi52YWx1ZSksaT1mLmxlbmd0aCk7YnJlYWt9YnJlYWs7Y2FzZSBPOm8ucHVzaCh7aW5kOmYsbW9kZTpkLGRvYzpjLmNvbnRlbnRzfSk7YnJlYWs7Y2FzZSBfOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFEoYyl9by5sZW5ndGg9PT0wJiZELmxlbmd0aD4wJiYoby5wdXNoKC4uLkQucmV2ZXJzZSgpKSxELmxlbmd0aD0wKX1sZXQgcD1zLmluZGV4T2YoaGUpO2lmKHAhPT0tMSl7bGV0IGY9cy5pbmRleE9mKGhlLHArMSk7aWYoZj09PS0xKXJldHVybntmb3JtYXR0ZWQ6cy5maWx0ZXIobT0+bSE9PWhlKS5qb2luKFwiXCIpfTtsZXQgZD1zLnNsaWNlKDAscCkuam9pbihcIlwiKSxjPXMuc2xpY2UocCsxLGYpLmpvaW4oXCJcIiksRj1zLnNsaWNlKGYrMSkuam9pbihcIlwiKTtyZXR1cm57Zm9ybWF0dGVkOmQrYytGLGN1cnNvck5vZGVTdGFydDpkLmxlbmd0aCxjdXJzb3JOb2RlVGV4dDpjfX1yZXR1cm57Zm9ybWF0dGVkOnMuam9pbihcIlwiKX19ZnVuY3Rpb24gS3UoZSx0LHI9MCl7bGV0IG49MDtmb3IobGV0IHU9cjt1PGUubGVuZ3RoOysrdSllW3VdPT09XCJcdFwiP249bit0LW4ldDpuKys7cmV0dXJuIG59dmFyIENlPUt1O3ZhciB0ZSxZdCxydCxSdD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXtwcih0aGlzLHRlKTt0aGlzLnN0YWNrPVt0XX1nZXQga2V5KCl7bGV0e3N0YWNrOnQsc2libGluZ3M6cn09dGhpcztyZXR1cm4geSghMSx0LHI9PT1udWxsPy0yOi00KT8/bnVsbH1nZXQgaW5kZXgoKXtyZXR1cm4gdGhpcy5zaWJsaW5ncz09PW51bGw/bnVsbDp5KCExLHRoaXMuc3RhY2ssLTIpfWdldCBub2RlKCl7cmV0dXJuIHkoITEsdGhpcy5zdGFjaywtMSl9Z2V0IHBhcmVudCgpe3JldHVybiB0aGlzLmdldE5vZGUoMSl9Z2V0IGdyYW5kcGFyZW50KCl7cmV0dXJuIHRoaXMuZ2V0Tm9kZSgyKX1nZXQgaXNJbkFycmF5KCl7cmV0dXJuIHRoaXMuc2libGluZ3MhPT1udWxsfWdldCBzaWJsaW5ncygpe2xldHtzdGFjazp0fT10aGlzLHI9eSghMSx0LC0zKTtyZXR1cm4gQXJyYXkuaXNBcnJheShyKT9yOm51bGx9Z2V0IG5leHQoKXtsZXR7c2libGluZ3M6dH09dGhpcztyZXR1cm4gdD09PW51bGw/bnVsbDp0W3RoaXMuaW5kZXgrMV19Z2V0IHByZXZpb3VzKCl7bGV0e3NpYmxpbmdzOnR9PXRoaXM7cmV0dXJuIHQ9PT1udWxsP251bGw6dFt0aGlzLmluZGV4LTFdfWdldCBpc0ZpcnN0KCl7cmV0dXJuIHRoaXMuaW5kZXg9PT0wfWdldCBpc0xhc3QoKXtsZXR7c2libGluZ3M6dCxpbmRleDpyfT10aGlzO3JldHVybiB0IT09bnVsbCYmcj09PXQubGVuZ3RoLTF9Z2V0IGlzUm9vdCgpe3JldHVybiB0aGlzLnN0YWNrLmxlbmd0aD09PTF9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5zdGFja1swXX1nZXQgYW5jZXN0b3JzKCl7cmV0dXJuWy4uLnBlKHRoaXMsdGUscnQpLmNhbGwodGhpcyldfWdldE5hbWUoKXtsZXR7c3RhY2s6dH09dGhpcyx7bGVuZ3RoOnJ9PXQ7cmV0dXJuIHI+MT95KCExLHQsLTIpOm51bGx9Z2V0VmFsdWUoKXtyZXR1cm4geSghMSx0aGlzLnN0YWNrLC0xKX1nZXROb2RlKHQ9MCl7bGV0IHI9cGUodGhpcyx0ZSxZdCkuY2FsbCh0aGlzLHQpO3JldHVybiByPT09LTE/bnVsbDp0aGlzLnN0YWNrW3JdfWdldFBhcmVudE5vZGUodD0wKXtyZXR1cm4gdGhpcy5nZXROb2RlKHQrMSl9Y2FsbCh0LC4uLnIpe2xldHtzdGFjazpufT10aGlzLHtsZW5ndGg6dX09bixpPXkoITEsbiwtMSk7Zm9yKGxldCBvIG9mIHIpaT1pW29dLG4ucHVzaChvLGkpO3RyeXtyZXR1cm4gdCh0aGlzKX1maW5hbGx5e24ubGVuZ3RoPXV9fWNhbGxQYXJlbnQodCxyPTApe2xldCBuPXBlKHRoaXMsdGUsWXQpLmNhbGwodGhpcyxyKzEpLHU9dGhpcy5zdGFjay5zcGxpY2UobisxKTt0cnl7cmV0dXJuIHQodGhpcyl9ZmluYWxseXt0aGlzLnN0YWNrLnB1c2goLi4udSl9fWVhY2godCwuLi5yKXtsZXR7c3RhY2s6bn09dGhpcyx7bGVuZ3RoOnV9PW4saT15KCExLG4sLTEpO2ZvcihsZXQgbyBvZiByKWk9aVtvXSxuLnB1c2gobyxpKTt0cnl7Zm9yKGxldCBvPTA7bzxpLmxlbmd0aDsrK28pbi5wdXNoKG8saVtvXSksdCh0aGlzLG8saSksbi5sZW5ndGgtPTJ9ZmluYWxseXtuLmxlbmd0aD11fX1tYXAodCwuLi5yKXtsZXQgbj1bXTtyZXR1cm4gdGhpcy5lYWNoKCh1LGksbyk9PntuW2ldPXQodSxpLG8pfSwuLi5yKSxufW1hdGNoKC4uLnQpe2xldCByPXRoaXMuc3RhY2subGVuZ3RoLTEsbj1udWxsLHU9dGhpcy5zdGFja1tyLS1dO2ZvcihsZXQgaSBvZiB0KXtpZih1PT09dm9pZCAwKXJldHVybiExO2xldCBvPW51bGw7aWYodHlwZW9mIG49PVwibnVtYmVyXCImJihvPW4sbj10aGlzLnN0YWNrW3ItLV0sdT10aGlzLnN0YWNrW3ItLV0pLGkmJiFpKHUsbixvKSlyZXR1cm4hMTtuPXRoaXMuc3RhY2tbci0tXSx1PXRoaXMuc3RhY2tbci0tXX1yZXR1cm4hMH1maW5kQW5jZXN0b3IodCl7Zm9yKGxldCByIG9mIHBlKHRoaXMsdGUscnQpLmNhbGwodGhpcykpaWYodChyKSlyZXR1cm4gcn1oYXNBbmNlc3Rvcih0KXtmb3IobGV0IHIgb2YgcGUodGhpcyx0ZSxydCkuY2FsbCh0aGlzKSlpZih0KHIpKXJldHVybiEwO3JldHVybiExfX07dGU9bmV3IFdlYWtTZXQsWXQ9ZnVuY3Rpb24odCl7bGV0e3N0YWNrOnJ9PXRoaXM7Zm9yKGxldCBuPXIubGVuZ3RoLTE7bj49MDtuLT0yKWlmKCFBcnJheS5pc0FycmF5KHJbbl0pJiYtLXQ8MClyZXR1cm4gbjtyZXR1cm4tMX0scnQ9ZnVuY3Rpb24qKCl7bGV0e3N0YWNrOnR9PXRoaXM7Zm9yKGxldCByPXQubGVuZ3RoLTM7cj49MDtyLT0yKXtsZXQgbj10W3JdO0FycmF5LmlzQXJyYXkobil8fCh5aWVsZCBuKX19O3ZhciBKcj1SdDt2YXIgcXI9bmV3IFByb3h5KCgpPT57fSx7Z2V0OigpPT5xcn0pLFBlPXFyO2Z1bmN0aW9uIEp1KGUpe3JldHVybiBlIT09bnVsbCYmdHlwZW9mIGU9PVwib2JqZWN0XCJ9dmFyIFhyPUp1O2Z1bmN0aW9uKmdlKGUsdCl7bGV0e2dldFZpc2l0b3JLZXlzOnIsZmlsdGVyOm49KCk9PiEwfT10LHU9aT0+WHIoaSkmJm4oaSk7Zm9yKGxldCBpIG9mIHIoZSkpe2xldCBvPWVbaV07aWYoQXJyYXkuaXNBcnJheShvKSlmb3IobGV0IHMgb2Ygbyl1KHMpJiYoeWllbGQgcyk7ZWxzZSB1KG8pJiYoeWllbGQgbyl9fWZ1bmN0aW9uKlFyKGUsdCl7bGV0IHI9W2VdO2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKXtsZXQgdT1yW25dO2ZvcihsZXQgaSBvZiBnZSh1LHQpKXlpZWxkIGksci5wdXNoKGkpfX1mdW5jdGlvbiBacihlLHQpe3JldHVybiBnZShlLHQpLm5leHQoKS5kb25lfWZ1bmN0aW9uIHllKGUpe3JldHVybih0LHIsbik9PntsZXQgdT0hIShuIT1udWxsJiZuLmJhY2t3YXJkcyk7aWYocj09PSExKXJldHVybiExO2xldHtsZW5ndGg6aX09dCxvPXI7Zm9yKDtvPj0wJiZvPGk7KXtsZXQgcz10LmNoYXJBdChvKTtpZihlIGluc3RhbmNlb2YgUmVnRXhwKXtpZighZS50ZXN0KHMpKXJldHVybiBvfWVsc2UgaWYoIWUuaW5jbHVkZXMocykpcmV0dXJuIG87dT9vLS06bysrfXJldHVybiBvPT09LTF8fG89PT1pP286ITF9fXZhciBlbj15ZSgvXFxzL3UpLFM9eWUoXCIgXHRcIiksbnQ9eWUoXCIsOyBcdFwiKSx1dD15ZSgvW15cXG5cXHJdL3UpO2Z1bmN0aW9uIHF1KGUsdCxyKXtsZXQgbj0hIShyIT1udWxsJiZyLmJhY2t3YXJkcyk7aWYodD09PSExKXJldHVybiExO2xldCB1PWUuY2hhckF0KHQpO2lmKG4pe2lmKGUuY2hhckF0KHQtMSk9PT1cIlxcclwiJiZ1PT09YFxuYClyZXR1cm4gdC0yO2lmKHU9PT1gXG5gfHx1PT09XCJcXHJcInx8dT09PVwiXFx1MjAyOFwifHx1PT09XCJcXHUyMDI5XCIpcmV0dXJuIHQtMX1lbHNle2lmKHU9PT1cIlxcclwiJiZlLmNoYXJBdCh0KzEpPT09YFxuYClyZXR1cm4gdCsyO2lmKHU9PT1gXG5gfHx1PT09XCJcXHJcInx8dT09PVwiXFx1MjAyOFwifHx1PT09XCJcXHUyMDI5XCIpcmV0dXJuIHQrMX1yZXR1cm4gdH12YXIgVz1xdTtmdW5jdGlvbiBYdShlLHQscj17fSl7bGV0IG49UyhlLHIuYmFja3dhcmRzP3QtMTp0LHIpLHU9VyhlLG4scik7cmV0dXJuIG4hPT11fXZhciAkPVh1O2Z1bmN0aW9uIFF1KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD4wfXZhciBqdD1RdTt2YXIgdG49bmV3IFNldChbXCJ0b2tlbnNcIixcImNvbW1lbnRzXCIsXCJwYXJlbnRcIixcImVuY2xvc2luZ05vZGVcIixcInByZWNlZGluZ05vZGVcIixcImZvbGxvd2luZ05vZGVcIl0pLFp1PWU9Pk9iamVjdC5rZXlzKGUpLmZpbHRlcih0PT4hdG4uaGFzKHQpKTtmdW5jdGlvbiBlaShlKXtyZXR1cm4gZT90PT5lKHQsdG4pOlp1fXZhciBxPWVpO2Z1bmN0aW9uIHRpKGUpe2xldCB0PWUudHlwZXx8ZS5raW5kfHxcIih1bmtub3duIHR5cGUpXCIscj1TdHJpbmcoZS5uYW1lfHxlLmlkJiYodHlwZW9mIGUuaWQ9PVwib2JqZWN0XCI/ZS5pZC5uYW1lOmUuaWQpfHxlLmtleSYmKHR5cGVvZiBlLmtleT09XCJvYmplY3RcIj9lLmtleS5uYW1lOmUua2V5KXx8ZS52YWx1ZSYmKHR5cGVvZiBlLnZhbHVlPT1cIm9iamVjdFwiP1wiXCI6U3RyaW5nKGUudmFsdWUpKXx8ZS5vcGVyYXRvcnx8XCJcIik7cmV0dXJuIHIubGVuZ3RoPjIwJiYocj1yLnNsaWNlKDAsMTkpK1wiXFx1MjAyNlwiKSx0KyhyP1wiIFwiK3I6XCJcIil9ZnVuY3Rpb24gSHQoZSx0KXsoZS5jb21tZW50cz8/KGUuY29tbWVudHM9W10pKS5wdXNoKHQpLHQucHJpbnRlZD0hMSx0Lm5vZGVEZXNjcmlwdGlvbj10aShlKX1mdW5jdGlvbiB1ZShlLHQpe3QubGVhZGluZz0hMCx0LnRyYWlsaW5nPSExLEh0KGUsdCl9ZnVuY3Rpb24gcmUoZSx0LHIpe3QubGVhZGluZz0hMSx0LnRyYWlsaW5nPSExLHImJih0Lm1hcmtlcj1yKSxIdChlLHQpfWZ1bmN0aW9uIGllKGUsdCl7dC5sZWFkaW5nPSExLHQudHJhaWxpbmc9ITAsSHQoZSx0KX12YXIgV3Q9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gaXQoZSx0KXtpZihXdC5oYXMoZSkpcmV0dXJuIFd0LmdldChlKTtsZXR7cHJpbnRlcjp7Z2V0Q29tbWVudENoaWxkTm9kZXM6cixjYW5BdHRhY2hDb21tZW50Om4sZ2V0VmlzaXRvcktleXM6dX0sbG9jU3RhcnQ6aSxsb2NFbmQ6b309dDtpZighbilyZXR1cm5bXTtsZXQgcz0oKHI9PW51bGw/dm9pZCAwOnIoZSx0KSk/P1suLi5nZShlLHtnZXRWaXNpdG9yS2V5czpxKHUpfSldKS5mbGF0TWFwKGE9Pm4oYSk/W2FdOml0KGEsdCkpO3JldHVybiBzLnNvcnQoKGEsRCk9PmkoYSktaShEKXx8byhhKS1vKEQpKSxXdC5zZXQoZSxzKSxzfWZ1bmN0aW9uIG5uKGUsdCxyLG4pe2xldHtsb2NTdGFydDp1LGxvY0VuZDppfT1yLG89dSh0KSxzPWkodCksYT1pdChlLHIpLEQsbCxwPTAsZj1hLmxlbmd0aDtmb3IoO3A8Zjspe2xldCBkPXArZj4+MSxjPWFbZF0sRj11KGMpLG09aShjKTtpZihGPD1vJiZzPD1tKXJldHVybiBubihjLHQscixjKTtpZihtPD1vKXtEPWMscD1kKzE7Y29udGludWV9aWYoczw9Ril7bD1jLGY9ZDtjb250aW51ZX10aHJvdyBuZXcgRXJyb3IoXCJDb21tZW50IGxvY2F0aW9uIG92ZXJsYXBzIHdpdGggbm9kZSBsb2NhdGlvblwiKX1pZigobj09bnVsbD92b2lkIDA6bi50eXBlKT09PVwiVGVtcGxhdGVMaXRlcmFsXCIpe2xldHtxdWFzaXM6ZH09bixjPU10KGQsdCxyKTtEJiZNdChkLEQscikhPT1jJiYoRD1udWxsKSxsJiZNdChkLGwscikhPT1jJiYobD1udWxsKX1yZXR1cm57ZW5jbG9zaW5nTm9kZTpuLHByZWNlZGluZ05vZGU6RCxmb2xsb3dpbmdOb2RlOmx9fXZhciAkdD0oKT0+ITE7ZnVuY3Rpb24gdW4oZSx0KXtsZXR7Y29tbWVudHM6cn09ZTtpZihkZWxldGUgZS5jb21tZW50cywhanQocil8fCF0LnByaW50ZXIuY2FuQXR0YWNoQ29tbWVudClyZXR1cm47bGV0IG49W10se2xvY1N0YXJ0OnUsbG9jRW5kOmkscHJpbnRlcjp7ZXhwZXJpbWVudGFsRmVhdHVyZXM6e2F2b2lkQXN0TXV0YXRpb246bz0hMX09e30saGFuZGxlQ29tbWVudHM6cz17fX0sb3JpZ2luYWxUZXh0OmF9PXQse293bkxpbmU6RD0kdCxlbmRPZkxpbmU6bD0kdCxyZW1haW5pbmc6cD0kdH09cyxmPXIubWFwKChkLGMpPT4oey4uLm5uKGUsZCx0KSxjb21tZW50OmQsdGV4dDphLG9wdGlvbnM6dCxhc3Q6ZSxpc0xhc3RDb21tZW50OnIubGVuZ3RoLTE9PT1jfSkpO2ZvcihsZXRbZCxjXW9mIGYuZW50cmllcygpKXtsZXR7Y29tbWVudDpGLHByZWNlZGluZ05vZGU6bSxlbmNsb3NpbmdOb2RlOmgsZm9sbG93aW5nTm9kZTpDLHRleHQ6dixvcHRpb25zOkUsYXN0OmcsaXNMYXN0Q29tbWVudDpqfT1jO2lmKEUucGFyc2VyPT09XCJqc29uXCJ8fEUucGFyc2VyPT09XCJqc29uNVwifHxFLnBhcnNlcj09PVwianNvbmNcInx8RS5wYXJzZXI9PT1cIl9fanNfZXhwcmVzc2lvblwifHxFLnBhcnNlcj09PVwiX190c19leHByZXNzaW9uXCJ8fEUucGFyc2VyPT09XCJfX3Z1ZV9leHByZXNzaW9uXCJ8fEUucGFyc2VyPT09XCJfX3Z1ZV90c19leHByZXNzaW9uXCIpe2lmKHUoRiktdShnKTw9MCl7dWUoZyxGKTtjb250aW51ZX1pZihpKEYpLWkoZyk+PTApe2llKGcsRik7Y29udGludWV9fWxldCBiO2lmKG8/Yj1bY106KEYuZW5jbG9zaW5nTm9kZT1oLEYucHJlY2VkaW5nTm9kZT1tLEYuZm9sbG93aW5nTm9kZT1DLGI9W0YsdixFLGcsal0pLHJpKHYsRSxmLGQpKUYucGxhY2VtZW50PVwib3duTGluZVwiLEQoLi4uYil8fChDP3VlKEMsRik6bT9pZShtLEYpOmg/cmUoaCxGKTpyZShnLEYpKTtlbHNlIGlmKG5pKHYsRSxmLGQpKUYucGxhY2VtZW50PVwiZW5kT2ZMaW5lXCIsbCguLi5iKXx8KG0/aWUobSxGKTpDP3VlKEMsRik6aD9yZShoLEYpOnJlKGcsRikpO2Vsc2UgaWYoRi5wbGFjZW1lbnQ9XCJyZW1haW5pbmdcIiwhcCguLi5iKSlpZihtJiZDKXtsZXQgWD1uLmxlbmd0aDtYPjAmJm5bWC0xXS5mb2xsb3dpbmdOb2RlIT09QyYmcm4obixFKSxuLnB1c2goYyl9ZWxzZSBtP2llKG0sRik6Qz91ZShDLEYpOmg/cmUoaCxGKTpyZShnLEYpfWlmKHJuKG4sdCksIW8pZm9yKGxldCBkIG9mIHIpZGVsZXRlIGQucHJlY2VkaW5nTm9kZSxkZWxldGUgZC5lbmNsb3NpbmdOb2RlLGRlbGV0ZSBkLmZvbGxvd2luZ05vZGV9dmFyIG9uPWU9PiEvW1xcU1xcblxcdTIwMjhcXHUyMDI5XS91LnRlc3QoZSk7ZnVuY3Rpb24gcmkoZSx0LHIsbil7bGV0e2NvbW1lbnQ6dSxwcmVjZWRpbmdOb2RlOml9PXJbbl0se2xvY1N0YXJ0Om8sbG9jRW5kOnN9PXQsYT1vKHUpO2lmKGkpZm9yKGxldCBEPW4tMTtEPj0wO0QtLSl7bGV0e2NvbW1lbnQ6bCxwcmVjZWRpbmdOb2RlOnB9PXJbRF07aWYocCE9PWl8fCFvbihlLnNsaWNlKHMobCksYSkpKWJyZWFrO2E9byhsKX1yZXR1cm4gJChlLGEse2JhY2t3YXJkczohMH0pfWZ1bmN0aW9uIG5pKGUsdCxyLG4pe2xldHtjb21tZW50OnUsZm9sbG93aW5nTm9kZTppfT1yW25dLHtsb2NTdGFydDpvLGxvY0VuZDpzfT10LGE9cyh1KTtpZihpKWZvcihsZXQgRD1uKzE7RDxyLmxlbmd0aDtEKyspe2xldHtjb21tZW50OmwsZm9sbG93aW5nTm9kZTpwfT1yW0RdO2lmKHAhPT1pfHwhb24oZS5zbGljZShhLG8obCkpKSlicmVhazthPXMobCl9cmV0dXJuICQoZSxhKX1mdW5jdGlvbiBybihlLHQpe3ZhciBzLGE7bGV0IHI9ZS5sZW5ndGg7aWYocj09PTApcmV0dXJuO2xldHtwcmVjZWRpbmdOb2RlOm4sZm9sbG93aW5nTm9kZTp1fT1lWzBdLGk9dC5sb2NTdGFydCh1KSxvO2ZvcihvPXI7bz4wOy0tbyl7bGV0e2NvbW1lbnQ6RCxwcmVjZWRpbmdOb2RlOmwsZm9sbG93aW5nTm9kZTpwfT1lW28tMV07UGUuc3RyaWN0RXF1YWwobCxuKSxQZS5zdHJpY3RFcXVhbChwLHUpO2xldCBmPXQub3JpZ2luYWxUZXh0LnNsaWNlKHQubG9jRW5kKEQpLGkpO2lmKCgoYT0ocz10LnByaW50ZXIpLmlzR2FwKT09bnVsbD92b2lkIDA6YS5jYWxsKHMsZix0KSk/Py9eW1xccyhdKiQvdS50ZXN0KGYpKWk9dC5sb2NTdGFydChEKTtlbHNlIGJyZWFrfWZvcihsZXRbRCx7Y29tbWVudDpsfV1vZiBlLmVudHJpZXMoKSlEPG8/aWUobixsKTp1ZSh1LGwpO2ZvcihsZXQgRCBvZltuLHVdKUQuY29tbWVudHMmJkQuY29tbWVudHMubGVuZ3RoPjEmJkQuY29tbWVudHMuc29ydCgobCxwKT0+dC5sb2NTdGFydChsKS10LmxvY1N0YXJ0KHApKTtlLmxlbmd0aD0wfWZ1bmN0aW9uIE10KGUsdCxyKXtsZXQgbj1yLmxvY1N0YXJ0KHQpLTE7Zm9yKGxldCB1PTE7dTxlLmxlbmd0aDsrK3UpaWYobjxyLmxvY1N0YXJ0KGVbdV0pKXJldHVybiB1LTE7cmV0dXJuIDB9ZnVuY3Rpb24gdWkoZSx0KXtsZXQgcj10LTE7cj1TKGUscix7YmFja3dhcmRzOiEwfSkscj1XKGUscix7YmFja3dhcmRzOiEwfSkscj1TKGUscix7YmFja3dhcmRzOiEwfSk7bGV0IG49VyhlLHIse2JhY2t3YXJkczohMH0pO3JldHVybiByIT09bn12YXIgSWU9dWk7ZnVuY3Rpb24gc24oZSx0KXtsZXQgcj1lLm5vZGU7cmV0dXJuIHIucHJpbnRlZD0hMCx0LnByaW50ZXIucHJpbnRDb21tZW50KGUsdCl9ZnVuY3Rpb24gaWkoZSx0KXt2YXIgbDtsZXQgcj1lLm5vZGUsbj1bc24oZSx0KV0se3ByaW50ZXI6dSxvcmlnaW5hbFRleHQ6aSxsb2NTdGFydDpvLGxvY0VuZDpzfT10O2lmKChsPXUuaXNCbG9ja0NvbW1lbnQpPT1udWxsP3ZvaWQgMDpsLmNhbGwodSxyKSl7bGV0IHA9JChpLHMocikpPyQoaSxvKHIpLHtiYWNrd2FyZHM6ITB9KT9LOnFlOlwiIFwiO24ucHVzaChwKX1lbHNlIG4ucHVzaChLKTtsZXQgRD1XKGksUyhpLHMocikpKTtyZXR1cm4gRCE9PSExJiYkKGksRCkmJm4ucHVzaChLKSxufWZ1bmN0aW9uIG9pKGUsdCxyKXt2YXIgRDtsZXQgbj1lLm5vZGUsdT1zbihlLHQpLHtwcmludGVyOmksb3JpZ2luYWxUZXh0Om8sbG9jU3RhcnQ6c309dCxhPShEPWkuaXNCbG9ja0NvbW1lbnQpPT1udWxsP3ZvaWQgMDpELmNhbGwoaSxuKTtpZihyIT1udWxsJiZyLmhhc0xpbmVTdWZmaXgmJiEociE9bnVsbCYmci5pc0Jsb2NrKXx8JChvLHMobikse2JhY2t3YXJkczohMH0pKXtsZXQgbD1JZShvLHMobikpO3JldHVybntkb2M6TmUoW0ssbD9LOlwiXCIsdV0pLGlzQmxvY2s6YSxoYXNMaW5lU3VmZml4OiEwfX1yZXR1cm4hYXx8ciE9bnVsbCYmci5oYXNMaW5lU3VmZml4P3tkb2M6W05lKFtcIiBcIix1XSksRmVdLGlzQmxvY2s6YSxoYXNMaW5lU3VmZml4OiEwfTp7ZG9jOltcIiBcIix1XSxpc0Jsb2NrOmEsaGFzTGluZVN1ZmZpeDohMX19ZnVuY3Rpb24gc2koZSx0KXtsZXQgcj1lLm5vZGU7aWYoIXIpcmV0dXJue307bGV0IG49dFtTeW1ib2wuZm9yKFwicHJpbnRlZENvbW1lbnRzXCIpXTtpZigoci5jb21tZW50c3x8W10pLmZpbHRlcihhPT4hbi5oYXMoYSkpLmxlbmd0aD09PTApcmV0dXJue2xlYWRpbmc6XCJcIix0cmFpbGluZzpcIlwifTtsZXQgaT1bXSxvPVtdLHM7cmV0dXJuIGUuZWFjaCgoKT0+e2xldCBhPWUubm9kZTtpZihuIT1udWxsJiZuLmhhcyhhKSlyZXR1cm47bGV0e2xlYWRpbmc6RCx0cmFpbGluZzpsfT1hO0Q/aS5wdXNoKGlpKGUsdCkpOmwmJihzPW9pKGUsdCxzKSxvLnB1c2gocy5kb2MpKX0sXCJjb21tZW50c1wiKSx7bGVhZGluZzppLHRyYWlsaW5nOm99fWZ1bmN0aW9uIGFuKGUsdCxyKXtsZXR7bGVhZGluZzpuLHRyYWlsaW5nOnV9PXNpKGUscik7cmV0dXJuIW4mJiF1P3Q6bWUodCxpPT5bbixpLHVdKX1mdW5jdGlvbiBEbihlKXtsZXR7W1N5bWJvbC5mb3IoXCJjb21tZW50c1wiKV06dCxbU3ltYm9sLmZvcihcInByaW50ZWRDb21tZW50c1wiKV06cn09ZTtmb3IobGV0IG4gb2YgdCl7aWYoIW4ucHJpbnRlZCYmIXIuaGFzKG4pKXRocm93IG5ldyBFcnJvcignQ29tbWVudCBcIicrbi52YWx1ZS50cmltKCkrJ1wiIHdhcyBub3QgcHJpbnRlZC4gUGxlYXNlIHJlcG9ydCB0aGlzIGVycm9yIScpO2RlbGV0ZSBuLnByaW50ZWR9fWZ1bmN0aW9uIGFpKGUpe3JldHVybigpPT57fX12YXIgbG49YWk7dmFyIFJlPWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIkNvbmZpZ0Vycm9yXCJ9LFllPWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIlVuZGVmaW5lZFBhcnNlckVycm9yXCJ9O3ZhciBjbj17Y3Vyc29yT2Zmc2V0OntjYXRlZ29yeTpcIlNwZWNpYWxcIix0eXBlOlwiaW50XCIsZGVmYXVsdDotMSxyYW5nZTp7c3RhcnQ6LTEsZW5kOjEvMCxzdGVwOjF9LGRlc2NyaXB0aW9uOlwiUHJpbnQgKHRvIHN0ZGVycikgd2hlcmUgYSBjdXJzb3IgYXQgdGhlIGdpdmVuIHBvc2l0aW9uIHdvdWxkIG1vdmUgdG8gYWZ0ZXIgZm9ybWF0dGluZy5cIixjbGlDYXRlZ29yeTpcIkVkaXRvclwifSxlbmRPZkxpbmU6e2NhdGVnb3J5OlwiR2xvYmFsXCIsdHlwZTpcImNob2ljZVwiLGRlZmF1bHQ6XCJsZlwiLGRlc2NyaXB0aW9uOlwiV2hpY2ggZW5kIG9mIGxpbmUgY2hhcmFjdGVycyB0byBhcHBseS5cIixjaG9pY2VzOlt7dmFsdWU6XCJsZlwiLGRlc2NyaXB0aW9uOlwiTGluZSBGZWVkIG9ubHkgKFxcXFxuKSwgY29tbW9uIG9uIExpbnV4IGFuZCBtYWNPUyBhcyB3ZWxsIGFzIGluc2lkZSBnaXQgcmVwb3NcIn0se3ZhbHVlOlwiY3JsZlwiLGRlc2NyaXB0aW9uOlwiQ2FycmlhZ2UgUmV0dXJuICsgTGluZSBGZWVkIGNoYXJhY3RlcnMgKFxcXFxyXFxcXG4pLCBjb21tb24gb24gV2luZG93c1wifSx7dmFsdWU6XCJjclwiLGRlc2NyaXB0aW9uOlwiQ2FycmlhZ2UgUmV0dXJuIGNoYXJhY3RlciBvbmx5IChcXFxcciksIHVzZWQgdmVyeSByYXJlbHlcIn0se3ZhbHVlOlwiYXV0b1wiLGRlc2NyaXB0aW9uOmBNYWludGFpbiBleGlzdGluZ1xuKG1peGVkIHZhbHVlcyB3aXRoaW4gb25lIGZpbGUgYXJlIG5vcm1hbGlzZWQgYnkgbG9va2luZyBhdCB3aGF0J3MgdXNlZCBhZnRlciB0aGUgZmlyc3QgbGluZSlgfV19LGZpbGVwYXRoOntjYXRlZ29yeTpcIlNwZWNpYWxcIix0eXBlOlwicGF0aFwiLGRlc2NyaXB0aW9uOlwiU3BlY2lmeSB0aGUgaW5wdXQgZmlsZXBhdGguIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGRvIHBhcnNlciBpbmZlcmVuY2UuXCIsY2xpTmFtZTpcInN0ZGluLWZpbGVwYXRoXCIsY2xpQ2F0ZWdvcnk6XCJPdGhlclwiLGNsaURlc2NyaXB0aW9uOlwiUGF0aCB0byB0aGUgZmlsZSB0byBwcmV0ZW5kIHRoYXQgc3RkaW4gY29tZXMgZnJvbS5cIn0saW5zZXJ0UHJhZ21hOntjYXRlZ29yeTpcIlNwZWNpYWxcIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITEsZGVzY3JpcHRpb246XCJJbnNlcnQgQGZvcm1hdCBwcmFnbWEgaW50byBmaWxlJ3MgZmlyc3QgZG9jYmxvY2sgY29tbWVudC5cIixjbGlDYXRlZ29yeTpcIk90aGVyXCJ9LHBhcnNlcjp7Y2F0ZWdvcnk6XCJHbG9iYWxcIix0eXBlOlwiY2hvaWNlXCIsZGVmYXVsdDp2b2lkIDAsZGVzY3JpcHRpb246XCJXaGljaCBwYXJzZXIgdG8gdXNlLlwiLGV4Y2VwdGlvbjplPT50eXBlb2YgZT09XCJzdHJpbmdcInx8dHlwZW9mIGU9PVwiZnVuY3Rpb25cIixjaG9pY2VzOlt7dmFsdWU6XCJmbG93XCIsZGVzY3JpcHRpb246XCJGbG93XCJ9LHt2YWx1ZTpcImJhYmVsXCIsZGVzY3JpcHRpb246XCJKYXZhU2NyaXB0XCJ9LHt2YWx1ZTpcImJhYmVsLWZsb3dcIixkZXNjcmlwdGlvbjpcIkZsb3dcIn0se3ZhbHVlOlwiYmFiZWwtdHNcIixkZXNjcmlwdGlvbjpcIlR5cGVTY3JpcHRcIn0se3ZhbHVlOlwidHlwZXNjcmlwdFwiLGRlc2NyaXB0aW9uOlwiVHlwZVNjcmlwdFwifSx7dmFsdWU6XCJhY29yblwiLGRlc2NyaXB0aW9uOlwiSmF2YVNjcmlwdFwifSx7dmFsdWU6XCJlc3ByZWVcIixkZXNjcmlwdGlvbjpcIkphdmFTY3JpcHRcIn0se3ZhbHVlOlwibWVyaXlhaFwiLGRlc2NyaXB0aW9uOlwiSmF2YVNjcmlwdFwifSx7dmFsdWU6XCJjc3NcIixkZXNjcmlwdGlvbjpcIkNTU1wifSx7dmFsdWU6XCJsZXNzXCIsZGVzY3JpcHRpb246XCJMZXNzXCJ9LHt2YWx1ZTpcInNjc3NcIixkZXNjcmlwdGlvbjpcIlNDU1NcIn0se3ZhbHVlOlwianNvblwiLGRlc2NyaXB0aW9uOlwiSlNPTlwifSx7dmFsdWU6XCJqc29uNVwiLGRlc2NyaXB0aW9uOlwiSlNPTjVcIn0se3ZhbHVlOlwianNvbmNcIixkZXNjcmlwdGlvbjpcIkpTT04gd2l0aCBDb21tZW50c1wifSx7dmFsdWU6XCJqc29uLXN0cmluZ2lmeVwiLGRlc2NyaXB0aW9uOlwiSlNPTi5zdHJpbmdpZnlcIn0se3ZhbHVlOlwiZ3JhcGhxbFwiLGRlc2NyaXB0aW9uOlwiR3JhcGhRTFwifSx7dmFsdWU6XCJtYXJrZG93blwiLGRlc2NyaXB0aW9uOlwiTWFya2Rvd25cIn0se3ZhbHVlOlwibWR4XCIsZGVzY3JpcHRpb246XCJNRFhcIn0se3ZhbHVlOlwidnVlXCIsZGVzY3JpcHRpb246XCJWdWVcIn0se3ZhbHVlOlwieWFtbFwiLGRlc2NyaXB0aW9uOlwiWUFNTFwifSx7dmFsdWU6XCJnbGltbWVyXCIsZGVzY3JpcHRpb246XCJFbWJlciAvIEhhbmRsZWJhcnNcIn0se3ZhbHVlOlwiaHRtbFwiLGRlc2NyaXB0aW9uOlwiSFRNTFwifSx7dmFsdWU6XCJhbmd1bGFyXCIsZGVzY3JpcHRpb246XCJBbmd1bGFyXCJ9LHt2YWx1ZTpcImx3Y1wiLGRlc2NyaXB0aW9uOlwiTGlnaHRuaW5nIFdlYiBDb21wb25lbnRzXCJ9XX0scGx1Z2luczp7dHlwZTpcInBhdGhcIixhcnJheTohMCxkZWZhdWx0Olt7dmFsdWU6W119XSxjYXRlZ29yeTpcIkdsb2JhbFwiLGRlc2NyaXB0aW9uOlwiQWRkIGEgcGx1Z2luLiBNdWx0aXBsZSBwbHVnaW5zIGNhbiBiZSBwYXNzZWQgYXMgc2VwYXJhdGUgYC0tcGx1Z2luYHMuXCIsZXhjZXB0aW9uOmU9PnR5cGVvZiBlPT1cInN0cmluZ1wifHx0eXBlb2YgZT09XCJvYmplY3RcIixjbGlOYW1lOlwicGx1Z2luXCIsY2xpQ2F0ZWdvcnk6XCJDb25maWdcIn0scHJpbnRXaWR0aDp7Y2F0ZWdvcnk6XCJHbG9iYWxcIix0eXBlOlwiaW50XCIsZGVmYXVsdDo4MCxkZXNjcmlwdGlvbjpcIlRoZSBsaW5lIGxlbmd0aCB3aGVyZSBQcmV0dGllciB3aWxsIHRyeSB3cmFwLlwiLHJhbmdlOntzdGFydDowLGVuZDoxLzAsc3RlcDoxfX0scmFuZ2VFbmQ6e2NhdGVnb3J5OlwiU3BlY2lhbFwiLHR5cGU6XCJpbnRcIixkZWZhdWx0OjEvMCxyYW5nZTp7c3RhcnQ6MCxlbmQ6MS8wLHN0ZXA6MX0sZGVzY3JpcHRpb246YEZvcm1hdCBjb2RlIGVuZGluZyBhdCBhIGdpdmVuIGNoYXJhY3RlciBvZmZzZXQgKGV4Y2x1c2l2ZSkuXG5UaGUgcmFuZ2Ugd2lsbCBleHRlbmQgZm9yd2FyZHMgdG8gdGhlIGVuZCBvZiB0aGUgc2VsZWN0ZWQgc3RhdGVtZW50LmAsY2xpQ2F0ZWdvcnk6XCJFZGl0b3JcIn0scmFuZ2VTdGFydDp7Y2F0ZWdvcnk6XCJTcGVjaWFsXCIsdHlwZTpcImludFwiLGRlZmF1bHQ6MCxyYW5nZTp7c3RhcnQ6MCxlbmQ6MS8wLHN0ZXA6MX0sZGVzY3JpcHRpb246YEZvcm1hdCBjb2RlIHN0YXJ0aW5nIGF0IGEgZ2l2ZW4gY2hhcmFjdGVyIG9mZnNldC5cblRoZSByYW5nZSB3aWxsIGV4dGVuZCBiYWNrd2FyZHMgdG8gdGhlIHN0YXJ0IG9mIHRoZSBmaXJzdCBsaW5lIGNvbnRhaW5pbmcgdGhlIHNlbGVjdGVkIHN0YXRlbWVudC5gLGNsaUNhdGVnb3J5OlwiRWRpdG9yXCJ9LHJlcXVpcmVQcmFnbWE6e2NhdGVnb3J5OlwiU3BlY2lhbFwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpgUmVxdWlyZSBlaXRoZXIgJ0BwcmV0dGllcicgb3IgJ0Bmb3JtYXQnIHRvIGJlIHByZXNlbnQgaW4gdGhlIGZpbGUncyBmaXJzdCBkb2NibG9jayBjb21tZW50XG5pbiBvcmRlciBmb3IgaXQgdG8gYmUgZm9ybWF0dGVkLmAsY2xpQ2F0ZWdvcnk6XCJPdGhlclwifSx0YWJXaWR0aDp7dHlwZTpcImludFwiLGNhdGVnb3J5OlwiR2xvYmFsXCIsZGVmYXVsdDoyLGRlc2NyaXB0aW9uOlwiTnVtYmVyIG9mIHNwYWNlcyBwZXIgaW5kZW50YXRpb24gbGV2ZWwuXCIscmFuZ2U6e3N0YXJ0OjAsZW5kOjEvMCxzdGVwOjF9fSx1c2VUYWJzOntjYXRlZ29yeTpcIkdsb2JhbFwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpcIkluZGVudCB3aXRoIHRhYnMgaW5zdGVhZCBvZiBzcGFjZXMuXCJ9LGVtYmVkZGVkTGFuZ3VhZ2VGb3JtYXR0aW5nOntjYXRlZ29yeTpcIkdsb2JhbFwiLHR5cGU6XCJjaG9pY2VcIixkZWZhdWx0OlwiYXV0b1wiLGRlc2NyaXB0aW9uOlwiQ29udHJvbCBob3cgUHJldHRpZXIgZm9ybWF0cyBxdW90ZWQgY29kZSBlbWJlZGRlZCBpbiB0aGUgZmlsZS5cIixjaG9pY2VzOlt7dmFsdWU6XCJhdXRvXCIsZGVzY3JpcHRpb246XCJGb3JtYXQgZW1iZWRkZWQgY29kZSBpZiBQcmV0dGllciBjYW4gYXV0b21hdGljYWxseSBpZGVudGlmeSBpdC5cIn0se3ZhbHVlOlwib2ZmXCIsZGVzY3JpcHRpb246XCJOZXZlciBhdXRvbWF0aWNhbGx5IGZvcm1hdCBlbWJlZGRlZCBjb2RlLlwifV19fTtmdW5jdGlvbiBvdCh7cGx1Z2luczplPVtdLHNob3dEZXByZWNhdGVkOnQ9ITF9PXt9KXtsZXQgcj1lLmZsYXRNYXAodT0+dS5sYW5ndWFnZXM/P1tdKSxuPVtdO2ZvcihsZXQgdSBvZiBsaShPYmplY3QuYXNzaWduKHt9LC4uLmUubWFwKCh7b3B0aW9uczppfSk9PmkpLGNuKSkpIXQmJnUuZGVwcmVjYXRlZHx8KEFycmF5LmlzQXJyYXkodS5jaG9pY2VzKSYmKHR8fCh1LmNob2ljZXM9dS5jaG9pY2VzLmZpbHRlcihpPT4haS5kZXByZWNhdGVkKSksdS5uYW1lPT09XCJwYXJzZXJcIiYmKHUuY2hvaWNlcz1bLi4udS5jaG9pY2VzLC4uLkRpKHUuY2hvaWNlcyxyLGUpXSkpLHUucGx1Z2luRGVmYXVsdHM9T2JqZWN0LmZyb21FbnRyaWVzKGUuZmlsdGVyKGk9Pnt2YXIgbztyZXR1cm4oKG89aS5kZWZhdWx0T3B0aW9ucyk9PW51bGw/dm9pZCAwOm9bdS5uYW1lXSkhPT12b2lkIDB9KS5tYXAoaT0+W2kubmFtZSxpLmRlZmF1bHRPcHRpb25zW3UubmFtZV1dKSksbi5wdXNoKHUpKTtyZXR1cm57bGFuZ3VhZ2VzOnIsb3B0aW9uczpufX1mdW5jdGlvbipEaShlLHQscil7bGV0IG49bmV3IFNldChlLm1hcCh1PT51LnZhbHVlKSk7Zm9yKGxldCB1IG9mIHQpaWYodS5wYXJzZXJzKXtmb3IobGV0IGkgb2YgdS5wYXJzZXJzKWlmKCFuLmhhcyhpKSl7bi5hZGQoaSk7bGV0IG89ci5maW5kKGE9PmEucGFyc2VycyYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEucGFyc2VycyxpKSkscz11Lm5hbWU7byE9bnVsbCYmby5uYW1lJiYocys9YCAocGx1Z2luOiAke28ubmFtZX0pYCkseWllbGR7dmFsdWU6aSxkZXNjcmlwdGlvbjpzfX19fWZ1bmN0aW9uIGxpKGUpe2xldCB0PVtdO2ZvcihsZXRbcixuXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtsZXQgdT17bmFtZTpyLC4uLm59O0FycmF5LmlzQXJyYXkodS5kZWZhdWx0KSYmKHUuZGVmYXVsdD15KCExLHUuZGVmYXVsdCwtMSkudmFsdWUpLHQucHVzaCh1KX1yZXR1cm4gdH12YXIgY2k9ZT0+U3RyaW5nKGUpLnNwbGl0KC9bL1xcXFxdL3UpLnBvcCgpO2Z1bmN0aW9uIGZuKGUsdCl7aWYoIXQpcmV0dXJuO2xldCByPWNpKHQpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGUuZmluZCgoe2ZpbGVuYW1lczpufSk9Pm49PW51bGw/dm9pZCAwOm4uc29tZSh1PT51LnRvTG93ZXJDYXNlKCk9PT1yKSk/P2UuZmluZCgoe2V4dGVuc2lvbnM6bn0pPT5uPT1udWxsP3ZvaWQgMDpuLnNvbWUodT0+ci5lbmRzV2l0aCh1KSkpfWZ1bmN0aW9uIGZpKGUsdCl7aWYodClyZXR1cm4gZS5maW5kKCh7bmFtZTpyfSk9PnIudG9Mb3dlckNhc2UoKT09PXQpPz9lLmZpbmQoKHthbGlhc2VzOnJ9KT0+cj09bnVsbD92b2lkIDA6ci5pbmNsdWRlcyh0KSk/P2UuZmluZCgoe2V4dGVuc2lvbnM6cn0pPT5yPT1udWxsP3ZvaWQgMDpyLmluY2x1ZGVzKGAuJHt0fWApKX1mdW5jdGlvbiBkaShlLHQpe2xldCByPWUucGx1Z2lucy5mbGF0TWFwKHU9PnUubGFuZ3VhZ2VzPz9bXSksbj1maShyLHQubGFuZ3VhZ2UpPz9mbihyLHQucGh5c2ljYWxGaWxlKT8/Zm4ocix0LmZpbGUpPz8odC5waHlzaWNhbEZpbGUsdm9pZCAwKTtyZXR1cm4gbj09bnVsbD92b2lkIDA6bi5wYXJzZXJzWzBdfXZhciBkbj1kaTt2YXIgb2U9e2tleTplPT4vXlskX2EtekEtWl1bJF9hLXpBLVowLTldKiQvLnRlc3QoZSk/ZTpKU09OLnN0cmluZ2lmeShlKSx2YWx1ZShlKXtpZihlPT09bnVsbHx8dHlwZW9mIGUhPVwib2JqZWN0XCIpcmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuYFske2UubWFwKHI9Pm9lLnZhbHVlKHIpKS5qb2luKFwiLCBcIil9XWA7bGV0IHQ9T2JqZWN0LmtleXMoZSk7cmV0dXJuIHQubGVuZ3RoPT09MD9cInt9XCI6YHsgJHt0Lm1hcChyPT5gJHtvZS5rZXkocil9OiAke29lLnZhbHVlKGVbcl0pfWApLmpvaW4oXCIsIFwiKX0gfWB9LHBhaXI6KHtrZXk6ZSx2YWx1ZTp0fSk9Pm9lLnZhbHVlKHtbZV06dH0pfTt2YXIgVXQ9TWUoc3QoKSwxKSxtbj0oZSx0LHtkZXNjcmlwdG9yOnJ9KT0+e2xldCBuPVtgJHtVdC5kZWZhdWx0LnllbGxvdyh0eXBlb2YgZT09XCJzdHJpbmdcIj9yLmtleShlKTpyLnBhaXIoZSkpfSBpcyBkZXByZWNhdGVkYF07cmV0dXJuIHQmJm4ucHVzaChgd2Ugbm93IHRyZWF0IGl0IGFzICR7VXQuZGVmYXVsdC5ibHVlKHR5cGVvZiB0PT1cInN0cmluZ1wiP3Iua2V5KHQpOnIucGFpcih0KSl9YCksbi5qb2luKFwiOyBcIikrXCIuXCJ9O3ZhciBjZT1NZShzdCgpLDEpO3ZhciBhdD1TeW1ib2wuZm9yKFwidm5vcHRzLlZBTFVFX05PVF9FWElTVFwiKSxBZT1TeW1ib2wuZm9yKFwidm5vcHRzLlZBTFVFX1VOQ0hBTkdFRFwiKTt2YXIgaG49XCIgXCIucmVwZWF0KDIpLENuPShlLHQscik9PntsZXR7dGV4dDpuLGxpc3Q6dX09ci5ub3JtYWxpemVFeHBlY3RlZFJlc3VsdChyLnNjaGVtYXNbZV0uZXhwZWN0ZWQocikpLGk9W107cmV0dXJuIG4mJmkucHVzaChFbihlLHQsbixyLmRlc2NyaXB0b3IpKSx1JiZpLnB1c2goW0VuKGUsdCx1LnRpdGxlLHIuZGVzY3JpcHRvcildLmNvbmNhdCh1LnZhbHVlcy5tYXAobz0+Z24obyxyLmxvZ2dlclByaW50V2lkdGgpKSkuam9pbihgXG5gKSkseW4oaSxyLmxvZ2dlclByaW50V2lkdGgpfTtmdW5jdGlvbiBFbihlLHQscixuKXtyZXR1cm5bYEludmFsaWQgJHtjZS5kZWZhdWx0LnJlZChuLmtleShlKSl9IHZhbHVlLmAsYEV4cGVjdGVkICR7Y2UuZGVmYXVsdC5ibHVlKHIpfSxgLGBidXQgcmVjZWl2ZWQgJHt0PT09YXQ/Y2UuZGVmYXVsdC5ncmF5KFwibm90aGluZ1wiKTpjZS5kZWZhdWx0LnJlZChuLnZhbHVlKHQpKX0uYF0uam9pbihcIiBcIil9ZnVuY3Rpb24gZ24oe3RleHQ6ZSxsaXN0OnR9LHIpe2xldCBuPVtdO3JldHVybiBlJiZuLnB1c2goYC0gJHtjZS5kZWZhdWx0LmJsdWUoZSl9YCksdCYmbi5wdXNoKFtgLSAke2NlLmRlZmF1bHQuYmx1ZSh0LnRpdGxlKX06YF0uY29uY2F0KHQudmFsdWVzLm1hcCh1PT5nbih1LHItaG4ubGVuZ3RoKS5yZXBsYWNlKC9efFxcbi9nLGAkJiR7aG59YCkpKS5qb2luKGBcbmApKSx5bihuLHIpfWZ1bmN0aW9uIHluKGUsdCl7aWYoZS5sZW5ndGg9PT0xKXJldHVybiBlWzBdO2xldFtyLG5dPWUsW3UsaV09ZS5tYXAobz0+by5zcGxpdChgXG5gLDEpWzBdLmxlbmd0aCk7cmV0dXJuIHU+dCYmdT5pP246cn12YXIgR3Q9TWUoc3QoKSwxKTt2YXIgVnQ9W10sQW49W107ZnVuY3Rpb24genQoZSx0KXtpZihlPT09dClyZXR1cm4gMDtsZXQgcj1lO2UubGVuZ3RoPnQubGVuZ3RoJiYoZT10LHQ9cik7bGV0IG49ZS5sZW5ndGgsdT10Lmxlbmd0aDtmb3IoO24+MCYmZS5jaGFyQ29kZUF0KH4tbik9PT10LmNoYXJDb2RlQXQofi11KTspbi0tLHUtLTtsZXQgaT0wO2Zvcig7aTxuJiZlLmNoYXJDb2RlQXQoaSk9PT10LmNoYXJDb2RlQXQoaSk7KWkrKztpZihuLT1pLHUtPWksbj09PTApcmV0dXJuIHU7bGV0IG8scyxhLEQsbD0wLHA9MDtmb3IoO2w8bjspQW5bbF09ZS5jaGFyQ29kZUF0KGkrbCksVnRbbF09KytsO2Zvcig7cDx1Oylmb3Iobz10LmNoYXJDb2RlQXQoaStwKSxhPXArKyxzPXAsbD0wO2w8bjtsKyspRD1vPT09QW5bbF0/YTphKzEsYT1WdFtsXSxzPVZ0W2xdPWE+cz9EPnM/cysxOkQ6RD5hP2ErMTpEO3JldHVybiBzfXZhciBEdD0oZSx0LHtkZXNjcmlwdG9yOnIsbG9nZ2VyOm4sc2NoZW1hczp1fSk9PntsZXQgaT1bYElnbm9yZWQgdW5rbm93biBvcHRpb24gJHtHdC5kZWZhdWx0LnllbGxvdyhyLnBhaXIoe2tleTplLHZhbHVlOnR9KSl9LmBdLG89T2JqZWN0LmtleXModSkuc29ydCgpLmZpbmQocz0+enQoZSxzKTwzKTtvJiZpLnB1c2goYERpZCB5b3UgbWVhbiAke0d0LmRlZmF1bHQuYmx1ZShyLmtleShvKSl9P2ApLG4ud2FybihpLmpvaW4oXCIgXCIpKX07dmFyIHBpPVtcImRlZmF1bHRcIixcImV4cGVjdGVkXCIsXCJ2YWxpZGF0ZVwiLFwiZGVwcmVjYXRlZFwiLFwiZm9yd2FyZFwiLFwicmVkaXJlY3RcIixcIm92ZXJsYXBcIixcInByZXByb2Nlc3NcIixcInBvc3Rwcm9jZXNzXCJdO2Z1bmN0aW9uIEZpKGUsdCl7bGV0IHI9bmV3IGUodCksbj1PYmplY3QuY3JlYXRlKHIpO2ZvcihsZXQgdSBvZiBwaSl1IGluIHQmJihuW3VdPW1pKHRbdV0scix4LnByb3RvdHlwZVt1XS5sZW5ndGgpKTtyZXR1cm4gbn12YXIgeD1jbGFzc3tzdGF0aWMgY3JlYXRlKHQpe3JldHVybiBGaSh0aGlzLHQpfWNvbnN0cnVjdG9yKHQpe3RoaXMubmFtZT10Lm5hbWV9ZGVmYXVsdCh0KXt9ZXhwZWN0ZWQodCl7cmV0dXJuXCJub3RoaW5nXCJ9dmFsaWRhdGUodCxyKXtyZXR1cm4hMX1kZXByZWNhdGVkKHQscil7cmV0dXJuITF9Zm9yd2FyZCh0LHIpe31yZWRpcmVjdCh0LHIpe31vdmVybGFwKHQscixuKXtyZXR1cm4gdH1wcmVwcm9jZXNzKHQscil7cmV0dXJuIHR9cG9zdHByb2Nlc3ModCxyKXtyZXR1cm4gQWV9fTtmdW5jdGlvbiBtaShlLHQscil7cmV0dXJuIHR5cGVvZiBlPT1cImZ1bmN0aW9uXCI/KC4uLm4pPT5lKC4uLm4uc2xpY2UoMCxyLTEpLHQsLi4ubi5zbGljZShyLTEpKTooKT0+ZX12YXIgbHQ9Y2xhc3MgZXh0ZW5kcyB4e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX3NvdXJjZU5hbWU9dC5zb3VyY2VOYW1lfWV4cGVjdGVkKHQpe3JldHVybiB0LnNjaGVtYXNbdGhpcy5fc291cmNlTmFtZV0uZXhwZWN0ZWQodCl9dmFsaWRhdGUodCxyKXtyZXR1cm4gci5zY2hlbWFzW3RoaXMuX3NvdXJjZU5hbWVdLnZhbGlkYXRlKHQscil9cmVkaXJlY3QodCxyKXtyZXR1cm4gdGhpcy5fc291cmNlTmFtZX19O3ZhciBjdD1jbGFzcyBleHRlbmRzIHh7ZXhwZWN0ZWQoKXtyZXR1cm5cImFueXRoaW5nXCJ9dmFsaWRhdGUoKXtyZXR1cm4hMH19O3ZhciBmdD1jbGFzcyBleHRlbmRzIHh7Y29uc3RydWN0b3Ioe3ZhbHVlU2NoZW1hOnQsbmFtZTpyPXQubmFtZSwuLi5ufSl7c3VwZXIoey4uLm4sbmFtZTpyfSksdGhpcy5fdmFsdWVTY2hlbWE9dH1leHBlY3RlZCh0KXtsZXR7dGV4dDpyLGxpc3Q6bn09dC5ub3JtYWxpemVFeHBlY3RlZFJlc3VsdCh0aGlzLl92YWx1ZVNjaGVtYS5leHBlY3RlZCh0KSk7cmV0dXJue3RleHQ6ciYmYGFuIGFycmF5IG9mICR7cn1gLGxpc3Q6biYme3RpdGxlOlwiYW4gYXJyYXkgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXNcIix2YWx1ZXM6W3tsaXN0Om59XX19fXZhbGlkYXRlKHQscil7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuITE7bGV0IG49W107Zm9yKGxldCB1IG9mIHQpe2xldCBpPXIubm9ybWFsaXplVmFsaWRhdGVSZXN1bHQodGhpcy5fdmFsdWVTY2hlbWEudmFsaWRhdGUodSxyKSx1KTtpIT09ITAmJm4ucHVzaChpLnZhbHVlKX1yZXR1cm4gbi5sZW5ndGg9PT0wPyEwOnt2YWx1ZTpufX1kZXByZWNhdGVkKHQscil7bGV0IG49W107Zm9yKGxldCB1IG9mIHQpe2xldCBpPXIubm9ybWFsaXplRGVwcmVjYXRlZFJlc3VsdCh0aGlzLl92YWx1ZVNjaGVtYS5kZXByZWNhdGVkKHUsciksdSk7aSE9PSExJiZuLnB1c2goLi4uaS5tYXAoKHt2YWx1ZTpvfSk9Pih7dmFsdWU6W29dfSkpKX1yZXR1cm4gbn1mb3J3YXJkKHQscil7bGV0IG49W107Zm9yKGxldCB1IG9mIHQpe2xldCBpPXIubm9ybWFsaXplRm9yd2FyZFJlc3VsdCh0aGlzLl92YWx1ZVNjaGVtYS5mb3J3YXJkKHUsciksdSk7bi5wdXNoKC4uLmkubWFwKHZuKSl9cmV0dXJuIG59cmVkaXJlY3QodCxyKXtsZXQgbj1bXSx1PVtdO2ZvcihsZXQgaSBvZiB0KXtsZXQgbz1yLm5vcm1hbGl6ZVJlZGlyZWN0UmVzdWx0KHRoaXMuX3ZhbHVlU2NoZW1hLnJlZGlyZWN0KGksciksaSk7XCJyZW1haW5cImluIG8mJm4ucHVzaChvLnJlbWFpbiksdS5wdXNoKC4uLm8ucmVkaXJlY3QubWFwKHZuKSl9cmV0dXJuIG4ubGVuZ3RoPT09MD97cmVkaXJlY3Q6dX06e3JlZGlyZWN0OnUscmVtYWluOm59fW92ZXJsYXAodCxyKXtyZXR1cm4gdC5jb25jYXQocil9fTtmdW5jdGlvbiB2bih7ZnJvbTplLHRvOnR9KXtyZXR1cm57ZnJvbTpbZV0sdG86dH19dmFyIGR0PWNsYXNzIGV4dGVuZHMgeHtleHBlY3RlZCgpe3JldHVyblwidHJ1ZSBvciBmYWxzZVwifXZhbGlkYXRlKHQpe3JldHVybiB0eXBlb2YgdD09XCJib29sZWFuXCJ9fTtmdW5jdGlvbiB3bihlLHQpe2xldCByPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBuIG9mIGUpe2xldCB1PW5bdF07aWYoclt1XSl0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSAke3R9ICR7SlNPTi5zdHJpbmdpZnkodSl9YCk7clt1XT1ufXJldHVybiByfWZ1bmN0aW9uIF9uKGUsdCl7bGV0IHI9bmV3IE1hcDtmb3IobGV0IG4gb2YgZSl7bGV0IHU9blt0XTtpZihyLmhhcyh1KSl0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSAke3R9ICR7SlNPTi5zdHJpbmdpZnkodSl9YCk7ci5zZXQodSxuKX1yZXR1cm4gcn1mdW5jdGlvbiB4bigpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHQ9PntsZXQgcj1KU09OLnN0cmluZ2lmeSh0KTtyZXR1cm4gZVtyXT8hMDooZVtyXT0hMCwhMSl9fWZ1bmN0aW9uIGJuKGUsdCl7bGV0IHI9W10sbj1bXTtmb3IobGV0IHUgb2YgZSl0KHUpP3IucHVzaCh1KTpuLnB1c2godSk7cmV0dXJuW3Isbl19ZnVuY3Rpb24gTm4oZSl7cmV0dXJuIGU9PT1NYXRoLmZsb29yKGUpfWZ1bmN0aW9uIE9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIDA7bGV0IHI9dHlwZW9mIGUsbj10eXBlb2YgdCx1PVtcInVuZGVmaW5lZFwiLFwib2JqZWN0XCIsXCJib29sZWFuXCIsXCJudW1iZXJcIixcInN0cmluZ1wiXTtyZXR1cm4gciE9PW4/dS5pbmRleE9mKHIpLXUuaW5kZXhPZihuKTpyIT09XCJzdHJpbmdcIj9OdW1iZXIoZSktTnVtYmVyKHQpOmUubG9jYWxlQ29tcGFyZSh0KX1mdW5jdGlvbiBTbihlKXtyZXR1cm4oLi4udCk9PntsZXQgcj1lKC4uLnQpO3JldHVybiB0eXBlb2Ygcj09XCJzdHJpbmdcIj9uZXcgRXJyb3Iocik6cn19ZnVuY3Rpb24gS3QoZSl7cmV0dXJuIGU9PT12b2lkIDA/e306ZX1mdW5jdGlvbiBKdChlKXtpZih0eXBlb2YgZT09XCJzdHJpbmdcIilyZXR1cm57dGV4dDplfTtsZXR7dGV4dDp0LGxpc3Q6cn09ZTtyZXR1cm4gaGkoKHR8fHIpIT09dm9pZCAwLFwiVW5leHBlY3RlZCBgZXhwZWN0ZWRgIHJlc3VsdCwgdGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBmaWVsZC5cIikscj97dGV4dDp0LGxpc3Q6e3RpdGxlOnIudGl0bGUsdmFsdWVzOnIudmFsdWVzLm1hcChKdCl9fTp7dGV4dDp0fX1mdW5jdGlvbiBxdChlLHQpe3JldHVybiBlPT09ITA/ITA6ZT09PSExP3t2YWx1ZTp0fTplfWZ1bmN0aW9uIFh0KGUsdCxyPSExKXtyZXR1cm4gZT09PSExPyExOmU9PT0hMD9yPyEwOlt7dmFsdWU6dH1dOlwidmFsdWVcImluIGU/W2VdOmUubGVuZ3RoPT09MD8hMTplfWZ1bmN0aW9uIEJuKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT1cInN0cmluZ1wifHxcImtleVwiaW4gZT97ZnJvbTp0LHRvOmV9OlwiZnJvbVwiaW4gZT97ZnJvbTplLmZyb20sdG86ZS50b306e2Zyb206dCx0bzplLnRvfX1mdW5jdGlvbiBwdChlLHQpe3JldHVybiBlPT09dm9pZCAwP1tdOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAocj0+Qm4ocix0KSk6W0JuKGUsdCldfWZ1bmN0aW9uIFF0KGUsdCl7bGV0IHI9cHQodHlwZW9mIGU9PVwib2JqZWN0XCImJlwicmVkaXJlY3RcImluIGU/ZS5yZWRpcmVjdDplLHQpO3JldHVybiByLmxlbmd0aD09PTA/e3JlbWFpbjp0LHJlZGlyZWN0OnJ9OnR5cGVvZiBlPT1cIm9iamVjdFwiJiZcInJlbWFpblwiaW4gZT97cmVtYWluOmUucmVtYWluLHJlZGlyZWN0OnJ9OntyZWRpcmVjdDpyfX1mdW5jdGlvbiBoaShlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcih0KX12YXIgRnQ9Y2xhc3MgZXh0ZW5kcyB4e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX2Nob2ljZXM9X24odC5jaG9pY2VzLm1hcChyPT5yJiZ0eXBlb2Ygcj09XCJvYmplY3RcIj9yOnt2YWx1ZTpyfSksXCJ2YWx1ZVwiKX1leHBlY3RlZCh7ZGVzY3JpcHRvcjp0fSl7bGV0IHI9QXJyYXkuZnJvbSh0aGlzLl9jaG9pY2VzLmtleXMoKSkubWFwKG89PnRoaXMuX2Nob2ljZXMuZ2V0KG8pKS5maWx0ZXIoKHtoaWRkZW46b30pPT4hbykubWFwKG89Pm8udmFsdWUpLnNvcnQoT24pLm1hcCh0LnZhbHVlKSxuPXIuc2xpY2UoMCwtMiksdT1yLnNsaWNlKC0yKTtyZXR1cm57dGV4dDpuLmNvbmNhdCh1LmpvaW4oXCIgb3IgXCIpKS5qb2luKFwiLCBcIiksbGlzdDp7dGl0bGU6XCJvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXNcIix2YWx1ZXM6cn19fXZhbGlkYXRlKHQpe3JldHVybiB0aGlzLl9jaG9pY2VzLmhhcyh0KX1kZXByZWNhdGVkKHQpe2xldCByPXRoaXMuX2Nob2ljZXMuZ2V0KHQpO3JldHVybiByJiZyLmRlcHJlY2F0ZWQ/e3ZhbHVlOnR9OiExfWZvcndhcmQodCl7bGV0IHI9dGhpcy5fY2hvaWNlcy5nZXQodCk7cmV0dXJuIHI/ci5mb3J3YXJkOnZvaWQgMH1yZWRpcmVjdCh0KXtsZXQgcj10aGlzLl9jaG9pY2VzLmdldCh0KTtyZXR1cm4gcj9yLnJlZGlyZWN0OnZvaWQgMH19O3ZhciBtdD1jbGFzcyBleHRlbmRzIHh7ZXhwZWN0ZWQoKXtyZXR1cm5cImEgbnVtYmVyXCJ9dmFsaWRhdGUodCxyKXtyZXR1cm4gdHlwZW9mIHQ9PVwibnVtYmVyXCJ9fTt2YXIgaHQ9Y2xhc3MgZXh0ZW5kcyBtdHtleHBlY3RlZCgpe3JldHVyblwiYW4gaW50ZWdlclwifXZhbGlkYXRlKHQscil7cmV0dXJuIHIubm9ybWFsaXplVmFsaWRhdGVSZXN1bHQoc3VwZXIudmFsaWRhdGUodCxyKSx0KT09PSEwJiZObih0KX19O3ZhciBqZT1jbGFzcyBleHRlbmRzIHh7ZXhwZWN0ZWQoKXtyZXR1cm5cImEgc3RyaW5nXCJ9dmFsaWRhdGUodCl7cmV0dXJuIHR5cGVvZiB0PT1cInN0cmluZ1wifX07dmFyIFRuPW9lLGtuPUR0LExuPUNuLFBuPW1uO3ZhciBFdD1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe2xldHtsb2dnZXI6bj1jb25zb2xlLGxvZ2dlclByaW50V2lkdGg6dT04MCxkZXNjcmlwdG9yOmk9VG4sdW5rbm93bjpvPWtuLGludmFsaWQ6cz1MbixkZXByZWNhdGVkOmE9UG4sbWlzc2luZzpEPSgpPT4hMSxyZXF1aXJlZDpsPSgpPT4hMSxwcmVwcm9jZXNzOnA9ZD0+ZCxwb3N0cHJvY2VzczpmPSgpPT5BZX09cnx8e307dGhpcy5fdXRpbHM9e2Rlc2NyaXB0b3I6aSxsb2dnZXI6bnx8e3dhcm46KCk9Pnt9fSxsb2dnZXJQcmludFdpZHRoOnUsc2NoZW1hczp3bih0LFwibmFtZVwiKSxub3JtYWxpemVEZWZhdWx0UmVzdWx0Okt0LG5vcm1hbGl6ZUV4cGVjdGVkUmVzdWx0Okp0LG5vcm1hbGl6ZURlcHJlY2F0ZWRSZXN1bHQ6WHQsbm9ybWFsaXplRm9yd2FyZFJlc3VsdDpwdCxub3JtYWxpemVSZWRpcmVjdFJlc3VsdDpRdCxub3JtYWxpemVWYWxpZGF0ZVJlc3VsdDpxdH0sdGhpcy5fdW5rbm93bkhhbmRsZXI9byx0aGlzLl9pbnZhbGlkSGFuZGxlcj1TbihzKSx0aGlzLl9kZXByZWNhdGVkSGFuZGxlcj1hLHRoaXMuX2lkZW50aWZ5TWlzc2luZz0oZCxjKT0+IShkIGluIGMpfHxEKGQsYyksdGhpcy5faWRlbnRpZnlSZXF1aXJlZD1sLHRoaXMuX3ByZXByb2Nlc3M9cCx0aGlzLl9wb3N0cHJvY2Vzcz1mLHRoaXMuY2xlYW5IaXN0b3J5KCl9Y2xlYW5IaXN0b3J5KCl7dGhpcy5faGFzRGVwcmVjYXRpb25XYXJuZWQ9eG4oKX1ub3JtYWxpemUodCl7bGV0IHI9e30sdT1bdGhpcy5fcHJlcHJvY2Vzcyh0LHRoaXMuX3V0aWxzKV0saT0oKT0+e2Zvcig7dS5sZW5ndGghPT0wOyl7bGV0IG89dS5zaGlmdCgpLHM9dGhpcy5fYXBwbHlOb3JtYWxpemF0aW9uKG8scik7dS5wdXNoKC4uLnMpfX07aSgpO2ZvcihsZXQgbyBvZiBPYmplY3Qua2V5cyh0aGlzLl91dGlscy5zY2hlbWFzKSl7bGV0IHM9dGhpcy5fdXRpbHMuc2NoZW1hc1tvXTtpZighKG8gaW4gcikpe2xldCBhPUt0KHMuZGVmYXVsdCh0aGlzLl91dGlscykpO1widmFsdWVcImluIGEmJnUucHVzaCh7W29dOmEudmFsdWV9KX19aSgpO2ZvcihsZXQgbyBvZiBPYmplY3Qua2V5cyh0aGlzLl91dGlscy5zY2hlbWFzKSl7aWYoIShvIGluIHIpKWNvbnRpbnVlO2xldCBzPXRoaXMuX3V0aWxzLnNjaGVtYXNbb10sYT1yW29dLEQ9cy5wb3N0cHJvY2VzcyhhLHRoaXMuX3V0aWxzKTtEIT09QWUmJih0aGlzLl9hcHBseVZhbGlkYXRpb24oRCxvLHMpLHJbb109RCl9cmV0dXJuIHRoaXMuX2FwcGx5UG9zdHByb2Nlc3MociksdGhpcy5fYXBwbHlSZXF1aXJlZENoZWNrKHIpLHJ9X2FwcGx5Tm9ybWFsaXphdGlvbih0LHIpe2xldCBuPVtdLHtrbm93bktleXM6dSx1bmtub3duS2V5czppfT10aGlzLl9wYXJ0aXRpb25PcHRpb25LZXlzKHQpO2ZvcihsZXQgbyBvZiB1KXtsZXQgcz10aGlzLl91dGlscy5zY2hlbWFzW29dLGE9cy5wcmVwcm9jZXNzKHRbb10sdGhpcy5fdXRpbHMpO3RoaXMuX2FwcGx5VmFsaWRhdGlvbihhLG8scyk7bGV0IEQ9KHtmcm9tOmQsdG86Y30pPT57bi5wdXNoKHR5cGVvZiBjPT1cInN0cmluZ1wiP3tbY106ZH06e1tjLmtleV06Yy52YWx1ZX0pfSxsPSh7dmFsdWU6ZCxyZWRpcmVjdFRvOmN9KT0+e2xldCBGPVh0KHMuZGVwcmVjYXRlZChkLHRoaXMuX3V0aWxzKSxhLCEwKTtpZihGIT09ITEpaWYoRj09PSEwKXRoaXMuX2hhc0RlcHJlY2F0aW9uV2FybmVkKG8pfHx0aGlzLl91dGlscy5sb2dnZXIud2Fybih0aGlzLl9kZXByZWNhdGVkSGFuZGxlcihvLGMsdGhpcy5fdXRpbHMpKTtlbHNlIGZvcihsZXR7dmFsdWU6bX1vZiBGKXtsZXQgaD17a2V5Om8sdmFsdWU6bX07aWYoIXRoaXMuX2hhc0RlcHJlY2F0aW9uV2FybmVkKGgpKXtsZXQgQz10eXBlb2YgYz09XCJzdHJpbmdcIj97a2V5OmMsdmFsdWU6bX06Yzt0aGlzLl91dGlscy5sb2dnZXIud2Fybih0aGlzLl9kZXByZWNhdGVkSGFuZGxlcihoLEMsdGhpcy5fdXRpbHMpKX19fTtwdChzLmZvcndhcmQoYSx0aGlzLl91dGlscyksYSkuZm9yRWFjaChEKTtsZXQgZj1RdChzLnJlZGlyZWN0KGEsdGhpcy5fdXRpbHMpLGEpO2lmKGYucmVkaXJlY3QuZm9yRWFjaChEKSxcInJlbWFpblwiaW4gZil7bGV0IGQ9Zi5yZW1haW47cltvXT1vIGluIHI/cy5vdmVybGFwKHJbb10sZCx0aGlzLl91dGlscyk6ZCxsKHt2YWx1ZTpkfSl9Zm9yKGxldHtmcm9tOmQsdG86Y31vZiBmLnJlZGlyZWN0KWwoe3ZhbHVlOmQscmVkaXJlY3RUbzpjfSl9Zm9yKGxldCBvIG9mIGkpe2xldCBzPXRbb107dGhpcy5fYXBwbHlVbmtub3duSGFuZGxlcihvLHMsciwoYSxEKT0+e24ucHVzaCh7W2FdOkR9KX0pfXJldHVybiBufV9hcHBseVJlcXVpcmVkQ2hlY2sodCl7Zm9yKGxldCByIG9mIE9iamVjdC5rZXlzKHRoaXMuX3V0aWxzLnNjaGVtYXMpKWlmKHRoaXMuX2lkZW50aWZ5TWlzc2luZyhyLHQpJiZ0aGlzLl9pZGVudGlmeVJlcXVpcmVkKHIpKXRocm93IHRoaXMuX2ludmFsaWRIYW5kbGVyKHIsYXQsdGhpcy5fdXRpbHMpfV9wYXJ0aXRpb25PcHRpb25LZXlzKHQpe2xldFtyLG5dPWJuKE9iamVjdC5rZXlzKHQpLmZpbHRlcih1PT4hdGhpcy5faWRlbnRpZnlNaXNzaW5nKHUsdCkpLHU9PnUgaW4gdGhpcy5fdXRpbHMuc2NoZW1hcyk7cmV0dXJue2tub3duS2V5czpyLHVua25vd25LZXlzOm59fV9hcHBseVZhbGlkYXRpb24odCxyLG4pe2xldCB1PXF0KG4udmFsaWRhdGUodCx0aGlzLl91dGlscyksdCk7aWYodSE9PSEwKXRocm93IHRoaXMuX2ludmFsaWRIYW5kbGVyKHIsdS52YWx1ZSx0aGlzLl91dGlscyl9X2FwcGx5VW5rbm93bkhhbmRsZXIodCxyLG4sdSl7bGV0IGk9dGhpcy5fdW5rbm93bkhhbmRsZXIodCxyLHRoaXMuX3V0aWxzKTtpZihpKWZvcihsZXQgbyBvZiBPYmplY3Qua2V5cyhpKSl7aWYodGhpcy5faWRlbnRpZnlNaXNzaW5nKG8saSkpY29udGludWU7bGV0IHM9aVtvXTtvIGluIHRoaXMuX3V0aWxzLnNjaGVtYXM/dShvLHMpOm5bb109c319X2FwcGx5UG9zdHByb2Nlc3ModCl7bGV0IHI9dGhpcy5fcG9zdHByb2Nlc3ModCx0aGlzLl91dGlscyk7aWYociE9PUFlKXtpZihyLmRlbGV0ZSlmb3IobGV0IG4gb2Ygci5kZWxldGUpZGVsZXRlIHRbbl07aWYoci5vdmVycmlkZSl7bGV0e2tub3duS2V5czpuLHVua25vd25LZXlzOnV9PXRoaXMuX3BhcnRpdGlvbk9wdGlvbktleXMoci5vdmVycmlkZSk7Zm9yKGxldCBpIG9mIG4pe2xldCBvPXIub3ZlcnJpZGVbaV07dGhpcy5fYXBwbHlWYWxpZGF0aW9uKG8saSx0aGlzLl91dGlscy5zY2hlbWFzW2ldKSx0W2ldPW99Zm9yKGxldCBpIG9mIHUpe2xldCBvPXIub3ZlcnJpZGVbaV07dGhpcy5fYXBwbHlVbmtub3duSGFuZGxlcihpLG8sdCwocyxhKT0+e2xldCBEPXRoaXMuX3V0aWxzLnNjaGVtYXNbc107dGhpcy5fYXBwbHlWYWxpZGF0aW9uKGEscyxEKSx0W3NdPWF9KX19fX19O3ZhciBadDtmdW5jdGlvbiBDaShlLHQse2xvZ2dlcjpyPSExLGlzQ0xJOm49ITEscGFzc1Rocm91Z2g6dT0hMSxGbGFnU2NoZW1hOmksZGVzY3JpcHRvcjpvfT17fSl7aWYobil7aWYoIWkpdGhyb3cgbmV3IEVycm9yKFwiJ0ZsYWdTY2hlbWEnIG9wdGlvbiBpcyByZXF1aXJlZC5cIik7aWYoIW8pdGhyb3cgbmV3IEVycm9yKFwiJ2Rlc2NyaXB0b3InIG9wdGlvbiBpcyByZXF1aXJlZC5cIil9ZWxzZSBvPW9lO2xldCBzPXU/QXJyYXkuaXNBcnJheSh1KT8oZixkKT0+dS5pbmNsdWRlcyhmKT97W2ZdOmR9OnZvaWQgMDooZixkKT0+KHtbZl06ZH0pOihmLGQsYyk9PntsZXR7XzpGLC4uLm19PWMuc2NoZW1hcztyZXR1cm4gRHQoZixkLHsuLi5jLHNjaGVtYXM6bX0pfSxhPWdpKHQse2lzQ0xJOm4sRmxhZ1NjaGVtYTppfSksRD1uZXcgRXQoYSx7bG9nZ2VyOnIsdW5rbm93bjpzLGRlc2NyaXB0b3I6b30pLGw9ciE9PSExO2wmJlp0JiYoRC5faGFzRGVwcmVjYXRpb25XYXJuZWQ9WnQpO2xldCBwPUQubm9ybWFsaXplKGUpO3JldHVybiBsJiYoWnQ9RC5faGFzRGVwcmVjYXRpb25XYXJuZWQpLHB9ZnVuY3Rpb24gZ2koZSx7aXNDTEk6dCxGbGFnU2NoZW1hOnJ9KXtsZXQgbj1bXTt0JiZuLnB1c2goY3QuY3JlYXRlKHtuYW1lOlwiX1wifSkpO2ZvcihsZXQgdSBvZiBlKW4ucHVzaCh5aSh1LHtpc0NMSTp0LG9wdGlvbkluZm9zOmUsRmxhZ1NjaGVtYTpyfSkpLHUuYWxpYXMmJnQmJm4ucHVzaChsdC5jcmVhdGUoe25hbWU6dS5hbGlhcyxzb3VyY2VOYW1lOnUubmFtZX0pKTtyZXR1cm4gbn1mdW5jdGlvbiB5aShlLHtpc0NMSTp0LG9wdGlvbkluZm9zOnIsRmxhZ1NjaGVtYTpufSl7bGV0e25hbWU6dX09ZSxpPXtuYW1lOnV9LG8scz17fTtzd2l0Y2goZS50eXBlKXtjYXNlXCJpbnRcIjpvPWh0LHQmJihpLnByZXByb2Nlc3M9TnVtYmVyKTticmVhaztjYXNlXCJzdHJpbmdcIjpvPWplO2JyZWFrO2Nhc2VcImNob2ljZVwiOm89RnQsaS5jaG9pY2VzPWUuY2hvaWNlcy5tYXAoYT0+YSE9bnVsbCYmYS5yZWRpcmVjdD97Li4uYSxyZWRpcmVjdDp7dG86e2tleTplLm5hbWUsdmFsdWU6YS5yZWRpcmVjdH19fTphKTticmVhaztjYXNlXCJib29sZWFuXCI6bz1kdDticmVhaztjYXNlXCJmbGFnXCI6bz1uLGkuZmxhZ3M9ci5mbGF0TWFwKGE9PlthLmFsaWFzLGEuZGVzY3JpcHRpb24mJmEubmFtZSxhLm9wcG9zaXRlRGVzY3JpcHRpb24mJmBuby0ke2EubmFtZX1gXS5maWx0ZXIoQm9vbGVhbikpO2JyZWFrO2Nhc2VcInBhdGhcIjpvPWplO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHR5cGUgJHtlLnR5cGV9YCl9aWYoZS5leGNlcHRpb24/aS52YWxpZGF0ZT0oYSxELGwpPT5lLmV4Y2VwdGlvbihhKXx8RC52YWxpZGF0ZShhLGwpOmkudmFsaWRhdGU9KGEsRCxsKT0+YT09PXZvaWQgMHx8RC52YWxpZGF0ZShhLGwpLGUucmVkaXJlY3QmJihzLnJlZGlyZWN0PWE9PmE/e3RvOnR5cGVvZiBlLnJlZGlyZWN0PT1cInN0cmluZ1wiP2UucmVkaXJlY3Q6e2tleTplLnJlZGlyZWN0Lm9wdGlvbix2YWx1ZTplLnJlZGlyZWN0LnZhbHVlfX06dm9pZCAwKSxlLmRlcHJlY2F0ZWQmJihzLmRlcHJlY2F0ZWQ9ITApLHQmJiFlLmFycmF5KXtsZXQgYT1pLnByZXByb2Nlc3N8fChEPT5EKTtpLnByZXByb2Nlc3M9KEQsbCxwKT0+bC5wcmVwcm9jZXNzKGEoQXJyYXkuaXNBcnJheShEKT95KCExLEQsLTEpOkQpLHApfXJldHVybiBlLmFycmF5P2Z0LmNyZWF0ZSh7Li4udD97cHJlcHJvY2VzczphPT5BcnJheS5pc0FycmF5KGEpP2E6W2FdfTp7fSwuLi5zLHZhbHVlU2NoZW1hOm8uY3JlYXRlKGkpfSk6by5jcmVhdGUoey4uLmksLi4uc30pfXZhciBJbj1DaTt2YXIgQWk9KGUsdCxyKT0+e2lmKCEoZSYmdD09bnVsbCkpe2lmKHQuZmluZExhc3QpcmV0dXJuIHQuZmluZExhc3Qocik7Zm9yKGxldCBuPXQubGVuZ3RoLTE7bj49MDtuLS0pe2xldCB1PXRbbl07aWYocih1LG4sdCkpcmV0dXJuIHV9fX0sZXI9QWk7ZnVuY3Rpb24gdHIoZSx0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJwYXJzZXJOYW1lIGlzIHJlcXVpcmVkLlwiKTtsZXQgcj1lcighMSxlLHU9PnUucGFyc2VycyYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHUucGFyc2Vycyx0KSk7aWYocilyZXR1cm4gcjtsZXQgbj1gQ291bGRuJ3QgcmVzb2x2ZSBwYXJzZXIgXCIke3R9XCIuYDt0aHJvdyBuKz1cIiBQbHVnaW5zIG11c3QgYmUgZXhwbGljaXRseSBhZGRlZCB0byB0aGUgc3RhbmRhbG9uZSBidW5kbGUuXCIsbmV3IFJlKG4pfWZ1bmN0aW9uIFJuKGUsdCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKFwiYXN0Rm9ybWF0IGlzIHJlcXVpcmVkLlwiKTtsZXQgcj1lcighMSxlLHU9PnUucHJpbnRlcnMmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh1LnByaW50ZXJzLHQpKTtpZihyKXJldHVybiByO2xldCBuPWBDb3VsZG4ndCBmaW5kIHBsdWdpbiBmb3IgQVNUIGZvcm1hdCBcIiR7dH1cIi5gO3Rocm93IG4rPVwiIFBsdWdpbnMgbXVzdCBiZSBleHBsaWNpdGx5IGFkZGVkIHRvIHRoZSBzdGFuZGFsb25lIGJ1bmRsZS5cIixuZXcgUmUobil9ZnVuY3Rpb24gQ3Qoe3BsdWdpbnM6ZSxwYXJzZXI6dH0pe2xldCByPXRyKGUsdCk7cmV0dXJuIHJyKHIsdCl9ZnVuY3Rpb24gcnIoZSx0KXtsZXQgcj1lLnBhcnNlcnNbdF07cmV0dXJuIHR5cGVvZiByPT1cImZ1bmN0aW9uXCI/cigpOnJ9ZnVuY3Rpb24gWW4oZSx0KXtsZXQgcj1lLnByaW50ZXJzW3RdO3JldHVybiB0eXBlb2Ygcj09XCJmdW5jdGlvblwiP3IoKTpyfXZhciBqbj17YXN0Rm9ybWF0OlwiZXN0cmVlXCIscHJpbnRlcjp7fSxvcmlnaW5hbFRleHQ6dm9pZCAwLGxvY1N0YXJ0Om51bGwsbG9jRW5kOm51bGx9O2FzeW5jIGZ1bmN0aW9uIHZpKGUsdD17fSl7dmFyIHA7bGV0IHI9ey4uLmV9O2lmKCFyLnBhcnNlcilpZihyLmZpbGVwYXRoKXtpZihyLnBhcnNlcj1kbihyLHtwaHlzaWNhbEZpbGU6ci5maWxlcGF0aH0pLCFyLnBhcnNlcil0aHJvdyBuZXcgWWUoYE5vIHBhcnNlciBjb3VsZCBiZSBpbmZlcnJlZCBmb3IgZmlsZSBcIiR7ci5maWxlcGF0aH1cIi5gKX1lbHNlIHRocm93IG5ldyBZZShcIk5vIHBhcnNlciBhbmQgbm8gZmlsZSBwYXRoIGdpdmVuLCBjb3VsZG4ndCBpbmZlciBhIHBhcnNlci5cIik7bGV0IG49b3Qoe3BsdWdpbnM6ZS5wbHVnaW5zLHNob3dEZXByZWNhdGVkOiEwfSkub3B0aW9ucyx1PXsuLi5qbiwuLi5PYmplY3QuZnJvbUVudHJpZXMobi5maWx0ZXIoZj0+Zi5kZWZhdWx0IT09dm9pZCAwKS5tYXAoZj0+W2YubmFtZSxmLmRlZmF1bHRdKSl9LGk9dHIoci5wbHVnaW5zLHIucGFyc2VyKSxvPWF3YWl0IHJyKGksci5wYXJzZXIpO3IuYXN0Rm9ybWF0PW8uYXN0Rm9ybWF0LHIubG9jRW5kPW8ubG9jRW5kLHIubG9jU3RhcnQ9by5sb2NTdGFydDtsZXQgcz0ocD1pLnByaW50ZXJzKSE9bnVsbCYmcFtvLmFzdEZvcm1hdF0/aTpSbihyLnBsdWdpbnMsby5hc3RGb3JtYXQpLGE9YXdhaXQgWW4ocyxvLmFzdEZvcm1hdCk7ci5wcmludGVyPWE7bGV0IEQ9cy5kZWZhdWx0T3B0aW9ucz9PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMocy5kZWZhdWx0T3B0aW9ucykuZmlsdGVyKChbLGZdKT0+ZiE9PXZvaWQgMCkpOnt9LGw9ey4uLnUsLi4uRH07Zm9yKGxldFtmLGRdb2YgT2JqZWN0LmVudHJpZXMobCkpKHJbZl09PT1udWxsfHxyW2ZdPT09dm9pZCAwKSYmKHJbZl09ZCk7cmV0dXJuIHIucGFyc2VyPT09XCJqc29uXCImJihyLnRyYWlsaW5nQ29tbWE9XCJub25lXCIpLEluKHIsbix7cGFzc1Rocm91Z2g6T2JqZWN0LmtleXMoam4pLC4uLnR9KX12YXIgc2U9dmk7dmFyICRuPU1lKFduKCksMSk7YXN5bmMgZnVuY3Rpb24geGkoZSx0KXtsZXQgcj1hd2FpdCBDdCh0KSxuPXIucHJlcHJvY2Vzcz9yLnByZXByb2Nlc3MoZSx0KTplO3Qub3JpZ2luYWxUZXh0PW47bGV0IHU7dHJ5e3U9YXdhaXQgci5wYXJzZShuLHQsdCl9Y2F0Y2goaSl7YmkoaSxlKX1yZXR1cm57dGV4dDpuLGFzdDp1fX1mdW5jdGlvbiBiaShlLHQpe2xldHtsb2M6cn09ZTtpZihyKXtsZXQgbj0oMCwkbi5jb2RlRnJhbWVDb2x1bW5zKSh0LHIse2hpZ2hsaWdodENvZGU6ITB9KTt0aHJvdyBlLm1lc3NhZ2UrPWBcbmArbixlLmNvZGVGcmFtZT1uLGV9dGhyb3cgZX12YXIgZmU9eGk7YXN5bmMgZnVuY3Rpb24gTW4oZSx0LHIsbix1KXtsZXR7ZW1iZWRkZWRMYW5ndWFnZUZvcm1hdHRpbmc6aSxwcmludGVyOntlbWJlZDpvLGhhc1ByZXR0aWVySWdub3JlOnM9KCk9PiExLGdldFZpc2l0b3JLZXlzOmF9fT1yO2lmKCFvfHxpIT09XCJhdXRvXCIpcmV0dXJuO2lmKG8ubGVuZ3RoPjIpdGhyb3cgbmV3IEVycm9yKFwicHJpbnRlci5lbWJlZCBoYXMgdG9vIG1hbnkgcGFyYW1ldGVycy4gVGhlIEFQSSBjaGFuZ2VkIGluIFByZXR0aWVyIHYzLiBQbGVhc2UgdXBkYXRlIHlvdXIgcGx1Z2luLiBTZWUgaHR0cHM6Ly9wcmV0dGllci5pby9kb2NzL2VuL3BsdWdpbnMuaHRtbCNvcHRpb25hbC1lbWJlZFwiKTtsZXQgRD1xKG8uZ2V0VmlzaXRvcktleXM/P2EpLGw9W107ZCgpO2xldCBwPWUuc3RhY2s7Zm9yKGxldHtwcmludDpjLG5vZGU6RixwYXRoU3RhY2s6bX1vZiBsKXRyeXtlLnN0YWNrPW07bGV0IGg9YXdhaXQgYyhmLHQsZSxyKTtoJiZ1LnNldChGLGgpfWNhdGNoKGgpe2lmKGdsb2JhbFRoaXMuUFJFVFRJRVJfREVCVUcpdGhyb3cgaH1lLnN0YWNrPXA7ZnVuY3Rpb24gZihjLEYpe3JldHVybiBOaShjLEYscixuKX1mdW5jdGlvbiBkKCl7bGV0e25vZGU6Y309ZTtpZihjPT09bnVsbHx8dHlwZW9mIGMhPVwib2JqZWN0XCJ8fHMoZSkpcmV0dXJuO2ZvcihsZXQgbSBvZiBEKGMpKUFycmF5LmlzQXJyYXkoY1ttXSk/ZS5lYWNoKGQsbSk6ZS5jYWxsKGQsbSk7bGV0IEY9byhlLHIpO2lmKEYpe2lmKHR5cGVvZiBGPT1cImZ1bmN0aW9uXCIpe2wucHVzaCh7cHJpbnQ6Rixub2RlOmMscGF0aFN0YWNrOlsuLi5lLnN0YWNrXX0pO3JldHVybn11LnNldChjLEYpfX19YXN5bmMgZnVuY3Rpb24gTmkoZSx0LHIsbil7bGV0IHU9YXdhaXQgc2Uoey4uLnIsLi4udCxwYXJlbnRQYXJzZXI6ci5wYXJzZXIsb3JpZ2luYWxUZXh0OmV9LHtwYXNzVGhyb3VnaDohMH0pLHthc3Q6aX09YXdhaXQgZmUoZSx1KSxvPWF3YWl0IG4oaSx1KTtyZXR1cm4gZXQobyl9ZnVuY3Rpb24gT2koZSx0KXtsZXR7b3JpZ2luYWxUZXh0OnIsW1N5bWJvbC5mb3IoXCJjb21tZW50c1wiKV06bixsb2NTdGFydDp1LGxvY0VuZDppLFtTeW1ib2wuZm9yKFwicHJpbnRlZENvbW1lbnRzXCIpXTpvfT10LHtub2RlOnN9PWUsYT11KHMpLEQ9aShzKTtmb3IobGV0IGwgb2Ygbil1KGwpPj1hJiZpKGwpPD1EJiZvLmFkZChsKTtyZXR1cm4gci5zbGljZShhLEQpfXZhciBVbj1PaTthc3luYyBmdW5jdGlvbiBIZShlLHQpeyh7YXN0OmV9PWF3YWl0IHVyKGUsdCkpO2xldCByPW5ldyBNYXAsbj1uZXcgSnIoZSksdT1sbih0KSxpPW5ldyBNYXA7YXdhaXQgTW4obixzLHQsSGUsaSk7bGV0IG89YXdhaXQgVm4obix0LHMsdm9pZCAwLGkpO2lmKERuKHQpLHQubm9kZUFmdGVyQ3Vyc29yJiYhdC5ub2RlQmVmb3JlQ3Vyc29yKXJldHVybltaLG9dO2lmKHQubm9kZUJlZm9yZUN1cnNvciYmIXQubm9kZUFmdGVyQ3Vyc29yKXJldHVybltvLFpdO3JldHVybiBvO2Z1bmN0aW9uIHMoRCxsKXtyZXR1cm4gRD09PXZvaWQgMHx8RD09PW4/YShsKTpBcnJheS5pc0FycmF5KEQpP24uY2FsbCgoKT0+YShsKSwuLi5EKTpuLmNhbGwoKCk9PmEobCksRCl9ZnVuY3Rpb24gYShEKXt1KG4pO2xldCBsPW4ubm9kZTtpZihsPT1udWxsKXJldHVyblwiXCI7bGV0IHA9bCYmdHlwZW9mIGw9PVwib2JqZWN0XCImJkQ9PT12b2lkIDA7aWYocCYmci5oYXMobCkpcmV0dXJuIHIuZ2V0KGwpO2xldCBmPVZuKG4sdCxzLEQsaSk7cmV0dXJuIHAmJnIuc2V0KGwsZiksZn19ZnVuY3Rpb24gVm4oZSx0LHIsbix1KXt2YXIgYTtsZXR7bm9kZTppfT1lLHtwcmludGVyOm99PXQscztzd2l0Y2goKGE9by5oYXNQcmV0dGllcklnbm9yZSkhPW51bGwmJmEuY2FsbChvLGUpP3M9VW4oZSx0KTp1LmhhcyhpKT9zPXUuZ2V0KGkpOnM9by5wcmludChlLHQscixuKSxpKXtjYXNlIHQuY3Vyc29yTm9kZTpzPW1lKHMsRD0+W1osRCxaXSk7YnJlYWs7Y2FzZSB0Lm5vZGVCZWZvcmVDdXJzb3I6cz1tZShzLEQ9PltELFpdKTticmVhaztjYXNlIHQubm9kZUFmdGVyQ3Vyc29yOnM9bWUocyxEPT5bWixEXSk7YnJlYWt9cmV0dXJuIG8ucHJpbnRDb21tZW50JiYoIW8ud2lsbFByaW50T3duQ29tbWVudHN8fCFvLndpbGxQcmludE93bkNvbW1lbnRzKGUsdCkpJiYocz1hbihlLHMsdCkpLHN9YXN5bmMgZnVuY3Rpb24gdXIoZSx0KXtsZXQgcj1lLmNvbW1lbnRzPz9bXTt0W1N5bWJvbC5mb3IoXCJjb21tZW50c1wiKV09cix0W1N5bWJvbC5mb3IoXCJ0b2tlbnNcIildPWUudG9rZW5zPz9bXSx0W1N5bWJvbC5mb3IoXCJwcmludGVkQ29tbWVudHNcIildPW5ldyBTZXQsdW4oZSx0KTtsZXR7cHJpbnRlcjp7cHJlcHJvY2VzczpufX09dDtyZXR1cm4gZT1uP2F3YWl0IG4oZSx0KTplLHthc3Q6ZSxjb21tZW50czpyfX1mdW5jdGlvbiBTaShlLHQpe2xldHtjdXJzb3JPZmZzZXQ6cixsb2NTdGFydDpuLGxvY0VuZDp1fT10LGk9cSh0LnByaW50ZXIuZ2V0VmlzaXRvcktleXMpLG89ZD0+bihkKTw9ciYmdShkKT49cixzPWUsYT1bZV07Zm9yKGxldCBkIG9mIFFyKGUse2dldFZpc2l0b3JLZXlzOmksZmlsdGVyOm99KSlhLnB1c2goZCkscz1kO2lmKFpyKHMse2dldFZpc2l0b3JLZXlzOml9KSlyZXR1cm57Y3Vyc29yTm9kZTpzfTtsZXQgRCxsLHA9LTEsZj1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7Zm9yKDthLmxlbmd0aD4wJiYoRD09PXZvaWQgMHx8bD09PXZvaWQgMCk7KXtzPWEucG9wKCk7bGV0IGQ9RCE9PXZvaWQgMCxjPWwhPT12b2lkIDA7Zm9yKGxldCBGIG9mIGdlKHMse2dldFZpc2l0b3JLZXlzOml9KSl7aWYoIWQpe2xldCBtPXUoRik7bTw9ciYmbT5wJiYoRD1GLHA9bSl9aWYoIWMpe2xldCBtPW4oRik7bT49ciYmbTxmJiYobD1GLGY9bSl9fX1yZXR1cm57bm9kZUJlZm9yZUN1cnNvcjpELG5vZGVBZnRlckN1cnNvcjpsfX12YXIgem49U2k7ZnVuY3Rpb24gVGkoZSx0KXtsZXR7cHJpbnRlcjp7bWFzc2FnZUFzdE5vZGU6cixnZXRWaXNpdG9yS2V5czpufX09dDtpZighcilyZXR1cm4gZTtsZXQgdT1xKG4pLGk9ci5pZ25vcmVkUHJvcGVydGllcz8/bmV3IFNldDtyZXR1cm4gbyhlKTtmdW5jdGlvbiBvKHMsYSl7aWYoIShzIT09bnVsbCYmdHlwZW9mIHM9PVwib2JqZWN0XCIpKXJldHVybiBzO2lmKEFycmF5LmlzQXJyYXkocykpcmV0dXJuIHMubWFwKGY9Pm8oZixhKSkuZmlsdGVyKEJvb2xlYW4pO2xldCBEPXt9LGw9bmV3IFNldCh1KHMpKTtmb3IobGV0IGYgaW4gcykhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsZil8fGkuaGFzKGYpfHwobC5oYXMoZik/RFtmXT1vKHNbZl0scyk6RFtmXT1zW2ZdKTtsZXQgcD1yKHMsRCxhKTtpZihwIT09bnVsbClyZXR1cm4gcD8/RH19dmFyIEduPVRpO3ZhciBraT0oZSx0LHIpPT57aWYoIShlJiZ0PT1udWxsKSl7aWYodC5maW5kTGFzdEluZGV4KXJldHVybiB0LmZpbmRMYXN0SW5kZXgocik7Zm9yKGxldCBuPXQubGVuZ3RoLTE7bj49MDtuLS0pe2xldCB1PXRbbl07aWYocih1LG4sdCkpcmV0dXJuIG59cmV0dXJuLTF9fSxLbj1raTt2YXIgTGk9KHtwYXJzZXI6ZX0pPT5lPT09XCJqc29uXCJ8fGU9PT1cImpzb241XCJ8fGU9PT1cImpzb25jXCJ8fGU9PT1cImpzb24tc3RyaW5naWZ5XCI7ZnVuY3Rpb24gUGkoZSx0KXtsZXQgcj1bZS5ub2RlLC4uLmUucGFyZW50Tm9kZXNdLG49bmV3IFNldChbdC5ub2RlLC4uLnQucGFyZW50Tm9kZXNdKTtyZXR1cm4gci5maW5kKHU9PlhuLmhhcyh1LnR5cGUpJiZuLmhhcyh1KSl9ZnVuY3Rpb24gSm4oZSl7bGV0IHQ9S24oITEsZSxyPT5yLnR5cGUhPT1cIlByb2dyYW1cIiYmci50eXBlIT09XCJGaWxlXCIpO3JldHVybiB0PT09LTE/ZTplLnNsaWNlKDAsdCsxKX1mdW5jdGlvbiBJaShlLHQse2xvY1N0YXJ0OnIsbG9jRW5kOm59KXtsZXQgdT1lLm5vZGUsaT10Lm5vZGU7aWYodT09PWkpcmV0dXJue3N0YXJ0Tm9kZTp1LGVuZE5vZGU6aX07bGV0IG89cihlLm5vZGUpO2ZvcihsZXQgYSBvZiBKbih0LnBhcmVudE5vZGVzKSlpZihyKGEpPj1vKWk9YTtlbHNlIGJyZWFrO2xldCBzPW4odC5ub2RlKTtmb3IobGV0IGEgb2YgSm4oZS5wYXJlbnROb2Rlcykpe2lmKG4oYSk8PXMpdT1hO2Vsc2UgYnJlYWs7aWYodT09PWkpYnJlYWt9cmV0dXJue3N0YXJ0Tm9kZTp1LGVuZE5vZGU6aX19ZnVuY3Rpb24gaXIoZSx0LHIsbix1PVtdLGkpe2xldHtsb2NTdGFydDpvLGxvY0VuZDpzfT1yLGE9byhlKSxEPXMoZSk7aWYoISh0PkR8fHQ8YXx8aT09PVwicmFuZ2VFbmRcIiYmdD09PWF8fGk9PT1cInJhbmdlU3RhcnRcIiYmdD09PUQpKXtmb3IobGV0IGwgb2YgaXQoZSxyKSl7bGV0IHA9aXIobCx0LHIsbixbZSwuLi51XSxpKTtpZihwKXJldHVybiBwfWlmKCFufHxuKGUsdVswXSkpcmV0dXJue25vZGU6ZSxwYXJlbnROb2Rlczp1fX19ZnVuY3Rpb24gUmkoZSx0KXtyZXR1cm4gdCE9PVwiRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uXCImJmUhPT1cIlR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvblwiJiYoZT09PVwiRGlyZWN0aXZlXCJ8fGU9PT1cIlR5cGVBbGlhc1wifHxlPT09XCJUU0V4cG9ydEFzc2lnbm1lbnRcInx8ZS5zdGFydHNXaXRoKFwiRGVjbGFyZVwiKXx8ZS5zdGFydHNXaXRoKFwiVFNEZWNsYXJlXCIpfHxlLmVuZHNXaXRoKFwiU3RhdGVtZW50XCIpfHxlLmVuZHNXaXRoKFwiRGVjbGFyYXRpb25cIikpfXZhciBYbj1uZXcgU2V0KFtcIkpzb25Sb290XCIsXCJPYmplY3RFeHByZXNzaW9uXCIsXCJBcnJheUV4cHJlc3Npb25cIixcIlN0cmluZ0xpdGVyYWxcIixcIk51bWVyaWNMaXRlcmFsXCIsXCJCb29sZWFuTGl0ZXJhbFwiLFwiTnVsbExpdGVyYWxcIixcIlVuYXJ5RXhwcmVzc2lvblwiLFwiVGVtcGxhdGVMaXRlcmFsXCJdKSxZaT1uZXcgU2V0KFtcIk9wZXJhdGlvbkRlZmluaXRpb25cIixcIkZyYWdtZW50RGVmaW5pdGlvblwiLFwiVmFyaWFibGVEZWZpbml0aW9uXCIsXCJUeXBlRXh0ZW5zaW9uRGVmaW5pdGlvblwiLFwiT2JqZWN0VHlwZURlZmluaXRpb25cIixcIkZpZWxkRGVmaW5pdGlvblwiLFwiRGlyZWN0aXZlRGVmaW5pdGlvblwiLFwiRW51bVR5cGVEZWZpbml0aW9uXCIsXCJFbnVtVmFsdWVEZWZpbml0aW9uXCIsXCJJbnB1dFZhbHVlRGVmaW5pdGlvblwiLFwiSW5wdXRPYmplY3RUeXBlRGVmaW5pdGlvblwiLFwiU2NoZW1hRGVmaW5pdGlvblwiLFwiT3BlcmF0aW9uVHlwZURlZmluaXRpb25cIixcIkludGVyZmFjZVR5cGVEZWZpbml0aW9uXCIsXCJVbmlvblR5cGVEZWZpbml0aW9uXCIsXCJTY2FsYXJUeXBlRGVmaW5pdGlvblwiXSk7ZnVuY3Rpb24gcW4oZSx0LHIpe2lmKCF0KXJldHVybiExO3N3aXRjaChlLnBhcnNlcil7Y2FzZVwiZmxvd1wiOmNhc2VcImJhYmVsXCI6Y2FzZVwiYmFiZWwtZmxvd1wiOmNhc2VcImJhYmVsLXRzXCI6Y2FzZVwidHlwZXNjcmlwdFwiOmNhc2VcImFjb3JuXCI6Y2FzZVwiZXNwcmVlXCI6Y2FzZVwibWVyaXlhaFwiOmNhc2VcIl9fYmFiZWxfZXN0cmVlXCI6cmV0dXJuIFJpKHQudHlwZSxyPT1udWxsP3ZvaWQgMDpyLnR5cGUpO2Nhc2VcImpzb25cIjpjYXNlXCJqc29uNVwiOmNhc2VcImpzb25jXCI6Y2FzZVwianNvbi1zdHJpbmdpZnlcIjpyZXR1cm4gWG4uaGFzKHQudHlwZSk7Y2FzZVwiZ3JhcGhxbFwiOnJldHVybiBZaS5oYXModC5raW5kKTtjYXNlXCJ2dWVcIjpyZXR1cm4gdC50YWchPT1cInJvb3RcIn1yZXR1cm4hMX1mdW5jdGlvbiBRbihlLHQscil7bGV0e3JhbmdlU3RhcnQ6bixyYW5nZUVuZDp1LGxvY1N0YXJ0OmksbG9jRW5kOm99PXQ7UGUub2sodT5uKTtsZXQgcz1lLnNsaWNlKG4sdSkuc2VhcmNoKC9cXFMvdSksYT1zPT09LTE7aWYoIWEpZm9yKG4rPXM7dT5uJiYhL1xcUy91LnRlc3QoZVt1LTFdKTstLXUpO2xldCBEPWlyKHIsbix0LChkLGMpPT5xbih0LGQsYyksW10sXCJyYW5nZVN0YXJ0XCIpLGw9YT9EOmlyKHIsdSx0LGQ9PnFuKHQsZCksW10sXCJyYW5nZUVuZFwiKTtpZighRHx8IWwpcmV0dXJue3JhbmdlU3RhcnQ6MCxyYW5nZUVuZDowfTtsZXQgcCxmO2lmKExpKHQpKXtsZXQgZD1QaShELGwpO3A9ZCxmPWR9ZWxzZSh7c3RhcnROb2RlOnAsZW5kTm9kZTpmfT1JaShELGwsdCkpO3JldHVybntyYW5nZVN0YXJ0Ok1hdGgubWluKGkocCksaShmKSkscmFuZ2VFbmQ6TWF0aC5tYXgobyhwKSxvKGYpKX19dmFyIHJ1PVwiXFx1RkVGRlwiLFpuPVN5bWJvbChcImN1cnNvclwiKTthc3luYyBmdW5jdGlvbiBudShlLHQscj0wKXtpZighZXx8ZS50cmltKCkubGVuZ3RoPT09MClyZXR1cm57Zm9ybWF0dGVkOlwiXCIsY3Vyc29yT2Zmc2V0Oi0xLGNvbW1lbnRzOltdfTtsZXR7YXN0Om4sdGV4dDp1fT1hd2FpdCBmZShlLHQpO3QuY3Vyc29yT2Zmc2V0Pj0wJiYodD17Li4udCwuLi56bihuLHQpfSk7bGV0IGk9YXdhaXQgSGUobix0LHIpO3I+MCYmKGk9UWUoW0ssaV0scix0LnRhYldpZHRoKSk7bGV0IG89RWUoaSx0KTtpZihyPjApe2xldCBhPW8uZm9ybWF0dGVkLnRyaW0oKTtvLmN1cnNvck5vZGVTdGFydCE9PXZvaWQgMCYmKG8uY3Vyc29yTm9kZVN0YXJ0LT1vLmZvcm1hdHRlZC5pbmRleE9mKGEpLG8uY3Vyc29yTm9kZVN0YXJ0PDAmJihvLmN1cnNvck5vZGVTdGFydD0wLG8uY3Vyc29yTm9kZVRleHQ9by5jdXJzb3JOb2RlVGV4dC50cmltU3RhcnQoKSksby5jdXJzb3JOb2RlU3RhcnQrby5jdXJzb3JOb2RlVGV4dC5sZW5ndGg+YS5sZW5ndGgmJihvLmN1cnNvck5vZGVUZXh0PW8uY3Vyc29yTm9kZVRleHQudHJpbUVuZCgpKSksby5mb3JtYXR0ZWQ9YSt4ZSh0LmVuZE9mTGluZSl9bGV0IHM9dFtTeW1ib2wuZm9yKFwiY29tbWVudHNcIildO2lmKHQuY3Vyc29yT2Zmc2V0Pj0wKXtsZXQgYSxELGwscDtpZigodC5jdXJzb3JOb2RlfHx0Lm5vZGVCZWZvcmVDdXJzb3J8fHQubm9kZUFmdGVyQ3Vyc29yKSYmby5jdXJzb3JOb2RlVGV4dClpZihsPW8uY3Vyc29yTm9kZVN0YXJ0LHA9by5jdXJzb3JOb2RlVGV4dCx0LmN1cnNvck5vZGUpYT10LmxvY1N0YXJ0KHQuY3Vyc29yTm9kZSksRD11LnNsaWNlKGEsdC5sb2NFbmQodC5jdXJzb3JOb2RlKSk7ZWxzZXtpZighdC5ub2RlQmVmb3JlQ3Vyc29yJiYhdC5ub2RlQWZ0ZXJDdXJzb3IpdGhyb3cgbmV3IEVycm9yKFwiQ3Vyc29yIGxvY2F0aW9uIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgb2YgY3Vyc29yTm9kZSwgbm9kZUJlZm9yZUN1cnNvciwgbm9kZUFmdGVyQ3Vyc29yXCIpO2E9dC5ub2RlQmVmb3JlQ3Vyc29yP3QubG9jRW5kKHQubm9kZUJlZm9yZUN1cnNvcik6MDtsZXQgaD10Lm5vZGVBZnRlckN1cnNvcj90LmxvY1N0YXJ0KHQubm9kZUFmdGVyQ3Vyc29yKTp1Lmxlbmd0aDtEPXUuc2xpY2UoYSxoKX1lbHNlIGE9MCxEPXUsbD0wLHA9by5mb3JtYXR0ZWQ7bGV0IGY9dC5jdXJzb3JPZmZzZXQtYTtpZihEPT09cClyZXR1cm57Zm9ybWF0dGVkOm8uZm9ybWF0dGVkLGN1cnNvck9mZnNldDpsK2YsY29tbWVudHM6c307bGV0IGQ9RC5zcGxpdChcIlwiKTtkLnNwbGljZShmLDAsWm4pO2xldCBjPXAuc3BsaXQoXCJcIiksRj1ncihkLGMpLG09bDtmb3IobGV0IGggb2YgRilpZihoLnJlbW92ZWQpe2lmKGgudmFsdWUuaW5jbHVkZXMoWm4pKWJyZWFrfWVsc2UgbSs9aC5jb3VudDtyZXR1cm57Zm9ybWF0dGVkOm8uZm9ybWF0dGVkLGN1cnNvck9mZnNldDptLGNvbW1lbnRzOnN9fXJldHVybntmb3JtYXR0ZWQ6by5mb3JtYXR0ZWQsY3Vyc29yT2Zmc2V0Oi0xLGNvbW1lbnRzOnN9fWFzeW5jIGZ1bmN0aW9uIGppKGUsdCl7bGV0e2FzdDpyLHRleHQ6bn09YXdhaXQgZmUoZSx0KSx7cmFuZ2VTdGFydDp1LHJhbmdlRW5kOml9PVFuKG4sdCxyKSxvPW4uc2xpY2UodSxpKSxzPU1hdGgubWluKHUsbi5sYXN0SW5kZXhPZihgXG5gLHUpKzEpLGE9bi5zbGljZShzLHUpLm1hdGNoKC9eXFxzKi91KVswXSxEPUNlKGEsdC50YWJXaWR0aCksbD1hd2FpdCBudShvLHsuLi50LHJhbmdlU3RhcnQ6MCxyYW5nZUVuZDpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksY3Vyc29yT2Zmc2V0OnQuY3Vyc29yT2Zmc2V0PnUmJnQuY3Vyc29yT2Zmc2V0PD1pP3QuY3Vyc29yT2Zmc2V0LXU6LTEsZW5kT2ZMaW5lOlwibGZcIn0sRCkscD1sLmZvcm1hdHRlZC50cmltRW5kKCkse2N1cnNvck9mZnNldDpmfT10O2Y+aT9mKz1wLmxlbmd0aC1vLmxlbmd0aDpsLmN1cnNvck9mZnNldD49MCYmKGY9bC5jdXJzb3JPZmZzZXQrdSk7bGV0IGQ9bi5zbGljZSgwLHUpK3Arbi5zbGljZShpKTtpZih0LmVuZE9mTGluZSE9PVwibGZcIil7bGV0IGM9eGUodC5lbmRPZkxpbmUpO2Y+PTAmJmM9PT1gXFxyXG5gJiYoZis9T3QoZC5zbGljZSgwLGYpLGBcbmApKSxkPW5lKCExLGQsYFxuYCxjKX1yZXR1cm57Zm9ybWF0dGVkOmQsY3Vyc29yT2Zmc2V0OmYsY29tbWVudHM6bC5jb21tZW50c319ZnVuY3Rpb24gb3IoZSx0LHIpe3JldHVybiB0eXBlb2YgdCE9XCJudW1iZXJcInx8TnVtYmVyLmlzTmFOKHQpfHx0PDB8fHQ+ZS5sZW5ndGg/cjp0fWZ1bmN0aW9uIGV1KGUsdCl7bGV0e2N1cnNvck9mZnNldDpyLHJhbmdlU3RhcnQ6bixyYW5nZUVuZDp1fT10O3JldHVybiByPW9yKGUsciwtMSksbj1vcihlLG4sMCksdT1vcihlLHUsZS5sZW5ndGgpLHsuLi50LGN1cnNvck9mZnNldDpyLHJhbmdlU3RhcnQ6bixyYW5nZUVuZDp1fX1mdW5jdGlvbiB1dShlLHQpe2xldHtjdXJzb3JPZmZzZXQ6cixyYW5nZVN0YXJ0Om4scmFuZ2VFbmQ6dSxlbmRPZkxpbmU6aX09ZXUoZSx0KSxvPWUuY2hhckF0KDApPT09cnU7aWYobyYmKGU9ZS5zbGljZSgxKSxyLS0sbi0tLHUtLSksaT09PVwiYXV0b1wiJiYoaT15cihlKSksZS5pbmNsdWRlcyhcIlxcclwiKSl7bGV0IHM9YT0+T3QoZS5zbGljZSgwLE1hdGgubWF4KGEsMCkpLGBcXHJcbmApO3ItPXMociksbi09cyhuKSx1LT1zKHUpLGU9QXIoZSl9cmV0dXJue2hhc0JPTTpvLHRleHQ6ZSxvcHRpb25zOmV1KGUsey4uLnQsY3Vyc29yT2Zmc2V0OnIscmFuZ2VTdGFydDpuLHJhbmdlRW5kOnUsZW5kT2ZMaW5lOml9KX19YXN5bmMgZnVuY3Rpb24gdHUoZSx0KXtsZXQgcj1hd2FpdCBDdCh0KTtyZXR1cm4hci5oYXNQcmFnbWF8fHIuaGFzUHJhZ21hKGUpfWFzeW5jIGZ1bmN0aW9uIHNyKGUsdCl7bGV0e2hhc0JPTTpyLHRleHQ6bixvcHRpb25zOnV9PXV1KGUsYXdhaXQgc2UodCkpO2lmKHUucmFuZ2VTdGFydD49dS5yYW5nZUVuZCYmbiE9PVwiXCJ8fHUucmVxdWlyZVByYWdtYSYmIWF3YWl0IHR1KG4sdSkpcmV0dXJue2Zvcm1hdHRlZDplLGN1cnNvck9mZnNldDp0LmN1cnNvck9mZnNldCxjb21tZW50czpbXX07bGV0IGk7cmV0dXJuIHUucmFuZ2VTdGFydD4wfHx1LnJhbmdlRW5kPG4ubGVuZ3RoP2k9YXdhaXQgamkobix1KTooIXUucmVxdWlyZVByYWdtYSYmdS5pbnNlcnRQcmFnbWEmJnUucHJpbnRlci5pbnNlcnRQcmFnbWEmJiFhd2FpdCB0dShuLHUpJiYobj11LnByaW50ZXIuaW5zZXJ0UHJhZ21hKG4pKSxpPWF3YWl0IG51KG4sdSkpLHImJihpLmZvcm1hdHRlZD1ydStpLmZvcm1hdHRlZCxpLmN1cnNvck9mZnNldD49MCYmaS5jdXJzb3JPZmZzZXQrKyksaX1hc3luYyBmdW5jdGlvbiBpdShlLHQscil7bGV0e3RleHQ6bixvcHRpb25zOnV9PXV1KGUsYXdhaXQgc2UodCkpLGk9YXdhaXQgZmUobix1KTtyZXR1cm4gciYmKHIucHJlcHJvY2Vzc0ZvclByaW50JiYoaS5hc3Q9YXdhaXQgdXIoaS5hc3QsdSkpLHIubWFzc2FnZSYmKGkuYXN0PUduKGkuYXN0LHUpKSksaX1hc3luYyBmdW5jdGlvbiBvdShlLHQpe3Q9YXdhaXQgc2UodCk7bGV0IHI9YXdhaXQgSGUoZSx0KTtyZXR1cm4gRWUocix0KX1hc3luYyBmdW5jdGlvbiBzdShlLHQpe2xldCByPUlyKGUpLHtmb3JtYXR0ZWQ6bn09YXdhaXQgc3Iocix7Li4udCxwYXJzZXI6XCJfX2pzX2V4cHJlc3Npb25cIn0pO3JldHVybiBufWFzeW5jIGZ1bmN0aW9uIGF1KGUsdCl7dD1hd2FpdCBzZSh0KTtsZXR7YXN0OnJ9PWF3YWl0IGZlKGUsdCk7cmV0dXJuIEhlKHIsdCl9YXN5bmMgZnVuY3Rpb24gRHUoZSx0KXtyZXR1cm4gRWUoZSxhd2FpdCBzZSh0KSl9dmFyIGFyPXt9O0J0KGFyLHtidWlsZGVyczooKT0+V2kscHJpbnRlcjooKT0+JGksdXRpbHM6KCk9Pk1pfSk7dmFyIFdpPXtqb2luOlNlLGxpbmU6cWUsc29mdGxpbmU6THIsaGFyZGxpbmU6SyxsaXRlcmFsbGluZTpYZSxncm91cDpUdCxjb25kaXRpb25hbEdyb3VwOmJyLGZpbGw6TnIsbGluZVN1ZmZpeDpOZSxsaW5lU3VmZml4Qm91bmRhcnk6VHIsY3Vyc29yOlosYnJlYWtQYXJlbnQ6RmUsaWZCcmVhazpPcix0cmltOmtyLGluZGVudDpsZSxpbmRlbnRJZkJyZWFrOlNyLGFsaWduOkRlLGFkZEFsaWdubWVudFRvRG9jOlFlLG1hcmtBc1Jvb3Q6X3IsZGVkZW50VG9Sb290OndyLGRlZGVudDp4cixoYXJkbGluZVdpdGhvdXRCcmVha1BhcmVudDpPZSxsaXRlcmFsbGluZVdpdGhvdXRCcmVha1BhcmVudDprdCxsYWJlbDpQcixjb25jYXQ6ZT0+ZX0sJGk9e3ByaW50RG9jVG9TdHJpbmc6RWV9LE1pPXt3aWxsQnJlYWs6TXIsdHJhdmVyc2VEb2M6YmUsZmluZEluRG9jOlplLG1hcERvYzpMZSxyZW1vdmVMaW5lczpWcixzdHJpcFRyYWlsaW5nSGFyZGxpbmU6ZXQscmVwbGFjZUVuZE9mTGluZTp6cixjYW5CcmVhazpHcn07dmFyIGx1PVwiMy40LjJcIjt2YXIgbHI9e307QnQobHIse2FkZERhbmdsaW5nQ29tbWVudDooKT0+cmUsYWRkTGVhZGluZ0NvbW1lbnQ6KCk9PnVlLGFkZFRyYWlsaW5nQ29tbWVudDooKT0+aWUsZ2V0QWxpZ25tZW50U2l6ZTooKT0+Q2UsZ2V0SW5kZW50U2l6ZTooKT0+Y3UsZ2V0TWF4Q29udGludW91c0NvdW50OigpPT5mdSxnZXROZXh0Tm9uU3BhY2VOb25Db21tZW50Q2hhcmFjdGVyOigpPT5kdSxnZXROZXh0Tm9uU3BhY2VOb25Db21tZW50Q2hhcmFjdGVySW5kZXg6KCk9PnJvLGdldFByZWZlcnJlZFF1b3RlOigpPT5GdSxnZXRTdHJpbmdXaWR0aDooKT0+VGUsaGFzTmV3bGluZTooKT0+JCxoYXNOZXdsaW5lSW5SYW5nZTooKT0+bXUsaGFzU3BhY2VzOigpPT5odSxpc05leHRMaW5lRW1wdHk6KCk9Pm9vLGlzTmV4dExpbmVFbXB0eUFmdGVySW5kZXg6KCk9Pmd0LGlzUHJldmlvdXNMaW5lRW1wdHk6KCk9PnVvLG1ha2VTdHJpbmc6KCk9PkV1LHNraXA6KCk9PnllLHNraXBFdmVyeXRoaW5nQnV0TmV3TGluZTooKT0+dXQsc2tpcElubGluZUNvbW1lbnQ6KCk9PnZlLHNraXBOZXdsaW5lOigpPT5XLHNraXBTcGFjZXM6KCk9PlMsc2tpcFRvTGluZUVuZDooKT0+bnQsc2tpcFRyYWlsaW5nQ29tbWVudDooKT0+QmUsc2tpcFdoaXRlc3BhY2U6KCk9PmVufSk7ZnVuY3Rpb24gVWkoZSx0KXtpZih0PT09ITEpcmV0dXJuITE7aWYoZS5jaGFyQXQodCk9PT1cIi9cIiYmZS5jaGFyQXQodCsxKT09PVwiKlwiKXtmb3IobGV0IHI9dCsyO3I8ZS5sZW5ndGg7KytyKWlmKGUuY2hhckF0KHIpPT09XCIqXCImJmUuY2hhckF0KHIrMSk9PT1cIi9cIilyZXR1cm4gcisyfXJldHVybiB0fXZhciB2ZT1VaTtmdW5jdGlvbiBWaShlLHQpe3JldHVybiB0PT09ITE/ITE6ZS5jaGFyQXQodCk9PT1cIi9cIiYmZS5jaGFyQXQodCsxKT09PVwiL1wiP3V0KGUsdCk6dH12YXIgQmU9Vmk7ZnVuY3Rpb24gemkoZSx0KXtsZXQgcj1udWxsLG49dDtmb3IoO24hPT1yOylyPW4sbj1TKGUsbiksbj12ZShlLG4pLG49QmUoZSxuKSxuPVcoZSxuKTtyZXR1cm4gbn12YXIgV2U9emk7ZnVuY3Rpb24gR2koZSx0KXtsZXQgcj1udWxsLG49dDtmb3IoO24hPT1yOylyPW4sbj1udChlLG4pLG49dmUoZSxuKSxuPVMoZSxuKTtyZXR1cm4gbj1CZShlLG4pLG49VyhlLG4pLG4hPT0hMSYmJChlLG4pfXZhciBndD1HaTtmdW5jdGlvbiBLaShlLHQpe2xldCByPWUubGFzdEluZGV4T2YoYFxuYCk7cmV0dXJuIHI9PT0tMT8wOkNlKGUuc2xpY2UocisxKS5tYXRjaCgvXltcXHQgXSovdSlbMF0sdCl9dmFyIGN1PUtpO2Z1bmN0aW9uIERyKGUpe2lmKHR5cGVvZiBlIT1cInN0cmluZ1wiKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKTtyZXR1cm4gZS5yZXBsYWNlKC9bfFxcXFx7fSgpW1xcXV4kKyo/Ll0vZyxcIlxcXFwkJlwiKS5yZXBsYWNlKC8tL2csXCJcXFxceDJkXCIpfWZ1bmN0aW9uIEppKGUsdCl7bGV0IHI9ZS5tYXRjaChuZXcgUmVnRXhwKGAoJHtEcih0KX0pK2AsXCJndVwiKSk7cmV0dXJuIHI9PT1udWxsPzA6ci5yZWR1Y2UoKG4sdSk9Pk1hdGgubWF4KG4sdS5sZW5ndGgvdC5sZW5ndGgpLDApfXZhciBmdT1KaTtmdW5jdGlvbiBxaShlLHQpe2xldCByPVdlKGUsdCk7cmV0dXJuIHI9PT0hMT9cIlwiOmUuY2hhckF0KHIpfXZhciBkdT1xaTt2YXIgeXQ9XCInXCIscHU9J1wiJztmdW5jdGlvbiBYaShlLHQpe2xldCByPXQ9PT0hMHx8dD09PXl0P3l0OnB1LG49cj09PXl0P3B1Onl0LHU9MCxpPTA7Zm9yKGxldCBvIG9mIGUpbz09PXI/dSsrOm89PT1uJiZpKys7cmV0dXJuIHU+aT9uOnJ9dmFyIEZ1PVhpO2Z1bmN0aW9uIFFpKGUsdCxyKXtmb3IobGV0IG49dDtuPHI7KytuKWlmKGUuY2hhckF0KG4pPT09YFxuYClyZXR1cm4hMDtyZXR1cm4hMX12YXIgbXU9UWk7ZnVuY3Rpb24gWmkoZSx0LHI9e30pe3JldHVybiBTKGUsci5iYWNrd2FyZHM/dC0xOnQscikhPT10fXZhciBodT1aaTtmdW5jdGlvbiBlbyhlLHQscil7bGV0IG49dD09PSdcIic/XCInXCI6J1wiJyxpPW5lKCExLGUsL1xcXFwoLil8KFtcIiddKS9nc3UsKG8scyxhKT0+cz09PW4/czphPT09dD9cIlxcXFxcIithOmF8fChyJiYvXlteXFxuXFxyXCInMC03XFxcXGJmbnJ0LXZ4XFx1MjAyOFxcdTIwMjldJC91LnRlc3Qocyk/czpcIlxcXFxcIitzKSk7cmV0dXJuIHQraSt0fXZhciBFdT1lbztmdW5jdGlvbiB0byhlLHQscil7cmV0dXJuIFdlKGUscih0KSl9ZnVuY3Rpb24gcm8oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTJ8fHR5cGVvZiB0PT1cIm51bWJlclwiP1dlKGUsdCk6dG8oLi4uYXJndW1lbnRzKX1mdW5jdGlvbiBubyhlLHQscil7cmV0dXJuIEllKGUscih0KSl9ZnVuY3Rpb24gdW8oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTJ8fHR5cGVvZiB0PT1cIm51bWJlclwiP0llKGUsdCk6bm8oLi4uYXJndW1lbnRzKX1mdW5jdGlvbiBpbyhlLHQscil7cmV0dXJuIGd0KGUscih0KSl9ZnVuY3Rpb24gb28oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTJ8fHR5cGVvZiB0PT1cIm51bWJlclwiP2d0KGUsdCk6aW8oLi4uYXJndW1lbnRzKX1mdW5jdGlvbiBkZShlLHQ9MSl7cmV0dXJuIGFzeW5jKC4uLnIpPT57bGV0IG49clt0XT8/e30sdT1uLnBsdWdpbnM/P1tdO3JldHVybiByW3RdPXsuLi5uLHBsdWdpbnM6QXJyYXkuaXNBcnJheSh1KT91Ok9iamVjdC52YWx1ZXModSl9LGUoLi4ucil9fXZhciBDdT1kZShzcik7YXN5bmMgZnVuY3Rpb24gZ3UoZSx0KXtsZXR7Zm9ybWF0dGVkOnJ9PWF3YWl0IEN1KGUsey4uLnQsY3Vyc29yT2Zmc2V0Oi0xfSk7cmV0dXJuIHJ9YXN5bmMgZnVuY3Rpb24gc28oZSx0KXtyZXR1cm4gYXdhaXQgZ3UoZSx0KT09PWV9dmFyIGFvPWRlKG90LDApLERvPXtwYXJzZTpkZShpdSksZm9ybWF0QVNUOmRlKG91KSxmb3JtYXREb2M6ZGUoc3UpLHByaW50VG9Eb2M6ZGUoYXUpLHByaW50RG9jVG9TdHJpbmc6ZGUoRHUpfTt2YXIgbGM9Y3I7ZXhwb3J0e0RvIGFzIF9fZGVidWcsc28gYXMgY2hlY2ssbGMgYXMgZGVmYXVsdCxhciBhcyBkb2MsZ3UgYXMgZm9ybWF0LEN1IGFzIGZvcm1hdFdpdGhDdXJzb3IsYW8gYXMgZ2V0U3VwcG9ydEluZm8sbHIgYXMgdXRpbCxsdSBhcyB2ZXJzaW9ufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/standalone.mjs\n");
/***/ })
};
;