@citolab/qti-components 6.9.1-beta.41 → 6.9.1-beta.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,24 @@
1
+ var h=String.raw,D=()=>{let e,r={async load(t,n=!1){return new Promise((s,i)=>{u(t,n).then(o=>(e=o,s(r)))})},set(t){return e=t,r},parse(t){return e=p(t),r},path:t=>(A(e,t),r),fn(t){return t(e),r},pciHooks(t){let n=["hook","module"],s=t.substring(0,t.lastIndexOf("/"));for(let i of n)e.querySelectorAll("["+i+"]").forEach(a=>{let m=a.getAttribute(i);!m.startsWith("data:")&&!m.startsWith("http")&&(a.setAttribute("base-url",t),a.setAttribute("module",s+"/"+encodeURI(m+(m.endsWith(".js")?"":".js"))))});return r},extendElementName:(t,n)=>(f(e,t,n),r),extendElementsWithClass:(t="extend")=>(d(e,t),r),customInteraction(t,n){let s=e.querySelector("qti-custom-interaction"),i=s.querySelector("object");return s.setAttribute("data-base-ref",t),s.setAttribute("data-base-item",t+n),s.setAttribute("data",i.getAttribute("data")),s.setAttribute("width",i.getAttribute("width")),s.setAttribute("height",i.getAttribute("height")),s.removeChild(i),r},convertCDATAtoComment(){return b(e),r},stripStyleSheets(){return L(e),r},html(){return new XMLSerializer().serializeToString(c(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return c(e)},xmldoc(){return e}};return r},M=()=>{let e,r={async load(t){return new Promise((n,s)=>{u(t).then(i=>(e=i,n(r)))})},parse(t){e=p(t)},assessmentTest(){let t=e.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:t.getAttribute("href"),identifier:t.getAttribute("identifier")}}};return r},T=()=>{let e,r={async load(t){return new Promise((n,s)=>{u(t).then(i=>(e=i,n(r)))})},set(t){return e=t,r},parse(t){return e=p(t),r},extendElementName:(t,n)=>(f(e,t,n),r),fn(t){return t(e),r},items(){return y(e)},html(){return new XMLSerializer().serializeToString(c(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return c(e)},xmldoc(){return e}};return r},x=h`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2
+ <xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
3
+ <xsl:template match="@*|node()">
4
+ <xsl:copy>
5
+ <xsl:apply-templates select="@*|node()"/>
6
+ </xsl:copy>
7
+ </xsl:template>
8
+
9
+ <!-- remove existing namespaces -->
10
+ <xsl:template match="*">
11
+ <!-- remove element prefix -->
12
+ <xsl:element name="{local-name()}">
13
+ <!-- process attributes -->
14
+ <xsl:for-each select="@*">
15
+ <!-- remove attribute prefix -->
16
+ <xsl:attribute name="{local-name()}">
17
+ <xsl:value-of select="."/>
18
+ </xsl:attribute>
19
+ </xsl:for-each>
20
+ <xsl:apply-templates/>
21
+ </xsl:element>
22
+ </xsl:template>
23
+ </xsl:stylesheet>`;function f(e,r,t){e.querySelectorAll(r).forEach(n=>{let s=`${r}-${t}`,i=g(n,s);n.replaceWith(i)})}function d(e,r){e.querySelectorAll("*").forEach(t=>{let n=t.classList;n&&n.forEach(s=>{if(s.startsWith(`${r}:`)){let i=s.slice(`${r}:`.length),o=`${t.nodeName}-${i}`,a=g(t,o);t.replaceWith(a)}})})}function g(e,r){let t=document.createElement(r);for(let n of e.attributes)t.setAttribute(n.name,n.value);for(;e.firstChild;)t.appendChild(e.firstChild);return t}function y(e){let r=[];return e.querySelectorAll("qti-assessment-item-ref").forEach(t=>{let n=t.getAttribute("identifier"),s=t.getAttribute("href"),i=t.getAttribute("category");r.push({identifier:n,href:s,category:i})}),r}var l=null;function u(e,r=!0){return r&&l!==null&&l.abort(),new Promise((t,n)=>{let s=new XMLHttpRequest;l=s,s.open("GET",e,!0),s.responseType="document",s.onload=()=>{s.status>=200&&s.status<300?t(s.responseXML):n(s.statusText)},s.onerror=()=>{n(s.statusText)},s.send()})}function p(e){return new DOMParser().parseFromString(e,"text/xml")}function c(e){let r=new XSLTProcessor,t=new DOMParser().parseFromString(x,"text/xml");return r.importStylesheet(t),r.transformToFragment(e,document)}function A(e,r){r.endsWith("/")||(r+="/"),e.querySelectorAll("[src],[href],[primary-path]").forEach(t=>{var i;let n="";t.getAttribute("src")&&(n="src"),t.getAttribute("href")&&(n="href"),t.getAttribute("primary-path")&&(n="primary-path");let s=(i=t.getAttribute(n))==null?void 0:i.trim();if(!s.startsWith("data:")&&!s.startsWith("http")){let o=r+encodeURI(s);t.setAttribute(n,o)}})}function b(e){e.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(t=>{let n=document.createComment(t.textContent);t.replaceChild(n,t.firstChild)})}function L(e){e.querySelectorAll("qti-stylesheet").forEach(r=>r.remove())}export{D as a,M as b,T as c};
24
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm1lcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IHhtbCA9IFN0cmluZy5yYXc7XG5cbi8qKlxuICogQnJvd3NlciBiYXNlZCBRVEktWE1MIHRvIEhUTUwgdHJhbnNmb3JtZXIuXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UsIHRyYW5zZm9ybSBhbmQgc2VyaWFsaXplIFFUSSBYTUwgaXRlbXMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlLCB0cmFuc2Zvcm0gYW5kIHNlcmlhbGl6ZSBRVEkgWE1MIGl0ZW1zLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtSXRlbSgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgncGF0aC90by94bWwvZmlsZS54bWwnKTtcbiAqIHF0aVRyYW5zZm9ybWVyLnBhdGgoJy9hc3Nlc3NtZW50SXRlbS9pdGVtQm9keScpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICogY29uc3QgaHRtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLmh0bWxkb2MoKTtcbiAqIGNvbnN0IHhtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLnhtbGRvYygpO1xuICpcbiAqIHF0aVRyYW5zZm9ybUl0ZW0oKS5wYXJzZShzdG9yeVhNTCkuaHRtbCgpXG4gKi9cblxuZXhwb3J0IHR5cGUgdHJhbnNmb3JtSXRlbUFwaSA9IHtcbiAgbG9hZDogKHVyaTogc3RyaW5nLCBjYW5jZWxQcmV2aW91c1JlcXVlc3Q/OiBib29sZWFuKSA9PiBQcm9taXNlPHRyYW5zZm9ybUl0ZW1BcGk+O1xuICBzZXQoeG1sRG9jdW1lbnQ6IFhNTERvY3VtZW50KTogdHJhbnNmb3JtSXRlbUFwaTtcbiAgcGFyc2U6ICh4bWxTdHJpbmc6IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgcGF0aDogKGxvY2F0aW9uOiBzdHJpbmcpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gIGZuOiAoZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gIHBjaUhvb2tzOiAodXJpOiBzdHJpbmcpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gIGV4dGVuZEVsZW1lbnROYW1lOiAoZWxlbWVudE5hbWU6IHN0cmluZywgZXh0ZW5kOiBzdHJpbmcpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gIGV4dGVuZEVsZW1lbnRzV2l0aENsYXNzOiAocGFyYW0/OiBzdHJpbmcpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gIGN1c3RvbUludGVyYWN0aW9uOiAoYmFzZVJlZjogc3RyaW5nLCBiYXNlSXRlbTogc3RyaW5nKSA9PiB0cmFuc2Zvcm1JdGVtQXBpO1xuICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQ6ICgpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gIHN0cmlwU3R5bGVTaGVldHM6ICgpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gIGh0bWw6ICgpID0+IHN0cmluZztcbiAgeG1sOiAoKSA9PiBzdHJpbmc7XG4gIGh0bWxkb2M6ICgpID0+IERvY3VtZW50RnJhZ21lbnQ7XG4gIHhtbGRvYzogKCkgPT4gWE1MRG9jdW1lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgcXRpVHJhbnNmb3JtSXRlbSA9ICgpID0+IHtcbiAgbGV0IHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudDtcblxuICBjb25zdCBhcGk6IHRyYW5zZm9ybUl0ZW1BcGkgPSB7XG4gICAgYXN5bmMgbG9hZCh1cmk6IHN0cmluZywgY2FuY2VsUHJldmlvdXNSZXF1ZXN0ID0gZmFsc2UpOiBQcm9taXNlPHR5cGVvZiBhcGk+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx0eXBlb2YgYXBpPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxvYWRYTUwodXJpLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QpLnRoZW4oeG1sID0+IHtcbiAgICAgICAgICB4bWxGcmFnbWVudCA9IHhtbDtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcGkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgc2V0KHhtbERvY3VtZW50OiBYTUxEb2N1bWVudCk6IHR5cGVvZiBhcGkge1xuICAgICAgeG1sRnJhZ21lbnQgPSB4bWxEb2N1bWVudDtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZyk6IHR5cGVvZiBhcGkge1xuICAgICAgeG1sRnJhZ21lbnQgPSBwYXJzZVhNTCh4bWxTdHJpbmcpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIHBhdGg6IChsb2NhdGlvbjogc3RyaW5nKTogdHlwZW9mIGFwaSA9PiB7XG4gICAgICBzZXRMb2NhdGlvbih4bWxGcmFnbWVudCwgbG9jYXRpb24pO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGZuKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKTogdHlwZW9mIGFwaSB7XG4gICAgICBmbih4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgcGNpSG9va3ModXJpOiBzdHJpbmcpOiB0eXBlb2YgYXBpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBbJ2hvb2snLCAnbW9kdWxlJ107XG4gICAgICBjb25zdCBkb2N1bWVudFBhdGggPSB1cmkuc3Vic3RyaW5nKDAsIHVyaS5sYXN0SW5kZXhPZignLycpKTtcbiAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgY29uc3Qgc3JjQXR0cmlidXRlcyA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1snICsgYXR0cmlidXRlICsgJ10nKTtcbiAgICAgICAgc3JjQXR0cmlidXRlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGNvbnN0IHNyY1ZhbHVlID0gbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKSE7XG4gICAgICAgICAgaWYgKCFzcmNWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpICYmICFzcmNWYWx1ZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgIC8vIEp1c3QgcGFzdGUgdGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIHNyYyBsb2NhdGlvbiBhZnRlciB0aGUgZG9jdW1lbnRyb290UGF0aFxuICAgICAgICAgICAgLy8gb2xkIHBjaXMgY2FuIGhhdmUgYSAuanMsIG5ldyBwY2kncyBkb24ndFxuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ2Jhc2UtdXJsJywgdXJpKTtcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRQYXRoICsgJy8nICsgZW5jb2RlVVJJKHNyY1ZhbHVlICsgKHNyY1ZhbHVlLmVuZHNXaXRoKCcuanMnKSA/ICcnIDogJy5qcycpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGV4dGVuZEVsZW1lbnROYW1lOiAodGFnTmFtZTogc3RyaW5nLCBleHRlbnNpb246IHN0cmluZyk6IHR5cGVvZiBhcGkgPT4ge1xuICAgICAgZXh0ZW5kRWxlbWVudE5hbWUoeG1sRnJhZ21lbnQsIHRhZ05hbWUsIGV4dGVuc2lvbik7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3M6IChwYXJhbTogc3RyaW5nID0gJ2V4dGVuZCcpOiB0eXBlb2YgYXBpID0+IHtcbiAgICAgIGV4dGVuZEVsZW1lbnRzV2l0aENsYXNzKHhtbEZyYWdtZW50LCBwYXJhbSk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgY3VzdG9tSW50ZXJhY3Rpb24oYmFzZVJlZjogc3RyaW5nLCBiYXNlSXRlbTogc3RyaW5nKTogdHlwZW9mIGFwaSB7XG4gICAgICBjb25zdCBxdGlDdXN0b21JbnRlcmFjdGlvbiA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IoJ3F0aS1jdXN0b20taW50ZXJhY3Rpb24nKTtcbiAgICAgIGNvbnN0IHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0ID0gcXRpQ3VzdG9tSW50ZXJhY3Rpb24ucXVlcnlTZWxlY3Rvcignb2JqZWN0Jyk7XG5cbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnZGF0YS1iYXNlLXJlZicsIGJhc2VSZWYpO1xuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCdkYXRhLWJhc2UtaXRlbScsIGJhc2VSZWYgKyBiYXNlSXRlbSk7XG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ2RhdGEnLCBxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdC5nZXRBdHRyaWJ1dGUoJ2RhdGEnKSk7XG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QuZ2V0QXR0cmlidXRlKCd3aWR0aCcpKTtcbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSk7XG5cbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnJlbW92ZUNoaWxkKHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQoKTogdHlwZW9mIGFwaSB7XG4gICAgICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQoeG1sRnJhZ21lbnQpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIHN0cmlwU3R5bGVTaGVldHMoKTogdHlwZW9mIGFwaSB7XG4gICAgICBzdHJpcFN0eWxlU2hlZXRzKHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBodG1sKCkge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcodG9IVE1MKHhtbEZyYWdtZW50KSk7XG4gICAgfSxcbiAgICB4bWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIGh0bWxkb2MoKSB7XG4gICAgICByZXR1cm4gdG9IVE1MKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIHhtbGRvYygpOiBYTUxEb2N1bWVudCB7XG4gICAgICByZXR1cm4geG1sRnJhZ21lbnQ7IC8vIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGFwaTtcbn07XG5cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1NYW5pZmVzdCA9ICgpOiB7XG4gIGxvYWQ6ICh1cmk6IHN0cmluZykgPT4gUHJvbWlzZTx0eXBlb2YgYXBpPjtcbiAgYXNzZXNzbWVudFRlc3Q6ICgpID0+IHsgaHJlZjogc3RyaW5nOyBpZGVudGlmaWVyOiBzdHJpbmcgfTtcbn0gPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuXG4gIGNvbnN0IGFwaSA9IHtcbiAgICBhc3luYyBsb2FkKHVyaSkge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHR5cGVvZiBhcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZFhNTCh1cmkpLnRoZW4oeG1sID0+IHtcbiAgICAgICAgICB4bWxGcmFnbWVudCA9IHhtbDtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcGkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcGFyc2UoeG1sU3RyaW5nOiBzdHJpbmcpIHtcbiAgICAgIHhtbEZyYWdtZW50ID0gcGFyc2VYTUwoeG1sU3RyaW5nKTtcbiAgICB9LFxuICAgIGFzc2Vzc21lbnRUZXN0KCkge1xuICAgICAgY29uc3QgZWwgPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdyZXNvdXJjZVt0eXBlPVwiaW1zcXRpX3Rlc3RfeG1sdjNwMFwiXScpO1xuICAgICAgcmV0dXJuIHsgaHJlZjogZWwuZ2V0QXR0cmlidXRlKCdocmVmJyksIGlkZW50aWZpZXI6IGVsLmdldEF0dHJpYnV0ZSgnaWRlbnRpZmllcicpIH07XG4gICAgfVxuICB9O1xuICByZXR1cm4gYXBpO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UgYW5kIHRyYW5zZm9ybSBRVEkgdGVzdHMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlIGFuZCB0cmFuc2Zvcm0gUVRJIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtVGVzdCgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgnaHR0cHM6Ly9leGFtcGxlLmNvbS90ZXN0LnhtbCcpO1xuICogY29uc3QgaXRlbXMgPSBxdGlUcmFuc2Zvcm1lci5pdGVtcygpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICovXG5leHBvcnQgY29uc3QgcXRpVHJhbnNmb3JtVGVzdCA9ICgpOiB7XG4gIGxvYWQ6ICh1cmk6IHN0cmluZykgPT4gUHJvbWlzZTx0eXBlb2YgYXBpPjtcbiAgc2V0OiAoeG1sRG9jdW1lbnQ6IFhNTERvY3VtZW50KSA9PiB0eXBlb2YgYXBpO1xuICBwYXJzZTogKHhtbFN0cmluZzogc3RyaW5nKSA9PiB0eXBlb2YgYXBpO1xuICBleHRlbmRFbGVtZW50TmFtZTogKGVsZW1lbnROYW1lOiBzdHJpbmcsIGV4dGVuZDogc3RyaW5nKSA9PiB0cmFuc2Zvcm1JdGVtQXBpO1xuICBmbjogKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSA9PiB0eXBlb2YgYXBpO1xuICBpdGVtczogKCkgPT4geyBpZGVudGlmaWVyOiBzdHJpbmc7IGhyZWY6IHN0cmluZzsgY2F0ZWdvcnk6IHN0cmluZyB9W107XG4gIGh0bWw6ICgpID0+IHN0cmluZztcbiAgeG1sOiAoKSA9PiBzdHJpbmc7XG4gIGh0bWxkb2M6ICgpID0+IERvY3VtZW50RnJhZ21lbnQ7XG4gIHhtbGRvYzogKCkgPT4gWE1MRG9jdW1lbnQ7XG59ID0+IHtcbiAgbGV0IHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudDtcblxuICBjb25zdCBhcGkgPSB7XG4gICAgYXN5bmMgbG9hZCh1cmkpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx0eXBlb2YgYXBpPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxvYWRYTUwodXJpKS50aGVuKHhtbCA9PiB7XG4gICAgICAgICAgeG1sRnJhZ21lbnQgPSB4bWw7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoYXBpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHNldCh4bWxEb2N1bWVudDogWE1MRG9jdW1lbnQpOiB0eXBlb2YgYXBpIHtcbiAgICAgIHhtbEZyYWdtZW50ID0geG1sRG9jdW1lbnQ7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgcGFyc2UoeG1sU3RyaW5nOiBzdHJpbmcpIHtcbiAgICAgIHhtbEZyYWdtZW50ID0gcGFyc2VYTUwoeG1sU3RyaW5nKTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBleHRlbmRFbGVtZW50TmFtZTogKHRhZ05hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpOiB0eXBlb2YgYXBpID0+IHtcbiAgICAgIGV4dGVuZEVsZW1lbnROYW1lKHhtbEZyYWdtZW50LCB0YWdOYW1lLCBleHRlbnNpb24pO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGZuKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSB7XG4gICAgICBmbih4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgaXRlbXMoKSB7XG4gICAgICByZXR1cm4gaXRlbXNGcm9tVGVzdCh4bWxGcmFnbWVudCk7XG4gICAgfSxcbiAgICBodG1sKCkge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcodG9IVE1MKHhtbEZyYWdtZW50KSk7XG4gICAgfSxcbiAgICB4bWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIGh0bWxkb2MoKSB7XG4gICAgICByZXR1cm4gdG9IVE1MKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIHhtbGRvYygpOiBYTUxEb2N1bWVudCB7XG4gICAgICByZXR1cm4geG1sRnJhZ21lbnQ7XG4gICAgfVxuICB9O1xuICByZXR1cm4gYXBpO1xufTtcblxuLyogICA8IS0tIGNvbnZlcnQgQ0RBVEEgdG8gY29tbWVudHMgLS0+XG4gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9XCJ0ZXh0KClbY29udGFpbnMoLiwgJ0NEQVRBJyldXCI+XG4gIDx4c2w6Y29tbWVudD5cbiAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD1cIi5cIi8+XG4gIDwveHNsOmNvbW1lbnQ+XG48L3hzbDp0ZW1wbGF0ZT5cbiovXG5cbi8qXG4gIDwhLS0gcmVtb3ZlIHhtbCBjb21tZW50cyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cImNvbW1lbnQoKVwiIC8+XG4gICovXG5cbmNvbnN0IHhtbFRvSFRNTCA9IHhtbGA8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj1cIjEuMFwiIHhtbG5zOnhzbD1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybVwiPlxuPHhzbDpvdXRwdXQgbWV0aG9kPVwiaHRtbFwiIHZlcnNpb249XCI1LjBcIiBlbmNvZGluZz1cIlVURi04XCIgaW5kZW50PVwieWVzXCIgLz5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cIkAqfG5vZGUoKVwiPlxuICAgIDx4c2w6Y29weT5cbiAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD1cIkAqfG5vZGUoKVwiLz5cbiAgICA8L3hzbDpjb3B5PlxuICA8L3hzbDp0ZW1wbGF0ZT5cblxuICA8IS0tIHJlbW92ZSBleGlzdGluZyBuYW1lc3BhY2VzIC0tPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiKlwiPlxuICAgIDwhLS0gcmVtb3ZlIGVsZW1lbnQgcHJlZml4IC0tPlxuICAgIDx4c2w6ZWxlbWVudCBuYW1lPVwie2xvY2FsLW5hbWUoKX1cIj5cbiAgICAgIDwhLS0gcHJvY2VzcyBhdHRyaWJ1dGVzIC0tPlxuICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9XCJAKlwiPlxuICAgICAgICA8IS0tIHJlbW92ZSBhdHRyaWJ1dGUgcHJlZml4IC0tPlxuICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPVwie2xvY2FsLW5hbWUoKX1cIj5cbiAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD1cIi5cIi8+XG4gICAgICAgIDwveHNsOmF0dHJpYnV0ZT5cbiAgICAgIDwveHNsOmZvci1lYWNoPlxuICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzLz5cbiAgPC94c2w6ZWxlbWVudD5cbjwveHNsOnRlbXBsYXRlPlxuPC94c2w6c3R5bGVzaGVldD5gO1xuXG4vLyBGdW5jdGlvbiB0byBleHRlbmQgZWxlbWVudHMgd2l0aCBhIHNwZWNpZmljIHRhZyBuYW1lIGJ5IGFkZGluZyBhbiBleHRlbnNpb24gc3VmZml4XG5mdW5jdGlvbiBleHRlbmRFbGVtZW50TmFtZSh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQsIHRhZ05hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpIHtcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCh0YWdOYW1lKS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IG5ld1RhZ05hbWUgPSBgJHt0YWdOYW1lfS0ke2V4dGVuc2lvbn1gO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBjcmVhdGVFbGVtZW50V2l0aE5ld1RhZ05hbWUoZWxlbWVudCwgbmV3VGFnTmFtZSk7XG4gICAgZWxlbWVudC5yZXBsYWNlV2l0aChuZXdFbGVtZW50KTtcbiAgfSk7XG59XG5cbi8vIEZ1bmN0aW9uIHRvIGV4dGVuZCBhbnkgZWxlbWVudCB3aXRoIGEgc3BlY2lmaWMgY2xhc3MgcGF0dGVybiAoZS5nLiwgXCJleHRlbmQ6c3VmZml4XCIpXG5mdW5jdGlvbiBleHRlbmRFbGVtZW50c1dpdGhDbGFzcyh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQsIGNsYXNzTmFtZVBhdHRlcm46IHN0cmluZykge1xuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcqJykuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICBjb25zdCBjbGFzc0xpc3QgPSBlbGVtZW50LmNsYXNzTGlzdDtcbiAgICBpZiAoY2xhc3NMaXN0KSB7XG4gICAgICBjbGFzc0xpc3QuZm9yRWFjaChjbGFzc05hbWUgPT4ge1xuICAgICAgICBpZiAoY2xhc3NOYW1lLnN0YXJ0c1dpdGgoYCR7Y2xhc3NOYW1lUGF0dGVybn06YCkpIHtcbiAgICAgICAgICBjb25zdCBzdWZmaXggPSBjbGFzc05hbWUuc2xpY2UoYCR7Y2xhc3NOYW1lUGF0dGVybn06YC5sZW5ndGgpO1xuICAgICAgICAgIGNvbnN0IG5ld1RhZ05hbWUgPSBgJHtlbGVtZW50Lm5vZGVOYW1lfS0ke3N1ZmZpeH1gO1xuICAgICAgICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBjcmVhdGVFbGVtZW50V2l0aE5ld1RhZ05hbWUoZWxlbWVudCwgbmV3VGFnTmFtZSk7XG4gICAgICAgICAgZWxlbWVudC5yZXBsYWNlV2l0aChuZXdFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG5ldyBlbGVtZW50IHdpdGggYSBuZXcgdGFnIG5hbWUgYW5kIGNvcHkgYXR0cmlidXRlcyBhbmQgY2hpbGRyZW5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRXaXRoTmV3VGFnTmFtZShlbGVtZW50LCBuZXdUYWdOYW1lKSB7XG4gIGNvbnN0IG5ld0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5ld1RhZ05hbWUpO1xuICAvLyBDb3B5IGF0dHJpYnV0ZXNcbiAgZm9yIChjb25zdCBhdHRyIG9mIGVsZW1lbnQuYXR0cmlidXRlcykge1xuICAgIG5ld0VsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7XG4gIH1cbiAgLy8gQ29weSBjaGlsZCBub2Rlc1xuICB3aGlsZSAoZWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgbmV3RWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50LmZpcnN0Q2hpbGQpO1xuICB9XG4gIHJldHVybiBuZXdFbGVtZW50O1xufVxuXG5mdW5jdGlvbiBpdGVtc0Zyb21UZXN0KHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIGNvbnN0IGl0ZW1zOiB7IGlkZW50aWZpZXI6IHN0cmluZzsgaHJlZjogc3RyaW5nOyBjYXRlZ29yeTogc3RyaW5nIH1bXSA9IFtdO1xuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdxdGktYXNzZXNzbWVudC1pdGVtLXJlZicpLmZvckVhY2goZWwgPT4ge1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSBlbC5nZXRBdHRyaWJ1dGUoJ2lkZW50aWZpZXInKTtcbiAgICBjb25zdCBocmVmID0gZWwuZ2V0QXR0cmlidXRlKCdocmVmJyk7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBlbC5nZXRBdHRyaWJ1dGUoJ2NhdGVnb3J5Jyk7XG4gICAgaXRlbXMucHVzaCh7IGlkZW50aWZpZXIsIGhyZWYsIGNhdGVnb3J5IH0pO1xuICB9KTtcbiAgcmV0dXJuIGl0ZW1zO1xufVxuXG5sZXQgY3VycmVudFJlcXVlc3Q6IFhNTEh0dHBSZXF1ZXN0IHwgbnVsbCA9IG51bGw7XG5cbmZ1bmN0aW9uIGxvYWRYTUwodXJsLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QgPSB0cnVlKSB7XG4gIGlmIChjYW5jZWxQcmV2aW91c1JlcXVlc3QgJiYgY3VycmVudFJlcXVlc3QgIT09IG51bGwpIHtcbiAgICBjdXJyZW50UmVxdWVzdC5hYm9ydCgpOyAvLyBBYm9ydCB0aGUgb25nb2luZyByZXF1ZXN0IGlmIHRoZXJlIGlzIG9uZVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPFhNTERvY3VtZW50IHwgbnVsbD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIGN1cnJlbnRSZXF1ZXN0ID0geGhyOyAvLyBTdG9yZSB0aGUgY3VycmVudCByZXF1ZXN0XG5cbiAgICB4aHIub3BlbignR0VUJywgdXJsLCB0cnVlKTtcbiAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2RvY3VtZW50JztcblxuICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCkge1xuICAgICAgICByZXNvbHZlKHhoci5yZXNwb25zZVhNTCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWplY3QoeGhyLnN0YXR1c1RleHQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB4aHIub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdCh4aHIuc3RhdHVzVGV4dCk7XG4gICAgfTtcblxuICAgIHhoci5zZW5kKCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXJzZVhNTCh4bWxEb2N1bWVudDogc3RyaW5nKSB7XG4gIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgY29uc3QgeG1sRnJhZ21lbnQgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHhtbERvY3VtZW50LCAndGV4dC94bWwnKTtcbiAgcmV0dXJuIHhtbEZyYWdtZW50O1xufVxuXG5mdW5jdGlvbiB0b0hUTUwoeG1sRnJhZ21lbnQ6IERvY3VtZW50KTogRG9jdW1lbnRGcmFnbWVudCB7XG4gIGNvbnN0IHByb2Nlc3NvciA9IG5ldyBYU0xUUHJvY2Vzc29yKCk7XG4gIGNvbnN0IHhzbHREb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoeG1sVG9IVE1MLCAndGV4dC94bWwnKTtcbiAgcHJvY2Vzc29yLmltcG9ydFN0eWxlc2hlZXQoeHNsdERvY3VtZW50KTtcbiAgY29uc3QgaXRlbUhUTUxGcmFnbWVudCA9IHByb2Nlc3Nvci50cmFuc2Zvcm1Ub0ZyYWdtZW50KHhtbEZyYWdtZW50LCBkb2N1bWVudCk7XG4gIHJldHVybiBpdGVtSFRNTEZyYWdtZW50O1xufVxuXG5mdW5jdGlvbiBzZXRMb2NhdGlvbih4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCwgbG9jYXRpb246IHN0cmluZykge1xuICBpZiAoIWxvY2F0aW9uLmVuZHNXaXRoKCcvJykpIHtcbiAgICBsb2NhdGlvbiArPSAnLyc7XG4gIH1cblxuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbc3JjXSxbaHJlZl0sW3ByaW1hcnktcGF0aF0nKS5mb3JFYWNoKGVsV2l0aFNyYyA9PiB7XG4gICAgbGV0IGF0dHI6ICdzcmMnIHwgJ2hyZWYnIHwgJ3ByaW1hcnktcGF0aCcgfCAnJyA9ICcnO1xuXG4gICAgaWYgKGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoJ3NyYycpKSB7XG4gICAgICBhdHRyID0gJ3NyYyc7XG4gICAgfVxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgIGF0dHIgPSAnaHJlZic7XG4gICAgfVxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdwcmltYXJ5LXBhdGgnKSkge1xuICAgICAgYXR0ciA9ICdwcmltYXJ5LXBhdGgnO1xuICAgIH1cbiAgICBjb25zdCBhdHRyVmFsdWUgPSBlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKGF0dHIpPy50cmltKCk7XG5cbiAgICBpZiAoIWF0dHJWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpICYmICFhdHRyVmFsdWUuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICBjb25zdCBuZXdTcmNWYWx1ZSA9IGxvY2F0aW9uICsgZW5jb2RlVVJJKGF0dHJWYWx1ZSk7XG4gICAgICBlbFdpdGhTcmMuc2V0QXR0cmlidXRlKGF0dHIsIG5ld1NyY1ZhbHVlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQoeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQpIHtcbiAgY29uc3QgY2RhdGFFbGVtZW50cyA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3F0aS1jdXN0b20tb3BlcmF0b3JbY2xhc3M9XCJqcy5vcmdcIl0gPiBxdGktYmFzZS12YWx1ZScpO1xuICBjZGF0YUVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29tbWVudFRleHQgPSBkb2N1bWVudC5jcmVhdGVDb21tZW50KGVsZW1lbnQudGV4dENvbnRlbnQpO1xuICAgIGVsZW1lbnQucmVwbGFjZUNoaWxkKGNvbW1lbnRUZXh0LCBlbGVtZW50LmZpcnN0Q2hpbGQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc3RyaXBTdHlsZVNoZWV0cyh4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCkge1xuICAvLyByZW1vdmUgcXRpLXN0eWxlc2hlZXQgdGFnXG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3F0aS1zdHlsZXNoZWV0JykuZm9yRWFjaChzdHlsZXNoZWV0ID0+IHN0eWxlc2hlZXQucmVtb3ZlKCkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUEsSUFBTUEsRUFBTSxPQUFPLElBb0NOQyxFQUFtQixJQUFNLENBQ3BDLElBQUlDLEVBRUVDLEVBQXdCLENBQzVCLE1BQU0sS0FBS0MsRUFBYUMsRUFBd0IsR0FBNEIsQ0FDMUUsT0FBTyxJQUFJLFFBQW9CLENBQUNDLEVBQVNDLElBQVcsQ0FDbERDLEVBQVFKLEVBQUtDLENBQXFCLEVBQUUsS0FBS0wsSUFDdkNFLEVBQWNGLEVBQ1BNLEVBQVFILENBQUcsRUFDbkIsQ0FDSCxDQUFDLENBQ0gsRUFDQSxJQUFJTSxFQUFzQyxDQUN4QyxPQUFBUCxFQUFjTyxFQUNQTixDQUNULEVBQ0EsTUFBTU8sRUFBK0IsQ0FDbkMsT0FBQVIsRUFBY1MsRUFBU0QsQ0FBUyxFQUN6QlAsQ0FDVCxFQUNBLEtBQU9TLElBQ0xDLEVBQVlYLEVBQWFVLENBQVEsRUFDMUJULEdBRVQsR0FBR1csRUFBb0QsQ0FDckQsT0FBQUEsRUFBR1osQ0FBVyxFQUNQQyxDQUNULEVBQ0EsU0FBU0MsRUFBeUIsQ0FDaEMsSUFBTVcsRUFBYSxDQUFDLE9BQVEsUUFBUSxFQUM5QkMsRUFBZVosRUFBSSxVQUFVLEVBQUdBLEVBQUksWUFBWSxHQUFHLENBQUMsRUFDMUQsUUFBV2EsS0FBYUYsRUFDQWIsRUFBWSxpQkFBaUIsSUFBTWUsRUFBWSxHQUFHLEVBQzFELFFBQVFDLEdBQVEsQ0FDNUIsSUFBTUMsRUFBV0QsRUFBSyxhQUFhRCxDQUFTLEVBQ3hDLENBQUNFLEVBQVMsV0FBVyxPQUFPLEdBQUssQ0FBQ0EsRUFBUyxXQUFXLE1BQU0sSUFHOURELEVBQUssYUFBYSxXQUFZZCxDQUFHLEVBQ2pDYyxFQUFLLGFBQ0gsU0FDQUYsRUFBZSxJQUFNLFVBQVVHLEdBQVlBLEVBQVMsU0FBUyxLQUFLLEVB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b0JuRCxFQUFhLFFBQVEsQ0FFOUUsQ0FFQSxTQUFTVyxFQUFZWCxFQUErQlUsRUFBa0IsQ0FDL0RBLEVBQVMsU0FBUyxHQUFHLElBQ3hCQSxHQUFZLEtBR2RWLEVBQVksaUJBQWlCLDZCQUE2QixFQUFFLFFBQVFxRCxHQUFhLENBeFduRixJQUFBQyxFQXlXSSxJQUFJWCxFQUE2QyxHQUU3Q1UsRUFBVSxhQUFhLEtBQUssSUFDOUJWLEVBQU8sT0FFTFUsRUFBVSxhQUFhLE1BQU0sSUFDL0JWLEVBQU8sUUFFTFUsRUFBVSxhQUFhLGNBQWMsSUFDdkNWLEVBQU8sZ0JBRVQsSUFBTVksR0FBWUQsRUFBQUQsRUFBVSxhQUFhVixDQUFJLElBQTNCLFlBQUFXLEVBQThCLE9BRWhELEdBQUksQ0FBQ0MsRUFBVSxXQUFXLE9BQU8sR0FBSyxDQUFDQSxFQUFVLFdBQVcsTUFBTSxFQUFHLENBQ25FLElBQU1DLEVBQWM5QyxFQUFXLFVBQVU2QyxDQUFTLEVBQ2xERixFQUFVLGFBQWFWLEVBQU1hLENBQVcsQ0FDMUMsQ0FDRixDQUFDLENBQ0gsQ0FFQSxTQUFTN0IsRUFBc0IzQixFQUErQixDQUN0Q0EsRUFBWSxpQkFBaUIsc0RBQXNELEVBQzNGLFFBQVFtQyxHQUFXLENBQy9CLElBQU1zQixFQUFjLFNBQVMsY0FBY3RCLEVBQVEsV0FBVyxFQUM5REEsRUFBUSxhQUFhc0IsRUFBYXRCLEVBQVEsVUFBVSxDQUN0RCxDQUFDLENBQ0gsQ0FFQSxTQUFTUCxFQUFpQjVCLEVBQStCLENBRXZEQSxFQUFZLGlCQUFpQixnQkFBZ0IsRUFBRSxRQUFRMEQsR0FBY0EsRUFBVyxPQUFPLENBQUMsQ0FDMUYiLAogICJuYW1lcyI6IFsieG1sIiwgInF0aVRyYW5zZm9ybUl0ZW0iLCAieG1sRnJhZ21lbnQiLCAiYXBpIiwgInVyaSIsICJjYW5jZWxQcmV2aW91c1JlcXVlc3QiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAibG9hZFhNTCIsICJ4bWxEb2N1bWVudCIsICJ4bWxTdHJpbmciLCAicGFyc2VYTUwiLCAibG9jYXRpb24iLCAic2V0TG9jYXRpb24iLCAiZm4iLCAiYXR0cmlidXRlcyIsICJkb2N1bWVudFBhdGgiLCAiYXR0cmlidXRlIiwgIm5vZGUiLCAic3JjVmFsdWUiLCAidGFnTmFtZSIsICJleHRlbnNpb24iLCAiZXh0ZW5kRWxlbWVudE5hbWUiLCAicGFyYW0iLCAiZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3MiLCAiYmFzZVJlZiIsICJiYXNlSXRlbSIsICJxdGlDdXN0b21JbnRlcmFjdGlvbiIsICJxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdCIsICJjb252ZXJ0Q0RBVEF0b0NvbW1lbnQiLCAic3RyaXBTdHlsZVNoZWV0cyIsICJ0b0hUTUwiLCAicXRpVHJhbnNmb3JtTWFuaWZlc3QiLCAiZWwiLCAicXRpVHJhbnNmb3JtVGVzdCIsICJpdGVtc0Zyb21UZXN0IiwgInhtbFRvSFRNTCIsICJlbGVtZW50IiwgIm5ld1RhZ05hbWUiLCAibmV3RWxlbWVudCIsICJjcmVhdGVFbGVtZW50V2l0aE5ld1RhZ05hbWUiLCAiY2xhc3NOYW1lUGF0dGVybiIsICJjbGFzc0xpc3QiLCAiY2xhc3NOYW1lIiwgInN1ZmZpeCIsICJhdHRyIiwgIml0ZW1zIiwgImlkZW50aWZpZXIiLCAiaHJlZiIsICJjYXRlZ29yeSIsICJjdXJyZW50UmVxdWVzdCIsICJ1cmwiLCAieGhyIiwgInByb2Nlc3NvciIsICJ4c2x0RG9jdW1lbnQiLCAiZWxXaXRoU3JjIiwgIl9hIiwgImF0dHJWYWx1ZSIsICJuZXdTcmNWYWx1ZSIsICJjb21tZW50VGV4dCIsICJzdHlsZXNoZWV0Il0KfQo=
@@ -750,7 +750,7 @@
750
750
  "name": "getItemByUri",
751
751
  "return": {
752
752
  "type": {
753
- "text": "Promise<any>"
753
+ "text": "Promise<Element>"
754
754
  }
755
755
  },
756
756
  "parameters": [