From 5f466137ad6ac596600e3ff53c9b786815398445 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 27 May 2017 17:36:13 +0200 Subject: node_modules, clean up package.json --- .../systemjs/dist/system-csp-production.js | 6 - .../systemjs/dist/system-csp-production.js.map | 1 - .../systemjs/dist/system-csp-production.src.js | 4537 ----------------- node_modules/systemjs/dist/system-polyfills.js | 5 - node_modules/systemjs/dist/system-polyfills.js.map | 1 - node_modules/systemjs/dist/system-polyfills.src.js | 1277 ----- node_modules/systemjs/dist/system-register-only.js | 5 - .../systemjs/dist/system-register-only.js.map | 1 - .../systemjs/dist/system-register-only.src.js | 2199 --------- node_modules/systemjs/dist/system.js | 6 - node_modules/systemjs/dist/system.js.map | 1 - node_modules/systemjs/dist/system.src.js | 5169 -------------------- 12 files changed, 13208 deletions(-) delete mode 100644 node_modules/systemjs/dist/system-csp-production.js delete mode 100644 node_modules/systemjs/dist/system-csp-production.js.map delete mode 100644 node_modules/systemjs/dist/system-csp-production.src.js delete mode 100644 node_modules/systemjs/dist/system-polyfills.js delete mode 100644 node_modules/systemjs/dist/system-polyfills.js.map delete mode 100644 node_modules/systemjs/dist/system-polyfills.src.js delete mode 100644 node_modules/systemjs/dist/system-register-only.js delete mode 100644 node_modules/systemjs/dist/system-register-only.js.map delete mode 100644 node_modules/systemjs/dist/system-register-only.src.js delete mode 100644 node_modules/systemjs/dist/system.js delete mode 100644 node_modules/systemjs/dist/system.js.map delete mode 100644 node_modules/systemjs/dist/system.src.js (limited to 'node_modules/systemjs/dist') diff --git a/node_modules/systemjs/dist/system-csp-production.js b/node_modules/systemjs/dist/system-csp-production.js deleted file mode 100644 index 8cbabeb0e..000000000 --- a/node_modules/systemjs/dist/system-csp-production.js +++ /dev/null @@ -1,6 +0,0 @@ -/* - * SystemJS v0.19.47 - */ -!function(){function e(){!function(e){function t(e,n){if("string"!=typeof e)throw new TypeError("URL must be a string");var r=String(e).replace(/^\s+|\s+$/g,"").replace(/\\/g,"/").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);if(!r)throw new RangeError("Invalid URL format");var a=r[1]||"",o=r[2]||"",i=r[3]||"",s=r[4]||"",l=r[5]||"",u=r[6]||"",d=r[7]||"",c=r[8]||"",f=r[9]||"";if(void 0!==n){var m=n instanceof t?n:new t(n),p=!a&&!s&&!o;!p||d||c||(c=m.search),p&&"/"!==d[0]&&(d=d?(!m.host&&!m.username||m.pathname?"":"/")+m.pathname.slice(0,m.pathname.lastIndexOf("/")+1)+d:m.pathname);var h=[];d.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(e){"/.."===e?h.pop():h.push(e)}),d=h.join("").replace(/^\//,"/"===d[0]?"/":""),p&&(u=m.port,l=m.hostname,s=m.host,i=m.password,o=m.username),a||(a=m.protocol)}d=d.replace(/\\/g,"/"),this.origin=s?a+(""!==a||""!==s?"//":"")+s:"",this.href=a+(a&&s||"file:"==a?"//":"")+(""!==o?o+(""!==i?":"+i:"")+"@":"")+s+d+c+f,this.protocol=a,this.username=o,this.password=i,this.host=s,this.hostname=l,this.port=u,this.pathname=d,this.search=c,this.hash=f}e.URLPolyfill=t}("undefined"!=typeof self?self:global),function(e){function t(e,t){if(!e.originalErr)for(var n=((e.message||e)+(e.stack?"\n"+e.stack:"")).toString().split("\n"),r=[],a=0;as.length?(o[s]&&"/"||"")+t.substr(s.length):"")}else{var d=s.split("*");if(d.length>2)throw new TypeError("Only one wildcard in a path is permitted");var f=d[0].length;f>=a&&t.substr(0,d[0].length)==d[0]&&t.substr(t.length-d[1].length)==d[1]&&(a=f,r=s,n=t.substr(d[0].length,t.length-d[1].length-d[0].length))}}var m=o[r];return"string"==typeof n&&(m=m.replace("*",n)),m}function m(e){for(var t=[],n=[],r=0,a=e.length;a>r;r++){var o=$.call(t,e[r]);-1===o?(t.push(e[r]),n.push([r])):n[o].push(r)}return{names:t,indices:n}}function p(t){var n={};if(("object"==typeof t||"function"==typeof t)&&t!==e)if(Q)for(var r in t)"default"!==r&&h(n,t,r);else g(n,t);return n["default"]=t,J(n,"__useDefault",{value:!0}),n}function h(e,t,n){try{var r;(r=Object.getOwnPropertyDescriptor(t,n))&&J(e,n,r)}catch(a){return e[n]=t[n],!1}}function g(e,t,n){var r=t&&t.hasOwnProperty;for(var a in t)(!r||t.hasOwnProperty(a))&&(n&&a in e||(e[a]=t[a]));return e}function v(e,t,n){var r=t&&t.hasOwnProperty;for(var a in t)if(!r||t.hasOwnProperty(a)){var o=t[a];a in e?o instanceof Array&&e[a]instanceof Array?e[a]=[].concat(n?o:e[a]).concat(n?e[a]:o):"object"==typeof o&&null!==o&&"object"==typeof e[a]?e[a]=g(g({},e[a]),o,n):n||(e[a]=o):e[a]=o}}function y(e,t,n,r,a){for(var o in t)if(-1!=$.call(["main","format","defaultExtension","basePath"],o))e[o]=t[o];else if("map"==o)g(e.map=e.map||{},t.map);else if("meta"==o)g(e.meta=e.meta||{},t.meta);else if("depCache"==o)for(var i in t.depCache){var s;s="./"==i.substr(0,2)?n+"/"+i.substr(2):k.call(r,i),r.depCache[s]=(r.depCache[s]||[]).concat(t.depCache[i])}else!a||-1!=$.call(["browserConfig","nodeConfig","devConfig","productionConfig"],o)||t.hasOwnProperty&&!t.hasOwnProperty(o)||w.call(r,'"'+o+'" is not a valid package configuration option in package '+n)}function b(e,t,n,r){var a;if(e.packages[t]){var o=e.packages[t];a=e.packages[t]={},y(a,r?n:o,t,e,r),y(a,r?o:n,t,e,!r)}else a=e.packages[t]=n;return"object"==typeof a.main&&(a.map=a.map||{},a.map["./@main"]=a.main,a.main["default"]=a.main["default"]||"./",a.main="@main"),a}function w(e){this.warnings&&"undefined"!=typeof console&&console.warn&&console.warn(e)}function x(e,t){e.metadata.entry=R(),e.metadata.entry.execute=function(){return t},e.metadata.entry.deps=[],e.metadata.format="defined"}function S(e,t){for(var n=e.split(".");n.length;)t=t[n.shift()];return t}function E(e,t){var n,r=0;for(var a in e)if(t.substr(0,a.length)==a&&(t.length==a.length||"/"==t[a.length])){var o=a.split("/").length;if(r>=o)continue;n=a,r=o}return n}function _(e){this._loader.baseURL!==this.baseURL&&("/"!=this.baseURL[this.baseURL.length-1]&&(this.baseURL+="/"),this._loader.baseURL=this.baseURL=new G(this.baseURL,K).href)}function P(e,t){this.set("@system-env",te=this.newModule({browser:U,node:!!this._nodeRequire,production:!t&&e,dev:t||!e,build:t,"default":!0}))}function j(e,t){if(!d(e))throw new Error("Node module "+e+" can't be loaded as it is not a package require.");if(!ne){var n=this._nodeRequire("module"),r=t.substr(A?8:7);ne=new n(r),ne.paths=n._nodeModulePaths(r)}return ne.require(e)}function k(e,t){if(u(e))return c(e,t);if(l(e))return e;var n=E(this.map,e);if(n){if(e=this.map[n]+e.substr(n.length),u(e))return c(e);if(l(e))return e}if(this.has(e))return e;if("@node/"==e.substr(0,6)){if(!this._nodeRequire)throw new TypeError("Error loading "+e+". Can only load node core modules in Node.");return this.builder?this.set(e,this.newModule({})):this.set(e,this.newModule(p(j.call(this,e.substr(6),this.baseURL)))),e}return _.call(this),f(this,e)||this.baseURL+e}function O(e,t,n){te.browser&&t.browserConfig&&n(t.browserConfig),te.node&&t.nodeConfig&&n(t.nodeConfig),te.dev&&t.devConfig&&n(t.devConfig),te.build&&t.buildConfig&&n(t.buildConfig),te.production&&t.productionConfig&&n(t.productionConfig)}function M(e){var t=e.match(oe);return t&&"System.register"==e.substr(t[0].length,15)}function R(){return{name:null,deps:null,originalIndices:null,declare:null,execute:null,executingRequire:!1,declarative:!1,normalizedDeps:null,groupIndex:null,evaluated:!1,module:null,esModule:null,esmExports:!1}}function z(t){if("string"==typeof t)return S(t,e);if(!(t instanceof Array))throw new Error("Global exports must be a string or array.");for(var n={},r=!0,a=0;at;t++)if(this[t]===e)return t;return-1};!function(){try{Object.defineProperty({},"a",{})&&(J=Object.defineProperty)}catch(e){J=function(e,t,n){try{e[t]=n.value||n.get.call(e)}catch(r){}}}}();var N,F="_"==new Error(0,"_").fileName;if("undefined"!=typeof document&&document.getElementsByTagName){if(N=document.baseURI,!N){var B=document.getElementsByTagName("base");N=B[0]&&B[0].href||window.location.href}}else"undefined"!=typeof location&&(N=e.location.href);if(N)N=N.split("#")[0].split("?")[0],N=N.substr(0,N.lastIndexOf("/")+1);else{if("undefined"==typeof process||!process.cwd)throw new TypeError("No environment baseURI");N="file://"+(A?"/":"")+process.cwd()+"/",A&&(N=N.replace(/\\/g,"/"))}try{var H="test:"==new e.URL("test:///").protocol}catch(X){}var G=H?e.URL:e.URLPolyfill;J(n.prototype,"toString",{value:function(){return"Module"}}),function(){function e(e){return{status:"loading",name:e||"",linkSets:[],dependencies:[],metadata:{}}}function a(e,t,n){return new Promise(u({step:n.address?"fetch":"locate",loader:e,moduleName:t,moduleMetadata:n&&n.metadata||{},moduleSource:n.source,moduleAddress:n.address}))}function o(t,n,r,a){return new Promise(function(e,o){e(t.loaderObj.normalize(n,r,a))}).then(function(n){var r;if(t.modules[n])return r=e(n),r.status="linked",r.module=t.modules[n],r;for(var a=0,o=t.loads.length;o>a;a++)if(r=t.loads[a],r.name==n)return r;return r=e(n),t.loads.push(r),i(t,r),r})}function i(e,t){s(e,t,Promise.resolve().then(function(){return e.loaderObj.locate({name:t.name,metadata:t.metadata})}))}function s(e,t,n){l(e,t,n.then(function(n){return"loading"==t.status?(t.address=n,e.loaderObj.fetch({name:t.name,metadata:t.metadata,address:n})):void 0}))}function l(e,t,n){n.then(function(n){return"loading"==t.status?(t.address=t.address||t.name,Promise.resolve(e.loaderObj.translate({name:t.name,metadata:t.metadata,address:t.address,source:n})).then(function(n){return t.source=n,e.loaderObj.instantiate({name:t.name,metadata:t.metadata,address:t.address,source:n})}).then(function(e){if(void 0===e)throw new TypeError("Declarative modules unsupported in the polyfill.");if("object"!=typeof e)throw new TypeError("Invalid instantiate return value");t.depsList=e.deps||[],t.execute=e.execute}).then(function(){t.dependencies=[];for(var n=t.depsList,r=[],a=0,i=n.length;i>a;a++)(function(n,a){r.push(o(e,n,t.name,t.address).then(function(e){if(t.dependencies[a]={key:n,value:e.name},"linked"!=e.status)for(var r=t.linkSets.concat([]),o=0,i=r.length;i>o;o++)c(r[o],e)}))})(n[a],a);return Promise.all(r)}).then(function(){t.status="loaded";for(var e=t.linkSets.concat([]),n=0,r=e.length;r>n;n++)m(e[n],t)})):void 0})["catch"](function(e){t.status="failed",t.exception=e;for(var n=t.linkSets.concat([]),r=0,a=n.length;a>r;r++)p(n[r],t,e)})}function u(t){return function(n,r){var a=t.loader,o=t.moduleName,u=t.step;if(a.modules[o])throw new TypeError('"'+o+'" already exists in the module table');for(var c,f=0,m=a.loads.length;m>f;f++)if(a.loads[f].name==o&&(c=a.loads[f],"translate"!=u||c.source||(c.address=t.moduleAddress,l(a,c,Promise.resolve(t.moduleSource))),c.linkSets.length&&c.linkSets[0].loads[0].name==c.name))return c.linkSets[0].done.then(function(){n(c)});var p=c||e(o);p.metadata=t.moduleMetadata;var h=d(a,p);a.loads.push(p),n(h.done),"locate"==u?i(a,p):"fetch"==u?s(a,p,Promise.resolve(t.moduleAddress)):(p.address=t.moduleAddress,l(a,p,Promise.resolve(t.moduleSource)))}}function d(e,t){var n={loader:e,loads:[],startingLoad:t,loadingCount:0};return n.done=new Promise(function(e,t){n.resolve=e,n.reject=t}),c(n,t),n}function c(e,t){if("failed"!=t.status){for(var n=0,r=e.loads.length;r>n;n++)if(e.loads[n]==t)return;e.loads.push(t),t.linkSets.push(e),"loaded"!=t.status&&e.loadingCount++;for(var a=e.loader,n=0,r=t.dependencies.length;r>n;n++)if(t.dependencies[n]){var o=t.dependencies[n].value;if(!a.modules[o])for(var i=0,s=a.loads.length;s>i;i++)if(a.loads[i].name==o){c(e,a.loads[i]);break}}}}function f(e){var t=!1;try{y(e,function(n,r){p(e,n,r),t=!0})}catch(n){p(e,null,n),t=!0}return t}function m(e,t){if(e.loadingCount--,!(e.loadingCount>0)){var n=e.startingLoad;if(e.loader.loaderObj.execute===!1){for(var r=[].concat(e.loads),a=0,o=r.length;o>a;a++){var t=r[a];t.module={name:t.name,module:w({}),evaluated:!0},t.status="linked",h(e.loader,t)}return e.resolve(n)}var i=f(e);i||e.resolve(n)}}function p(e,n,r){var a=e.loader;e:if(n)if(e.loads[0].name==n.name)r=t(r,"Error loading "+n.name);else{for(var o=0;oo;o++){var n=u[o];a.loaderObj.failed=a.loaderObj.failed||[],-1==$.call(a.loaderObj.failed,n)&&a.loaderObj.failed.push(n);var c=$.call(n.linkSets,e);if(n.linkSets.splice(c,1),0==n.linkSets.length){var f=$.call(e.loader.loads,n);-1!=f&&e.loader.loads.splice(f,1)}}e.reject(r)}function h(e,t){if(e.loaderObj.trace){e.loaderObj.loads||(e.loaderObj.loads={});var n={};t.dependencies.forEach(function(e){n[e.key]=e.value}),e.loaderObj.loads[t.name]={name:t.name,deps:t.dependencies.map(function(e){return e.key}),depMap:n,address:t.address,metadata:t.metadata,source:t.source}}t.name&&(e.modules[t.name]=t.module);var r=$.call(e.loads,t);-1!=r&&e.loads.splice(r,1);for(var a=0,o=t.linkSets.length;o>a;a++)r=$.call(t.linkSets[a].loads,t),-1!=r&&t.linkSets[a].loads.splice(r,1);t.linkSets.splice(0,t.linkSets.length)}function g(e,t,r){try{var a=t.execute()}catch(o){return void r(t,o)}return a&&a instanceof n?a:void r(t,new TypeError("Execution must define a Module instance"))}function v(e,t,n){var r=e._loader.importPromises;return r[t]=n.then(function(e){return r[t]=void 0,e},function(e){throw r[t]=void 0,e})}function y(e,t){var n=e.loader;if(e.loads.length)for(var r=e.loads.concat([]),a=0;a "'+r.paths[o]+'" uses wildcards which are being deprecated for just leaving a trailing "/" to indicate folder paths.')}if(e.defaultJSExtensions&&(r.defaultJSExtensions=e.defaultJSExtensions,w.call(r,"The defaultJSExtensions configuration option is deprecated, use packages configuration instead.")),e.pluginFirst&&(r.pluginFirst=e.pluginFirst),e.map)for(var o in e.map){var i=e.map[o];if("string"!=typeof i){var s=r.defaultJSExtensions&&".js"!=o.substr(o.length-3,3),l=r.decanonicalize(o);s&&".js"==l.substr(l.length-3,3)&&(l=l.substr(0,l.length-3));var u="";for(var c in r.packages)l.substr(0,c.length)==c&&(!l[c.length]||"/"==l[c.length])&&u.split("/").lengtha&&(n=o,a=r));return n}function t(e,t,n,r,a){if(!r||"/"==r[r.length-1]||a||t.defaultExtension===!1)return r;var o=!1;if(t.meta&&p(t.meta,r,function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?o=!0:void 0}),!o&&e.meta&&p(e.meta,n+"/"+r,function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?o=!0:void 0}),o)return r;var i="."+(t.defaultExtension||"js");return r.substr(r.length-i.length)!=i?r+i:r}function n(e,n,r,a,i){if(!a){if(!n.main)return r+(e.defaultJSExtensions?".js":"");a="./"==n.main.substr(0,2)?n.main.substr(2):n.main}if(n.map){var s="./"+a,l=E(n.map,s);if(l||(s="./"+t(e,n,r,a,i),s!="./"+a&&(l=E(n.map,s))),l){var u=o(e,n,r,l,s,i);if(u)return u}}return r+"/"+t(e,n,r,a,i)}function r(e,t,n,r){if("."==e)throw new Error("Package "+n+' has a map entry for "." which is not permitted.');return t.substr(0,e.length)==e&&r.length>e.length?!1:!0}function o(e,n,a,o,i,s){"/"==i[i.length-1]&&(i=i.substr(0,i.length-1));var l=n.map[o];if("object"==typeof l)throw new Error("Synchronous conditional normalization not supported sync normalizing "+o+" in "+a);if(r(o,l,a,i)&&"string"==typeof l){if("."==l)l=a;else if("./"==l.substr(0,2))return a+"/"+t(e,n,a,l.substr(2)+i.substr(o.length),s);return e.normalizeSync(l+i.substr(o.length),a+"/")}}function l(e,n,r,a,o){if(!a){if(!n.main)return Promise.resolve(r+(e.defaultJSExtensions?".js":""));a="./"==n.main.substr(0,2)?n.main.substr(2):n.main}var i,s;return n.map&&(i="./"+a,s=E(n.map,i),s||(i="./"+t(e,n,r,a,o),i!="./"+a&&(s=E(n.map,i)))),(s?d(e,n,r,s,i,o):Promise.resolve()).then(function(i){return i?Promise.resolve(i):Promise.resolve(r+"/"+t(e,n,r,a,o))})}function u(e,n,r,a,o,i,s){if("."==o)o=r;else if("./"==o.substr(0,2))return Promise.resolve(r+"/"+t(e,n,r,o.substr(2)+i.substr(a.length),s)).then(function(t){return T.call(e,t,r+"/")});return e.normalize(o+i.substr(a.length),r+"/")}function d(e,t,n,a,o,i){"/"==o[o.length-1]&&(o=o.substr(0,o.length-1));var s=t.map[a];if("string"==typeof s)return r(a,s,n,o)?u(e,t,n,a,s,o,i):Promise.resolve();if(e.builder)return Promise.resolve(n+"/#:"+o);var l=[],d=[];for(var c in s){var f=I(c);d.push({condition:f,map:s[c]}),l.push(e["import"](f.module,n))}return Promise.all(l).then(function(e){for(var t=0;tl&&(l=n),v(s,t,n&&l>n)}),v(n.metadata,s)}o.format&&!n.metadata.loader&&(n.metadata.format=n.metadata.format||o.format)}return t})}})}(),function(){function t(){if(s&&"interactive"===s.script.readyState)return s.load;for(var e=0;ea;a++){var i=e.normalizedDeps[a],s=n.defined[i];if(s&&!s.evaluated){var l=e.groupIndex+(s.declarative!=e.declarative);if(null===s.groupIndex||s.groupIndex=0;i--){for(var s=a[i],l=0;lr;r++){var s=a.importers[r];if(!s.locked){var l=$.call(s.dependencies,a),u=s.setters[l];u&&u(o)}}return a.locked=!1,t},{id:t.name});if("function"==typeof i&&(i={setters:[],execute:i}),i=i||{setters:[],execute:function(){}},a.setters=i.setters,a.execute=i.execute,!a.setters||!a.execute)throw new TypeError("Invalid System.register form for "+t.name);for(var s=0,d=t.normalizedDeps.length;d>s;s++){var c,f=t.normalizedDeps[s],m=n.defined[f],p=r[f];p?c=p.exports:m&&!m.declarative?c=m.esModule:m?(u(m,n),p=m.module,c=p.exports):c=n.get(f),p&&p.importers?(p.importers.push(a),a.dependencies.push(p)):a.dependencies.push(null);for(var h=t.originalIndices[s],g=0,v=h.length;v>g;++g){var y=h[g];a.setters[y]&&a.setters[y](c)}}}}function d(e,t){var n,r=t.defined[e];if(r)r.declarative?f(e,r,[],t):r.evaluated||c(r,t),n=r.module.exports;else if(n=t.get(e),!n)throw new Error("Unable to load dependency "+e+".");return(!r||r.declarative)&&n&&n.__useDefault?n["default"]:n}function c(t,r){if(!t.module){var a={},o=t.module={exports:a,id:t.name};if(!t.executingRequire)for(var i=0,s=t.normalizedDeps.length;s>i;i++){var l=t.normalizedDeps[i],u=r.defined[l];u&&c(u,r)}t.evaluated=!0;var f=t.execute.call(e,function(e){for(var n=0,a=t.deps.length;a>n;n++)if(t.deps[n]==e)return d(t.normalizedDeps[n],r);var o=r.normalizeSync(e,t.name);if(-1!=$.call(t.normalizedDeps,o))return d(o,r);throw new Error("Module "+e+" not declared as a dependency of "+t.name)},a,o);void 0!==f&&(o.exports=f),a=o.exports,a&&(a.__esModule||a instanceof n)?t.esModule=r.newModule(a):t.esmExports&&a!==e?t.esModule=r.newModule(p(a)):t.esModule=r.newModule({"default":a,__useDefault:!0})}}function f(t,n,r,a){if(n&&!n.evaluated&&n.declarative){r.push(t);for(var o=0,i=n.normalizedDeps.length;i>o;o++){var s=n.normalizedDeps[o];-1==$.call(r,s)&&(a.defined[s]?f(s,a.defined[s],r,a):a.get(s))}n.evaluated||(n.evaluated=!0,n.module.execute.call(e))}}a.prototype.register=function(e,t,n){if("string"!=typeof e&&(n=t,t=e,e=null),"boolean"==typeof n)return this.registerDynamic.apply(this,arguments);var r=R();r.name=e&&(this.decanonicalize||this.normalize).call(this,e),r.declarative=!0,r.deps=t,r.declare=n,this.pushRegister_({amd:!1,entry:r})},a.prototype.registerDynamic=function(e,t,n,r){"string"!=typeof e&&(r=n,n=t,t=e,e=null);var a=R();a.name=e&&(this.decanonicalize||this.normalize).call(this,e),a.deps=t,a.execute=r,a.executingRequire=n,this.pushRegister_({amd:!1,entry:a})},i("reduceRegister_",function(){return function(e,t){if(t){var n=t.entry,r=e&&e.metadata;if(n.name&&(n.name in this.defined||(this.defined[n.name]=n),r&&(r.bundle=!0)),!n.name||e&&!r.entry&&n.name==e.name){if(!r)throw new TypeError("Invalid System.register call. Anonymous System.register calls can only be made by modules loaded by SystemJS.import and not via script tags.");if(r.entry)throw"register"==r.format?new Error("Multiple anonymous System.register calls in module "+e.name+". If loading a bundle, ensure all the System.register calls are named."):new Error("Module "+e.name+" interpreted as "+r.format+" module format, but called System.register.");r.format||(r.format="register"),r.entry=n}}}}),s(function(e){return function(){e.call(this),this.defined={},this._loader.moduleRecords={}}}),J(o,"toString",{value:function(){return"Module"}}),i("delete",function(e){return function(t){return delete this._loader.moduleRecords[t],delete this.defined[t],e.call(this,t)}}),i("fetch",function(e){return function(t){return this.defined[t.name]?(t.metadata.format="defined",""):(t.metadata.deps=t.metadata.deps||[],e.call(this,t))}}),i("translate",function(e){return function(t){return t.metadata.deps=t.metadata.deps||[],Promise.resolve(e.apply(this,arguments)).then(function(e){return("register"==t.metadata.format||"system"==t.metadata.format||!t.metadata.format&&M(t.source))&&(t.metadata.format="register"),e})}}),i("load",function(e){return function(t){var n=this,a=n.defined[t];return!a||a.deps.length?e.apply(this,arguments):(a.originalIndices=a.normalizedDeps=[],r(t,a,n),f(t,a,[],n),a.esModule||(a.esModule=n.newModule(a.module.exports)),n.trace||(n.defined[t]=void 0),n.set(t,a.esModule),Promise.resolve())}}),i("instantiate",function(e){return function(t){"detect"==t.metadata.format&&(t.metadata.format=void 0),e.call(this,t);var n,a=this;if(a.defined[t.name])n=a.defined[t.name],n.declarative||(n.deps=n.deps.concat(t.metadata.deps)),n.deps=n.deps.concat(t.metadata.deps);else if(t.metadata.entry)n=t.metadata.entry,n.deps=n.deps.concat(t.metadata.deps);else if(!(a.builder&&t.metadata.bundle||"register"!=t.metadata.format&&"esm"!=t.metadata.format&&"es6"!=t.metadata.format)){if("undefined"!=typeof __exec&&__exec.call(a,t),!t.metadata.entry&&!t.metadata.bundle)throw new Error(t.name+" detected as "+t.metadata.format+" but didn't execute.");n=t.metadata.entry,n&&t.metadata.deps&&(n.deps=n.deps.concat(t.metadata.deps))}n||(n=R(),n.deps=t.metadata.deps,n.execute=function(){}),a.defined[t.name]=n;var o=m(n.deps);n.deps=o.names,n.originalIndices=o.indices,n.name=t.name,n.esmExports=t.metadata.esmExports!==!1;for(var i=[],s=0,l=n.deps.length;l>s;s++)i.push(Promise.resolve(a.normalize(n.deps[s],t.name)));return Promise.all(i).then(function(e){return n.normalizedDeps=e,{deps:n.deps,execute:function(){return r(t.name,n,a),f(t.name,n,[],a),n.esModule||(n.esModule=a.newModule(n.module.exports)),a.trace||(a.defined[t.name]=void 0),n.esModule}}})}})}(),i("reduceRegister_",function(e){return function(t,n){if(n||!t.metadata.exports&&(!q||"global"!=t.metadata.format))return e.call(this,t,n);t.metadata.format="global";var r=t.metadata.entry=R();r.deps=t.metadata.deps;var a=z(t.metadata.exports);r.execute=function(){return a}}}),s(function(t){return function(){function n(t){if(Object.keys)Object.keys(e).forEach(t);else for(var n in e)i.call(e,n)&&t(n)}function r(t){n(function(n){if(-1==$.call(s,n)){try{var r=e[n]}catch(a){s.push(n)}t(n,r)}})}var a=this;t.call(a);var o,i=Object.prototype.hasOwnProperty,s=["_g","sessionStorage","localStorage","clipboardData","frames","frameElement","external","mozAnimationStartTime","webkitStorageInfo","webkitIndexedDB","mozInnerScreenY","mozInnerScreenX"];a.set("@@global-helpers",a.newModule({prepareGlobal:function(t,n,a,i){var s=e.define;e.define=void 0;var l;if(a){l={};for(var u in a)l[u]=e[u],e[u]=a[u]}return n||(o={},r(function(e,t){o[e]=t})),function(){var t,a=n?z(n):{},u=!!n;if((!n||i)&&r(function(r,s){o[r]!==s&&"undefined"!=typeof s&&(i&&(e[r]=void 0),n||(a[r]=s,"undefined"!=typeof t?u||t===s||(u=!0):t=s))}),a=u?a:t,l)for(var d in l)e[d]=l[d];return e.define=s,a}}}))}}),s(function(e){return function(){function t(e){return"file:///"==e.substr(0,8)?e.substr(7+!!A):r&&e.substr(0,r.length)==r?e.substr(r.length):e}var n=this;if(e.call(n),"undefined"!=typeof window&&"undefined"!=typeof document&&window.location)var r=location.protocol+"//"+location.hostname+(location.port?":"+location.port:"");n.set("@@cjs-helpers",n.newModule({requireResolve:function(e,r){return t(n.normalizeSync(e,r))},getPathVars:function(e){var n,r=e.lastIndexOf("!");n=-1!=r?e.substr(0,r):e;var a=n.split("/");return a.pop(),a=a.join("/"),{filename:t(n),dirname:t(a)}}}))}}),i("fetch",function(t){return function(n){return n.metadata.scriptLoad&&U&&(e.define=this.amdDefine),t.call(this,n)}}),s(function(t){return function(){function n(e,t){e=e.replace(s,"");var n=e.match(d),r=(n[1].split(",")[t]||"require").replace(c,""),a=f[r]||(f[r]=new RegExp(l+r+u,"g"));a.lastIndex=0;for(var o,i=[];o=a.exec(e);)i.push(o[2]||o[3]);return i}function r(e,t,n,a){if("object"==typeof e&&!(e instanceof Array))return r.apply(null,Array.prototype.splice.call(arguments,1,arguments.length-1));if("string"==typeof e&&"function"==typeof t&&(e=[e]),!(e instanceof Array)){if("string"==typeof e){var i=o.defaultJSExtensions&&".js"!=e.substr(e.length-3,3),s=o.decanonicalize(e,a);i&&".js"==s.substr(s.length-3,3)&&(s=s.substr(0,s.length-3));var l=o.get(s);if(!l)throw new Error('Module not already loaded loading "'+e+'" as '+s+(a?' from "'+a+'".':"."));return l.__useDefault?l["default"]:l}throw new TypeError("Invalid require")}for(var u=[],d=0;d1;)r=a.shift(),e=e[r]=e[r]||{};r=a.shift(),r in e||(e[r]=n)}s(function(e){return function(){this.meta={},e.call(this)}}),i("locate",function(e){return function(t){var n,r=this.meta,a=t.name,o=0;for(var i in r)if(n=i.indexOf("*"),-1!==n&&i.substr(0,n)===a.substr(0,n)&&i.substr(n+1)===a.substr(a.length-i.length+n+1)){var s=i.split("/").length;s>o&&(o=s),v(t.metadata,r[i],o!=s)}return r[a]&&v(t.metadata,r[a]),e.call(this,t)}});var t=/^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/,n=/\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;i("translate",function(r){return function(a){if("defined"==a.metadata.format)return a.metadata.deps=a.metadata.deps||[],Promise.resolve(a.source);var o=a.source.match(t);if(o)for(var i=o[0].match(n),s=0;s')}else e()}else if("undefined"!=typeof importScripts){var a="";try{throw new Error("_")}catch(o){o.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/,function(e,t){$__curScript={src:t},a=t.replace(/\/[^\/]*$/,"/")})}t&&importScripts(a+"system-polyfills.js"),e()}else $__curScript="undefined"!=typeof __filename?{src:__filename}:null,e()}(); -//# sourceMappingURL=system-csp-production.js.map diff --git a/node_modules/systemjs/dist/system-csp-production.js.map b/node_modules/systemjs/dist/system-csp-production.js.map deleted file mode 100644 index e1fb76817..000000000 --- a/node_modules/systemjs/dist/system-csp-production.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["system-csp-production.src.js"],"names":["bootstrap","global","URLPolyfill","url","baseURL","TypeError","m","String","replace","match","RangeError","protocol","username","password","host","hostname","port","pathname","search","hash","undefined","base","flag","slice","lastIndexOf","output","p","pop","push","join","this","origin","href","self","__global","addToError","err","msg","originalErr","stack","message","toString","split","newStack","i","length","$__curScript","indexOf","src","newMsg","substr","isBrowser","isWindows","newErr","errArgs","Error","fileName","lineNumber","Module","Loader","options","_loader","loaderObj","loads","modules","importPromises","moduleRecords","defineProperty","get","SystemJSLoader","call","paths","systemJSConstructor","SystemProto","hook","name","prototype","hookConstructor","isAbsolute","absURLRegEx","isRel","isPlain","urlResolve","parent","baseURI","URL","baseURIObj","applyPaths","loader","wildcard","pathMatch","maxWildcardPrefixLen","pathsCache","hasOwnProperty","path","pathParts","wildcardPrefixLen","outPath","group","deps","names","indices","l","index","getESModule","exports","esModule","getOwnPropertyDescriptor","defineOrCopyProperty","extend","value","targetObj","sourceObj","propName","d","Object","ex","a","b","prepend","extendMeta","val","Array","concat","extendPkgConfig","pkgCfgA","pkgCfgB","pkgName","warnInvalidProperties","prop","map","meta","depCache","dNormalized","coreResolve","warn","setPkgConfig","cfg","prependConfig","pkg","packages","basePkg","main","warnings","console","createInstantiate","load","result","metadata","entry","createEntry","execute","format","readMemberExpression","pParts","shift","getMapMatch","bestMatch","bestMatchLength","curMatchLength","prepareBaseURL","setProduction","isProduction","isBuilder","set","envModule","newModule","browser","node","_nodeRequire","production","dev","build","default","getNodeModule","parentModuleContext","_nodeModulePaths","require","parentName","mapMatch","has","builder","envSet","envCallback","browserConfig","nodeConfig","devConfig","buildConfig","productionConfig","detectRegisterFormat","source","leadingCommentAndMeta","leadingCommentAndMetaRegEx","originalIndices","declare","executingRequire","declarative","normalizedDeps","groupIndex","evaluated","module","esmExports","getGlobalValue","globalValue","first","parseCondition","condition","conditionExport","conditionModule","negation","conditionExportIndex","sysConditions","negate","serializeCondition","conditionObj","resolveCondition","bool","normalize","then","normalizedCondition","q","interpolateConditional","conditionalMatch","interpolationRegEx","Promise","resolve","conditionValue","booleanConditional","booleanIndex","isWorker","window","importScripts","document","process","platform","assert","item","thisLen","e","obj","opt","getElementsByTagName","bases","location","cwd","nativeURL","createLoad","status","anonCnt","linkSets","dependencies","loadModule","asyncStartLoadPartwayThrough","step","address","moduleName","moduleMetadata","moduleSource","moduleAddress","requestLoad","request","refererName","refererAddress","reject","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","depsList","loadPromises","depLoad","key","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","doLink","error","link","_newModule","finishLoad","abrupt","checkError","pLoad","dep","failed","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","loadIndex","doDynamicExecute","linkError","createImportPromise","promise","constructor","define","delete","import","parentAddress","sourcePromise","pNames","getOwnPropertyNames","configurable","enumerable","freeze","referrerName","referrerAddress","System","fetchTextFromURL","XMLHttpRequest","authorization","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","addEventListener","open","setRequestHeader","withCredentials","setTimeout","send","fs","readFile","data","dataString","opts","headers","Accept","credentials","r","ok","text","scriptSrc","defaultJSExtensions","pluginFirst","loaderErrorStack","skipExt","resolved","httpRequest","systemImport","__useDefault","systemTranslate","apply","arguments","JSON","parse","getConfig","curCurScript","config","isEnvConfig","checkHasConfig","transpilerRuntime","loadedTranspilerRuntime","bundles","packageConfigPaths","v","defaultJSExtension","decanonicalize","pkgMatch","packageLength","Math","max","normalized","bundle","normalizedBundleDep","c","getPackage","curPkg","pkgLen","curPkgLen","addDefaultExtension","subPath","skipExtensions","defaultExtension","metaMatch","getMetaMatches","metaPattern","matchMeta","matchDepth","applyPackageConfigSync","mapPath","mapped","doMapSync","validMapping","normalizeSync","applyPackageConfig","doMap","doStringMap","conditionPromises","conditions","conditionValues","createPkgConfigPathObj","lastWildcard","regEx","RegExp","getPackageConfigMatch","configPath","exactMatch","packageConfigPath","packageName","loadPackageConfigPath","pkgConfigPath","configLoader","pluginLoader","systemjs","pkgMeta","matchFn","wildcardIndex","dotRel","exactMeta","decanonicalized","isPlugin","parentPackageName","parentPackage","parentMap","parentMapMatch","pkgConfigMatch","isConfigured","configured","bestDepth","getInteractiveScriptLoad","interactiveScript","script","interactiveLoadingScripts","webWorkerImport","integrity","workerLoad","head","curSystem","curRequire","ieEvents","s","createElement","isOpera","opera","attachEvent","loadingCnt","registerQueue","pushRegister","register","reduceRegister_","scriptLoad","complete","evt","cleanup","detachEvent","removeEventListener","removeChild","async","crossOrigin","setAttribute","appendChild","buildGroups","groups","depName","depEntry","defined","depGroupIndex","startEntry","curGroupDeclarative","linkDeclarativeModule","linkDynamicModule","ModuleRecord","getOrCreateModuleRecord","importers","declaration","locked","importerModule","importerIndex","setter","setters","id","depExports","depModule","len","getModule","ensureEvaluated","nameNormalized","__esModule","seen","registerDynamic","pushRegister_","amd","curMeta","del","doLoad","__exec","grouped","normalizePromises","reduceRegister","forEachGlobal","callback","keys","g","forEachGlobalValue","globalName","ignoredGlobalProps","globalSnapshot","prepareGlobal","globals","encapsulate","curDefine","oldGlobals","singleGlobal","multipleExports","stripOrigin","windowOrigin","requireResolve","parentId","getPathVars","moduleId","filename","pluginIndex","dirname","amdDefine","getCJSDeps","requireIndex","commentRegEx","params","fnBracketRegEx","requireAlias","wsRegEx","requireRegEx","requireRegExs","cjsRequirePre","cjsRequirePost","lastIndex","errback","referer","dynamicRequires","factory","req","contextualRequire","depValues","uri","moduleIndex","exportsIndex","toUrl","amdRequire","getParentName","parentPluginIndex","parsePlugin","argumentName","pluginName","argument","plugin","combinePluginParts","checkDefaultExtension","arg","createNormalizeSync","parsed","pluginSyntaxIndex","loaderNormalized","loaderModule","args","sourceMap","originalName","file","sources","calledInstantiate","alias","aliasDeps","_export","setMetaProperty","target","curPart","depth","metaRegEx","metaPartRegEx","metaParts","firstChar","metaString","metaName","metaValue","loadedBundles","matched","curModule","parts","substring","SystemJS","version","doPolyfill","scripts","currentScript","defer","curPath","basePath","systemJSBootstrap","write","__filename"],"mappings":";;;CAGA,WACA,QAASA,MACT,SAAUC,GACV,QAASC,GAAYC,EAAKC,GACxB,GAAkB,gBAAPD,GACT,KAAM,IAAIE,WAAU,uBACtB,IAAIC,GAAIC,OAAOJ,GAAKK,QAAQ,aAAc,IAAIA,QAAQ,MAAO,KAAKC,MAAM,mHACxE,KAAKH,EACH,KAAM,IAAII,YAAW,qBACvB,IAAIC,GAAWL,EAAE,IAAM,GACnBM,EAAWN,EAAE,IAAM,GACnBO,EAAWP,EAAE,IAAM,GACnBQ,EAAOR,EAAE,IAAM,GACfS,EAAWT,EAAE,IAAM,GACnBU,EAAOV,EAAE,IAAM,GACfW,EAAWX,EAAE,IAAM,GACnBY,EAASZ,EAAE,IAAM,GACjBa,EAAOb,EAAE,IAAM,EACnB,IAAgBc,SAAZhB,EAAuB,CACzB,GAAIiB,GAAOjB,YAAmBF,GAAcE,EAAU,GAAIF,GAAYE,GAClEkB,GAAQX,IAAaG,IAASF,GAC9BU,GAASL,GAAaC,IACxBA,EAASG,EAAKH,QACZI,GAAwB,MAAhBL,EAAS,KACnBA,EAAYA,IAAcI,EAAKP,OAAQO,EAAKT,UAAcS,EAAKJ,SAAiB,GAAN,KAAYI,EAAKJ,SAASM,MAAM,EAAGF,EAAKJ,SAASO,YAAY,KAAO,GAAKP,EAAYI,EAAKJ,SAEtK,IAAIQ,KACJR,GAAST,QAAQ,kBAAmB,IACjCA,QAAQ,iBAAkB,KAC1BA,QAAQ,UAAW,QACnBA,QAAQ,aAAc,SAAUkB,GACrB,QAANA,EACFD,EAAOE,MAEPF,EAAOG,KAAKF,KAElBT,EAAWQ,EAAOI,KAAK,IAAIrB,QAAQ,MAAuB,MAAhBS,EAAS,GAAa,IAAM,IAClEK,IACFN,EAAOK,EAAKL,KACZD,EAAWM,EAAKN,SAChBD,EAAOO,EAAKP,KACZD,EAAWQ,EAAKR,SAChBD,EAAWS,EAAKT,UAEbD,IACHA,EAAWU,EAAKV,UAIpBM,EAAWA,EAAST,QAAQ,MAAO,KAEnCsB,KAAKC,OAASjB,EAAOH,GAAyB,KAAbA,GAA4B,KAATG,EAAc,KAAO,IAAMA,EAAO,GACtFgB,KAAKE,KAAOrB,GAAYA,GAAYG,GAAoB,SAAZH,EAAsB,KAAO,KAAoB,KAAbC,EAAkBA,GAAyB,KAAbC,EAAkB,IAAMA,EAAW,IAAM,IAAM,IAAMC,EAAOG,EAAWC,EAASC,EAC9LW,KAAKnB,SAAWA,EAChBmB,KAAKlB,SAAWA,EAChBkB,KAAKjB,SAAWA,EAChBiB,KAAKhB,KAAOA,EACZgB,KAAKf,SAAWA,EAChBe,KAAKd,KAAOA,EACZc,KAAKb,SAAWA,EAChBa,KAAKZ,OAASA,EACdY,KAAKX,KAAOA,EAEdlB,EAAOC,YAAcA,GACH,mBAAR+B,MAAsBA,KAAOhC,QACvC,SAAUiC,GAqCR,QAASC,GAAWC,EAAKC,GAEvB,IAAKD,EAAIE,YAGP,IAAK,GAFDC,KAAUH,EAAII,SAAWJ,IAAQA,EAAIG,MAAQ,KAAOH,EAAIG,MAAQ,KAAKE,WAAWC,MAAM,MACtFC,KACKC,EAAI,EAAGA,EAAIL,EAAMM,OAAQD,KACL,mBAAhBE,eAAqE,IAAtCP,EAAMK,GAAGG,QAAQD,aAAaE,OACtEL,EAASf,KAAKW,EAAMK,GAI1B,IAAIK,GAAS,eAAiBN,EAAWA,EAASd,KAAK,OAAUO,EAAII,QAAQU,OAAO,KAAO,MAASb,CAG/Fc,KACHF,EAASA,EAAOzC,QAAQ4C,EAAY,eAAiB,aAAc,IAErE,IAAIC,GAASC,EAAU,GAAIC,OAAMN,EAAQb,EAAIoB,SAAUpB,EAAIqB,YAAc,GAAIF,OAAMN,EAOnF,OALAI,GAAOd,MAAQU,EAGfI,EAAOf,YAAcF,EAAIE,aAAeF,EAEjCiB,EAoEX,QAASK,MAOT,QAASC,GAAOC,GACd9B,KAAK+B,SACHC,UAAWhC,KACXiC,SACAC,WACAC,kBACAC,kBAIFC,EAAerC,KAAM,UACnBsC,IAAK,WACH,MAAOlC,MAqvBb,QAASmC,KACPV,EAAOW,KAAKxC,MAEZA,KAAKyC,SACLzC,KAAK+B,QAAQU,SAEbC,EAAoBF,KAAKxC,MAI3B,QAAS2C,MAOT,QAASC,GAAKC,EAAMD,GAClBL,EAAeO,UAAUD,GAAQD,EAAKL,EAAeO,UAAUD,IAAS,cAE1E,QAASE,GAAgBH,GACvBF,EAAsBE,EAAKF,GAAuB,cAKpD,QAASM,GAAWH,GAClB,MAAOA,GAAKlE,MAAMsE,GAEpB,QAASC,GAAML,GACb,MAAmB,KAAXA,EAAK,MAAeA,EAAK,IAAiB,KAAXA,EAAK,IAAwB,KAAXA,EAAK,KAA0B,KAAXA,EAAK,GAEpF,QAASM,GAAQN,GACf,OAAQK,EAAML,KAAUG,EAAWH,GAKrC,QAASO,GAAWP,EAAMQ,GAExB,GAAe,KAAXR,EAAK,IAEP,GAAe,KAAXA,EAAK,IAAwB,KAAXA,EAAK,GACzB,OAAQQ,GAAUA,EAAOjC,OAAO,EAAGiC,EAAO3D,YAAY,KAAO,IAAM4D,GAAWT,EAAKzB,OAAO,OAEzF,IAAe,KAAXyB,EAAK,IAAkC,IAArBA,EAAK5B,QAAQ,KAEtC,OAAQoC,GAAUA,EAAOjC,OAAO,EAAGiC,EAAO3D,YAAY,KAAO,IAAM4D,GAAWT,CAGhF,OAAO,IAAIU,GAAIV,EAAMQ,GAAUA,EAAO3E,QAAQ,KAAM,QAAU8E,GAAYtD,KAAKxB,QAAQ,OAAQ,KAIjG,QAAS+E,GAAWC,EAAQb,GAE1B,GAAoBc,GAAhBC,EAAY,GAAcC,EAAuB,EAEjDpB,EAAQiB,EAAOjB,MACfqB,EAAaJ,EAAO3B,QAAQU,KAGhC,KAAK,GAAI7C,KAAK6C,GACZ,IAAIA,EAAMsB,gBAAmBtB,EAAMsB,eAAenE,GAAlD,CAIA,GAAIoE,GAAOvB,EAAM7C,EAKjB,IAJIoE,IAASF,EAAWlE,KACtBoE,EAAOvB,EAAM7C,GAAKkE,EAAWlE,GAAKwD,EAAWX,EAAM7C,GAAIsD,EAAMT,EAAM7C,IAAM0D,EAAUI,EAAOpF,UAGrE,KAAnBsB,EAAEqB,QAAQ,KAAa,CACzB,GAAI4B,GAAQjD,EACV,MAAO6C,GAAM7C,EAGV,IAAIiD,EAAKzB,OAAO,EAAGxB,EAAEmB,OAAS,IAAMnB,EAAEwB,OAAO,EAAGxB,EAAEmB,OAAS,KAAO8B,EAAK9B,OAASnB,EAAEmB,QAAU8B,EAAKjD,EAAEmB,OAAS,IAAMnB,EAAEA,EAAEmB,OAAS,MAAyC,KAAjC0B,EAAM7C,GAAG6C,EAAM7C,GAAGmB,OAAS,IAAyB,IAAZ0B,EAAM7C,IACxL,MAAO6C,GAAM7C,GAAGwB,OAAO,EAAGqB,EAAM7C,GAAGmB,OAAS,IAAM8B,EAAK9B,OAASnB,EAAEmB,QAAU0B,EAAM7C,IAAM,KAAO,IAAMiD,EAAKzB,OAAOxB,EAAEmB,QAAU,QAI5H,CACH,GAAIkD,GAAYrE,EAAEgB,MAAM,IACxB,IAAIqD,EAAUlD,OAAS,EACrB,KAAM,IAAIxC,WAAU,2CAEtB,IAAI2F,GAAoBD,EAAU,GAAGlD,MACjCmD,IAAqBL,GACrBhB,EAAKzB,OAAO,EAAG6C,EAAU,GAAGlD,SAAWkD,EAAU,IACjDpB,EAAKzB,OAAOyB,EAAK9B,OAASkD,EAAU,GAAGlD,SAAWkD,EAAU,KAC1DJ,EAAuBK,EACvBN,EAAYhE,EACZ+D,EAAWd,EAAKzB,OAAO6C,EAAU,GAAGlD,OAAQ8B,EAAK9B,OAASkD,EAAU,GAAGlD,OAASkD,EAAU,GAAGlD,UAKvG,GAAIoD,GAAU1B,EAAMmB,EAIpB,OAHuB,gBAAZD,KACTQ,EAAUA,EAAQzF,QAAQ,IAAKiF,IAE1BQ,EAWT,QAASC,GAAMC,GAGb,IAAK,GAFDC,MACAC,KACKzD,EAAI,EAAG0D,EAAIH,EAAKtD,OAAYyD,EAAJ1D,EAAOA,IAAK,CAC3C,GAAI2D,GAAQxD,EAAQuB,KAAK8B,EAAOD,EAAKvD,GACvB,MAAV2D,GACFH,EAAMxE,KAAKuE,EAAKvD,IAChByD,EAAQzE,MAAMgB,KAGdyD,EAAQE,GAAO3E,KAAKgB,GAGxB,OAASwD,MAAOA,EAAOC,QAASA,GAYlC,QAASG,GAAYC,GACnB,GAAIC,KAEJ,KAAuB,gBAAXD,IAAyC,kBAAXA,KAA0BA,IAAYvE,EAC5E,GAAIyE,EACF,IAAK,GAAIjF,KAAK+E,GAEF,YAAN/E,GAEJkF,EAAqBF,EAAUD,EAAS/E,OAI1CmF,GAAOH,EAAUD,EAOvB,OAJAC,GAAS,WAAaD,EACtBtC,EAAeuC,EAAU,gBACvBI,OAAO,IAEFJ,EAGT,QAASE,GAAqBG,EAAWC,EAAWC,GAClD,IACE,GAAIC,IACAA,EAAIC,OAAOR,yBAAyBK,EAAWC,KACjD9C,EAAe4C,EAAWE,EAAUC,GAExC,MAAOE,GAIL,MADAL,GAAUE,GAAYD,EAAUC,IACzB,GAIX,QAASJ,GAAOQ,EAAGC,EAAGC,GACpB,GAAI1B,GAAiByB,GAAKA,EAAEzB,cAC5B,KAAK,GAAInE,KAAK4F,KACRzB,GAAmByB,EAAEzB,eAAenE,MAEnC6F,GAAa7F,IAAK2F,KACrBA,EAAE3F,GAAK4F,EAAE5F,IAEb,OAAO2F,GAOT,QAASG,GAAWH,EAAGC,EAAGC,GACxB,GAAI1B,GAAiByB,GAAKA,EAAEzB,cAC5B,KAAK,GAAInE,KAAK4F,GACZ,IAAIzB,GAAmByB,EAAEzB,eAAenE,GAAxC,CAEA,GAAI+F,GAAMH,EAAE5F,EACNA,KAAK2F,GAEFI,YAAeC,QAASL,EAAE3F,YAAcgG,OAC/CL,EAAE3F,MAAQiG,OAAOJ,EAAUE,EAAMJ,EAAE3F,IAAIiG,OAAOJ,EAAUF,EAAE3F,GAAK+F,GAC1C,gBAAPA,IAA2B,OAARA,GAA+B,gBAARJ,GAAE3F,GAC1D2F,EAAE3F,GAAKmF,EAAOA,KAAWQ,EAAE3F,IAAK+F,EAAKF,GAC7BA,IACRF,EAAE3F,GAAK+F,GANPJ,EAAE3F,GAAK+F,GAUb,QAASG,GAAgBC,EAASC,EAASC,EAASvC,EAAQwC,GAC1D,IAAK,GAAIC,KAAQH,GACf,GAA8E,IAA1E/E,EAAQuB,MAAM,OAAQ,SAAU,mBAAoB,YAAa2D,GACnEJ,EAAQI,GAAQH,EAAQG,OAErB,IAAY,OAARA,EACPpB,EAAOgB,EAAQK,IAAML,EAAQK,QAAWJ,EAAQI,SAE7C,IAAY,QAARD,EACPpB,EAAOgB,EAAQM,KAAON,EAAQM,SAAYL,EAAQK,UAE/C,IAAY,YAARF,EACP,IAAK,GAAIf,KAAKY,GAAQM,SAAU,CAC9B,GAAIC,EAGFA,GADoB,MAAlBnB,EAAEhE,OAAO,EAAG,GACA6E,EAAU,IAAMb,EAAEhE,OAAO,GAEzBoF,EAAYhE,KAAKkB,EAAQ0B,GACzC1B,EAAO4C,SAASC,IAAgB7C,EAAO4C,SAASC,QAAoBV,OAAOG,EAAQM,SAASlB,SAGvFc,GAAiH,IAAxFjF,EAAQuB,MAAM,gBAAiB,aAAc,YAAa,oBAAqB2D,IAC3GH,EAAQjC,iBAAkBiC,EAAQjC,eAAeoC,IACrDM,EAAKjE,KAAKkB,EAAQ,IAAMyC,EAAO,4DAA8DF,GAMnG,QAASS,GAAahD,EAAQuC,EAASU,EAAKC,GAC1C,GAAIC,EAGJ,IAAKnD,EAAOoD,SAASb,GAGhB,CACH,GAAIc,GAAUrD,EAAOoD,SAASb,EAC9BY,GAAMnD,EAAOoD,SAASb,MAEtBH,EAAgBe,EAAKD,EAAgBD,EAAMI,EAASd,EAASvC,EAAQkD,GACrEd,EAAgBe,EAAKD,EAAgBG,EAAUJ,EAAKV,EAASvC,GAASkD,OAPtEC,GAAMnD,EAAOoD,SAASb,GAAWU,CAkBnC,OAPuB,gBAAZE,GAAIG,OACbH,EAAIT,IAAMS,EAAIT,QACdS,EAAIT,IAAI,WAAaS,EAAIG,KACzBH,EAAIG,KAAK,WAAaH,EAAIG,KAAK,YAAc,KAC7CH,EAAIG,KAAO,SAGNH,EAGT,QAASJ,GAAKlG,GACRP,KAAKiH,UAA8B,mBAAXC,UAA0BA,QAAQT,MAC5DS,QAAQT,KAAKlG,GAGjB,QAAS4G,GAAmBC,EAAMC,GAChCD,EAAKE,SAASC,MAAQC,IACtBJ,EAAKE,SAASC,MAAME,QAAU,WAC5B,MAAOJ,IAETD,EAAKE,SAASC,MAAMlD,QACpB+C,EAAKE,SAASI,OAAS,UA+HzB,QAASC,GAAqB/H,EAAGoF,GAE/B,IADA,GAAI4C,GAAShI,EAAEgB,MAAM,KACdgH,EAAO7G,QACZiE,EAAQA,EAAM4C,EAAOC,QACvB,OAAO7C,GAGT,QAAS8C,GAAY1B,EAAKvD,GACxB,GAAIkF,GAAWC,EAAkB,CAEjC,KAAK,GAAIpI,KAAKwG,GACZ,GAAIvD,EAAKzB,OAAO,EAAGxB,EAAEmB,SAAWnB,IAAMiD,EAAK9B,QAAUnB,EAAEmB,QAA4B,KAAlB8B,EAAKjD,EAAEmB,SAAiB,CACvF,GAAIkH,GAAiBrI,EAAEgB,MAAM,KAAKG,MAClC,IAAsBiH,GAAlBC,EACF,QACFF,GAAYnI,EACZoI,EAAkBC,EAItB,MAAOF,GAGT,QAASG,GAAexE,GAElB1D,KAAK+B,QAAQzD,UAAY0B,KAAK1B,UACa,KAAzC0B,KAAK1B,QAAQ0B,KAAK1B,QAAQyC,OAAS,KACrCf,KAAK1B,SAAW,KAElB0B,KAAK+B,QAAQzD,QAAU0B,KAAK1B,QAAU,GAAIiF,GAAIvD,KAAK1B,QAASkF,GAAYtD,MAK5E,QAASiI,GAAcC,EAAcC,GACnCrI,KAAKsI,IAAI,cAAeC,GAAYvI,KAAKwI,WACvCC,QAASpH,EACTqH,OAAQ1I,KAAK2I,aACbC,YAAaP,GAAaD,EAC1BS,IAAKR,IAAcD,EACnBU,MAAOT,EACPU,WAAW,KAuDf,QAASC,GAAcnG,EAAMvE,GAC3B,IAAK6E,EAAQN,GACX,KAAM,IAAIpB,OAAM,eAAiBoB,EAAO,mDAE1C,KAAKoG,GAAqB,CACxB,GAAIrH,GAAS5B,KAAK2I,aAAa,UAC3BpJ,EAAOjB,EAAQ8C,OAAOE,EAAY,EAAI,EAC1C2H,IAAsB,GAAIrH,GAAOrC,GACjC0J,GAAoBxG,MAAQb,EAAOsH,iBAAiB3J,GAEtD,MAAO0J,IAAoBE,QAAQtG,GAGrC,QAAS2D,GAAY3D,EAAMuG,GAEzB,GAAIlG,EAAML,GACR,MAAOO,GAAWP,EAAMuG,EACrB,IAAIpG,EAAWH,GAClB,MAAOA,EAGT,IAAIwG,GAAWvB,EAAY9H,KAAKoG,IAAKvD,EAErC,IAAIwG,EAAU,CAGZ,GAFAxG,EAAO7C,KAAKoG,IAAIiD,GAAYxG,EAAKzB,OAAOiI,EAAStI,QAE7CmC,EAAML,GACR,MAAOO,GAAWP,EACf,IAAIG,EAAWH,GAClB,MAAOA,GAGX,GAAI7C,KAAKsJ,IAAIzG,GACX,MAAOA,EAGT,IAAyB,UAArBA,EAAKzB,OAAO,EAAG,GAAgB,CACjC,IAAKpB,KAAK2I,aACR,KAAM,IAAIpK,WAAU,iBAAmBsE,EAAO,6CAKhD,OAJI7C,MAAKuJ,QACPvJ,KAAKsI,IAAIzF,EAAM7C,KAAKwI,eAEpBxI,KAAKsI,IAAIzF,EAAM7C,KAAKwI,UAAU9D,EAAYsE,EAAcxG,KAAKxC,KAAM6C,EAAKzB,OAAO,GAAIpB,KAAK1B,YACnFuE,EAMT,MAFAqF,GAAe1F,KAAKxC,MAEbyD,EAAWzD,KAAM6C,IAAS7C,KAAK1B,QAAUuE,EAgJlD,QAAS2G,GAAO9F,EAAQiD,EAAK8C,GACvBlB,GAAUE,SAAW9B,EAAI+C,eAC3BD,EAAY9C,EAAI+C,eACdnB,GAAUG,MAAQ/B,EAAIgD,YACxBF,EAAY9C,EAAIgD,YACdpB,GAAUM,KAAOlC,EAAIiD,WACvBH,EAAY9C,EAAIiD,WACdrB,GAAUO,OAASnC,EAAIkD,aACzBJ,EAAY9C,EAAIkD,aACdtB,GAAUK,YAAcjC,EAAImD,kBAC9BL,EAAY9C,EAAImD,kBAshCpB,QAASC,GAAqBC,GAC5B,GAAIC,GAAwBD,EAAOrL,MAAMuL,GACzC,OAAOD,IAA+E,mBAAtDD,EAAO5I,OAAO6I,EAAsB,GAAGlJ,OAAQ,IAGjF,QAASyG,KACP,OACE3E,KAAM,KACNwB,KAAM,KACN8F,gBAAiB,KACjBC,QAAS,KACT3C,QAAS,KACT4C,kBAAkB,EAClBC,aAAa,EACbC,eAAgB,KAChBC,WAAY,KACZC,WAAW,EACXC,OAAQ,KACR9F,SAAU,KACV+F,YAAY,GAkjBhB,QAASC,GAAejG,GACtB,GAAsB,gBAAXA,GACT,MAAOgD,GAAqBhD,EAASvE,EAEvC,MAAMuE,YAAmBiB,QACvB,KAAM,IAAInE,OAAM,4CAIlB,KAAK,GAFDoJ,MACAC,GAAQ,EACHhK,EAAI,EAAGA,EAAI6D,EAAQ5D,OAAQD,IAAK,CACvC,GAAI6E,GAAMgC,EAAqBhD,EAAQ7D,GAAIV,EACvC0K,KACFD,EAAY,WAAalF,EACzBmF,GAAQ,GAEVD,EAAYlG,EAAQ7D,GAAGF,MAAM,KAAKf,OAAS8F,EAE7C,MAAOkF,GAgtBP,QAASE,GAAeC,GACtB,GAAIC,GAAiBC,EAAiBC,EAElCA,EAA2B,KAAhBH,EAAU,GACrBI,EAAuBJ,EAAUtL,YAAY,IAsBjD,OArB4B,IAAxB0L,GACFH,EAAkBD,EAAU5J,OAAOgK,EAAuB,GAC1DF,EAAkBF,EAAU5J,OAAO+J,EAAUC,EAAuBD,GAEhEA,GACF1E,EAAKjE,KAAKxC,KAAM,4BAA8BgL,EAAY,wBAA0BE,EAAkB,KAAOD,EAAkB,KAEvG,KAAtBA,EAAgB,KAClBE,GAAW,EACXF,EAAkBA,EAAgB7J,OAAO,MAI3C6J,EAAkB,UAClBC,EAAkBF,EAAU5J,OAAO+J,GACW,IAA1CE,GAAcpK,QAAQiK,KACxBD,EAAkBC,EAClBA,EAAkB,QAKpBR,OAAQQ,GAAmB,cAC3B/E,KAAM8E,EACNK,OAAQH,GAIZ,QAASI,GAAmBC,GAC1B,MAAOA,GAAad,OAAS,KAAOc,EAAaF,OAAS,IAAM,IAAME,EAAarF,KAGrF,QAASsF,GAAiBD,EAAcpC,EAAYsC,GAClD,GAAIvL,GAAOH,IACX,OAAOA,MAAK2L,UAAUH,EAAad,OAAQtB,GAC1CwC,KAAK,SAASC,GACb,MAAO1L,GAAKiH,KAAKyE,GAChBD,KAAK,SAASE,GACb,GAAItN,GAAImJ,EAAqB6D,EAAarF,KAAMhG,EAAKmC,IAAIuJ,GAEzD,IAAIH,GAAoB,iBAALlN,GACjB,KAAM,IAAID,WAAU,aAAegN,EAAmBC,GAAgB,iCAExE,OAAOA,GAAaF,QAAU9M,EAAIA,MAMxC,QAASuN,GAAuBlJ,EAAMuG,GAEpC,GAAI4C,GAAmBnJ,EAAKlE,MAAMsN,GAElC,KAAKD,EACH,MAAOE,SAAQC,QAAQtJ,EAEzB,IAAI2I,GAAeT,EAAevI,KAAKxC,KAAMgM,EAAiB,GAAG5K,OAAO,EAAG4K,EAAiB,GAAGjL,OAAS,GAGxG,OAAIf,MAAKuJ,QACAvJ,KAAgB,UAAEwL,EAAad,OAAQtB,GAC7CwC,KAAK,SAASV,GAEb,MADAM,GAAad,OAASQ,EACfrI,EAAKnE,QAAQuN,GAAoB,KAAOV,EAAmBC,GAAgB,OAG/EC,EAAiBjJ,KAAKxC,KAAMwL,EAAcpC,GAAY,GAC5DwC,KAAK,SAASQ,GACb,GAA8B,gBAAnBA,GACT,KAAM,IAAI7N,WAAU,2BAA6BsE,EAAO,gCAE1D,IAAmC,IAA/BuJ,EAAenL,QAAQ,KACzB,KAAM,IAAI1C,WAAU,sCAAwCsE,GAAQuG,EAAa,OAASA,EAAa,IAAM,0BAA6BgD,EAAiB,mCAE7J,OAAOvJ,GAAKnE,QAAQuN,GAAoBG,KAI5C,QAASC,GAAmBxJ,EAAMuG,GAEhC,GAAIkD,GAAezJ,EAAKnD,YAAY,KAEpC,IAAoB,IAAhB4M,EACF,MAAOJ,SAAQC,QAAQtJ,EAEzB,IAAI2I,GAAeT,EAAevI,KAAKxC,KAAM6C,EAAKzB,OAAOkL,EAAe,GAGxE,OAAItM,MAAKuJ,QACAvJ,KAAgB,UAAEwL,EAAad,OAAQtB,GAC7CwC,KAAK,SAASV,GAEb,MADAM,GAAad,OAASQ,EACfrI,EAAKzB,OAAO,EAAGkL,GAAgB,KAAOf,EAAmBC,KAG7DC,EAAiBjJ,KAAKxC,KAAMwL,EAAcpC,GAAY,GAC5DwC,KAAK,SAASQ,GACb,MAAOA,GAAiBvJ,EAAKzB,OAAO,EAAGkL,GAAgB,WAr+H3D,GAAIC,GAA4B,mBAAVC,SAAwC,mBAARrM,OAA+C,mBAAjBsM,eAChFpL,EAA6B,mBAAVmL,SAA4C,mBAAZE,UACnDpL,EAA8B,mBAAXqL,UAAqD,mBAApBA,SAAQC,YAA6BD,QAAQC,SAASjO,MAAM,OAE/GyB,GAAS8G,UACZ9G,EAAS8G,SAAY2F,OAAQ,cAG/B,IASIxK,GATApB,EAAU2E,MAAM9C,UAAU7B,SAAW,SAAS6L,GAChD,IAAK,GAAIhM,GAAI,EAAGiM,EAAU/M,KAAKe,OAAYgM,EAAJjM,EAAaA,IAClD,GAAId,KAAKc,KAAOgM,EACd,MAAOhM,EAGX,OAAO,KAIT,WACE,IACQuE,OAAOhD,kBAAmB,UAC9BA,EAAiBgD,OAAOhD,gBAE5B,MAAO2K,GACL3K,EAAiB,SAAS4K,EAAK9G,EAAM+G,GACnC,IACED,EAAI9G,GAAQ+G,EAAIlI,OAASkI,EAAI5K,IAAIE,KAAKyK,GAExC,MAAMD,SAKZ,IAsCI1J,GAtCA9B,EAAwC,KAA9B,GAAIC,OAAM,EAAG,KAAKC,QAyChC,IAAuB,mBAAZgL,WAA2BA,SAASS,sBAG7C,GAFA7J,EAAUoJ,SAASpJ,SAEdA,EAAS,CACZ,GAAI8J,GAAQV,SAASS,qBAAqB,OAC1C7J,GAAU8J,EAAM,IAAMA,EAAM,GAAGlN,MAAQsM,OAAOa,SAASnN,UAG/B,mBAAZmN,YACd/J,EAAUlD,EAASiN,SAASnN,KAI9B,IAAIoD,EACFA,EAAUA,EAAQ1C,MAAM,KAAK,GAAGA,MAAM,KAAK,GAC3C0C,EAAUA,EAAQlC,OAAO,EAAGkC,EAAQ5D,YAAY,KAAO,OAEpD,CAAA,GAAsB,mBAAXiN,WAA0BA,QAAQW,IAMhD,KAAM,IAAI/O,WAAU,yBALpB+E,GAAU,WAAahC,EAAY,IAAM,IAAMqL,QAAQW,MAAQ,IAC3DhM,IACFgC,EAAUA,EAAQ5E,QAAQ,MAAO,MAMrC,IACE,GAAI6O,GAAqD,SAAzC,GAAInN,GAASmD,IAAI,YAAY1E,SAE/C,MAAMmO,IAEN,GAAIzJ,GAAMgK,EAAYnN,EAASmD,IAAMnD,EAAShC,WAwBhDiE,GAAeT,EAAOkB,UAAW,YAC/BkC,MAAO,WACL,MAAO,YAsBX,WAsGE,QAASwI,GAAW3K,GAClB,OACE4K,OAAQ,UACR5K,KAAMA,GAAQ,gBAAiB6K,EAAU,IACzCC,YACAC,gBACAtG,aASJ,QAASuG,GAAWnK,EAAQb,EAAMf,GAChC,MAAO,IAAIoK,SAAQ4B,GACjBC,KAAMjM,EAAQkM,QAAU,QAAU,SAClCtK,OAAQA,EACRuK,WAAYpL,EAEZqL,eAAgBpM,GAAWA,EAAQwF,aACnC6G,aAAcrM,EAAQkI,OACtBoE,cAAetM,EAAQkM,WAK3B,QAASK,GAAY3K,EAAQ4K,EAASC,EAAaC,GAEjD,MAAO,IAAItC,SAAQ,SAASC,EAASsC,GACnCtC,EAAQzI,EAAO1B,UAAU2J,UAAU2C,EAASC,EAAaC,MAG1D5C,KAAK,SAAS/I,GACb,GAAIuE,EACJ,IAAI1D,EAAOxB,QAAQW,GAKjB,MAJAuE,GAAOoG,EAAW3K,GAClBuE,EAAKqG,OAAS,SAEdrG,EAAKsD,OAAShH,EAAOxB,QAAQW,GACtBuE,CAGT,KAAK,GAAItG,GAAI,EAAG0D,EAAId,EAAOzB,MAAMlB,OAAYyD,EAAJ1D,EAAOA,IAE9C,GADAsG,EAAO1D,EAAOzB,MAAMnB,GAChBsG,EAAKvE,MAAQA,EAEjB,MAAOuE,EAQT,OALAA,GAAOoG,EAAW3K,GAClBa,EAAOzB,MAAMnC,KAAKsH,GAElBsH,EAAgBhL,EAAQ0D,GAEjBA,IAKX,QAASsH,GAAgBhL,EAAQ0D,GAC/BuH,EAAejL,EAAQ0D,EACrB8E,QAAQC,UAEPP,KAAK,WACJ,MAAOlI,GAAO1B,UAAU4M,QAAS/L,KAAMuE,EAAKvE,KAAMyE,SAAUF,EAAKE,cAMvE,QAASqH,GAAejL,EAAQ0D,EAAMxH,GACpCiP,EAAmBnL,EAAQ0D,EACzBxH,EAECgM,KAAK,SAASoC,GAEb,MAAmB,WAAf5G,EAAKqG,QAETrG,EAAK4G,QAAUA,EAERtK,EAAO1B,UAAU8M,OAAQjM,KAAMuE,EAAKvE,KAAMyE,SAAUF,EAAKE,SAAU0G,QAASA,KAJnF,UAUN,QAASa,GAAmBnL,EAAQ0D,EAAMxH,GACxCA,EAECgM,KAAK,SAAS5B,GACb,MAAmB,WAAf5C,EAAKqG,QAGTrG,EAAK4G,QAAU5G,EAAK4G,SAAW5G,EAAKvE,KAE7BqJ,QAAQC,QAAQzI,EAAO1B,UAAU+M,WAAYlM,KAAMuE,EAAKvE,KAAMyE,SAAUF,EAAKE,SAAU0G,QAAS5G,EAAK4G,QAAShE,OAAQA,KAG5H4B,KAAK,SAAS5B,GAEb,MADA5C,GAAK4C,OAASA,EACPtG,EAAO1B,UAAUgN,aAAcnM,KAAMuE,EAAKvE,KAAMyE,SAAUF,EAAKE,SAAU0G,QAAS5G,EAAK4G,QAAShE,OAAQA,MAIhH4B,KAAK,SAASqD,GACb,GAA0B3P,SAAtB2P,EACF,KAAM,IAAI1Q,WAAU,mDAEtB,IAAgC,gBAArB0Q,GACT,KAAM,IAAI1Q,WAAU,mCAEtB6I,GAAK8H,SAAWD,EAAkB5K,SAClC+C,EAAKK,QAAUwH,EAAkBxH,UAGlCmE,KAAK,WACJxE,EAAKwG,eAIL,KAAK,GAHDsB,GAAW9H,EAAK8H,SAEhBC,KACKrO,EAAI,EAAG0D,EAAI0K,EAASnO,OAAYyD,EAAJ1D,EAAOA,KAAK,SAAUwN,EAAS7J,GAClE0K,EAAarP,KACXuO,EAAY3K,EAAQ4K,EAASlH,EAAKvE,KAAMuE,EAAK4G,SAG5CpC,KAAK,SAASwD,GASb,GALAhI,EAAKwG,aAAanJ,IAChB4K,IAAKf,EACLtJ,MAAOoK,EAAQvM,MAGK,UAAlBuM,EAAQ3B,OAEV,IAAK,GADDE,GAAWvG,EAAKuG,SAAS9H,WACpB/E,EAAI,EAAG0D,EAAImJ,EAAS5M,OAAYyD,EAAJ1D,EAAOA,IAC1CwO,EAAiB3B,EAAS7M,GAAIsO,QAOrCF,EAASpO,GAAIA,EAEhB,OAAOoL,SAAQqD,IAAIJ,KAIpBvD,KAAK,WAIJxE,EAAKqG,OAAS,QAGd,KAAK,GADDE,GAAWvG,EAAKuG,SAAS9H,WACpB/E,EAAI,EAAG0D,EAAImJ,EAAS5M,OAAYyD,EAAJ1D,EAAOA,IAC1C0O,EAAoB7B,EAAS7M,GAAIsG,MApErC,SAwED,SAAS,SAASqI,GACjBrI,EAAKqG,OAAS,SACdrG,EAAKsI,UAAYD,CAGjB,KAAK,GADD9B,GAAWvG,EAAKuG,SAAS9H,WACpB/E,EAAI,EAAG0D,EAAImJ,EAAS5M,OAAYyD,EAAJ1D,EAAOA,IAC1C6O,EAAchC,EAAS7M,GAAIsG,EAAMqI,KAQvC,QAAS3B,GAA6B8B,GACpC,MAAO,UAASzD,EAASsC,GACvB,GAAI/K,GAASkM,EAAUlM,OACnBb,EAAO+M,EAAU3B,WACjBF,EAAO6B,EAAU7B,IAErB,IAAIrK,EAAOxB,QAAQW,GACjB,KAAM,IAAItE,WAAU,IAAMsE,EAAO,uCAInC,KAAK,GADDgN,GACK/O,EAAI,EAAG0D,EAAId,EAAOzB,MAAMlB,OAAYyD,EAAJ1D,EAAOA,IAC9C,GAAI4C,EAAOzB,MAAMnB,GAAG+B,MAAQA,IAC1BgN,EAAenM,EAAOzB,MAAMnB,GAEhB,aAARiN,GAAwB8B,EAAa7F,SACvC6F,EAAa7B,QAAU4B,EAAUxB,cACjCS,EAAmBnL,EAAQmM,EAAc3D,QAAQC,QAAQyD,EAAUzB,gBAKjE0B,EAAalC,SAAS5M,QAAU8O,EAAalC,SAAS,GAAG1L,MAAM,GAAGY,MAAQgN,EAAahN,MACzF,MAAOgN,GAAalC,SAAS,GAAGmC,KAAKlE,KAAK,WACxCO,EAAQ0D,IAKhB,IAAIzI,GAAOyI,GAAgBrC,EAAW3K,EAEtCuE,GAAKE,SAAWsI,EAAU1B,cAE1B,IAAI6B,GAAUC,EAActM,EAAQ0D,EAEpC1D,GAAOzB,MAAMnC,KAAKsH,GAElB+E,EAAQ4D,EAAQD,MAEJ,UAAR/B,EACFW,EAAgBhL,EAAQ0D,GAET,SAAR2G,EACPY,EAAejL,EAAQ0D,EAAM8E,QAAQC,QAAQyD,EAAUxB,iBAGvDhH,EAAK4G,QAAU4B,EAAUxB,cACzBS,EAAmBnL,EAAQ0D,EAAM8E,QAAQC,QAAQyD,EAAUzB,iBAWjE,QAAS6B,GAActM,EAAQuM,GAC7B,GAAIF,IACFrM,OAAQA,EACRzB,SACAgO,aAAcA,EACdC,aAAc,EAOhB,OALAH,GAAQD,KAAO,GAAI5D,SAAQ,SAASC,EAASsC,GAC3CsB,EAAQ5D,QAAUA,EAClB4D,EAAQtB,OAASA,IAEnBa,EAAiBS,EAASE,GACnBF,EAGT,QAAST,GAAiBS,EAAS3I,GACjC,GAAmB,UAAfA,EAAKqG,OAAT,CAGA,IAAK,GAAI3M,GAAI,EAAG0D,EAAIuL,EAAQ9N,MAAMlB,OAAYyD,EAAJ1D,EAAOA,IAC/C,GAAIiP,EAAQ9N,MAAMnB,IAAMsG,EACtB,MAEJ2I,GAAQ9N,MAAMnC,KAAKsH,GACnBA,EAAKuG,SAAS7N,KAAKiQ,GAGA,UAAf3I,EAAKqG,QACPsC,EAAQG,cAKV,KAAK,GAFDxM,GAASqM,EAAQrM,OAEZ5C,EAAI,EAAG0D,EAAI4C,EAAKwG,aAAa7M,OAAYyD,EAAJ1D,EAAOA,IACnD,GAAKsG,EAAKwG,aAAa9M,GAAvB,CAGA,GAAI+B,GAAOuE,EAAKwG,aAAa9M,GAAGkE,KAEhC,KAAItB,EAAOxB,QAAQW,GAGnB,IAAK,GAAIsN,GAAI,EAAG/K,EAAI1B,EAAOzB,MAAMlB,OAAYqE,EAAJ+K,EAAOA,IAC9C,GAAIzM,EAAOzB,MAAMkO,GAAGtN,MAAQA,EAA5B,CAGAyM,EAAiBS,EAASrM,EAAOzB,MAAMkO,GACvC,UASN,QAASC,GAAOL,GACd,GAAIM,IAAQ,CACZ,KACEC,EAAKP,EAAS,SAAS3I,EAAMqI,GAC3BE,EAAcI,EAAS3I,EAAMqI,GAC7BY,GAAQ,IAGZ,MAAMrD,GACJ2C,EAAcI,EAAS,KAAM/C,GAC7BqD,GAAQ,EAEV,MAAOA,GAIT,QAASb,GAAoBO,EAAS3I,GAKpC,GAFA2I,EAAQG,iBAEJH,EAAQG,aAAe,GAA3B,CAIA,GAAID,GAAeF,EAAQE,YAK3B,IAAIF,EAAQrM,OAAO1B,UAAUyF,WAAY,EAAO,CAE9C,IAAK,GADDxF,MAAW4D,OAAOkK,EAAQ9N,OACrBnB,EAAI,EAAG0D,EAAIvC,EAAMlB,OAAYyD,EAAJ1D,EAAOA,IAAK,CAC5C,GAAIsG,GAAOnF,EAAMnB,EACjBsG,GAAKsD,QACH7H,KAAMuE,EAAKvE,KACX6H,OAAQ6F,MACR9F,WAAW,GAEbrD,EAAKqG,OAAS,SACd+C,EAAWT,EAAQrM,OAAQ0D,GAE7B,MAAO2I,GAAQ5D,QAAQ8D,GAIzB,GAAIQ,GAASL,EAAOL,EAEhBU,IAGJV,EAAQ5D,QAAQ8D,IAIlB,QAASN,GAAcI,EAAS3I,EAAMqI,GACpC,GAAI/L,GAASqM,EAAQrM,MAGrBgN,GACA,GAAItJ,EACF,GAAI2I,EAAQ9N,MAAM,GAAGY,MAAQuE,EAAKvE,KAChC4M,EAAMpP,EAAWoP,EAAK,iBAAmBrI,EAAKvE,UAE3C,CACH,IAAK,GAAI/B,GAAI,EAAGA,EAAIiP,EAAQ9N,MAAMlB,OAAQD,IAExC,IAAK,GADD6P,GAAQZ,EAAQ9N,MAAMnB,GACjBqP,EAAI,EAAGA,EAAIQ,EAAM/C,aAAa7M,OAAQoP,IAAK,CAClD,GAAIS,GAAMD,EAAM/C,aAAauC,EAC7B,IAAIS,EAAI5L,OAASoC,EAAKvE,KAAM,CAC1B4M,EAAMpP,EAAWoP,EAAK,iBAAmBrI,EAAKvE,KAAO,QAAU+N,EAAIvB,IAAM,UAAYsB,EAAM9N,KAC3F,MAAM6N,IAIZjB,EAAMpP,EAAWoP,EAAK,iBAAmBrI,EAAKvE,KAAO,SAAWkN,EAAQ9N,MAAM,GAAGY,UAInF4M,GAAMpP,EAAWoP,EAAK,iBAAmBM,EAAQ9N,MAAM,GAAGY,KAK5D,KAAK,GADDZ,GAAQ8N,EAAQ9N,MAAM4D,WACjB/E,EAAI,EAAG0D,EAAIvC,EAAMlB,OAAYyD,EAAJ1D,EAAOA,IAAK,CAC5C,GAAIsG,GAAOnF,EAAMnB,EAGjB4C,GAAO1B,UAAU6O,OAASnN,EAAO1B,UAAU6O,WACQ,IAA/C5P,EAAQuB,KAAKkB,EAAO1B,UAAU6O,OAAQzJ,IACxC1D,EAAO1B,UAAU6O,OAAO/Q,KAAKsH,EAE/B,IAAI0J,GAAY7P,EAAQuB,KAAK4E,EAAKuG,SAAUoC,EAE5C,IADA3I,EAAKuG,SAASoD,OAAOD,EAAW,GACJ,GAAxB1J,EAAKuG,SAAS5M,OAAa,CAC7B,GAAIiQ,GAAmB/P,EAAQuB,KAAKuN,EAAQrM,OAAOzB,MAAOmF,EAClC,KAApB4J,GACFjB,EAAQrM,OAAOzB,MAAM8O,OAAOC,EAAkB,IAGpDjB,EAAQtB,OAAOgB,GAIjB,QAASe,GAAW9M,EAAQ0D,GAE1B,GAAI1D,EAAO1B,UAAUiP,MAAO,CACrBvN,EAAO1B,UAAUC,QACpByB,EAAO1B,UAAUC,SACnB,IAAIiP,KACJ9J,GAAKwG,aAAauD,QAAQ,SAASP,GACjCM,EAAON,EAAIvB,KAAOuB,EAAI5L,QAExBtB,EAAO1B,UAAUC,MAAMmF,EAAKvE,OAC1BA,KAAMuE,EAAKvE,KACXwB,KAAM+C,EAAKwG,aAAaxH,IAAI,SAASwK,GAAM,MAAOA,GAAIvB,MACtD6B,OAAQA,EACRlD,QAAS5G,EAAK4G,QACd1G,SAAUF,EAAKE,SACf0C,OAAQ5C,EAAK4C,QAIb5C,EAAKvE,OACPa,EAAOxB,QAAQkF,EAAKvE,MAAQuE,EAAKsD,OAEnC,IAAI0G,GAAYnQ,EAAQuB,KAAKkB,EAAOzB,MAAOmF,EAC1B,KAAbgK,GACF1N,EAAOzB,MAAM8O,OAAOK,EAAW,EACjC,KAAK,GAAItQ,GAAI,EAAG0D,EAAI4C,EAAKuG,SAAS5M,OAAYyD,EAAJ1D,EAAOA,IAC/CsQ,EAAYnQ,EAAQuB,KAAK4E,EAAKuG,SAAS7M,GAAGmB,MAAOmF,GAChC,IAAbgK,GACFhK,EAAKuG,SAAS7M,GAAGmB,MAAM8O,OAAOK,EAAW,EAE7ChK,GAAKuG,SAASoD,OAAO,EAAG3J,EAAKuG,SAAS5M,QAGxC,QAASsQ,GAAiBtB,EAAS3I,EAAMkK,GACvC,IACE,GAAI5G,GAAStD,EAAKK,UAEpB,MAAMuF,GAEJ,WADAsE,GAAUlK,EAAM4F,GAGlB,MAAKtC,IAAYA,YAAkB9I,GAG1B8I,MAFP4G,GAAUlK,EAAM,GAAI7I,WAAU,4CAWlC,QAASgT,GAAoB7N,EAAQb,EAAM2O,GACzC,GAAIrP,GAAiBuB,EAAO3B,QAAQI,cACpC,OAAOA,GAAeU,GAAQ2O,EAAQ5F,KAAK,SAASpN,GAElD,MADA2D,GAAeU,GAAQvD,OAChBd,GACN,SAASwO,GAEV,KADA7K,GAAeU,GAAQvD,OACjB0N,IAmKV,QAASsD,GAAKP,EAASuB,GAErB,GAAI5N,GAASqM,EAAQrM,MAErB,IAAKqM,EAAQ9N,MAAMlB,OAKnB,IAAK,GAFDkB,GAAQ8N,EAAQ9N,MAAM4D,WAEjB/E,EAAI,EAAGA,EAAImB,EAAMlB,OAAQD,IAAK,CACrC,GAAIsG,GAAOnF,EAAMnB,GAEb4J,EAAS2G,EAAiBtB,EAAS3I,EAAMkK,EAC7C,KAAK5G,EACH,MACFtD,GAAKsD,QACH7H,KAAMuE,EAAKvE,KACX6H,OAAQA,GAEVtD,EAAKqG,OAAS,SAEd+C,EAAW9M,EAAQ0D,IAnoBvB,GAAIsG,GAAU,CA+cd7L,GAAOiB,WAEL2O,YAAa5P,EAEb6P,OAAQ,SAAS7O,EAAMmH,EAAQlI,GAE7B,GAAI9B,KAAK+B,QAAQI,eAAeU,GAC9B,KAAM,IAAItE,WAAU,6BACtB,OAAOgT,GAAoBvR,KAAM6C,EAAM,GAAIqJ,SAAQ4B,GACjDC,KAAM,YACNrK,OAAQ1D,KAAK+B,QACbkM,WAAYpL,EACZqL,eAAgBpM,GAAWA,EAAQwF,aACnC6G,aAAcnE,EACdoE,cAAetM,GAAWA,EAAQkM,aAItC2D,SAAU,SAAS9O,GACjB,GAAIa,GAAS1D,KAAK+B,OAGlB,cAFO2B,GAAOvB,eAAeU,SACtBa,GAAOtB,cAAcS,GACrBa,EAAOxB,QAAQW,SAAea,GAAOxB,QAAQW,IAAQ,GAI9DP,IAAK,SAAS+M,GACZ,MAAKrP,MAAK+B,QAAQG,QAAQmN,GAEnBrP,KAAK+B,QAAQG,QAAQmN,GAAK3E,OAFjC,QAKFpB,IAAK,SAASzG,GACZ,QAAS7C,KAAK+B,QAAQG,QAAQW,IAGhC+O,SAAU,SAAS/O,EAAMuG,EAAYyI,GACV,gBAAdzI,KACTA,EAAaA,EAAWvG,KAG1B,IAAIb,GAAYhC,IAGhB,OAAOkM,SAAQC,QAAQnK,EAAU2J,UAAU9I,EAAMuG,IAChDwC,KAAK,SAAS/I,GACb,GAAIa,GAAS1B,EAAUD,OAEvB,OAAI2B,GAAOxB,QAAQW,GACVa,EAAOxB,QAAQW,GAAM6H,OAEvBhH,EAAOvB,eAAeU,IAAS0O,EAAoBvP,EAAWa,EACnEgL,EAAWnK,EAAQb,MAClB+I,KAAK,SAASxE,GAEb,aADO1D,GAAOvB,eAAeU,GACtBuE,EAAKsD,OAAOA,aAM3BtD,KAAM,SAASvE,GACb,GAAIa,GAAS1D,KAAK+B,OAClB,OAAI2B,GAAOxB,QAAQW,GACVqJ,QAAQC,WACTzI,EAAOvB,eAAeU,IAAS0O,EAAoBvR,KAAM6C,EAAM,GAAIqJ,SAAQ4B,GACjFC,KAAM,SACNrK,OAAQA,EACRuK,WAAYpL,EACZqL,kBACAC,aAAc7O,OACd8O,cAAe9O,UAEhBsM,KAAK,SAASxE,GAEb,aADO1D,GAAOvB,eAAeU,GACtBuE,EAAKsD,OAAOA,WAEpBkB,KAAK,eAGRlB,OAAQ,SAASV,EAAQlI,GACvB,GAAIsF,GAAOoG,GACXpG,GAAK4G,QAAUlM,GAAWA,EAAQkM,OAClC,IAAI+B,GAAUC,EAAchQ,KAAK+B,QAASqF,GACtC0K,EAAgB5F,QAAQC,QAAQnC,GAChCtG,EAAS1D,KAAK+B,QACdnC,EAAImQ,EAAQD,KAAKlE,KAAK,WACxB,MAAOxE,GAAKsD,OAAOA,QAGrB,OADAmE,GAAmBnL,EAAQ0D,EAAM0K,GAC1BlS,GAGT4I,UAAW,SAAUyE,GACnB,GAAkB,gBAAPA,GACT,KAAM,IAAI1O,WAAU,kBAEtB,IAAIC,GAAI,GAAIoD,GAERmQ,IACJ,IAAI1M,OAAO2M,qBAA8B,MAAP/E,EAChC8E,EAAS1M,OAAO2M,oBAAoB/E,OAEpC,KAAK,GAAIoC,KAAOpC,GACd8E,EAAOjS,KAAKuP,EAEhB,KAAK,GAAIvO,GAAI,EAAGA,EAAIiR,EAAOhR,OAAQD,KAAK,SAAUuO,GAChDhN,EAAe7D,EAAG6Q,GAChB4C,cAAc,EACdC,YAAY,EACZ5P,IAAK,WACH,MAAO2K,GAAIoC,IAEb/G,IAAK,WACH,KAAM,IAAI7G,OAAM,qDAGnBsQ,EAAOjR,GAKV,OAHIuE,QAAO8M,QACT9M,OAAO8M,OAAO3T,GAETA,GAGT8J,IAAK,SAASzF,EAAM6H,GAClB,KAAMA,YAAkB9I,IACtB,KAAM,IAAIrD,WAAU,cAAgBsE,EAAO,6BAC7C7C,MAAK+B,QAAQG,QAAQW,IACnB6H,OAAQA,IAQZiB,UAAW,SAAS9I,EAAMuP,EAAcC,KAExCzD,OAAQ,SAASxH,GACf,MAAOA,GAAKvE,MAGdiM,MAAO,SAAS1H,KAGhB2H,UAAW,SAAS3H,GAClB,MAAOA,GAAK4C,QAGdgF,YAAa,SAAS5H,KAIxB,IAAImJ,GAAa1O,EAAOiB,UAAU0F,YAgCpC,IAAI8J,EAaJ3P,GAAYG,UAAYjB,EAAOiB,UAC/BP,EAAeO,UAAY,GAAIH,GAC/BJ,EAAeO,UAAU2O,YAAclP,CAEvC,IAAIG,GAUAO,EAAc,eAWdO,EAAa,GAAID,GAAID,GA6FrBuB,GAA2B,CAC/B,KACEQ,OAAOR,0BAA2BU,EAAG,GAAK,KAE5C,MAAMyH,GACJnI,GAA2B,EA8I3B,GAAI0N,EACJ,IAA6B,mBAAlBC,gBACTD,EAAmB,SAASlU,EAAKoU,EAAeC,EAASjE,GAsBvD,QAASrH,KACPsL,EAAQC,EAAIC,cAEd,QAASvC,KACP5B,EAAO,GAAIhN,OAAM,aAAekR,EAAIlF,OAAS,KAAOkF,EAAIlF,QAAUkF,EAAIE,WAAa,IAAMF,EAAIE,WAAc,IAAM,IAAM,IAAM,YAAcxU,IAzB7I,GAAIsU,GAAM,GAAIH,gBACVM,GAAa,EACbC,GAAY,CAChB,MAAM,mBAAqBJ,IAAM,CAE/B,GAAIK,GAAc,uBAAuBC,KAAK5U,EAC1C2U,KACFF,EAAaE,EAAY,KAAOxG,OAAOa,SAASrO,KAC5CgU,EAAY,KACdF,GAAcE,EAAY,KAAOxG,OAAOa,SAASxO,WAGlDiU,GAAuC,mBAAlBI,kBACxBP,EAAM,GAAIO,gBACVP,EAAIQ,OAAS/L,EACbuL,EAAIS,QAAU/C,EACdsC,EAAIU,UAAYhD,EAChBsC,EAAIW,WAAa,aACjBX,EAAIY,QAAU,EACdR,GAAY,GASdJ,EAAIa,mBAAqB,WACA,IAAnBb,EAAIc,aAEY,GAAdd,EAAIlF,OACFkF,EAAIC,aACNxL,KAKAuL,EAAIe,iBAAiB,QAASrD,GAC9BsC,EAAIe,iBAAiB,OAAQtM,IAGT,MAAfuL,EAAIlF,OACXrG,IAGAiJ,MAINsC,EAAIgB,KAAK,MAAOtV,GAAK,GAEjBsU,EAAIiB,mBACNjB,EAAIiB,iBAAiB,SAAU,gCAE3BnB,IAC0B,gBAAjBA,IACTE,EAAIiB,iBAAiB,gBAAiBnB,GACxCE,EAAIkB,iBAAkB,IAItBd,EACFe,WAAW,WACTnB,EAAIoB,QACH,GAEHpB,EAAIoB,KAAK,WAIV,IAAsB,mBAAX5K,UAA4C,mBAAXwD,SAAwB,CACvE,GAAIqH,GACJzB,GAAmB,SAASlU,EAAKoU,EAAeC,EAASjE,GACvD,GAAwB,YAApBpQ,EAAI+C,OAAO,EAAG,GAChB,KAAM,IAAIK,OAAM,oBAAsBpD,EAAM,kEAM9C,OALA2V,IAAKA,IAAM7K,QAAQ,MAEjB9K,EADEiD,EACIjD,EAAIK,QAAQ,MAAO,MAAM0C,OAAO,GAEhC/C,EAAI+C,OAAO,GACZ4S,GAAGC,SAAS5V,EAAK,SAASiC,EAAK4T,GACpC,GAAI5T,EACF,MAAOmO,GAAOnO,EAId,IAAI6T,GAAaD,EAAO,EACF,YAAlBC,EAAW,KACbA,EAAaA,EAAW/S,OAAO,IAEjCsR,EAAQyB,UAKX,CAAA,GAAmB,mBAARhU,OAA4C,mBAAdA,MAAK2O,MAwBjD,KAAM,IAAIvQ,WAAU,sCAvBpBgU,GAAmB,SAASlU,EAAKoU,EAAeC,EAASjE,GACvD,GAAI2F,IACFC,SAAUC,OAAU,gCAGlB7B,KAC0B,gBAAjBA,KACT2B,EAAKC,QAAuB,cAAI5B,GAClC2B,EAAKG,YAAc,WAGrBzF,MAAMzQ,EAAK+V,GACRxI,KAAK,SAAU4I,GACd,GAAIA,EAAEC,GACJ,MAAOD,GAAEE,MAET,MAAM,IAAIjT,OAAM,gBAAkB+S,EAAE/G,OAAS,IAAM+G,EAAE3B,cAGxDjH,KAAK8G,EAASjE,IAuCvB,GAAIlG,GAYJxF,GAAgB,SAAS0O,GACvB,MAAO,YACLA,EAAYjP,KAAKxC,MAGjBA,KAAK1B,QAAUgF,EAGftD,KAAKoG,OAGsB,mBAAhBpF,gBACThB,KAAK2U,UAAY3T,aAAaE,KAGhClB,KAAKiH,UAAW,EAChBjH,KAAK4U,qBAAsB,EAC3B5U,KAAK6U,aAAc,EACnB7U,KAAK8U,kBAAmB,EAQxB9U,KAAKsI,IAAI,SAAUtI,KAAKwI,eAExBL,EAAc3F,KAAKxC,MAAM,GAAO,MAKd,mBAAXmJ,UAA4C,mBAAXwD,UAA2BA,QAAQlE,UAC7ElG,EAAeO,UAAU6F,aAAeQ,QAgB1C,IAAIF,GAqDJrG,GAAK,YAAa,SAAS+I,GACzB,MAAO,UAAS9I,EAAMuG,EAAY2L,GAChC,GAAIC,GAAWxO,EAAYhE,KAAKxC,KAAM6C,EAAMuG,EAG5C,QAFIpJ,KAAK4U,qBAAwBG,GAAsD,OAA3CC,EAAS5T,OAAO4T,EAASjU,OAAS,EAAG,IAAgBoC,EAAQ6R,KACvGA,GAAY,OACPA,IAKX,IAAIC,IAAuC,mBAAlBzC,eACzB5P,GAAK,SAAU,SAASgM,GACtB,MAAO,UAASxH,GACd,MAAO8E,SAAQC,QAAQyC,EAAOpM,KAAKxC,KAAMoH,IACxCwE,KAAK,SAASoC,GACb,MAAIiH,IACKjH,EAAQtP,QAAQ,KAAM,OACxBsP,OAQbpL,EAAK,QAAS,WACZ,MAAO,UAASwE,GACd,MAAO,IAAI8E,SAAQ,SAASC,EAASsC,GACnC8D,EAAiBnL,EAAK4G,QAAS5G,EAAKE,SAASmL,cAAetG,EAASsC,QAmB3E7L,EAAK,SAAU,SAASsS,GACtB,MAAO,UAASrS,EAAMuG,EAAYyI,GAGhC,MAFIzI,IAAcA,EAAWvG,MAC3B4D,EAAKjE,KAAKxC,KAAM,oHAAsH6C,EAAO,SAAWuG,EAAWvG,MAC9JqS,EAAa1S,KAAKxC,KAAM6C,EAAMuG,EAAYyI,GAAejG,KAAK,SAASlB,GAC5E,MAAOA,GAAOyK,aAAezK,EAAO,WAAaA,OAQvD9H,EAAK,YAAa,SAASwS,GACzB,MAAO,UAAShO,GAGd,MAF4B,UAAxBA,EAAKE,SAASI,SAChBN,EAAKE,SAASI,OAASpI,QAClB8V,EAAgBC,MAAMrV,KAAMsV,cA0BvC1S,EAAK,cAAe,SAASoM,GAC3B,MAAO,UAAS5H,GACd,GAA4B,QAAxBA,EAAKE,SAASI,SAAqB1H,KAAKuJ,QAAS,CACnD,GAAIhC,GAAQH,EAAKE,SAASC,MAAQC,GAClCD,GAAMlD,QACNkD,EAAME,QAAU,WACd,IACE,MAAO8N,MAAKC,MAAMpO,EAAK4C,QAEzB,MAAMgD,GACJ,KAAM,IAAIvL,OAAM,qBAAuB2F,EAAKvE,YAsDtDN,EAAeO,UAAU2S,UAAY,SAAS5S,GAC5C,GAAI8D,MACAjD,EAAS1D,IACb,KAAK,GAAIJ,KAAK8D,GACRA,EAAOK,iBAAmBL,EAAOK,eAAenE,IAAMA,IAAK2C,GAAeO,WAAkB,cAALlD,GAEa,IAApGqB,EAAQuB,MAAM,UAAW,YAAa,aAAc,UAAW,SAAU,UAAW,SAAU5C,KAChG+G,EAAI/G,GAAK8D,EAAO9D,GAGpB,OADA+G,GAAIiC,WAAaL,GAAUK,WACpBjC,EAGT,IAAI+O,GACJnT,GAAeO,UAAU6S,OAAS,SAAShP,EAAKiP,GAiC1C,QAASC,GAAe5I,GACtB,IAAK,GAAIrN,KAAKqN,GACZ,GAAIA,EAAIlJ,eAAenE,GACrB,OAAO,EAnCjB,GAAI8D,GAAS1D,IAoBb,IAlBI,oBAAsB2G,KACxB+O,GAAe1U,aACX2F,EAAImO,iBACN9T,aAAe1B,OAEf0B,aAAe0U,IAGf,YAAc/O,KAChBjD,EAAOuD,SAAWN,EAAIM,UAGpBN,EAAImP,qBAAsB,IAC5BpS,EAAO3B,QAAQgU,yBAA0B,IAEvC,cAAgBpP,IAAO,SAAWA,KACpCwB,EAAc3F,KAAKkB,IAAUiD,EAAIiC,cAAejC,EAAImC,OAASP,IAAaA,GAAUO,SAEjF8M,EAAa,CAGhB,GAAItX,EAOJ,IANAkL,EAAO9F,EAAQiD,EAAK,SAASA,GAC3BrI,EAAUA,GAAWqI,EAAIrI,UAE3BA,EAAUA,GAAWqI,EAAIrI,QAGZ,CAOX,GAAIuX,EAAenS,EAAOoD,WAAa+O,EAAenS,EAAO2C,OAASwP,EAAenS,EAAO4C,WAAauP,EAAenS,EAAOsS,UAAYH,EAAenS,EAAOuS,oBAC/J,KAAM,IAAI1X,WAAU,qGAEtByB,MAAK1B,QAAUA,EACf4J,EAAe1F,KAAKxC,MAYtB,GATI2G,EAAIlE,OACNsC,EAAOrB,EAAOjB,MAAOkE,EAAIlE,OAE3B+G,EAAO9F,EAAQiD,EAAK,SAASA,GACvBA,EAAIlE,OACNsC,EAAOrB,EAAOjB,MAAOkE,EAAIlE,SAIzBzC,KAAKiH,SACP,IAAK,GAAIrH,KAAK8D,GAAOjB,MACG,IAAlB7C,EAAEqB,QAAQ,MACZwF,EAAKjE,KAAKkB,EAAQ,wBAA0B9D,EAAI,SAAW8D,EAAOjB,MAAM7C,GAAK,yGAYrF,GARI+G,EAAIiO,sBACNlR,EAAOkR,oBAAsBjO,EAAIiO,oBACjCnO,EAAKjE,KAAKkB,EAAQ,oGAGhBiD,EAAIkO,cACNnR,EAAOmR,YAAclO,EAAIkO,aAEvBlO,EAAIP,IACN,IAAK,GAAIxG,KAAK+G,GAAIP,IAAK,CACrB,GAAI8P,GAAIvP,EAAIP,IAAIxG,EAGhB,IAAiB,gBAANsW,GAAgB,CACzB,GAAIC,GAAqBzS,EAAOkR,qBAAoD,OAA7BhV,EAAEwB,OAAOxB,EAAEmB,OAAS,EAAG,GAC1EoF,EAAOzC,EAAO0S,eAAexW,EAC7BuW,IAAyD,OAAnChQ,EAAK/E,OAAO+E,EAAKpF,OAAS,EAAG,KACrDoF,EAAOA,EAAK/E,OAAO,EAAG+E,EAAKpF,OAAS,GAGtC,IAAIsV,GAAW,EACf,KAAK,GAAIxP,KAAOnD,GAAOoD,SACjBX,EAAK/E,OAAO,EAAGyF,EAAI9F,SAAW8F,KACzBV,EAAKU,EAAI9F,SAA+B,KAApBoF,EAAKU,EAAI9F,UAC/BsV,EAASzV,MAAM,KAAKG,OAAS8F,EAAIjG,MAAM,KAAKG,SACjDsV,EAAWxP,EAEXwP,IAAY3S,EAAOoD,SAASuP,GAAUrP,OACxCb,EAAOA,EAAK/E,OAAO,EAAG+E,EAAKpF,OAAS2C,EAAOoD,SAASuP,GAAUrP,KAAKjG,OAAS,GAE9E,IAAI8F,GAAMnD,EAAOoD,SAASX,GAAQzC,EAAOoD,SAASX,MAClDU,GAAIT,IAAM8P,MAGVxS,GAAO0C,IAAIxG,GAAKsW,EAKtB,GAAIvP,EAAIsP,mBAAoB,CAE1B,IAAK,GADDA,MACKnV,EAAI,EAAGA,EAAI6F,EAAIsP,mBAAmBlV,OAAQD,IAAK,CACtD,GAAIkD,GAAO2C,EAAIsP,mBAAmBnV,GAC9BwV,EAAgBC,KAAKC,IAAIxS,EAAKtE,YAAY,KAAO,EAAGsE,EAAKtE,YAAY,MACrE+W,EAAajQ,EAAYhE,KAAKkB,EAAQM,EAAK5C,OAAO,EAAGkV,GACzDL,GAAmBnV,GAAK2V,EAAazS,EAAK5C,OAAOkV,GAEnD5S,EAAOuS,mBAAqBA,EAG9B,GAAItP,EAAIqP,QACN,IAAK,GAAIpW,KAAK+G,GAAIqP,QAAS,CAEzB,IAAK,GADDU,MACK5V,EAAI,EAAGA,EAAI6F,EAAIqP,QAAQpW,GAAGmB,OAAQD,IAAK,CAC9C,GAAIqV,GAAqBzS,EAAOkR,qBAAoF,OAA7DjO,EAAIqP,QAAQpW,GAAGkB,GAAGM,OAAOuF,EAAIqP,QAAQpW,GAAGkB,GAAGC,OAAS,EAAG,GAC1G4V,EAAsBjT,EAAO0S,eAAezP,EAAIqP,QAAQpW,GAAGkB,GAC3DqV,IAAuF,OAAjEQ,EAAoBvV,OAAOuV,EAAoB5V,OAAS,EAAG,KACnF4V,EAAsBA,EAAoBvV,OAAO,EAAGuV,EAAoB5V,OAAS,IACnF2V,EAAO5W,KAAK6W,GAEdjT,EAAOsS,QAAQpW,GAAK8W,EAIxB,GAAI/P,EAAIG,SACN,IAAK,GAAIlH,KAAK+G,GAAIG,SAAU,CAC1B,GAAIlH,EAAEjB,MAAM,oBACV,KAAM,IAAIJ,WAAU,IAAMqB,EAAI,iCAEhC,IAAIuG,GAAOK,EAAYhE,KAAKkB,EAAQ9D,EAGP,MAAzBuG,EAAKA,EAAKpF,OAAS,KACrBoF,EAAOA,EAAK/E,OAAO,EAAG+E,EAAKpF,OAAS,IAEtC2F,EAAahD,EAAQyC,EAAMQ,EAAIG,SAASlH,IAAI,GAIhD,IAAK,GAAIgX,KAAKjQ,GAAK,CACjB,GAAIuP,GAAIvP,EAAIiQ,EAEZ,IACgH,IAD5G3V,EAAQuB,MAAM,UAAW,MAAO,WAAY,UAAW,QAAS,WAAY,qBAC1E,mBAAoB,gBAAiB,aAAc,YAAa,cAAe,oBAAqBoU,GAG1G,GAAgB,gBAALV,IAAiBA,YAAatQ,OACvClC,EAAOkT,GAAKV,MAET,CACHxS,EAAOkT,GAAKlT,EAAOkT,MAEnB,KAAK,GAAIhX,KAAKsW,GAEZ,GAAS,QAALU,GAAuB,KAARhX,EAAE,GACnBmF,EAAOrB,EAAOkT,GAAGhX,GAAK8D,EAAOkT,GAAGhX,OAAUsW,EAAEtW,QAEzC,IAAS,QAALgX,EAAa,CAEpB,GAAI5B,GAAWxO,EAAYhE,KAAKkB,EAAQ9D,EACpC8D,GAAOkR,qBAAkE,OAA3CI,EAAS5T,OAAO4T,EAASjU,OAAS,EAAG,KAAgBoC,EAAQ6R,KAC7FA,GAAY,OACdjQ,EAAOrB,EAAOkT,GAAG5B,GAAYtR,EAAOkT,GAAG5B,OAAiBkB,EAAEtW,QAEvD,IAAS,YAALgX,EAAiB,CACxB,GAAIT,GAAqBzS,EAAOkR,qBAAoD,OAA7BhV,EAAEwB,OAAOxB,EAAEmB,OAAS,EAAG,GAC1EoF,EAAOzC,EAAO0S,eAAexW,EAC7BuW,IAAyD,OAAnChQ,EAAK/E,OAAO+E,EAAKpF,OAAS,EAAG,KACrDoF,EAAOA,EAAK/E,OAAO,EAAG+E,EAAKpF,OAAS,IACtC2C,EAAOkT,GAAGzQ,MAAWN,OAAOqQ,EAAEtW,QAG9B8D,GAAOkT,GAAGhX,GAAKsW,EAAEtW,IAMzB4J,EAAO9F,EAAQiD,EAAK,SAASA,GAC3BjD,EAAOiS,OAAOhP,GAAK,MA6FvB,WAUE,QAASkQ,GAAWnT,EAAQ+S,GAE1B,GAAIK,GAAuBC,EAAfC,EAAY,CACxB,KAAK,GAAIpX,KAAK8D,GAAOoD,SACf2P,EAAWrV,OAAO,EAAGxB,EAAEmB,UAAYnB,GAAM6W,EAAW1V,SAAWnB,EAAEmB,QAAmC,MAAzB0V,EAAW7W,EAAEmB,UAC1FgW,EAASnX,EAAEgB,MAAM,KAAKG,OAClBgW,EAASC,IACXF,EAASlX,EACToX,EAAYD,GAIlB,OAAOD,GAGT,QAASG,GAAoBvT,EAAQmD,EAAKZ,EAASiR,EAASC,GAE1D,IAAKD,GAA0C,KAA/BA,EAAQA,EAAQnW,OAAS,IAAaoW,GAAkBtQ,EAAIuQ,oBAAqB,EAC/F,MAAOF,EAET,IAAIG,IAAY,CAgBhB,IAbIxQ,EAAIR,MACNiR,EAAezQ,EAAIR,KAAM6Q,EAAS,SAASK,EAAaC,EAAWC,GACjE,MAAkB,IAAdA,GAAmBF,EAAY7X,YAAY,MAAQ6X,EAAYxW,OAAS,EACnEsW,GAAY,EADrB,UAKCA,GAAa3T,EAAO2C,MACvBiR,EAAe5T,EAAO2C,KAAMJ,EAAU,IAAMiR,EAAS,SAASK,EAAaC,EAAWC,GACpF,MAAkB,IAAdA,GAAmBF,EAAY7X,YAAY,MAAQ6X,EAAYxW,OAAS,EACnEsW,GAAY,EADrB,SAIAA,EACF,MAAOH,EAIT,IAAIE,GAAmB,KAAOvQ,EAAIuQ,kBAAoB,KACtD,OAAIF,GAAQ9V,OAAO8V,EAAQnW,OAASqW,EAAiBrW,SAAWqW,EACvDF,EAAUE,EAEVF,EAGX,QAASQ,GAAuBhU,EAAQmD,EAAKZ,EAASiR,EAASC,GAE7D,IAAKD,EAAS,CACZ,IAAIrQ,EAAIG,KAMN,MAAOf,IAAWvC,EAAOkR,oBAAsB,MAAQ,GALvDsC,GAAmC,MAAzBrQ,EAAIG,KAAK5F,OAAO,EAAG,GAAayF,EAAIG,KAAK5F,OAAO,GAAKyF,EAAIG,KASvE,GAAIH,EAAIT,IAAK,CACX,GAAIuR,GAAU,KAAOT,EAEjB7N,EAAWvB,EAAYjB,EAAIT,IAAKuR,EAQpC,IALKtO,IACHsO,EAAU,KAAOV,EAAoBvT,EAAQmD,EAAKZ,EAASiR,EAASC,GAChEQ,GAAW,KAAOT,IACpB7N,EAAWvB,EAAYjB,EAAIT,IAAKuR,KAEhCtO,EAAU,CACZ,GAAIuO,GAASC,EAAUnU,EAAQmD,EAAKZ,EAASoD,EAAUsO,EAASR,EAChE,IAAIS,EACF,MAAOA,IAKb,MAAO3R,GAAU,IAAMgR,EAAoBvT,EAAQmD,EAAKZ,EAASiR,EAASC,GAG5E,QAASW,GAAazO,EAAUuO,EAAQ3R,EAASjC,GAE/C,GAAgB,KAAZqF,EACF,KAAM,IAAI5H,OAAM,WAAawE,EAAU,mDAIzC,OAAI2R,GAAOxW,OAAO,EAAGiI,EAAStI,SAAWsI,GAAYrF,EAAKjD,OAASsI,EAAStI,QACnE,GAEF,EAGT,QAAS8W,GAAUnU,EAAQmD,EAAKZ,EAASoD,EAAUrF,EAAMmT,GAC1B,KAAzBnT,EAAKA,EAAKjD,OAAS,KACrBiD,EAAOA,EAAK5C,OAAO,EAAG4C,EAAKjD,OAAS,GACtC,IAAI6W,GAAS/Q,EAAIT,IAAIiD,EAErB,IAAqB,gBAAVuO,GACT,KAAM,IAAInW,OAAM,wEAA0E4H,EAAW,OAASpD,EAEhH,IAAK6R,EAAazO,EAAUuO,EAAQ3R,EAASjC,IAA0B,gBAAV4T,GAA7D,CAIA,GAAc,KAAVA,EACFA,EAAS3R,MAGN,IAA2B,MAAvB2R,EAAOxW,OAAO,EAAG,GACxB,MAAO6E,GAAU,IAAMgR,EAAoBvT,EAAQmD,EAAKZ,EAAS2R,EAAOxW,OAAO,GAAK4C,EAAK5C,OAAOiI,EAAStI,QAASoW,EAGpH,OAAOzT,GAAOqU,cAAcH,EAAS5T,EAAK5C,OAAOiI,EAAStI,QAASkF,EAAU,MAG/E,QAAS+R,GAAmBtU,EAAQmD,EAAKZ,EAASiR,EAASC,GAEzD,IAAKD,EAAS,CACZ,IAAIrQ,EAAIG,KAMN,MAAOkF,SAAQC,QAAQlG,GAAWvC,EAAOkR,oBAAsB,MAAQ,IALvEsC,GAAmC,MAAzBrQ,EAAIG,KAAK5F,OAAO,EAAG,GAAayF,EAAIG,KAAK5F,OAAO,GAAKyF,EAAIG,KASvE,GAAI2Q,GAAStO,CAcb,OAZIxC,GAAIT,MACNuR,EAAU,KAAOT,EACjB7N,EAAWvB,EAAYjB,EAAIT,IAAKuR,GAG3BtO,IACHsO,EAAU,KAAOV,EAAoBvT,EAAQmD,EAAKZ,EAASiR,EAASC,GAChEQ,GAAW,KAAOT,IACpB7N,EAAWvB,EAAYjB,EAAIT,IAAKuR,OAI9BtO,EAAW4O,EAAMvU,EAAQmD,EAAKZ,EAASoD,EAAUsO,EAASR,GAAkBjL,QAAQC,WAC3FP,KAAK,SAASgM,GACb,MAAIA,GACK1L,QAAQC,QAAQyL,GAGlB1L,QAAQC,QAAQlG,EAAU,IAAMgR,EAAoBvT,EAAQmD,EAAKZ,EAASiR,EAASC,MAI9F,QAASe,GAAYxU,EAAQmD,EAAKZ,EAASoD,EAAUuO,EAAQ5T,EAAMmT,GAGjE,GAAc,KAAVS,EACFA,EAAS3R,MAGN,IAA2B,MAAvB2R,EAAOxW,OAAO,EAAG,GACxB,MAAO8K,SAAQC,QAAQlG,EAAU,IAAMgR,EAAoBvT,EAAQmD,EAAKZ,EAAS2R,EAAOxW,OAAO,GAAK4C,EAAK5C,OAAOiI,EAAStI,QAASoW,IACjIvL,KAAK,SAAS/I,GACb,MAAOkJ,GAAuBvJ,KAAKkB,EAAQb,EAAMoD,EAAU,MAI/D,OAAOvC,GAAOiI,UAAUiM,EAAS5T,EAAK5C,OAAOiI,EAAStI,QAASkF,EAAU,KAG3E,QAASgS,GAAMvU,EAAQmD,EAAKZ,EAASoD,EAAUrF,EAAMmT,GACtB,KAAzBnT,EAAKA,EAAKjD,OAAS,KACrBiD,EAAOA,EAAK5C,OAAO,EAAG4C,EAAKjD,OAAS,GAEtC,IAAI6W,GAAS/Q,EAAIT,IAAIiD,EAErB,IAAqB,gBAAVuO,GACT,MAAKE,GAAazO,EAAUuO,EAAQ3R,EAASjC,GAEtCkU,EAAYxU,EAAQmD,EAAKZ,EAASoD,EAAUuO,EAAQ5T,EAAMmT,GADxDjL,QAAQC,SAKnB,IAAIzI,EAAO6F,QACT,MAAO2C,SAAQC,QAAQlG,EAAU,MAAQjC,EAG3C,IAAImU,MACAC,IACJ,KAAK,GAAIpL,KAAK4K,GAAQ,CACpB,GAAIhB,GAAI7L,EAAeiC,EACvBoL,GAAWtY,MACTkL,UAAW4L,EACXxQ,IAAKwR,EAAO5K,KAEdmL,EAAkBrY,KAAK4D,EAAO,UAAUkT,EAAElM,OAAQzE,IAIpD,MAAOiG,SAAQqD,IAAI4I,GAClBvM,KAAK,SAASyM,GAEb,IAAK,GAAIvX,GAAI,EAAGA,EAAIsX,EAAWrX,OAAQD,IAAK,CAC1C,GAAI8V,GAAIwB,EAAWtX,GAAGkK,UAClBhG,EAAQ2C,EAAqBiP,EAAEzQ,KAAMkS,EAAgBvX,GACzD,KAAK8V,EAAEtL,QAAUtG,GAAS4R,EAAEtL,SAAWtG,EACrC,MAAOoT,GAAWtX,GAAGsF,OAG1BwF,KAAK,SAASgM,GACb,GAAIA,EAAQ,CACV,IAAKE,EAAazO,EAAUuO,EAAQ3R,EAASjC,GAC3C,MACF,OAAOkU,GAAYxU,EAAQmD,EAAKZ,EAASoD,EAAUuO,EAAQ5T,EAAMmT,MA8JvE,QAASmB,GAAuBtU,GAC9B,GAAIuU,GAAevU,EAAKtE,YAAY,KAChCqB,EAASwV,KAAKC,IAAI+B,EAAe,EAAGvU,EAAKtE,YAAY,KACzD,QACEqB,OAAQA,EACRyX,MAAO,GAAIC,QAAO,KAAOzU,EAAK5C,OAAO,EAAGL,GAAQrC,QAAQ,qBAAsB,QAAQA,QAAQ,MAAO,WAAa,YAClHiF,SAA0B,IAAhB4U,GAKd,QAASG,GAAsBhV,EAAQ+S,GAErC,IAAK,GADDxQ,GAA6B0S,EAApBC,GAAa,EACjB9X,EAAI,EAAGA,EAAI4C,EAAOuS,mBAAmBlV,OAAQD,IAAK,CACzD,GAAI+X,GAAoBnV,EAAOuS,mBAAmBnV,GAC9ClB,EAAIqW,EAAmB4C,KAAuB5C,EAAmB4C,GAAqBP,EAAuBO,GACjH,MAAIpC,EAAW1V,OAASnB,EAAEmB,QAA1B,CAEA,GAAIpC,GAAQ8X,EAAW9X,MAAMiB,EAAE4Y,QAC3B7Z,GAAWsH,IAAc2S,GAAchZ,EAAE+D,YAAasC,EAAQlF,OAASpC,EAAM,GAAGoC,WAClFkF,EAAUtH,EAAM,GAChBia,GAAchZ,EAAE+D,SAChBgV,EAAa1S,EAAU4S,EAAkBzX,OAAOxB,EAAEmB,UAItD,MAAKkF,IAIH6S,YAAa7S,EACb0S,WAAYA,GALd,OASF,QAASI,GAAsBrV,EAAQuC,EAAS+S,GAC9C,GAAIC,GAAevV,EAAOwV,cAAgBxV,CAM1C,QAHCuV,EAAa5S,KAAK2S,GAAiBC,EAAa5S,KAAK2S,QAAsBtR,OAAS,OACrFuR,EAAa5S,KAAK2S,GAAetV,OAAS,KAEnCuV,EAAa7R,KAAK4R,GACxBpN,KAAK,WACJ,GAAIjF,GAAMsS,EAAa3W,IAAI0W,GAAe,UAY1C,OATIrS,GAAIwS,WACNxS,EAAMA,EAAIwS,UAGRxS,EAAIzE,UACNyE,EAAIN,KAAOM,EAAIzE,QACfuE,EAAKjE,KAAKkB,EAAQ,uBAAyBsV,EAAgB,yFAGtDtS,EAAahD,EAAQuC,EAASU,GAAK,KAI9C,QAAS2Q,GAAe8B,EAASlC,EAASmC,GAExC,GACIC,EACJ,KAAK,GAAI5O,KAAU0O,GAAS,CAE1B,GAAIG,GAAgC,MAAvB7O,EAAOtJ,OAAO,EAAG,GAAa,KAAO,EAKlD,IAJImY,IACF7O,EAASA,EAAOtJ,OAAO,IAEzBkY,EAAgB5O,EAAOzJ,QAAQ,KACT,KAAlBqY,GAGA5O,EAAOtJ,OAAO,EAAGkY,IAAkBpC,EAAQ9V,OAAO,EAAGkY,IAClD5O,EAAOtJ,OAAOkY,EAAgB,IAAMpC,EAAQ9V,OAAO8V,EAAQnW,OAAS2J,EAAO3J,OAASuY,EAAgB,IAErGD,EAAQ3O,EAAQ0O,EAAQG,EAAS7O,GAASA,EAAO9J,MAAM,KAAKG,QAC9D,OAIN,GAAIyY,GAAYJ,EAAQlC,IAAYkC,EAAQrV,gBAAkBqV,EAAQrV,eAAemT,GAAWkC,EAAQlC,GAAWkC,EAAQ,KAAOlC,EAC9HsC,IACFH,EAAQG,EAAWA,EAAW,GAldlCzW,EAAgB,SAAS0O,GACvB,MAAO,YACLA,EAAYjP,KAAKxC,MACjBA,KAAK8G,YACL9G,KAAKiW,yBAoOT1T,EAAeO,UAAUiV,cAAgBxV,EAAeO,UAAUsT,eAAiB7T,EAAeO,UAAU6I,UAI5G/I,EAAK,iBAAkB,SAASwT,GAC9B,MAAO,UAASvT,EAAMuG,GACpB,GAAIpJ,KAAKuJ,QACP,MAAO6M,GAAe5T,KAAKxC,KAAM6C,EAAMuG,GAAY,EAErD,IAAIqQ,GAAkBrD,EAAe5T,KAAKxC,KAAM6C,EAAMuG,GAAY,EAElE,KAAKpJ,KAAK4U,oBACR,MAAO6E,EAET,IAAIxT,GAAU4Q,EAAW7W,KAAMyZ,GAE3B5S,EAAM7G,KAAK8G,SAASb,GACpBmR,EAAmBvQ,GAAOA,EAAIuQ,gBAalC,OAXwB9X,SAApB8X,GAAiCvQ,GAAOA,EAAIR,MAC9CiR,EAAezQ,EAAIR,KAAMoT,EAAgBrY,OAAO6E,GAAU,SAASsR,EAAaC,EAAWC,GACzF,MAAkB,IAAdA,GAAmBF,EAAY7X,YAAY,MAAQ6X,EAAYxW,OAAS,GAC1EqW,GAAmB,GACZ,GAFT,UAMCA,KAAqB,GAASA,GAAwC,OAApBA,IAAiE,OAAnCvU,EAAKzB,OAAOyB,EAAK9B,OAAS,EAAG,IAAwE,OAAzD0Y,EAAgBrY,OAAOqY,EAAgB1Y,OAAS,EAAG,KAClL0Y,EAAkBA,EAAgBrY,OAAO,EAAGqY,EAAgB1Y,OAAS,IAEhE0Y,KAIX7W,EAAK,gBAAiB,SAASmV,GAC7B,MAAO,UAASlV,EAAMuG,EAAYsQ,GAChC,GAAIhW,GAAS1D,IAKb,IAJA0Z,EAAWA,KAAa,EAIpBtQ,EACF,GAAIuQ,GAAoB9C,EAAWnT,EAAQ0F,IACvC1F,EAAOkR,qBAAsE,OAA/CxL,EAAWhI,OAAOgI,EAAWrI,OAAS,EAAG,IACvE8V,EAAWnT,EAAQ0F,EAAWhI,OAAO,EAAGgI,EAAWrI,OAAS,GAElE,IAAI6Y,GAAgBD,GAAqBjW,EAAOoD,SAAS6S,EAGzD,IAAIC,GAA4B,KAAX/W,EAAK,GAAW,CACnC,GAAIgX,GAAYD,EAAcxT,IAC1B0T,EAAiBD,GAAa/R,EAAY+R,EAAWhX,EAEzD,IAAIiX,GAAsD,gBAA7BD,GAAUC,GAA6B,CAClE,GAAIlC,GAASC,EAAUnU,EAAQkW,EAAeD,EAAmBG,EAAgBjX,EAAM6W,EACvF,IAAI9B,EACF,MAAOA,IAIb,GAAIzB,GAAqBzS,EAAOkR,qBAA0D,OAAnC/R,EAAKzB,OAAOyB,EAAK9B,OAAS,EAAG,GAGhF0V,EAAasB,EAAcvV,KAAKkB,EAAQb,EAAMuG,GAAY,EAG1D+M,IAAqE,OAA/CM,EAAWrV,OAAOqV,EAAW1V,OAAS,EAAG,KACjEoV,GAAqB,GACnBA,IACFM,EAAaA,EAAWrV,OAAO,EAAGqV,EAAW1V,OAAS,GAExD,IAAIgZ,GAAiBrB,EAAsBhV,EAAQ+S,GAC/CxQ,EAAU8T,GAAkBA,EAAejB,aAAejC,EAAWnT,EAAQ+S,EAEjF,KAAKxQ,EACH,MAAOwQ,IAAcN,EAAqB,MAAQ,GAEpD,IAAIe,GAAUT,EAAWrV,OAAO6E,EAAQlF,OAAS,EAEjD,OAAO2W,GAAuBhU,EAAQA,EAAOoD,SAASb,OAAgBA,EAASiR,EAASwC,MAI5F9W,EAAK,YAAa,SAAS+I,GACzB,MAAO,UAAS9I,EAAMuG,EAAYsQ,GAChC,GAAIhW,GAAS1D,IAGb,OAFA0Z,GAAWA,KAAa,EAEjBxN,QAAQC,UACdP,KAAK,WAGJ,GAAIxC,EACF,GAAIuQ,GAAoB9C,EAAWnT,EAAQ0F,IACvC1F,EAAOkR,qBAAsE,OAA/CxL,EAAWhI,OAAOgI,EAAWrI,OAAS,EAAG,IACvE8V,EAAWnT,EAAQ0F,EAAWhI,OAAO,EAAGgI,EAAWrI,OAAS,GAElE,IAAI6Y,GAAgBD,GAAqBjW,EAAOoD,SAAS6S,EAGzD,IAAIC,GAAsC,MAArB/W,EAAKzB,OAAO,EAAG,GAAY,CAC9C,GAAIyY,GAAYD,EAAcxT,IAC1B0T,EAAiBD,GAAa/R,EAAY+R,EAAWhX,EAEzD,IAAIiX,EACF,MAAO7B,GAAMvU,EAAQkW,EAAeD,EAAmBG,EAAgBjX,EAAM6W,GAGjF,MAAOxN,SAAQC,YAEhBP,KAAK,SAASgM,GACb,GAAIA,EACF,MAAOA,EAET,IAAIzB,GAAqBzS,EAAOkR,qBAA0D,OAAnC/R,EAAKzB,OAAOyB,EAAK9B,OAAS,EAAG,GAGhF0V,EAAa9K,EAAUnJ,KAAKkB,EAAQb,EAAMuG,GAAY,EAGtD+M,IAAqE,OAA/CM,EAAWrV,OAAOqV,EAAW1V,OAAS,EAAG,KACjEoV,GAAqB,GACnBA,IACFM,EAAaA,EAAWrV,OAAO,EAAGqV,EAAW1V,OAAS,GAExD,IAAIgZ,GAAiBrB,EAAsBhV,EAAQ+S,GAC/CxQ,EAAU8T,GAAkBA,EAAejB,aAAejC,EAAWnT,EAAQ+S,EAEjF,KAAKxQ,EACH,MAAOiG,SAAQC,QAAQsK,GAAcN,EAAqB,MAAQ,IAEpE,IAAItP,GAAMnD,EAAOoD,SAASb,GAGtB+T,EAAenT,IAAQA,EAAIoT,aAAeF,EAC9C,QAAQC,EAAe9N,QAAQC,QAAQtF,GAAOkS,EAAsBrV,EAAQuC,EAAS8T,EAAepB,aACnG/M,KAAK,SAAS/E,GACb,GAAIqQ,GAAUT,EAAWrV,OAAO6E,EAAQlF,OAAS,EAEjD,OAAOiX,GAAmBtU,EAAQmD,EAAKZ,EAASiR,EAASwC,SAQjE,IAAIzD,KA0FJrT,GAAK,SAAU,SAASgM,GACtB,MAAO,UAASxH,GACd,GAAI1D,GAAS1D,IACb,OAAOkM,SAAQC,QAAQyC,EAAOpM,KAAKxC,KAAMoH,IACxCwE,KAAK,SAASoC,GACb,GAAI/H,GAAU4Q,EAAWnT,EAAQ0D,EAAKvE,KACtC,IAAIoD,EAAS,CACX,GAAIY,GAAMnD,EAAOoD,SAASb,GACtBiR,EAAU9P,EAAKvE,KAAKzB,OAAO6E,EAAQlF,OAAS,GAE5CsF,IACJ,IAAIQ,EAAIR,KAAM,CACZ,GAAI6T,GAAY,CAGhB5C,GAAezQ,EAAIR,KAAM6Q,EAAS,SAASK,EAAaC,EAAWC,GAC7DA,EAAayC,IACfA,EAAYzC,GACd/R,EAAWW,EAAMmR,EAAWC,GAAcyC,EAAYzC,KAGxD/R,EAAW0B,EAAKE,SAAUjB,GAIxBQ,EAAIa,SAAWN,EAAKE,SAAS5D,SAC/B0D,EAAKE,SAASI,OAASN,EAAKE,SAASI,QAAUb,EAAIa,QAGvD,MAAOsG,WAWf,WAsBE,QAASmM,KACP,GAAIC,GAA6D,gBAAxCA,EAAkBC,OAAO5G,WAChD,MAAO2G,GAAkBhT,IAE3B,KAAK,GAAItG,GAAI,EAAGA,EAAIwZ,EAA0BvZ,OAAQD,IACpD,GAAsD,eAAlDwZ,EAA0BxZ,GAAGuZ,OAAO5G,WAEtC,MADA2G,GAAoBE,EAA0BxZ,GACvCsZ,EAAkBhT,KA0C/B,QAASmT,GAAgB7W,EAAQ0D,GAC/B,MAAO,IAAI8E,SAAQ,SAASC,EAASsC,GAC/BrH,EAAKE,SAASkT,WAChB/L,EAAO,GAAIhN,OAAM,oEAEnBgZ,EAAarT,CACb,KACEqF,cAAcrF,EAAK4G,SAErB,MAAMhB,GACJyN,EAAa,KACbhM,EAAOzB,GAETyN,EAAa,KAGRrT,EAAKE,SAASC,OACjBkH,EAAO,GAAIhN,OAAM2F,EAAK4G,QAAU,+GAElC7B,EAAQ,MAxFZ,GAAuB,mBAAZO,UACT,GAAIgO,GAAOhO,SAASS,qBAAqB,QAAQ,EAEnD,IAAIwN,GACAC,EAeAR,EAZAK,EAAa,KAGbI,EAAWH,GAAQ,WACrB,GAAII,GAAIpO,SAASqO,cAAc,UAC3BC,EAA2B,mBAAVC,QAA8C,mBAArBA,MAAMta,UACpD,OAAOma,GAAEI,eAAiBJ,EAAEI,YAAYva,UAAYma,EAAEI,YAAYva,WAAWM,QAAQ,gBAAkB,KAAO+Z,KAK5GV,KAkBAa,EAAa,EACbC,IACJxY,GAAK,gBAAiB,SAASyY,GAC7B,MAAO,UAASC,GAEd,MAAID,GAAa7Y,KAAKxC,KAAMsb,IACnB,GAGLb,EACFza,KAAKub,gBAAgBd,EAAYa,GAI1BT,EACP7a,KAAKub,gBAAgBpB,IAA4BmB,GAI1CH,EACPC,EAActb,KAAKwb,GAOnBtb,KAAKub,gBAAgB,KAAMD,IAEtB,MA4BX1Y,EAAK,QAAS,SAASkM,GACrB,MAAO,UAAS1H,GACd,GAAI1D,GAAS1D,IAEb,OAA4B,QAAxBoH,EAAKE,SAASI,QAAqBN,EAAKE,SAASkU,aAAgBna,GAAckL,GAG/EA,EACKgO,EAAgB7W,EAAQ0D,GAE1B,GAAI8E,SAAQ,SAASC,EAASsC,GA+BnC,QAASgN,GAASC,GAChB,IAAIZ,EAAErH,YAA8B,UAAhBqH,EAAErH,YAA0C,YAAhBqH,EAAErH,WAAlD,CAOA,GAJA0H,IAIK/T,EAAKE,SAASC,OAAU6T,EAAcra,QAGtC,IAAK8Z,EAAU,CAClB,IAAK,GAAI/Z,GAAI,EAAGA,EAAIsa,EAAcra,OAAQD,IACxC4C,EAAO6X,gBAAgBnU,EAAMgU,EAActa,GAC7Csa,WALA1X,GAAO6X,gBAAgBnU,EAQzBuU,KAGKvU,EAAKE,SAASC,OAAUH,EAAKE,SAASoP,QACzCjI,EAAO,GAAIhN,OAAM2F,EAAKvE,KAAO,kKAE/BsJ,EAAQ;EAGV,QAASkE,GAAMqL,GACbC,IACAlN,EAAO,GAAIhN,OAAM,yBAA2B2F,EAAK4G,UAGnD,QAAS2N,KAIP,GAHAvb,EAASkS,OAASqI,EAClBva,EAAS+I,QAAUyR,EAEfE,EAAEc,YAAa,CACjBd,EAAEc,YAAY,qBAAsBH,EACpC,KAAK,GAAI3a,GAAI,EAAGA,EAAIwZ,EAA0BvZ,OAAQD,IAChDwZ,EAA0BxZ,GAAGuZ,QAAUS,IACrCV,GAAqBA,EAAkBC,QAAUS,IACnDV,EAAoB,MACtBE,EAA0BvJ,OAAOjQ,EAAG,QAIxCga,GAAEe,oBAAoB,OAAQJ,GAAU,GACxCX,EAAEe,oBAAoB,QAASxL,GAAO,EAGxCqK,GAAKoB,YAAYhB,GA/EnB,GAAIA,GAAIpO,SAASqO,cAAc,SAE/BD,GAAEiB,OAAQ,EAEN3U,EAAKE,SAAS0U,cAChBlB,EAAEkB,YAAc5U,EAAKE,SAAS0U,aAE5B5U,EAAKE,SAASkT,WAChBM,EAAEmB,aAAa,YAAa7U,EAAKE,SAASkT,WAExCK,GACFC,EAAEI,YAAY,qBAAsBO,GACpCnB,EAA0Bxa,MACxBua,OAAQS,EACR1T,KAAMA,MAIR0T,EAAEpH,iBAAiB,OAAQ+H,GAAU,GACrCX,EAAEpH,iBAAiB,QAASrD,GAAO,IAGrC8K,IAEAR,EAAYva,EAASkS,OACrBsI,EAAaxa,EAAS+I,QAEtB2R,EAAE5Z,IAAMkG,EAAK4G,QACb0M,EAAKwB,YAAYpB,KAlCVhM,EAAMtM,KAAKxC,KAAMoH,QAgJhC,IAAI8C,IAA6B,2FAwBjC,WAsGE,QAASiS,GAAY5U,EAAO7D,EAAQ0Y,GAGlC,GAFAA,EAAO7U,EAAMiD,YAAc4R,EAAO7U,EAAMiD,gBAEa,IAAjDvJ,EAAQuB,KAAK4Z,EAAO7U,EAAMiD,YAAajD,GAA3C,CAGA6U,EAAO7U,EAAMiD,YAAY1K,KAAKyH,EAE9B,KAAK,GAAIzG,GAAI,EAAG0D,EAAI+C,EAAMgD,eAAexJ,OAAYyD,EAAJ1D,EAAOA,IAAK,CAC3D,GAAIub,GAAU9U,EAAMgD,eAAezJ,GAC/Bwb,EAAW5Y,EAAO6Y,QAAQF,EAG9B,IAAKC,IAAYA,EAAS7R,UAA1B,CAIA,GAAI+R,GAAgBjV,EAAMiD,YAAc8R,EAAShS,aAAe/C,EAAM+C,YAGtE,IAA4B,OAAxBgS,EAAS9R,YAAuB8R,EAAS9R,WAAagS,EAAe,CAGvE,GAA4B,OAAxBF,EAAS9R,aACX4R,EAAOE,EAAS9R,YAAYuG,OAAO9P,EAAQuB,KAAK4Z,EAAOE,EAAS9R,YAAa8R,GAAW,GAG9C,GAAtCF,EAAOE,EAAS9R,YAAYzJ,QAC9B,KAAM,IAAIU,OAAM,kCAGpB6a,GAAS9R,WAAagS,EAGxBL,EAAYG,EAAU5Y,EAAQ0Y,MAIlC,QAAS9L,GAAKzN,EAAM4Z,EAAY/Y,GAE9B,IAAI+Y,EAAW/R,OAAf,CAGA+R,EAAWjS,WAAa,CAExB,IAAI4R,KAEJD,GAAYM,EAAY/Y,EAAQ0Y,EAGhC,KAAK,GADDM,KAAwBD,EAAWnS,aAAe8R,EAAOrb,OAAS,EAC7DD,EAAIsb,EAAOrb,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAE3C,IAAK,GADDsD,GAAQgY,EAAOtb,GACVqP,EAAI,EAAGA,EAAI/L,EAAMrD,OAAQoP,IAAK,CACrC,GAAI5I,GAAQnD,EAAM+L,EAGduM,GACFC,EAAsBpV,EAAO7D,GAE7BkZ,EAAkBrV,EAAO7D,GAE7BgZ,GAAuBA,IAK3B,QAASG,MAOT,QAASC,GAAwBja,EAAMT,GACrC,MAAOA,GAAcS,KAAUT,EAAcS,IAC3CA,KAAMA,EACN+K,gBACAjJ,QAAS,GAAIkY,GACbE,eAIJ,QAASJ,GAAsBpV,EAAO7D,GAEpC,IAAI6D,EAAMmD,OAAV,CAGA,GAAItI,GAAgBsB,EAAO3B,QAAQK,cAC/BsI,EAASnD,EAAMmD,OAASoS,EAAwBvV,EAAM1E,KAAMT,GAC5DuC,EAAU4C,EAAMmD,OAAO/F,QAEvBqY,EAAczV,EAAM6C,QAAQ5H,KAAKpC,EAAU,SAASyC,EAAMmC,GAG5D,GAFA0F,EAAOuS,QAAS,EAEG,gBAARpa,GACT,IAAK,GAAIjD,KAAKiD,GACZ8B,EAAQ/E,GAAKiD,EAAKjD,OAGpB+E,GAAQ9B,GAAQmC,CAGlB,KAAK,GAAIlE,GAAI,EAAG0D,EAAIkG,EAAOqS,UAAUhc,OAAYyD,EAAJ1D,EAAOA,IAAK,CACvD,GAAIoc,GAAiBxS,EAAOqS,UAAUjc,EACtC,KAAKoc,EAAeD,OAAQ,CAC1B,GAAIE,GAAgBlc,EAAQuB,KAAK0a,EAAetP,aAAclD,GAC1D0S,EAASF,EAAeG,QAAQF,EAChCC,IACFA,EAAOzY,IAKb,MADA+F,GAAOuS,QAAS,EACTjY,IACJsY,GAAI/V,EAAM1E,MAWf,IAT0B,kBAAfma,KACTA,GAAgBK,WAAa5V,QAASuV,IAGxCA,EAAcA,IAAiBK,WAAa5V,QAAS,cAErDiD,EAAO2S,QAAUL,EAAYK,QAC7B3S,EAAOjD,QAAUuV,EAAYvV,SAExBiD,EAAO2S,UAAY3S,EAAOjD,QAC7B,KAAM,IAAIlJ,WAAU,oCAAsCgJ,EAAM1E,KAIlE,KAAK,GAAI/B,GAAI,EAAG0D,EAAI+C,EAAMgD,eAAexJ,OAAYyD,EAAJ1D,EAAOA,IAAK,CAC3D,GAKIyc,GALAlB,EAAU9U,EAAMgD,eAAezJ,GAC/Bwb,EAAW5Y,EAAO6Y,QAAQF,GAC1BmB,EAAYpb,EAAcia,EAK1BmB,GACFD,EAAaC,EAAU7Y,QAGhB2X,IAAaA,EAAShS,YAC7BiT,EAAajB,EAAS1X,SAGd0X,GAKRK,EAAsBL,EAAU5Y,GAChC8Z,EAAYlB,EAAS5R,OACrB6S,EAAaC,EAAU7Y,SANvB4Y,EAAa7Z,EAAOpB,IAAI+Z,GAUtBmB,GAAaA,EAAUT,WACzBS,EAAUT,UAAUjd,KAAK4K,GACzBA,EAAOkD,aAAa9N,KAAK0d,IAGzB9S,EAAOkD,aAAa9N,KAAK,KAK3B,KAAK,GADDqK,GAAkB5C,EAAM4C,gBAAgBrJ,GACnCqP,EAAI,EAAGsN,EAAMtT,EAAgBpJ,OAAY0c,EAAJtN,IAAWA,EAAG,CAC1D,GAAI1L,GAAQ0F,EAAgBgG,EACxBzF,GAAO2S,QAAQ5Y,IACjBiG,EAAO2S,QAAQ5Y,GAAO8Y,MAO9B,QAASG,GAAU7a,EAAMa,GACvB,GAAIiB,GACA4C,EAAQ7D,EAAO6Y,QAAQ1Z,EAE3B,IAAK0E,EAOCA,EAAM+C,YACRqT,EAAgB9a,EAAM0E,KAAW7D,GAEzB6D,EAAMkD,WACdmS,EAAkBrV,EAAO7D,GAE3BiB,EAAU4C,EAAMmD,OAAO/F,YAXvB,IADAA,EAAUjB,EAAOpB,IAAIO,IAChB8B,EACH,KAAM,IAAIlD,OAAM,6BAA+BoB,EAAO,IAa1D,SAAM0E,GAASA,EAAM+C,cAAgB3F,GAAWA,EAAQwQ,aAC/CxQ,EAAQ,WAEVA,EAGT,QAASiY,GAAkBrV,EAAO7D,GAChC,IAAI6D,EAAMmD,OAAV,CAGA,GAAI/F,MAEA+F,EAASnD,EAAMmD,QAAW/F,QAASA,EAAS2Y,GAAI/V,EAAM1E,KAG1D,KAAK0E,EAAM8C,iBACT,IAAK,GAAIvJ,GAAI,EAAG0D,EAAI+C,EAAMgD,eAAexJ,OAAYyD,EAAJ1D,EAAOA,IAAK,CAC3D,GAAIub,GAAU9U,EAAMgD,eAAezJ,GAE/Bwb,EAAW5Y,EAAO6Y,QAAQF,EAC1BC,IACFM,EAAkBN,EAAU5Y,GAKlC6D,EAAMkD,WAAY,CAClB,IAAI9K,GAAS4H,EAAME,QAAQjF,KAAKpC,EAAU,SAASyC,GACjD,IAAK,GAAI/B,GAAI,EAAG0D,EAAI+C,EAAMlD,KAAKtD,OAAYyD,EAAJ1D,EAAOA,IAC5C,GAAIyG,EAAMlD,KAAKvD,IAAM+B,EAErB,MAAO6a,GAAUnW,EAAMgD,eAAezJ,GAAI4C,EAG5C,IAAIka,GAAiBla,EAAOqU,cAAclV,EAAM0E,EAAM1E,KACtD,IAA0D,IAAtD5B,EAAQuB,KAAK+E,EAAMgD,eAAgBqT,GACrC,MAAOF,GAAUE,EAAgBla,EAEnC,MAAM,IAAIjC,OAAM,UAAYoB,EAAO,oCAAsC0E,EAAM1E,OAC9E8B,EAAS+F,EAEGpL,UAAXK,IACF+K,EAAO/F,QAAUhF,GAGnBgF,EAAU+F,EAAO/F,QAGbA,IAAYA,EAAQkZ,YAAclZ,YAAmB/C,IACvD2F,EAAM3C,SAAWlB,EAAO8E,UAAU7D,GAE3B4C,EAAMoD,YAAchG,IAAYvE,EACvCmH,EAAM3C,SAAWlB,EAAO8E,UAAU9D,EAAYC,IAG9C4C,EAAM3C,SAAWlB,EAAO8E,WAAYO,UAAWpE,EAASwQ,cAAc,KAY1E,QAASwI,GAAgB1P,EAAY1G,EAAOuW,EAAMpa,GAEhD,GAAK6D,IAASA,EAAMkD,WAAclD,EAAM+C,YAAxC,CAKAwT,EAAKhe,KAAKmO,EAEV,KAAK,GAAInN,GAAI,EAAG0D,EAAI+C,EAAMgD,eAAexJ,OAAYyD,EAAJ1D,EAAOA,IAAK,CAC3D,GAAIub,GAAU9U,EAAMgD,eAAezJ,EACA,KAA/BG,EAAQuB,KAAKsb,EAAMzB,KAChB3Y,EAAO6Y,QAAQF,GAGlBsB,EAAgBtB,EAAS3Y,EAAO6Y,QAAQF,GAAUyB,EAAMpa,GAFxDA,EAAOpB,IAAI+Z,IAMb9U,EAAMkD,YAGVlD,EAAMkD,WAAY,EAClBlD,EAAMmD,OAAOjD,QAAQjF,KAAKpC,KAvX5BmC,EAAeO,UAAUwY,SAAW,SAASzY,EAAMwB,EAAM+F,GASvD,GARmB,gBAARvH,KACTuH,EAAU/F,EACVA,EAAOxB,EACPA,EAAO,MAKa,iBAAXuH,GACT,MAAOpK,MAAK+d,gBAAgB1I,MAAMrV,KAAMsV,UAE1C,IAAI/N,GAAQC,GAIZD,GAAM1E,KAAOA,IAAS7C,KAAKoW,gBAAkBpW,KAAK2L,WAAWnJ,KAAKxC,KAAM6C,GACxE0E,EAAM+C,aAAc,EACpB/C,EAAMlD,KAAOA,EACbkD,EAAM6C,QAAUA,EAEhBpK,KAAKge,eACHC,KAAK,EACL1W,MAAOA,KAGXhF,EAAeO,UAAUib,gBAAkB,SAASlb,EAAMwB,EAAM+F,EAAS3C,GACpD,gBAAR5E,KACT4E,EAAU2C,EACVA,EAAU/F,EACVA,EAAOxB,EACPA,EAAO,KAIT,IAAI0E,GAAQC,GACZD,GAAM1E,KAAOA,IAAS7C,KAAKoW,gBAAkBpW,KAAK2L,WAAWnJ,KAAKxC,KAAM6C,GACxE0E,EAAMlD,KAAOA,EACbkD,EAAME,QAAUA,EAChBF,EAAM8C,iBAAmBD,EAEzBpK,KAAKge,eACHC,KAAK,EACL1W,MAAOA,KAGX3E,EAAK,kBAAmB,WACtB,MAAO,UAASwE,EAAMkU,GACpB,GAAKA,EAAL,CAGA,GAAI/T,GAAQ+T,EAAS/T,MACjB2W,EAAU9W,GAAQA,EAAKE,QAW3B,IARIC,EAAM1E,OACF0E,EAAM1E,OAAQ7C,MAAKuc,UACvBvc,KAAKuc,QAAQhV,EAAM1E,MAAQ0E,GAEzB2W,IACFA,EAAQxH,QAAS,KAGhBnP,EAAM1E,MAAQuE,IAAS8W,EAAQ3W,OAASA,EAAM1E,MAAQuE,EAAKvE,KAAM,CACpE,IAAKqb,EACH,KAAM,IAAI3f,WAAU,+IACtB,IAAI2f,EAAQ3W,MACV,KAAsB,YAAlB2W,EAAQxW,OACJ,GAAIjG,OAAM,sDAAwD2F,EAAKvE,KAAO,0EAE9E,GAAIpB,OAAM,UAAY2F,EAAKvE,KAAO,mBAAqBqb,EAAQxW,OAAS,8CAE7EwW,GAAQxW,SACXwW,EAAQxW,OAAS,YACnBwW,EAAQ3W,MAAQA,OAKtBxE,EAAgB,SAAS0O,GACvB,MAAO,YACLA,EAAYjP,KAAKxC,MAEjBA,KAAKuc,WACLvc,KAAK+B,QAAQK,oBAuEjBC,EAAewa,EAAc,YAC3B7X,MAAO,WACL,MAAO,YA8NXpC,EAAK,SAAU,SAASub,GACtB,MAAO,UAAStb,GAGd,aAFO7C,MAAK+B,QAAQK,cAAcS,SAC3B7C,MAAKuc,QAAQ1Z,GACbsb,EAAI3b,KAAKxC,KAAM6C,MAI1BD,EAAK,QAAS,SAASkM,GACrB,MAAO,UAAS1H,GACd,MAAIpH,MAAKuc,QAAQnV,EAAKvE,OACpBuE,EAAKE,SAASI,OAAS,UAChB,KAGTN,EAAKE,SAASjD,KAAO+C,EAAKE,SAASjD,SAE5ByK,EAAMtM,KAAKxC,KAAMoH,OAI5BxE,EAAK,YAAa,SAASmM,GAEzB,MAAO,UAAS3H,GAEd,MADAA,GAAKE,SAASjD,KAAO+C,EAAKE,SAASjD,SAC5B6H,QAAQC,QAAQ4C,EAAUsG,MAAMrV,KAAMsV,YAAY1J,KAAK,SAAS5B,GAIrE,OAF4B,YAAxB5C,EAAKE,SAASI,QAAgD,UAAxBN,EAAKE,SAASI,SAAuBN,EAAKE,SAASI,QAAUqC,EAAqB3C,EAAK4C,WAC/H5C,EAAKE,SAASI,OAAS,YAClBsC,OAMbpH,EAAK,OAAQ,SAASwb,GACpB,MAAO,UAAS3H,GACd,GAAI/S,GAAS1D,KACTuH,EAAQ7D,EAAO6Y,QAAQ9F,EAE3B,QAAKlP,GAASA,EAAMlD,KAAKtD,OAChBqd,EAAO/I,MAAMrV,KAAMsV,YAE5B/N,EAAM4C,gBAAkB5C,EAAMgD,kBAI9B+F,EAAKmG,EAAYlP,EAAO7D,GAGxBia,EAAgBlH,EAAYlP,KAAW7D,GAClC6D,EAAM3C,WACT2C,EAAM3C,SAAWlB,EAAO8E,UAAUjB,EAAMmD,OAAO/F,UAG5CjB,EAAOuN,QACVvN,EAAO6Y,QAAQ9F,GAAcnX,QAG/BoE,EAAO4E,IAAImO,EAAYlP,EAAM3C,UAEtBsH,QAAQC,cAInBvJ,EAAK,cAAe,SAASoM,GAC3B,MAAO,UAAS5H,GACc,UAAxBA,EAAKE,SAASI,SAChBN,EAAKE,SAASI,OAASpI,QAIzB0P,EAAYxM,KAAKxC,KAAMoH,EAEvB,IAEIG,GAFA7D,EAAS1D,IAKb,IAAI0D,EAAO6Y,QAAQnV,EAAKvE,MACtB0E,EAAQ7D,EAAO6Y,QAAQnV,EAAKvE,MAEvB0E,EAAM+C,cACT/C,EAAMlD,KAAOkD,EAAMlD,KAAKwB,OAAOuB,EAAKE,SAASjD,OAC/CkD,EAAMlD,KAAOkD,EAAMlD,KAAKwB,OAAOuB,EAAKE,SAASjD,UAK1C,IAAI+C,EAAKE,SAASC,MACrBA,EAAQH,EAAKE,SAASC,MACtBA,EAAMlD,KAAOkD,EAAMlD,KAAKwB,OAAOuB,EAAKE,SAASjD,UAK1C,MAAMX,EAAO6F,SAAWnC,EAAKE,SAASoP,QACX,YAAxBtP,EAAKE,SAASI,QAAgD,OAAxBN,EAAKE,SAASI,QAA2C,OAAxBN,EAAKE,SAASI,QAAkB,CAK7G,GAHqB,mBAAV2W,SACTA,OAAO7b,KAAKkB,EAAQ0D,IAEjBA,EAAKE,SAASC,QAAUH,EAAKE,SAASoP,OACzC,KAAM,IAAIjV,OAAM2F,EAAKvE,KAAO,gBAAkBuE,EAAKE,SAASI,OAAS,uBAEvEH,GAAQH,EAAKE,SAASC,MAGlBA,GAASH,EAAKE,SAASjD,OACzBkD,EAAMlD,KAAOkD,EAAMlD,KAAKwB,OAAOuB,EAAKE,SAASjD,OAI5CkD,IACHA,EAAQC,IACRD,EAAMlD,KAAO+C,EAAKE,SAASjD,KAC3BkD,EAAME,QAAU,cAIlB/D,EAAO6Y,QAAQnV,EAAKvE,MAAQ0E,CAE5B,IAAI+W,GAAUla,EAAMmD,EAAMlD,KAE1BkD,GAAMlD,KAAOia,EAAQha,MACrBiD,EAAM4C,gBAAkBmU,EAAQ/Z,QAChCgD,EAAM1E,KAAOuE,EAAKvE,KAClB0E,EAAMoD,WAAavD,EAAKE,SAASqD,cAAe,CAIhD,KAAK,GADD4T,MACKzd,EAAI,EAAG0D,EAAI+C,EAAMlD,KAAKtD,OAAYyD,EAAJ1D,EAAOA,IAC5Cyd,EAAkBze,KAAKoM,QAAQC,QAAQzI,EAAOiI,UAAUpE,EAAMlD,KAAKvD,GAAIsG,EAAKvE,OAE9E,OAAOqJ,SAAQqD,IAAIgP,GAAmB3S,KAAK,SAASrB,GAIlD,MAFAhD,GAAMgD,eAAiBA,GAGrBlG,KAAMkD,EAAMlD,KACZoD,QAAS,WAgBP,MAbA6I,GAAKlJ,EAAKvE,KAAM0E,EAAO7D,GAGvBia,EAAgBvW,EAAKvE,KAAM0E,KAAW7D,GAEjC6D,EAAM3C,WACT2C,EAAM3C,SAAWlB,EAAO8E,UAAUjB,EAAMmD,OAAO/F,UAG5CjB,EAAOuN,QACVvN,EAAO6Y,QAAQnV,EAAKvE,MAAQvD,QAGvBiI,EAAM3C,mBA6BzBhC,EAAK,kBAAmB,SAAS4b,GAC/B,MAAO,UAASpX,EAAMkU,GACpB,GAAIA,IAAclU,EAAKE,SAAS3C,WAAa4H,GAAoC,UAAxBnF,EAAKE,SAASI,QACrE,MAAO8W,GAAehc,KAAKxC,KAAMoH,EAAMkU,EAEzClU,GAAKE,SAASI,OAAS,QACvB,IAAIH,GAAQH,EAAKE,SAASC,MAAQC,GAClCD,GAAMlD,KAAO+C,EAAKE,SAASjD,IAC3B,IAAIwG,GAAcD,EAAexD,EAAKE,SAAS3C,QAC/C4C,GAAME,QAAU,WACd,MAAOoD,OAKb9H,EAAgB,SAAS0O,GACvB,MAAO,YAYL,QAASgN,GAAcC,GACrB,GAAIrZ,OAAOsZ,KACTtZ,OAAOsZ,KAAKve,GAAU+Q,QAAQuN,OAE9B,KAAK,GAAIE,KAAKxe,GACP2D,EAAevB,KAAKpC,EAAUwe,IAEnCF,EAASE,GAIf,QAASC,GAAmBH,GAC1BD,EAAc,SAASK,GACrB,GAAoD,IAAhD7d,EAAQuB,KAAKuc,EAAoBD,GAArC,CAEA,IACE,GAAI9Z,GAAQ5E,EAAS0e,GAEvB,MAAO9R,GACL+R,EAAmBjf,KAAKgf,GAE1BJ,EAASI,EAAY9Z,MAhCzB,GAAItB,GAAS1D,IACbyR,GAAYjP,KAAKkB,EAEjB,IAMIsb,GANAjb,EAAiBsB,OAAOvC,UAAUiB,eAGlCgb,GAAsB,KAAM,iBAAkB,eAAgB,gBAAiB,SAAU,eAAgB,WAC3G,wBAAyB,oBAAqB,kBAAmB,kBAAmB,kBA6BtFrb,GAAO4E,IAAI,mBAAoB5E,EAAO8E,WACpCyW,cAAe,SAAShR,EAAYtJ,EAASua,EAASC,GAEpD,GAAIC,GAAYhf,EAASsR,MAEzBtR,GAASsR,OAASpS,MAGlB,IAAI+f,EACJ,IAAIH,EAAS,CACXG,IACA,KAAK,GAAIT,KAAKM,GACZG,EAAWT,GAAKxe,EAASwe,GACzBxe,EAASwe,GAAKM,EAAQN,GAc1B,MATKja,KACHqa,KAEAH,EAAmB,SAAShc,EAAMmC,GAChCga,EAAenc,GAAQmC,KAKpB,WACL,GAEIsa,GAFAzU,EAAclG,EAAUiG,EAAejG,MAGvC4a,IAAoB5a,CA6BxB,MA3BKA,GAAWwa,IACdN,EAAmB,SAAShc,EAAMmC,GAC5Bga,EAAenc,KAAUmC,GAET,mBAATA,KAIPma,IACF/e,EAASyC,GAAQvD,QAEdqF,IACHkG,EAAYhI,GAAQmC,EAEO,mBAAhBsa,GACJC,GAAmBD,IAAiBta,IACvCua,GAAkB,GAGpBD,EAAeta,MAKvB6F,EAAc0U,EAAkB1U,EAAcyU,EAG1CD,EACF,IAAK,GAAIT,KAAKS,GACZjf,EAASwe,GAAKS,EAAWT,EAI7B,OAFAxe,GAASsR,OAAS0N,EAEXvU,UAMjB9H,EAAgB,SAAS0O,GACvB,MAAO,YAOL,QAAS+N,GAAYxb,GACnB,MAAyB,YAArBA,EAAK5C,OAAO,EAAG,GACV4C,EAAK5C,OAAO,IAAME,GAEvBme,GAAgBzb,EAAK5C,OAAO,EAAGqe,EAAa1e,SAAW0e,EAClDzb,EAAK5C,OAAOqe,EAAa1e,QAE3BiD,EAbT,GAAIN,GAAS1D,IAGb,IAFAyR,EAAYjP,KAAKkB,GAEI,mBAAV8I,SAA4C,mBAAZE,WAA2BF,OAAOa,SAC3E,GAAIoS,GAAepS,SAASxO,SAAW,KAAOwO,SAASpO,UAAYoO,SAASnO,KAAO,IAAMmO,SAASnO,KAAO,GAY3GwE,GAAO4E,IAAI,gBAAiB5E,EAAO8E,WACjCkX,eAAgB,SAASpR,EAASqR,GAChC,MAAOH,GAAY9b,EAAOqU,cAAczJ,EAASqR,KAEnDC,YAAa,SAASC,GAEpB,GACIC,GADAC,EAAcF,EAASngB,YAAY,IAGrCogB,GADiB,IAAfC,EACSF,EAASze,OAAO,EAAG2e,GAEnBF,CAEb,IAAIG,GAAUF,EAASlf,MAAM,IAI7B,OAHAof,GAAQngB,MACRmgB,EAAUA,EAAQjgB,KAAK,MAGrB+f,SAAUN,EAAYM,GACtBE,QAASR,EAAYQ,WAW/Bpd,EAAK,QAAS,SAASkM,GACrB,MAAO,UAAS1H,GAId,MAFIA,GAAKE,SAASkU,YAAcna,IAC9BjB,EAASsR,OAAS1R,KAAKigB,WAClBnR,EAAMtM,KAAKxC,KAAMoH,MAI5BrE,EAAgB,SAAS0O,GACvB,MAAO,YAYL,QAASyO,GAAWlW,EAAQmW,GAG1BnW,EAASA,EAAOtL,QAAQ0hB,EAAc,GAGtC,IAAIC,GAASrW,EAAOrL,MAAM2hB,GACtBC,GAAgBF,EAAO,GAAGzf,MAAM,KAAKuf,IAAiB,WAAWzhB,QAAQ8hB,EAAS,IAGlFC,EAAeC,EAAcH,KAAkBG,EAAcH,GAAgB,GAAI9H,QAAOkI,EAAgBJ,EAAeK,EAAgB,KAE3IH,GAAaI,UAAY,CAKzB,KAHA,GAEIliB,GAFA0F,KAGG1F,EAAQ8hB,EAAaxN,KAAKjJ,IAC/B3F,EAAKvE,KAAKnB,EAAM,IAAMA,EAAM,GAE9B,OAAO0F,GAOT,QAAS8E,GAAQ7E,EAAOoa,EAAUoC,EAASC,GAEzC,GAAoB,gBAATzc,MAAuBA,YAAiBsB,QACjD,MAAOuD,GAAQkM,MAAM,KAAMzP,MAAM9C,UAAUiO,OAAOvO,KAAK8S,UAAW,EAAGA,UAAUvU,OAAS,GAK1F,IAFoB,gBAATuD,IAAwC,kBAAZoa,KACrCpa,GAASA,MACPA,YAAiBsB,QAWhB,CAAA,GAAoB,gBAATtB,GAAmB,CACjC,GAAI6R,GAAqBzS,EAAOkR,qBAA4D,OAArCtQ,EAAMlD,OAAOkD,EAAMvD,OAAS,EAAG,GAClF0V,EAAa/S,EAAO0S,eAAe9R,EAAOyc,EAC1C5K,IAAqE,OAA/CM,EAAWrV,OAAOqV,EAAW1V,OAAS,EAAG,KACjE0V,EAAaA,EAAWrV,OAAO,EAAGqV,EAAW1V,OAAS,GACxD,IAAI2J,GAAShH,EAAOpB,IAAImU,EACxB,KAAK/L,EACH,KAAM,IAAIjJ,OAAM,sCAAwC6C,EAAQ,QAAUmS,GAAcsK,EAAU,UAAYA,EAAU,KAAO,KACjI,OAAOrW,GAAOyK,aAAezK,EAAO,WAAaA,EAIjD,KAAM,IAAInM,WAAU,mBArBpB,IAAK,GADDyiB,MACKlgB,EAAI,EAAGA,EAAIwD,EAAMvD,OAAQD,IAChCkgB,EAAgBlhB,KAAK4D,EAAO,UAAUY,EAAMxD,GAAIigB,GAClD7U,SAAQqD,IAAIyR,GAAiBpV,KAAK,SAAS1J,GACrCwc,GACFA,EAASrJ,MAAM,KAAMnT,IACtB4e,GAmBP,QAASpP,GAAO7O,EAAMwB,EAAM4c,GAuC1B,QAASxZ,GAAQyZ,EAAKvc,EAAS+F,GAiB3B,QAASyW,GAAkB7c,EAAOoa,EAAUoC,GAC1C,MAAoB,gBAATxc,IAAwC,kBAAZoa,GAC9BwC,EAAI5c,GACN6E,EAAQ3G,KAAKkB,EAAQY,EAAOoa,EAAUoC,EAASpW,EAAO4S,IAlBjE,IAAK,GADD8D,MACKtgB,EAAI,EAAGA,EAAIuD,EAAKtD,OAAQD,IAC/BsgB,EAAUthB,KAAKohB,EAAI7c,EAAKvD,IAE1B4J,GAAO2W,IAAM3W,EAAO4S,GAEpB5S,EAAOiL,OAAS,aAGG,IAAf2L,GACFF,EAAUrQ,OAAOuQ,EAAa,EAAG5W,GAEf,IAAhB6W,GACFH,EAAUrQ,OAAOwQ,EAAc,EAAG5c,GAEhB,IAAhBwb,IAMFgB,EAAkBK,MAAQ,SAAS3e,GAEjC,GAAIsT,GAAqBzS,EAAOkR,qBAA0D,OAAnC/R,EAAKzB,OAAOyB,EAAK9B,OAAS,EAAG,GAChF1C,EAAMqF,EAAO0S,eAAevT,EAAM6H,EAAO4S,GAG7C,OAFInH,IAAuD,OAAjC9X,EAAI+C,OAAO/C,EAAI0C,OAAS,EAAG,KACnD1C,EAAMA,EAAI+C,OAAO,EAAG/C,EAAI0C,OAAS,IAC5B1C,GAET+iB,EAAUrQ,OAAOoP,EAAc,EAAGgB,GAIpC,IAAIvG,GAAaxa,EAAS+I,OAC1B/I,GAAS+I,QAAUA,CAEnB,IAAIxJ,GAASshB,EAAQ5L,MAAsB,IAAhBkM,EAAqBnhB,EAAWuE,EAASyc,EAOpE,OALAhhB,GAAS+I,QAAUyR,EAEE,mBAAVjb,IAAyB+K,IAClC/K,EAAS+K,EAAO/F,SAEG,mBAAVhF,GACFA,EADT,OAlFiB,gBAARkD,KACToe,EAAU5c,EACVA,EAAOxB,EACPA,EAAO,MAEHwB,YAAgBuB,SACpBqb,EAAU5c,EACVA,GAAQ,UAAW,UAAW,UAAU0M,OAAO,EAAGkQ,EAAQlgB,SAGtC,kBAAXkgB,KACTA,EAAU,SAAUA,GAClB,MAAO,YAAa,MAAOA,KAC1BA,IAGyB3hB,SAA1B+E,EAAKA,EAAKtD,OAAS,IACrBsD,EAAKxE,KAGP,IAAIsgB,GAAcoB,EAAcD,CAEsB,MAAjDnB,EAAelf,EAAQuB,KAAK6B,EAAM,cAErCA,EAAK0M,OAAOoP,EAAc,GAIrBtd,IACHwB,EAAOA,EAAKwB,OAAOqa,EAAWe,EAAQtgB,WAAYwf,MAGA,KAAjDoB,EAAetgB,EAAQuB,KAAK6B,EAAM,aACrCA,EAAK0M,OAAOwQ,EAAc,GAEwB,KAA/CD,EAAcrgB,EAAQuB,KAAK6B,EAAM,YACpCA,EAAK0M,OAAOuQ,EAAa,EAkD3B,IAAI/Z,GAAQC,GACZD,GAAM1E,KAAOA,IAASa,EAAO0S,gBAAkB1S,EAAOiI,WAAWnJ,KAAKkB,EAAQb,GAC9E0E,EAAMlD,KAAOA,EACbkD,EAAME,QAAUA,EAEhB/D,EAAOsa,eACLC,KAAK,EACL1W,MAAOA,IAtKX,GAAI7D,GAAS1D,IACbyR,GAAYjP,KAAKxC,KAEjB,IAAIogB,GAAe,2CACfO,EAAgB,kCAChBC,EAAiB,6CACjBN,EAAiB,eACjBE,EAAU,aAEVE,IAgKJhP,GAAOuM,OAGPrb,EAAK,kBAAmB,SAAS4b,GAC/B,MAAO,UAASpX,EAAMkU,GAEpB,IAAKA,IAAaA,EAAS2C,IACzB,MAAOO,GAAehc,KAAKxC,KAAMoH,EAAMkU,EAEzC,IAAI4C,GAAU9W,GAAQA,EAAKE,SACvBC,EAAQ+T,EAAS/T,KAErB,IAAI2W,EACF,GAAKA,EAAQxW,QAA4B,UAAlBwW,EAAQxW,QAE1B,IAAKH,EAAM1E,MAA0B,OAAlBqb,EAAQxW,OAC9B,KAAM,IAAIjG,OAAM,qCAAuCyc,EAAQxW,OAAS,WAAaN,EAAKvE,UAF1Fqb,GAAQxW,OAAS,KAMrB,IAAKH,EAAM1E,KAkBLqb,IACGA,EAAQ3W,OAAU2W,EAAQxH,OAEtBwH,EAAQ3W,OAAS2W,EAAQ3W,MAAM1E,MAAQqb,EAAQ3W,MAAM1E,MAAQuE,EAAKvE,OACzEqb,EAAQ3W,MAAQjI,QAFhB4e,EAAQ3W,MAAQA,EAKlB2W,EAAQxH,QAAS,GAIbnP,EAAM1E,OAAQ7C,MAAKuc,UACvBvc,KAAKuc,QAAQhV,EAAM1E,MAAQ0E,OA9Bd,CACf,IAAK2W,EACH,KAAM,IAAI3f,WAAU,mCAEtB,IAAI2f,EAAQ3W,QAAU2W,EAAQ3W,MAAM1E,KAClC,KAAM,IAAIpB,OAAM,wCAA0C2F,EAAKvE,KAEjEqb,GAAQ3W,MAAQA,MA4BtB7D,EAAOuc,UAAYvO,EACnBhO,EAAO+d,WAAatY,KAWxB,WACE,QAASuY,GAAche,EAAQ0F,GAE7B,GAAIA,EAAY,CACd,GAAIuY,EACJ,IAAIje,EAAOmR,aACT,GAAyD,KAApD8M,EAAoBvY,EAAW1J,YAAY,MAC9C,MAAO0J,GAAWhI,OAAOugB,EAAoB,OAG/C,IAAqD,KAAhDA,EAAoBvY,EAAWnI,QAAQ,MAC1C,MAAOmI,GAAWhI,OAAO,EAAGugB,EAGhC,OAAOvY,IAIX,QAASwY,GAAYle,EAAQb,GAC3B,GAAIgf,GACAC,EAEA/B,EAAcld,EAAKnD,YAAY,IAEnC,OAAmB,IAAfqgB,GAGArc,EAAOmR,aACTgN,EAAehf,EAAKzB,OAAO2e,EAAc,GACzC+B,EAAajf,EAAKzB,OAAO,EAAG2e,KAG5B8B,EAAehf,EAAKzB,OAAO,EAAG2e,GAC9B+B,EAAajf,EAAKzB,OAAO2e,EAAc,IAAM8B,EAAazgB,OAAOygB,EAAaniB,YAAY,KAAO,KAIjGqiB,SAAUF,EACVG,OAAQF,IAdV,OAmBF,QAASG,GAAmBve,EAAQme,EAAcC,EAAY1K,GAI5D,MAHIA,IAAuE,OAAnDyK,EAAazgB,OAAOygB,EAAa9gB,OAAS,EAAG,KACnE8gB,EAAeA,EAAazgB,OAAO,EAAGygB,EAAa9gB,OAAS,IAE1D2C,EAAOmR,YACFiN,EAAa,IAAMD,EAGnBA,EAAe,IAAMC,EAOhC,QAASI,GAAsBxe,EAAQye,GACrC,MAAOze,GAAOkR,qBAAwD,OAAjCuN,EAAI/gB,OAAO+gB,EAAIphB,OAAS,EAAG,GAGlE,QAASqhB,GAAoBrK,GAC3B,MAAO,UAASlV,EAAMuG,EAAYsQ,GAChC,GAAIhW,GAAS1D,KAETqiB,EAAST,EAAYle,EAAQb,EAGjC,IAFAuG,EAAasY,EAAc1hB,KAAMoJ,IAE5BiZ,EACH,MAAOtK,GAAcvV,KAAKxC,KAAM6C,EAAMuG,EAAYsQ,EAGpD,IAAImI,GAAene,EAAOqU,cAAcsK,EAAON,SAAU3Y,GAAY,GACjE0Y,EAAape,EAAOqU,cAAcsK,EAAOL,OAAQ5Y,GAAY,EACjE,OAAO6Y,GAAmBve,EAAQme,EAAcC,EAAYI,EAAsBxe,EAAQ2e,EAAON,YAIrGnf,EAAK,iBAAkBwf,GACvBxf,EAAK,gBAAiBwf,GAEtBxf,EAAK,YAAa,SAAS+I,GACzB,MAAO,UAAS9I,EAAMuG,EAAYsQ,GAChC,GAAIhW,GAAS1D,IAEboJ,GAAasY,EAAc1hB,KAAMoJ,EAEjC,IAAIiZ,GAAST,EAAYle,EAAQb,EAEjC,OAAKwf,GAGEnW,QAAQqD,KACb7L,EAAOiI,UAAU0W,EAAON,SAAU3Y,GAAY,GAC9C1F,EAAOiI,UAAU0W,EAAOL,OAAQ5Y,GAAY,KAE7CwC,KAAK,SAAS6K,GACb,MAAOwL,GAAmBve,EAAQ+S,EAAW,GAAIA,EAAW,GAAIyL,EAAsBxe,EAAQ2e,EAAON,aAP9FpW,EAAUnJ,KAAKkB,EAAQb,EAAMuG,EAAYsQ,MAYtD9W,EAAK,SAAU,SAASgM,GACtB,MAAO,UAASxH,GACd,GAKIkb,GALA5e,EAAS1D,KAET6C,EAAOuE,EAAKvE,IAiBhB,OAbIa,GAAOmR,YACsC,KAA1CyN,EAAoBzf,EAAK5B,QAAQ,QACpCmG,EAAKE,SAAS5D,OAASb,EAAKzB,OAAO,EAAGkhB,GACtClb,EAAKvE,KAAOA,EAAKzB,OAAOkhB,EAAoB,IAIK,KAA9CA,EAAoBzf,EAAKnD,YAAY,QACxC0H,EAAKE,SAAS5D,OAASb,EAAKzB,OAAOkhB,EAAoB,GACvDlb,EAAKvE,KAAOA,EAAKzB,OAAO,EAAGkhB,IAIxB1T,EAAOpM,KAAKkB,EAAQ0D,GAC1BwE,KAAK,SAASoC,GACb,MAAyB,IAArBsU,GAA4Blb,EAAKE,SAAS5D,QAKtCA,EAAOwV,cAAgBxV,GAAQiI,UAAUvE,EAAKE,SAAS5D,OAAQ0D,EAAKvE,MAC3E+I,KAAK,SAAS2W,GAEb,MADAnb,GAAKE,SAAS5D,OAAS6e,EAChBvU,IAPAA,IAUVpC,KAAK,SAASoC,GACb,GAAIgU,GAAS5a,EAAKE,SAAS5D,MAE3B,KAAKse,EACH,MAAOhU,EAGT,IAAI5G,EAAKvE,MAAQmf,EACf,KAAM,IAAIvgB,OAAM,UAAYugB,EAAS,sHAGvC,IAAIte,EAAO6Y,SAAW7Y,EAAO6Y,QAAQ1Z,GACnC,MAAOmL,EAET,IAAIkL,GAAexV,EAAOwV,cAAgBxV,CAG1C,OAAOwV,GAAa,UAAU8I,GAC7BpW,KAAK,SAAS4W,GAKb,MAHApb,GAAKE,SAASkb,aAAeA,EAE7Bpb,EAAK4G,QAAUA,EACXwU,EAAa5T,OACR4T,EAAa5T,OAAOpM,KAAKkB,EAAQ0D,GAEnC4G,SAMfpL,EAAK,QAAS,SAASkM,GACrB,MAAO,UAAS1H,GACd,GAAI1D,GAAS1D,IACb,IAAIoH,EAAKE,SAASkb,cAAwC,WAAxBpb,EAAKE,SAASI,OAAqB,CACnE,GAA0C,kBAA/BN,GAAKE,SAASkb,cAA+Bpb,EAAKE,SAASkb,uBAAwB5gB,IAAwD,kBAAvCwF,GAAKE,SAASkb,aAAdpb,WAC7G,MAAO,EAET,IADAA,EAAKE,SAASkU,YAAa,EACvBpU,EAAKE,SAASkb,aAAa1T,MAC7B,MAAO1H,GAAKE,SAASkb,aAAa1T,MAAMtM,KAAKkB,EAAQ0D,EAAM,SAASA,GAClE,MAAO0H,GAAMtM,KAAKkB,EAAQ0D,KAGhC,MAAO0H,GAAMtM,KAAKkB,EAAQ0D,MAI9BxE,EAAK,YAAa,SAASmM,GACzB,MAAO,UAAS3H,GACd,GAAI1D,GAAS1D,KACTyiB,EAAOnN,SACX,OAAIlO,GAAKE,SAASkb,cAAgBpb,EAAKE,SAASkb,aAAazT,WAAqC,WAAxB3H,EAAKE,SAASI,OAC/EwE,QAAQC,QAAQ/E,EAAKE,SAASkb,aAAazT,UAAUsG,MAAM3R,EAAQ+e,IAAO7W,KAAK,SAASvE,GAC7F,GAAIqb,GAAYtb,EAAKE,SAASob,SAG9B,IAAIA,EAAW,CACb,GAAwB,gBAAbA,GACT,KAAM,IAAIjhB,OAAM,oDAElB,IAAIkhB,GAAevb,EAAK4G,QAAQpN,MAAM,KAAK,EAGtC8hB,GAAUE,MAAQF,EAAUE,MAAQxb,EAAK4G,UAC5C0U,EAAUE,KAAOD,EAAe,iBAG7BD,EAAUG,SAAWH,EAAUG,QAAQ9hB,QAAU,KAAO2hB,EAAUG,QAAQ,IAAMH,EAAUG,QAAQ,IAAMzb,EAAK4G,YAChH0U,EAAUG,SAAWF,IASzB,MAHqB,gBAAVtb,KACTD,EAAK4C,OAAS3C,GAET0H,EAAUsG,MAAM3R,EAAQ+e,KAG5B1T,EAAUsG,MAAM3R,EAAQ+e,MAInC7f,EAAK,cAAe,SAASoM,GAC3B,MAAO,UAAS5H,GACd,GAAI1D,GAAS1D,KACT8iB,GAAoB,CAExB,IAAI1b,EAAKE,SAASkb,eAAiB9e,EAAO6F,SAAmC,WAAxBnC,EAAKE,SAASI,OAAqB,CACtF,GAAIN,EAAKE,SAASkb,aAAaxT,YAC7B,MAAO9C,SAAQC,QAAQ/E,EAAKE,SAASkb,aAAaxT,YAAYxM,KAAKkB,EAAQ0D,EAAM,SAASA,GACxF,GAAI0b,EACF,KAAM,IAAIrhB,OAAM,wCAElB,OADAqhB,IAAoB,EACb9T,EAAYxM,KAAKkB,EAAQ0D,MAC9BwE,KAAK,SAASvE,GAChB,MAAIyb,GACKzb,GAEM/H,SAAX+H,GACFF,EAAkBC,EAAMC,GACnB2H,EAAYxM,KAAKkB,EAAQ0D,KAE/B,IAA0C,kBAA/BA,GAAKE,SAASkb,cAA+Bpb,EAAKE,SAASkb,uBAAwB5gB,IAAwD,kBAAvCwF,GAAKE,SAASkb,aAAdpb,WAClH,MAAO8E,SAAQC,SAAS/E,EAAKE,SAASkb,aAAdpb,YAAsCA,EAAKE,SAASkb,cAAchgB,KAAKkB,EAAQ0D,EAAK4G,QAAS5G,EAAKvE,OACzH+I,KAAK,SAAUvE,GAGd,MAFe/H,UAAX+H,GACFF,EAAkBC,EAAMC,GACnB2H,EAAYxM,KAAKkB,EAAQ0D,KAGtC,MAAO4H,GAAYxM,KAAKkB,EAAQ0D,QA6CpC,IAAIiE,KAAiB,UAAW,OAAQ,MAAO,QAAS,aAAc,WAuDlEY,GAAqB,aAsDzBrJ,GAAK,YAAa,SAAS+I,GACzB,MAAO,UAAS9I,EAAMuG,EAAY2L,GAChC,GAAIrR,GAAS1D,IACb,OAAOqM,GAAmB7J,KAAKkB,EAAQb,EAAMuG,GAC5CwC,KAAK,SAAS/I,GACb,MAAO8I,GAAUnJ,KAAKkB,EAAQb,EAAMuG,EAAY2L,KAEjDnJ,KAAK,SAAS6K,GACb,MAAO1K,GAAuBvJ,KAAKkB,EAAQ+S,EAAYrN,QAY/D,WAEExG,EAAK,QAAS,SAASkM,GACrB,MAAO,UAAS1H,GACd,GAAI2b,GAAQ3b,EAAKE,SAASyb,MACtBC,EAAY5b,EAAKE,SAASjD,QAC9B,IAAI0e,EAAO,CACT3b,EAAKE,SAASI,OAAS,SACvB,IAAIH,GAAQC,GAeZ,OAdAxH,MAAKuc,QAAQnV,EAAKvE,MAAQ0E,EAC1BA,EAAM+C,aAAc,EACpB/C,EAAMlD,KAAO2e,EAAUnd,QAAQkd,IAC/Bxb,EAAM6C,QAAU,SAAS6Y,GACvB,OACE5F,SAAU,SAAS3S,GACjB,IAAK,GAAI9K,KAAK8K,GACZuY,EAAQrjB,EAAG8K,EAAO9K,GAChB8K,GAAOyK,eACT5N,EAAMmD,OAAO/F,QAAQwQ,cAAe,KAExC1N,QAAS,eAGN,GAGT,MAAOqH,GAAMtM,KAAKxC,KAAMoH,SA8C9B,WA8CE,QAAS8b,GAAgBC,EAAQvjB,EAAGoF,GAGlC,IAFA,GACIoe,GADAxb,EAAShI,EAAEgB,MAAM,KAEdgH,EAAO7G,OAAS,GACrBqiB,EAAUxb,EAAOC,QACjBsb,EAASA,EAAOC,GAAWD,EAAOC,MAEpCA,GAAUxb,EAAOC,QACXub,IAAWD,KACfA,EAAOC,GAAWpe,GArDtBjC,EAAgB,SAAS0O,GACvB,MAAO,YACLzR,KAAKqG,QACLoL,EAAYjP,KAAKxC,SAIrB4C,EAAK,SAAU,SAASgM,GACtB,MAAO,UAASxH,GACd,GAQIkS,GARAjT,EAAOrG,KAAKqG,KACZxD,EAAOuE,EAAKvE,KAMZqX,EAAY,CAEhB,KAAK,GAAIxP,KAAUrE,GAEjB,GADAiT,EAAgB5O,EAAOzJ,QAAQ,KACT,KAAlBqY,GAEA5O,EAAOtJ,OAAO,EAAGkY,KAAmBzW,EAAKzB,OAAO,EAAGkY,IAChD5O,EAAOtJ,OAAOkY,EAAgB,KAAOzW,EAAKzB,OAAOyB,EAAK9B,OAAS2J,EAAO3J,OAASuY,EAAgB,GAAI,CACxG,GAAI+J,GAAQ3Y,EAAO9J,MAAM,KAAKG,MAC1BsiB,GAAQnJ,IACVA,EAAYmJ,GACd3d,EAAW0B,EAAKE,SAAUjB,EAAKqE,GAASwP,GAAamJ,GAQzD,MAHIhd,GAAKxD,IACP6C,EAAW0B,EAAKE,SAAUjB,EAAKxD,IAE1B+L,EAAOpM,KAAKxC,KAAMoH,KAM7B,IAAIkc,GAAY,uFACZC,EAAgB,uEAcpB3gB,GAAK,YAAa,SAASmM,GACzB,MAAO,UAAS3H,GAEd,GAA4B,WAAxBA,EAAKE,SAASI,OAEhB,MADAN,GAAKE,SAASjD,KAAO+C,EAAKE,SAASjD,SAC5B6H,QAAQC,QAAQ/E,EAAK4C,OAI9B,IAAI3D,GAAOe,EAAK4C,OAAOrL,MAAM2kB,EAC7B,IAAIjd,EAGF,IAAK,GAFDmd,GAAYnd,EAAK,GAAG1H,MAAM4kB,GAErBziB,EAAI,EAAGA,EAAI0iB,EAAUziB,OAAQD,IAAK,CACzC,GAAIsiB,GAAUI,EAAU1iB,GACpB2c,EAAM2F,EAAQriB,OAEd0iB,EAAYL,EAAQhiB,OAAO,EAAG,EAIlC,IAHkC,KAA9BgiB,EAAQhiB,OAAOqc,EAAM,EAAG,IAC1BA,IAEe,KAAbgG,GAAiC,KAAbA,EAAxB,CAGA,GAAIC,GAAaN,EAAQhiB,OAAO,EAAGgiB,EAAQriB,OAAS,GAChD4iB,EAAWD,EAAWtiB,OAAO,EAAGsiB,EAAWziB,QAAQ,KAEvD,IAAI0iB,EAAU,CACZ,GAAIC,GAAYF,EAAWtiB,OAAOuiB,EAAS5iB,OAAS,EAAG2iB,EAAW3iB,OAAS4iB,EAAS5iB,OAAS,EAE9C,OAA3C4iB,EAASviB,OAAOuiB,EAAS5iB,OAAS,EAAG,IACvC4iB,EAAWA,EAASviB,OAAO,EAAGuiB,EAAS5iB,OAAS,GAChDqG,EAAKE,SAASqc,GAAYvc,EAAKE,SAASqc,OACxCvc,EAAKE,SAASqc,GAAU7jB,KAAK8jB,IAEtBxc,EAAKE,SAASqc,YAAqB/d,QAE1Ca,EAAKjE,KAAKxC,KAAM,UAAYoH,EAAKvE,KAAO,8BAAgC+gB,EAAY,qDAAuDA,EAAY,gCACvJxc,EAAKE,SAASqc,GAAU7jB,KAAK8jB,IAG7BV,EAAgB9b,EAAKE,SAAUqc,EAAUC,OAI3Cxc,GAAKE,SAASoc,IAAc,GAKlC,MAAO3U,GAAUsG,MAAMrV,KAAMsV,iBAmBnC,WAMEvS,EAAgB,SAAS0O,GACvB,MAAO,YACLA,EAAYjP,KAAKxC,MACjBA,KAAKgW,WACLhW,KAAK+B,QAAQ8hB,oBAKjBjhB,EAAK,SAAU,SAASgM,GACtB,MAAO,UAASxH,GACd,GAAI1D,GAAS1D,KACT8jB,GAAU,CAEd,MAAM1c,EAAKvE,OAAQa,GAAO6Y,SACxB,IAAK,GAAI/W,KAAK9B,GAAOsS,QAAS,CAC5B,IAAK,GAAIlV,GAAI,EAAGA,EAAI4C,EAAOsS,QAAQxQ,GAAGzE,OAAQD,IAAK,CACjD,GAAIijB,GAAYrgB,EAAOsS,QAAQxQ,GAAG1E,EAElC,IAAIijB,GAAa3c,EAAKvE,KAAM,CAC1BihB,GAAU,CACV,OAIF,GAA8B,IAA1BC,EAAU9iB,QAAQ,KAAY,CAChC,GAAI+iB,GAAQD,EAAUnjB,MAAM,IAC5B,IAAoB,GAAhBojB,EAAMjjB,OAAa,CACrB2C,EAAOsS,QAAQxQ,GAAGuL,OAAOjQ,IAAK,EAC9B,UAGF,GAAIsG,EAAKvE,KAAKohB,UAAU,EAAGD,EAAM,GAAGjjB,SAAWijB,EAAM,IACjD5c,EAAKvE,KAAKzB,OAAOgG,EAAKvE,KAAK9B,OAASijB,EAAM,GAAGjjB,OAAQijB,EAAM,GAAGjjB,SAAWijB,EAAM,IACyB,IAAxG5c,EAAKvE,KAAKzB,OAAO4iB,EAAM,GAAGjjB,OAAQqG,EAAKvE,KAAK9B,OAASijB,EAAM,GAAGjjB,OAASijB,EAAM,GAAGjjB,QAAQE,QAAQ,KAAY,CAC9G6iB,GAAU,CACV,SAKN,GAAIA,EACF,MAAOpgB,GAAO,UAAU8B,GACvBoG,KAAK,WACJ,MAAOgD,GAAOpM,KAAKkB,EAAQ0D,KAInC,MAAOwH,GAAOpM,KAAKkB,EAAQ0D,SA0BjC,WACErE,EAAgB,SAAS0O,GACvB,MAAO,YACLA,EAAYjP,KAAKxC,MACjBA,KAAKsG,eAIT1D,EAAK,SAAU,SAASgM,GACtB,MAAO,UAASxH,GACd,GAAI1D,GAAS1D,KAETqE,EAAOX,EAAO4C,SAASc,EAAKvE,KAChC,IAAIwB,EACF,IAAK,GAAIvD,GAAI,EAAGA,EAAIuD,EAAKtD,OAAQD,IAC/B4C,EAAO,UAAUW,EAAKvD,GAAIsG,EAAKvE,KAEnC,OAAO+L,GAAOpM,KAAKkB,EAAQ0D,SASjCrE,EAAgB,SAAS0O,GACvB,MAAO,YACLA,EAAY4D,MAAMrV,KAAMsV,WACxBlV,EAASsR,OAAS1R,KAAKigB,aAI3Brd,EAAK,QAAS,SAASkM,GACrB,MAAO,UAAS1H,GAEd,MADAA,GAAKE,SAASkU,YAAa,EACpB1M,EAAMtM,KAAKxC,KAAMoH,MAEzBkL,EAAS,GAAI/P,GAEhBnC,EAAS8jB,SAAW5R,EACpBA,EAAO6R,QAAU,cACM,gBAAVzZ,SAAsBA,OAAO/F,SAA6B,gBAAXA,WACxD+F,OAAO/F,QAAU2N,GAEnBlS,EAASkS,OAASA,GAEF,mBAARnS,MAAsBA,KAAOhC,QAGvC,GAAIimB,GAAgC,mBAAZlY,QAGxB,IAAwB,mBAAbQ,UAA0B,CACnC,GAAI2X,GAAU3X,SAASS,qBAAqB,SAM5C,IALAnM,aAAeqjB,EAAQA,EAAQtjB,OAAS,GACpC2L,SAAS4X,gBAAkBtjB,aAAaujB,OAASvjB,aAAa+a,SAChE/a,aAAe0L,SAAS4X,eACrBtjB,aAAaE,MAChBF,aAAe1B,QACb8kB,EAAY,CACd,GAAII,GAAUxjB,aAAaE,IACvBujB,EAAWD,EAAQpjB,OAAO,EAAGojB,EAAQ9kB,YAAY,KAAO,EAC5D8M,QAAOkY,kBAAoBxmB,EAC3BwO,SAASiY,MACP,uCAA8CF,EAAW,sCAI3DvmB,SAIC,IAA6B,mBAAlBuO,eAA+B,CAC7C,GAAIgY,GAAW,EACf,KACE,KAAM,IAAIhjB,OAAM,KAChB,MAAOuL,GACPA,EAAEvM,MAAM/B,QAAQ,iCAAkC,SAASF,EAAGH,GAC5D2C,cAAiBE,IAAK7C,GACtBomB,EAAWpmB,EAAIK,QAAQ,YAAa,OAGpC0lB,GACF3X,cAAcgY,EAAW,uBAC3BvmB,QAGA8C,cAAoC,mBAAd4jB,aAA8B1jB,IAAK0jB,YAAe,KACxE1mB"} \ No newline at end of file diff --git a/node_modules/systemjs/dist/system-csp-production.src.js b/node_modules/systemjs/dist/system-csp-production.src.js deleted file mode 100644 index b727e9bdf..000000000 --- a/node_modules/systemjs/dist/system-csp-production.src.js +++ /dev/null @@ -1,4537 +0,0 @@ -/* - * SystemJS v0.19.47 - */ -(function() { -function bootstrap() {// from https://gist.github.com/Yaffle/1088850 -(function(global) { -function URLPolyfill(url, baseURL) { - if (typeof url != 'string') - throw new TypeError('URL must be a string'); - var m = String(url).replace(/^\s+|\s+$/g, "").replace(/\\/g, '/').match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); - if (!m) - throw new RangeError('Invalid URL format'); - var protocol = m[1] || ""; - var username = m[2] || ""; - var password = m[3] || ""; - var host = m[4] || ""; - var hostname = m[5] || ""; - var port = m[6] || ""; - var pathname = m[7] || ""; - var search = m[8] || ""; - var hash = m[9] || ""; - if (baseURL !== undefined) { - var base = baseURL instanceof URLPolyfill ? baseURL : new URLPolyfill(baseURL); - var flag = !protocol && !host && !username; - if (flag && !pathname && !search) - search = base.search; - if (flag && pathname[0] !== "/") - pathname = (pathname ? (((base.host || base.username) && !base.pathname ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname); - // dot segments removal - var output = []; - pathname.replace(/^(\.\.?(\/|$))+/, "") - .replace(/\/(\.(\/|$))+/g, "/") - .replace(/\/\.\.$/, "/../") - .replace(/\/?[^\/]*/g, function (p) { - if (p === "/..") - output.pop(); - else - output.push(p); - }); - pathname = output.join("").replace(/^\//, pathname[0] === "/" ? "/" : ""); - if (flag) { - port = base.port; - hostname = base.hostname; - host = base.host; - password = base.password; - username = base.username; - } - if (!protocol) - protocol = base.protocol; - } - - // convert URLs to use / always - pathname = pathname.replace(/\\/g, '/'); - - this.origin = host ? protocol + (protocol !== "" || host !== "" ? "//" : "") + host : ""; - this.href = protocol + (protocol && host || protocol == "file:" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash; - this.protocol = protocol; - this.username = username; - this.password = password; - this.host = host; - this.hostname = hostname; - this.port = port; - this.pathname = pathname; - this.search = search; - this.hash = hash; -} -global.URLPolyfill = URLPolyfill; -})(typeof self != 'undefined' ? self : global); -(function(__global) { - - var isWorker = typeof window == 'undefined' && typeof self != 'undefined' && typeof importScripts != 'undefined'; - var isBrowser = typeof window != 'undefined' && typeof document != 'undefined'; - var isWindows = typeof process != 'undefined' && typeof process.platform != 'undefined' && !!process.platform.match(/^win/); - - if (!__global.console) - __global.console = { assert: function() {} }; - - // IE8 support - var indexOf = Array.prototype.indexOf || function(item) { - for (var i = 0, thisLen = this.length; i < thisLen; i++) { - if (this[i] === item) { - return i; - } - } - return -1; - }; - - var defineProperty; - (function () { - try { - if (!!Object.defineProperty({}, 'a', {})) - defineProperty = Object.defineProperty; - } - catch (e) { - defineProperty = function(obj, prop, opt) { - try { - obj[prop] = opt.value || opt.get.call(obj); - } - catch(e) {} - } - } - })(); - - var errArgs = new Error(0, '_').fileName == '_'; - - function addToError(err, msg) { - // parse the stack removing loader code lines for simplification - if (!err.originalErr) { - var stack = ((err.message || err) + (err.stack ? '\n' + err.stack : '')).toString().split('\n'); - var newStack = []; - for (var i = 0; i < stack.length; i++) { - if (typeof $__curScript == 'undefined' || stack[i].indexOf($__curScript.src) == -1) - newStack.push(stack[i]); - } - } - - var newMsg = '(SystemJS) ' + (newStack ? newStack.join('\n\t') : err.message.substr(11)) + '\n\t' + msg; - - // Convert file:/// URLs to paths in Node - if (!isBrowser) - newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); - - var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg); - - newErr.stack = newMsg; - - // track the original error - newErr.originalErr = err.originalErr || err; - - return newErr; - } - - function __eval(source, debugName, context) { - try { - new Function(source).call(context); - } - catch(e) { - throw addToError(e, 'Evaluating ' + debugName); - } - } - - var baseURI; - - // environent baseURI detection - if (typeof document != 'undefined' && document.getElementsByTagName) { - baseURI = document.baseURI; - - if (!baseURI) { - var bases = document.getElementsByTagName('base'); - baseURI = bases[0] && bases[0].href || window.location.href; - } - } - else if (typeof location != 'undefined') { - baseURI = __global.location.href; - } - - // sanitize out the hash and querystring - if (baseURI) { - baseURI = baseURI.split('#')[0].split('?')[0]; - baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1); - } - else if (typeof process != 'undefined' && process.cwd) { - baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/'; - if (isWindows) - baseURI = baseURI.replace(/\\/g, '/'); - } - else { - throw new TypeError('No environment baseURI'); - } - - try { - var nativeURL = new __global.URL('test:///').protocol == 'test:'; - } - catch(e) {} - - var URL = nativeURL ? __global.URL : __global.URLPolyfill; - -/* -********************************************************************************************* - - Dynamic Module Loader Polyfill - - - Implemented exactly to the former 2014-08-24 ES6 Specification Draft Rev 27, Section 15 - http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27 - - - Functions are commented with their spec numbers, with spec differences commented. - - - Spec bugs are commented in this code with links. - - - Abstract functions have been combined where possible, and their associated functions - commented. - - - Realm implementation is entirely omitted. - -********************************************************************************************* -*/ - -function Module() {} -// http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag -defineProperty(Module.prototype, 'toString', { - value: function() { - return 'Module'; - } -}); -function Loader(options) { - this._loader = { - loaderObj: this, - loads: [], - modules: {}, - importPromises: {}, - moduleRecords: {} - }; - - // 26.3.3.6 - defineProperty(this, 'global', { - get: function() { - return __global; - } - }); - - // 26.3.3.13 realm not implemented -} - -(function() { - -// Some Helpers - -// logs a linkset snapshot for debugging -/* function snapshot(loader) { - console.log('---Snapshot---'); - for (var i = 0; i < loader.loads.length; i++) { - var load = loader.loads[i]; - var linkSetLog = ' ' + load.name + ' (' + load.status + '): '; - - for (var j = 0; j < load.linkSets.length; j++) { - linkSetLog += '{' + logloads(load.linkSets[j].loads) + '} '; - } - console.log(linkSetLog); - } - console.log(''); -} -function logloads(loads) { - var log = ''; - for (var k = 0; k < loads.length; k++) - log += loads[k].name + (k != loads.length - 1 ? ' ' : ''); - return log; -} */ - - -/* function checkInvariants() { - // see https://bugs.ecmascript.org/show_bug.cgi?id=2603#c1 - - var loads = System._loader.loads; - var linkSets = []; - - for (var i = 0; i < loads.length; i++) { - var load = loads[i]; - console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded'); - - for (var j = 0; j < load.linkSets.length; j++) { - var linkSet = load.linkSets[j]; - - for (var k = 0; k < linkSet.loads.length; k++) - console.assert(loads.indexOf(linkSet.loads[k]) != -1, 'linkSet loads are a subset of loader loads'); - - if (linkSets.indexOf(linkSet) == -1) - linkSets.push(linkSet); - } - } - - for (var i = 0; i < loads.length; i++) { - var load = loads[i]; - for (var j = 0; j < linkSets.length; j++) { - var linkSet = linkSets[j]; - - if (linkSet.loads.indexOf(load) != -1) - console.assert(load.linkSets.indexOf(linkSet) != -1, 'linkSet contains load -> load contains linkSet'); - - if (load.linkSets.indexOf(linkSet) != -1) - console.assert(linkSet.loads.indexOf(load) != -1, 'load contains linkSet -> linkSet contains load'); - } - } - - for (var i = 0; i < linkSets.length; i++) { - var linkSet = linkSets[i]; - for (var j = 0; j < linkSet.loads.length; j++) { - var load = linkSet.loads[j]; - - for (var k = 0; k < load.dependencies.length; k++) { - var depName = load.dependencies[k].value; - var depLoad; - for (var l = 0; l < loads.length; l++) { - if (loads[l].name != depName) - continue; - depLoad = loads[l]; - break; - } - - // loading records are allowed not to have their dependencies yet - // if (load.status != 'loading') - // console.assert(depLoad, 'depLoad found'); - - // console.assert(linkSet.loads.indexOf(depLoad) != -1, 'linkset contains all dependencies'); - } - } - } -} */ - - // 15.2.3 - Runtime Semantics: Loader State - - // 15.2.3.11 - function createLoaderLoad(object) { - return { - // modules is an object for ES5 implementation - modules: {}, - loads: [], - loaderObj: object - }; - } - - // 15.2.3.2 Load Records and LoadRequest Objects - - var anonCnt = 0; - - // 15.2.3.2.1 - function createLoad(name) { - return { - status: 'loading', - name: name || '', - linkSets: [], - dependencies: [], - metadata: {} - }; - } - - // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions - - // 15.2.4 - - // 15.2.4.1 - function loadModule(loader, name, options) { - return new Promise(asyncStartLoadPartwayThrough({ - step: options.address ? 'fetch' : 'locate', - loader: loader, - moduleName: name, - // allow metadata for import https://bugs.ecmascript.org/show_bug.cgi?id=3091 - moduleMetadata: options && options.metadata || {}, - moduleSource: options.source, - moduleAddress: options.address - })); - } - - // 15.2.4.2 - function requestLoad(loader, request, refererName, refererAddress) { - // 15.2.4.2.1 CallNormalize - return new Promise(function(resolve, reject) { - resolve(loader.loaderObj.normalize(request, refererName, refererAddress)); - }) - // 15.2.4.2.2 GetOrCreateLoad - .then(function(name) { - var load; - if (loader.modules[name]) { - load = createLoad(name); - load.status = 'linked'; - // https://bugs.ecmascript.org/show_bug.cgi?id=2795 - load.module = loader.modules[name]; - return load; - } - - for (var i = 0, l = loader.loads.length; i < l; i++) { - load = loader.loads[i]; - if (load.name != name) - continue; - return load; - } - - load = createLoad(name); - loader.loads.push(load); - - proceedToLocate(loader, load); - - return load; - }); - } - - // 15.2.4.3 - function proceedToLocate(loader, load) { - proceedToFetch(loader, load, - Promise.resolve() - // 15.2.4.3.1 CallLocate - .then(function() { - return loader.loaderObj.locate({ name: load.name, metadata: load.metadata }); - }) - ); - } - - // 15.2.4.4 - function proceedToFetch(loader, load, p) { - proceedToTranslate(loader, load, - p - // 15.2.4.4.1 CallFetch - .then(function(address) { - // adjusted, see https://bugs.ecmascript.org/show_bug.cgi?id=2602 - if (load.status != 'loading') - return; - load.address = address; - - return loader.loaderObj.fetch({ name: load.name, metadata: load.metadata, address: address }); - }) - ); - } - - // 15.2.4.5 - function proceedToTranslate(loader, load, p) { - p - // 15.2.4.5.1 CallTranslate - .then(function(source) { - if (load.status != 'loading') - return; - - load.address = load.address || load.name; - - return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source })) - - // 15.2.4.5.2 CallInstantiate - .then(function(source) { - load.source = source; - return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) - - // 15.2.4.5.3 InstantiateSucceeded - .then(function(instantiateResult) { - if (instantiateResult === undefined) - throw new TypeError('Declarative modules unsupported in the polyfill.'); - - if (typeof instantiateResult != 'object') - throw new TypeError('Invalid instantiate return value'); - - load.depsList = instantiateResult.deps || []; - load.execute = instantiateResult.execute; - }) - // 15.2.4.6 ProcessLoadDependencies - .then(function() { - load.dependencies = []; - var depsList = load.depsList; - - var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { - loadPromises.push( - requestLoad(loader, request, load.name, load.address) - - // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) - .then(function(depLoad) { - - // adjusted from spec to maintain dependency order - // this is due to the System.register internal implementation needs - load.dependencies[index] = { - key: request, - value: depLoad.name - }; - - if (depLoad.status != 'linked') { - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - addLoadToLinkSet(linkSets[i], depLoad); - } - - // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); - // snapshot(loader); - }) - ); - })(depsList[i], i); - - return Promise.all(loadPromises); - }) - - // 15.2.4.6.2 LoadSucceeded - .then(function() { - // console.log('LoadSucceeded ' + load.name); - // snapshot(loader); - - load.status = 'loaded'; - - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - updateLinkSetOnLoad(linkSets[i], load); - }); - }) - // 15.2.4.5.4 LoadFailed - ['catch'](function(exc) { - load.status = 'failed'; - load.exception = exc; - - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) { - linkSetFailed(linkSets[i], load, exc); - } - }); - } - - // 15.2.4.7 PromiseOfStartLoadPartwayThrough absorbed into calling functions - - // 15.2.4.7.1 - function asyncStartLoadPartwayThrough(stepState) { - return function(resolve, reject) { - var loader = stepState.loader; - var name = stepState.moduleName; - var step = stepState.step; - - if (loader.modules[name]) - throw new TypeError('"' + name + '" already exists in the module table'); - - // adjusted to pick up existing loads - var existingLoad; - for (var i = 0, l = loader.loads.length; i < l; i++) { - if (loader.loads[i].name == name) { - existingLoad = loader.loads[i]; - - if (step == 'translate' && !existingLoad.source) { - existingLoad.address = stepState.moduleAddress; - proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource)); - } - - // a primary load -> use that existing linkset if it is for the direct load here - // otherwise create a new linkset unit - if (existingLoad.linkSets.length && existingLoad.linkSets[0].loads[0].name == existingLoad.name) - return existingLoad.linkSets[0].done.then(function() { - resolve(existingLoad); - }); - } - } - - var load = existingLoad || createLoad(name); - - load.metadata = stepState.moduleMetadata; - - var linkSet = createLinkSet(loader, load); - - loader.loads.push(load); - - resolve(linkSet.done); - - if (step == 'locate') - proceedToLocate(loader, load); - - else if (step == 'fetch') - proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress)); - - else { - load.address = stepState.moduleAddress; - proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource)); - } - } - } - - // Declarative linking functions run through alternative implementation: - // 15.2.5.1.1 CreateModuleLinkageRecord not implemented - // 15.2.5.1.2 LookupExport not implemented - // 15.2.5.1.3 LookupModuleDependency not implemented - - // 15.2.5.2.1 - function createLinkSet(loader, startingLoad) { - var linkSet = { - loader: loader, - loads: [], - startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 - loadingCount: 0 - }; - linkSet.done = new Promise(function(resolve, reject) { - linkSet.resolve = resolve; - linkSet.reject = reject; - }); - addLoadToLinkSet(linkSet, startingLoad); - return linkSet; - } - // 15.2.5.2.2 - function addLoadToLinkSet(linkSet, load) { - if (load.status == 'failed') - return; - - for (var i = 0, l = linkSet.loads.length; i < l; i++) - if (linkSet.loads[i] == load) - return; - - linkSet.loads.push(load); - load.linkSets.push(linkSet); - - // adjustment, see https://bugs.ecmascript.org/show_bug.cgi?id=2603 - if (load.status != 'loaded') { - linkSet.loadingCount++; - } - - var loader = linkSet.loader; - - for (var i = 0, l = load.dependencies.length; i < l; i++) { - if (!load.dependencies[i]) - continue; - - var name = load.dependencies[i].value; - - if (loader.modules[name]) - continue; - - for (var j = 0, d = loader.loads.length; j < d; j++) { - if (loader.loads[j].name != name) - continue; - - addLoadToLinkSet(linkSet, loader.loads[j]); - break; - } - } - // console.log('add to linkset ' + load.name); - // snapshot(linkSet.loader); - } - - // linking errors can be generic or load-specific - // this is necessary for debugging info - function doLink(linkSet) { - var error = false; - try { - link(linkSet, function(load, exc) { - linkSetFailed(linkSet, load, exc); - error = true; - }); - } - catch(e) { - linkSetFailed(linkSet, null, e); - error = true; - } - return error; - } - - // 15.2.5.2.3 - function updateLinkSetOnLoad(linkSet, load) { - // console.log('update linkset on load ' + load.name); - // snapshot(linkSet.loader); - linkSet.loadingCount--; - - if (linkSet.loadingCount > 0) - return; - - // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 - var startingLoad = linkSet.startingLoad; - - // non-executing link variation for loader tracing - // on the server. Not in spec. - /***/ - if (linkSet.loader.loaderObj.execute === false) { - var loads = [].concat(linkSet.loads); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; - load.module = { - name: load.name, - module: _newModule({}), - evaluated: true - }; - load.status = 'linked'; - finishLoad(linkSet.loader, load); - } - return linkSet.resolve(startingLoad); - } - /***/ - - var abrupt = doLink(linkSet); - - if (abrupt) - return; - - linkSet.resolve(startingLoad); - } - - // 15.2.5.2.4 - function linkSetFailed(linkSet, load, exc) { - var loader = linkSet.loader; - var requests; - - checkError: - if (load) { - if (linkSet.loads[0].name == load.name) { - exc = addToError(exc, 'Error loading ' + load.name); - } - else { - for (var i = 0; i < linkSet.loads.length; i++) { - var pLoad = linkSet.loads[i]; - for (var j = 0; j < pLoad.dependencies.length; j++) { - var dep = pLoad.dependencies[j]; - if (dep.value == load.name) { - exc = addToError(exc, 'Error loading ' + load.name + ' as "' + dep.key + '" from ' + pLoad.name); - break checkError; - } - } - } - exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name); - } - } - else { - exc = addToError(exc, 'Error linking ' + linkSet.loads[0].name); - } - - - var loads = linkSet.loads.concat([]); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; - - // store all failed load records - loader.loaderObj.failed = loader.loaderObj.failed || []; - if (indexOf.call(loader.loaderObj.failed, load) == -1) - loader.loaderObj.failed.push(load); - - var linkIndex = indexOf.call(load.linkSets, linkSet); - load.linkSets.splice(linkIndex, 1); - if (load.linkSets.length == 0) { - var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load); - if (globalLoadsIndex != -1) - linkSet.loader.loads.splice(globalLoadsIndex, 1); - } - } - linkSet.reject(exc); - } - - // 15.2.5.2.5 - function finishLoad(loader, load) { - // add to global trace if tracing - if (loader.loaderObj.trace) { - if (!loader.loaderObj.loads) - loader.loaderObj.loads = {}; - var depMap = {}; - load.dependencies.forEach(function(dep) { - depMap[dep.key] = dep.value; - }); - loader.loaderObj.loads[load.name] = { - name: load.name, - deps: load.dependencies.map(function(dep){ return dep.key }), - depMap: depMap, - address: load.address, - metadata: load.metadata, - source: load.source - }; - } - // if not anonymous, add to the module table - if (load.name) { - loader.modules[load.name] = load.module; - } - var loadIndex = indexOf.call(loader.loads, load); - if (loadIndex != -1) - loader.loads.splice(loadIndex, 1); - for (var i = 0, l = load.linkSets.length; i < l; i++) { - loadIndex = indexOf.call(load.linkSets[i].loads, load); - if (loadIndex != -1) - load.linkSets[i].loads.splice(loadIndex, 1); - } - load.linkSets.splice(0, load.linkSets.length); - } - - function doDynamicExecute(linkSet, load, linkError) { - try { - var module = load.execute(); - } - catch(e) { - linkError(load, e); - return; - } - if (!module || !(module instanceof Module)) - linkError(load, new TypeError('Execution must define a Module instance')); - else - return module; - } - - // 26.3 Loader - - // 26.3.1.1 - // defined at top - - // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 - function createImportPromise(loader, name, promise) { - var importPromises = loader._loader.importPromises; - return importPromises[name] = promise.then(function(m) { - importPromises[name] = undefined; - return m; - }, function(e) { - importPromises[name] = undefined; - throw e; - }); - } - - Loader.prototype = { - // 26.3.3.1 - constructor: Loader, - // 26.3.3.2 - define: function(name, source, options) { - // check if already defined - if (this._loader.importPromises[name]) - throw new TypeError('Module is already loading.'); - return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ - step: 'translate', - loader: this._loader, - moduleName: name, - moduleMetadata: options && options.metadata || {}, - moduleSource: source, - moduleAddress: options && options.address - }))); - }, - // 26.3.3.3 - 'delete': function(name) { - var loader = this._loader; - delete loader.importPromises[name]; - delete loader.moduleRecords[name]; - return loader.modules[name] ? delete loader.modules[name] : false; - }, - // 26.3.3.4 entries not implemented - // 26.3.3.5 - get: function(key) { - if (!this._loader.modules[key]) - return; - return this._loader.modules[key].module; - }, - // 26.3.3.7 - has: function(name) { - return !!this._loader.modules[name]; - }, - // 26.3.3.8 - 'import': function(name, parentName, parentAddress) { - if (typeof parentName == 'object') - parentName = parentName.name; - - // run normalize first - var loaderObj = this; - - // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659 - return Promise.resolve(loaderObj.normalize(name, parentName)) - .then(function(name) { - var loader = loaderObj._loader; - - if (loader.modules[name]) - return loader.modules[name].module; - - return loader.importPromises[name] || createImportPromise(loaderObj, name, - loadModule(loader, name, {}) - .then(function(load) { - delete loader.importPromises[name]; - return load.module.module; - })); - }); - }, - // 26.3.3.9 keys not implemented - // 26.3.3.10 - load: function(name) { - var loader = this._loader; - if (loader.modules[name]) - return Promise.resolve(); - return (loader.importPromises[name] || createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ - step: 'locate', - loader: loader, - moduleName: name, - moduleMetadata: {}, - moduleSource: undefined, - moduleAddress: undefined - })) - .then(function(load) { - delete loader.importPromises[name]; - return load.module.module; - }))) - .then(function () {}); - }, - // 26.3.3.11 - module: function(source, options) { - var load = createLoad(); - load.address = options && options.address; - var linkSet = createLinkSet(this._loader, load); - var sourcePromise = Promise.resolve(source); - var loader = this._loader; - var p = linkSet.done.then(function() { - return load.module.module; - }); - proceedToTranslate(loader, load, sourcePromise); - return p; - }, - // 26.3.3.12 - newModule: function (obj) { - if (typeof obj != 'object') - throw new TypeError('Expected object'); - - var m = new Module(); - - var pNames = []; - if (Object.getOwnPropertyNames && obj != null) - pNames = Object.getOwnPropertyNames(obj); - else - for (var key in obj) - pNames.push(key); - - for (var i = 0; i < pNames.length; i++) (function(key) { - defineProperty(m, key, { - configurable: false, - enumerable: true, - get: function () { - return obj[key]; - }, - set: function() { - throw new Error('Module exports cannot be changed externally.'); - } - }); - })(pNames[i]); - - if (Object.freeze) - Object.freeze(m); - - return m; - }, - // 26.3.3.14 - set: function(name, module) { - if (!(module instanceof Module)) - throw new TypeError('Loader.set(' + name + ', module) must be a module'); - this._loader.modules[name] = { - module: module - }; - }, - // 26.3.3.15 values not implemented - // 26.3.3.16 @@iterator not implemented - // 26.3.3.17 @@toStringTag not implemented - - // 26.3.3.18.1 - normalize: function(name, referrerName, referrerAddress) {}, - // 26.3.3.18.2 - locate: function(load) { - return load.name; - }, - // 26.3.3.18.3 - fetch: function(load) { - }, - // 26.3.3.18.4 - translate: function(load) { - return load.source; - }, - // 26.3.3.18.5 - instantiate: function(load) { - } - }; - - var _newModule = Loader.prototype.newModule; - -/* - * ES6 Module Declarative Linking Code - */ - function link(linkSet, linkError) { - - var loader = linkSet.loader; - - if (!linkSet.loads.length) - return; - - var loads = linkSet.loads.concat([]); - - for (var i = 0; i < loads.length; i++) { - var load = loads[i]; - - var module = doDynamicExecute(linkSet, load, linkError); - if (!module) - return; - load.module = { - name: load.name, - module: module - }; - load.status = 'linked'; - - finishLoad(loader, load); - } - } - -})(); - -var System; -// SystemJS Loader Class and Extension helpers -function SystemJSLoader() { - Loader.call(this); - - this.paths = {}; - this._loader.paths = {}; - - systemJSConstructor.call(this); -} - -// inline Object.create-style class extension -function SystemProto() {}; -SystemProto.prototype = Loader.prototype; -SystemJSLoader.prototype = new SystemProto(); -SystemJSLoader.prototype.constructor = SystemJSLoader; - -var systemJSConstructor; - -function hook(name, hook) { - SystemJSLoader.prototype[name] = hook(SystemJSLoader.prototype[name] || function() {}); -} -function hookConstructor(hook) { - systemJSConstructor = hook(systemJSConstructor || function() {}); -} - - -var absURLRegEx = /^[^\/]+:\/\//; -function isAbsolute(name) { - return name.match(absURLRegEx); -} -function isRel(name) { - return (name[0] == '.' && (!name[1] || name[1] == '/' || name[1] == '.')) || name[0] == '/'; -} -function isPlain(name) { - return !isRel(name) && !isAbsolute(name); -} - -var baseURIObj = new URL(baseURI); - -function urlResolve(name, parent) { - // url resolution shortpaths - if (name[0] == '.') { - // dot-relative url normalization - if (name[1] == '/' && name[2] != '.') - return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name.substr(2); - } - else if (name[0] != '/' && name.indexOf(':') == -1) { - // plain parent normalization - return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name; - } - - return new URL(name, parent && parent.replace(/#/g, '%05') || baseURIObj).href.replace(/%05/g, '#'); -} - -// NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25 -function applyPaths(loader, name) { - // most specific (most number of slashes in path) match wins - var pathMatch = '', wildcard, maxWildcardPrefixLen = 0; - - var paths = loader.paths; - var pathsCache = loader._loader.paths; - - // check to see if we have a paths entry - for (var p in paths) { - if (paths.hasOwnProperty && !paths.hasOwnProperty(p)) - continue; - - // paths sanitization - var path = paths[p]; - if (path !== pathsCache[p]) - path = paths[p] = pathsCache[p] = urlResolve(paths[p], isRel(paths[p]) ? baseURI : loader.baseURL); - - // exact path match - if (p.indexOf('*') === -1) { - if (name == p) - return paths[p]; - - // support trailing / in paths rules - else if (name.substr(0, p.length - 1) == p.substr(0, p.length - 1) && (name.length < p.length || name[p.length - 1] == p[p.length - 1]) && (paths[p][paths[p].length - 1] == '/' || paths[p] == '')) { - return paths[p].substr(0, paths[p].length - 1) + (name.length > p.length ? (paths[p] && '/' || '') + name.substr(p.length) : ''); - } - } - // wildcard path match - else { - var pathParts = p.split('*'); - if (pathParts.length > 2) - throw new TypeError('Only one wildcard in a path is permitted'); - - var wildcardPrefixLen = pathParts[0].length; - if (wildcardPrefixLen >= maxWildcardPrefixLen && - name.substr(0, pathParts[0].length) == pathParts[0] && - name.substr(name.length - pathParts[1].length) == pathParts[1]) { - maxWildcardPrefixLen = wildcardPrefixLen; - pathMatch = p; - wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length); - } - } - } - - var outPath = paths[pathMatch]; - if (typeof wildcard == 'string') - outPath = outPath.replace('*', wildcard); - - return outPath; -} - -function dedupe(deps) { - var newDeps = []; - for (var i = 0, l = deps.length; i < l; i++) - if (indexOf.call(newDeps, deps[i]) == -1) - newDeps.push(deps[i]) - return newDeps; -} - -function group(deps) { - var names = []; - var indices = []; - for (var i = 0, l = deps.length; i < l; i++) { - var index = indexOf.call(names, deps[i]); - if (index === -1) { - names.push(deps[i]); - indices.push([i]); - } - else { - indices[index].push(i); - } - } - return { names: names, indices: indices }; -} - -var getOwnPropertyDescriptor = true; -try { - Object.getOwnPropertyDescriptor({ a: 0 }, 'a'); -} -catch(e) { - getOwnPropertyDescriptor = false; -} - -// converts any module.exports object into an object ready for SystemJS.newModule -function getESModule(exports) { - var esModule = {}; - // don't trigger getters/setters in environments that support them - if ((typeof exports == 'object' || typeof exports == 'function') && exports !== __global) { - if (getOwnPropertyDescriptor) { - for (var p in exports) { - // The default property is copied to esModule later on - if (p === 'default') - continue; - defineOrCopyProperty(esModule, exports, p); - } - } - else { - extend(esModule, exports); - } - } - esModule['default'] = exports; - defineProperty(esModule, '__useDefault', { - value: true - }); - return esModule; -} - -function defineOrCopyProperty(targetObj, sourceObj, propName) { - try { - var d; - if (d = Object.getOwnPropertyDescriptor(sourceObj, propName)) - defineProperty(targetObj, propName, d); - } - catch (ex) { - // Object.getOwnPropertyDescriptor threw an exception, fall back to normal set property - // we dont need hasOwnProperty here because getOwnPropertyDescriptor would have returned undefined above - targetObj[propName] = sourceObj[propName]; - return false; - } -} - -function extend(a, b, prepend) { - var hasOwnProperty = b && b.hasOwnProperty; - for (var p in b) { - if (hasOwnProperty && !b.hasOwnProperty(p)) - continue; - if (!prepend || !(p in a)) - a[p] = b[p]; - } - return a; -} - -// meta first-level extends where: -// array + array appends -// object + object extends -// other properties replace -function extendMeta(a, b, prepend) { - var hasOwnProperty = b && b.hasOwnProperty; - for (var p in b) { - if (hasOwnProperty && !b.hasOwnProperty(p)) - continue; - var val = b[p]; - if (!(p in a)) - a[p] = val; - else if (val instanceof Array && a[p] instanceof Array) - a[p] = [].concat(prepend ? val : a[p]).concat(prepend ? a[p] : val); - else if (typeof val == 'object' && val !== null && typeof a[p] == 'object') - a[p] = extend(extend({}, a[p]), val, prepend); - else if (!prepend) - a[p] = val; - } -} - -function extendPkgConfig(pkgCfgA, pkgCfgB, pkgName, loader, warnInvalidProperties) { - for (var prop in pkgCfgB) { - if (indexOf.call(['main', 'format', 'defaultExtension', 'basePath'], prop) != -1) { - pkgCfgA[prop] = pkgCfgB[prop]; - } - else if (prop == 'map') { - extend(pkgCfgA.map = pkgCfgA.map || {}, pkgCfgB.map); - } - else if (prop == 'meta') { - extend(pkgCfgA.meta = pkgCfgA.meta || {}, pkgCfgB.meta); - } - else if (prop == 'depCache') { - for (var d in pkgCfgB.depCache) { - var dNormalized; - - if (d.substr(0, 2) == './') - dNormalized = pkgName + '/' + d.substr(2); - else - dNormalized = coreResolve.call(loader, d); - loader.depCache[dNormalized] = (loader.depCache[dNormalized] || []).concat(pkgCfgB.depCache[d]); - } - } - else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 && - (!pkgCfgB.hasOwnProperty || pkgCfgB.hasOwnProperty(prop))) { - warn.call(loader, '"' + prop + '" is not a valid package configuration option in package ' + pkgName); - } - } -} - -// deeply-merge (to first level) config with any existing package config -function setPkgConfig(loader, pkgName, cfg, prependConfig) { - var pkg; - - // first package is config by reference for fast path, cloned after that - if (!loader.packages[pkgName]) { - pkg = loader.packages[pkgName] = cfg; - } - else { - var basePkg = loader.packages[pkgName]; - pkg = loader.packages[pkgName] = {}; - - extendPkgConfig(pkg, prependConfig ? cfg : basePkg, pkgName, loader, prependConfig); - extendPkgConfig(pkg, prependConfig ? basePkg : cfg, pkgName, loader, !prependConfig); - } - - // main object becomes main map - if (typeof pkg.main == 'object') { - pkg.map = pkg.map || {}; - pkg.map['./@main'] = pkg.main; - pkg.main['default'] = pkg.main['default'] || './'; - pkg.main = '@main'; - } - - return pkg; -} - -function warn(msg) { - if (this.warnings && typeof console != 'undefined' && console.warn) - console.warn(msg); -} - -function createInstantiate (load, result) { - load.metadata.entry = createEntry(); - load.metadata.entry.execute = function() { - return result; - } - load.metadata.entry.deps = []; - load.metadata.format = 'defined'; -} - var fetchTextFromURL; - if (typeof XMLHttpRequest != 'undefined') { - fetchTextFromURL = function(url, authorization, fulfill, reject) { - var xhr = new XMLHttpRequest(); - var sameDomain = true; - var doTimeout = false; - if (!('withCredentials' in xhr)) { - // check if same domain - var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); - if (domainCheck) { - sameDomain = domainCheck[2] === window.location.host; - if (domainCheck[1]) - sameDomain &= domainCheck[1] === window.location.protocol; - } - } - if (!sameDomain && typeof XDomainRequest != 'undefined') { - xhr = new XDomainRequest(); - xhr.onload = load; - xhr.onerror = error; - xhr.ontimeout = error; - xhr.onprogress = function() {}; - xhr.timeout = 0; - doTimeout = true; - } - function load() { - fulfill(xhr.responseText); - } - function error() { - reject(new Error('XHR error' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url)); - } - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - // in Chrome on file:/// URLs, status is 0 - if (xhr.status == 0) { - if (xhr.responseText) { - load(); - } - else { - // when responseText is empty, wait for load or error event - // to inform if it is a 404 or empty file - xhr.addEventListener('error', error); - xhr.addEventListener('load', load); - } - } - else if (xhr.status === 200) { - load(); - } - else { - error(); - } - } - }; - xhr.open("GET", url, true); - - if (xhr.setRequestHeader) { - xhr.setRequestHeader('Accept', 'application/x-es-module, */*'); - // can set "authorization: true" to enable withCredentials only - if (authorization) { - if (typeof authorization == 'string') - xhr.setRequestHeader('Authorization', authorization); - xhr.withCredentials = true; - } - } - - if (doTimeout) { - setTimeout(function() { - xhr.send(); - }, 0); - } else { - xhr.send(null); - } - }; - } - else if (typeof require != 'undefined' && typeof process != 'undefined') { - var fs; - fetchTextFromURL = function(url, authorization, fulfill, reject) { - if (url.substr(0, 8) != 'file:///') - throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.'); - fs = fs || require('fs'); - if (isWindows) - url = url.replace(/\//g, '\\').substr(8); - else - url = url.substr(7); - return fs.readFile(url, function(err, data) { - if (err) { - return reject(err); - } - else { - // Strip Byte Order Mark out if it's the leading char - var dataString = data + ''; - if (dataString[0] === '\ufeff') - dataString = dataString.substr(1); - - fulfill(dataString); - } - }); - }; - } - else if (typeof self != 'undefined' && typeof self.fetch != 'undefined') { - fetchTextFromURL = function(url, authorization, fulfill, reject) { - var opts = { - headers: {'Accept': 'application/x-es-module, */*'} - }; - - if (authorization) { - if (typeof authorization == 'string') - opts.headers['Authorization'] = authorization; - opts.credentials = 'include'; - } - - fetch(url, opts) - .then(function (r) { - if (r.ok) { - return r.text(); - } else { - throw new Error('Fetch error: ' + r.status + ' ' + r.statusText); - } - }) - .then(fulfill, reject); - } - } - else { - throw new TypeError('No environment fetch API available.'); - } -function readMemberExpression(p, value) { - var pParts = p.split('.'); - while (pParts.length) - value = value[pParts.shift()]; - return value; -} - -function getMapMatch(map, name) { - var bestMatch, bestMatchLength = 0; - - for (var p in map) { - if (name.substr(0, p.length) == p && (name.length == p.length || name[p.length] == '/')) { - var curMatchLength = p.split('/').length; - if (curMatchLength <= bestMatchLength) - continue; - bestMatch = p; - bestMatchLength = curMatchLength; - } - } - - return bestMatch; -} - -function prepareBaseURL(loader) { - // ensure baseURl is fully normalized - if (this._loader.baseURL !== this.baseURL) { - if (this.baseURL[this.baseURL.length - 1] != '/') - this.baseURL += '/'; - - this._loader.baseURL = this.baseURL = new URL(this.baseURL, baseURIObj).href; - } -} - -var envModule; -function setProduction(isProduction, isBuilder) { - this.set('@system-env', envModule = this.newModule({ - browser: isBrowser, - node: !!this._nodeRequire, - production: !isBuilder && isProduction, - dev: isBuilder || !isProduction, - build: isBuilder, - 'default': true - })); -} - -hookConstructor(function(constructor) { - return function() { - constructor.call(this); - - // support baseURL - this.baseURL = baseURI; - - // support map and paths - this.map = {}; - - // make the location of the system.js script accessible - if (typeof $__curScript != 'undefined') - this.scriptSrc = $__curScript.src; - - // global behaviour flags - this.warnings = false; - this.defaultJSExtensions = false; - this.pluginFirst = false; - this.loaderErrorStack = false; - - // by default load ".json" files as json - // leading * meta doesn't need normalization - // NB add this in next breaking release - // this.meta['*.json'] = { format: 'json' }; - - // support the empty module, as a concept - this.set('@empty', this.newModule({})); - - setProduction.call(this, false, false); - }; -}); - -// include the node require since we're overriding it -if (typeof require != 'undefined' && typeof process != 'undefined' && !process.browser) - SystemJSLoader.prototype._nodeRequire = require; - -/* - Core SystemJS Normalization - - If a name is relative, we apply URL normalization to the page - If a name is an absolute URL, we leave it as-is - - Plain names (neither of the above) run through the map and paths - normalization phases. - - The paths normalization phase applies last (paths extension), which - defines the `decanonicalize` function and normalizes everything into - a URL. - */ - -var parentModuleContext; -function getNodeModule(name, baseURL) { - if (!isPlain(name)) - throw new Error('Node module ' + name + ' can\'t be loaded as it is not a package require.'); - - if (!parentModuleContext) { - var Module = this._nodeRequire('module'); - var base = baseURL.substr(isWindows ? 8 : 7); - parentModuleContext = new Module(base); - parentModuleContext.paths = Module._nodeModulePaths(base); - } - return parentModuleContext.require(name); -} - -function coreResolve(name, parentName) { - // standard URL resolution - if (isRel(name)) - return urlResolve(name, parentName); - else if (isAbsolute(name)) - return name; - - // plain names not starting with './', '://' and '/' go through custom resolution - var mapMatch = getMapMatch(this.map, name); - - if (mapMatch) { - name = this.map[mapMatch] + name.substr(mapMatch.length); - - if (isRel(name)) - return urlResolve(name); - else if (isAbsolute(name)) - return name; - } - - if (this.has(name)) - return name; - - // dynamically load node-core modules when requiring `@node/fs` for example - if (name.substr(0, 6) == '@node/') { - if (!this._nodeRequire) - throw new TypeError('Error loading ' + name + '. Can only load node core modules in Node.'); - if (this.builder) - this.set(name, this.newModule({})); - else - this.set(name, this.newModule(getESModule(getNodeModule.call(this, name.substr(6), this.baseURL)))); - return name; - } - - // prepare the baseURL to ensure it is normalized - prepareBaseURL.call(this); - - return applyPaths(this, name) || this.baseURL + name; -} - -hook('normalize', function(normalize) { - return function(name, parentName, skipExt) { - var resolved = coreResolve.call(this, name, parentName); - if (this.defaultJSExtensions && !skipExt && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved)) - resolved += '.js'; - return resolved; - }; -}); - -// percent encode just '#' in urls if using HTTP requests -var httpRequest = typeof XMLHttpRequest != 'undefined'; -hook('locate', function(locate) { - return function(load) { - return Promise.resolve(locate.call(this, load)) - .then(function(address) { - if (httpRequest) - return address.replace(/#/g, '%23'); - return address; - }); - }; -}); - -/* - * Fetch with authorization - */ -hook('fetch', function() { - return function(load) { - return new Promise(function(resolve, reject) { - fetchTextFromURL(load.address, load.metadata.authorization, resolve, reject); - }); - }; -}); - -/* - __useDefault - - When a module object looks like: - newModule( - __useDefault: true, - default: 'some-module' - }) - - Then importing that module provides the 'some-module' - result directly instead of the full module. - - Useful for eg module.exports = function() {} -*/ -hook('import', function(systemImport) { - return function(name, parentName, parentAddress) { - if (parentName && parentName.name) - warn.call(this, 'SystemJS.import(name, { name: parentName }) is deprecated for SystemJS.import(name, parentName), while importing ' + name + ' from ' + parentName.name); - return systemImport.call(this, name, parentName, parentAddress).then(function(module) { - return module.__useDefault ? module['default'] : module; - }); - }; -}); - -/* - * Allow format: 'detect' meta to enable format detection - */ -hook('translate', function(systemTranslate) { - return function(load) { - if (load.metadata.format == 'detect') - load.metadata.format = undefined; - return systemTranslate.apply(this, arguments); - }; -}); - - -/* - * JSON format support - * - * Supports loading JSON files as a module format itself - * - * Usage: - * - * SystemJS.config({ - * meta: { - * '*.json': { format: 'json' } - * } - * }); - * - * Module is returned as if written: - * - * export default {JSON} - * - * No named exports are provided - * - * Files ending in ".json" are treated as json automatically by SystemJS - */ -hook('instantiate', function(instantiate) { - return function(load) { - if (load.metadata.format == 'json' && !this.builder) { - var entry = load.metadata.entry = createEntry(); - entry.deps = []; - entry.execute = function() { - try { - return JSON.parse(load.source); - } - catch(e) { - throw new Error("Invalid JSON file " + load.name); - } - }; - } - }; -}) - -/* - Extend config merging one deep only - - loader.config({ - some: 'random', - config: 'here', - deep: { - config: { too: 'too' } - } - }); - - <=> - - loader.some = 'random'; - loader.config = 'here' - loader.deep = loader.deep || {}; - loader.deep.config = { too: 'too' }; - - - Normalizes meta and package configs allowing for: - - SystemJS.config({ - meta: { - './index.js': {} - } - }); - - To become - - SystemJS.meta['https://thissite.com/index.js'] = {}; - - For easy normalization canonicalization with latest URL support. - -*/ -function envSet(loader, cfg, envCallback) { - if (envModule.browser && cfg.browserConfig) - envCallback(cfg.browserConfig); - if (envModule.node && cfg.nodeConfig) - envCallback(cfg.nodeConfig); - if (envModule.dev && cfg.devConfig) - envCallback(cfg.devConfig); - if (envModule.build && cfg.buildConfig) - envCallback(cfg.buildConfig); - if (envModule.production && cfg.productionConfig) - envCallback(cfg.productionConfig); -} - -SystemJSLoader.prototype.getConfig = function(name) { - var cfg = {}; - var loader = this; - for (var p in loader) { - if (loader.hasOwnProperty && !loader.hasOwnProperty(p) || p in SystemJSLoader.prototype && p != 'transpiler') - continue; - if (indexOf.call(['_loader', 'amdDefine', 'amdRequire', 'defined', 'failed', 'version', 'loads'], p) == -1) - cfg[p] = loader[p]; - } - cfg.production = envModule.production; - return cfg; -}; - -var curCurScript; -SystemJSLoader.prototype.config = function(cfg, isEnvConfig) { - var loader = this; - - if ('loaderErrorStack' in cfg) { - curCurScript = $__curScript; - if (cfg.loaderErrorStack) - $__curScript = undefined; - else - $__curScript = curCurScript; - } - - if ('warnings' in cfg) - loader.warnings = cfg.warnings; - - // transpiler deprecation path - if (cfg.transpilerRuntime === false) - loader._loader.loadedTranspilerRuntime = true; - - if ('production' in cfg || 'build' in cfg) - setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build)); - - if (!isEnvConfig) { - // if using nodeConfig / browserConfig / productionConfig, take baseURL from there - // these exceptions will be unnecessary when we can properly implement config queuings - var baseURL; - envSet(loader, cfg, function(cfg) { - baseURL = baseURL || cfg.baseURL; - }); - baseURL = baseURL || cfg.baseURL; - - // always configure baseURL first - if (baseURL) { - var hasConfig = false; - function checkHasConfig(obj) { - for (var p in obj) - if (obj.hasOwnProperty(p)) - return true; - } - if (checkHasConfig(loader.packages) || checkHasConfig(loader.meta) || checkHasConfig(loader.depCache) || checkHasConfig(loader.bundles) || checkHasConfig(loader.packageConfigPaths)) - throw new TypeError('Incorrect configuration order. The baseURL must be configured with the first SystemJS.config call.'); - - this.baseURL = baseURL; - prepareBaseURL.call(this); - } - - if (cfg.paths) - extend(loader.paths, cfg.paths); - - envSet(loader, cfg, function(cfg) { - if (cfg.paths) - extend(loader.paths, cfg.paths); - }); - - // warn on wildcard path deprecations - if (this.warnings) { - for (var p in loader.paths) - if (p.indexOf('*') != -1) - warn.call(loader, 'Paths configuration "' + p + '" -> "' + loader.paths[p] + '" uses wildcards which are being deprecated for just leaving a trailing "/" to indicate folder paths.'); - } - } - - if (cfg.defaultJSExtensions) { - loader.defaultJSExtensions = cfg.defaultJSExtensions; - warn.call(loader, 'The defaultJSExtensions configuration option is deprecated, use packages configuration instead.'); - } - - if (cfg.pluginFirst) - loader.pluginFirst = cfg.pluginFirst; - - if (cfg.map) { - for (var p in cfg.map) { - var v = cfg.map[p]; - - // object map backwards-compat into packages configuration - if (typeof v !== 'string') { - var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js'; - var prop = loader.decanonicalize(p); - if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js') - prop = prop.substr(0, prop.length - 3); - - // if a package main, revert it - var pkgMatch = ''; - for (var pkg in loader.packages) { - if (prop.substr(0, pkg.length) == pkg - && (!prop[pkg.length] || prop[pkg.length] == '/') - && pkgMatch.split('/').length < pkg.split('/').length) - pkgMatch = pkg; - } - if (pkgMatch && loader.packages[pkgMatch].main) - prop = prop.substr(0, prop.length - loader.packages[pkgMatch].main.length - 1); - - var pkg = loader.packages[prop] = loader.packages[prop] || {}; - pkg.map = v; - } - else { - loader.map[p] = v; - } - } - } - - if (cfg.packageConfigPaths) { - var packageConfigPaths = []; - for (var i = 0; i < cfg.packageConfigPaths.length; i++) { - var path = cfg.packageConfigPaths[i]; - var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/')); - var normalized = coreResolve.call(loader, path.substr(0, packageLength)); - packageConfigPaths[i] = normalized + path.substr(packageLength); - } - loader.packageConfigPaths = packageConfigPaths; - } - - if (cfg.bundles) { - for (var p in cfg.bundles) { - var bundle = []; - for (var i = 0; i < cfg.bundles[p].length; i++) { - var defaultJSExtension = loader.defaultJSExtensions && cfg.bundles[p][i].substr(cfg.bundles[p][i].length - 3, 3) != '.js'; - var normalizedBundleDep = loader.decanonicalize(cfg.bundles[p][i]); - if (defaultJSExtension && normalizedBundleDep.substr(normalizedBundleDep.length - 3, 3) == '.js') - normalizedBundleDep = normalizedBundleDep.substr(0, normalizedBundleDep.length - 3); - bundle.push(normalizedBundleDep); - } - loader.bundles[p] = bundle; - } - } - - if (cfg.packages) { - for (var p in cfg.packages) { - if (p.match(/^([^\/]+:)?\/\/$/)) - throw new TypeError('"' + p + '" is not a valid package name.'); - - var prop = coreResolve.call(loader, p); - - // allow trailing slash in packages - if (prop[prop.length - 1] == '/') - prop = prop.substr(0, prop.length - 1); - - setPkgConfig(loader, prop, cfg.packages[p], false); - } - } - - for (var c in cfg) { - var v = cfg[c]; - - if (indexOf.call(['baseURL', 'map', 'packages', 'bundles', 'paths', 'warnings', 'packageConfigPaths', - 'loaderErrorStack', 'browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'], c) != -1) - continue; - - if (typeof v != 'object' || v instanceof Array) { - loader[c] = v; - } - else { - loader[c] = loader[c] || {}; - - for (var p in v) { - // base-level wildcard meta does not normalize to retain catch-all quality - if (c == 'meta' && p[0] == '*') { - extend(loader[c][p] = loader[c][p] || {}, v[p]); - } - else if (c == 'meta') { - // meta can go through global map, with defaultJSExtensions adding - var resolved = coreResolve.call(loader, p); - if (loader.defaultJSExtensions && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved)) - resolved += '.js'; - extend(loader[c][resolved] = loader[c][resolved] || {}, v[p]); - } - else if (c == 'depCache') { - var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js'; - var prop = loader.decanonicalize(p); - if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js') - prop = prop.substr(0, prop.length - 3); - loader[c][prop] = [].concat(v[p]); - } - else { - loader[c][p] = v[p]; - } - } - } - } - - envSet(loader, cfg, function(cfg) { - loader.config(cfg, true); - }); -}; -/* - * Package Configuration Extension - * - * Example: - * - * SystemJS.packages = { - * jquery: { - * main: 'index.js', // when not set, package name is requested directly - * format: 'amd', - * defaultExtension: 'ts', // defaults to 'js', can be set to false - * modules: { - * '*.ts': { - * loader: 'typescript' - * }, - * 'vendor/sizzle.js': { - * format: 'global' - * } - * }, - * map: { - * // map internal require('sizzle') to local require('./vendor/sizzle') - * sizzle: './vendor/sizzle.js', - * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js' - * './vendor/another.js': './another/index.js', - * // test.js / test -> lib/test.js - * './test.js': './lib/test.js', - * - * // environment-specific map configurations - * './index.js': { - * '~browser': './index-node.js', - * './custom-condition.js|~export': './index-custom.js' - * } - * }, - * // allows for setting package-prefixed depCache - * // keys are normalized module names relative to the package itself - * depCache: { - * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js - * './index.js': ['./test'], - * './test.js': ['external-dep'], - * 'external-dep/path.js': ['./another.js'] - * } - * } - * }; - * - * Then: - * import 'jquery' -> jquery/index.js - * import 'jquery/submodule' -> jquery/submodule.js - * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript - * import 'jquery/vendor/another' -> another/index.js - * - * Detailed Behaviours - * - main can have a leading "./" can be added optionally - * - map and defaultExtension are applied to the main - * - defaultExtension adds the extension only if the exact extension is not present - * - defaultJSExtensions applies after map when defaultExtension is not set - * - if a meta value is available for a module, map and defaultExtension are skipped - * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub) - * - condition module map is '@env' module in package or '@system-env' globally - * - map targets support conditional interpolation ('./x': './x.#{|env}.js') - * - internal package map targets cannot use boolean conditionals - * - * Package Configuration Loading - * - * Not all packages may already have their configuration present in the System config - * For these cases, a list of packageConfigPaths can be provided, which when matched against - * a request, will first request a ".json" file by the package name to derive the package - * configuration from. This allows dynamic loading of non-predetermined code, a key use - * case in SystemJS. - * - * Example: - * - * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json']; - * - * // will first request 'packages/new-package/package.json' for the package config - * // before completing the package request to 'packages/new-package/path' - * SystemJS.import('packages/new-package/path'); - * - * // will first request 'packages/test/package.json' before the main - * SystemJS.import('packages/test'); - * - * When a package matches packageConfigPaths, it will always send a config request for - * the package configuration. - * The package name itself is taken to be the match up to and including the last wildcard - * or trailing slash. - * The most specific package config path will be used. - * Any existing package configurations for the package will deeply merge with the - * package config, with the existing package configurations taking preference. - * To opt-out of the package configuration request for a package that matches - * packageConfigPaths, use the { configured: true } package config option. - * - */ -(function() { - - hookConstructor(function(constructor) { - return function() { - constructor.call(this); - this.packages = {}; - this.packageConfigPaths = []; - }; - }); - - function getPackage(loader, normalized) { - // use most specific package - var curPkg, curPkgLen = 0, pkgLen; - for (var p in loader.packages) { - if (normalized.substr(0, p.length) === p && (normalized.length === p.length || normalized[p.length] === '/')) { - pkgLen = p.split('/').length; - if (pkgLen > curPkgLen) { - curPkg = p; - curPkgLen = pkgLen; - } - } - } - return curPkg; - } - - function addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions) { - // don't apply extensions to folders or if defaultExtension = false - if (!subPath || subPath[subPath.length - 1] == '/' || skipExtensions || pkg.defaultExtension === false) - return subPath; - - var metaMatch = false; - - // exact meta or meta with any content after the last wildcard skips extension - if (pkg.meta) - getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) { - if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) - return metaMatch = true; - }); - - // exact global meta or meta with any content after the last wildcard skips extension - if (!metaMatch && loader.meta) - getMetaMatches(loader.meta, pkgName + '/' + subPath, function(metaPattern, matchMeta, matchDepth) { - if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) - return metaMatch = true; - }); - - if (metaMatch) - return subPath; - - // work out what the defaultExtension is and add if not there already - // NB reconsider if default should really be ".js"? - var defaultExtension = '.' + (pkg.defaultExtension || 'js'); - if (subPath.substr(subPath.length - defaultExtension.length) != defaultExtension) - return subPath + defaultExtension; - else - return subPath; - } - - function applyPackageConfigSync(loader, pkg, pkgName, subPath, skipExtensions) { - // main - if (!subPath) { - if (pkg.main) - subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main; - // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js') - else - // NB can add a default package main convention here when defaultJSExtensions is deprecated - // if it becomes internal to the package then it would no longer be an exit path - return pkgName + (loader.defaultJSExtensions ? '.js' : ''); - } - - // map config checking without then with extensions - if (pkg.map) { - var mapPath = './' + subPath; - - var mapMatch = getMapMatch(pkg.map, mapPath); - - // we then check map with the default extension adding - if (!mapMatch) { - mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions); - if (mapPath != './' + subPath) - mapMatch = getMapMatch(pkg.map, mapPath); - } - if (mapMatch) { - var mapped = doMapSync(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions); - if (mapped) - return mapped; - } - } - - // normal package resolution - return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions); - } - - function validMapping(mapMatch, mapped, pkgName, path) { - // disallow internal to subpath maps - if (mapMatch == '.') - throw new Error('Package ' + pkgName + ' has a map entry for "." which is not permitted.'); - - // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps - // but only if the path is exactly ./x and not ./x/z - if (mapped.substr(0, mapMatch.length) == mapMatch && path.length > mapMatch.length) - return false; - - return true; - } - - function doMapSync(loader, pkg, pkgName, mapMatch, path, skipExtensions) { - if (path[path.length - 1] == '/') - path = path.substr(0, path.length - 1); - var mapped = pkg.map[mapMatch]; - - if (typeof mapped == 'object') - throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgName); - - if (!validMapping(mapMatch, mapped, pkgName, path) || typeof mapped != 'string') - return; - - // package map to main / base-level - if (mapped == '.') - mapped = pkgName; - - // internal package map - else if (mapped.substr(0, 2) == './') - return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions); - - // external map reference - return loader.normalizeSync(mapped + path.substr(mapMatch.length), pkgName + '/'); - } - - function applyPackageConfig(loader, pkg, pkgName, subPath, skipExtensions) { - // main - if (!subPath) { - if (pkg.main) - subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main; - // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js') - else - // NB can add a default package main convention here when defaultJSExtensions is deprecated - // if it becomes internal to the package then it would no longer be an exit path - return Promise.resolve(pkgName + (loader.defaultJSExtensions ? '.js' : '')); - } - - // map config checking without then with extensions - var mapPath, mapMatch; - - if (pkg.map) { - mapPath = './' + subPath; - mapMatch = getMapMatch(pkg.map, mapPath); - - // we then check map with the default extension adding - if (!mapMatch) { - mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions); - if (mapPath != './' + subPath) - mapMatch = getMapMatch(pkg.map, mapPath); - } - } - - return (mapMatch ? doMap(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions) : Promise.resolve()) - .then(function(mapped) { - if (mapped) - return Promise.resolve(mapped); - - // normal package resolution / fallback resolution for no conditional match - return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions)); - }); - } - - function doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions) { - // NB the interpolation cases should strictly skip subsequent interpolation - // package map to main / base-level - if (mapped == '.') - mapped = pkgName; - - // internal package map - else if (mapped.substr(0, 2) == './') - return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions)) - .then(function(name) { - return interpolateConditional.call(loader, name, pkgName + '/'); - }); - - // external map reference - return loader.normalize(mapped + path.substr(mapMatch.length), pkgName + '/'); - } - - function doMap(loader, pkg, pkgName, mapMatch, path, skipExtensions) { - if (path[path.length - 1] == '/') - path = path.substr(0, path.length - 1); - - var mapped = pkg.map[mapMatch]; - - if (typeof mapped == 'string') { - if (!validMapping(mapMatch, mapped, pkgName, path)) - return Promise.resolve(); - return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions); - } - - // we use a special conditional syntax to allow the builder to handle conditional branch points further - if (loader.builder) - return Promise.resolve(pkgName + '/#:' + path); - - // we load all conditions upfront - var conditionPromises = []; - var conditions = []; - for (var e in mapped) { - var c = parseCondition(e); - conditions.push({ - condition: c, - map: mapped[e] - }); - conditionPromises.push(loader['import'](c.module, pkgName)); - } - - // map object -> conditional map - return Promise.all(conditionPromises) - .then(function(conditionValues) { - // first map condition to match is used - for (var i = 0; i < conditions.length; i++) { - var c = conditions[i].condition; - var value = readMemberExpression(c.prop, conditionValues[i]); - if (!c.negate && value || c.negate && !value) - return conditions[i].map; - } - }) - .then(function(mapped) { - if (mapped) { - if (!validMapping(mapMatch, mapped, pkgName, path)) - return; - return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions); - } - - // no environment match -> fallback to original subPath by returning undefined - }); - } - - // normalizeSync = decanonicalize + package resolution - SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalize; - - // decanonicalize must JUST handle package defaultExtension: false case when defaultJSExtensions is set - // to be deprecated! - hook('decanonicalize', function(decanonicalize) { - return function(name, parentName) { - if (this.builder) - return decanonicalize.call(this, name, parentName, true); - - var decanonicalized = decanonicalize.call(this, name, parentName, false); - - if (!this.defaultJSExtensions) - return decanonicalized; - - var pkgName = getPackage(this, decanonicalized); - - var pkg = this.packages[pkgName]; - var defaultExtension = pkg && pkg.defaultExtension; - - if (defaultExtension == undefined && pkg && pkg.meta) - getMetaMatches(pkg.meta, decanonicalized.substr(pkgName), function(metaPattern, matchMeta, matchDepth) { - if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) { - defaultExtension = false; - return true; - } - }); - - if ((defaultExtension === false || defaultExtension && defaultExtension != '.js') && name.substr(name.length - 3, 3) != '.js' && decanonicalized.substr(decanonicalized.length - 3, 3) == '.js') - decanonicalized = decanonicalized.substr(0, decanonicalized.length - 3); - - return decanonicalized; - }; - }); - - hook('normalizeSync', function(normalizeSync) { - return function(name, parentName, isPlugin) { - var loader = this; - isPlugin = isPlugin === true; - - // apply contextual package map first - // (we assume the parent package config has already been loaded) - if (parentName) - var parentPackageName = getPackage(loader, parentName) || - loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' && - getPackage(loader, parentName.substr(0, parentName.length - 3)); - - var parentPackage = parentPackageName && loader.packages[parentPackageName]; - - // ignore . since internal maps handled by standard package resolution - if (parentPackage && name[0] != '.') { - var parentMap = parentPackage.map; - var parentMapMatch = parentMap && getMapMatch(parentMap, name); - - if (parentMapMatch && typeof parentMap[parentMapMatch] == 'string') { - var mapped = doMapSync(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin); - if (mapped) - return mapped; - } - } - - var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js'; - - // apply map, core, paths, contextual package map - var normalized = normalizeSync.call(loader, name, parentName, false); - - // undo defaultJSExtension - if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js') - defaultJSExtension = false; - if (defaultJSExtension) - normalized = normalized.substr(0, normalized.length - 3); - - var pkgConfigMatch = getPackageConfigMatch(loader, normalized); - var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized); - - if (!pkgName) - return normalized + (defaultJSExtension ? '.js' : ''); - - var subPath = normalized.substr(pkgName.length + 1); - - return applyPackageConfigSync(loader, loader.packages[pkgName] || {}, pkgName, subPath, isPlugin); - }; - }); - - hook('normalize', function(normalize) { - return function(name, parentName, isPlugin) { - var loader = this; - isPlugin = isPlugin === true; - - return Promise.resolve() - .then(function() { - // apply contextual package map first - // (we assume the parent package config has already been loaded) - if (parentName) - var parentPackageName = getPackage(loader, parentName) || - loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' && - getPackage(loader, parentName.substr(0, parentName.length - 3)); - - var parentPackage = parentPackageName && loader.packages[parentPackageName]; - - // ignore . since internal maps handled by standard package resolution - if (parentPackage && name.substr(0, 2) != './') { - var parentMap = parentPackage.map; - var parentMapMatch = parentMap && getMapMatch(parentMap, name); - - if (parentMapMatch) - return doMap(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin); - } - - return Promise.resolve(); - }) - .then(function(mapped) { - if (mapped) - return mapped; - - var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js'; - - // apply map, core, paths, contextual package map - var normalized = normalize.call(loader, name, parentName, false); - - // undo defaultJSExtension - if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js') - defaultJSExtension = false; - if (defaultJSExtension) - normalized = normalized.substr(0, normalized.length - 3); - - var pkgConfigMatch = getPackageConfigMatch(loader, normalized); - var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized); - - if (!pkgName) - return Promise.resolve(normalized + (defaultJSExtension ? '.js' : '')); - - var pkg = loader.packages[pkgName]; - - // if package is already configured or not a dynamic config package, use existing package config - var isConfigured = pkg && (pkg.configured || !pkgConfigMatch); - return (isConfigured ? Promise.resolve(pkg) : loadPackageConfigPath(loader, pkgName, pkgConfigMatch.configPath)) - .then(function(pkg) { - var subPath = normalized.substr(pkgName.length + 1); - - return applyPackageConfig(loader, pkg, pkgName, subPath, isPlugin); - }); - }); - }; - }); - - // check if the given normalized name matches a packageConfigPath - // if so, loads the config - var packageConfigPaths = {}; - - // data object for quick checks against package paths - function createPkgConfigPathObj(path) { - var lastWildcard = path.lastIndexOf('*'); - var length = Math.max(lastWildcard + 1, path.lastIndexOf('/')); - return { - length: length, - regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '[^\\/]+') + ')(\\/|$)'), - wildcard: lastWildcard != -1 - }; - } - - // most specific match wins - function getPackageConfigMatch(loader, normalized) { - var pkgName, exactMatch = false, configPath; - for (var i = 0; i < loader.packageConfigPaths.length; i++) { - var packageConfigPath = loader.packageConfigPaths[i]; - var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath)); - if (normalized.length < p.length) - continue; - var match = normalized.match(p.regEx); - if (match && (!pkgName || (!(exactMatch && p.wildcard) && pkgName.length < match[1].length))) { - pkgName = match[1]; - exactMatch = !p.wildcard; - configPath = pkgName + packageConfigPath.substr(p.length); - } - } - - if (!pkgName) - return; - - return { - packageName: pkgName, - configPath: configPath - }; - } - - function loadPackageConfigPath(loader, pkgName, pkgConfigPath) { - var configLoader = loader.pluginLoader || loader; - - // NB remove this when json is default - (configLoader.meta[pkgConfigPath] = configLoader.meta[pkgConfigPath] || {}).format = 'json'; - configLoader.meta[pkgConfigPath].loader = null; - - return configLoader.load(pkgConfigPath) - .then(function() { - var cfg = configLoader.get(pkgConfigPath)['default']; - - // support "systemjs" prefixing - if (cfg.systemjs) - cfg = cfg.systemjs; - - // modules backwards compatibility - if (cfg.modules) { - cfg.meta = cfg.modules; - warn.call(loader, 'Package config file ' + pkgConfigPath + ' is configured with "modules", which is deprecated as it has been renamed to "meta".'); - } - - return setPkgConfig(loader, pkgName, cfg, true); - }); - } - - function getMetaMatches(pkgMeta, subPath, matchFn) { - // wildcard meta - var meta = {}; - var wildcardIndex; - for (var module in pkgMeta) { - // allow meta to start with ./ for flexibility - var dotRel = module.substr(0, 2) == './' ? './' : ''; - if (dotRel) - module = module.substr(2); - - wildcardIndex = module.indexOf('*'); - if (wildcardIndex === -1) - continue; - - if (module.substr(0, wildcardIndex) == subPath.substr(0, wildcardIndex) - && module.substr(wildcardIndex + 1) == subPath.substr(subPath.length - module.length + wildcardIndex + 1)) { - // alow match function to return true for an exit path - if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length)) - return; - } - } - // exact meta - var exactMeta = pkgMeta[subPath] && pkgMeta.hasOwnProperty && pkgMeta.hasOwnProperty(subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath]; - if (exactMeta) - matchFn(exactMeta, exactMeta, 0); - } - - hook('locate', function(locate) { - return function(load) { - var loader = this; - return Promise.resolve(locate.call(this, load)) - .then(function(address) { - var pkgName = getPackage(loader, load.name); - if (pkgName) { - var pkg = loader.packages[pkgName]; - var subPath = load.name.substr(pkgName.length + 1); - - var meta = {}; - if (pkg.meta) { - var bestDepth = 0; - - // NB support a main shorthand in meta here? - getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) { - if (matchDepth > bestDepth) - bestDepth = matchDepth; - extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth); - }); - - extendMeta(load.metadata, meta); - } - - // format - if (pkg.format && !load.metadata.loader) - load.metadata.format = load.metadata.format || pkg.format; - } - - return address; - }); - }; - }); - -})(); -/* - * Script tag fetch - * - * When load.metadata.scriptLoad is true, we load via script tag injection. - */ -(function() { - - if (typeof document != 'undefined') - var head = document.getElementsByTagName('head')[0]; - - var curSystem; - var curRequire; - - // if doing worker executing, this is set to the load record being executed - var workerLoad = null; - - // interactive mode handling method courtesy RequireJS - var ieEvents = head && (function() { - var s = document.createElement('script'); - var isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]'; - return s.attachEvent && !(s.attachEvent.toString && s.attachEvent.toString().indexOf('[native code') < 0) && !isOpera; - })(); - - // IE interactive-only part - // we store loading scripts array as { script: ')}else e()}else if("undefined"!=typeof importScripts){var a="";try{throw new Error("_")}catch(o){o.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/,function(e,t){$__curScript={src:t},a=t.replace(/\/[^\/]*$/,"/")})}t&&importScripts(a+"system-polyfills.js"),e()}else $__curScript="undefined"!=typeof __filename?{src:__filename}:null,e()}(); -//# sourceMappingURL=system.js.map diff --git a/node_modules/systemjs/dist/system.js.map b/node_modules/systemjs/dist/system.js.map deleted file mode 100644 index 362c1f5ea..000000000 --- a/node_modules/systemjs/dist/system.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["system.src.js"],"names":["bootstrap","global","URLPolyfill","url","baseURL","TypeError","m","String","replace","match","RangeError","protocol","username","password","host","hostname","port","pathname","search","hash","undefined","base","flag","slice","lastIndexOf","output","p","pop","push","join","this","origin","href","self","__global","addToError","err","msg","originalErr","stack","message","toString","split","newStack","i","length","$__curScript","indexOf","src","newMsg","substr","isBrowser","isWindows","newErr","errArgs","Error","fileName","lineNumber","Module","Loader","options","_loader","loaderObj","loads","modules","importPromises","moduleRecords","defineProperty","get","SystemJSLoader","call","paths","systemJSConstructor","SystemProto","hook","name","prototype","hookConstructor","isAbsolute","absURLRegEx","isRel","isPlain","urlResolve","parent","baseURI","URL","baseURIObj","applyPaths","loader","wildcard","pathMatch","maxWildcardPrefixLen","pathsCache","hasOwnProperty","path","pathParts","wildcardPrefixLen","outPath","group","deps","names","indices","l","index","getESModule","exports","esModule","getOwnPropertyDescriptor","defineOrCopyProperty","extend","value","targetObj","sourceObj","propName","d","Object","ex","a","b","prepend","extendMeta","val","Array","concat","extendPkgConfig","pkgCfgA","pkgCfgB","pkgName","warnInvalidProperties","prop","map","meta","depCache","dNormalized","coreResolve","warn","setPkgConfig","cfg","prependConfig","pkg","packages","basePkg","main","warnings","console","createInstantiate","load","result","metadata","entry","createEntry","execute","format","readMemberExpression","pParts","shift","getMapMatch","bestMatch","bestMatchLength","curMatchLength","prepareBaseURL","setProduction","isProduction","isBuilder","set","envModule","newModule","browser","node","_nodeRequire","production","dev","build","default","getNodeModule","parentModuleContext","_nodeModulePaths","require","parentName","mapMatch","has","builder","envSet","envCallback","browserConfig","nodeConfig","devConfig","buildConfig","productionConfig","detectRegisterFormat","source","leadingCommentAndMeta","leadingCommentAndMetaRegEx","originalIndices","declare","executingRequire","declarative","normalizedDeps","groupIndex","evaluated","module","esmExports","getGlobalValue","globalValue","first","parseCondition","condition","conditionExport","conditionModule","negation","conditionExportIndex","sysConditions","negate","serializeCondition","conditionObj","resolveCondition","bool","normalize","then","normalizedCondition","q","interpolateConditional","conditionalMatch","interpolationRegEx","Promise","resolve","conditionValue","booleanConditional","booleanIndex","isWorker","window","importScripts","document","process","platform","assert","item","thisLen","e","obj","opt","getElementsByTagName","bases","location","cwd","nativeURL","createLoad","status","anonCnt","linkSets","dependencies","loadModule","asyncStartLoadPartwayThrough","step","address","moduleName","moduleMetadata","moduleSource","moduleAddress","requestLoad","request","refererName","refererAddress","reject","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","depsList","loadPromises","depLoad","key","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","doLink","error","link","_newModule","finishLoad","abrupt","checkError","pLoad","dep","failed","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","loadIndex","doDynamicExecute","linkError","createImportPromise","promise","constructor","define","delete","import","parentAddress","sourcePromise","pNames","getOwnPropertyNames","configurable","enumerable","freeze","referrerName","referrerAddress","System","fetchTextFromURL","XMLHttpRequest","authorization","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","addEventListener","open","setRequestHeader","withCredentials","setTimeout","send","fs","readFile","data","dataString","opts","headers","Accept","credentials","r","ok","text","transpile","transpiler","pluginLoader","__useDefault","transpileFunction","Compiler","traceurTranspile","createLanguageService","typescriptTranspile","babelTranspile","traceur","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","doTraceurCompile","compile","babel","babelOptions","code","ast","transform","ts","typescriptOptions","target","ScriptTarget","ES5","inlineSourceMap","ModuleKind","__exec","sourceMapString","hasBuffer","sourceMapPrefix","Buffer","btoa","unescape","encodeURIComponent","getSource","wrap","lastLineIndex","JSON","stringify","preExec","curLoad","callCounter","curSystem","SystemJS","postExec","scriptExec","head","body","documentElement","createElement","_e","apply","arguments","integrity","setAttribute","nonce","appendChild","removeChild","register","reduceRegister_","useVm","vm","supportsScriptExec","runInThisContext","eval","chrome","extension","navigator","userAgent","scriptSrc","defaultJSExtensions","pluginFirst","loaderErrorStack","skipExt","resolved","httpRequest","systemImport","systemTranslate","parse","getConfig","curCurScript","config","isEnvConfig","checkHasConfig","transpilerRuntime","loadedTranspilerRuntime","bundles","packageConfigPaths","v","defaultJSExtension","decanonicalize","pkgMatch","packageLength","Math","max","normalized","bundle","normalizedBundleDep","c","getPackage","curPkg","pkgLen","curPkgLen","addDefaultExtension","subPath","skipExtensions","defaultExtension","metaMatch","getMetaMatches","metaPattern","matchMeta","matchDepth","applyPackageConfigSync","mapPath","mapped","doMapSync","validMapping","normalizeSync","applyPackageConfig","doMap","doStringMap","conditionPromises","conditions","conditionValues","createPkgConfigPathObj","lastWildcard","regEx","RegExp","getPackageConfigMatch","configPath","exactMatch","packageConfigPath","packageName","loadPackageConfigPath","pkgConfigPath","configLoader","systemjs","pkgMeta","matchFn","wildcardIndex","dotRel","exactMeta","decanonicalized","isPlugin","parentPackageName","parentPackage","parentMap","parentMapMatch","pkgConfigMatch","isConfigured","configured","bestDepth","getInteractiveScriptLoad","interactiveScript","interactiveLoadingScripts","webWorkerImport","workerLoad","curRequire","ieEvents","s","isOpera","opera","attachEvent","loadingCnt","registerQueue","pushRegister","scriptLoad","complete","evt","cleanup","detachEvent","removeEventListener","async","crossOrigin","buildGroups","groups","depName","depEntry","defined","depGroupIndex","startEntry","curGroupDeclarative","linkDeclarativeModule","linkDynamicModule","ModuleRecord","getOrCreateModuleRecord","importers","declaration","locked","importerModule","importerIndex","setter","setters","id","depExports","depModule","len","getModule","ensureEvaluated","nameNormalized","__esModule","seen","registerDynamic","pushRegister_","amd","curMeta","del","doLoad","grouped","normalizePromises","esmRegEx","traceurRuntimeRegEx","babelHelpersRegEx","args","depInject","loadedTranspiler","transpilerPromise","transpilerNormalized","loaderModule","originalName","file","sources","originalSource","$traceurRuntime","babelHelpers","__globalName","g","globals","gl","exportName","retrieveGlobal","prepareGlobal","encapsulateGlobal","reduceRegister","forEachGlobal","callback","keys","forEachGlobalValue","globalName","ignoredGlobalProps","globalSnapshot","encapsulate","curDefine","oldGlobals","singleGlobal","multipleExports","getCJSDeps","inLocation","locations","cjsRequireRegEx","lastIndex","commentRegEx","stringRegEx","stringLocations","commentLocations","cjsExportsRegEx","hashBangRegEx","metaDeps","cjsRequireDetection","_require","requireResolve","cjsDeferDepsExecute","pathVars","getPathVars","__cjsWrapper","dirname","cjsWrapper","stripOrigin","windowOrigin","parentId","moduleId","pluginIndex","amdDefine","requireIndex","params","fnBracketRegEx","requireAlias","wsRegEx","requireRegEx","requireRegExs","cjsRequirePre","cjsRequirePost","errback","referer","dynamicRequires","factory","req","contextualRequire","depValues","uri","moduleIndex","exportsIndex","toUrl","amdRequire","amdRegEx","builderExecute","getParentName","parentPluginIndex","parsePlugin","argumentName","pluginName","argument","plugin","combinePluginParts","checkDefaultExtension","arg","createNormalizeSync","parsed","pluginSyntaxIndex","loaderNormalized","calledInstantiate","alias","aliasDeps","_export","setMetaProperty","curPart","depth","metaRegEx","metaPartRegEx","metaParts","firstChar","metaString","metaName","metaValue","loadedBundles","matched","curModule","parts","substring","version","doPolyfill","scripts","currentScript","defer","curPath","basePath","systemJSBootstrap","write","__filename"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/systemjs/dist/system.src.js b/node_modules/systemjs/dist/system.src.js deleted file mode 100644 index e7e59edc3..000000000 --- a/node_modules/systemjs/dist/system.src.js +++ /dev/null @@ -1,5169 +0,0 @@ -/* - * SystemJS v0.19.47 - */ -(function() { -function bootstrap() {// from https://gist.github.com/Yaffle/1088850 -(function(global) { -function URLPolyfill(url, baseURL) { - if (typeof url != 'string') - throw new TypeError('URL must be a string'); - var m = String(url).replace(/^\s+|\s+$/g, "").replace(/\\/g, '/').match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); - if (!m) - throw new RangeError('Invalid URL format'); - var protocol = m[1] || ""; - var username = m[2] || ""; - var password = m[3] || ""; - var host = m[4] || ""; - var hostname = m[5] || ""; - var port = m[6] || ""; - var pathname = m[7] || ""; - var search = m[8] || ""; - var hash = m[9] || ""; - if (baseURL !== undefined) { - var base = baseURL instanceof URLPolyfill ? baseURL : new URLPolyfill(baseURL); - var flag = !protocol && !host && !username; - if (flag && !pathname && !search) - search = base.search; - if (flag && pathname[0] !== "/") - pathname = (pathname ? (((base.host || base.username) && !base.pathname ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname); - // dot segments removal - var output = []; - pathname.replace(/^(\.\.?(\/|$))+/, "") - .replace(/\/(\.(\/|$))+/g, "/") - .replace(/\/\.\.$/, "/../") - .replace(/\/?[^\/]*/g, function (p) { - if (p === "/..") - output.pop(); - else - output.push(p); - }); - pathname = output.join("").replace(/^\//, pathname[0] === "/" ? "/" : ""); - if (flag) { - port = base.port; - hostname = base.hostname; - host = base.host; - password = base.password; - username = base.username; - } - if (!protocol) - protocol = base.protocol; - } - - // convert URLs to use / always - pathname = pathname.replace(/\\/g, '/'); - - this.origin = host ? protocol + (protocol !== "" || host !== "" ? "//" : "") + host : ""; - this.href = protocol + (protocol && host || protocol == "file:" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash; - this.protocol = protocol; - this.username = username; - this.password = password; - this.host = host; - this.hostname = hostname; - this.port = port; - this.pathname = pathname; - this.search = search; - this.hash = hash; -} -global.URLPolyfill = URLPolyfill; -})(typeof self != 'undefined' ? self : global); -(function(__global) { - - var isWorker = typeof window == 'undefined' && typeof self != 'undefined' && typeof importScripts != 'undefined'; - var isBrowser = typeof window != 'undefined' && typeof document != 'undefined'; - var isWindows = typeof process != 'undefined' && typeof process.platform != 'undefined' && !!process.platform.match(/^win/); - - if (!__global.console) - __global.console = { assert: function() {} }; - - // IE8 support - var indexOf = Array.prototype.indexOf || function(item) { - for (var i = 0, thisLen = this.length; i < thisLen; i++) { - if (this[i] === item) { - return i; - } - } - return -1; - }; - - var defineProperty; - (function () { - try { - if (!!Object.defineProperty({}, 'a', {})) - defineProperty = Object.defineProperty; - } - catch (e) { - defineProperty = function(obj, prop, opt) { - try { - obj[prop] = opt.value || opt.get.call(obj); - } - catch(e) {} - } - } - })(); - - var errArgs = new Error(0, '_').fileName == '_'; - - function addToError(err, msg) { - // parse the stack removing loader code lines for simplification - if (!err.originalErr) { - var stack = ((err.message || err) + (err.stack ? '\n' + err.stack : '')).toString().split('\n'); - var newStack = []; - for (var i = 0; i < stack.length; i++) { - if (typeof $__curScript == 'undefined' || stack[i].indexOf($__curScript.src) == -1) - newStack.push(stack[i]); - } - } - - var newMsg = '(SystemJS) ' + (newStack ? newStack.join('\n\t') : err.message.substr(11)) + '\n\t' + msg; - - // Convert file:/// URLs to paths in Node - if (!isBrowser) - newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); - - var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg); - - newErr.stack = newMsg; - - // track the original error - newErr.originalErr = err.originalErr || err; - - return newErr; - } - - function __eval(source, debugName, context) { - try { - new Function(source).call(context); - } - catch(e) { - throw addToError(e, 'Evaluating ' + debugName); - } - } - - var baseURI; - - // environent baseURI detection - if (typeof document != 'undefined' && document.getElementsByTagName) { - baseURI = document.baseURI; - - if (!baseURI) { - var bases = document.getElementsByTagName('base'); - baseURI = bases[0] && bases[0].href || window.location.href; - } - } - else if (typeof location != 'undefined') { - baseURI = __global.location.href; - } - - // sanitize out the hash and querystring - if (baseURI) { - baseURI = baseURI.split('#')[0].split('?')[0]; - baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1); - } - else if (typeof process != 'undefined' && process.cwd) { - baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/'; - if (isWindows) - baseURI = baseURI.replace(/\\/g, '/'); - } - else { - throw new TypeError('No environment baseURI'); - } - - try { - var nativeURL = new __global.URL('test:///').protocol == 'test:'; - } - catch(e) {} - - var URL = nativeURL ? __global.URL : __global.URLPolyfill; - -/* -********************************************************************************************* - - Dynamic Module Loader Polyfill - - - Implemented exactly to the former 2014-08-24 ES6 Specification Draft Rev 27, Section 15 - http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27 - - - Functions are commented with their spec numbers, with spec differences commented. - - - Spec bugs are commented in this code with links. - - - Abstract functions have been combined where possible, and their associated functions - commented. - - - Realm implementation is entirely omitted. - -********************************************************************************************* -*/ - -function Module() {} -// http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag -defineProperty(Module.prototype, 'toString', { - value: function() { - return 'Module'; - } -}); -function Loader(options) { - this._loader = { - loaderObj: this, - loads: [], - modules: {}, - importPromises: {}, - moduleRecords: {} - }; - - // 26.3.3.6 - defineProperty(this, 'global', { - get: function() { - return __global; - } - }); - - // 26.3.3.13 realm not implemented -} - -(function() { - -// Some Helpers - -// logs a linkset snapshot for debugging -/* function snapshot(loader) { - console.log('---Snapshot---'); - for (var i = 0; i < loader.loads.length; i++) { - var load = loader.loads[i]; - var linkSetLog = ' ' + load.name + ' (' + load.status + '): '; - - for (var j = 0; j < load.linkSets.length; j++) { - linkSetLog += '{' + logloads(load.linkSets[j].loads) + '} '; - } - console.log(linkSetLog); - } - console.log(''); -} -function logloads(loads) { - var log = ''; - for (var k = 0; k < loads.length; k++) - log += loads[k].name + (k != loads.length - 1 ? ' ' : ''); - return log; -} */ - - -/* function checkInvariants() { - // see https://bugs.ecmascript.org/show_bug.cgi?id=2603#c1 - - var loads = System._loader.loads; - var linkSets = []; - - for (var i = 0; i < loads.length; i++) { - var load = loads[i]; - console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded'); - - for (var j = 0; j < load.linkSets.length; j++) { - var linkSet = load.linkSets[j]; - - for (var k = 0; k < linkSet.loads.length; k++) - console.assert(loads.indexOf(linkSet.loads[k]) != -1, 'linkSet loads are a subset of loader loads'); - - if (linkSets.indexOf(linkSet) == -1) - linkSets.push(linkSet); - } - } - - for (var i = 0; i < loads.length; i++) { - var load = loads[i]; - for (var j = 0; j < linkSets.length; j++) { - var linkSet = linkSets[j]; - - if (linkSet.loads.indexOf(load) != -1) - console.assert(load.linkSets.indexOf(linkSet) != -1, 'linkSet contains load -> load contains linkSet'); - - if (load.linkSets.indexOf(linkSet) != -1) - console.assert(linkSet.loads.indexOf(load) != -1, 'load contains linkSet -> linkSet contains load'); - } - } - - for (var i = 0; i < linkSets.length; i++) { - var linkSet = linkSets[i]; - for (var j = 0; j < linkSet.loads.length; j++) { - var load = linkSet.loads[j]; - - for (var k = 0; k < load.dependencies.length; k++) { - var depName = load.dependencies[k].value; - var depLoad; - for (var l = 0; l < loads.length; l++) { - if (loads[l].name != depName) - continue; - depLoad = loads[l]; - break; - } - - // loading records are allowed not to have their dependencies yet - // if (load.status != 'loading') - // console.assert(depLoad, 'depLoad found'); - - // console.assert(linkSet.loads.indexOf(depLoad) != -1, 'linkset contains all dependencies'); - } - } - } -} */ - - // 15.2.3 - Runtime Semantics: Loader State - - // 15.2.3.11 - function createLoaderLoad(object) { - return { - // modules is an object for ES5 implementation - modules: {}, - loads: [], - loaderObj: object - }; - } - - // 15.2.3.2 Load Records and LoadRequest Objects - - var anonCnt = 0; - - // 15.2.3.2.1 - function createLoad(name) { - return { - status: 'loading', - name: name || '', - linkSets: [], - dependencies: [], - metadata: {} - }; - } - - // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions - - // 15.2.4 - - // 15.2.4.1 - function loadModule(loader, name, options) { - return new Promise(asyncStartLoadPartwayThrough({ - step: options.address ? 'fetch' : 'locate', - loader: loader, - moduleName: name, - // allow metadata for import https://bugs.ecmascript.org/show_bug.cgi?id=3091 - moduleMetadata: options && options.metadata || {}, - moduleSource: options.source, - moduleAddress: options.address - })); - } - - // 15.2.4.2 - function requestLoad(loader, request, refererName, refererAddress) { - // 15.2.4.2.1 CallNormalize - return new Promise(function(resolve, reject) { - resolve(loader.loaderObj.normalize(request, refererName, refererAddress)); - }) - // 15.2.4.2.2 GetOrCreateLoad - .then(function(name) { - var load; - if (loader.modules[name]) { - load = createLoad(name); - load.status = 'linked'; - // https://bugs.ecmascript.org/show_bug.cgi?id=2795 - load.module = loader.modules[name]; - return load; - } - - for (var i = 0, l = loader.loads.length; i < l; i++) { - load = loader.loads[i]; - if (load.name != name) - continue; - return load; - } - - load = createLoad(name); - loader.loads.push(load); - - proceedToLocate(loader, load); - - return load; - }); - } - - // 15.2.4.3 - function proceedToLocate(loader, load) { - proceedToFetch(loader, load, - Promise.resolve() - // 15.2.4.3.1 CallLocate - .then(function() { - return loader.loaderObj.locate({ name: load.name, metadata: load.metadata }); - }) - ); - } - - // 15.2.4.4 - function proceedToFetch(loader, load, p) { - proceedToTranslate(loader, load, - p - // 15.2.4.4.1 CallFetch - .then(function(address) { - // adjusted, see https://bugs.ecmascript.org/show_bug.cgi?id=2602 - if (load.status != 'loading') - return; - load.address = address; - - return loader.loaderObj.fetch({ name: load.name, metadata: load.metadata, address: address }); - }) - ); - } - - // 15.2.4.5 - function proceedToTranslate(loader, load, p) { - p - // 15.2.4.5.1 CallTranslate - .then(function(source) { - if (load.status != 'loading') - return; - - load.address = load.address || load.name; - - return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source })) - - // 15.2.4.5.2 CallInstantiate - .then(function(source) { - load.source = source; - return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) - - // 15.2.4.5.3 InstantiateSucceeded - .then(function(instantiateResult) { - if (instantiateResult === undefined) - throw new TypeError('Declarative modules unsupported in the polyfill.'); - - if (typeof instantiateResult != 'object') - throw new TypeError('Invalid instantiate return value'); - - load.depsList = instantiateResult.deps || []; - load.execute = instantiateResult.execute; - }) - // 15.2.4.6 ProcessLoadDependencies - .then(function() { - load.dependencies = []; - var depsList = load.depsList; - - var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { - loadPromises.push( - requestLoad(loader, request, load.name, load.address) - - // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) - .then(function(depLoad) { - - // adjusted from spec to maintain dependency order - // this is due to the System.register internal implementation needs - load.dependencies[index] = { - key: request, - value: depLoad.name - }; - - if (depLoad.status != 'linked') { - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - addLoadToLinkSet(linkSets[i], depLoad); - } - - // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); - // snapshot(loader); - }) - ); - })(depsList[i], i); - - return Promise.all(loadPromises); - }) - - // 15.2.4.6.2 LoadSucceeded - .then(function() { - // console.log('LoadSucceeded ' + load.name); - // snapshot(loader); - - load.status = 'loaded'; - - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - updateLinkSetOnLoad(linkSets[i], load); - }); - }) - // 15.2.4.5.4 LoadFailed - ['catch'](function(exc) { - load.status = 'failed'; - load.exception = exc; - - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) { - linkSetFailed(linkSets[i], load, exc); - } - }); - } - - // 15.2.4.7 PromiseOfStartLoadPartwayThrough absorbed into calling functions - - // 15.2.4.7.1 - function asyncStartLoadPartwayThrough(stepState) { - return function(resolve, reject) { - var loader = stepState.loader; - var name = stepState.moduleName; - var step = stepState.step; - - if (loader.modules[name]) - throw new TypeError('"' + name + '" already exists in the module table'); - - // adjusted to pick up existing loads - var existingLoad; - for (var i = 0, l = loader.loads.length; i < l; i++) { - if (loader.loads[i].name == name) { - existingLoad = loader.loads[i]; - - if (step == 'translate' && !existingLoad.source) { - existingLoad.address = stepState.moduleAddress; - proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource)); - } - - // a primary load -> use that existing linkset if it is for the direct load here - // otherwise create a new linkset unit - if (existingLoad.linkSets.length && existingLoad.linkSets[0].loads[0].name == existingLoad.name) - return existingLoad.linkSets[0].done.then(function() { - resolve(existingLoad); - }); - } - } - - var load = existingLoad || createLoad(name); - - load.metadata = stepState.moduleMetadata; - - var linkSet = createLinkSet(loader, load); - - loader.loads.push(load); - - resolve(linkSet.done); - - if (step == 'locate') - proceedToLocate(loader, load); - - else if (step == 'fetch') - proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress)); - - else { - load.address = stepState.moduleAddress; - proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource)); - } - } - } - - // Declarative linking functions run through alternative implementation: - // 15.2.5.1.1 CreateModuleLinkageRecord not implemented - // 15.2.5.1.2 LookupExport not implemented - // 15.2.5.1.3 LookupModuleDependency not implemented - - // 15.2.5.2.1 - function createLinkSet(loader, startingLoad) { - var linkSet = { - loader: loader, - loads: [], - startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 - loadingCount: 0 - }; - linkSet.done = new Promise(function(resolve, reject) { - linkSet.resolve = resolve; - linkSet.reject = reject; - }); - addLoadToLinkSet(linkSet, startingLoad); - return linkSet; - } - // 15.2.5.2.2 - function addLoadToLinkSet(linkSet, load) { - if (load.status == 'failed') - return; - - for (var i = 0, l = linkSet.loads.length; i < l; i++) - if (linkSet.loads[i] == load) - return; - - linkSet.loads.push(load); - load.linkSets.push(linkSet); - - // adjustment, see https://bugs.ecmascript.org/show_bug.cgi?id=2603 - if (load.status != 'loaded') { - linkSet.loadingCount++; - } - - var loader = linkSet.loader; - - for (var i = 0, l = load.dependencies.length; i < l; i++) { - if (!load.dependencies[i]) - continue; - - var name = load.dependencies[i].value; - - if (loader.modules[name]) - continue; - - for (var j = 0, d = loader.loads.length; j < d; j++) { - if (loader.loads[j].name != name) - continue; - - addLoadToLinkSet(linkSet, loader.loads[j]); - break; - } - } - // console.log('add to linkset ' + load.name); - // snapshot(linkSet.loader); - } - - // linking errors can be generic or load-specific - // this is necessary for debugging info - function doLink(linkSet) { - var error = false; - try { - link(linkSet, function(load, exc) { - linkSetFailed(linkSet, load, exc); - error = true; - }); - } - catch(e) { - linkSetFailed(linkSet, null, e); - error = true; - } - return error; - } - - // 15.2.5.2.3 - function updateLinkSetOnLoad(linkSet, load) { - // console.log('update linkset on load ' + load.name); - // snapshot(linkSet.loader); - linkSet.loadingCount--; - - if (linkSet.loadingCount > 0) - return; - - // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 - var startingLoad = linkSet.startingLoad; - - // non-executing link variation for loader tracing - // on the server. Not in spec. - /***/ - if (linkSet.loader.loaderObj.execute === false) { - var loads = [].concat(linkSet.loads); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; - load.module = { - name: load.name, - module: _newModule({}), - evaluated: true - }; - load.status = 'linked'; - finishLoad(linkSet.loader, load); - } - return linkSet.resolve(startingLoad); - } - /***/ - - var abrupt = doLink(linkSet); - - if (abrupt) - return; - - linkSet.resolve(startingLoad); - } - - // 15.2.5.2.4 - function linkSetFailed(linkSet, load, exc) { - var loader = linkSet.loader; - var requests; - - checkError: - if (load) { - if (linkSet.loads[0].name == load.name) { - exc = addToError(exc, 'Error loading ' + load.name); - } - else { - for (var i = 0; i < linkSet.loads.length; i++) { - var pLoad = linkSet.loads[i]; - for (var j = 0; j < pLoad.dependencies.length; j++) { - var dep = pLoad.dependencies[j]; - if (dep.value == load.name) { - exc = addToError(exc, 'Error loading ' + load.name + ' as "' + dep.key + '" from ' + pLoad.name); - break checkError; - } - } - } - exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name); - } - } - else { - exc = addToError(exc, 'Error linking ' + linkSet.loads[0].name); - } - - - var loads = linkSet.loads.concat([]); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; - - // store all failed load records - loader.loaderObj.failed = loader.loaderObj.failed || []; - if (indexOf.call(loader.loaderObj.failed, load) == -1) - loader.loaderObj.failed.push(load); - - var linkIndex = indexOf.call(load.linkSets, linkSet); - load.linkSets.splice(linkIndex, 1); - if (load.linkSets.length == 0) { - var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load); - if (globalLoadsIndex != -1) - linkSet.loader.loads.splice(globalLoadsIndex, 1); - } - } - linkSet.reject(exc); - } - - // 15.2.5.2.5 - function finishLoad(loader, load) { - // add to global trace if tracing - if (loader.loaderObj.trace) { - if (!loader.loaderObj.loads) - loader.loaderObj.loads = {}; - var depMap = {}; - load.dependencies.forEach(function(dep) { - depMap[dep.key] = dep.value; - }); - loader.loaderObj.loads[load.name] = { - name: load.name, - deps: load.dependencies.map(function(dep){ return dep.key }), - depMap: depMap, - address: load.address, - metadata: load.metadata, - source: load.source - }; - } - // if not anonymous, add to the module table - if (load.name) { - loader.modules[load.name] = load.module; - } - var loadIndex = indexOf.call(loader.loads, load); - if (loadIndex != -1) - loader.loads.splice(loadIndex, 1); - for (var i = 0, l = load.linkSets.length; i < l; i++) { - loadIndex = indexOf.call(load.linkSets[i].loads, load); - if (loadIndex != -1) - load.linkSets[i].loads.splice(loadIndex, 1); - } - load.linkSets.splice(0, load.linkSets.length); - } - - function doDynamicExecute(linkSet, load, linkError) { - try { - var module = load.execute(); - } - catch(e) { - linkError(load, e); - return; - } - if (!module || !(module instanceof Module)) - linkError(load, new TypeError('Execution must define a Module instance')); - else - return module; - } - - // 26.3 Loader - - // 26.3.1.1 - // defined at top - - // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 - function createImportPromise(loader, name, promise) { - var importPromises = loader._loader.importPromises; - return importPromises[name] = promise.then(function(m) { - importPromises[name] = undefined; - return m; - }, function(e) { - importPromises[name] = undefined; - throw e; - }); - } - - Loader.prototype = { - // 26.3.3.1 - constructor: Loader, - // 26.3.3.2 - define: function(name, source, options) { - // check if already defined - if (this._loader.importPromises[name]) - throw new TypeError('Module is already loading.'); - return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ - step: 'translate', - loader: this._loader, - moduleName: name, - moduleMetadata: options && options.metadata || {}, - moduleSource: source, - moduleAddress: options && options.address - }))); - }, - // 26.3.3.3 - 'delete': function(name) { - var loader = this._loader; - delete loader.importPromises[name]; - delete loader.moduleRecords[name]; - return loader.modules[name] ? delete loader.modules[name] : false; - }, - // 26.3.3.4 entries not implemented - // 26.3.3.5 - get: function(key) { - if (!this._loader.modules[key]) - return; - return this._loader.modules[key].module; - }, - // 26.3.3.7 - has: function(name) { - return !!this._loader.modules[name]; - }, - // 26.3.3.8 - 'import': function(name, parentName, parentAddress) { - if (typeof parentName == 'object') - parentName = parentName.name; - - // run normalize first - var loaderObj = this; - - // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659 - return Promise.resolve(loaderObj.normalize(name, parentName)) - .then(function(name) { - var loader = loaderObj._loader; - - if (loader.modules[name]) - return loader.modules[name].module; - - return loader.importPromises[name] || createImportPromise(loaderObj, name, - loadModule(loader, name, {}) - .then(function(load) { - delete loader.importPromises[name]; - return load.module.module; - })); - }); - }, - // 26.3.3.9 keys not implemented - // 26.3.3.10 - load: function(name) { - var loader = this._loader; - if (loader.modules[name]) - return Promise.resolve(); - return (loader.importPromises[name] || createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ - step: 'locate', - loader: loader, - moduleName: name, - moduleMetadata: {}, - moduleSource: undefined, - moduleAddress: undefined - })) - .then(function(load) { - delete loader.importPromises[name]; - return load.module.module; - }))) - .then(function () {}); - }, - // 26.3.3.11 - module: function(source, options) { - var load = createLoad(); - load.address = options && options.address; - var linkSet = createLinkSet(this._loader, load); - var sourcePromise = Promise.resolve(source); - var loader = this._loader; - var p = linkSet.done.then(function() { - return load.module.module; - }); - proceedToTranslate(loader, load, sourcePromise); - return p; - }, - // 26.3.3.12 - newModule: function (obj) { - if (typeof obj != 'object') - throw new TypeError('Expected object'); - - var m = new Module(); - - var pNames = []; - if (Object.getOwnPropertyNames && obj != null) - pNames = Object.getOwnPropertyNames(obj); - else - for (var key in obj) - pNames.push(key); - - for (var i = 0; i < pNames.length; i++) (function(key) { - defineProperty(m, key, { - configurable: false, - enumerable: true, - get: function () { - return obj[key]; - }, - set: function() { - throw new Error('Module exports cannot be changed externally.'); - } - }); - })(pNames[i]); - - if (Object.freeze) - Object.freeze(m); - - return m; - }, - // 26.3.3.14 - set: function(name, module) { - if (!(module instanceof Module)) - throw new TypeError('Loader.set(' + name + ', module) must be a module'); - this._loader.modules[name] = { - module: module - }; - }, - // 26.3.3.15 values not implemented - // 26.3.3.16 @@iterator not implemented - // 26.3.3.17 @@toStringTag not implemented - - // 26.3.3.18.1 - normalize: function(name, referrerName, referrerAddress) {}, - // 26.3.3.18.2 - locate: function(load) { - return load.name; - }, - // 26.3.3.18.3 - fetch: function(load) { - }, - // 26.3.3.18.4 - translate: function(load) { - return load.source; - }, - // 26.3.3.18.5 - instantiate: function(load) { - } - }; - - var _newModule = Loader.prototype.newModule; - -/* - * ES6 Module Declarative Linking Code - */ - function link(linkSet, linkError) { - - var loader = linkSet.loader; - - if (!linkSet.loads.length) - return; - - var loads = linkSet.loads.concat([]); - - for (var i = 0; i < loads.length; i++) { - var load = loads[i]; - - var module = doDynamicExecute(linkSet, load, linkError); - if (!module) - return; - load.module = { - name: load.name, - module: module - }; - load.status = 'linked'; - - finishLoad(loader, load); - } - } - -})(); - -var System; - var fetchTextFromURL; - if (typeof XMLHttpRequest != 'undefined') { - fetchTextFromURL = function(url, authorization, fulfill, reject) { - var xhr = new XMLHttpRequest(); - var sameDomain = true; - var doTimeout = false; - if (!('withCredentials' in xhr)) { - // check if same domain - var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); - if (domainCheck) { - sameDomain = domainCheck[2] === window.location.host; - if (domainCheck[1]) - sameDomain &= domainCheck[1] === window.location.protocol; - } - } - if (!sameDomain && typeof XDomainRequest != 'undefined') { - xhr = new XDomainRequest(); - xhr.onload = load; - xhr.onerror = error; - xhr.ontimeout = error; - xhr.onprogress = function() {}; - xhr.timeout = 0; - doTimeout = true; - } - function load() { - fulfill(xhr.responseText); - } - function error() { - reject(new Error('XHR error' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url)); - } - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - // in Chrome on file:/// URLs, status is 0 - if (xhr.status == 0) { - if (xhr.responseText) { - load(); - } - else { - // when responseText is empty, wait for load or error event - // to inform if it is a 404 or empty file - xhr.addEventListener('error', error); - xhr.addEventListener('load', load); - } - } - else if (xhr.status === 200) { - load(); - } - else { - error(); - } - } - }; - xhr.open("GET", url, true); - - if (xhr.setRequestHeader) { - xhr.setRequestHeader('Accept', 'application/x-es-module, */*'); - // can set "authorization: true" to enable withCredentials only - if (authorization) { - if (typeof authorization == 'string') - xhr.setRequestHeader('Authorization', authorization); - xhr.withCredentials = true; - } - } - - if (doTimeout) { - setTimeout(function() { - xhr.send(); - }, 0); - } else { - xhr.send(null); - } - }; - } - else if (typeof require != 'undefined' && typeof process != 'undefined') { - var fs; - fetchTextFromURL = function(url, authorization, fulfill, reject) { - if (url.substr(0, 8) != 'file:///') - throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.'); - fs = fs || require('fs'); - if (isWindows) - url = url.replace(/\//g, '\\').substr(8); - else - url = url.substr(7); - return fs.readFile(url, function(err, data) { - if (err) { - return reject(err); - } - else { - // Strip Byte Order Mark out if it's the leading char - var dataString = data + ''; - if (dataString[0] === '\ufeff') - dataString = dataString.substr(1); - - fulfill(dataString); - } - }); - }; - } - else if (typeof self != 'undefined' && typeof self.fetch != 'undefined') { - fetchTextFromURL = function(url, authorization, fulfill, reject) { - var opts = { - headers: {'Accept': 'application/x-es-module, */*'} - }; - - if (authorization) { - if (typeof authorization == 'string') - opts.headers['Authorization'] = authorization; - opts.credentials = 'include'; - } - - fetch(url, opts) - .then(function (r) { - if (r.ok) { - return r.text(); - } else { - throw new Error('Fetch error: ' + r.status + ' ' + r.statusText); - } - }) - .then(fulfill, reject); - } - } - else { - throw new TypeError('No environment fetch API available.'); - } -/* - * Traceur, Babel and TypeScript transpile hook for Loader - */ -var transpile = (function() { - - // use Traceur by default - Loader.prototype.transpiler = 'traceur'; - - function transpile(load) { - var self = this; - - return Promise.resolve(__global[self.transpiler == 'typescript' ? 'ts' : self.transpiler] - || (self.pluginLoader || self)['import'](self.transpiler)) - .then(function(transpiler) { - if (transpiler.__useDefault) - transpiler = transpiler['default']; - - var transpileFunction; - if (transpiler.Compiler) - transpileFunction = traceurTranspile; - else if (transpiler.createLanguageService) - transpileFunction = typescriptTranspile; - else - transpileFunction = babelTranspile; - - // note __moduleName will be part of the transformer meta in future when we have the spec for this - return '(function(__moduleName){' + transpileFunction.call(self, load, transpiler) + '\n})("' + load.name + '");\n//# sourceURL=' + load.address + '!transpiled'; - }); - }; - - function traceurTranspile(load, traceur) { - var options = this.traceurOptions || {}; - options.modules = 'instantiate'; - options.script = false; - if (options.sourceMaps === undefined) - options.sourceMaps = 'inline'; - options.filename = load.address; - options.inputSourceMap = load.metadata.sourceMap; - options.moduleName = false; - - var compiler = new traceur.Compiler(options); - - return doTraceurCompile(load.source, compiler, options.filename); - } - function doTraceurCompile(source, compiler, filename) { - try { - return compiler.compile(source, filename); - } - catch(e) { - // on older versions of traceur (<0.9.3), an array of errors is thrown - // rather than a single error. - if (e.length) { - throw e[0]; - } - throw e; - } - } - - function babelTranspile(load, babel) { - var options = this.babelOptions || {}; - options.modules = 'system'; - if (options.sourceMap === undefined) - options.sourceMap = 'inline'; - options.inputSourceMap = load.metadata.sourceMap; - options.filename = load.address; - options.code = true; - options.ast = false; - - return babel.transform(load.source, options).code; - } - - function typescriptTranspile(load, ts) { - var options = this.typescriptOptions || {}; - options.target = options.target || ts.ScriptTarget.ES5; - if (options.sourceMap === undefined) - options.sourceMap = true; - if (options.sourceMap && options.inlineSourceMap !== false) - options.inlineSourceMap = true; - - options.module = ts.ModuleKind.System; - - return ts.transpile(load.source, options, load.address); - } - - return transpile; -})(); -// SystemJS Loader Class and Extension helpers -function SystemJSLoader() { - Loader.call(this); - - this.paths = {}; - this._loader.paths = {}; - - systemJSConstructor.call(this); -} - -// inline Object.create-style class extension -function SystemProto() {}; -SystemProto.prototype = Loader.prototype; -SystemJSLoader.prototype = new SystemProto(); -SystemJSLoader.prototype.constructor = SystemJSLoader; - -var systemJSConstructor; - -function hook(name, hook) { - SystemJSLoader.prototype[name] = hook(SystemJSLoader.prototype[name] || function() {}); -} -function hookConstructor(hook) { - systemJSConstructor = hook(systemJSConstructor || function() {}); -} - - -var absURLRegEx = /^[^\/]+:\/\//; -function isAbsolute(name) { - return name.match(absURLRegEx); -} -function isRel(name) { - return (name[0] == '.' && (!name[1] || name[1] == '/' || name[1] == '.')) || name[0] == '/'; -} -function isPlain(name) { - return !isRel(name) && !isAbsolute(name); -} - -var baseURIObj = new URL(baseURI); - -function urlResolve(name, parent) { - // url resolution shortpaths - if (name[0] == '.') { - // dot-relative url normalization - if (name[1] == '/' && name[2] != '.') - return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name.substr(2); - } - else if (name[0] != '/' && name.indexOf(':') == -1) { - // plain parent normalization - return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name; - } - - return new URL(name, parent && parent.replace(/#/g, '%05') || baseURIObj).href.replace(/%05/g, '#'); -} - -// NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25 -function applyPaths(loader, name) { - // most specific (most number of slashes in path) match wins - var pathMatch = '', wildcard, maxWildcardPrefixLen = 0; - - var paths = loader.paths; - var pathsCache = loader._loader.paths; - - // check to see if we have a paths entry - for (var p in paths) { - if (paths.hasOwnProperty && !paths.hasOwnProperty(p)) - continue; - - // paths sanitization - var path = paths[p]; - if (path !== pathsCache[p]) - path = paths[p] = pathsCache[p] = urlResolve(paths[p], isRel(paths[p]) ? baseURI : loader.baseURL); - - // exact path match - if (p.indexOf('*') === -1) { - if (name == p) - return paths[p]; - - // support trailing / in paths rules - else if (name.substr(0, p.length - 1) == p.substr(0, p.length - 1) && (name.length < p.length || name[p.length - 1] == p[p.length - 1]) && (paths[p][paths[p].length - 1] == '/' || paths[p] == '')) { - return paths[p].substr(0, paths[p].length - 1) + (name.length > p.length ? (paths[p] && '/' || '') + name.substr(p.length) : ''); - } - } - // wildcard path match - else { - var pathParts = p.split('*'); - if (pathParts.length > 2) - throw new TypeError('Only one wildcard in a path is permitted'); - - var wildcardPrefixLen = pathParts[0].length; - if (wildcardPrefixLen >= maxWildcardPrefixLen && - name.substr(0, pathParts[0].length) == pathParts[0] && - name.substr(name.length - pathParts[1].length) == pathParts[1]) { - maxWildcardPrefixLen = wildcardPrefixLen; - pathMatch = p; - wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length); - } - } - } - - var outPath = paths[pathMatch]; - if (typeof wildcard == 'string') - outPath = outPath.replace('*', wildcard); - - return outPath; -} - -function dedupe(deps) { - var newDeps = []; - for (var i = 0, l = deps.length; i < l; i++) - if (indexOf.call(newDeps, deps[i]) == -1) - newDeps.push(deps[i]) - return newDeps; -} - -function group(deps) { - var names = []; - var indices = []; - for (var i = 0, l = deps.length; i < l; i++) { - var index = indexOf.call(names, deps[i]); - if (index === -1) { - names.push(deps[i]); - indices.push([i]); - } - else { - indices[index].push(i); - } - } - return { names: names, indices: indices }; -} - -var getOwnPropertyDescriptor = true; -try { - Object.getOwnPropertyDescriptor({ a: 0 }, 'a'); -} -catch(e) { - getOwnPropertyDescriptor = false; -} - -// converts any module.exports object into an object ready for SystemJS.newModule -function getESModule(exports) { - var esModule = {}; - // don't trigger getters/setters in environments that support them - if ((typeof exports == 'object' || typeof exports == 'function') && exports !== __global) { - if (getOwnPropertyDescriptor) { - for (var p in exports) { - // The default property is copied to esModule later on - if (p === 'default') - continue; - defineOrCopyProperty(esModule, exports, p); - } - } - else { - extend(esModule, exports); - } - } - esModule['default'] = exports; - defineProperty(esModule, '__useDefault', { - value: true - }); - return esModule; -} - -function defineOrCopyProperty(targetObj, sourceObj, propName) { - try { - var d; - if (d = Object.getOwnPropertyDescriptor(sourceObj, propName)) - defineProperty(targetObj, propName, d); - } - catch (ex) { - // Object.getOwnPropertyDescriptor threw an exception, fall back to normal set property - // we dont need hasOwnProperty here because getOwnPropertyDescriptor would have returned undefined above - targetObj[propName] = sourceObj[propName]; - return false; - } -} - -function extend(a, b, prepend) { - var hasOwnProperty = b && b.hasOwnProperty; - for (var p in b) { - if (hasOwnProperty && !b.hasOwnProperty(p)) - continue; - if (!prepend || !(p in a)) - a[p] = b[p]; - } - return a; -} - -// meta first-level extends where: -// array + array appends -// object + object extends -// other properties replace -function extendMeta(a, b, prepend) { - var hasOwnProperty = b && b.hasOwnProperty; - for (var p in b) { - if (hasOwnProperty && !b.hasOwnProperty(p)) - continue; - var val = b[p]; - if (!(p in a)) - a[p] = val; - else if (val instanceof Array && a[p] instanceof Array) - a[p] = [].concat(prepend ? val : a[p]).concat(prepend ? a[p] : val); - else if (typeof val == 'object' && val !== null && typeof a[p] == 'object') - a[p] = extend(extend({}, a[p]), val, prepend); - else if (!prepend) - a[p] = val; - } -} - -function extendPkgConfig(pkgCfgA, pkgCfgB, pkgName, loader, warnInvalidProperties) { - for (var prop in pkgCfgB) { - if (indexOf.call(['main', 'format', 'defaultExtension', 'basePath'], prop) != -1) { - pkgCfgA[prop] = pkgCfgB[prop]; - } - else if (prop == 'map') { - extend(pkgCfgA.map = pkgCfgA.map || {}, pkgCfgB.map); - } - else if (prop == 'meta') { - extend(pkgCfgA.meta = pkgCfgA.meta || {}, pkgCfgB.meta); - } - else if (prop == 'depCache') { - for (var d in pkgCfgB.depCache) { - var dNormalized; - - if (d.substr(0, 2) == './') - dNormalized = pkgName + '/' + d.substr(2); - else - dNormalized = coreResolve.call(loader, d); - loader.depCache[dNormalized] = (loader.depCache[dNormalized] || []).concat(pkgCfgB.depCache[d]); - } - } - else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 && - (!pkgCfgB.hasOwnProperty || pkgCfgB.hasOwnProperty(prop))) { - warn.call(loader, '"' + prop + '" is not a valid package configuration option in package ' + pkgName); - } - } -} - -// deeply-merge (to first level) config with any existing package config -function setPkgConfig(loader, pkgName, cfg, prependConfig) { - var pkg; - - // first package is config by reference for fast path, cloned after that - if (!loader.packages[pkgName]) { - pkg = loader.packages[pkgName] = cfg; - } - else { - var basePkg = loader.packages[pkgName]; - pkg = loader.packages[pkgName] = {}; - - extendPkgConfig(pkg, prependConfig ? cfg : basePkg, pkgName, loader, prependConfig); - extendPkgConfig(pkg, prependConfig ? basePkg : cfg, pkgName, loader, !prependConfig); - } - - // main object becomes main map - if (typeof pkg.main == 'object') { - pkg.map = pkg.map || {}; - pkg.map['./@main'] = pkg.main; - pkg.main['default'] = pkg.main['default'] || './'; - pkg.main = '@main'; - } - - return pkg; -} - -function warn(msg) { - if (this.warnings && typeof console != 'undefined' && console.warn) - console.warn(msg); -} - -function createInstantiate (load, result) { - load.metadata.entry = createEntry(); - load.metadata.entry.execute = function() { - return result; - } - load.metadata.entry.deps = []; - load.metadata.format = 'defined'; -} -// we define a __exec for globally-scoped execution -// used by module format implementations -var __exec; - -(function() { - - var hasBuffer = typeof Buffer != 'undefined'; - try { - if (hasBuffer && new Buffer('a').toString('base64') != 'YQ==') - hasBuffer = false; - } - catch(e) { - hasBuffer = false; - } - - var sourceMapPrefix = '\n//# sourceMappingURL=data:application/json;base64,'; - function inlineSourceMap(sourceMapString) { - if (hasBuffer) - return sourceMapPrefix + new Buffer(sourceMapString).toString('base64'); - else if (typeof btoa != 'undefined') - return sourceMapPrefix + btoa(unescape(encodeURIComponent(sourceMapString))); - else - return ''; - } - - function getSource(load, wrap) { - var lastLineIndex = load.source.lastIndexOf('\n'); - - // wrap ES formats with a System closure for System global encapsulation - if (load.metadata.format == 'global') - wrap = false; - - var sourceMap = load.metadata.sourceMap; - if (sourceMap) { - if (typeof sourceMap != 'object') - throw new TypeError('load.metadata.sourceMap must be set to an object.'); - - sourceMap = JSON.stringify(sourceMap); - } - - return (wrap ? '(function(System, SystemJS) {' : '') + load.source + (wrap ? '\n})(System, System);' : '') - // adds the sourceURL comment if not already present - + (load.source.substr(lastLineIndex, 15) != '\n//# sourceURL=' - ? '\n//# sourceURL=' + load.address + (sourceMap ? '!transpiled' : '') : '') - // add sourceMappingURL if load.metadata.sourceMap is set - + (sourceMap && inlineSourceMap(sourceMap) || ''); - } - - var curLoad; - - // System.register, System.registerDynamic, AMD define pipeline - // if currently evalling code here, immediately reduce the registered entry against the load record - hook('pushRegister_', function() { - return function(register) { - if (!curLoad) - return false; - - this.reduceRegister_(curLoad, register); - return true; - }; - }); - - // System clobbering protection (mostly for Traceur) - var curSystem; - var callCounter = 0; - function preExec(loader, load) { - curLoad = load; - if (callCounter++ == 0) - curSystem = __global.System; - __global.System = __global.SystemJS = loader; - } - function postExec() { - if (--callCounter == 0) - __global.System = __global.SystemJS = curSystem; - curLoad = undefined; - } - - var useVm; - var vm; - __exec = function(load) { - if (!load.source) - return; - if ((load.metadata.integrity || load.metadata.nonce) && supportsScriptExec) - return scriptExec.call(this, load); - try { - preExec(this, load); - curLoad = load; - // global scoped eval for node (avoids require scope leak) - if (!vm && this._nodeRequire) { - vm = this._nodeRequire('vm'); - useVm = vm.runInThisContext("typeof System !== 'undefined' && System") === this; - } - if (useVm) - vm.runInThisContext(getSource(load, true), { filename: load.address + (load.metadata.sourceMap ? '!transpiled' : '') }); - else - (0, eval)(getSource(load, true)); - postExec(); - } - catch(e) { - postExec(); - throw addToError(e, 'Evaluating ' + load.address); - } - }; - - var supportsScriptExec = false; - if (isBrowser && typeof document != 'undefined' && document.getElementsByTagName) { - if (!(window.chrome && window.chrome.extension || navigator.userAgent.match(/^Node\.js/))) - supportsScriptExec = true; - } - - // script execution via injecting a script tag into the page - // this allows CSP integrity and nonce to be set for CSP environments - var head; - function scriptExec(load) { - if (!head) - head = document.head || document.body || document.documentElement; - - var script = document.createElement('script'); - script.text = getSource(load, false); - var onerror = window.onerror; - var e; - window.onerror = function(_e) { - e = addToError(_e, 'Evaluating ' + load.address); - if (onerror) - onerror.apply(this, arguments); - } - preExec(this, load); - - if (load.metadata.integrity) - script.setAttribute('integrity', load.metadata.integrity); - if (load.metadata.nonce) - script.setAttribute('nonce', load.metadata.nonce); - - head.appendChild(script); - head.removeChild(script); - postExec(); - window.onerror = onerror; - if (e) - throw e; - } - -})(); -function readMemberExpression(p, value) { - var pParts = p.split('.'); - while (pParts.length) - value = value[pParts.shift()]; - return value; -} - -function getMapMatch(map, name) { - var bestMatch, bestMatchLength = 0; - - for (var p in map) { - if (name.substr(0, p.length) == p && (name.length == p.length || name[p.length] == '/')) { - var curMatchLength = p.split('/').length; - if (curMatchLength <= bestMatchLength) - continue; - bestMatch = p; - bestMatchLength = curMatchLength; - } - } - - return bestMatch; -} - -function prepareBaseURL(loader) { - // ensure baseURl is fully normalized - if (this._loader.baseURL !== this.baseURL) { - if (this.baseURL[this.baseURL.length - 1] != '/') - this.baseURL += '/'; - - this._loader.baseURL = this.baseURL = new URL(this.baseURL, baseURIObj).href; - } -} - -var envModule; -function setProduction(isProduction, isBuilder) { - this.set('@system-env', envModule = this.newModule({ - browser: isBrowser, - node: !!this._nodeRequire, - production: !isBuilder && isProduction, - dev: isBuilder || !isProduction, - build: isBuilder, - 'default': true - })); -} - -hookConstructor(function(constructor) { - return function() { - constructor.call(this); - - // support baseURL - this.baseURL = baseURI; - - // support map and paths - this.map = {}; - - // make the location of the system.js script accessible - if (typeof $__curScript != 'undefined') - this.scriptSrc = $__curScript.src; - - // global behaviour flags - this.warnings = false; - this.defaultJSExtensions = false; - this.pluginFirst = false; - this.loaderErrorStack = false; - - // by default load ".json" files as json - // leading * meta doesn't need normalization - // NB add this in next breaking release - // this.meta['*.json'] = { format: 'json' }; - - // support the empty module, as a concept - this.set('@empty', this.newModule({})); - - setProduction.call(this, false, false); - }; -}); - -// include the node require since we're overriding it -if (typeof require != 'undefined' && typeof process != 'undefined' && !process.browser) - SystemJSLoader.prototype._nodeRequire = require; - -/* - Core SystemJS Normalization - - If a name is relative, we apply URL normalization to the page - If a name is an absolute URL, we leave it as-is - - Plain names (neither of the above) run through the map and paths - normalization phases. - - The paths normalization phase applies last (paths extension), which - defines the `decanonicalize` function and normalizes everything into - a URL. - */ - -var parentModuleContext; -function getNodeModule(name, baseURL) { - if (!isPlain(name)) - throw new Error('Node module ' + name + ' can\'t be loaded as it is not a package require.'); - - if (!parentModuleContext) { - var Module = this._nodeRequire('module'); - var base = baseURL.substr(isWindows ? 8 : 7); - parentModuleContext = new Module(base); - parentModuleContext.paths = Module._nodeModulePaths(base); - } - return parentModuleContext.require(name); -} - -function coreResolve(name, parentName) { - // standard URL resolution - if (isRel(name)) - return urlResolve(name, parentName); - else if (isAbsolute(name)) - return name; - - // plain names not starting with './', '://' and '/' go through custom resolution - var mapMatch = getMapMatch(this.map, name); - - if (mapMatch) { - name = this.map[mapMatch] + name.substr(mapMatch.length); - - if (isRel(name)) - return urlResolve(name); - else if (isAbsolute(name)) - return name; - } - - if (this.has(name)) - return name; - - // dynamically load node-core modules when requiring `@node/fs` for example - if (name.substr(0, 6) == '@node/') { - if (!this._nodeRequire) - throw new TypeError('Error loading ' + name + '. Can only load node core modules in Node.'); - if (this.builder) - this.set(name, this.newModule({})); - else - this.set(name, this.newModule(getESModule(getNodeModule.call(this, name.substr(6), this.baseURL)))); - return name; - } - - // prepare the baseURL to ensure it is normalized - prepareBaseURL.call(this); - - return applyPaths(this, name) || this.baseURL + name; -} - -hook('normalize', function(normalize) { - return function(name, parentName, skipExt) { - var resolved = coreResolve.call(this, name, parentName); - if (this.defaultJSExtensions && !skipExt && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved)) - resolved += '.js'; - return resolved; - }; -}); - -// percent encode just '#' in urls if using HTTP requests -var httpRequest = typeof XMLHttpRequest != 'undefined'; -hook('locate', function(locate) { - return function(load) { - return Promise.resolve(locate.call(this, load)) - .then(function(address) { - if (httpRequest) - return address.replace(/#/g, '%23'); - return address; - }); - }; -}); - -/* - * Fetch with authorization - */ -hook('fetch', function() { - return function(load) { - return new Promise(function(resolve, reject) { - fetchTextFromURL(load.address, load.metadata.authorization, resolve, reject); - }); - }; -}); - -/* - __useDefault - - When a module object looks like: - newModule( - __useDefault: true, - default: 'some-module' - }) - - Then importing that module provides the 'some-module' - result directly instead of the full module. - - Useful for eg module.exports = function() {} -*/ -hook('import', function(systemImport) { - return function(name, parentName, parentAddress) { - if (parentName && parentName.name) - warn.call(this, 'SystemJS.import(name, { name: parentName }) is deprecated for SystemJS.import(name, parentName), while importing ' + name + ' from ' + parentName.name); - return systemImport.call(this, name, parentName, parentAddress).then(function(module) { - return module.__useDefault ? module['default'] : module; - }); - }; -}); - -/* - * Allow format: 'detect' meta to enable format detection - */ -hook('translate', function(systemTranslate) { - return function(load) { - if (load.metadata.format == 'detect') - load.metadata.format = undefined; - return systemTranslate.apply(this, arguments); - }; -}); - - -/* - * JSON format support - * - * Supports loading JSON files as a module format itself - * - * Usage: - * - * SystemJS.config({ - * meta: { - * '*.json': { format: 'json' } - * } - * }); - * - * Module is returned as if written: - * - * export default {JSON} - * - * No named exports are provided - * - * Files ending in ".json" are treated as json automatically by SystemJS - */ -hook('instantiate', function(instantiate) { - return function(load) { - if (load.metadata.format == 'json' && !this.builder) { - var entry = load.metadata.entry = createEntry(); - entry.deps = []; - entry.execute = function() { - try { - return JSON.parse(load.source); - } - catch(e) { - throw new Error("Invalid JSON file " + load.name); - } - }; - } - }; -}) - -/* - Extend config merging one deep only - - loader.config({ - some: 'random', - config: 'here', - deep: { - config: { too: 'too' } - } - }); - - <=> - - loader.some = 'random'; - loader.config = 'here' - loader.deep = loader.deep || {}; - loader.deep.config = { too: 'too' }; - - - Normalizes meta and package configs allowing for: - - SystemJS.config({ - meta: { - './index.js': {} - } - }); - - To become - - SystemJS.meta['https://thissite.com/index.js'] = {}; - - For easy normalization canonicalization with latest URL support. - -*/ -function envSet(loader, cfg, envCallback) { - if (envModule.browser && cfg.browserConfig) - envCallback(cfg.browserConfig); - if (envModule.node && cfg.nodeConfig) - envCallback(cfg.nodeConfig); - if (envModule.dev && cfg.devConfig) - envCallback(cfg.devConfig); - if (envModule.build && cfg.buildConfig) - envCallback(cfg.buildConfig); - if (envModule.production && cfg.productionConfig) - envCallback(cfg.productionConfig); -} - -SystemJSLoader.prototype.getConfig = function(name) { - var cfg = {}; - var loader = this; - for (var p in loader) { - if (loader.hasOwnProperty && !loader.hasOwnProperty(p) || p in SystemJSLoader.prototype && p != 'transpiler') - continue; - if (indexOf.call(['_loader', 'amdDefine', 'amdRequire', 'defined', 'failed', 'version', 'loads'], p) == -1) - cfg[p] = loader[p]; - } - cfg.production = envModule.production; - return cfg; -}; - -var curCurScript; -SystemJSLoader.prototype.config = function(cfg, isEnvConfig) { - var loader = this; - - if ('loaderErrorStack' in cfg) { - curCurScript = $__curScript; - if (cfg.loaderErrorStack) - $__curScript = undefined; - else - $__curScript = curCurScript; - } - - if ('warnings' in cfg) - loader.warnings = cfg.warnings; - - // transpiler deprecation path - if (cfg.transpilerRuntime === false) - loader._loader.loadedTranspilerRuntime = true; - - if ('production' in cfg || 'build' in cfg) - setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build)); - - if (!isEnvConfig) { - // if using nodeConfig / browserConfig / productionConfig, take baseURL from there - // these exceptions will be unnecessary when we can properly implement config queuings - var baseURL; - envSet(loader, cfg, function(cfg) { - baseURL = baseURL || cfg.baseURL; - }); - baseURL = baseURL || cfg.baseURL; - - // always configure baseURL first - if (baseURL) { - var hasConfig = false; - function checkHasConfig(obj) { - for (var p in obj) - if (obj.hasOwnProperty(p)) - return true; - } - if (checkHasConfig(loader.packages) || checkHasConfig(loader.meta) || checkHasConfig(loader.depCache) || checkHasConfig(loader.bundles) || checkHasConfig(loader.packageConfigPaths)) - throw new TypeError('Incorrect configuration order. The baseURL must be configured with the first SystemJS.config call.'); - - this.baseURL = baseURL; - prepareBaseURL.call(this); - } - - if (cfg.paths) - extend(loader.paths, cfg.paths); - - envSet(loader, cfg, function(cfg) { - if (cfg.paths) - extend(loader.paths, cfg.paths); - }); - - // warn on wildcard path deprecations - if (this.warnings) { - for (var p in loader.paths) - if (p.indexOf('*') != -1) - warn.call(loader, 'Paths configuration "' + p + '" -> "' + loader.paths[p] + '" uses wildcards which are being deprecated for just leaving a trailing "/" to indicate folder paths.'); - } - } - - if (cfg.defaultJSExtensions) { - loader.defaultJSExtensions = cfg.defaultJSExtensions; - warn.call(loader, 'The defaultJSExtensions configuration option is deprecated, use packages configuration instead.'); - } - - if (cfg.pluginFirst) - loader.pluginFirst = cfg.pluginFirst; - - if (cfg.map) { - for (var p in cfg.map) { - var v = cfg.map[p]; - - // object map backwards-compat into packages configuration - if (typeof v !== 'string') { - var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js'; - var prop = loader.decanonicalize(p); - if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js') - prop = prop.substr(0, prop.length - 3); - - // if a package main, revert it - var pkgMatch = ''; - for (var pkg in loader.packages) { - if (prop.substr(0, pkg.length) == pkg - && (!prop[pkg.length] || prop[pkg.length] == '/') - && pkgMatch.split('/').length < pkg.split('/').length) - pkgMatch = pkg; - } - if (pkgMatch && loader.packages[pkgMatch].main) - prop = prop.substr(0, prop.length - loader.packages[pkgMatch].main.length - 1); - - var pkg = loader.packages[prop] = loader.packages[prop] || {}; - pkg.map = v; - } - else { - loader.map[p] = v; - } - } - } - - if (cfg.packageConfigPaths) { - var packageConfigPaths = []; - for (var i = 0; i < cfg.packageConfigPaths.length; i++) { - var path = cfg.packageConfigPaths[i]; - var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/')); - var normalized = coreResolve.call(loader, path.substr(0, packageLength)); - packageConfigPaths[i] = normalized + path.substr(packageLength); - } - loader.packageConfigPaths = packageConfigPaths; - } - - if (cfg.bundles) { - for (var p in cfg.bundles) { - var bundle = []; - for (var i = 0; i < cfg.bundles[p].length; i++) { - var defaultJSExtension = loader.defaultJSExtensions && cfg.bundles[p][i].substr(cfg.bundles[p][i].length - 3, 3) != '.js'; - var normalizedBundleDep = loader.decanonicalize(cfg.bundles[p][i]); - if (defaultJSExtension && normalizedBundleDep.substr(normalizedBundleDep.length - 3, 3) == '.js') - normalizedBundleDep = normalizedBundleDep.substr(0, normalizedBundleDep.length - 3); - bundle.push(normalizedBundleDep); - } - loader.bundles[p] = bundle; - } - } - - if (cfg.packages) { - for (var p in cfg.packages) { - if (p.match(/^([^\/]+:)?\/\/$/)) - throw new TypeError('"' + p + '" is not a valid package name.'); - - var prop = coreResolve.call(loader, p); - - // allow trailing slash in packages - if (prop[prop.length - 1] == '/') - prop = prop.substr(0, prop.length - 1); - - setPkgConfig(loader, prop, cfg.packages[p], false); - } - } - - for (var c in cfg) { - var v = cfg[c]; - - if (indexOf.call(['baseURL', 'map', 'packages', 'bundles', 'paths', 'warnings', 'packageConfigPaths', - 'loaderErrorStack', 'browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'], c) != -1) - continue; - - if (typeof v != 'object' || v instanceof Array) { - loader[c] = v; - } - else { - loader[c] = loader[c] || {}; - - for (var p in v) { - // base-level wildcard meta does not normalize to retain catch-all quality - if (c == 'meta' && p[0] == '*') { - extend(loader[c][p] = loader[c][p] || {}, v[p]); - } - else if (c == 'meta') { - // meta can go through global map, with defaultJSExtensions adding - var resolved = coreResolve.call(loader, p); - if (loader.defaultJSExtensions && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved)) - resolved += '.js'; - extend(loader[c][resolved] = loader[c][resolved] || {}, v[p]); - } - else if (c == 'depCache') { - var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js'; - var prop = loader.decanonicalize(p); - if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js') - prop = prop.substr(0, prop.length - 3); - loader[c][prop] = [].concat(v[p]); - } - else { - loader[c][p] = v[p]; - } - } - } - } - - envSet(loader, cfg, function(cfg) { - loader.config(cfg, true); - }); -}; -/* - * Package Configuration Extension - * - * Example: - * - * SystemJS.packages = { - * jquery: { - * main: 'index.js', // when not set, package name is requested directly - * format: 'amd', - * defaultExtension: 'ts', // defaults to 'js', can be set to false - * modules: { - * '*.ts': { - * loader: 'typescript' - * }, - * 'vendor/sizzle.js': { - * format: 'global' - * } - * }, - * map: { - * // map internal require('sizzle') to local require('./vendor/sizzle') - * sizzle: './vendor/sizzle.js', - * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js' - * './vendor/another.js': './another/index.js', - * // test.js / test -> lib/test.js - * './test.js': './lib/test.js', - * - * // environment-specific map configurations - * './index.js': { - * '~browser': './index-node.js', - * './custom-condition.js|~export': './index-custom.js' - * } - * }, - * // allows for setting package-prefixed depCache - * // keys are normalized module names relative to the package itself - * depCache: { - * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js - * './index.js': ['./test'], - * './test.js': ['external-dep'], - * 'external-dep/path.js': ['./another.js'] - * } - * } - * }; - * - * Then: - * import 'jquery' -> jquery/index.js - * import 'jquery/submodule' -> jquery/submodule.js - * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript - * import 'jquery/vendor/another' -> another/index.js - * - * Detailed Behaviours - * - main can have a leading "./" can be added optionally - * - map and defaultExtension are applied to the main - * - defaultExtension adds the extension only if the exact extension is not present - * - defaultJSExtensions applies after map when defaultExtension is not set - * - if a meta value is available for a module, map and defaultExtension are skipped - * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub) - * - condition module map is '@env' module in package or '@system-env' globally - * - map targets support conditional interpolation ('./x': './x.#{|env}.js') - * - internal package map targets cannot use boolean conditionals - * - * Package Configuration Loading - * - * Not all packages may already have their configuration present in the System config - * For these cases, a list of packageConfigPaths can be provided, which when matched against - * a request, will first request a ".json" file by the package name to derive the package - * configuration from. This allows dynamic loading of non-predetermined code, a key use - * case in SystemJS. - * - * Example: - * - * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json']; - * - * // will first request 'packages/new-package/package.json' for the package config - * // before completing the package request to 'packages/new-package/path' - * SystemJS.import('packages/new-package/path'); - * - * // will first request 'packages/test/package.json' before the main - * SystemJS.import('packages/test'); - * - * When a package matches packageConfigPaths, it will always send a config request for - * the package configuration. - * The package name itself is taken to be the match up to and including the last wildcard - * or trailing slash. - * The most specific package config path will be used. - * Any existing package configurations for the package will deeply merge with the - * package config, with the existing package configurations taking preference. - * To opt-out of the package configuration request for a package that matches - * packageConfigPaths, use the { configured: true } package config option. - * - */ -(function() { - - hookConstructor(function(constructor) { - return function() { - constructor.call(this); - this.packages = {}; - this.packageConfigPaths = []; - }; - }); - - function getPackage(loader, normalized) { - // use most specific package - var curPkg, curPkgLen = 0, pkgLen; - for (var p in loader.packages) { - if (normalized.substr(0, p.length) === p && (normalized.length === p.length || normalized[p.length] === '/')) { - pkgLen = p.split('/').length; - if (pkgLen > curPkgLen) { - curPkg = p; - curPkgLen = pkgLen; - } - } - } - return curPkg; - } - - function addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions) { - // don't apply extensions to folders or if defaultExtension = false - if (!subPath || subPath[subPath.length - 1] == '/' || skipExtensions || pkg.defaultExtension === false) - return subPath; - - var metaMatch = false; - - // exact meta or meta with any content after the last wildcard skips extension - if (pkg.meta) - getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) { - if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) - return metaMatch = true; - }); - - // exact global meta or meta with any content after the last wildcard skips extension - if (!metaMatch && loader.meta) - getMetaMatches(loader.meta, pkgName + '/' + subPath, function(metaPattern, matchMeta, matchDepth) { - if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) - return metaMatch = true; - }); - - if (metaMatch) - return subPath; - - // work out what the defaultExtension is and add if not there already - // NB reconsider if default should really be ".js"? - var defaultExtension = '.' + (pkg.defaultExtension || 'js'); - if (subPath.substr(subPath.length - defaultExtension.length) != defaultExtension) - return subPath + defaultExtension; - else - return subPath; - } - - function applyPackageConfigSync(loader, pkg, pkgName, subPath, skipExtensions) { - // main - if (!subPath) { - if (pkg.main) - subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main; - // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js') - else - // NB can add a default package main convention here when defaultJSExtensions is deprecated - // if it becomes internal to the package then it would no longer be an exit path - return pkgName + (loader.defaultJSExtensions ? '.js' : ''); - } - - // map config checking without then with extensions - if (pkg.map) { - var mapPath = './' + subPath; - - var mapMatch = getMapMatch(pkg.map, mapPath); - - // we then check map with the default extension adding - if (!mapMatch) { - mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions); - if (mapPath != './' + subPath) - mapMatch = getMapMatch(pkg.map, mapPath); - } - if (mapMatch) { - var mapped = doMapSync(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions); - if (mapped) - return mapped; - } - } - - // normal package resolution - return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions); - } - - function validMapping(mapMatch, mapped, pkgName, path) { - // disallow internal to subpath maps - if (mapMatch == '.') - throw new Error('Package ' + pkgName + ' has a map entry for "." which is not permitted.'); - - // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps - // but only if the path is exactly ./x and not ./x/z - if (mapped.substr(0, mapMatch.length) == mapMatch && path.length > mapMatch.length) - return false; - - return true; - } - - function doMapSync(loader, pkg, pkgName, mapMatch, path, skipExtensions) { - if (path[path.length - 1] == '/') - path = path.substr(0, path.length - 1); - var mapped = pkg.map[mapMatch]; - - if (typeof mapped == 'object') - throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgName); - - if (!validMapping(mapMatch, mapped, pkgName, path) || typeof mapped != 'string') - return; - - // package map to main / base-level - if (mapped == '.') - mapped = pkgName; - - // internal package map - else if (mapped.substr(0, 2) == './') - return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions); - - // external map reference - return loader.normalizeSync(mapped + path.substr(mapMatch.length), pkgName + '/'); - } - - function applyPackageConfig(loader, pkg, pkgName, subPath, skipExtensions) { - // main - if (!subPath) { - if (pkg.main) - subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main; - // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js') - else - // NB can add a default package main convention here when defaultJSExtensions is deprecated - // if it becomes internal to the package then it would no longer be an exit path - return Promise.resolve(pkgName + (loader.defaultJSExtensions ? '.js' : '')); - } - - // map config checking without then with extensions - var mapPath, mapMatch; - - if (pkg.map) { - mapPath = './' + subPath; - mapMatch = getMapMatch(pkg.map, mapPath); - - // we then check map with the default extension adding - if (!mapMatch) { - mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions); - if (mapPath != './' + subPath) - mapMatch = getMapMatch(pkg.map, mapPath); - } - } - - return (mapMatch ? doMap(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions) : Promise.resolve()) - .then(function(mapped) { - if (mapped) - return Promise.resolve(mapped); - - // normal package resolution / fallback resolution for no conditional match - return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions)); - }); - } - - function doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions) { - // NB the interpolation cases should strictly skip subsequent interpolation - // package map to main / base-level - if (mapped == '.') - mapped = pkgName; - - // internal package map - else if (mapped.substr(0, 2) == './') - return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions)) - .then(function(name) { - return interpolateConditional.call(loader, name, pkgName + '/'); - }); - - // external map reference - return loader.normalize(mapped + path.substr(mapMatch.length), pkgName + '/'); - } - - function doMap(loader, pkg, pkgName, mapMatch, path, skipExtensions) { - if (path[path.length - 1] == '/') - path = path.substr(0, path.length - 1); - - var mapped = pkg.map[mapMatch]; - - if (typeof mapped == 'string') { - if (!validMapping(mapMatch, mapped, pkgName, path)) - return Promise.resolve(); - return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions); - } - - // we use a special conditional syntax to allow the builder to handle conditional branch points further - if (loader.builder) - return Promise.resolve(pkgName + '/#:' + path); - - // we load all conditions upfront - var conditionPromises = []; - var conditions = []; - for (var e in mapped) { - var c = parseCondition(e); - conditions.push({ - condition: c, - map: mapped[e] - }); - conditionPromises.push(loader['import'](c.module, pkgName)); - } - - // map object -> conditional map - return Promise.all(conditionPromises) - .then(function(conditionValues) { - // first map condition to match is used - for (var i = 0; i < conditions.length; i++) { - var c = conditions[i].condition; - var value = readMemberExpression(c.prop, conditionValues[i]); - if (!c.negate && value || c.negate && !value) - return conditions[i].map; - } - }) - .then(function(mapped) { - if (mapped) { - if (!validMapping(mapMatch, mapped, pkgName, path)) - return; - return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions); - } - - // no environment match -> fallback to original subPath by returning undefined - }); - } - - // normalizeSync = decanonicalize + package resolution - SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalize; - - // decanonicalize must JUST handle package defaultExtension: false case when defaultJSExtensions is set - // to be deprecated! - hook('decanonicalize', function(decanonicalize) { - return function(name, parentName) { - if (this.builder) - return decanonicalize.call(this, name, parentName, true); - - var decanonicalized = decanonicalize.call(this, name, parentName, false); - - if (!this.defaultJSExtensions) - return decanonicalized; - - var pkgName = getPackage(this, decanonicalized); - - var pkg = this.packages[pkgName]; - var defaultExtension = pkg && pkg.defaultExtension; - - if (defaultExtension == undefined && pkg && pkg.meta) - getMetaMatches(pkg.meta, decanonicalized.substr(pkgName), function(metaPattern, matchMeta, matchDepth) { - if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) { - defaultExtension = false; - return true; - } - }); - - if ((defaultExtension === false || defaultExtension && defaultExtension != '.js') && name.substr(name.length - 3, 3) != '.js' && decanonicalized.substr(decanonicalized.length - 3, 3) == '.js') - decanonicalized = decanonicalized.substr(0, decanonicalized.length - 3); - - return decanonicalized; - }; - }); - - hook('normalizeSync', function(normalizeSync) { - return function(name, parentName, isPlugin) { - var loader = this; - isPlugin = isPlugin === true; - - // apply contextual package map first - // (we assume the parent package config has already been loaded) - if (parentName) - var parentPackageName = getPackage(loader, parentName) || - loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' && - getPackage(loader, parentName.substr(0, parentName.length - 3)); - - var parentPackage = parentPackageName && loader.packages[parentPackageName]; - - // ignore . since internal maps handled by standard package resolution - if (parentPackage && name[0] != '.') { - var parentMap = parentPackage.map; - var parentMapMatch = parentMap && getMapMatch(parentMap, name); - - if (parentMapMatch && typeof parentMap[parentMapMatch] == 'string') { - var mapped = doMapSync(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin); - if (mapped) - return mapped; - } - } - - var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js'; - - // apply map, core, paths, contextual package map - var normalized = normalizeSync.call(loader, name, parentName, false); - - // undo defaultJSExtension - if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js') - defaultJSExtension = false; - if (defaultJSExtension) - normalized = normalized.substr(0, normalized.length - 3); - - var pkgConfigMatch = getPackageConfigMatch(loader, normalized); - var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized); - - if (!pkgName) - return normalized + (defaultJSExtension ? '.js' : ''); - - var subPath = normalized.substr(pkgName.length + 1); - - return applyPackageConfigSync(loader, loader.packages[pkgName] || {}, pkgName, subPath, isPlugin); - }; - }); - - hook('normalize', function(normalize) { - return function(name, parentName, isPlugin) { - var loader = this; - isPlugin = isPlugin === true; - - return Promise.resolve() - .then(function() { - // apply contextual package map first - // (we assume the parent package config has already been loaded) - if (parentName) - var parentPackageName = getPackage(loader, parentName) || - loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' && - getPackage(loader, parentName.substr(0, parentName.length - 3)); - - var parentPackage = parentPackageName && loader.packages[parentPackageName]; - - // ignore . since internal maps handled by standard package resolution - if (parentPackage && name.substr(0, 2) != './') { - var parentMap = parentPackage.map; - var parentMapMatch = parentMap && getMapMatch(parentMap, name); - - if (parentMapMatch) - return doMap(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin); - } - - return Promise.resolve(); - }) - .then(function(mapped) { - if (mapped) - return mapped; - - var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js'; - - // apply map, core, paths, contextual package map - var normalized = normalize.call(loader, name, parentName, false); - - // undo defaultJSExtension - if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js') - defaultJSExtension = false; - if (defaultJSExtension) - normalized = normalized.substr(0, normalized.length - 3); - - var pkgConfigMatch = getPackageConfigMatch(loader, normalized); - var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized); - - if (!pkgName) - return Promise.resolve(normalized + (defaultJSExtension ? '.js' : '')); - - var pkg = loader.packages[pkgName]; - - // if package is already configured or not a dynamic config package, use existing package config - var isConfigured = pkg && (pkg.configured || !pkgConfigMatch); - return (isConfigured ? Promise.resolve(pkg) : loadPackageConfigPath(loader, pkgName, pkgConfigMatch.configPath)) - .then(function(pkg) { - var subPath = normalized.substr(pkgName.length + 1); - - return applyPackageConfig(loader, pkg, pkgName, subPath, isPlugin); - }); - }); - }; - }); - - // check if the given normalized name matches a packageConfigPath - // if so, loads the config - var packageConfigPaths = {}; - - // data object for quick checks against package paths - function createPkgConfigPathObj(path) { - var lastWildcard = path.lastIndexOf('*'); - var length = Math.max(lastWildcard + 1, path.lastIndexOf('/')); - return { - length: length, - regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '[^\\/]+') + ')(\\/|$)'), - wildcard: lastWildcard != -1 - }; - } - - // most specific match wins - function getPackageConfigMatch(loader, normalized) { - var pkgName, exactMatch = false, configPath; - for (var i = 0; i < loader.packageConfigPaths.length; i++) { - var packageConfigPath = loader.packageConfigPaths[i]; - var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath)); - if (normalized.length < p.length) - continue; - var match = normalized.match(p.regEx); - if (match && (!pkgName || (!(exactMatch && p.wildcard) && pkgName.length < match[1].length))) { - pkgName = match[1]; - exactMatch = !p.wildcard; - configPath = pkgName + packageConfigPath.substr(p.length); - } - } - - if (!pkgName) - return; - - return { - packageName: pkgName, - configPath: configPath - }; - } - - function loadPackageConfigPath(loader, pkgName, pkgConfigPath) { - var configLoader = loader.pluginLoader || loader; - - // NB remove this when json is default - (configLoader.meta[pkgConfigPath] = configLoader.meta[pkgConfigPath] || {}).format = 'json'; - configLoader.meta[pkgConfigPath].loader = null; - - return configLoader.load(pkgConfigPath) - .then(function() { - var cfg = configLoader.get(pkgConfigPath)['default']; - - // support "systemjs" prefixing - if (cfg.systemjs) - cfg = cfg.systemjs; - - // modules backwards compatibility - if (cfg.modules) { - cfg.meta = cfg.modules; - warn.call(loader, 'Package config file ' + pkgConfigPath + ' is configured with "modules", which is deprecated as it has been renamed to "meta".'); - } - - return setPkgConfig(loader, pkgName, cfg, true); - }); - } - - function getMetaMatches(pkgMeta, subPath, matchFn) { - // wildcard meta - var meta = {}; - var wildcardIndex; - for (var module in pkgMeta) { - // allow meta to start with ./ for flexibility - var dotRel = module.substr(0, 2) == './' ? './' : ''; - if (dotRel) - module = module.substr(2); - - wildcardIndex = module.indexOf('*'); - if (wildcardIndex === -1) - continue; - - if (module.substr(0, wildcardIndex) == subPath.substr(0, wildcardIndex) - && module.substr(wildcardIndex + 1) == subPath.substr(subPath.length - module.length + wildcardIndex + 1)) { - // alow match function to return true for an exit path - if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length)) - return; - } - } - // exact meta - var exactMeta = pkgMeta[subPath] && pkgMeta.hasOwnProperty && pkgMeta.hasOwnProperty(subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath]; - if (exactMeta) - matchFn(exactMeta, exactMeta, 0); - } - - hook('locate', function(locate) { - return function(load) { - var loader = this; - return Promise.resolve(locate.call(this, load)) - .then(function(address) { - var pkgName = getPackage(loader, load.name); - if (pkgName) { - var pkg = loader.packages[pkgName]; - var subPath = load.name.substr(pkgName.length + 1); - - var meta = {}; - if (pkg.meta) { - var bestDepth = 0; - - // NB support a main shorthand in meta here? - getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) { - if (matchDepth > bestDepth) - bestDepth = matchDepth; - extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth); - }); - - extendMeta(load.metadata, meta); - } - - // format - if (pkg.format && !load.metadata.loader) - load.metadata.format = load.metadata.format || pkg.format; - } - - return address; - }); - }; - }); - -})(); -/* - * Script tag fetch - * - * When load.metadata.scriptLoad is true, we load via script tag injection. - */ -(function() { - - if (typeof document != 'undefined') - var head = document.getElementsByTagName('head')[0]; - - var curSystem; - var curRequire; - - // if doing worker executing, this is set to the load record being executed - var workerLoad = null; - - // interactive mode handling method courtesy RequireJS - var ieEvents = head && (function() { - var s = document.createElement('script'); - var isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]'; - return s.attachEvent && !(s.attachEvent.toString && s.attachEvent.toString().indexOf('[native code') < 0) && !isOpera; - })(); - - // IE interactive-only part - // we store loading scripts array as { script: