{"version":3,"sources":["webpack://mfe-template/./source/products-card-pattern/card-compare.hbs","webpack://mfe-template/./source/products-card-pattern/card-quick-compare.hbs","webpack://mfe-template/./source/products-card-pattern/card-related-products.hbs","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack://mfe-template/./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack://mfe-template/./node_modules/handlebars/runtime.js","webpack://mfe-template/webpack/bootstrap","webpack://mfe-template/webpack/runtime/compat get default export","webpack://mfe-template/webpack/runtime/define property getters","webpack://mfe-template/webpack/runtime/global","webpack://mfe-template/webpack/runtime/hasOwnProperty shorthand","webpack://mfe-template/./source/search-api/search-api.js","webpack://mfe-template/./source/wp-utils.js","webpack://mfe-template/./source/products-card-pattern/products-card-pattern.js"],"names":["Handlebars","module","exports","template","container","depth0","helpers","partials","data","stack1","alias1","lambda","alias2","escapeExpression","lookupProperty","parent","propertyName","Object","prototype","hasOwnProperty","call","nullContext","alias3","program","noop","_interopRequireDefault","obj","__esModule","_interopRequireWildcard","newObj","key","base","_handlebarsSafeString2","_handlebarsException2","Utils","runtime","_handlebarsNoConflict2","create","hb","HandlebarsEnvironment","extend","SafeString","Exception","VM","spec","inst","_utils","_exception2","_helpers","_decorators","_logger2","_internalProtoAccess","VERSION","COMPILER_REVISION","LAST_COMPATIBLE_COMPILER_REVISION","REVISION_CHANGES","1","2","3","4","5","6","7","8","objectType","decorators","this","registerDefaultHelpers","registerDefaultDecorators","constructor","logger","log","registerHelper","name","fn","toString","unregisterHelper","registerPartial","partial","unregisterPartial","registerDecorator","unregisterDecorator","resetLoggedPropertyAccesses","resetLoggedProperties","createFrame","instance","_decoratorsInline2","props","options","ret","context","original","args","errorProps","message","node","loc","line","undefined","endLineNumber","column","endColumn","start","end","tmp","Error","idx","length","captureStackTrace","lineNumber","defineProperty","value","enumerable","nop","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","moveHelperToHooks","helperName","keepHelper","hooks","inverse","isArray","ids","each","contextPath","appendContextPath","priorKey","i","execIteration","field","index","last","first","blockParams","isFunction","j","g","Symbol","iterator","newContext","it","next","done","push","keys","forEach","arguments","conditional","hash","includeZero","isEmpty","level","apply","createNewLookupObject","_len","sources","Array","_key","concat","createProtoAccessControl","runtimeOptions","defaultMethodWhiteList","defaultPropertyWhiteList","properties","whitelist","_createNewLookupObject","allowedProtoProperties","defaultValue","allowProtoPropertiesByDefault","methods","allowedProtoMethods","allowProtoMethodsByDefault","resultIsAllowed","result","protoAccessControl","protoAccessControlForType","loggedProperties","logUnexpecedPropertyAccessOnce","checkWhiteList","wrapHelper","helper","transformOptionsFn","methodMap","lookupLevel","levelMap","indexOf","toLowerCase","parseInt","console","method","root","window","$Handlebars","noConflict","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","env","main","decorator","main_d","compiler","templateWasPrecompiledWithCompilerV7","strict","lookup","depths","len","current","invokePartial","resolvePartial","extendedOptions","compile","compilerOptions","indent","lines","split","l","join","programs","declaredBlockParams","programWrapper","wrapProgram","depth","_parent","mergeIfNeeded","param","common","seal","_setup","useData","initData","useBlockParams","useDepths","executeDecorators","isTop","mergedHelpers","_internalWrapHelper","passLookupPropertyOption","wrapHelpersToPassLookupProperty","usePartial","useDecorators","keepHelperInHelpers","allowCallsToHelperMissing","_child","currentPartialBlock","partialBlock","Function","prog","currentDepths","string","toHTML","array","possible","test","replace","badChars","escapeChar","object","frame","params","path","id","escape","chr","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","n","getter","d","a","definition","o","get","globalThis","e","prop","SearchAPI","settings","assign","dataID","local","cardResultsMapping","setLocal","document","documentElement","lang","adsk","api","pds","currency","currencies","localStorage","getItem","toUpperCase","callback","_dataID","contenthub","parseCardInfo","debug","terms","tags","load","results","filterResultsWithTag","content","filteredResults","resultsLocations","tagsFound","tag","location","searchTerm","searchFilters","numberOfResults","digitalData","search","searchlog","analytics","resolveWait","msg","setCurrency","x","cardData","y","href","language","country","WPUtils","elem","clsName","classList","contains","parentsHaveClass","parentElement","innerHTML","wpUtils","CARD_TEMPLATES","searchAPI","compareCards","compareBlocks","cardDisplayResize","equalizeBlocks","qtyCards","qtyBlocks","element","style","height","matchMedia","matches","allBlocks","card","querySelectorAll","offsetHeight","sort","sortNumber","resizeProductCards","panel","cardItems","cardHeight","p","doubleHeight","cardItemsMax","compareLink","setAttribute","getAttribute","productSelection","compareUrl","checkSelection","compareTracking","checkbox","baseURL","removeAttribute","panelDisplay","remove","add","replaceLineBreakWithList","fieldString","useForString","b","inAemEdit","compareSets","dataSet","layout","cardsContainers","cardToLoad","cardRef","cardHtml","createElement","pos","substring","preRenderData","append","opacity","noPlatformDuplicate","querySelector","outerHTML","productMFEs","observer","MutationObserver","mutations","mutation","type","attributeName","observe","attributes","attributeFilter","quickCompareProductCardsLoaded","cards","refToCard","refToPanel","addEventListener","preventDefault","CompareProductCardsLoaded","setTimeout","init"],"mappings":"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","file":"products-card-pattern.js","sourcesContent":["var Handlebars = require(\"../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"            <div class=\\\"wp-product-img\\\">\\r\\n                <a href=\\\"\"\n    + ((stack1 = alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"link-1-url\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\\" class=\\\"noDecor\\\" data-wat-link=\\\"true\\\" data-wat-loc=\\\"content\\\"\\r\\n                    data-wat-val=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \": banner\\\">\\r\\n                    <img src=\\\"https://damassets.autodesk.net\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-banner\") : stack1), depth0))\n    + \"\\\">\\r\\n                </a>\\r\\n            </div>\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                        <p class=\\\"wd-ma-0\\\">\\r\\n                            <a href=\\\"\"\n    + ((stack1 = alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"link-1-url\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\\" class=\\\"noDecor\\\" data-wat-link=\\\"true\\\"\\r\\n                                data-wat-loc=\\\"content\\\" data-wat-val=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \": logo\\\">\\r\\n                                <img class=\\\"wp-product-logo\\\"\\r\\n                                    src=\\\"https://damassets.autodesk.net\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-lockup\") : stack1), depth0))\n    + \"\\\">\\r\\n                            </a>\\r\\n                        </p>\\r\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                            <div class=\\\"wp-product-desc\\\">\\r\\n                                <p class=\\\"wd-color-dark-gray-2\\\">\"\n    + ((stack1 = container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-desc\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"</p>\\r\\n                            </div>\\r\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.lambda, alias3=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"<div class=\\\"wp-product-card\\\">\\r\\n    <div class=\\\"box-content parsys\\\">\\r\\n        <div class=\\\"decorative-box section\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-banner\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":12},\"end\":{\"line\":11,\"column\":19}}})) != null ? stack1 : \"\")\n    + \"            <div class=\\\"wp-product-info-container\\\">\\r\\n                <div class=\\\"box-content parsys\\\">\\r\\n                    <div class=\\\"text section\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-lockup\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":24},\"end\":{\"line\":23,\"column\":31}}})) != null ? stack1 : \"\")\n    + \"                        <div class=\\\"wp-xlarge-col\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-desc\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":25,\"column\":28},\"end\":{\"line\":29,\"column\":35}}})) != null ? stack1 : \"\")\n    + \"                        </div>\\r\\n                        <div class=\\\"wp-compare-checkbox\\\">\\r\\n                            <input type=\\\"checkbox\\\" value=\\\"\"\n    + alias3(alias2(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"old-url\") : stack1), depth0))\n    + \"\\\" id=\\\"compare-plc-\"\n    + alias3(alias2(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \"\\\"\\r\\n                                data-wat-link=\\\"true\\\" data-wat-val=\\\"\"\n    + alias3(alias2(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \":compare\\\" />\\r\\n                            <label for=\\\"compare-plc-\"\n    + alias3(alias2(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \"\\\" data-wpd-string=\\\"pc-card-compare-cta\\\">Compare</label>\\r\\n                        </div>\\r\\n                    </div>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n</div>\";\n},\"useData\":true});","var Handlebars = require(\"../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                    <div class=\\\"image section\\\">\\r\\n                        <a href=\\\"\"\n    + ((stack1 = alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"link-1-url\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\\" data-wat-link=\\\"true\\\" data-wat-loc=\\\"content\\\"\\r\\n                            data-wat-val=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \": overview\\\">\\r\\n                            <img src=\\\"https://damassets.autodesk.net\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-lockup\") : stack1), depth0))\n    + \"\\\">\\r\\n                        </a>\\r\\n                    </div>\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                    <p class=\\\"wd-mv-0 wd-font-14\\\">\"\n    + ((stack1 = container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"compare-long-description\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"</p>\\r\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                    <p class=\\\"wd-mt-8 wd-mb-0 wd-font-14\\\">\\r\\n                        <a href=\\\"\"\n    + ((stack1 = alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"link-1-url\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\\" data-wat-link=\\\"true\\\"\\r\\n                            data-wat-val=\\\"\"\n    + container.escapeExpression(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \": product details\\\" data-wat-loc=\\\"content\\\"\\r\\n                            class=\\\"wd-inline-icon\\\">\\r\\n                            <svg class=\\\"wd-icon icon-svg-cta-go-arrow-circle-line\\\">\\r\\n                                <use xlink:href=\\\"/content/dam/autodesk/icons.svg#icon-svg-cta-go-arrow-circle-line\\\"></use>\\r\\n                            </svg>\\r\\n                            <span>\"\n    + ((stack1 = alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"link-1-cta\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"</span>\\r\\n                        </a>\\r\\n                    </p>\\r\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                        <ul class=\\\"wd-mt-8 wd-mb-0 wd-font-14\\\">\\r\\n                            \"\n    + ((stack1 = container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"compare-use-for\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\r\\n                        </ul>\\r\\n\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                        <ul class=\\\"wd-mt-8 wd-mb-0 wd-font-14\\\">\\r\\n                            \"\n    + ((stack1 = container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"compare-what-it-does\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\r\\n                        </ul>\\r\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                        <ul class=\\\"wd-mt-8 wd-mb-0 wd-font-14\\\">\\r\\n                            \"\n    + ((stack1 = container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"compare-includes\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\r\\n                        </ul>\\r\\n\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                        <div class=\\\"heading section\\\">\\r\\n                            <h3 class=\\\"wd-uppercase wp-color-dark\\\" data-wpd-string=\\\"pc-quick-compare-platform\\\">\\r\\n                                Platform:\\r\\n                            </h3>\\r\\n                        </div>\\r\\n                        <div class=\\\"text section\\\">\\r\\n                            <span class=\\\"wd-mb-0 platform-text\\\">\\r\\n                                \"\n    + ((stack1 = container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"platform-text\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\r\\n                            </span>\\r\\n                        </div>\\r\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"<div data-wat-dynamic-product=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \"\\\" data-wat-dynamic-exposed=\\\"true\\\">\\r\\n        <div class=\\\"compare-card\\\">\\r\\n            <div class=\\\"compare-card-inner\\\">\\r\\n                <div class=\\\"compare-block\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-lockup\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":20},\"end\":{\"line\":12,\"column\":27}}})) != null ? stack1 : \"\")\n    + \"                </div>\\r\\n                <div class=\\\"compare-block\\\">\\r\\n                    <div class=\\\"text section\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"compare-long-description\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":24},\"end\":{\"line\":18,\"column\":27}}})) != null ? stack1 : \"\")\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"link-1-url\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":19,\"column\":24},\"end\":{\"line\":30,\"column\":27}}})) != null ? stack1 : \"\")\n    + \"                    </div>\\r\\n                </div>\\r\\n                <div class=\\\"compare-block\\\">\\r\\n                    <p class=\\\"wd-font-16 wd-mv-0\\\">\\r\\n                        <product-price plc=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \"\\\" class=\\\"wd-font-24 wd-color-gray-2 wd-pr-4\\\" promotion-ordering=\\\"REGULAR_FIRST\\\"></product-price>\\r\\n                        <span data-wpd-string=\\\"pc-quick-compare-term\\\">/year</span>\\r\\n                    </p>\\r\\n                </div>\\r\\n                <div class=\\\"compare-block\\\">\\r\\n                    <div class=\\\"heading section\\\">\\r\\n                        <h3 class=\\\"wd-uppercase wp-color-dark\\\" data-wpd-string=\\\"pc-quick-compare-user-for\\\">\\r\\n                            Use for:\\r\\n                        </h3>\\r\\n                    </div>\\r\\n                    <div class=\\\"text section\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"compare-use-for\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":46,\"column\":24},\"end\":{\"line\":50,\"column\":31}}})) != null ? stack1 : \"\")\n    + \"                    </div>\\r\\n                </div>\\r\\n                <div class=\\\"compare-block\\\">\\r\\n                    <div class=\\\"heading section\\\">\\r\\n                        <h3 class=\\\"wd-uppercase wp-color-dark\\\" data-wpd-string=\\\"pc-quick-compare-what-it-does\\\">\\r\\n                            What it does:\\r\\n                        </h3>\\r\\n                    </div>\\r\\n                    <div class=\\\"text section\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"compare-what-it-does\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":60,\"column\":24},\"end\":{\"line\":64,\"column\":31}}})) != null ? stack1 : \"\")\n    + \"                    </div>\\r\\n                </div>\\r\\n                <div class=\\\"compare-block\\\">\\r\\n                    <div class=\\\"heading section\\\">\\r\\n                        <h3 class=\\\"wd-uppercase wp-color-dark\\\" data-wpd-string=\\\"pc-quick-compare-includes\\\">\\r\\n                            Includes:\\r\\n                        </h3>\\r\\n                    </div>\\r\\n                    <div class=\\\"text section\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"compare-includes\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":74,\"column\":24},\"end\":{\"line\":78,\"column\":31}}})) != null ? stack1 : \"\")\n    + \"                    </div>\\r\\n                </div>\\r\\n                <div class=\\\"compare-block\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"platform-text\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":82,\"column\":20},\"end\":{\"line\":93,\"column\":31}}})) != null ? stack1 : \"\")\n    + \"                </div>\\r\\n\\r\\n                <div class=\\\"compare-block wp-cta\\\">\\r\\n                    <div class=\\\"button section\\\">\\r\\n                        <a href=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"free-trial-link\") : stack1), depth0))\n    + \"\\\"\\r\\n                        class=\\\"wd-button wd-uppercase wd-button-responsive wd-font-14\\\" data-wat-link=\\\"true\\\"\\r\\n                        data-wat-loc=\\\"content\\\" data-wat-val=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \": free-trial\\\">\\r\\n                        <span>\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"free-trial-cta-link\") : stack1), depth0))\n    + \"</span>\\r\\n                        <span><i class=\\\"icon-arrow-button\\\"></i></span>\\r\\n                        </a>\\r\\n                    </div>\\r\\n                    <div class=\\\"button section\\\">\\r\\n                        <a href=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"subscribe-link\") : stack1), depth0))\n    + \"\\\"\\r\\n                            class=\\\"wd-button wd-uppercase pc-brand wd-button-responsive wd-font-14\\\" data-wat-link=\\\"true\\\"\\r\\n                            data-wat-loc=\\\"content\\\" data-wat-val=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \": buy\\\">\\r\\n                            <span data-wpd-string=\\\"pc-quick-compare-buy\\\">Buy</span>\\r\\n                            <span></span><svg class=\\\"wd-icon\\\"><use xlink:href=\\\"/content/dam/autodesk/icons.svg#icon-svg-arrow-button\\\"></use></svg></span>\\r\\n                        </a>\\r\\n                    </div>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n</div>\";\n},\"useData\":true});","var Handlebars = require(\"../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                <div class=\\\"wp-product-img hide\\\">\\r\\n                    <a href=\\\"\"\n    + ((stack1 = alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"link-1-url\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\\" class=\\\"noDecor\\\" data-wat-link=\\\"true\\\" data-wat-loc=\\\"content\\\"\\r\\n                        data-wat-val=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \": banner\\\">\\r\\n                        <img src=\\\"https://damassets.autodesk.net\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-banner\") : stack1), depth0))\n    + \"\\\">\\r\\n                    </a>\\r\\n                </div>\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                            <p class=\\\"wd-ma-0\\\">\\r\\n                                <a href=\\\"\"\n    + ((stack1 = alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"link-1-url\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\\" class=\\\"noDecor\\\" data-wat-link=\\\"true\\\" data-wat-loc=\\\"content\\\"\\r\\n                                    data-wat-val=\\\"\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \": logo\\\">\\r\\n                                    <img class=\\\"wp-product-logo\\\"\\r\\n                                        src=\\\"https://damassets.autodesk.net\"\n    + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-lockup\") : stack1), depth0))\n    + \"\\\">\\r\\n                                </a>\\r\\n                            </p>\\r\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"                                <div class=\\\"wp-product-desc\\\">\\r\\n                                    <p class=\\\"wd-color-dark-gray-2\\\">\"\n    + ((stack1 = container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-desc\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"</p>\\r\\n                                </div>\\r\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n          return parent[propertyName];\n        }\n        return undefined\n    };\n\n  return \"<div class=\\\"decorative-box section\\\">\\r\\n    <div class=\\\"wp-product-card\\\">\\r\\n        <div class=\\\"box-content parsys\\\">\\r\\n            <div class=\\\"decorative-box section\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-banner\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":16},\"end\":{\"line\":12,\"column\":23}}})) != null ? stack1 : \"\")\n    + \"                <div class=\\\"wp-product-info-container\\\">\\r\\n                    <div class=\\\"box-content parsys\\\">\\r\\n                        <div class=\\\"text section  wd-color-dark-gray-2\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-lockup\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":28},\"end\":{\"line\":24,\"column\":36}}})) != null ? stack1 : \"\")\n    + \"                            <div class=\\\"wp-xlarge-col\\\">\\r\\n\"\n    + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"product-desc\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":26,\"column\":32},\"end\":{\"line\":30,\"column\":39}}})) != null ? stack1 : \"\")\n    + \"                            </div>\\r\\n                            <p class=\\\"wd-mt-8 wd-mb-10 wd-color-dark-gray-2\\\">\\r\\n                                <a href=\\\"\"\n    + ((stack1 = alias2(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"link-1-url\") : stack1), depth0)) != null ? stack1 : \"\")\n    + \"\\\" data-wat-link=\\\"true\\\"\\r\\n                                    data-wat-val=\\\"\"\n    + container.escapeExpression(alias2(((stack1 = (depth0 != null ? lookupProperty(depth0,\"cardData\") : depth0)) != null ? lookupProperty(stack1,\"plc\") : stack1), depth0))\n    + \": product details\\\" data-wat-loc=\\\"content\\\"\\r\\n                                    class=\\\"wd-inline-icon\\\">\\r\\n                                    <svg class=\\\"wd-icon icon-svg-cta-go-arrow-circle-line\\\">\\r\\n                                        <use xlink:href=\\\"/content/dam/autodesk/icons.svg#icon-svg-cta-go-arrow-circle-line\\\"></use>\\r\\n                                    </svg>\\r\\n                                    <span data-wpd-string=\\\"pc-card-related-cta\\\">Learn more</span>\\r\\n                                </a>\\r\\n                            </p>\\r\\n                        </div>\\r\\n                    </div>\\r\\n                </div>\\r\\n            </div>\\r\\n        </div>\\r\\n    </div>\\r\\n</div>\";\n},\"useData\":true});","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n  var hb = new base.HandlebarsEnvironment();\n\n  Utils.extend(hb, base);\n  hb.SafeString = _handlebarsSafeString2['default'];\n  hb.Exception = _handlebarsException2['default'];\n  hb.Utils = Utils;\n  hb.escapeExpression = Utils.escapeExpression;\n\n  hb.VM = runtime;\n  hb.template = function (spec) {\n    return runtime.template(spec, hb);\n  };\n\n  return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.6';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\n\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n  1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n  2: '== 1.0.0-rc.3',\n  3: '== 1.0.0-rc.4',\n  4: '== 1.x.x',\n  5: '== 2.0.0-alpha.x',\n  6: '>= 2.0.0-beta.1',\n  7: '>= 4.0.0 <4.3.0',\n  8: '>= 4.3.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n  this.helpers = helpers || {};\n  this.partials = partials || {};\n  this.decorators = decorators || {};\n\n  _helpers.registerDefaultHelpers(this);\n  _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n  constructor: HandlebarsEnvironment,\n\n  logger: _logger2['default'],\n  log: _logger2['default'].log,\n\n  registerHelper: function registerHelper(name, fn) {\n    if (_utils.toString.call(name) === objectType) {\n      if (fn) {\n        throw new _exception2['default']('Arg not supported with multiple helpers');\n      }\n      _utils.extend(this.helpers, name);\n    } else {\n      this.helpers[name] = fn;\n    }\n  },\n  unregisterHelper: function unregisterHelper(name) {\n    delete this.helpers[name];\n  },\n\n  registerPartial: function registerPartial(name, partial) {\n    if (_utils.toString.call(name) === objectType) {\n      _utils.extend(this.partials, name);\n    } else {\n      if (typeof partial === 'undefined') {\n        throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n      }\n      this.partials[name] = partial;\n    }\n  },\n  unregisterPartial: function unregisterPartial(name) {\n    delete this.partials[name];\n  },\n\n  registerDecorator: function registerDecorator(name, fn) {\n    if (_utils.toString.call(name) === objectType) {\n      if (fn) {\n        throw new _exception2['default']('Arg not supported with multiple decorators');\n      }\n      _utils.extend(this.decorators, name);\n    } else {\n      this.decorators[name] = fn;\n    }\n  },\n  unregisterDecorator: function unregisterDecorator(name) {\n    delete this.decorators[name];\n  },\n  /**\n   * Reset the memory of illegal property accesses that have already been logged.\n   * @deprecated should only be used in handlebars test-cases\n   */\n  resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n    _internalProtoAccess.resetLoggedProperties();\n  }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy42JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n  _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n  instance.registerDecorator('inline', function (fn, props, container, options) {\n    var ret = fn;\n    if (!props.partials) {\n      props.partials = {};\n      ret = function (context, options) {\n        // Create a new partials stack frame prior to exec.\n        var original = container.partials;\n        container.partials = _utils.extend({}, original, props.partials);\n        var ret = fn(context, options);\n        container.partials = original;\n        return ret;\n      };\n    }\n\n    props.partials[options.args[0]] = options.fn;\n\n    return ret;\n  });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n  var loc = node && node.loc,\n      line = undefined,\n      endLineNumber = undefined,\n      column = undefined,\n      endColumn = undefined;\n\n  if (loc) {\n    line = loc.start.line;\n    endLineNumber = loc.end.line;\n    column = loc.start.column;\n    endColumn = loc.end.column;\n\n    message += ' - ' + line + ':' + column;\n  }\n\n  var tmp = Error.prototype.constructor.call(this, message);\n\n  // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n  for (var idx = 0; idx < errorProps.length; idx++) {\n    this[errorProps[idx]] = tmp[errorProps[idx]];\n  }\n\n  /* istanbul ignore else */\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, Exception);\n  }\n\n  try {\n    if (loc) {\n      this.lineNumber = line;\n      this.endLineNumber = endLineNumber;\n\n      // Work around issue under safari where we can't directly set the column value\n      /* istanbul ignore next */\n      if (Object.defineProperty) {\n        Object.defineProperty(this, 'column', {\n          value: column,\n          enumerable: true\n        });\n        Object.defineProperty(this, 'endColumn', {\n          value: endColumn,\n          enumerable: true\n        });\n      } else {\n        this.column = column;\n        this.endColumn = endColumn;\n      }\n    }\n  } catch (nop) {\n    /* Ignore if the browser is very particular */\n  }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChub3ApIHtcbiAgICAvKiBJZ25vcmUgaWYgdGhlIGJyb3dzZXIgaXMgdmVyeSBwYXJ0aWN1bGFyICovXG4gIH1cbn1cblxuRXhjZXB0aW9uLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBFeGNlcHRpb247XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n  _helpersBlockHelperMissing2['default'](instance);\n  _helpersEach2['default'](instance);\n  _helpersHelperMissing2['default'](instance);\n  _helpersIf2['default'](instance);\n  _helpersLog2['default'](instance);\n  _helpersLookup2['default'](instance);\n  _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n  if (instance.helpers[helperName]) {\n    instance.hooks[helperName] = instance.helpers[helperName];\n    if (!keepHelper) {\n      delete instance.helpers[helperName];\n    }\n  }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n  instance.registerHelper('blockHelperMissing', function (context, options) {\n    var inverse = options.inverse,\n        fn = options.fn;\n\n    if (context === true) {\n      return fn(this);\n    } else if (context === false || context == null) {\n      return inverse(this);\n    } else if (_utils.isArray(context)) {\n      if (context.length > 0) {\n        if (options.ids) {\n          options.ids = [options.name];\n        }\n\n        return instance.helpers.each(context, options);\n      } else {\n        return inverse(this);\n      }\n    } else {\n      if (options.data && options.ids) {\n        var data = _utils.createFrame(options.data);\n        data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n        options = { data: data };\n      }\n\n      return fn(context, options);\n    }\n  });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n  instance.registerHelper('each', function (context, options) {\n    if (!options) {\n      throw new _exception2['default']('Must pass iterator to #each');\n    }\n\n    var fn = options.fn,\n        inverse = options.inverse,\n        i = 0,\n        ret = '',\n        data = undefined,\n        contextPath = undefined;\n\n    if (options.data && options.ids) {\n      contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n    }\n\n    if (_utils.isFunction(context)) {\n      context = context.call(this);\n    }\n\n    if (options.data) {\n      data = _utils.createFrame(options.data);\n    }\n\n    function execIteration(field, index, last) {\n      if (data) {\n        data.key = field;\n        data.index = index;\n        data.first = index === 0;\n        data.last = !!last;\n\n        if (contextPath) {\n          data.contextPath = contextPath + field;\n        }\n      }\n\n      ret = ret + fn(context[field], {\n        data: data,\n        blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n      });\n    }\n\n    if (context && typeof context === 'object') {\n      if (_utils.isArray(context)) {\n        for (var j = context.length; i < j; i++) {\n          if (i in context) {\n            execIteration(i, i, i === context.length - 1);\n          }\n        }\n      } else if (global.Symbol && context[global.Symbol.iterator]) {\n        var newContext = [];\n        var iterator = context[global.Symbol.iterator]();\n        for (var it = iterator.next(); !it.done; it = iterator.next()) {\n          newContext.push(it.value);\n        }\n        context = newContext;\n        for (var j = context.length; i < j; i++) {\n          execIteration(i, i, i === context.length - 1);\n        }\n      } else {\n        (function () {\n          var priorKey = undefined;\n\n          Object.keys(context).forEach(function (key) {\n            // We're running the iterations one step out of sync so we can detect\n            // the last iteration without have to scan the object twice and create\n            // an itermediate keys array.\n            if (priorKey !== undefined) {\n              execIteration(priorKey, i - 1);\n            }\n            priorKey = key;\n            i++;\n          });\n          if (priorKey !== undefined) {\n            execIteration(priorKey, i - 1, true);\n          }\n        })();\n      }\n    }\n\n    if (i === 0) {\n      ret = inverse(this);\n    }\n\n    return ret;\n  });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUMzRCxZQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsWUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUNuRCxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFxuICAgICAgaSA9IDAsXG4gICAgICByZXQgPSAnJyxcbiAgICAgIGRhdGEsXG4gICAgICBjb250ZXh0UGF0aDtcblxuICAgIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5pZHMpIHtcbiAgICAgIGNvbnRleHRQYXRoID1cbiAgICAgICAgYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSkgKyAnLic7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhlY0l0ZXJhdGlvbihmaWVsZCwgaW5kZXgsIGxhc3QpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGRhdGEua2V5ID0gZmllbGQ7XG4gICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgZGF0YS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICBkYXRhLmxhc3QgPSAhIWxhc3Q7XG5cbiAgICAgICAgaWYgKGNvbnRleHRQYXRoKSB7XG4gICAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoICsgZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0ID1cbiAgICAgICAgcmV0ICtcbiAgICAgICAgZm4oY29udGV4dFtmaWVsZF0sIHtcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhcbiAgICAgICAgICAgIFtjb250ZXh0W2ZpZWxkXSwgZmllbGRdLFxuICAgICAgICAgICAgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAmJiB0eXBlb2YgY29udGV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChpc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZ2xvYmFsLlN5bWJvbCAmJiBjb250ZXh0W2dsb2JhbC5TeW1ib2wuaXRlcmF0b3JdKSB7XG4gICAgICAgIGNvbnN0IG5ld0NvbnRleHQgPSBbXTtcbiAgICAgICAgY29uc3QgaXRlcmF0b3IgPSBjb250ZXh0W2dsb2JhbC5TeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIGZvciAobGV0IGl0ID0gaXRlcmF0b3IubmV4dCgpOyAhaXQuZG9uZTsgaXQgPSBpdGVyYXRvci5uZXh0KCkpIHtcbiAgICAgICAgICBuZXdDb250ZXh0LnB1c2goaXQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQgPSBuZXdDb250ZXh0O1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBwcmlvcktleTtcblxuICAgICAgICBPYmplY3Qua2V5cyhjb250ZXh0KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgLy8gV2UncmUgcnVubmluZyB0aGUgaXRlcmF0aW9ucyBvbmUgc3RlcCBvdXQgb2Ygc3luYyBzbyB3ZSBjYW4gZGV0ZWN0XG4gICAgICAgICAgLy8gdGhlIGxhc3QgaXRlcmF0aW9uIHdpdGhvdXQgaGF2ZSB0byBzY2FuIHRoZSBvYmplY3QgdHdpY2UgYW5kIGNyZWF0ZVxuICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24ocHJpb3JLZXksIGkgLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJpb3JLZXkgPSBrZXk7XG4gICAgICAgICAgaSsrO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n  instance.registerHelper('helperMissing', function () /* [args, ]options */{\n    if (arguments.length === 1) {\n      // A missing field in a {{foo}} construct.\n      return undefined;\n    } else {\n      // Someone is actually trying to call something, blow up.\n      throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n    }\n  });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n  instance.registerHelper('if', function (conditional, options) {\n    if (arguments.length != 2) {\n      throw new _exception2['default']('#if requires exactly one argument');\n    }\n    if (_utils.isFunction(conditional)) {\n      conditional = conditional.call(this);\n    }\n\n    // Default behavior is to render the positive path if the value is truthy and not empty.\n    // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n    // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n    if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n      return options.inverse(this);\n    } else {\n      return options.fn(this);\n    }\n  });\n\n  instance.registerHelper('unless', function (conditional, options) {\n    if (arguments.length != 2) {\n      throw new _exception2['default']('#unless requires exactly one argument');\n    }\n    return instance.helpers['if'].call(this, conditional, {\n      fn: options.inverse,\n      inverse: options.fn,\n      hash: options.hash\n    });\n  });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n  instance.registerHelper('log', function () /* message, options */{\n    var args = [undefined],\n        options = arguments[arguments.length - 1];\n    for (var i = 0; i < arguments.length - 1; i++) {\n      args.push(arguments[i]);\n    }\n\n    var level = 1;\n    if (options.hash.level != null) {\n      level = options.hash.level;\n    } else if (options.data && options.data.level != null) {\n      level = options.data.level;\n    }\n    args[0] = level;\n\n    instance.log.apply(instance, args);\n  });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n  instance.registerHelper('lookup', function (obj, field, options) {\n    if (!obj) {\n      // Note for 5.0: Change to \"obj == null\" in 5.0\n      return obj;\n    }\n    return options.lookupProperty(obj, field);\n  });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n  instance.registerHelper('with', function (context, options) {\n    if (arguments.length != 2) {\n      throw new _exception2['default']('#with requires exactly one argument');\n    }\n    if (_utils.isFunction(context)) {\n      context = context.call(this);\n    }\n\n    var fn = options.fn;\n\n    if (!_utils.isEmpty(context)) {\n      var data = options.data;\n      if (options.data && options.ids) {\n        data = _utils.createFrame(options.data);\n        data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n      }\n\n      return fn(context, {\n        data: data,\n        blockParams: _utils.blockParams([context], [data && data.contextPath])\n      });\n    } else {\n      return options.inverse(this);\n    }\n  });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\nfunction createNewLookupObject() {\n  for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n    sources[_key] = arguments[_key];\n  }\n\n  return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties;\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar logger = _interopRequireWildcard(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n  var defaultMethodWhiteList = Object.create(null);\n  defaultMethodWhiteList['constructor'] = false;\n  defaultMethodWhiteList['__defineGetter__'] = false;\n  defaultMethodWhiteList['__defineSetter__'] = false;\n  defaultMethodWhiteList['__lookupGetter__'] = false;\n\n  var defaultPropertyWhiteList = Object.create(null);\n  // eslint-disable-next-line no-proto\n  defaultPropertyWhiteList['__proto__'] = false;\n\n  return {\n    properties: {\n      whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n      defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n    },\n    methods: {\n      whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n      defaultValue: runtimeOptions.allowProtoMethodsByDefault\n    }\n  };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n  if (typeof result === 'function') {\n    return checkWhiteList(protoAccessControl.methods, propertyName);\n  } else {\n    return checkWhiteList(protoAccessControl.properties, propertyName);\n  }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n  if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n    return protoAccessControlForType.whitelist[propertyName] === true;\n  }\n  if (protoAccessControlForType.defaultValue !== undefined) {\n    return protoAccessControlForType.defaultValue;\n  }\n  logUnexpecedPropertyAccessOnce(propertyName);\n  return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n  if (loggedProperties[propertyName] !== true) {\n    loggedProperties[propertyName] = true;\n    logger.log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n  }\n}\n\nfunction resetLoggedProperties() {\n  Object.keys(loggedProperties).forEach(function (propertyName) {\n    delete loggedProperties[propertyName];\n  });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMxQyxXQUFXOztJQUF2QixNQUFNOztBQUVsQixJQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRXRDLFNBQVMsd0JBQXdCLENBQUMsY0FBYyxFQUFFO0FBQ3ZELE1BQUksc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCx3QkFBc0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDOUMsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRW5ELE1BQUksd0JBQXdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFbkQsMEJBQXdCLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDOztBQUU5QyxTQUFPO0FBQ0wsY0FBVSxFQUFFO0FBQ1YsZUFBUyxFQUFFLDZDQUNULHdCQUF3QixFQUN4QixjQUFjLENBQUMsc0JBQXNCLENBQ3RDO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsNkJBQTZCO0tBQzNEO0FBQ0QsV0FBTyxFQUFFO0FBQ1AsZUFBUyxFQUFFLDZDQUNULHNCQUFzQixFQUN0QixjQUFjLENBQUMsbUJBQW1CLENBQ25DO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsMEJBQTBCO0tBQ3hEO0dBQ0YsQ0FBQztDQUNIOztBQUVNLFNBQVMsZUFBZSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7QUFDeEUsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7QUFDaEMsV0FBTyxjQUFjLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0dBQ2pFLE1BQU07QUFDTCxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDcEU7Q0FDRjs7QUFFRCxTQUFTLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLEVBQUU7QUFDL0QsTUFBSSx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFO0FBQ25FLFdBQU8seUJBQXlCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQztHQUNuRTtBQUNELE1BQUkseUJBQXlCLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtBQUN4RCxXQUFPLHlCQUF5QixDQUFDLFlBQVksQ0FBQztHQUMvQztBQUNELGdDQUE4QixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzdDLFNBQU8sS0FBSyxDQUFDO0NBQ2Q7O0FBRUQsU0FBUyw4QkFBOEIsQ0FBQyxZQUFZLEVBQUU7QUFDcEQsTUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUU7QUFDM0Msb0JBQWdCLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLFVBQU0sQ0FBQyxHQUFHLENBQ1IsT0FBTyxFQUNQLGlFQUErRCxZQUFZLG9JQUNILG9IQUMyQyxDQUNwSCxDQUFDO0dBQ0g7Q0FDRjs7QUFFTSxTQUFTLHFCQUFxQixHQUFHO0FBQ3RDLFFBQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxZQUFZLEVBQUk7QUFDcEQsV0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztHQUN2QyxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJwcm90by1hY2Nlc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVOZXdMb29rdXBPYmplY3QgfSBmcm9tICcuL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdCc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcblxuY29uc3QgbG9nZ2VkUHJvcGVydGllcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm90b0FjY2Vzc0NvbnRyb2wocnVudGltZU9wdGlvbnMpIHtcbiAgbGV0IGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0Wydjb25zdHJ1Y3RvciddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lR2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2RlZmluZVNldHRlcl9fJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19sb29rdXBHZXR0ZXJfXyddID0gZmFsc2U7XG5cbiAgbGV0IGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3RbJ19fcHJvdG9fXyddID0gZmFsc2U7XG5cbiAgcmV0dXJuIHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0LFxuICAgICAgICBydW50aW1lT3B0aW9ucy5hbGxvd2VkUHJvdG9Qcm9wZXJ0aWVzXG4gICAgICApLFxuICAgICAgZGVmYXVsdFZhbHVlOiBydW50aW1lT3B0aW9ucy5hbGxvd1Byb3RvUHJvcGVydGllc0J5RGVmYXVsdFxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgd2hpdGVsaXN0OiBjcmVhdGVOZXdMb29rdXBPYmplY3QoXG4gICAgICAgIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b01ldGhvZHNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9NZXRob2RzQnlEZWZhdWx0XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzdWx0SXNBbGxvd2VkKHJlc3VsdCwgcHJvdG9BY2Nlc3NDb250cm9sLCBwcm9wZXJ0eU5hbWUpIHtcbiAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLm1ldGhvZHMsIHByb3BlcnR5TmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbC5wcm9wZXJ0aWVzLCBwcm9wZXJ0eU5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUsIHByb3BlcnR5TmFtZSkge1xuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUud2hpdGVsaXN0W3Byb3BlcnR5TmFtZV0gPT09IHRydWU7XG4gIH1cbiAgaWYgKHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWU7XG4gIH1cbiAgbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSk7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSkge1xuICBpZiAobG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdICE9PSB0cnVlKSB7XG4gICAgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdID0gdHJ1ZTtcbiAgICBsb2dnZXIubG9nKFxuICAgICAgJ2Vycm9yJyxcbiAgICAgIGBIYW5kbGViYXJzOiBBY2Nlc3MgaGFzIGJlZW4gZGVuaWVkIHRvIHJlc29sdmUgdGhlIHByb3BlcnR5IFwiJHtwcm9wZXJ0eU5hbWV9XCIgYmVjYXVzZSBpdCBpcyBub3QgYW4gXCJvd24gcHJvcGVydHlcIiBvZiBpdHMgcGFyZW50LlxcbmAgK1xuICAgICAgICBgWW91IGNhbiBhZGQgYSBydW50aW1lIG9wdGlvbiB0byBkaXNhYmxlIHRoZSBjaGVjayBvciB0aGlzIHdhcm5pbmc6XFxuYCArXG4gICAgICAgIGBTZWUgaHR0cHM6Ly9oYW5kbGViYXJzanMuY29tL2FwaS1yZWZlcmVuY2UvcnVudGltZS1vcHRpb25zLmh0bWwjb3B0aW9ucy10by1jb250cm9sLXByb3RvdHlwZS1hY2Nlc3MgZm9yIGRldGFpbHNgXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCkge1xuICBPYmplY3Qua2V5cyhsb2dnZWRQcm9wZXJ0aWVzKS5mb3JFYWNoKHByb3BlcnR5TmFtZSA9PiB7XG4gICAgZGVsZXRlIGxvZ2dlZFByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n  if (typeof helper !== 'function') {\n    // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n    // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n    return helper;\n  }\n  var wrapper = function wrapper() /* dynamic arguments */{\n    var options = arguments[arguments.length - 1];\n    arguments[arguments.length - 1] = transformOptionsFn(options);\n    return helper.apply(this, arguments);\n  };\n  return wrapper;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n  methodMap: ['debug', 'info', 'warn', 'error'],\n  level: 'info',\n\n  // Maps a given level value to the `methodMap` indexes above.\n  lookupLevel: function lookupLevel(level) {\n    if (typeof level === 'string') {\n      var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n      if (levelMap >= 0) {\n        level = levelMap;\n      } else {\n        level = parseInt(level, 10);\n      }\n    }\n\n    return level;\n  },\n\n  // Can be overridden in the host environment\n  log: function log(level) {\n    level = logger.lookupLevel(level);\n\n    if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n      var method = logger.methodMap[level];\n      // eslint-disable-next-line no-console\n      if (!console[method]) {\n        method = 'log';\n      }\n\n      for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        message[_key - 1] = arguments[_key];\n      }\n\n      console[method].apply(console, message); // eslint-disable-line no-console\n    }\n  }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n  /* istanbul ignore next */\n  var root = typeof global !== 'undefined' ? global : window,\n      $Handlebars = root.Handlebars;\n  /* istanbul ignore next */\n  Handlebars.noConflict = function () {\n    if (root.Handlebars === Handlebars) {\n      root.Handlebars = $Handlebars;\n    }\n    return Handlebars;\n  };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxVQUFVLEVBQUU7O0FBRWxDLE1BQUksSUFBSSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsR0FBRyxNQUFNLEdBQUcsTUFBTTtNQUN4RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs7QUFFaEMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDbEMsVUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7S0FDL0I7QUFDRCxXQUFPLFVBQVUsQ0FBQztHQUNuQixDQUFDO0NBQ0giLCJmaWxlIjoibm8tY29uZmxpY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihIYW5kbGViYXJzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGxldCByb290ID0gdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB3aW5kb3csXG4gICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n  var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n      currentRevision = _base.COMPILER_REVISION;\n\n  if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n    return;\n  }\n\n  if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n    var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n        compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n    throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n  } else {\n    // Use the embedded version info since the runtime doesn't know about this revision yet\n    throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n  }\n}\n\nfunction template(templateSpec, env) {\n  /* istanbul ignore next */\n  if (!env) {\n    throw new _exception2['default']('No environment passed to template');\n  }\n  if (!templateSpec || !templateSpec.main) {\n    throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n  }\n\n  templateSpec.main.decorator = templateSpec.main_d;\n\n  // Note: Using env.VM references rather than local var references throughout this section to allow\n  // for external users to override these as pseudo-supported APIs.\n  env.VM.checkRevision(templateSpec.compiler);\n\n  // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n  var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n  function invokePartialWrapper(partial, context, options) {\n    if (options.hash) {\n      context = Utils.extend({}, context, options.hash);\n      if (options.ids) {\n        options.ids[0] = true;\n      }\n    }\n    partial = env.VM.resolvePartial.call(this, partial, context, options);\n\n    var extendedOptions = Utils.extend({}, options, {\n      hooks: this.hooks,\n      protoAccessControl: this.protoAccessControl\n    });\n\n    var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n    if (result == null && env.compile) {\n      options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n      result = options.partials[options.name](context, extendedOptions);\n    }\n    if (result != null) {\n      if (options.indent) {\n        var lines = result.split('\\n');\n        for (var i = 0, l = lines.length; i < l; i++) {\n          if (!lines[i] && i + 1 === l) {\n            break;\n          }\n\n          lines[i] = options.indent + lines[i];\n        }\n        result = lines.join('\\n');\n      }\n      return result;\n    } else {\n      throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n    }\n  }\n\n  // Just add water\n  var container = {\n    strict: function strict(obj, name, loc) {\n      if (!obj || !(name in obj)) {\n        throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n          loc: loc\n        });\n      }\n      return obj[name];\n    },\n    lookupProperty: function lookupProperty(parent, propertyName) {\n      var result = parent[propertyName];\n      if (result == null) {\n        return result;\n      }\n      if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n        return result;\n      }\n\n      if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n        return result;\n      }\n      return undefined;\n    },\n    lookup: function lookup(depths, name) {\n      var len = depths.length;\n      for (var i = 0; i < len; i++) {\n        var result = depths[i] && container.lookupProperty(depths[i], name);\n        if (result != null) {\n          return depths[i][name];\n        }\n      }\n    },\n    lambda: function lambda(current, context) {\n      return typeof current === 'function' ? current.call(context) : current;\n    },\n\n    escapeExpression: Utils.escapeExpression,\n    invokePartial: invokePartialWrapper,\n\n    fn: function fn(i) {\n      var ret = templateSpec[i];\n      ret.decorator = templateSpec[i + '_d'];\n      return ret;\n    },\n\n    programs: [],\n    program: function program(i, data, declaredBlockParams, blockParams, depths) {\n      var programWrapper = this.programs[i],\n          fn = this.fn(i);\n      if (data || depths || blockParams || declaredBlockParams) {\n        programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n      } else if (!programWrapper) {\n        programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n      }\n      return programWrapper;\n    },\n\n    data: function data(value, depth) {\n      while (value && depth--) {\n        value = value._parent;\n      }\n      return value;\n    },\n    mergeIfNeeded: function mergeIfNeeded(param, common) {\n      var obj = param || common;\n\n      if (param && common && param !== common) {\n        obj = Utils.extend({}, common, param);\n      }\n\n      return obj;\n    },\n    // An empty object to use as replacement for null-contexts\n    nullContext: Object.seal({}),\n\n    noop: env.VM.noop,\n    compilerInfo: templateSpec.compiler\n  };\n\n  function ret(context) {\n    var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n    var data = options.data;\n\n    ret._setup(options);\n    if (!options.partial && templateSpec.useData) {\n      data = initData(context, data);\n    }\n    var depths = undefined,\n        blockParams = templateSpec.useBlockParams ? [] : undefined;\n    if (templateSpec.useDepths) {\n      if (options.depths) {\n        depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n      } else {\n        depths = [context];\n      }\n    }\n\n    function main(context /*, options*/) {\n      return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n    }\n\n    main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n    return main(context, options);\n  }\n\n  ret.isTop = true;\n\n  ret._setup = function (options) {\n    if (!options.partial) {\n      var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n      wrapHelpersToPassLookupProperty(mergedHelpers, container);\n      container.helpers = mergedHelpers;\n\n      if (templateSpec.usePartial) {\n        // Use mergeIfNeeded here to prevent compiling global partials multiple times\n        container.partials = container.mergeIfNeeded(options.partials, env.partials);\n      }\n      if (templateSpec.usePartial || templateSpec.useDecorators) {\n        container.decorators = Utils.extend({}, env.decorators, options.decorators);\n      }\n\n      container.hooks = {};\n      container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n\n      var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n      _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n      _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n    } else {\n      container.protoAccessControl = options.protoAccessControl; // internal option\n      container.helpers = options.helpers;\n      container.partials = options.partials;\n      container.decorators = options.decorators;\n      container.hooks = options.hooks;\n    }\n  };\n\n  ret._child = function (i, data, blockParams, depths) {\n    if (templateSpec.useBlockParams && !blockParams) {\n      throw new _exception2['default']('must pass block params');\n    }\n    if (templateSpec.useDepths && !depths) {\n      throw new _exception2['default']('must pass parent depths');\n    }\n\n    return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n  };\n  return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n  function prog(context) {\n    var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n    var currentDepths = depths;\n    if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n      currentDepths = [context].concat(depths);\n    }\n\n    return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n  }\n\n  prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n  prog.program = i;\n  prog.depth = depths ? depths.length : 0;\n  prog.blockParams = declaredBlockParams || 0;\n  return prog;\n}\n\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\nfunction resolvePartial(partial, context, options) {\n  if (!partial) {\n    if (options.name === '@partial-block') {\n      partial = options.data['partial-block'];\n    } else {\n      partial = options.partials[options.name];\n    }\n  } else if (!partial.call && !options.name) {\n    // This is a dynamic partial that returned a string\n    options.name = partial;\n    partial = options.partials[partial];\n  }\n  return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n  // Use the current closure context to save the partial-block if this partial\n  var currentPartialBlock = options.data && options.data['partial-block'];\n  options.partial = true;\n  if (options.ids) {\n    options.data.contextPath = options.ids[0] || options.data.contextPath;\n  }\n\n  var partialBlock = undefined;\n  if (options.fn && options.fn !== noop) {\n    (function () {\n      options.data = _base.createFrame(options.data);\n      // Wrapper function to get access to currentPartialBlock from the closure\n      var fn = options.fn;\n      partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n        var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n        // Restore the partial-block from the closure for the execution of the block\n        // i.e. the part inside the block of the partial call.\n        options.data = _base.createFrame(options.data);\n        options.data['partial-block'] = currentPartialBlock;\n        return fn(context, options);\n      };\n      if (fn.partials) {\n        options.partials = Utils.extend({}, options.partials, fn.partials);\n      }\n    })();\n  }\n\n  if (partial === undefined && partialBlock) {\n    partial = partialBlock;\n  }\n\n  if (partial === undefined) {\n    throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n  } else if (partial instanceof Function) {\n    return partial(context, options);\n  }\n}\n\nfunction noop() {\n  return '';\n}\n\nfunction initData(context, data) {\n  if (!data || !('root' in data)) {\n    data = data ? _base.createFrame(data) : {};\n    data.root = context;\n  }\n  return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n  if (fn.decorator) {\n    var props = {};\n    prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n    Utils.extend(prog, props);\n  }\n  return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n  Object.keys(mergedHelpers).forEach(function (helperName) {\n    var helper = mergedHelpers[helperName];\n    mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n  });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n  var lookupProperty = container.lookupProperty;\n  return _internalWrapHelper.wrapHelper(helper, function (options) {\n    return Utils.extend({ lookupProperty: lookupProperty }, options);\n  });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztH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LE1BQU0sQ0FBQyxFQUFFLGNBQWMsRUFBZCxjQUFjLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztHQUNsRCxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJydW50aW1lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vZXhjZXB0aW9uJztcbmltcG9ydCB7XG4gIENPTVBJTEVSX1JFVklTSU9OLFxuICBjcmVhdGVGcmFtZSxcbiAgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OLFxuICBSRVZJU0lPTl9DSEFOR0VTXG59IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBtb3ZlSGVscGVyVG9Ib29rcyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyB3cmFwSGVscGVyIH0gZnJvbSAnLi9pbnRlcm5hbC93cmFwSGVscGVyJztcbmltcG9ydCB7XG4gIGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbCxcbiAgcmVzdWx0SXNBbGxvd2VkXG59IGZyb20gJy4vaW50ZXJuYWwvcHJvdG8tYWNjZXNzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUmV2aXNpb24oY29tcGlsZXJJbmZvKSB7XG4gIGNvbnN0IGNvbXBpbGVyUmV2aXNpb24gPSAoY29tcGlsZXJJbmZvICYmIGNvbXBpbGVySW5mb1swXSkgfHwgMSxcbiAgICBjdXJyZW50UmV2aXNpb24gPSBDT01QSUxFUl9SRVZJU0lPTjtcblxuICBpZiAoXG4gICAgY29tcGlsZXJSZXZpc2lvbiA+PSBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04gJiZcbiAgICBjb21waWxlclJldmlzaW9uIDw9IENPTVBJTEVSX1JFVklTSU9OXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChjb21waWxlclJldmlzaW9uIDwgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OKSB7XG4gICAgY29uc3QgcnVudGltZVZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjdXJyZW50UmV2aXNpb25dLFxuICAgICAgY29tcGlsZXJWZXJzaW9ucyA9IFJFVklTSU9OX0NIQU5HRVNbY29tcGlsZXJSZXZpc2lvbl07XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhbiBvbGRlciB2ZXJzaW9uIG9mIEhhbmRsZWJhcnMgdGhhbiB0aGUgY3VycmVudCBydW50aW1lLiAnICtcbiAgICAgICAgJ1BsZWFzZSB1cGRhdGUgeW91ciBwcmVjb21waWxlciB0byBhIG5ld2VyIHZlcnNpb24gKCcgK1xuICAgICAgICBydW50aW1lVmVyc2lvbnMgK1xuICAgICAgICAnKSBvciBkb3duZ3JhZGUgeW91ciBydW50aW1lIHRvIGFuIG9sZGVyIHZlcnNpb24gKCcgK1xuICAgICAgICBjb21waWxlclZlcnNpb25zICtcbiAgICAgICAgJykuJ1xuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIHRoZSBlbWJlZGRlZCB2ZXJzaW9uIGluZm8gc2luY2UgdGhlIHJ1bnRpbWUgZG9lc24ndCBrbm93IGFib3V0IHRoaXMgcmV2aXNpb24geWV0XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhIG5ld2VyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHJ1bnRpbWUgdG8gYSBuZXdlciB2ZXJzaW9uICgnICtcbiAgICAgICAgY29tcGlsZXJJbmZvWzFdICtcbiAgICAgICAgJykuJ1xuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlbXBsYXRlKHRlbXBsYXRlU3BlYywgZW52KSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICghZW52KSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignTm8gZW52aXJvbm1lbnQgcGFzc2VkIHRvIHRlbXBsYXRlJyk7XG4gIH1cbiAgaWYgKCF0ZW1wbGF0ZVNwZWMgfHwgIXRlbXBsYXRlU3BlYy5tYWluKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVW5rbm93biB0ZW1wbGF0ZSBvYmplY3Q6ICcgKyB0eXBlb2YgdGVtcGxhdGVTcGVjKTtcbiAgfVxuXG4gIHRlbXBsYXRlU3BlYy5tYWluLmRlY29yYXRvciA9IHRlbXBsYXRlU3BlYy5tYWluX2Q7XG5cbiAgLy8gTm90ZTogVXNpbmcgZW52LlZNIHJlZmVyZW5jZXMgcmF0aGVyIHRoYW4gbG9jYWwgdmFyIHJlZmVyZW5jZXMgdGhyb3VnaG91dCB0aGlzIHNlY3Rpb24gdG8gYWxsb3dcbiAgLy8gZm9yIGV4dGVybmFsIHVzZXJzIHRvIG92ZXJyaWRlIHRoZXNlIGFzIHBzZXVkby1zdXBwb3J0ZWQgQVBJcy5cbiAgZW52LlZNLmNoZWNrUmV2aXNpb24odGVtcGxhdGVTcGVjLmNvbXBpbGVyKTtcblxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgcHJlY29tcGlsZWQgdGVtcGxhdGVzIHdpdGggY29tcGlsZXItdmVyc2lvbiA3ICg8NC4zLjApXG4gIGNvbnN0IHRlbXBsYXRlV2FzUHJlY29tcGlsZWRXaXRoQ29tcGlsZXJWNyA9XG4gICAgdGVtcGxhdGVTcGVjLmNvbXBpbGVyICYmIHRlbXBsYXRlU3BlYy5jb21waWxlclswXSA9PT0gNztcblxuICBmdW5jdGlvbiBpbnZva2VQYXJ0aWFsV3JhcHBlcihwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMuaGFzaCkge1xuICAgICAgY29udGV4dCA9IFV0aWxzLmV4dGVuZCh7fSwgY29udGV4dCwgb3B0aW9ucy5oYXNoKTtcbiAgICAgIGlmIChvcHRpb25zLmlkcykge1xuICAgICAgICBvcHRpb25zLmlkc1swXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHBhcnRpYWwgPSBlbnYuVk0ucmVzb2x2ZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcblxuICAgIGxldCBleHRlbmRlZE9wdGlvbnMgPSBVdGlscy5leHRlbmQoe30sIG9wdGlvbnMsIHtcbiAgICAgIGhvb2tzOiB0aGlzLmhvb2tzLFxuICAgICAgcHJvdG9BY2Nlc3NDb250cm9sOiB0aGlzLnByb3RvQWNjZXNzQ29udHJvbFxuICAgIH0pO1xuXG4gICAgbGV0IHJlc3VsdCA9IGVudi5WTS5pbnZva2VQYXJ0aWFsLmNhbGwoXG4gICAgICB0aGlzLFxuICAgICAgcGFydGlhbCxcbiAgICAgIGNvbnRleHQsXG4gICAgICBleHRlbmRlZE9wdGlvbnNcbiAgICApO1xuXG4gICAgaWYgKHJlc3VsdCA9PSBudWxsICYmIGVudi5jb21waWxlKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0gPSBlbnYuY29tcGlsZShcbiAgICAgICAgcGFydGlhbCxcbiAgICAgICAgdGVtcGxhdGVTcGVjLmNvbXBpbGVyT3B0aW9ucyxcbiAgICAgICAgZW52XG4gICAgICApO1xuICAgICAgcmVzdWx0ID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdKGNvbnRleHQsIGV4dGVuZGVkT3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChyZXN1bHQgIT0gbnVsbCkge1xuICAgICAgaWYgKG9wdGlvbnMuaW5kZW50KSB7XG4gICAgICAgIGxldCBsaW5lcyA9IHJlc3VsdC5zcGxpdCgnXFxuJyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gbGluZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgaWYgKCFsaW5lc1tpXSAmJiBpICsgMSA9PT0gbCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGluZXNbaV0gPSBvcHRpb25zLmluZGVudCArIGxpbmVzW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgJ1RoZSBwYXJ0aWFsICcgK1xuICAgICAgICAgIG9wdGlvbnMubmFtZSArXG4gICAgICAgICAgJyBjb3VsZCBub3QgYmUgY29tcGlsZWQgd2hlbiBydW5uaW5nIGluIHJ1bnRpbWUtb25seSBtb2RlJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBKdXN0IGFkZCB3YXRlclxuICBsZXQgY29udGFpbmVyID0ge1xuICAgIHN0cmljdDogZnVuY3Rpb24ob2JqLCBuYW1lLCBsb2MpIHtcbiAgICAgIGlmICghb2JqIHx8ICEobmFtZSBpbiBvYmopKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1wiJyArIG5hbWUgKyAnXCIgbm90IGRlZmluZWQgaW4gJyArIG9iaiwge1xuICAgICAgICAgIGxvYzogbG9jXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9ialtuYW1lXTtcbiAgICB9LFxuICAgIGxvb2t1cFByb3BlcnR5OiBmdW5jdGlvbihwYXJlbnQsIHByb3BlcnR5TmFtZSkge1xuICAgICAgbGV0IHJlc3VsdCA9IHBhcmVudFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmVudCwgcHJvcGVydHlOYW1lKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzdWx0SXNBbGxvd2VkKHJlc3VsdCwgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCwgcHJvcGVydHlOYW1lKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LFxuICAgIGxvb2t1cDogZnVuY3Rpb24oZGVwdGhzLCBuYW1lKSB7XG4gICAgICBjb25zdCBsZW4gPSBkZXB0aHMubGVuZ3RoO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZGVwdGhzW2ldICYmIGNvbnRhaW5lci5sb29rdXBQcm9wZXJ0eShkZXB0aHNbaV0sIG5hbWUpO1xuICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZGVwdGhzW2ldW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBsYW1iZGE6IGZ1bmN0aW9uKGN1cnJlbnQsIGNvbnRleHQpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgY3VycmVudCA9PT0gJ2Z1bmN0aW9uJyA/IGN1cnJlbnQuY2FsbChjb250ZXh0KSA6IGN1cnJlbnQ7XG4gICAgfSxcblxuICAgIGVzY2FwZUV4cHJlc3Npb246IFV0aWxzLmVzY2FwZUV4cHJlc3Npb24sXG4gICAgaW52b2tlUGFydGlhbDogaW52b2tlUGFydGlhbFdyYXBwZXIsXG5cbiAgICBmbjogZnVuY3Rpb24oaSkge1xuICAgICAgbGV0IHJldCA9IHRlbXBsYXRlU3BlY1tpXTtcbiAgICAgIHJldC5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWNbaSArICdfZCddO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuXG4gICAgcHJvZ3JhbXM6IFtdLFxuICAgIHByb2dyYW06IGZ1bmN0aW9uKGksIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICAgIGxldCBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0sXG4gICAgICAgIGZuID0gdGhpcy5mbihpKTtcbiAgICAgIGlmIChkYXRhIHx8IGRlcHRocyB8fCBibG9ja1BhcmFtcyB8fCBkZWNsYXJlZEJsb2NrUGFyYW1zKSB7XG4gICAgICAgIHByb2dyYW1XcmFwcGVyID0gd3JhcFByb2dyYW0oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBpLFxuICAgICAgICAgIGZuLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZGVjbGFyZWRCbG9ja1BhcmFtcyxcbiAgICAgICAgICBibG9ja1BhcmFtcyxcbiAgICAgICAgICBkZXB0aHNcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoIXByb2dyYW1XcmFwcGVyKSB7XG4gICAgICAgIHByb2dyYW1XcmFwcGVyID0gdGhpcy5wcm9ncmFtc1tpXSA9IHdyYXBQcm9ncmFtKHRoaXMsIGksIGZuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm9ncmFtV3JhcHBlcjtcbiAgICB9LFxuXG4gICAgZGF0YTogZnVuY3Rpb24odmFsdWUsIGRlcHRoKSB7XG4gICAgICB3aGlsZSAodmFsdWUgJiYgZGVwdGgtLSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLl9wYXJlbnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSxcbiAgICBtZXJnZUlmTmVlZGVkOiBmdW5jdGlvbihwYXJhbSwgY29tbW9uKSB7XG4gICAgICBsZXQgb2JqID0gcGFyYW0gfHwgY29tbW9uO1xuXG4gICAgICBpZiAocGFyYW0gJiYgY29tbW9uICYmIHBhcmFtICE9PSBjb21tb24pIHtcbiAgICAgICAgb2JqID0gVXRpbHMuZXh0ZW5kKHt9LCBjb21tb24sIHBhcmFtKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LFxuICAgIC8vIEFuIGVtcHR5IG9iamVjdCB0byB1c2UgYXMgcmVwbGFjZW1lbnQgZm9yIG51bGwtY29udGV4dHNcbiAgICBudWxsQ29udGV4dDogT2JqZWN0LnNlYWwoe30pLFxuXG4gICAgbm9vcDogZW52LlZNLm5vb3AsXG4gICAgY29tcGlsZXJJbmZvOiB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJcbiAgfTtcblxuICBmdW5jdGlvbiByZXQoY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGRhdGEgPSBvcHRpb25zLmRhdGE7XG5cbiAgICByZXQuX3NldHVwKG9wdGlvbnMpO1xuICAgIGlmICghb3B0aW9ucy5wYXJ0aWFsICYmIHRlbXBsYXRlU3BlYy51c2VEYXRhKSB7XG4gICAgICBkYXRhID0gaW5pdERhdGEoY29udGV4dCwgZGF0YSk7XG4gICAgfVxuICAgIGxldCBkZXB0aHMsXG4gICAgICBibG9ja1BhcmFtcyA9IHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyA/IFtdIDogdW5kZWZpbmVkO1xuICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlRGVwdGhzKSB7XG4gICAgICBpZiAob3B0aW9ucy5kZXB0aHMpIHtcbiAgICAgICAgZGVwdGhzID1cbiAgICAgICAgICBjb250ZXh0ICE9IG9wdGlvbnMuZGVwdGhzWzBdXG4gICAgICAgICAgICA/IFtjb250ZXh0XS5jb25jYXQob3B0aW9ucy5kZXB0aHMpXG4gICAgICAgICAgICA6IG9wdGlvbnMuZGVwdGhzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVwdGhzID0gW2NvbnRleHRdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1haW4oY29udGV4dCAvKiwgb3B0aW9ucyovKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAnJyArXG4gICAgICAgIHRlbXBsYXRlU3BlYy5tYWluKFxuICAgICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIGNvbnRhaW5lci5oZWxwZXJzLFxuICAgICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgICAgIGRlcHRoc1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIG1haW4gPSBleGVjdXRlRGVjb3JhdG9ycyhcbiAgICAgIHRlbXBsYXRlU3BlYy5tYWluLFxuICAgICAgbWFpbixcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIG9wdGlvbnMuZGVwdGhzIHx8IFtdLFxuICAgICAgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zXG4gICAgKTtcbiAgICByZXR1cm4gbWFpbihjb250ZXh0LCBvcHRpb25zKTtcbiAgfVxuXG4gIHJldC5pc1RvcCA9IHRydWU7XG5cbiAgcmV0Ll9zZXR1cCA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCkge1xuICAgICAgbGV0IG1lcmdlZEhlbHBlcnMgPSBVdGlscy5leHRlbmQoe30sIGVudi5oZWxwZXJzLCBvcHRpb25zLmhlbHBlcnMpO1xuICAgICAgd3JhcEhlbHBlcnNUb1Bhc3NMb29rdXBQcm9wZXJ0eShtZXJnZWRIZWxwZXJzLCBjb250YWluZXIpO1xuICAgICAgY29udGFpbmVyLmhlbHBlcnMgPSBtZXJnZWRIZWxwZXJzO1xuXG4gICAgICBpZiAodGVtcGxhdGVTcGVjLnVzZVBhcnRpYWwpIHtcbiAgICAgICAgLy8gVXNlIG1lcmdlSWZOZWVkZWQgaGVyZSB0byBwcmV2ZW50IGNvbXBpbGluZyBnbG9iYWwgcGFydGlhbHMgbXVsdGlwbGUgdGltZXNcbiAgICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gY29udGFpbmVyLm1lcmdlSWZOZWVkZWQoXG4gICAgICAgICAgb3B0aW9ucy5wYXJ0aWFscyxcbiAgICAgICAgICBlbnYucGFydGlhbHNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlUGFydGlhbCB8fCB0ZW1wbGF0ZVNwZWMudXNlRGVjb3JhdG9ycykge1xuICAgICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IFV0aWxzLmV4dGVuZChcbiAgICAgICAgICB7fSxcbiAgICAgICAgICBlbnYuZGVjb3JhdG9ycyxcbiAgICAgICAgICBvcHRpb25zLmRlY29yYXRvcnNcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29udGFpbmVyLmhvb2tzID0ge307XG4gICAgICBjb250YWluZXIucHJvdG9BY2Nlc3NDb250cm9sID0gY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sKG9wdGlvbnMpO1xuXG4gICAgICBsZXQga2VlcEhlbHBlckluSGVscGVycyA9XG4gICAgICAgIG9wdGlvbnMuYWxsb3dDYWxsc1RvSGVscGVyTWlzc2luZyB8fFxuICAgICAgICB0ZW1wbGF0ZVdhc1ByZWNvbXBpbGVkV2l0aENvbXBpbGVyVjc7XG4gICAgICBtb3ZlSGVscGVyVG9Ib29rcyhjb250YWluZXIsICdoZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgICBtb3ZlSGVscGVyVG9Ib29rcyhjb250YWluZXIsICdibG9ja0hlbHBlck1pc3NpbmcnLCBrZWVwSGVscGVySW5IZWxwZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IG9wdGlvbnMucHJvdG9BY2Nlc3NDb250cm9sOyAvLyBpbnRlcm5hbCBvcHRpb25cbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gb3B0aW9ucy5oZWxwZXJzO1xuICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gb3B0aW9ucy5wYXJ0aWFscztcbiAgICAgIGNvbnRhaW5lci5kZWNvcmF0b3JzID0gb3B0aW9ucy5kZWNvcmF0b3JzO1xuICAgICAgY29udGFpbmVyLmhvb2tzID0gb3B0aW9ucy5ob29rcztcbiAgICB9XG4gIH07XG5cbiAgcmV0Ll9jaGlsZCA9IGZ1bmN0aW9uKGksIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZUJsb2NrUGFyYW1zICYmICFibG9ja1BhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIGJsb2NrIHBhcmFtcycpO1xuICAgIH1cbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocyAmJiAhZGVwdGhzKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdtdXN0IHBhc3MgcGFyZW50IGRlcHRocycpO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwUHJvZ3JhbShcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIGksXG4gICAgICB0ZW1wbGF0ZVNwZWNbaV0sXG4gICAgICBkYXRhLFxuICAgICAgMCxcbiAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgZGVwdGhzXG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBQcm9ncmFtKFxuICBjb250YWluZXIsXG4gIGksXG4gIGZuLFxuICBkYXRhLFxuICBkZWNsYXJlZEJsb2NrUGFyYW1zLFxuICBibG9ja1BhcmFtcyxcbiAgZGVwdGhzXG4pIHtcbiAgZnVuY3Rpb24gcHJvZyhjb250ZXh0LCBvcHRpb25zID0ge30pIHtcbiAgICBsZXQgY3VycmVudERlcHRocyA9IGRlcHRocztcbiAgICBpZiAoXG4gICAgICBkZXB0aHMgJiZcbiAgICAgIGNvbnRleHQgIT0gZGVwdGhzWzBdICYmXG4gICAgICAhKGNvbnRleHQgPT09IGNvbnRhaW5lci5udWxsQ29udGV4dCAmJiBkZXB0aHNbMF0gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICBjdXJyZW50RGVwdGhzID0gW2NvbnRleHRdLmNvbmNhdChkZXB0aHMpO1xuICAgIH1cblxuICAgIHJldHVybiBmbihcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIGNvbnRleHQsXG4gICAgICBjb250YWluZXIuaGVscGVycyxcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyxcbiAgICAgIG9wdGlvbnMuZGF0YSB8fCBkYXRhLFxuICAgICAgYmxvY2tQYXJhbXMgJiYgW29wdGlvbnMuYmxvY2tQYXJhbXNdLmNvbmNhdChibG9ja1BhcmFtcyksXG4gICAgICBjdXJyZW50RGVwdGhzXG4gICAgKTtcbiAgfVxuXG4gIHByb2cgPSBleGVjdXRlRGVjb3JhdG9ycyhmbiwgcHJvZywgY29udGFpbmVyLCBkZXB0aHMsIGRhdGEsIGJsb2NrUGFyYW1zKTtcblxuICBwcm9nLnByb2dyYW0gPSBpO1xuICBwcm9nLmRlcHRoID0gZGVwdGhzID8gZGVwdGhzLmxlbmd0aCA6IDA7XG4gIHByb2cuYmxvY2tQYXJhbXMgPSBkZWNsYXJlZEJsb2NrUGFyYW1zIHx8IDA7XG4gIHJldHVybiBwcm9nO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgY3VycmVudGx5IHBhcnQgb2YgdGhlIG9mZmljaWFsIEFQSSwgdGhlcmVmb3JlIGltcGxlbWVudGF0aW9uIGRldGFpbHMgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhcnRpYWwocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICBpZiAoIXBhcnRpYWwpIHtcbiAgICBpZiAob3B0aW9ucy5uYW1lID09PSAnQHBhcnRpYWwtYmxvY2snKSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ107XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV07XG4gICAgfVxuICB9IGVsc2UgaWYgKCFwYXJ0aWFsLmNhbGwgJiYgIW9wdGlvbnMubmFtZSkge1xuICAgIC8vIFRoaXMgaXMgYSBkeW5hbWljIHBhcnRpYWwgdGhhdCByZXR1cm5lZCBhIHN0cmluZ1xuICAgIG9wdGlvbnMubmFtZSA9IHBhcnRpYWw7XG4gICAgcGFydGlhbCA9IG9wdGlvbnMucGFydGlhbHNbcGFydGlhbF07XG4gIH1cbiAgcmV0dXJuIHBhcnRpYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZva2VQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgLy8gVXNlIHRoZSBjdXJyZW50IGNsb3N1cmUgY29udGV4dCB0byBzYXZlIHRoZSBwYXJ0aWFsLWJsb2NrIGlmIHRoaXMgcGFydGlhbFxuICBjb25zdCBjdXJyZW50UGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICBvcHRpb25zLnBhcnRpYWwgPSB0cnVlO1xuICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICBvcHRpb25zLmRhdGEuY29udGV4dFBhdGggPSBvcHRpb25zLmlkc1swXSB8fCBvcHRpb25zLmRhdGEuY29udGV4dFBhdGg7XG4gIH1cblxuICBsZXQgcGFydGlhbEJsb2NrO1xuICBpZiAob3B0aW9ucy5mbiAmJiBvcHRpb25zLmZuICE9PSBub29wKSB7XG4gICAgb3B0aW9ucy5kYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAvLyBXcmFwcGVyIGZ1bmN0aW9uIHRvIGdldCBhY2Nlc3MgdG8gY3VycmVudFBhcnRpYWxCbG9jayBmcm9tIHRoZSBjbG9zdXJlXG4gICAgbGV0IGZuID0gb3B0aW9ucy5mbjtcbiAgICBwYXJ0aWFsQmxvY2sgPSBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGZ1bmN0aW9uIHBhcnRpYWxCbG9ja1dyYXBwZXIoXG4gICAgICBjb250ZXh0LFxuICAgICAgb3B0aW9ucyA9IHt9XG4gICAgKSB7XG4gICAgICAvLyBSZXN0b3JlIHRoZSBwYXJ0aWFsLWJsb2NrIGZyb20gdGhlIGNsb3N1cmUgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJsb2NrXG4gICAgICAvLyBpLmUuIHRoZSBwYXJ0IGluc2lkZSB0aGUgYmxvY2sgb2YgdGhlIHBhcnRpYWwgY2FsbC5cbiAgICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgICBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGN1cnJlbnRQYXJ0aWFsQmxvY2s7XG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBpZiAoZm4ucGFydGlhbHMpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHMgPSBVdGlscy5leHRlbmQoe30sIG9wdGlvbnMucGFydGlhbHMsIGZuLnBhcnRpYWxzKTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkICYmIHBhcnRpYWxCbG9jaykge1xuICAgIHBhcnRpYWwgPSBwYXJ0aWFsQmxvY2s7XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVGhlIHBhcnRpYWwgJyArIG9wdGlvbnMubmFtZSArICcgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gIH0gZWxzZSBpZiAocGFydGlhbCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHBhcnRpYWwoY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKSB7XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gaW5pdERhdGEoY29udGV4dCwgZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgISgncm9vdCcgaW4gZGF0YSkpIHtcbiAgICBkYXRhID0gZGF0YSA/IGNyZWF0ZUZyYW1lKGRhdGEpIDoge307XG4gICAgZGF0YS5yb290ID0gY29udGV4dDtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcykge1xuICBpZiAoZm4uZGVjb3JhdG9yKSB7XG4gICAgbGV0IHByb3BzID0ge307XG4gICAgcHJvZyA9IGZuLmRlY29yYXRvcihcbiAgICAgIHByb2csXG4gICAgICBwcm9wcyxcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIGRlcHRocyAmJiBkZXB0aHNbMF0sXG4gICAgICBkYXRhLFxuICAgICAgYmxvY2tQYXJhbXMsXG4gICAgICBkZXB0aHNcbiAgICApO1xuICAgIFV0aWxzLmV4dGVuZChwcm9nLCBwcm9wcyk7XG4gIH1cbiAgcmV0dXJuIHByb2c7XG59XG5cbmZ1bmN0aW9uIHdyYXBIZWxwZXJzVG9QYXNzTG9va3VwUHJvcGVydHkobWVyZ2VkSGVscGVycywgY29udGFpbmVyKSB7XG4gIE9iamVjdC5rZXlzKG1lcmdlZEhlbHBlcnMpLmZvckVhY2goaGVscGVyTmFtZSA9PiB7XG4gICAgbGV0IGhlbHBlciA9IG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV07XG4gICAgbWVyZ2VkSGVscGVyc1toZWxwZXJOYW1lXSA9IHBhc3NMb29rdXBQcm9wZXJ0eU9wdGlvbihoZWxwZXIsIGNvbnRhaW5lcik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpIHtcbiAgY29uc3QgbG9va3VwUHJvcGVydHkgPSBjb250YWluZXIubG9va3VwUHJvcGVydHk7XG4gIHJldHVybiB3cmFwSGVscGVyKGhlbHBlciwgb3B0aW9ucyA9PiB7XG4gICAgcmV0dXJuIFV0aWxzLmV4dGVuZCh7IGxvb2t1cFByb3BlcnR5IH0sIG9wdGlvbnMpO1xuICB9KTtcbn1cbiJdfQ==\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n  this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n  return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#x27;',\n  '`': '&#x60;',\n  '=': '&#x3D;'\n};\n\nvar badChars = /[&<>\"'`=]/g,\n    possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n  return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n  for (var i = 1; i < arguments.length; i++) {\n    for (var key in arguments[i]) {\n      if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n        obj[key] = arguments[i][key];\n      }\n    }\n  }\n\n  return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n  return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n  exports.isFunction = isFunction = function (value) {\n    return typeof value === 'function' && toString.call(value) === '[object Function]';\n  };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n  return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n  for (var i = 0, len = array.length; i < len; i++) {\n    if (array[i] === value) {\n      return i;\n    }\n  }\n  return -1;\n}\n\nfunction escapeExpression(string) {\n  if (typeof string !== 'string') {\n    // don't escape SafeStrings, since they're already safe\n    if (string && string.toHTML) {\n      return string.toHTML();\n    } else if (string == null) {\n      return '';\n    } else if (!string) {\n      return string + '';\n    }\n\n    // Force a string conversion as this will be done by the append regardless and\n    // the regex test will do this transparently behind the scenes, causing issues if\n    // an object's to string has escaped characters in it.\n    string = '' + string;\n  }\n\n  if (!possible.test(string)) {\n    return string;\n  }\n  return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n  if (!value && value !== 0) {\n    return true;\n  } else if (isArray(value) && value.length === 0) {\n    return true;\n  } else {\n    return false;\n  }\n}\n\nfunction createFrame(object) {\n  var frame = extend({}, object);\n  frame._parent = object;\n  return frame;\n}\n\nfunction blockParams(params, ids) {\n  params.path = ids;\n  return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n  return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICApO1xuICB9O1xufVxuZXhwb3J0IHsgaXNGdW5jdGlvbiB9O1xuLyogZXNsaW50LWVuYWJsZSBmdW5jLXN0eWxlICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgaXNBcnJheSA9XG4gIEFycmF5LmlzQXJyYXkgfHxcbiAgZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuLy8gT2xkZXIgSUUgdmVyc2lvbnMgZG8gbm90IGRpcmVjdGx5IHN1cHBvcnQgaW5kZXhPZiBzbyB3ZSBtdXN0IGltcGxlbWVudCBvdXIgb3duLCBzYWRseS5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGJhZENoYXJzLCBlc2NhcGVDaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJhbWUob2JqZWN0KSB7XG4gIGxldCBmcmFtZSA9IGV4dGVuZCh7fSwgb2JqZWN0KTtcbiAgZnJhbWUuX3BhcmVudCA9IG9iamVjdDtcbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tQYXJhbXMocGFyYW1zLCBpZHMpIHtcbiAgcGFyYW1zLnBhdGggPSBpZHM7XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4iXX0=\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => module['default'] :\n\t\t() => module;\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)","export class SearchAPI {\r\n    constructor(options) {\r\n        // Default values for Destination AEC\r\n        let defaults = {\r\n            dataID: \"productsGatewayContentData\",\r\n            local: \"\"\r\n        };\r\n\r\n        this.settings = Object.assign(defaults, options);\r\n        this.cardResultsMapping = [];\r\n        this.setLocal();\r\n\r\n    }\r\n\r\n    setLocal(){\r\n        if(this.settings.local == \"\"){\r\n            this.settings.local = document.documentElement.lang.replace(\"-\", \"_\");\r\n        }\r\n    }\r\n\r\n    setCurrency(){\r\n        // Verify all exists for pricing information\r\n        window.adsk = window.adsk || {};\r\n        window.adsk.api = window.adsk.api || {};\r\n        window.adsk.api.pds = window.adsk.api.pds || {};\r\n        window.adsk.api.pds.data = window.adsk.api.pds.data || {};\r\n\r\n        // no currency by default\r\n        this.settings.currency = false;\r\n\r\n        // Identify the currencies available for this geo\r\n        var currencies = [];\r\n        for(var currency in window.adsk.api.pds.data) {\r\n            currencies.push(currency);\r\n        }\r\n        // Identify the currency applicable here\r\n        if(currencies.length > 0){\r\n            if(currencies.length == 1){\r\n                this.settings.currency = currencies[0];\r\n            }else{\r\n                // Check if the user ever selected another currency from the mfe-buy-component\r\n                if(localStorage.getItem(\"currencyCode\")){\r\n                    // Currency format in the local storage looks like this : \"cop|co\" \"currency|country\"\r\n                    this.settings.currency = localStorage.getItem(\"currencyCode\").split(\"|\")[0].toUpperCase();\r\n                }else{\r\n                    // Not selected, we make sure USD is present and selected it as LATAM presently default to USD\r\n                    if(currencies.join(\",\").indexOf(\"USD\") != -1){\r\n                        this.settings.currency = \"USD\";\r\n                    }else{\r\n                        // All else fails we select the first currency returned...\r\n                        this.settings.currency = currencies[0];\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        // If the currency doesn't have price or is not found we remove it\r\n        if(!window.adsk.api.pds.data[this.settings.currency]){\r\n            this.settings.currency = false;\r\n        }\r\n    }\r\n\r\n\r\n    // Previous implementation\r\n    // We remove the direct PAth as we are only ready from the current page\r\n    // load(directpath, onSuccess,onFail){\r\n    load(callback, dataID) {\r\n        let _dataID = this.settings.dataID;\r\n        if (dataID) {\r\n            _dataID = dataID;\r\n        }\r\n\r\n        // Verify all exists\r\n        window.adsk = window.adsk || {};\r\n        window.adsk.contenthub = window.adsk.contenthub || {};\r\n\r\n        // Validate data associated to key actually exists\r\n        if (window.adsk.contenthub[_dataID]) {\r\n            this.data = this.parseCardInfo(window.adsk.contenthub[_dataID]);\r\n        } else {\r\n            console.debug(\"SearchAPI - Error - Data not found for key \" + _dataID);\r\n        }\r\n\r\n        // Once the data is converted and aggretated (price + content) we launch the callback function\r\n        if (typeof callback === 'function') {\r\n            callback(this.data);\r\n        }\r\n\r\n    }\r\n\r\n    //TODO : Text search is removed for now\r\n            // This is emulating an AND query for all the tags passed in the function\r\n    textSearch(terms, tags, callback){\r\n\r\n        if(!this.data){\r\n            this.load();\r\n            //return;\r\n        }\r\n\r\n        let results = this.filterResultsWithTag(tags);\r\n\r\n        // Extra verifications to look for the terms search in the text field\r\n        if(Array.isArray(results.content) && terms != \"\"){\r\n                let filteredResults = [];\r\n                // Loop through the results\r\n                results.content.forEach(function(result){\r\n                    // Create a string of all tags joined to perform search faster\r\n                    if(result[\"cardData\"]){\r\n                        if(result[\"cardData\"][\"product-name\"]){\r\n                            let searchable = result[\"cardData\"][\"product-name\"];\r\n                            // Check if the current result have this tag\r\n                            if(searchable.indexOf(terms) != -1){\r\n                                filteredResults.push(result);\r\n                            }\r\n                        }\r\n                    }\r\n                });\r\n\r\n                results.content = filteredResults;\r\n                results.results = filteredResults.length;\r\n        }\r\n\r\n        // Once the data is converted and aggretated (price + content) we launch the callback function\r\n        if (typeof callback === 'function') {\r\n            callback(results);\r\n        }\r\n    }\r\n\r\n    search(tags, callback) {\r\n\r\n        if(!this.data){\r\n            this.load();\r\n            //return;\r\n        }\r\n        \r\n        let results = this.filterResultsWithTag(tags);\r\n\r\n        // Once the data is converted and aggretated (price + content) we launch the callback function\r\n        if (typeof callback === 'function') {\r\n            callback(results);\r\n        }\r\n    }\r\n\r\n    filterResultsWithTag(tags){\r\n        let results = {};\r\n        let filteredResults = [];\r\n\r\n        if(Array.isArray(this.data.content) && Array.isArray(tags)){\r\n            if(tags.length >0){\r\n                // Loop through the results\r\n                var resultsLocations = {};\r\n                var tagsFound = 0;\r\n                this.data.content.forEach(function(result){\r\n\r\n                    tagsFound = 0;\r\n                    // Loop all the tags in the query\r\n                    tags.forEach(function(tag){\r\n                        if(Array.isArray(result[\"aem-tags\"])){\r\n                            // Create a string of all tags joined to perform search faster\r\n                            let tagsSearchable = result[\"aem-tags\"].join(\",\")+\",\";\r\n                            // Check if the current result have this tag\r\n                            if(tagsSearchable.indexOf(tag+',') != -1){\r\n                                // Tag found\r\n                                tagsFound++;\r\n                            }\r\n                        }\r\n                    });\r\n\r\n                    // If all tags were found AND this was not found before\r\n                    if(tagsFound == tags.length && !(resultsLocations[result.location.replace(\"/\", \"--\")])){\r\n                        filteredResults.push(result);\r\n                        resultsLocations[result.location.replace(\"/\", \"--\")] = true;\r\n                    }\r\n                });\r\n\r\n                results.content = filteredResults;\r\n                results.results = filteredResults.length;\r\n            }else{\r\n                this.data.content.forEach(function(result){\r\n                    filteredResults.push(result);\r\n                });\r\n                results.content = filteredResults;\r\n                results.results = filteredResults.length;\r\n            }\r\n        }\r\n        return results;\r\n    }\r\n\r\n\r\n    setAnalyticsData(searchTerm, searchFilters, numberOfResults) {\r\n\r\n        if(window.digitalData){\r\n            window.digitalData.search = {};\r\n            window.digitalData.search[\"searchTerm\"] = searchTerm;\r\n            window.digitalData.search[\"searchFilters\"] = {};\r\n            for(var i=0; i<searchFilters.length;i++){\r\n                window.digitalData.search[\"searchFilters\"][\"filter\"+i] = searchFilters[i];\r\n            }\r\n            window.digitalData.search[\"numberOfResults\"] = numberOfResults;\r\n        }else{\r\n            this.searchlog(\"Error - window.digitalData not defined\");\r\n        }\r\n\r\n\r\n        try{\r\n            analytics.context.resolveWait('search-results');\r\n        }catch(e){\r\n            this.searchlog(\"Error : analytics.context not defined\");\r\n        }\r\n    }\r\n\r\n\r\n    searchlog(msg) {\r\n        //console.log(\"Search API log : \"+msg);\r\n    }\r\n\r\n\r\n    /**\r\n     * Add the card object to each results\r\n     * @param  {object} obj - delivered by search api more \r\n     * info on the structure here:\r\n     * https://wiki.autodesk.com/pages/viewpage.action?pageId=310858660\r\n     * @return {object} card - used to render a card\r\n     */\r\n    parseCardInfo(data) {\r\n\r\n        // Verify all exists for pricing information\r\n        window.adsk = window.adsk || {};\r\n        window.adsk.api = window.adsk.api || {};\r\n        window.adsk.api.pds = window.adsk.api.pds || {};\r\n        window.adsk.api.pds.data = window.adsk.api.pds.data || {};\r\n\r\n        // Identify the correct currency\r\n        this.setCurrency();\r\n\r\n        let result;\r\n        for (let x = 0; x < data.results; x++) {\r\n            result = data.content[x];\r\n\r\n            // Tranform the supplemental-data format to an object-key array\r\n            if (Array.isArray(result[\"supplemental-data\"]) == 1) {\r\n                result.cardData = {};\r\n                for (let y = 0; y < result[\"supplemental-data\"].length; y++) {\r\n                    if (result[\"supplemental-data\"][y][\"value\"] != \"\" || result[\"supplemental-data\"][y][\"value\"] === false) {\r\n                        result.cardData[result[\"supplemental-data\"][y][\"key\"]] = result[\"supplemental-data\"][y][\"value\"];\r\n                    }\r\n                }\r\n            }\r\n\r\n            // Add the Pricing information if applicable\r\n            if(this.settings.currency){\r\n                if(result.cardData[\"plc\"]){\r\n                    // Check if we have a match for the PLC in the content hub info\r\n                    if(window.adsk.api.pds.data[this.settings.currency][result.cardData[\"plc\"]]){\r\n                        result[\"pds-info\"] = window.adsk.api.pds.data[this.settings.currency][result.cardData[\"plc\"]];\r\n                    }\r\n                }\r\n            }\r\n\r\n            // TODO : Test this mapping on local sites with language folders\r\n            // save index to mapping object\r\n            if (window.location.href.indexOf(\"https://www.autodesk\") != -1) {\r\n                if (result.location.indexOf(\"/content/autodesk/europe/fr_CH/\") != -1) {\r\n                    result.location = result.location.replace(\"/content/autodesk/europe/fr_CH/\", \"/fr/\");\r\n                }\r\n                if (result.location.indexOf(\"/content/autodesk/europe/de_CH/\") != -1) {\r\n                    result.location = result.location.replace(\"/content/autodesk/europe/de_CH/\", \"/de/\");\r\n                }\r\n                if (result.location.indexOf(\"/content/autodesk/europe/it_CH/\") != -1) {\r\n                    result.location = result.location.replace(\"/content/autodesk/europe/it_CH/\", \"/it/\");\r\n                }\r\n            }\r\n\r\n            // TODO : Do we still needs this?\r\n            // Saves the result by location for quick retrieval\r\n            this.cardResultsMapping[result.location.toLowerCase()] = x;\r\n        }\r\n        return data\r\n    }\r\n\r\n    /**\r\n     * Combine language and country to form the locale\r\n     * @returns {string}\r\n     */\r\n    getLocale() {\r\n        return this.language + '_' + this.country;\r\n    }\r\n}","\r\nexport class WPUtils {\r\n\r\n    /**\r\n     * Walk up the DOM to find a parent having a given class name.\r\n     * @param elem\r\n     * @param clsName\r\n     * @returns {boolean}\r\n     */\r\n    parentsHaveClass(elem, clsName) {\r\n        if(elem == null) {\r\n            return false; // exit condition if the element is null (reached the root node)\r\n        }\r\n        if(elem.classList && elem.classList.contains(clsName)) {\r\n            return true; // if we have a match, we return true and terminate the recursion\r\n        }\r\n        return this.parentsHaveClass(elem.parentElement, clsName);\r\n    }\r\n    \r\n    /**\r\n     * Check if the component is being edited in an RTE in AEM\r\n     */\r\n    inAemEdit() {\r\n        if(this.parentsHaveClass(this, 'aem-AuthorLayer-Edit')) {\r\n            if(this.parentsHaveClass(this, 'is-initializing')) {\r\n                return true;\r\n\r\n            } else if(this.parentsHaveClass(this, 'is-edited') ||\r\n                (this.parentsHaveClass(this, 'rte-editor') && this.parentsHaveClass(this, ' rte-fullscreen'))) {\r\n                this.innerHTML = '';\r\n                return true;\r\n            }\r\n        }\r\n\r\n        return false;\r\n    }\r\n}","import {\r\n    SearchAPI\r\n} from \"../search-api/search-api.js\";\r\nimport compareCardTemplate from \"./card-compare.hbs\";\r\nimport relatedCardTemplate from \"./card-related-products.hbs\";\r\nimport quickCompareCardTemplate from \"./card-quick-compare.hbs\";\r\nimport {\r\n    WPUtils\r\n} from \"../wp-utils.js\";\r\n\r\n(function () {\r\n\r\n    const wpUtils = new WPUtils();\r\n    // TYPES OF CARD PANEL\r\n    // VALUES EXPECTED FROM PARAMETERS\r\n    const CARD_TEMPLATES = {\r\n        COMPARE: \"compare\",\r\n        RELATED: \"related\",\r\n        COMPARE_IN_CONTEXT: \"compare-in-context\"\r\n    }\r\n    let searchAPI; // Used to load the cards\r\n    let compareCards = [];\r\n    let compareBlocks = []; // Used when the panel is a compare panel\r\n    let cardDisplayResize = [];\r\n\r\n\r\n\r\n    function editModeCheck() {\r\n        if (wpUtils.inAemEdit()) {\r\n            return;\r\n        }\r\n        init();\r\n    }\r\n\r\n    function init() {\r\n        searchAPI = new SearchAPI();\r\n\r\n        let productCardType = \"\"; //data-compare-card-data-id\r\n        // Expected parameters that points to the Data \r\n        // data-compare-card-data-id=CompareDataSet1 data-compare-card-layout=related\r\n        let compareSets = document.querySelectorAll(\"[data-compare-card-data-id]:not(.data-compare-card-loaded)\");\r\n\r\n        // For each instances of the patterns \r\n        if (compareSets.length > 0) {\r\n            compareSets.forEach(dataSet => {\r\n\r\n                // Retrieve the DATA ID\r\n                if (dataSet.getAttribute(\"data-compare-card-data-id\")) {\r\n                    let layout = dataSet.getAttribute(\"data-compare-card-layout\") ? dataSet.getAttribute(\"data-compare-card-layout\") : \"compare\";\r\n                    let template = \"\";\r\n\r\n                    switch (layout) {\r\n                        case CARD_TEMPLATES.COMPARE_IN_CONTEXT:\r\n                            template = CARD_TEMPLATES.COMPARE_IN_CONTEXT;\r\n                            break;\r\n\r\n                        case CARD_TEMPLATES.RELATED:\r\n                            template = CARD_TEMPLATES.RELATED;\r\n                            break;\r\n\r\n                            //Compare is default\r\n                        case CARD_TEMPLATES.COMPARE:\r\n                            template = CARD_TEMPLATES.COMPARE;\r\n                        default:\r\n                            break;\r\n                    }\r\n\r\n\r\n                    searchAPI.settings.dataID = dataSet.getAttribute(\"data-compare-card-data-id\");\r\n                    searchAPI.load(function (data) {\r\n                        // Data is now all available in searchApi.cardResultsMapping\r\n                        // console.log(searchAPI.cardResultsMapping);\r\n                        if (!searchAPI.cardResultsMapping) return;\r\n\r\n                        let cardsContainers = dataSet.querySelectorAll(\"[data-product-card-plc]\");\r\n                        if (!cardsContainers) return;\r\n                        if (cardsContainers.length == 0) return;\r\n                        cardsContainers.forEach(function (card) {\r\n                            let cardToLoad = card.getAttribute(\"data-product-card-plc\");\r\n                            if (!searchAPI.cardResultsMapping.hasOwnProperty(cardToLoad)) return;\r\n                            let cardRef = searchAPI.cardResultsMapping[cardToLoad];\r\n                            let cardHtml = document.createElement(\"div\");\r\n\r\n                            if (template == CARD_TEMPLATES.COMPARE_IN_CONTEXT) {\r\n\r\n                                cardHtml.innerHTML = quickCompareCardTemplate(preRenderData(data.content[cardRef]));\r\n                            } else if (template == CARD_TEMPLATES.RELATED) {\r\n                                cardHtml.innerHTML = relatedCardTemplate(data.content[cardRef]);\r\n                            } else if (template == CARD_TEMPLATES.COMPARE) {\r\n                                cardHtml.innerHTML = compareCardTemplate(data.content[cardRef]);\r\n                            }\r\n                            card.append(cardHtml);\r\n                        });\r\n\r\n                        if (template == CARD_TEMPLATES.COMPARE_IN_CONTEXT) {\r\n                            quickCompareProductCardsLoaded(dataSet);\r\n                        } else if (template == CARD_TEMPLATES.RELATED) {\r\n                            productCardsLoaded(dataSet);\r\n                        } else if (template == CARD_TEMPLATES.COMPARE) {\r\n                            CompareProductCardsLoaded(dataSet)\r\n                        }\r\n\r\n                        dictionaryStringReplacement(dataSet);\r\n\r\n                        cardDisplayResize = document.querySelectorAll('.wp-cards-display');\r\n\r\n                        setTimeout(function () {\r\n                            resizeProductCards()\r\n                        }, 250);\r\n                        setTimeout(function () {\r\n                            resizeProductCards()\r\n                        }, 500);\r\n\r\n                        dataSet.classList.add(\"data-compare-card-loaded\");\r\n\r\n                    })\r\n                }\r\n            });\r\n        }\r\n\r\n        window.addEventListener(\"resize\", function () {\r\n            resizeProductCards();\r\n        })\r\n\r\n    }\r\n\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    // RELATED PRODUCTS PATTERN\r\n    //-----------------------------------------------------------------\r\n\r\n    function productCardsLoaded(cardPattern) {\r\n\r\n        cardPattern.style.opacity = 1;\r\n\r\n        // Force a resize\r\n        resizeProductCards();\r\n\r\n    }\r\n\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    // QUICK COMPARE PATTERN\r\n    //-----------------------------------------------------------------\r\n\r\n    function quickCompareProductCardsLoaded(panel) {\r\n\r\n        panel.style.opacity = 1;\r\n\r\n        panel.querySelectorAll(\".compare-card\").forEach(function (element) {\r\n            // Remove \"Platform: \" from the content of the page\r\n            var noPlatformDuplicate = element.querySelector('span.platform-text');\r\n            noPlatformDuplicate.innerHTML = noPlatformDuplicate.innerHTML.replace('Platform: ', '');\r\n            noPlatformDuplicate.innerHTML = noPlatformDuplicate.innerHTML.replace(\"[Windows]\", '<i class=\"icon-windows wd-font-19 wd-color-gray-75 wd-vam\"><svg class=\"wd-icon\"><use xlink:href=\"/content/dam/autodesk/icons.svg#icon-svg-windows\"></use></svg></i>');\r\n            noPlatformDuplicate.innerHTML = noPlatformDuplicate.innerHTML.replace(\"[Mac]\", '<i class=\"icon-mac wd-font-19 wd-color-gray-75 wd-vam\"><svg class=\"wd-icon\"><use xlink:href=\"/content/dam/autodesk/icons.svg#icon-svg-mac\"></use></svg></i>');\r\n            var noPlatformDuplicate = element.querySelector('span.platform-text');\r\n\r\n            // unwrap\r\n            element.querySelectorAll(\".wp-compare-use-for .wp-compare-use-for\").forEach(function (element) {\r\n                element.outerHTML = element.innerHTML;\r\n            });\r\n            element.querySelectorAll(\"ul .wp-compare-use-for\").forEach(function (element) {\r\n                element.outerHTML = element.innerHTML;\r\n            });\r\n            element.querySelectorAll(\"ul.wd-pl-20.wd-mt-8.wd-mb-0 .wp-compare-use-for\").forEach(function (element) {\r\n                element.outerHTML = element.innerHTML;\r\n            });\r\n        });\r\n\r\n        compareBlocks = panel.querySelectorAll(\".compare-card .compare-block\");\r\n        compareCards = panel.querySelectorAll(\".compare-card\");\r\n\r\n        // Listen for product-mfe loaded to check for resize\r\n        var productMFEs = document.querySelectorAll('.compare-card product-price');\r\n       \r\n        var observer = new MutationObserver(function(mutations) {\r\n            mutations.forEach(function(mutation) {\r\n                // looking for status=\"done\"\r\n                if (mutation.type == \"attributes\") {\r\n                    if(mutation.attributeName == \"status\"){\r\n                        // resize when price is loaded\r\n                        equalizeBlocks();\r\n                    }\r\n                }\r\n            });\r\n        });\r\n\r\n        productMFEs.forEach(function (element) {\r\n            observer.observe(element, {\r\n                attributes: true, //configure it to listen to attribute changes,\r\n                attributeFilter: ['status']\r\n            });\r\n        });\r\n\r\n\r\n    }\r\n\r\n\r\n    function equalizeBlocks() {\r\n        var qtyCards = compareCards.length;\r\n        var qtyBlocks = compareBlocks.length / qtyCards;\r\n\r\n        compareBlocks.forEach(function (element) {\r\n            element.style.height = \"auto\";\r\n        });\r\n\r\n\r\n        if (window.matchMedia('(min-width: 40.063em)').matches) {\r\n            for (let x = 1; x <= qtyBlocks; x++) {\r\n                var allBlocks = [];\r\n                compareCards.forEach(function (card) {\r\n                    card.querySelectorAll('.compare-block:nth-of-type(' + x + ')').forEach(function (element) {\r\n                        allBlocks.push(element.offsetHeight);\r\n                    });\r\n                });\r\n\r\n                allBlocks.sort(sortNumber);\r\n\r\n                compareCards.forEach(function (card) {\r\n                    card.querySelectorAll('.compare-block:nth-of-type(' + x + ')').forEach(function (element) {\r\n                        element.style.height = allBlocks[allBlocks.length - 1] + \"px\";\r\n                    });\r\n                });\r\n\r\n            }\r\n        }\r\n    }\r\n\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    // DICTIONNARY REPLACEMENT\r\n    //-----------------------------------------------------------------\r\n    function dictionaryStringReplacement(panel) {\r\n        if (panel) {\r\n            let stringsToBeReplaced = document.querySelectorAll(\"[data-wpd-string-key]\");\r\n            stringsToBeReplaced.forEach(function (string) {\r\n                document.querySelectorAll(\"[data-wpd-string=\" + string.getAttribute(\"data-wpd-string-key\") + \"]\").forEach(function (element) {\r\n                    element.innerHTML = string.innerHTML;\r\n                });\r\n            });\r\n        }\r\n    }\r\n\r\n\r\n\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    // RESIZE FOR BOTH COMPARE AND RELATED PATTERNS\r\n    //-----------------------------------------------------------------\r\n\r\n    /**\r\n     * \r\n     * Resizing the window -> resize the cards\r\n     * \r\n     */\r\n    function resizeProductCards() {\r\n        \r\n        // Targeting all compare/related panels\r\n        if (cardDisplayResize.length > 0) {\r\n            document.querySelectorAll('.wp-cards-display').forEach(function (panel) {\r\n                var cardItems = [];\r\n                // Reset all height to their regular height\r\n                panel.querySelectorAll('.wp-product-card').forEach(function (elem) {\r\n                    cardItems.push(elem);\r\n                    elem.style.height = \"auto\";\r\n                });\r\n                // When there is a highlighted box\r\n                if (window.matchMedia('(min-width: 50em)').matches && panel.classList.contains(\"wp-products-highlight\")) {\r\n\r\n                    let cardHeight = [];\r\n                    // Resetting all p\r\n                    panel.querySelectorAll('div[data-product-card-plc]:not([data-product-card-plc*=\"product-data/aec-collection\"]):not([data-product-card-plc*=\"product-data/pdm-collection\"]):not([data-product-card-plc*=\"product-data/me-collection\"]) .wp-product-card .wp-product-desc p').forEach(function (p) {\r\n                        p.style.height = \"auto\";\r\n                        cardHeight.push(p.offsetHeight);\r\n                    });\r\n\r\n                    // Sorting by height\r\n                    cardHeight.sort(sortNumber);\r\n\r\n                    // Setting the biggest height for all\r\n                    panel.querySelectorAll('div[data-product-card-plc]:not([data-product-card-plc*=\"product-data/aec-collection\"]):not([data-product-card-plc*=\"product-data/pdm-collection\"]):not([data-product-card-plc*=\"product-data/me-collection\"]) .wp-product-card .wp-product-desc p').forEach(function (p) {\r\n                        p.style.height = cardHeight[cardHeight.length - 1] + \"px\";\r\n                    });\r\n\r\n                    // Set the highlight div to be double the height\r\n                    var doubleHeight = panel.querySelectorAll('ul.wp-box-items > li:first-of-type > div:first-of-type')[0].offsetHeight * 2 + 10;\r\n                    panel.querySelectorAll('div[data-product-card-plc*=\"product-data/aec-collection\"] .wp-product-card, div[data-product-card-plc*=\"product-data/pdm-collection\"] .wp-product-card, div[data-product-card-plc*=\"product-data/me-collection\"] .wp-product-card').forEach(function (card) {\r\n                        card.style.height = doubleHeight + \"px\";\r\n                    })\r\n\r\n                    //Reset the paragraph in case it was set in a lower resolution before\r\n                    panel.querySelectorAll('[data-product-card-plc*=\"product-data/aec-collection\"] .wp-product-card .wp-product-desc p, [data-product-card-plc*=\"product-data/pdm-collection\"] .wp-product-card .wp-product-desc p, [data-product-card-plc*=\"product-data/me-collection\"] .wp-product-card .wp-product-desc p').forEach(function (p) {\r\n                        p.style.height = \"auto\";\r\n                    });\r\n                } else if (window.matchMedia('(min-width: 40.063em)').matches) {\r\n                    let cardHeight = [];\r\n\r\n                    // Resetting all p\r\n                    panel.querySelectorAll('.wp-product-card .wp-product-desc p').forEach(function (p) {\r\n                        p.style.height = \"auto\";\r\n                        cardHeight.push(p.offsetHeight);\r\n                    });\r\n                    // Sorting by height\r\n                    cardHeight.sort(sortNumber);\r\n                    let cardItemsMax = cardHeight[cardHeight.length - 1];\r\n                    // Setting the biggest height for all\r\n                    panel.querySelectorAll('.wp-product-card .wp-product-desc p').forEach(function (p) {\r\n                        p.style.height = cardItemsMax + \"px\";\r\n                    })\r\n\r\n                } else {\r\n\r\n                    // Resetting all p\r\n                    panel.querySelectorAll('.wp-product-card .wp-product-desc p').forEach(function (p) {\r\n                        p.style.height = \"auto\";\r\n                    })\r\n                }\r\n\r\n            })\r\n        } else if (compareBlocks.length > 0) {\r\n            equalizeBlocks();\r\n        }\r\n    }\r\n\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    // COMPARE PATTERN\r\n    //-----------------------------------------------------------------\r\n\r\n    function CompareProductCardsLoaded(panel) {\r\n\r\n        panel.style.opacity = 1;\r\n        let cards = panel.querySelectorAll(\"div[data-product-card-plc] .wp-product-card\");\r\n\r\n        if (cards.length > 0) {\r\n            cards[0].classList.add(\"default\")\r\n            cards[0].querySelectorAll('input[type=\"checkbox\"]').forEach(function (elem) {\r\n                elem.setAttribute('checked', !0);\r\n            })\r\n            cards.forEach(function (card) {\r\n                card.querySelectorAll('input[type=\"checkbox\"]').forEach(function (elem) {\r\n                    // Save the reference to the cards to be used in each click\r\n                    elem.refToCard = card;\r\n                    elem.refToPanel = panel;\r\n                    elem.addEventListener(\"click\", function (e) {\r\n                        // elem.prototype.refToCard\r\n                        if (elem.refToCard) {\r\n                            if (elem.refToCard.classList.contains('default')) {\r\n                                e.preventDefault(elem.refToPanel)\r\n                            } else {\r\n                                if (elem.refToCard.classList.contains('selected')) {\r\n                                    elem.refToCard.classList.remove('selected');\r\n                                    checkSelection(elem.refToPanel)\r\n                                } else {\r\n                                    if (productSelection.length < 3) {\r\n                                        elem.refToCard.classList.add('selected');\r\n                                        checkSelection(elem.refToPanel)\r\n                                    } else {\r\n                                        e.preventDefault()\r\n                                    }\r\n                                }\r\n                            }\r\n                        }\r\n                    })\r\n                })\r\n            });\r\n        }\r\n\r\n        // panel.querySelectorAll('.wd-button#compare-products-cta').forEach(function (link) {\r\n        //     // Save the reference to the cards to be used in each click\r\n        //     link.addEventListener(\"click\", function (e) {\r\n        //         e.preventDefault();\r\n        //         if (!link.classList.contains('wp-disabled')) {\r\n        //             window.open(compareUrl, '_blank')\r\n        //         }\r\n        //     });\r\n        // });\r\n    }\r\n\r\n    /**\r\n     * \r\n     * When you click on a compare checkbox\r\n     * \r\n     */\r\n    // Save the base url to be used for compare\r\n    document.querySelectorAll(\".wd-button#compare-products-cta\").forEach(function (compareLink) {\r\n        compareLink.setAttribute(\"data-base-url\", compareLink.getAttribute(\"data-lightbox-link\"));\r\n    });\r\n    var productSelection = [];\r\n    var compareUrl = \"\";\r\n\r\n    function checkSelection(panel) {\r\n        productSelection.length = 0;\r\n        compareUrl = \"\";\r\n        var compareTracking = 'compare:';\r\n        panel.querySelectorAll('div[data-product-card-plc] .wp-product-card .wp-compare-checkbox input[type=\"checkbox\"]:checked').forEach(function (checkbox) {\r\n            // Check if the referenced to the card has been saved before (should have)\r\n            let path = checkbox.value;\r\n            if (path) {\r\n                if(path.indexOf('product-data/') != -1){\r\n                    productSelection.push(path.split('product-data/')[1]);\r\n                }else{\r\n                    productSelection.push(path);\r\n                }\r\n            }\r\n        });\r\n\r\n      \r\n        for (let x = 0; x < productSelection.length; x++) {\r\n            compareUrl = compareUrl + '&compare=' + productSelection[x];\r\n            compareTracking = compareTracking + ' ' + productSelection[x]\r\n        }\r\n        // Setting the values to the product cards\r\n        document.querySelectorAll(\".wd-button#compare-products-cta\").forEach(function (compareLink) {\r\n            var baseURL = compareLink.getAttribute(\"data-base-url\");\r\n            if(baseURL.indexOf(\"?\")==-1){\r\n                compareUrl = compareUrl.replace(\"&compare=\", \"?compare=\");\r\n            }\r\n            compareLink.setAttribute(\"href\", baseURL + compareUrl);\r\n            compareLink.setAttribute('data-wat-val', compareTracking);\r\n            if (productSelection.length > 1) {\r\n                compareLink.removeAttribute('disabled');\r\n            } else {\r\n                compareLink.setAttribute('disabled', 'disabled');\r\n                compareLink.removeAttribute('href');\r\n            }\r\n        });\r\n\r\n        if (productSelection.length === 2 && !panel.classList.contains('select-disabled')) {\r\n            panel.querySelectorAll('.wp-cards-display').forEach(function (panelDisplay) {\r\n                panelDisplay.classList.add('select-disabled')\r\n            });\r\n        } else {\r\n            panel.querySelectorAll('.wp-cards-display').forEach(function (panelDisplay) {\r\n                panelDisplay.classList.remove('select-disabled')\r\n            });\r\n        }\r\n    }\r\n\r\n\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    /**\r\n     * Card rendering functions\r\n     * @param {*} card \r\n     */\r\n\r\n    function preRenderData(card) {\r\n        // If Data was already preRendered don't do it again\r\n        if (card[\"cardData\"][\"preRenderData\"]) {\r\n            return card;\r\n        }\r\n        if (card[\"cardData\"][\"compare-use-for\"]) {\r\n            card[\"cardData\"][\"compare-use-for\"] = replaceLineBreakWithList(card[\"cardData\"][\"compare-use-for\"]);\r\n        }\r\n        if (card[\"cardData\"][\"compare-includes\"]) {\r\n            card[\"cardData\"][\"compare-includes\"] = replaceLineBreakWithList(card[\"cardData\"][\"compare-includes\"]);\r\n        }\r\n        if (card[\"cardData\"][\"compare-licensing\"]) {\r\n            card[\"cardData\"][\"compare-licensing\"] = replaceLineBreakWithList(card[\"cardData\"][\"compare-licensing\"]);\r\n        }\r\n        if (card[\"cardData\"][\"compare-what-it-does\"]) {\r\n            card[\"cardData\"][\"compare-what-it-does\"] = replaceLineBreakWithList(card[\"cardData\"][\"compare-what-it-does\"]);\r\n        }\r\n\r\n        if (card[\"cardData\"][\"platform-text\"]) {\r\n            card[\"cardData\"][\"platform-text\"] = card[\"cardData\"][\"platform-text\"].replace(\"Platform: \", \"\");\r\n\r\n            if (card[\"cardData\"][\"platform-text\"].indexOf(\":\") != -1) {\r\n                // get the : position\r\n                var pos = card[\"cardData\"][\"platform-text\"].indexOf(\":\");\r\n                // slice to that position + 1 to remove space\r\n                card[\"cardData\"][\"platform-text\"] = card[\"cardData\"][\"platform-text\"].substring(pos + 2);\r\n            }\r\n            // Japanese\r\n            if (card[\"cardData\"][\"platform-text\"].indexOf(\":\") != -1) {\r\n                // get the : position\r\n                var pos = card[\"cardData\"][\"platform-text\"].indexOf(\":\");\r\n                // slice to that position + 1 to remove space\r\n                card[\"cardData\"][\"platform-text\"] = card[\"cardData\"][\"platform-text\"].substring(pos + 1);\r\n            }\r\n        }\r\n\r\n        card[\"cardData\"][\"preRenderData\"] = true;\r\n\r\n        return card;\r\n    }\r\n\r\n    function replaceLineBreakWithList(fieldString) {\r\n        if (fieldString.indexOf(\"<ul>\") != -1) {\r\n\r\n            fieldString = fieldString.replace(\"<ul>\", '<ul class=\"wd-pl-20 wd-mt-8 wp-compare-use-for\">').replace(\"<h4>\", \"<h4 class='wd-mt-16'>\")\r\n        } else {\r\n\r\n            fieldString = fieldString.replace(/\\r\\n/g, '<br />').replace(/[\\r\\n]/g, '<br />')\r\n            var useForString = \"\";\r\n            fieldString.split(\"<br />\").forEach(function (line) {\r\n                if (line.indexOf(\"[t]\") != -1) {\r\n                    // if(useForString!=\"\"){\r\n                    useForString += '</ul>';\r\n                    // }\r\n                    useForString += \"<h4 class='wd-mt-16'>\" + line.replace(\"[t]\", \"\") + \"</h4>\";\r\n                    useForString += '<ul class=\"wd-pl-20 wd-mt-8 wp-compare-use-for\">';\r\n                } else if (line.indexOf(\"[ns]\") != -1) {\r\n                    useForString += \"<li class='wp-list-no-style'>\" + line.replace(\"[ns]\", \"\") + \"</li>\";\r\n                } else {\r\n                    if (line != \"\")\r\n                        useForString += \"<li>\" + line + \"</li>\";\r\n                }\r\n            });\r\n            fieldString = useForString;\r\n        }\r\n        return fieldString;\r\n    }\r\n\r\n    function sortNumber(a, b) {\r\n        return a - b\r\n    }\r\n\r\n\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    //-----------------------------------------------------------------\r\n    // INITIALIZATION \r\n    //-----------------------------------------------------------------\r\n\r\n    editModeCheck()\r\n\r\n\r\n\r\n}());"],"sourceRoot":""}