├── .gitignore ├── README.md ├── app.html ├── dist-esm ├── components.js ├── main.js └── render.js ├── dist-system ├── components.js ├── main.js └── render.js ├── modules-bootstrap.js ├── node_modules └── systemjs │ └── dist │ ├── system-production.js │ ├── system-production.js.map │ ├── system-production.src.js │ ├── system-production.src.js.map │ ├── system.js │ ├── system.js.map │ ├── system.src.js │ └── system.src.js.map ├── package.json └── src ├── components.js ├── main.js └── render.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # <script type="module"> Isomorphic browser modules workflow 2 | 3 | This project was created as a follow-up to discussions around how to load ES modules 4 | in modern browsers, while providing a fallback for older browsers that only 5 | support scripts. 6 | 7 | The approach here is to use a `modules-bootstrap.js` that is first attempted to load 8 | as a module and second as a script. 9 | 10 | Custom attributes on the scripts can then be used to point to the correct actual 11 | main entry points to be loaded once we know which loading mechanism to use. 12 | 13 | ### Demo 14 | 15 | Clone the repo and open `app.html` here when running a web server. 16 | 17 | In the latest Safari Technology Preview release with ES modules support, it will use 18 | the ES modules code, while in older browsers it will fallback to SystemJS production and 19 | System.register module format loading. 20 | 21 | To change the code and run a new build use `npm install && npm run build`. 22 | 23 | ### Bootstrap Explained 24 | 25 | The file `app.html` uses the following HTML for this bootstrap: 26 | 27 | ```html 28 | 29 | 30 | ``` 31 | 32 | When ` 4 | 5 | -------------------------------------------------------------------------------- /dist-esm/components.js: -------------------------------------------------------------------------------- 1 | export function homepageComponent (opts) { 2 | return `

${opts.message}

`; 3 | } 4 | -------------------------------------------------------------------------------- /dist-esm/main.js: -------------------------------------------------------------------------------- 1 | import { homepageComponent } from './components.js'; 2 | import { render } from './render.js'; 3 | 4 | render(homepageComponent({ 5 | message: `This application is rendered using 6 | ${self.__supportsScriptTypeModule ? 'ES modules' : ' System.register scripts'}.` 7 | })); 8 | -------------------------------------------------------------------------------- /dist-esm/render.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Eat your heart out React. 3 | */ 4 | export function render (html) { 5 | document.body.innerHTML = html; 6 | } 7 | -------------------------------------------------------------------------------- /dist-system/components.js: -------------------------------------------------------------------------------- 1 | System.register([], function (_export, _context) { 2 | "use strict"; 3 | 4 | function homepageComponent(opts) { 5 | return `

${ opts.message }

`; 6 | } 7 | 8 | _export("homepageComponent", homepageComponent); 9 | 10 | return { 11 | setters: [], 12 | execute: function () {} 13 | }; 14 | }); -------------------------------------------------------------------------------- /dist-system/main.js: -------------------------------------------------------------------------------- 1 | System.register(['./components.js', './render.js'], function (_export, _context) { 2 | "use strict"; 3 | 4 | var homepageComponent, render; 5 | return { 6 | setters: [function (_componentsJs) { 7 | homepageComponent = _componentsJs.homepageComponent; 8 | }, function (_renderJs) { 9 | render = _renderJs.render; 10 | }], 11 | execute: function () { 12 | 13 | render(homepageComponent({ 14 | message: `This application is rendered using 15 | ${ self.__supportsScriptTypeModule ? 'ES modules' : ' System.register scripts' }.` 16 | })); 17 | } 18 | }; 19 | }); -------------------------------------------------------------------------------- /dist-system/render.js: -------------------------------------------------------------------------------- 1 | System.register([], function (_export, _context) { 2 | "use strict"; 3 | 4 | /* 5 | * Eat your heart out React. 6 | */ 7 | function render(html) { 8 | document.body.innerHTML = html; 9 | } 10 | 11 | _export("render", render); 12 | 13 | return { 14 | setters: [], 15 | execute: function () {} 16 | }; 17 | }); -------------------------------------------------------------------------------- /modules-bootstrap.js: -------------------------------------------------------------------------------- 1 | /* 2 | * SystemJS Modules bootstrap 3 | * This file is designed to run as both a module, a script, a worker module, and a worker script 4 | * 5 | * For use with it should be loaded via: 6 | * 7 | * 8 | * 9 | * 10 | * Works by checking if we are in a modules environment or not (feature-detectable by this === undefined) 11 | * If in a modules environment, it dynamically loads the modules main, otherwise it loads SystemJS and 12 | * then System.import loads the system module format main. 13 | */ 14 | (function (topLevelThis) { 15 | 16 | var isModule = topLevelThis === undefined; 17 | var global = self; 18 | 19 | // this is needed for modules since document.currentScript doesn't seem supported 20 | // implementation just returns the first 31 | // -> load the main.js 32 | if (isModule) { 33 | var module = document.createElement('script'); 34 | module.type = 'module'; 35 | module.src = getCurrentModule().getAttribute('main'); 36 | document.head.appendChild(module); 37 | global.__supportsScriptTypeModule = true; 38 | } 39 | // running as a 40 | // -> load SystemJS and then System.import('main.js') 41 | else if (!global.__supportsScriptTypeModule) { 42 | var systemScript = document.createElement('script'); 43 | systemScript.src = document.currentScript.getAttribute('systemjs') || 'system.js'; 44 | 45 | var mainSrc = document.currentScript.getAttribute('main'); 46 | 47 | systemScript.addEventListener('load', load, false); 48 | document.head.appendChild(systemScript); 49 | 50 | function load () { 51 | systemScript.removeEventListener('load', load, false); 52 | document.head.removeChild(systemScript); 53 | 54 | SystemJS.import(mainSrc); 55 | } 56 | } 57 | })(this); 58 | -------------------------------------------------------------------------------- /node_modules/systemjs/dist/system-production.js: -------------------------------------------------------------------------------- 1 | /* 2 | * SystemJS v0.20.0-rc.1 Production 3 | */ 4 | !function(){"use strict";function e(e){return K?Symbol():"@@"+e}function t(e,t){F||(t=t.replace(q?/file:\/\/\//g:/file:\/\//g,""));var r,n=(e.message||e)+"\n "+t;r=V&&e.fileName?new Error(n,e.fileName,e.lineNumber):new Error(n);var o=e.originalErr?e.originalErr.stack:e.stack;return J?r.stack=n+"\n "+o:r.stack=o,r.originalErr=e.originalErr||e,r}function r(){throw new RangeError('Unable to resolve "'+relUrl+'" to '+parentUrl)}function n(e,t){var n=t&&t.substr(0,t.indexOf(":")+1),o=e[0],i=e[1];if("/"===o&&"/"===i)return n||r(e,t),n+e;if("."===o&&("/"===i||"."===i&&("/"===e[2]||2===e.length)||1===e.length)||"/"===o){var s,a=!n||"/"!==t[n.length];if(a?(void 0===t&&r(e,t),s=t):"/"===t[n.length+1]?"file:"!==n?(s=t.substr(n.length+2),s=s.substr(s.indexOf("/")+1)):s=t.substr(8):s=t.substr(n.length+1),"/"===o){if(!a)return t.substr(0,t.length-s.length-1)+e;r(e,t)}for(var u=s.substr(0,s.lastIndexOf("/")+1)+e,c=[],l=void 0,f=0;f1&&h(e,r,i))})).then(function(t){if(void 0!==t){if(!(t instanceof c))throw new TypeError("Instantiate did not return a valid Module object.");return delete i.records[r.key],e.trace&&m(e,r,n),o[r.key]=t}var s=r.registration;if(r.registration=void 0,!s)throw new TypeError("Module instantiation did not call an anonymous or correctly named System.register.");return n.dependencies=s[0],r.importerSetters=[],n.moduleObj={},s[2]?(n.moduleObj.default={},n.moduleObj.__useDefault=!0,n.execute=s[1]):w(e,r,n,s[1]),n.dependencies.length||(n.linked=!0,e.trace&&m(e,r,n)),r}).catch(function(e){throw n.error=t(e,"Instantiating "+r.key)}))}function y(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=t);var s=o.records[r],a=n[r];if(a&&(!s||s.module&&a!==s.module))return a;(!s||!a&&s.module)&&(s=d(o,r,s&&s.registration));var u=s.linkRecord;return u?v(e,s,u,n,o):s})}function m(e,t,r){e.loads=e.loads||{},e.loads[t.key]={key:t.key,deps:r.dependencies,depMap:r.depMap||{}}}function g(e,t){if(("object"==typeof e||"function"==typeof e)&&e!==G)for(var r=Object.getOwnPropertyNames(e),n=0;nthis.len&&(this.match=e,this.len=r)}}function C(e,t){if(Object.hasOwnProperty.call(e,t))return t;var r={name:t,match:void 0,len:0};return Object.keys(e).forEach(N,r),r.match}function _(){f.call(this),this[ie]={baseURL:W,paths:{},map:{},submap:{},bundles:{},depCache:{},wasm:!1},this.registry.set("@empty",oe)}function D(e,t){var r=this[ie];if(t){var o=C(r.submap,t),i=r.submap[o],s=i&&C(i,e);if(s){var a=i[s]+e.substr(s.length);return n(a,o)||a}}var u=r.map,s=C(u,e);if(s){var a=u[s]+e.substr(s.length);return n(a,o)||a}}function A(e){return fetch(e).then(function(e){if(e.ok)return e.arrayBuffer();throw new Error("Fetch error: "+e.status+" "+e.statusText)}).then(function(e){var t=new Uint8Array(e);return 0===t[0]&&97===t[1]&&115===t[2]?WebAssembly.compile(t).then(function(e){var t=new WebAssembly.Instance(e,{});return new c(t.exports)}):new TextDecoder("utf-8").decode(t)})}function z(e,t){return new Promise(function(r,n){return T(e,"anonymous",void 0,function(){t(),r()},n)})}function B(e,t){var r=this[ie],n=r.wasm,o=r.bundles[e];if(o){var i=this,s=i.resolveSync(o,void 0);if(i.registry.has(s))return;return pe[s]||(pe[s]=z(s,t).then(function(){i.registry.has(s)||i.registry.set(s,i.newModule({})),delete pe[s]}))}var a=r.depCache[e];if(a)for(var u=n?fetch:I,c=0;c skip standard URL prefix, and treat entire parent as pathname 124 | if (parentUrl === undefined) 125 | throwResolveError(relUrl, parentUrl); 126 | pathname = parentUrl; 127 | } 128 | else if (parentUrl[parentProtocol.length + 1] === '/') { 129 | // resolving to a :// so we need to read out the auth and host 130 | if (parentProtocol !== 'file:') { 131 | pathname = parentUrl.substr(parentProtocol.length + 2); 132 | pathname = pathname.substr(pathname.indexOf('/') + 1); 133 | } 134 | else { 135 | pathname = parentUrl.substr(8); 136 | } 137 | } 138 | else { 139 | // resolving to :/ so pathname is the /... part 140 | pathname = parentUrl.substr(parentProtocol.length + 1); 141 | } 142 | 143 | if (firstChar === '/') { 144 | if (parentIsPlain) 145 | throwResolveError(relUrl, parentUrl); 146 | else 147 | return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl; 148 | } 149 | 150 | // join together and split for removal of .. and . segments 151 | // looping the string instead of anything fancy for perf reasons 152 | // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain 153 | var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl; 154 | 155 | var output = []; 156 | var segmentIndex = undefined; 157 | 158 | for (var i = 0; i < segmented.length; i++) { 159 | // busy reading a segment - only terminate on '/' 160 | if (segmentIndex !== undefined) { 161 | if (segmented[i] === '/') { 162 | output.push(segmented.substr(segmentIndex, i - segmentIndex + 1)); 163 | segmentIndex = undefined; 164 | } 165 | continue; 166 | } 167 | 168 | // new segment - check if it is relative 169 | if (segmented[i] === '.') { 170 | // ../ segment 171 | if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) { 172 | output.pop(); 173 | i += 2; 174 | } 175 | // ./ segment 176 | else if (segmented[i + 1] === '/' || i === segmented.length - 1) { 177 | i += 1; 178 | } 179 | else { 180 | // the start of a new segment as below 181 | segmentIndex = i; 182 | continue; 183 | } 184 | 185 | // this is the plain URI backtracking error (../, package:x -> error) 186 | if (parentIsPlain && output.length === 0) 187 | throwResolveError(relUrl, parentUrl); 188 | 189 | // trailing . or .. segment 190 | if (i === segmented.length) 191 | output.push(''); 192 | continue; 193 | } 194 | 195 | // it is the start of a new segment 196 | segmentIndex = i; 197 | } 198 | // finish reading out the last segment 199 | if (segmentIndex !== undefined) 200 | output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex)); 201 | 202 | return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join(''); 203 | } 204 | 205 | // sanitizes and verifies (by returning undefined if not a valid URL-like form) 206 | // Windows filepath compatibility is an added convenience here 207 | var protocolIndex = relUrl.indexOf(':'); 208 | if (protocolIndex !== -1) { 209 | if (isNode) { 210 | // C:\x becomes file:///c:/x (we don't support C|\x) 211 | if (relUrl[1] === ':' && relUrl[2] === '\\' && relUrl[0].match(/[a-z]/i)) 212 | return 'file:///' + relUrl.replace(/\\/g, '/'); 213 | } 214 | return relUrl; 215 | } 216 | } 217 | 218 | /* 219 | * Simple Array values shim 220 | */ 221 | function arrayValues (arr) { 222 | if (arr.values) 223 | return arr.values(); 224 | 225 | if (typeof Symbol === 'undefined' || !Symbol.iterator) 226 | throw new Error('Symbol.iterator not supported in this browser'); 227 | 228 | var iterable = {}; 229 | iterable[Symbol.iterator] = function () { 230 | var keys = Object.keys(arr); 231 | var keyIndex = 0; 232 | return { 233 | next: function () { 234 | if (keyIndex < keys.length) 235 | return { 236 | value: arr[keys[keyIndex++]], 237 | done: false 238 | }; 239 | else 240 | return { 241 | value: undefined, 242 | done: true 243 | }; 244 | } 245 | }; 246 | }; 247 | return iterable; 248 | } 249 | 250 | /* 251 | * 3. Reflect.Loader 252 | * 253 | * We skip the entire native internal pipeline, just providing the bare API 254 | */ 255 | // 3.1.1 256 | function Loader () { 257 | this.registry = new Registry(); 258 | } 259 | // 3.3.1 260 | Loader.prototype.constructor = Loader; 261 | 262 | function ensureInstantiated (module) { 263 | if (!(module instanceof ModuleNamespace)) 264 | throw new TypeError('Module instantiation did not return a valid namespace object.'); 265 | return module; 266 | } 267 | 268 | // 3.3.2 269 | Loader.prototype.import = function (key, parent) { 270 | if (typeof key !== 'string') 271 | throw new TypeError('Loader import method must be passed a module key string'); 272 | // custom resolveInstantiate combined hook for better perf 273 | var loader = this; 274 | return resolvedPromise 275 | .then(function () { 276 | return loader[RESOLVE_INSTANTIATE](key, parent); 277 | }) 278 | .then(ensureInstantiated) 279 | //.then(Module.evaluate) 280 | .catch(function (err) { 281 | throw LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + key + (parent ? ' from ' + parent : '')); 282 | }); 283 | }; 284 | // 3.3.3 285 | var RESOLVE = Loader.resolve = createSymbol('resolve'); 286 | 287 | /* 288 | * Combined resolve / instantiate hook 289 | * 290 | * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described 291 | * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted. 292 | * 293 | * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid 294 | * the need for double registry lookups as a performance optimization. 295 | */ 296 | var RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate'); 297 | 298 | // default resolveInstantiate is just to call resolve and then get from the registry 299 | // this provides compatibility for the resolveInstantiate optimization 300 | Loader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) { 301 | var loader = this; 302 | return loader.resolve(key, parent) 303 | .then(function (resolved) { 304 | return loader.registry.get(resolved); 305 | }); 306 | }; 307 | 308 | function ensureResolution (resolvedKey) { 309 | if (resolvedKey === undefined) 310 | throw new RangeError('No resolution found.'); 311 | return resolvedKey; 312 | } 313 | 314 | Loader.prototype.resolve = function (key, parent) { 315 | var loader = this; 316 | return resolvedPromise 317 | .then(function() { 318 | return loader[RESOLVE](key, parent); 319 | }) 320 | .then(ensureResolution) 321 | .catch(function (err) { 322 | throw LoaderError__Check_error_message_for_loader_stack(err, 'Resolving ' + key + (parent ? ' to ' + parent : '')); 323 | }); 324 | }; 325 | 326 | // 3.3.4 (import without evaluate) 327 | // this is not documented because the use of deferred evaluation as in Module.evaluate is not 328 | // documented, as it is not considered a stable feature to be encouraged 329 | // Loader.prototype.load may well be deprecated if this stays disabled 330 | /* Loader.prototype.load = function (key, parent) { 331 | return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key)) 332 | .catch(function (err) { 333 | throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : '')); 334 | }); 335 | }; */ 336 | 337 | /* 338 | * 4. Registry 339 | * 340 | * Instead of structuring through a Map, just use a dictionary object 341 | * We throw for construction attempts so this doesn't affect the public API 342 | * 343 | * Registry has been adjusted to use Namespace objects over ModuleStatus objects 344 | * as part of simplifying loader API implementation 345 | */ 346 | var iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator; 347 | var REGISTRY = createSymbol('registry'); 348 | function Registry() { 349 | this[REGISTRY] = {}; 350 | this._registry = REGISTRY; 351 | } 352 | // 4.4.1 353 | if (iteratorSupport) { 354 | // 4.4.2 355 | Registry.prototype[Symbol.iterator] = function () { 356 | return this.entries()[Symbol.iterator](); 357 | }; 358 | 359 | // 4.4.3 360 | Registry.prototype.entries = function () { 361 | var registry = this[REGISTRY]; 362 | return arrayValues(Object.keys(registry).map(function (key) { 363 | return [key, registry[key]]; 364 | })); 365 | }; 366 | } 367 | 368 | // 4.4.4 369 | Registry.prototype.keys = function () { 370 | return arrayValues(Object.keys(this[REGISTRY])); 371 | }; 372 | // 4.4.5 373 | Registry.prototype.values = function () { 374 | var registry = this[REGISTRY]; 375 | return arrayValues(Object.keys(registry).map(function (key) { 376 | return registry[key]; 377 | })); 378 | }; 379 | // 4.4.6 380 | Registry.prototype.get = function (key) { 381 | return this[REGISTRY][key]; 382 | }; 383 | // 4.4.7 384 | Registry.prototype.set = function (key, namespace) { 385 | if (!(namespace instanceof ModuleNamespace)) 386 | throw new Error('Registry must be set with an instance of Module Namespace'); 387 | this[REGISTRY][key] = namespace; 388 | return this; 389 | }; 390 | // 4.4.8 391 | Registry.prototype.has = function (key) { 392 | return Object.hasOwnProperty.call(this[REGISTRY], key); 393 | }; 394 | // 4.4.9 395 | Registry.prototype.delete = function (key) { 396 | if (Object.hasOwnProperty.call(this[REGISTRY], key)) { 397 | delete this[REGISTRY][key]; 398 | return true; 399 | } 400 | return false; 401 | }; 402 | 403 | /* 404 | * Simple ModuleNamespace Exotic object based on a baseObject 405 | * We export this for allowing a fast-path for module namespace creation over Module descriptors 406 | */ 407 | // var EVALUATE = createSymbol('evaluate'); 408 | var BASE_OBJECT = createSymbol('baseObject'); 409 | 410 | // 8.3.1 Reflect.Module 411 | /* 412 | * Best-effort simplified non-spec implementation based on 413 | * a baseObject referenced via getters. 414 | * 415 | * Allows: 416 | * 417 | * loader.registry.set('x', new Module({ default: 'x' })); 418 | * 419 | * Optional evaluation function provides experimental Module.evaluate 420 | * support for non-executed modules in registry. 421 | */ 422 | function ModuleNamespace (baseObject/*, evaluate*/) { 423 | Object.defineProperty(this, BASE_OBJECT, { 424 | value: baseObject 425 | }); 426 | 427 | // evaluate defers namespace population 428 | /* if (evaluate) { 429 | Object.defineProperty(this, EVALUATE, { 430 | value: evaluate, 431 | configurable: true, 432 | writable: true 433 | }); 434 | } 435 | else { */ 436 | Object.getOwnPropertyNames(baseObject).forEach(extendNamespace, this); 437 | //} 438 | } 439 | // 8.4.2 440 | ModuleNamespace.prototype = Object.create(null); 441 | 442 | if (typeof Symbol !== 'undefined' && Symbol.toStringTag) 443 | Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, { 444 | value: 'Module' 445 | }); 446 | 447 | function extendNamespace (key) { 448 | Object.defineProperty(this, key, { 449 | enumerable: true, 450 | get: function () { 451 | return this[BASE_OBJECT][key]; 452 | } 453 | }); 454 | } 455 | 456 | /* function doEvaluate (evaluate, context) { 457 | try { 458 | evaluate.call(context); 459 | } 460 | catch (e) { 461 | return e; 462 | } 463 | } 464 | 465 | // 8.4.1 Module.evaluate... not documented or used because this is potentially unstable 466 | Module.evaluate = function (ns) { 467 | var evaluate = ns[EVALUATE]; 468 | if (evaluate) { 469 | ns[EVALUATE] = undefined; 470 | var err = doEvaluate(evaluate); 471 | if (err) { 472 | // cache the error 473 | ns[EVALUATE] = function () { 474 | throw err; 475 | }; 476 | throw err; 477 | } 478 | Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns); 479 | } 480 | // make chainable 481 | return ns; 482 | }; */ 483 | 484 | /* 485 | * Register Loader 486 | * 487 | * Builds directly on top of loader polyfill to provide: 488 | * - loader.register support 489 | * - hookable higher-level resolve 490 | * - instantiate hook returning a ModuleNamespace or undefined for es module loading 491 | * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously 492 | * - build tracing support by providing a .trace=true and .loads object format 493 | */ 494 | 495 | var REGISTER_INTERNAL = createSymbol('register-internal'); 496 | 497 | function RegisterLoader$1 () { 498 | Loader.call(this); 499 | 500 | this[REGISTER_INTERNAL] = { 501 | // last anonymous System.register call 502 | lastRegister: undefined, 503 | // in-flight es module load records 504 | records: {} 505 | }; 506 | 507 | // tracing 508 | this.trace = false; 509 | } 510 | 511 | RegisterLoader$1.prototype = Object.create(Loader.prototype); 512 | RegisterLoader$1.prototype.constructor = RegisterLoader$1; 513 | 514 | var INSTANTIATE = RegisterLoader$1.instantiate = createSymbol('instantiate'); 515 | 516 | // default normalize is the WhatWG style normalizer 517 | RegisterLoader$1.prototype[RegisterLoader$1.resolve = Loader.resolve] = function (key, parentKey) { 518 | return resolveIfNotPlain(key, parentKey || baseURI); 519 | }; 520 | 521 | RegisterLoader$1.prototype[INSTANTIATE] = function (key, processAnonRegister) {}; 522 | 523 | // once evaluated, the linkRecord is set to undefined leaving just the other load record properties 524 | // this allows tracking new binding listeners for es modules through importerSetters 525 | // for dynamic modules, the load record is removed entirely. 526 | function createLoadRecord (state, key, registration) { 527 | return state.records[key] = { 528 | key: key, 529 | 530 | // defined System.register cache 531 | registration: registration, 532 | 533 | // module namespace object 534 | module: undefined, 535 | 536 | // es-only 537 | // this sticks around so new module loads can listen to binding changes 538 | // for already-loaded modules by adding themselves to their importerSetters 539 | importerSetters: undefined, 540 | 541 | // in-flight linking record 542 | linkRecord: { 543 | // promise for instantiated 544 | instantiatePromise: undefined, 545 | dependencies: undefined, 546 | execute: undefined, 547 | // underlying module object bindings 548 | moduleObj: undefined, 549 | 550 | // es only, also indicates if es or not 551 | setters: undefined, 552 | 553 | // promise for instantiated dependencies (dependencyInstantiations populated) 554 | depsInstantiatePromise: undefined, 555 | // will be the array of dependency load record or a module namespace 556 | dependencyInstantiations: undefined, 557 | 558 | // indicates if the load and all its dependencies are instantiated and linked 559 | // but not yet executed 560 | // mostly just a performance shortpath to avoid rechecking the promises above 561 | linked: false, 562 | 563 | error: undefined 564 | // NB optimization and way of ensuring module objects in setters 565 | // indicates setters which should run pre-execution of that dependency 566 | // setters is then just for completely executed module objects 567 | // alternatively we just pass the partially filled module objects as 568 | // arguments into the execute function 569 | // hoisted: undefined 570 | } 571 | }; 572 | } 573 | 574 | RegisterLoader$1.prototype[Loader.resolveInstantiate] = function (key, parentKey) { 575 | var loader = this; 576 | var state = this[REGISTER_INTERNAL]; 577 | var registry = loader.registry[loader.registry._registry]; 578 | 579 | return resolveInstantiate(loader, key, parentKey, registry, state) 580 | .then(function (instantiated) { 581 | if (instantiated instanceof ModuleNamespace) 582 | return instantiated; 583 | 584 | // if already beaten to linked, return 585 | if (instantiated.module) 586 | return instantiated.module; 587 | 588 | // resolveInstantiate always returns a load record with a link record and no module value 589 | if (instantiated.linkRecord.linked) 590 | return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined); 591 | 592 | return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated]) 593 | .then(function () { 594 | return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined); 595 | }) 596 | .catch(function (err) { 597 | clearLoadErrors(loader, instantiated); 598 | throw err; 599 | }); 600 | }); 601 | }; 602 | 603 | function resolveInstantiate (loader, key, parentKey, registry, state) { 604 | // normalization shortpath for already-normalized key 605 | // could add a plain name filter, but doesn't yet seem necessary for perf 606 | var module = registry[key]; 607 | if (module) 608 | return Promise.resolve(module); 609 | 610 | var load = state.records[key]; 611 | 612 | // already linked but not in main registry is ignored 613 | if (load && !load.module) 614 | return instantiate(loader, load, load.linkRecord, registry, state); 615 | 616 | return loader.resolve(key, parentKey) 617 | .then(function (resolvedKey) { 618 | // main loader registry always takes preference 619 | module = registry[resolvedKey]; 620 | if (module) 621 | return module; 622 | 623 | load = state.records[resolvedKey]; 624 | 625 | // already has a module value but not already in the registry (load.module) 626 | // means it was removed by registry.delete, so we should 627 | // disgard the current load record creating a new one over it 628 | // but keep any existing registration 629 | if (!load || load.module) 630 | load = createLoadRecord(state, resolvedKey, load && load.registration); 631 | 632 | var link = load.linkRecord; 633 | if (!link) 634 | return load; 635 | 636 | return instantiate(loader, load, link, registry, state); 637 | }); 638 | } 639 | 640 | function createProcessAnonRegister (loader, load, state) { 641 | return function () { 642 | var lastRegister = state.lastRegister; 643 | 644 | if (!lastRegister) 645 | return !!load.registration; 646 | 647 | state.lastRegister = undefined; 648 | load.registration = lastRegister; 649 | 650 | return true; 651 | }; 652 | } 653 | 654 | function instantiate (loader, load, link, registry, state) { 655 | return link.instantiatePromise || (link.instantiatePromise = 656 | // if there is already an existing registration, skip running instantiate 657 | (load.registration ? Promise.resolve() : Promise.resolve().then(function () { 658 | state.lastRegister = undefined; 659 | return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state)); 660 | })) 661 | .then(function (instantiation) { 662 | // direct module return from instantiate -> we're done 663 | if (instantiation !== undefined) { 664 | if (!(instantiation instanceof ModuleNamespace)) 665 | throw new TypeError('Instantiate did not return a valid Module object.'); 666 | 667 | delete state.records[load.key]; 668 | if (loader.trace) 669 | traceLoad(loader, load, link); 670 | return registry[load.key] = instantiation; 671 | } 672 | 673 | // run the cached loader.register declaration if there is one 674 | var registration = load.registration; 675 | // clear to allow new registrations for future loads (combined with registry delete) 676 | load.registration = undefined; 677 | if (!registration) 678 | throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.'); 679 | 680 | link.dependencies = registration[0]; 681 | 682 | load.importerSetters = []; 683 | 684 | link.moduleObj = {}; 685 | 686 | // process System.registerDynamic declaration 687 | if (registration[2]) { 688 | link.moduleObj.default = {}; 689 | link.moduleObj.__useDefault = true; 690 | link.execute = registration[1]; 691 | } 692 | 693 | // process System.register declaration 694 | else { 695 | registerDeclarative(loader, load, link, registration[1]); 696 | } 697 | 698 | // shortpath to instantiateDeps 699 | if (!link.dependencies.length) { 700 | link.linked = true; 701 | if (loader.trace) 702 | traceLoad(loader, load, link); 703 | } 704 | 705 | return load; 706 | }) 707 | .catch(function (err) { 708 | throw link.error = LoaderError__Check_error_message_for_loader_stack(err, 'Instantiating ' + load.key); 709 | })); 710 | } 711 | 712 | // like resolveInstantiate, but returning load records for linking 713 | function resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) { 714 | // normalization shortpaths for already-normalized key 715 | // DISABLED to prioritise consistent resolver calls 716 | // could add a plain name filter, but doesn't yet seem necessary for perf 717 | /* var load = state.records[key]; 718 | var module = registry[key]; 719 | 720 | if (module) { 721 | if (traceDepMap) 722 | traceDepMap[key] = key; 723 | 724 | // registry authority check in case module was deleted or replaced in main registry 725 | if (load && load.module && load.module === module) 726 | return load; 727 | else 728 | return module; 729 | } 730 | 731 | // already linked but not in main registry is ignored 732 | if (load && !load.module) { 733 | if (traceDepMap) 734 | traceDepMap[key] = key; 735 | return instantiate(loader, load, load.linkRecord, registry, state); 736 | } */ 737 | return loader.resolve(key, parentKey) 738 | .then(function (resolvedKey) { 739 | if (traceDepMap) 740 | traceDepMap[key] = key; 741 | 742 | // normalization shortpaths for already-normalized key 743 | var load = state.records[resolvedKey]; 744 | var module = registry[resolvedKey]; 745 | 746 | // main loader registry always takes preference 747 | if (module && (!load || load.module && module !== load.module)) 748 | return module; 749 | 750 | // already has a module value but not already in the registry (load.module) 751 | // means it was removed by registry.delete, so we should 752 | // disgard the current load record creating a new one over it 753 | // but keep any existing registration 754 | if (!load || !module && load.module) 755 | load = createLoadRecord(state, resolvedKey, load && load.registration); 756 | 757 | var link = load.linkRecord; 758 | if (!link) 759 | return load; 760 | 761 | return instantiate(loader, load, link, registry, state); 762 | }); 763 | } 764 | 765 | function traceLoad (loader, load, link) { 766 | loader.loads = loader.loads || {}; 767 | loader.loads[load.key] = { 768 | key: load.key, 769 | deps: link.dependencies, 770 | depMap: link.depMap || {} 771 | }; 772 | } 773 | 774 | /* 775 | * Convert a CJS module.exports into a valid object for new Module: 776 | * 777 | * new Module(getEsModule(module.exports)) 778 | * 779 | * Sets the default value to the module, while also reading off named exports carefully. 780 | */ 781 | 782 | // NB re-evaluate if this will even exist, and if it should be restricted to valid identifiers only 783 | function copyNamedExports (exports, moduleObj) { 784 | if ((typeof exports === 'object' || typeof exports === 'function') && exports !== envGlobal) { 785 | var props = Object.getOwnPropertyNames(exports); 786 | for (var i = 0; i < props.length; i++) 787 | defineOrCopyProperty(moduleObj, exports, props[i]); 788 | } 789 | moduleObj.default = exports; 790 | } 791 | 792 | function defineOrCopyProperty (targetObj, sourceObj, propName) { 793 | // don't trigger getters/setters in environments that support them 794 | try { 795 | var d; 796 | if (d = Object.getOwnPropertyDescriptor(sourceObj, propName)) { 797 | // only copy data descriptors 798 | if (d.value) 799 | targetObj[propName] = d.value; 800 | } 801 | } 802 | catch (e) { 803 | // Object.getOwnPropertyDescriptor threw an exception -> not own property 804 | } 805 | } 806 | 807 | function registerDeclarative (loader, load, link, declare) { 808 | var moduleObj = link.moduleObj; 809 | var importerSetters = load.importerSetters; 810 | 811 | var locked = false; 812 | 813 | // closure especially not based on link to allow link record disposal 814 | var declared = declare.call(envGlobal, function (name, value) { 815 | // export setter propogation with locking to avoid cycles 816 | if (locked) 817 | return; 818 | 819 | if (typeof name == 'object') { 820 | for (var p in name) 821 | if (p !== '__useDefault') 822 | moduleObj[p] = name[p]; 823 | } 824 | else { 825 | moduleObj[name] = value; 826 | } 827 | 828 | locked = true; 829 | for (var i = 0; i < importerSetters.length; i++) 830 | importerSetters[i](moduleObj); 831 | locked = false; 832 | 833 | return value; 834 | }, new ContextualLoader(loader, load.key)); 835 | 836 | if (typeof declared !== 'function') { 837 | link.setters = declared.setters; 838 | link.execute = declared.execute; 839 | } 840 | else { 841 | link.setters = []; 842 | link.execute = declared; 843 | } 844 | } 845 | 846 | function instantiateDeps (loader, load, link, registry, state, seen) { 847 | return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve() 848 | .then(function () { 849 | var depsInstantiatePromises = Array(link.dependencies.length); 850 | 851 | for (var i = 0; i < link.dependencies.length; i++) 852 | depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {})); 853 | 854 | return Promise.all(depsInstantiatePromises); 855 | }) 856 | .then(function (dependencyInstantiations) { 857 | link.dependencyInstantiations = dependencyInstantiations; 858 | 859 | // run setters to set up bindings to instantiated dependencies 860 | if (link.setters) { 861 | for (var i = 0; i < dependencyInstantiations.length; i++) { 862 | var setter = link.setters[i]; 863 | if (setter) { 864 | var instantiation = dependencyInstantiations[i]; 865 | 866 | if (instantiation instanceof ModuleNamespace) { 867 | setter(instantiation); 868 | } 869 | else { 870 | setter(instantiation.module || instantiation.linkRecord.moduleObj); 871 | // this applies to both es and dynamic registrations 872 | if (instantiation.importerSetters) 873 | instantiation.importerSetters.push(setter); 874 | } 875 | } 876 | } 877 | } 878 | }))) 879 | .then(function () { 880 | // now deeply instantiateDeps on each dependencyInstantiation that is a load record 881 | var deepDepsInstantiatePromises = []; 882 | 883 | for (var i = 0; i < link.dependencies.length; i++) { 884 | var depLoad = link.dependencyInstantiations[i]; 885 | var depLink = depLoad.linkRecord; 886 | 887 | if (!depLink || depLink.linked) 888 | continue; 889 | 890 | if (seen.indexOf(depLoad) !== -1) 891 | continue; 892 | seen.push(depLoad); 893 | 894 | deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen)); 895 | } 896 | 897 | return Promise.all(deepDepsInstantiatePromises); 898 | }) 899 | .then(function () { 900 | // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry 901 | // this can run multiple times, but so what 902 | link.linked = true; 903 | if (loader.trace) 904 | traceLoad(loader, load, link); 905 | 906 | return load; 907 | }) 908 | .catch(function (err) { 909 | err = LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + load.key); 910 | 911 | // throw up the instantiateDeps stack 912 | // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below 913 | // this then ensures avoiding partially unloaded tree states 914 | link.error = link.error || err; 915 | 916 | throw err; 917 | }); 918 | } 919 | 920 | // clears an errored load and all its errored dependencies from the loads registry 921 | function clearLoadErrors (loader, load) { 922 | var state = loader[REGISTER_INTERNAL]; 923 | 924 | // clear from loads 925 | if (state.records[load.key] === load) 926 | delete state.records[load.key]; 927 | 928 | var link = load.linkRecord; 929 | 930 | if (!link) 931 | return; 932 | 933 | if (link.dependencyInstantiations) 934 | link.dependencyInstantiations.forEach(function (depLoad, index) { 935 | if (!depLoad || depLoad instanceof ModuleNamespace) 936 | return; 937 | 938 | if (depLoad.linkRecord) { 939 | if (depLoad.linkRecord.error) { 940 | // provides a circular reference check 941 | if (state.records[depLoad.key] === depLoad) 942 | clearLoadErrors(loader, depLoad); 943 | } 944 | 945 | // unregister setters for es dependency load records that will remain 946 | if (link.setters && depLoad.importerSetters) { 947 | var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]); 948 | depLoad.importerSetters.splice(setterIndex, 1); 949 | } 950 | } 951 | }); 952 | } 953 | 954 | /* 955 | * System.register 956 | */ 957 | RegisterLoader$1.prototype.register = function (key, deps, declare) { 958 | var state = this[REGISTER_INTERNAL]; 959 | 960 | // anonymous modules get stored as lastAnon 961 | if (declare === undefined) { 962 | state.lastRegister = [key, deps, false]; 963 | } 964 | 965 | // everything else registers into the register cache 966 | else { 967 | var load = state.records[key] || createLoadRecord(state, key, undefined); 968 | load.registration = [deps, declare, false]; 969 | } 970 | }; 971 | 972 | /* 973 | * System.registerDyanmic 974 | */ 975 | RegisterLoader$1.prototype.registerDynamic = function (key, deps, execute) { 976 | var state = this[REGISTER_INTERNAL]; 977 | 978 | // anonymous modules get stored as lastAnon 979 | if (typeof key !== 'string') { 980 | state.lastRegister = [key, typeof deps === 'boolean' ? dynamicExecuteCompat(key, deps, execute) : deps, true]; 981 | } 982 | 983 | // everything else registers into the register cache 984 | else { 985 | var load = state.records[key] || createLoadRecord(state, key, undefined); 986 | load.registration = [deps, typeof execute === 'boolean' ? dynamicExecuteCompat(deps, execute, arguments[3]) : execute, true]; 987 | } 988 | }; 989 | 990 | function dynamicExecuteCompat (deps, executingRequire, execute) { 991 | return function (require, exports, module) { 992 | // evaluate deps first 993 | if (!executingRequire) 994 | for (var i = 0; i < deps.length; i++) 995 | require(deps[i]); 996 | 997 | // then run execution function 998 | // also provide backwards compat for no return value 999 | // previous 4 argument form of System.register had "this" as global value 1000 | module.exports = execute.apply(envGlobal, arguments) || module.exports; 1001 | }; 1002 | } 1003 | 1004 | // ContextualLoader class 1005 | // backwards-compatible with previous System.register context argument by exposing .id 1006 | function ContextualLoader (loader, key) { 1007 | this.loader = loader; 1008 | this.key = this.id = key; 1009 | } 1010 | ContextualLoader.prototype.constructor = function () { 1011 | throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.'); 1012 | }; 1013 | ContextualLoader.prototype.import = function (key) { 1014 | return this.loader.import(key, this.key); 1015 | }; 1016 | ContextualLoader.prototype.resolve = function (key) { 1017 | return this.loader.resolve(key, this.key); 1018 | }; 1019 | ContextualLoader.prototype.load = function (key) { 1020 | return this.loader.load(key, this.key); 1021 | }; 1022 | 1023 | // this is the execution function bound to the Module namespace record 1024 | function ensureEvaluate (loader, load, link, registry, state, seen) { 1025 | if (load.module) 1026 | return load.module; 1027 | 1028 | if (link.error) 1029 | throw link.error; 1030 | 1031 | if (seen && seen.indexOf(load) !== -1) 1032 | return load.linkRecord.moduleObj; 1033 | 1034 | // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless 1035 | // for dynamic loads, we pass seen if also dynamic 1036 | var err = doEvaluate(loader, load, link, registry, state, load.setters ? [] : seen || []); 1037 | if (err) { 1038 | clearLoadErrors(loader, load); 1039 | throw err; 1040 | } 1041 | 1042 | return load.module; 1043 | } 1044 | 1045 | function makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) { 1046 | // we can only require from already-known dependencies 1047 | return function (name) { 1048 | for (var i = 0; i < dependencies.length; i++) { 1049 | if (dependencies[i] === name) { 1050 | var depLoad = dependencyInstantiations[i]; 1051 | var module; 1052 | 1053 | if (depLoad instanceof ModuleNamespace) 1054 | module = depLoad; 1055 | else 1056 | module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen); 1057 | 1058 | return module.__useDefault ? module.default : module; 1059 | } 1060 | } 1061 | throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key); 1062 | }; 1063 | } 1064 | 1065 | // ensures the given es load is evaluated 1066 | // returns the error if any 1067 | function doEvaluate (loader, load, link, registry, state, seen) { 1068 | seen.push(load); 1069 | 1070 | var err; 1071 | 1072 | // es modules evaluate dependencies first 1073 | // non es modules explicitly call moduleEvaluate through require 1074 | if (link.setters) { 1075 | var depLoad, depLink; 1076 | for (var i = 0; i < link.dependencies.length; i++) { 1077 | depLoad = link.dependencyInstantiations[i]; 1078 | 1079 | if (depLoad instanceof ModuleNamespace) 1080 | continue; 1081 | 1082 | // custom Module returned from instantiate 1083 | depLink = depLoad.linkRecord; 1084 | if (depLink && seen.indexOf(depLoad) === -1) { 1085 | if (depLink.error) 1086 | err = depLink.error; 1087 | else 1088 | // dynamic / declarative boundaries clear the "seen" list 1089 | // we just let cross format circular throw as would happen in real implementations 1090 | err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []); 1091 | } 1092 | 1093 | if (err) 1094 | return link.error = LoaderError__Check_error_message_for_loader_stack(err, 'Evaluating ' + load.key); 1095 | } 1096 | } 1097 | 1098 | // link.execute won't exist for Module returns from instantiate on top-level load 1099 | if (link.execute) { 1100 | // ES System.register execute 1101 | // "this" is null in ES 1102 | if (link.setters) { 1103 | err = doExecute(link.execute, nullContext); 1104 | } 1105 | // System.registerDynamic execute 1106 | // "this" is "exports" in CJS 1107 | else { 1108 | var module = { id: load.key }; 1109 | var moduleObj = link.moduleObj; 1110 | Object.defineProperty(module, 'exports', { 1111 | configurable: true, 1112 | set: function (exports) { 1113 | moduleObj.default = exports; 1114 | }, 1115 | get: function () { 1116 | return moduleObj.default; 1117 | } 1118 | }); 1119 | err = doExecute(link.execute, module.exports, [ 1120 | makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen), 1121 | module.exports, 1122 | module 1123 | ]); 1124 | 1125 | // copy module.exports onto the module object 1126 | if (!err) 1127 | copyNamedExports(module.exports, moduleObj); 1128 | } 1129 | } 1130 | 1131 | if (err) 1132 | return link.error = LoaderError__Check_error_message_for_loader_stack(err, 'Evaluating ' + load.key); 1133 | 1134 | registry[load.key] = load.module = new ModuleNamespace(link.moduleObj); 1135 | 1136 | // if not an esm module, run importer setters and clear them 1137 | // this allows dynamic modules to update themselves into es modules 1138 | // as soon as execution has completed 1139 | if (!link.setters) { 1140 | if (load.importerSetters) 1141 | for (var i = 0; i < load.importerSetters.length; i++) 1142 | load.importerSetters[i](load.module); 1143 | load.importerSetters = undefined; 1144 | } 1145 | 1146 | // dispose link record 1147 | load.linkRecord = undefined; 1148 | } 1149 | 1150 | // {} is the closest we can get to call(undefined) 1151 | var nullContext = {}; 1152 | if (Object.freeze) 1153 | Object.freeze(nullContext); 1154 | function doExecute (execute, context, args) { 1155 | try { 1156 | execute.apply(context, args); 1157 | } 1158 | catch (e) { 1159 | return e; 1160 | } 1161 | } 1162 | 1163 | var emptyModule = new ModuleNamespace({}); 1164 | 1165 | 1166 | 1167 | var CONFIG = createSymbol('loader-config'); 1168 | 1169 | var PLAIN_RESOLVE = createSymbol('plain-resolve'); 1170 | var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync'); 1171 | 1172 | var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined'; 1173 | 1174 | 1175 | 1176 | var parentModuleContext; 1177 | 1178 | 1179 | function extend (a, b) { 1180 | for (var p in b) { 1181 | if (!Object.hasOwnProperty.call(b, p)) 1182 | continue; 1183 | a[p] = b[p]; 1184 | } 1185 | return a; 1186 | } 1187 | 1188 | function prepend (a, b) { 1189 | for (var p in b) { 1190 | if (!Object.hasOwnProperty.call(b, p)) 1191 | continue; 1192 | if (a[p] === undefined) 1193 | a[p] = b[p]; 1194 | } 1195 | return a; 1196 | } 1197 | 1198 | // meta first-level extends where: 1199 | // array + array appends 1200 | // object + object extends 1201 | // other properties replace 1202 | 1203 | 1204 | var supportsPreload = isBrowser && (function () { 1205 | var relList = document.createElement('link').relList; 1206 | if (relList && relList.supports) { 1207 | try { 1208 | return relList.supports('preload'); 1209 | } 1210 | catch (e) {} 1211 | } 1212 | return false; 1213 | })(); 1214 | 1215 | function preloadScript (url) { 1216 | var link = document.createElement('link'); 1217 | if (supportsPreload) { 1218 | link.rel = 'preload'; 1219 | link.as = 'script'; 1220 | } 1221 | else { 1222 | link.rel = 'prefetch'; 1223 | } 1224 | link.href = url; 1225 | document.head.appendChild(link); 1226 | document.head.removeChild(link); 1227 | } 1228 | 1229 | function workerImport (src, resolve, reject) { 1230 | try { 1231 | importScripts(src); 1232 | } 1233 | catch (e) { 1234 | reject(e); 1235 | } 1236 | resolve(); 1237 | } 1238 | 1239 | if (isBrowser) { 1240 | var loadingScripts = []; 1241 | var onerror = window.onerror; 1242 | window.onerror = function globalOnerror (msg, src) { 1243 | for (var i = 0; i < loadingScripts.length; i++) { 1244 | if (loadingScripts[i].src !== src) 1245 | continue; 1246 | loadingScripts[i].err(msg); 1247 | return; 1248 | } 1249 | onerror.apply(this, arguments); 1250 | }; 1251 | } 1252 | 1253 | function scriptLoad (src, crossOrigin, integrity, resolve, reject) { 1254 | // percent encode just "#" for HTTP requests 1255 | src = src.replace(/#/g, '%23'); 1256 | 1257 | // subresource integrity is not supported in web workers 1258 | if (isWorker) 1259 | return workerImport(src, resolve, reject); 1260 | 1261 | var script = document.createElement('script'); 1262 | script.type = 'text/javascript'; 1263 | script.charset = 'utf-8'; 1264 | script.async = true; 1265 | 1266 | if (crossOrigin) 1267 | script.crossOrigin = crossOrigin; 1268 | if (integrity) 1269 | script.integrity = integrity; 1270 | 1271 | script.addEventListener('load', load, false); 1272 | script.addEventListener('error', error, false); 1273 | 1274 | script.src = src; 1275 | document.head.appendChild(script); 1276 | 1277 | function load () { 1278 | resolve(); 1279 | cleanup(); 1280 | } 1281 | 1282 | // note this does not catch execution errors 1283 | function error (err) { 1284 | cleanup(); 1285 | reject(new Error('Fetching ' + src)); 1286 | } 1287 | 1288 | function cleanup () { 1289 | for (var i = 0; i < loadingScripts.length; i++) { 1290 | if (loadingScripts[i].err === error) { 1291 | loadingScripts.splice(i, 1); 1292 | break; 1293 | } 1294 | } 1295 | script.removeEventListener('load', load, false); 1296 | script.removeEventListener('error', error, false); 1297 | document.head.removeChild(script); 1298 | } 1299 | } 1300 | 1301 | 1302 | 1303 | // separate out paths cache as a baseURL lock process 1304 | function applyPaths (baseURL, paths, key) { 1305 | var mapMatch = getMapMatch(paths, key); 1306 | if (mapMatch) { 1307 | var target = paths[mapMatch] + key.substr(mapMatch.length); 1308 | 1309 | var resolved = resolveIfNotPlain(target, baseURI); 1310 | if (resolved !== undefined) 1311 | return resolved; 1312 | 1313 | return baseURL + target; 1314 | } 1315 | else if (key.indexOf(':') !== -1) { 1316 | return key; 1317 | } 1318 | else { 1319 | return baseURL + key; 1320 | } 1321 | } 1322 | 1323 | function checkMap (p) { 1324 | var name = this.name; 1325 | // can add ':' here if we want paths to match the behaviour of map 1326 | if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) { 1327 | var curLen = p.split('/').length; 1328 | if (curLen > this.len) { 1329 | this.match = p; 1330 | this.len = curLen; 1331 | } 1332 | } 1333 | } 1334 | 1335 | function getMapMatch (map, name) { 1336 | if (Object.hasOwnProperty.call(map, name)) 1337 | return name; 1338 | 1339 | var bestMatch = { 1340 | name: name, 1341 | match: undefined, 1342 | len: 0 1343 | }; 1344 | 1345 | Object.keys(map).forEach(checkMap, bestMatch); 1346 | 1347 | return bestMatch.match; 1348 | } 1349 | 1350 | // RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339 1351 | 1352 | function SystemJSProductionLoader$1 () { 1353 | RegisterLoader$1.call(this); 1354 | 1355 | // internal configuration 1356 | this[CONFIG] = { 1357 | baseURL: baseURI, 1358 | paths: {}, 1359 | map: {}, 1360 | submap: {}, 1361 | bundles: {}, 1362 | depCache: {}, 1363 | wasm: false 1364 | }; 1365 | 1366 | // support the empty module, as a concept 1367 | this.registry.set('@empty', emptyModule); 1368 | } 1369 | 1370 | SystemJSProductionLoader$1.plainResolve = PLAIN_RESOLVE; 1371 | SystemJSProductionLoader$1.plainResolveSync = PLAIN_RESOLVE_SYNC; 1372 | 1373 | var systemJSPrototype = SystemJSProductionLoader$1.prototype = Object.create(RegisterLoader$1.prototype); 1374 | 1375 | systemJSPrototype.constructor = SystemJSProductionLoader$1; 1376 | 1377 | systemJSPrototype[SystemJSProductionLoader$1.resolve = RegisterLoader$1.resolve] = function (key, parentKey) { 1378 | var resolved = resolveIfNotPlain(key, parentKey || baseURI); 1379 | if (resolved !== undefined) 1380 | return Promise.resolve(resolved); 1381 | 1382 | // plain resolution 1383 | var loader = this; 1384 | return resolvedPromise 1385 | .then(function () { 1386 | return loader[PLAIN_RESOLVE](key, parentKey); 1387 | }) 1388 | .then(function (resolved) { 1389 | // then apply paths 1390 | // baseURL is fallback 1391 | var config = loader[CONFIG]; 1392 | return applyPaths(config.baseURL, config.paths, resolved || key); 1393 | }); 1394 | }; 1395 | 1396 | systemJSPrototype.newModule = function (bindings) { 1397 | return new ModuleNamespace(bindings); 1398 | }; 1399 | 1400 | systemJSPrototype.resolveSync = function (key, parentKey) { 1401 | var resolved = resolveIfNotPlain(key, parentKey || baseURI); 1402 | if (resolved !== undefined) 1403 | return resolved; 1404 | 1405 | // plain resolution 1406 | resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey); 1407 | 1408 | // then apply paths 1409 | var config = this[CONFIG]; 1410 | return applyPaths(config.baseURL, config.paths, resolved || key); 1411 | }; 1412 | 1413 | systemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve; 1414 | 1415 | systemJSPrototype[SystemJSProductionLoader$1.instantiate = RegisterLoader$1.instantiate] = coreInstantiate; 1416 | 1417 | systemJSPrototype.config = function (cfg) { 1418 | var config = this[CONFIG]; 1419 | 1420 | if (cfg.baseURL) { 1421 | config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI); 1422 | if (config.baseURL[config.baseURL.length - 1] !== '/') 1423 | config.baseURL += '/'; 1424 | } 1425 | 1426 | if (cfg.paths) 1427 | extend(config.paths, cfg.paths); 1428 | 1429 | if (cfg.map) { 1430 | var val = cfg.map; 1431 | for (var p in val) { 1432 | if (!Object.hasOwnProperty.call(val, p)) 1433 | continue; 1434 | 1435 | var v = val[p]; 1436 | 1437 | if (typeof v === 'string') { 1438 | config.map[p] = v; 1439 | } 1440 | 1441 | // object submap 1442 | else { 1443 | // normalize parent with URL and paths only 1444 | var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p); 1445 | extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v); 1446 | } 1447 | } 1448 | } 1449 | 1450 | for (var p in cfg) { 1451 | if (!Object.hasOwnProperty.call(cfg, p)) 1452 | continue; 1453 | 1454 | var val = cfg[p]; 1455 | 1456 | switch (p) { 1457 | case 'baseURL': 1458 | case 'paths': 1459 | case 'map': 1460 | break; 1461 | 1462 | case 'bundles': 1463 | for (var p in val) { 1464 | if (!Object.hasOwnProperty.call(val, p)) 1465 | continue; 1466 | var v = val[p]; 1467 | for (var i = 0; i < v.length; i++) 1468 | config.bundles[this.resolveSync(v[i], undefined)] = p; 1469 | } 1470 | break; 1471 | 1472 | case 'depCache': 1473 | for (var p in val) { 1474 | if (!Object.hasOwnProperty.call(val, p)) 1475 | continue; 1476 | var resolvedParent = this.resolveSync(p, undefined); 1477 | config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]); 1478 | } 1479 | break; 1480 | 1481 | case 'wasm': 1482 | config.wasm = typeof WebAssembly !== 'undefined' && !!val; 1483 | break; 1484 | 1485 | default: 1486 | throw new TypeError('The SystemJS production build does not support the "' + p + '" configuration option.'); 1487 | } 1488 | } 1489 | }; 1490 | 1491 | // getConfig configuration cloning 1492 | /* systemJSPrototype.getConfig = function (name) { 1493 | var config = this[CONFIG]; 1494 | 1495 | var map = {}; 1496 | extend(map, config.map); 1497 | for (var p in config.submap) { 1498 | if (!Object.hasOwnProperty.call(config.submap, p)) 1499 | continue; 1500 | map[p] = extend({}, config.submap[p]); 1501 | } 1502 | 1503 | var depCache = {}; 1504 | for (var p in config.depCache) { 1505 | if (!Object.hasOwnProperty.call(config.depCache, p)) 1506 | continue; 1507 | depCache[p] = [].concat(config.depCache[p]); 1508 | } 1509 | 1510 | var bundles = {}; 1511 | for (var p in config.bundles) { 1512 | if (!Object.hasOwnProperty.call(config.bundles, p)) 1513 | continue; 1514 | (bundles[config.bundles[p]] = bundles[config.bundles[p]] || []).push(p); 1515 | } 1516 | 1517 | return { 1518 | baseURL: config.baseURL, 1519 | paths: extend({}, config.paths), 1520 | depCache: depCache, 1521 | bundles: cloneArrays(config.bundles), 1522 | map: map, 1523 | wasm: config.wasm 1524 | }; 1525 | }; */ 1526 | 1527 | // ensure System.register and System.registerDynamic decanonicalize 1528 | systemJSPrototype.register = function (key, deps, declare) { 1529 | if (typeof key === 'string') 1530 | key = this.resolveSync(key, undefined); 1531 | return RegisterLoader$1.prototype.register.call(this, key, deps, declare); 1532 | }; 1533 | 1534 | systemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) { 1535 | if (typeof key === 'string') 1536 | key = this.resolveSync(key, undefined); 1537 | return RegisterLoader$1.prototype.registerDynamic.call(this, key, deps, executingRequire, execute); 1538 | }; 1539 | 1540 | function plainResolve (key, parentKey) { 1541 | var config = this[CONFIG]; 1542 | 1543 | // Apply contextual submap 1544 | if (parentKey) { 1545 | var parent = getMapMatch(config.submap, parentKey); 1546 | var submap = config.submap[parent]; 1547 | var mapMatch = submap && getMapMatch(submap, key); 1548 | 1549 | if (mapMatch) { 1550 | var target = submap[mapMatch] + key.substr(mapMatch.length); 1551 | return resolveIfNotPlain(target, parent) || target; 1552 | } 1553 | } 1554 | 1555 | // Apply global map 1556 | var map = config.map; 1557 | var mapMatch = getMapMatch(map, key); 1558 | 1559 | if (mapMatch) { 1560 | var target = map[mapMatch] + key.substr(mapMatch.length); 1561 | return resolveIfNotPlain(target, parent) || target; 1562 | } 1563 | } 1564 | 1565 | function instantiateIfWasm (url) { 1566 | return fetch(url) 1567 | .then(function(res) { 1568 | if (res.ok) 1569 | return res.arrayBuffer(); 1570 | else 1571 | throw new Error('Fetch error: ' + res.status + ' ' + res.statusText); 1572 | }) 1573 | .then(function (fetched) { 1574 | var bytes = new Uint8Array(fetched); 1575 | // detect by leading bytes 1576 | if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) { 1577 | return WebAssembly.compile(bytes).then(function (m) { 1578 | /* TODO handle imports when `WebAssembly.Module.imports` is implemented 1579 | if (WebAssembly.Module.imports) { 1580 | var deps = []; 1581 | var setters = []; 1582 | var importObj = {}; 1583 | WebAssembly.Module.imports(m).forEach(function (i) { 1584 | var key = i.module; 1585 | setters.push(function (m) { 1586 | importObj[key] = m; 1587 | }); 1588 | if (deps.indexOf(key) === -1) 1589 | deps.push(key); 1590 | }); 1591 | loader.register(deps, function (_export) { 1592 | return { 1593 | setters: setters, 1594 | execute: function () { 1595 | _export(new WebAssembly.Instance(m, importObj).exports); 1596 | } 1597 | }; 1598 | }); 1599 | }*/ 1600 | // for now we just load WASM without dependencies 1601 | var wasmModule = new WebAssembly.Instance(m, {}); 1602 | return new ModuleNamespace(wasmModule.exports); 1603 | }); 1604 | } 1605 | 1606 | // not wasm -> convert buffer into utf-8 string to execute as a module 1607 | // TextDecoder compatibility matches WASM currently. Need to keep checking this. 1608 | // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder 1609 | return new TextDecoder('utf-8').decode(bytes); 1610 | }); 1611 | } 1612 | 1613 | function doScriptLoad (url, processAnonRegister) { 1614 | return new Promise(function (resolve, reject) { 1615 | return scriptLoad(url, 'anonymous', undefined, function () { 1616 | processAnonRegister(); 1617 | resolve(); 1618 | }, reject); 1619 | }); 1620 | } 1621 | 1622 | var loadedBundles = {}; 1623 | function coreInstantiate (key, processAnonRegister) { 1624 | var config = this[CONFIG]; 1625 | 1626 | var wasm = config.wasm; 1627 | 1628 | var bundle = config.bundles[key]; 1629 | if (bundle) { 1630 | var loader = this; 1631 | var bundleUrl = loader.resolveSync(bundle, undefined); 1632 | if (loader.registry.has(bundleUrl)) 1633 | return; 1634 | return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () { 1635 | // bundle treated itself as an empty module 1636 | // this means we can reload bundles by deleting from the registry 1637 | if (!loader.registry.has(bundleUrl)) 1638 | loader.registry.set(bundleUrl, loader.newModule({})); 1639 | delete loadedBundles[bundleUrl]; 1640 | })); 1641 | } 1642 | 1643 | var depCache = config.depCache[key]; 1644 | if (depCache) { 1645 | var preloadFn = wasm ? fetch : preloadScript; 1646 | for (var i = 0; i < depCache.length; i++) 1647 | this.resolve(depCache[i], key).then(preloadFn); 1648 | } 1649 | 1650 | if (wasm) 1651 | return instantiateIfWasm(key) 1652 | .then(function (sourceOrModule) { 1653 | if (typeof sourceOrModule !== 'string') 1654 | return sourceOrModule; 1655 | 1656 | (0, eval)(sourceOrModule + '\n//# sourceURL=' + key); 1657 | processAnonRegister(); 1658 | }); 1659 | 1660 | return doScriptLoad(key, processAnonRegister); 1661 | } 1662 | 1663 | SystemJSProductionLoader$1.prototype.version = "0.20.0-rc.1 Production"; 1664 | 1665 | var System = new SystemJSProductionLoader$1(); 1666 | 1667 | // only set the global System on the global in browsers 1668 | if (isBrowser || isWorker) { 1669 | envGlobal.SystemJS = System; 1670 | 1671 | // dont override an existing System global 1672 | if (!envGlobal.System) { 1673 | envGlobal.System = System; 1674 | } 1675 | // rather just extend or set a System.register on the existing System global 1676 | else { 1677 | var register = envGlobal.System.register; 1678 | envGlobal.System.register = function () { 1679 | if (register) 1680 | register.apply(this, arguments); 1681 | System.register.apply(this, arguments); 1682 | }; 1683 | } 1684 | } 1685 | 1686 | if (typeof module !== 'undefined' && module.exports) 1687 | module.exports = System; 1688 | 1689 | }()); 1690 | //# sourceMappingURL=system-production.src.js.map 1691 | -------------------------------------------------------------------------------- /node_modules/systemjs/dist/system-production.src.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":null,"sources":["../node_modules/es-module-loader/core/common.js","../node_modules/es-module-loader/core/resolve.js","../node_modules/es-module-loader/core/loader-polyfill.js","../node_modules/es-module-loader/core/register-loader.js","../src/common.js","../src/systemjs-production-loader.js","../src/system-production.js"],"sourcesContent":["/*\n * Environment\n */\nexport var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\nexport var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\n\nvar envGlobal = typeof self !== 'undefined' ? self : global;\nexport { envGlobal as global }\n\nexport var resolvedPromise = Promise.resolve();\n\n/*\n * Simple Symbol() shim\n */\nvar hasSymbol = typeof Symbol !== 'undefined';\nexport function createSymbol (name) {\n return hasSymbol ? Symbol() : '@@' + name;\n}\n\nexport function pathToFileUrl (filePath) {\n return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\\\/g, '/') : filePath);\n}\n\nexport function fileUrlToPath (fileUrl) {\n if (fileUrl.substr(0, 7) !== 'file://')\n throw new RangeError(fileUrl + ' is not a valid file url');\n if (isWindows)\n return fileUrl.substr(8).replace(/\\\\/g, '/');\n else\n return fileUrl.substr(7);\n}\n\n/*\n * Environment baseURI\n */\nexport var baseURI;\n\n// environent baseURI detection\nif (typeof document != 'undefined' && document.getElementsByTagName) {\n baseURI = document.baseURI;\n\n if (!baseURI) {\n var bases = document.getElementsByTagName('base');\n baseURI = bases[0] && bases[0].href || window.location.href;\n }\n}\nelse if (typeof location != 'undefined') {\n baseURI = location.href;\n}\n\n// sanitize out the hash and querystring\nif (baseURI) {\n baseURI = baseURI.split('#')[0].split('?')[0];\n baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);\n}\nelse if (typeof process != 'undefined' && process.cwd) {\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\n if (isWindows)\n baseURI = baseURI.replace(/\\\\/g, '/');\n}\nelse {\n throw new TypeError('No environment baseURI');\n}\n\n// ensure baseURI has trailing \"/\"\nif (baseURI[baseURI.length - 1] !== '/')\n baseURI += '/';\n\n/*\n * LoaderError with chaining for loader stacks\n */\nvar errArgs = new Error(0, '_').fileName == '_';\nfunction LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\n // Convert file:/// URLs to paths in Node\n if (!isBrowser)\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\n\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\n\n var err;\n if (errArgs && childErr.fileName)\n err = new Error(message, childErr.fileName, childErr.lineNumber);\n else\n err = new Error(message);\n\n\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\n\n if (isNode)\n // node doesn't show the message otherwise\n err.stack = message + '\\n ' + stack;\n else\n err.stack = stack;\n\n err.originalErr = childErr.originalErr || childErr;\n\n return err;\n}\nexport { LoaderError__Check_error_message_for_loader_stack as addToError }\n","import { isNode } from './common.js';\n\n/*\n * Optimized URL normalization assuming a syntax-valid URL parent\n */\nfunction throwResolveError () {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\n\n var firstChar = relUrl[0];\n var secondChar = relUrl[1];\n\n // protocol-relative\n if (firstChar === '/' && secondChar === '/') {\n if (!parentProtocol)\n throwResolveError(relUrl, parentUrl);\n return parentProtocol + relUrl;\n }\n // relative-url\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2) || relUrl.length === 1)\n || firstChar === '/') {\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\n\n // read pathname from parent if a URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n if (parentIsPlain) {\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol, resolvedPromise } from './common.js';\n\nexport { Loader, ModuleNamespace }\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n this._registry = REGISTRY;\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.getOwnPropertyNames(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: {}\n }\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = loader.registry[loader.registry._registry];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module)\n return instantiate(loader, load, load.linkRecord, registry, state);\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = {};\n link.moduleObj.__useDefault = true;\n link.execute = registration[1];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\n\n// NB re-evaluate if this will even exist, and if it should be restricted to valid identifiers only\nfunction copyNamedExports (exports, moduleObj) {\n if ((typeof exports === 'object' || typeof exports === 'function') && exports !== global) {\n var props = Object.getOwnPropertyNames(exports);\n for (var i = 0; i < props.length; i++)\n defineOrCopyProperty(moduleObj, exports, props[i]);\n }\n moduleObj.default = exports;\n}\n\nfunction defineOrCopyProperty (targetObj, sourceObj, propName) {\n // don't trigger getters/setters in environments that support them\n try {\n var d;\n if (d = Object.getOwnPropertyDescriptor(sourceObj, propName)) {\n // only copy data descriptors\n if (d.value)\n targetObj[propName] = d.value;\n }\n }\n catch (e) {\n // Object.getOwnPropertyDescriptor threw an exception -> not own property\n }\n}\n\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name == 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n if (typeof declared !== 'function') {\n link.setters = declared.setters;\n link.execute = declared.execute;\n }\n else {\n link.setters = [];\n link.execute = declared;\n }\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n })))\n .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, false];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, false];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, typeof deps === 'boolean' ? dynamicExecuteCompat(key, deps, execute) : deps, true];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, typeof execute === 'boolean' ? dynamicExecuteCompat(deps, execute, arguments[3]) : execute, true];\n }\n};\n\nfunction dynamicExecuteCompat (deps, executingRequire, execute) {\n return function (require, exports, module) {\n // evaluate deps first\n if (!executingRequire)\n for (var i = 0; i < deps.length; i++)\n require(deps[i]);\n\n // then run execution function\n // also provide backwards compat for no return value\n // previous 4 argument form of System.register had \"this\" as global value\n module.exports = execute.apply(global, arguments) || module.exports;\n };\n}\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(key, this.key);\n};\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (link.error)\n throw link.error;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, load.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return module.__useDefault ? module.default : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLink.error)\n err = depLink.error;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = doExecute(link.execute, nullContext);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n err = doExecute(link.execute, module.exports, [\n makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen),\n module.exports,\n module\n ]);\n\n // copy module.exports onto the module object\n if (!err)\n copyNamedExports(module.exports, moduleObj);\n }\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n\n // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\nfunction doExecute (execute, context, args) {\n try {\n execute.apply(context, args);\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol, resolvedPromise } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace, resolvedPromise }\n\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n if (typeof bindings !== 'object')\n throw new TypeError('Cannot create a module namespace from an object of type \"' + typeof bindings + '\".');\n return new ModuleNamespace(bindings);\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = baseURL.substr(isWindows ? 8 : 7);\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = isBrowser && (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n try {\n return relList.supports('preload');\n }\n catch (e) {}\n }\n return false;\n})();\n\nexport function preloadScript (url) {\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')\\s*\\)/g;\n","import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { global, baseURI, CONFIG, PLAIN_RESOLVE, PLAIN_RESOLVE_SYNC, resolveIfNotPlain, resolvedPromise,\n extend, emptyModule, applyPaths, scriptLoad, protectedCreateNamespace, getMapMatch, noop, preloadScript } from './common.js';\n\nexport { ModuleNamespace }\n\nexport default SystemJSProductionLoader;\n\nfunction SystemJSProductionLoader () {\n RegisterLoader.call(this);\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n map: {},\n submap: {},\n bundles: {},\n depCache: {},\n wasm: false\n };\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n}\n\nSystemJSProductionLoader.plainResolve = PLAIN_RESOLVE;\nSystemJSProductionLoader.plainResolveSync = PLAIN_RESOLVE_SYNC;\n\nvar systemJSPrototype = SystemJSProductionLoader.prototype = Object.create(RegisterLoader.prototype);\n\nsystemJSPrototype.constructor = SystemJSProductionLoader;\n\nsystemJSPrototype[SystemJSProductionLoader.resolve = RegisterLoader.resolve] = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return Promise.resolve(resolved);\n\n // plain resolution\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[PLAIN_RESOLVE](key, parentKey);\n })\n .then(function (resolved) {\n // then apply paths\n // baseURL is fallback\n var config = loader[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n });\n};\n\nsystemJSPrototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\n\nsystemJSPrototype.resolveSync = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return resolved;\n\n // plain resolution\n resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey);\n\n // then apply paths\n var config = this[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n};\n\nsystemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;\n\nsystemJSPrototype[SystemJSProductionLoader.instantiate = RegisterLoader.instantiate] = coreInstantiate;\n\nsystemJSPrototype.config = function (cfg) {\n var config = this[CONFIG];\n\n if (cfg.baseURL) {\n config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n if (cfg.map) {\n var val = cfg.map;\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n\n var v = val[p];\n\n if (typeof v === 'string') {\n config.map[p] = v;\n }\n\n // object submap\n else {\n // normalize parent with URL and paths only\n var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);\n extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);\n }\n }\n }\n\n for (var p in cfg) {\n if (!Object.hasOwnProperty.call(cfg, p))\n continue;\n\n var val = cfg[p];\n\n switch (p) {\n case 'baseURL':\n case 'paths':\n case 'map':\n break;\n\n case 'bundles':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var v = val[p];\n for (var i = 0; i < v.length; i++)\n config.bundles[this.resolveSync(v[i], undefined)] = p;\n }\n break;\n\n case 'depCache':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var resolvedParent = this.resolveSync(p, undefined);\n config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);\n }\n break;\n\n case 'wasm':\n config.wasm = typeof WebAssembly !== 'undefined' && !!val;\n break;\n\n default:\n throw new TypeError('The SystemJS production build does not support the \"' + p + '\" configuration option.');\n }\n }\n};\n\n// getConfig configuration cloning\n/* systemJSPrototype.getConfig = function (name) {\n var config = this[CONFIG];\n\n var map = {};\n extend(map, config.map);\n for (var p in config.submap) {\n if (!Object.hasOwnProperty.call(config.submap, p))\n continue;\n map[p] = extend({}, config.submap[p]);\n }\n\n var depCache = {};\n for (var p in config.depCache) {\n if (!Object.hasOwnProperty.call(config.depCache, p))\n continue;\n depCache[p] = [].concat(config.depCache[p]);\n }\n\n var bundles = {};\n for (var p in config.bundles) {\n if (!Object.hasOwnProperty.call(config.bundles, p))\n continue;\n (bundles[config.bundles[p]] = bundles[config.bundles[p]] || []).push(p);\n }\n\n return {\n baseURL: config.baseURL,\n paths: extend({}, config.paths),\n depCache: depCache,\n bundles: cloneArrays(config.bundles),\n map: map,\n wasm: config.wasm\n };\n}; */\n\n// ensure System.register and System.registerDynamic decanonicalize\nsystemJSPrototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nsystemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n\nfunction plainResolve (key, parentKey) {\n var config = this[CONFIG];\n\n // Apply contextual submap\n if (parentKey) {\n var parent = getMapMatch(config.submap, parentKey);\n var submap = config.submap[parent];\n var mapMatch = submap && getMapMatch(submap, key);\n\n if (mapMatch) {\n var target = submap[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n }\n\n // Apply global map\n var map = config.map;\n var mapMatch = getMapMatch(map, key);\n\n if (mapMatch) {\n var target = map[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n}\n\nfunction instantiateIfWasm (url) {\n return fetch(url)\n .then(function(res) {\n if (res.ok)\n return res.arrayBuffer();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n })\n .then(function (fetched) {\n var bytes = new Uint8Array(fetched);\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return new ModuleNamespace(wasmModule.exports);\n });\n }\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n return new TextDecoder('utf-8').decode(bytes);\n });\n}\n\nfunction doScriptLoad (url, processAnonRegister) {\n return new Promise(function (resolve, reject) {\n return scriptLoad(url, 'anonymous', undefined, function () {\n processAnonRegister();\n resolve();\n }, reject);\n });\n}\n\nvar loadedBundles = {};\nfunction coreInstantiate (key, processAnonRegister) {\n var config = this[CONFIG];\n\n var wasm = config.wasm;\n\n var bundle = config.bundles[key];\n if (bundle) {\n var loader = this;\n var bundleUrl = loader.resolveSync(bundle, undefined);\n if (loader.registry.has(bundleUrl))\n return;\n return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () {\n // bundle treated itself as an empty module\n // this means we can reload bundles by deleting from the registry\n if (!loader.registry.has(bundleUrl))\n loader.registry.set(bundleUrl, loader.newModule({}));\n delete loadedBundles[bundleUrl];\n }));\n }\n\n var depCache = config.depCache[key];\n if (depCache) {\n var preloadFn = wasm ? fetch : preloadScript;\n for (var i = 0; i < depCache.length; i++)\n this.resolve(depCache[i], key).then(preloadFn);\n }\n\n if (wasm)\n return instantiateIfWasm(key)\n .then(function (sourceOrModule) {\n if (typeof sourceOrModule !== 'string')\n return sourceOrModule;\n\n (0, eval)(sourceOrModule + '\\n//# sourceURL=' + key);\n processAnonRegister();\n });\n\n return doScriptLoad(key, processAnonRegister);\n}\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSProductionLoader from './systemjs-production-loader.js';\n\nSystemJSProductionLoader.prototype.version = VERSION;\n\nvar System = new SystemJSProductionLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker) {\n global.SystemJS = System;\n\n // dont override an existing System global\n if (!global.System) {\n global.System = System;\n }\n // rather just extend or set a System.register on the existing System global\n else {\n var register = global.System.register;\n global.System.register = function () {\n if (register)\n register.apply(this, arguments);\n System.register.apply(this, arguments);\n };\n }\n}\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"],"names":["addToError","RegisterLoader","global","SystemJSProductionLoader"],"mappings":";;;;;;AAAA;;;AAGA,AAAO,IAAI,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,CAAC;AACxF,AAAO,IAAI,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;AAChG,AAAO,IAAI,SAAS,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;AAEhI,IAAI,SAAS,GAAG,OAAO,IAAI,KAAK,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC;AAC5D,AAEA,AAAO,IAAI,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;;;;;AAK/C,IAAI,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;AAC9C,AAAO,SAAS,YAAY,EAAE,IAAI,EAAE;EAClC,OAAO,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3C;;AAED,AAAO,AAEN;;AAED,AAAO,AAON;;;;;AAKD,AAAO,IAAI,OAAO,CAAC;;;AAGnB,IAAI,OAAO,QAAQ,IAAI,WAAW,IAAI,QAAQ,CAAC,oBAAoB,EAAE;EACnE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;;EAE3B,IAAI,CAAC,OAAO,EAAE;IACZ,IAAI,KAAK,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;GAC7D;CACF;KACI,IAAI,OAAO,QAAQ,IAAI,WAAW,EAAE;EACvC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;CACzB;;;AAGD,IAAI,OAAO,EAAE;EACX,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9C,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3D;KACI,IAAI,OAAO,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;EACrD,OAAO,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;EAC7D,IAAI,SAAS;IACX,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CACzC;KACI;EACH,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;CAC/C;;;AAGD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;EACrC,OAAO,IAAI,GAAG,CAAC;;;;;AAKjB,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC;AAChD,SAAS,iDAAiD,EAAE,QAAQ,EAAE,UAAU,EAAE;;EAEhF,IAAI,CAAC,SAAS;IACZ,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,GAAG,YAAY,EAAE,EAAE,CAAC,CAAC;;EAEjF,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC;;EAEnE,IAAI,GAAG,CAAC;EACR,IAAI,OAAO,IAAI,QAAQ,CAAC,QAAQ;IAC9B,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;;IAEjE,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;;;EAG3B,IAAI,KAAK,GAAG,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;;EAE/E,IAAI,MAAM;;IAER,GAAG,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;;IAErC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;;EAEpB,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC;;EAEnD,OAAO,GAAG,CAAC;CACZ,AACD,AAA0E;;ACjG1E;;;AAGA,SAAS,iBAAiB,IAAI;EAC5B,MAAM,IAAI,UAAU,CAAC,qBAAqB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAC5E;AACD,AAAO,SAAS,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE;EACpD,IAAI,cAAc,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;EAElF,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;EAC1B,IAAI,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;;EAG3B,IAAI,SAAS,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE;IAC3C,IAAI,CAAC,cAAc;MACjB,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,OAAO,cAAc,GAAG,MAAM,CAAC;GAChC;;OAEI,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;SACtI,SAAS,KAAK,GAAG,EAAE;IACxB,IAAI,aAAa,GAAG,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;;;;IAIhF,IAAI,QAAQ,CAAC;IACb,IAAI,aAAa,EAAE;;MAEjB,IAAI,SAAS,KAAK,SAAS;QACzB,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;MACvC,QAAQ,GAAG,SAAS,CAAC;KACtB;SACI,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;;MAErD,IAAI,cAAc,KAAK,OAAO,EAAE;QAC9B,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;OACvD;WACI;QACH,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;OAChC;KACF;SACI;;MAEH,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACxD;;IAED,IAAI,SAAS,KAAK,GAAG,EAAE;MACrB,IAAI,aAAa;QACf,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;QAErC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;KAC/E;;;;;IAKD,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;;IAE3E,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,YAAY,GAAG,SAAS,CAAC;;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;MAEzC,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;UACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;UAClE,YAAY,GAAG,SAAS,CAAC;SAC1B;QACD,SAAS;OACV;;;MAGD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;QAExB,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;UACxF,MAAM,CAAC,GAAG,EAAE,CAAC;UACb,CAAC,IAAI,CAAC,CAAC;SACR;;aAEI,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;UAC/D,CAAC,IAAI,CAAC,CAAC;SACR;aACI;;UAEH,YAAY,GAAG,CAAC,CAAC;UACjB,SAAS;SACV;;;QAGD,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;UACtC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;;QAGvC,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM;UACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,SAAS;OACV;;;MAGD,YAAY,GAAG,CAAC,CAAC;KAClB;;IAED,IAAI,YAAY,KAAK,SAAS;MAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;;IAE/E,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;GAClF;;;;EAID,IAAI,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;EACxC,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;IACxB,IAAI,MAAM,EAAE;;MAEV,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QACtE,OAAO,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KAClD;IACD,OAAO,MAAM,CAAC;GACf;CACF;;ACtHD;;;AAGA,SAAS,WAAW,EAAE,GAAG,EAAE;EACzB,IAAI,GAAG,CAAC,MAAM;IACZ,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC;;EAEtB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,QAAQ;IACnD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;;EAEnE,IAAI,QAAQ,GAAG,EAAE,CAAC;EAClB,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY;IACtC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO;MACL,IAAI,EAAE,YAAY;QAChB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM;UACxB,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,KAAK;WACZ,CAAC;;UAEF,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,IAAI;WACX,CAAC;OACL;KACF,CAAC;GACH,CAAC;EACF,OAAO,QAAQ,CAAC;CACjB;;;;;;;;AAQD,SAAS,MAAM,IAAI;EACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;CAChC;;AAED,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC;;AAEtC,SAAS,kBAAkB,EAAE,MAAM,EAAE;EACnC,IAAI,CAAC,CAAC,MAAM,YAAY,eAAe,CAAC;IACtC,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAC;EACvF,OAAO,MAAM,CAAC;CACf;;;AAGD,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE,MAAM,EAAE;EAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ;IACzB,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;;EAEjF,IAAI,MAAM,GAAG,IAAI,CAAC;EAClB,OAAO,eAAe;GACrB,IAAI,CAAC,YAAY;IAChB,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;GACjD,CAAC;GACD,IAAI,CAAC,kBAAkB,CAAC;;GAExB,KAAK,CAAC,UAAU,GAAG,EAAE;IACpB,MAAMA,iDAAU,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;GAC7E,CAAC,CAAC;CACJ,CAAC;;AAEF,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;;;;;;;;;;;AAWvD,IAAI,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;;;;AAIzF,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,UAAU,GAAG,EAAE,MAAM,EAAE;EAC7D,IAAI,MAAM,GAAG,IAAI,CAAC;EAClB,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;GACjC,IAAI,CAAC,UAAU,QAAQ,EAAE;IACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;GACtC,CAAC,CAAC;CACJ,CAAC;;AAEF,SAAS,gBAAgB,EAAE,WAAW,EAAE;EACtC,IAAI,WAAW,KAAK,SAAS;IAC3B,MAAM,IAAI,UAAU,CAAC,sBAAsB,CAAC,CAAC;EAC/C,OAAO,WAAW,CAAC;CACpB;;AAED,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,GAAG,EAAE,MAAM,EAAE;EAChD,IAAI,MAAM,GAAG,IAAI,CAAC;EAClB,OAAO,eAAe;GACrB,IAAI,CAAC,WAAW;IACf,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;GACrC,CAAC;GACD,IAAI,CAAC,gBAAgB,CAAC;GACtB,KAAK,CAAC,UAAU,GAAG,EAAE;IACpB,MAAMA,iDAAU,CAAC,GAAG,EAAE,YAAY,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;GAC7E,CAAC,CAAC;CACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;AAsBF,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC;AACvE,IAAI,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AACxC,SAAS,QAAQ,GAAG;EAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;EACpB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;CAC3B;;AAED,IAAI,eAAe,EAAE;;EAEnB,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY;IAChD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;GAC1C,CAAC;;;EAGF,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;IACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;MAC1D,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7B,CAAC,CAAC,CAAC;GACL,CAAC;CACH;;;AAGD,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;EACpC,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CACjD,CAAC;;AAEF,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;EACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;EAC9B,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;IAC1D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;GACtB,CAAC,CAAC,CAAC;CACL,CAAC;;AAEF,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE;EACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;CAC5B,CAAC;;AAEF,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE,SAAS,EAAE;EACjD,IAAI,CAAC,CAAC,SAAS,YAAY,eAAe,CAAC;IACzC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;EAC/E,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;EAChC,OAAO,IAAI,CAAC;CACb,CAAC;;AAEF,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE;EACtC,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;CACxD,CAAC;;AAEF,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;EACzC,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE;IACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC;GACb;EACD,OAAO,KAAK,CAAC;CACd,CAAC;;;;;;;AAOF,IAAI,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;;;;;;;;;;;;;;AAc7C,SAAS,eAAe,EAAE,UAAU,gBAAgB;EAClD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE;IACvC,KAAK,EAAE,UAAU;GAClB,CAAC,CAAC;;;;;;;;;;;IAWD,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;;CAEzE,AAAC;;AAEF,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;AAEhD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,WAAW;EACrD,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE;IACnE,KAAK,EAAE,QAAQ;GAChB,CAAC,CAAC;;AAEL,SAAS,eAAe,EAAE,GAAG,EAAE;EAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;IAC/B,UAAU,EAAE,IAAI;IAChB,GAAG,EAAE,YAAY;MACf,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;KAC/B;GACF,CAAC,CAAC;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4BI;;ACtQL;;;;;;;;;;;AAWA,IAAI,iBAAiB,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;;AAE1D,SAASC,gBAAc,IAAI;EACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;EAElB,IAAI,CAAC,iBAAiB,CAAC,GAAG;;IAExB,YAAY,EAAE,SAAS;;IAEvB,OAAO,EAAE,EAAE;GACZ,CAAA;;;EAGD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;CACpB;;AAEDA,gBAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3DA,gBAAc,CAAC,SAAS,CAAC,WAAW,GAAGA,gBAAc,CAAC;;AAEtD,IAAI,WAAW,GAAGA,gBAAc,CAAC,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;;;AAG3EA,gBAAc,CAAC,SAAS,CAACA,gBAAc,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,GAAG,EAAE,SAAS,EAAE;EAC5F,OAAO,iBAAiB,CAAC,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC,CAAC;CACrD,CAAC;;AAEFA,gBAAc,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,UAAU,GAAG,EAAE,mBAAmB,EAAE,EAAE,CAAC;;;;;AAK/E,SAAS,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE;EACnD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;IAC1B,GAAG,EAAE,GAAG;;;IAGR,YAAY,EAAE,YAAY;;;IAG1B,MAAM,EAAE,SAAS;;;;;IAKjB,eAAe,EAAE,SAAS;;;IAG1B,UAAU,EAAE;;MAEV,kBAAkB,EAAE,SAAS;MAC7B,YAAY,EAAE,SAAS;MACvB,OAAO,EAAE,SAAS;;MAElB,SAAS,EAAE,SAAS;;;MAGpB,OAAO,EAAE,SAAS;;;MAGlB,sBAAsB,EAAE,SAAS;;MAEjC,wBAAwB,EAAE,SAAS;;;;;MAKnC,MAAM,EAAE,KAAK;;MAEb,KAAK,EAAE,SAAS;;;;;;;KAOjB;GACF,CAAC;CACH;;AAEDA,gBAAc,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,UAAU,GAAG,EAAE,SAAS,EAAE;EAC9E,IAAI,MAAM,GAAG,IAAI,CAAC;EAClB,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;EACpC,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;;EAE1D,OAAO,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;GACjE,IAAI,CAAC,UAAU,YAAY,EAAE;IAC5B,IAAI,YAAY,YAAY,eAAe;MACzC,OAAO,YAAY,CAAC;;;IAGtB,IAAI,YAAY,CAAC,MAAM;MACrB,OAAO,YAAY,CAAC,MAAM,CAAC;;;IAG7B,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM;MAChC,OAAO,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;;IAEnG,OAAO,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC;KACrG,IAAI,CAAC,YAAY;MAChB,OAAO,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;KAClG,CAAC;KACD,KAAK,CAAC,UAAU,GAAG,EAAE;MACpB,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;MACtC,MAAM,GAAG,CAAC;KACX,CAAC,CAAC;GACJ,CAAC,CAAC;CACJ,CAAC;;AAEF,SAAS,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;;;EAGpE,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;EAC3B,IAAI,MAAM;IACR,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;EAEjC,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;;EAG9B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;IACtB,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;;EAErE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC;GACpC,IAAI,CAAC,UAAU,WAAW,EAAE;;IAE3B,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,IAAI,MAAM;MACR,OAAO,MAAM,CAAC;;IAEhB,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;;;;;;IAMlC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM;MACtB,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;;IAEzE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3B,IAAI,CAAC,IAAI;MACP,OAAO,IAAI,CAAC;;IAEd,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;GACzD,CAAC,CAAC;CACJ;;AAED,SAAS,yBAAyB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;EACvD,OAAO,YAAY;IACjB,IAAI,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;;IAEtC,IAAI,CAAC,YAAY;MACf,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;;IAE7B,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;;IAEjC,OAAO,IAAI,CAAC;GACb,CAAC;CACH;;AAED,SAAS,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;EACzD,OAAO,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,kBAAkB;;EAE1D,CAAC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY;IAC1E,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;IAC/B,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;GACxH,CAAC,CAAC;GACF,IAAI,CAAC,UAAU,aAAa,EAAE;;IAE7B,IAAI,aAAa,KAAK,SAAS,EAAE;MAC/B,IAAI,CAAC,CAAC,aAAa,YAAY,eAAe,CAAC;QAC7C,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;;MAE3E,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;MAC/B,IAAI,MAAM,CAAC,KAAK;QACd,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;MAChC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;KAC3C;;;IAGD,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;;IAErC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,YAAY;MACf,MAAM,IAAI,SAAS,CAAC,oFAAoF,CAAC,CAAC;;IAE5G,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;;IAEpC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;;IAE1B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;;;IAGpB,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE;MACnB,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;MAC5B,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;MACnC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;KAChC;;;SAGI;MACH,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1D;;;IAGD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;MAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;MACnB,IAAI,MAAM,CAAC,KAAK;QACd,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACjC;;IAED,OAAO,IAAI,CAAC;GACb,CAAC;GACD,KAAK,CAAC,UAAU,GAAG,EAAE;IACpB,MAAM,IAAI,CAAC,KAAK,GAAGD,iDAAU,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;GACjE,CAAC,CAAC,CAAC;CACL;;;AAGD,SAAS,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;EAwBpF,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC;GACpC,IAAI,CAAC,UAAU,WAAW,EAAE;IAC3B,IAAI,WAAW;MACb,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;;;IAGzB,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;;;IAGnC,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;MAC5D,OAAO,MAAM,CAAC;;;;;;IAMhB,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;MACjC,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;;IAEzE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3B,IAAI,CAAC,IAAI;MACP,OAAO,IAAI,CAAC;;IAEd,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;GACzD,CAAC,CAAC;CACJ;;AAED,SAAS,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;EACtC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;EAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;IACvB,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,IAAI,EAAE,IAAI,CAAC,YAAY;IACvB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;GAC1B,CAAC;CACH;;;;;;;;;;;AAWD,SAAS,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE;EAC7C,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,UAAU,CAAC,IAAI,OAAO,KAAKE,SAAM,EAAE;IACxF,IAAI,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;MACnC,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;GACtD;EACD,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;CAC7B;;AAED,SAAS,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;;EAE7D,IAAI;IACF,IAAI,CAAC,CAAC;IACN,IAAI,CAAC,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;;MAE5D,IAAI,CAAC,CAAC,KAAK;QACT,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;KACjC;GACF;EACD,OAAO,CAAC,EAAE;;GAET;CACF;;AAED,SAAS,mBAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;EACzD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;EAC/B,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;;EAE3C,IAAI,MAAM,GAAG,KAAK,CAAC;;;EAGnB,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAACA,SAAM,EAAE,UAAU,IAAI,EAAE,KAAK,EAAE;;IAEzD,IAAI,MAAM;MACR,OAAO;;IAET,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;MAC3B,KAAK,IAAI,CAAC,IAAI,IAAI;QAChB,IAAI,CAAC,KAAK,cAAc;UACtB,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;KAC5B;SACI;MACH,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;KACzB;;IAED,MAAM,GAAG,IAAI,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE;MAC7C,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,GAAG,KAAK,CAAC;;IAEf,OAAO,KAAK,CAAC;GACd,EAAE,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;EAE3C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;IAClC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAChC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;GACjC;OACI;IACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;GACzB;CACF;;AAED,SAAS,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;EACnE,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,OAAO,EAAE;GACtF,IAAI,CAAC,YAAY;IAChB,IAAI,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;;IAE9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;MAC/C,uBAAuB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;;IAElJ,OAAO,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;GAC7C,CAAC;GACD,IAAI,CAAC,UAAU,wBAAwB,EAAE;IACxC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;;;IAGzD,IAAI,IAAI,CAAC,OAAO,EAAE;MAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxD,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,MAAM,EAAE;UACV,IAAI,aAAa,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;;UAEhD,IAAI,aAAa,YAAY,eAAe,EAAE;YAC5C,MAAM,CAAC,aAAa,CAAC,CAAC;WACvB;eACI;YACH,MAAM,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;;YAEnE,IAAI,aAAa,CAAC,eAAe;cAC/B,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;WAC9C;SACF;OACF;KACF;GACF,CAAC,CAAC,CAAC;GACH,IAAI,CAAC,YAAY;;IAEhB,IAAI,2BAA2B,GAAG,EAAE,CAAC;;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACjD,IAAI,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;MAC/C,IAAI,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;;MAEjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM;QAC5B,SAAS;;MAEX,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,SAAS;MACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;MAEnB,2BAA2B,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KAC/G;;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;GACjD,CAAC;GACD,IAAI,CAAC,YAAY;;;IAGhB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,MAAM,CAAC,KAAK;MACd,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;;IAEhC,OAAO,IAAI,CAAC;GACb,CAAC;GACD,KAAK,CAAC,UAAU,GAAG,EAAE;IACpB,GAAG,GAAGF,iDAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;;;;;IAK7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;;IAE/B,MAAM,GAAG,CAAC;GACX,CAAC,CAAC;CACJ;;;AAGD,SAAS,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE;EACtC,IAAI,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;;;EAGtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;EAEjC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;;EAE3B,IAAI,CAAC,IAAI;IACP,OAAO;;EAET,IAAI,IAAI,CAAC,wBAAwB;IAC/B,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE,KAAK,EAAE;MAC9D,IAAI,CAAC,OAAO,IAAI,OAAO,YAAY,eAAe;QAChD,OAAO;;MAET,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE;;UAE5B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO;YACxC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC;;;QAGD,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE;UAC3C,IAAI,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;UACvE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SAChD;OACF;KACF,CAAC,CAAC;CACN;;;;;AAKDC,gBAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;EAChE,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;;;EAGpC,IAAI,OAAO,KAAK,SAAS,EAAE;IACzB,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;GACzC;;;OAGI;IACH,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;GAC5C;CACF,CAAC;;;;;AAKFA,gBAAc,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;EACvE,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;;;EAGpC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IAC3B,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,OAAO,IAAI,KAAK,SAAS,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;GAC/G;;;OAGI;IACH,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,EAAE,OAAO,OAAO,KAAK,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;GAC9H;CACF,CAAC;;AAEF,SAAS,oBAAoB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE;EAC9D,OAAO,UAAU,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;;IAEzC,IAAI,CAAC,gBAAgB;MACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;IAKrB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAACC,SAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC;GACrE,CAAC;CACH;;;;AAID,SAAS,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE;EACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;EACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;CAC1B;AACD,gBAAgB,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;EACnD,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;CACnF,CAAC;AACF,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;EACjD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;CAC1C,CAAC;AACF,gBAAgB,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,GAAG,EAAE;EAClD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;CAC3C,CAAC;AACF,gBAAgB,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,GAAG,EAAE;EAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;CACxC,CAAC;;;AAGF,SAAS,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;EAClE,IAAI,IAAI,CAAC,MAAM;IACb,OAAO,IAAI,CAAC,MAAM,CAAC;;EAErB,IAAI,IAAI,CAAC,KAAK;IACZ,MAAM,IAAI,CAAC,KAAK,CAAC;;EAEnB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;;;;EAInC,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;EAC1F,IAAI,GAAG,EAAE;IACP,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,GAAG,CAAC;GACX;;EAED,OAAO,IAAI,CAAC,MAAM,CAAC;CACpB;;AAED,SAAS,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;;EAEvG,OAAO,UAAU,IAAI,EAAE;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MAC5C,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QAC5B,IAAI,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC;;QAEX,IAAI,OAAO,YAAY,eAAe;UACpC,MAAM,GAAG,OAAO,CAAC;;UAEjB,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;;QAEtF,OAAO,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;OACtD;KACF;IACD,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,0DAA0D,GAAG,GAAG,CAAC,CAAC;GACtG,CAAC;CACH;;;;AAID,SAAS,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;EAC9D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;EAEhB,IAAI,GAAG,CAAC;;;;EAIR,IAAI,IAAI,CAAC,OAAO,EAAE;IAChB,IAAI,OAAO,EAAE,OAAO,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACjD,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;;MAE3C,IAAI,OAAO,YAAY,eAAe;QACpC,SAAS;;;MAGX,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;MAC7B,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;QAC3C,IAAI,OAAO,CAAC,KAAK;UACf,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;;;;UAIpB,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;OAC5F;;MAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,GAAGF,iDAAU,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;KACjE;GACF;;;EAGD,IAAI,IAAI,CAAC,OAAO,EAAE;;;IAGhB,IAAI,IAAI,CAAC,OAAO,EAAE;MAChB,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;KAC5C;;;SAGI;MACH,IAAI,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;MAC9B,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;MAC/B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;QACvC,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,UAAU,OAAO,EAAE;UACtB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;SAC7B;QACD,GAAG,EAAE,YAAY;UACf,OAAO,SAAS,CAAC,OAAO,CAAC;SAC1B;OACF,CAAC,CAAC;MACH,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;QAC5C,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;QAC7G,MAAM,CAAC,OAAO;QACd,MAAM;OACP,CAAC,CAAC;;;MAGH,IAAI,CAAC,GAAG;QACN,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC/C;GACF;;EAED,IAAI,GAAG;IACL,OAAO,IAAI,CAAC,KAAK,GAAGA,iDAAU,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;;EAEhE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;;;EAKvE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;IACjB,IAAI,IAAI,CAAC,eAAe;MACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE;QAClD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;GAClC;;;EAGD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;CAC7B;;;AAGD,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,IAAI,MAAM,CAAC,MAAM;EACf,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7B,SAAS,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;EAC1C,IAAI;IACF,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;GAC9B;EACD,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,CAAC;GACV;CACF;;AClqBM,IAAI,WAAW,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;;AAEjD,AAAO,AAMN;;AAED,AAAO,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAClD,AAAO,AAAwC;AAC/C,AAAO,IAAI,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AACzD,AAAO,IAAI,kBAAkB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;;AAEnE,AAAO,IAAI,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,aAAa,KAAK,WAAW,CAAC;;AAE3H,AAAO,AAGN;;AAED,IAAI,mBAAmB,CAAC;AACxB,AAAO,AAWN;;AAED,AAAO,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE;EAC5B,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;IACf,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;MACnC,SAAS;IACX,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;GACb;EACD,OAAO,CAAC,CAAC;CACV;;AAED,AAAO,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;EAC7B,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;IACf,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;MACnC,SAAS;IACX,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;MACpB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;GACf;EACD,OAAO,CAAC,CAAC;CACV;;;;;;AAMD,AAAO,AAcN;;AAED,IAAI,eAAe,GAAG,SAAS,IAAI,CAAC,YAAY;EAC9C,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;EACrD,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;IAC/B,IAAI;MACF,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACpC;IACD,OAAO,CAAC,EAAE,EAAE;GACb;EACD,OAAO,KAAK,CAAC;CACd,CAAC,EAAE,CAAC;;AAEL,AAAO,SAAS,aAAa,EAAE,GAAG,EAAE;EAClC,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAC1C,IAAI,eAAe,EAAE;IACnB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC;GACpB;OACI;IACH,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC;GACvB;EACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;EAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;EAChC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CACjC;;AAED,SAAS,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;EAC3C,IAAI;IACF,aAAa,CAAC,GAAG,CAAC,CAAC;GACpB;EACD,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,CAAC,CAAC,CAAC;GACX;EACD,OAAO,EAAE,CAAC;CACX;;AAED,IAAI,SAAS,EAAE;EACb,IAAI,cAAc,GAAG,EAAE,CAAC;EACxB,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;EAC7B,MAAM,CAAC,OAAO,GAAG,SAAS,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MAC9C,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG;QAC/B,SAAS;MACX,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;MAC3B,OAAO;KACR;IACD,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;GAChC,CAAC;CACH;;AAED,AAAO,SAAS,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;;EAExE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;;EAG/B,IAAI,QAAQ;IACV,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;;EAE5C,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;EAC9C,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;EAChC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;EACzB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;;EAEpB,IAAI,WAAW;IACb,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;EACnC,IAAI,SAAS;IACX,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;;EAE/B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;EAC7C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;;EAE/C,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;EACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;EAElC,SAAS,IAAI,IAAI;IACf,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;GACX;;;EAGD,SAAS,KAAK,EAAE,GAAG,EAAE;IACnB,OAAO,EAAE,CAAC;IACV,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;GACtC;;EAED,SAAS,OAAO,IAAI;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MAC9C,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;QACnC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,MAAM;OACP;KACF;IACD,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;GACnC;CACF;;AAED,AAAO,AAKN;;;AAGD,AAAO,SAAS,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;EAC/C,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;EACvC,IAAI,QAAQ,EAAE;IACZ,IAAI,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;;IAE3D,IAAI,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,SAAS;MACxB,OAAO,QAAQ,CAAC;;IAElB,OAAO,OAAO,GAAG,MAAM,CAAC;GACzB;OACI,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;IAChC,OAAO,GAAG,CAAC;GACZ;OACI;IACH,OAAO,OAAO,GAAG,GAAG,CAAC;GACtB;CACF;;AAED,SAAS,QAAQ,EAAE,CAAC,EAAE;EACpB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;;EAErB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;IAChJ,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;MACrB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;MACf,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;KACnB;GACF;CACF;;AAED,AAAO,SAAS,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE;EACtC,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;IACvC,OAAO,IAAI,CAAC;;EAEd,IAAI,SAAS,GAAG;IACd,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,CAAC;GACP,CAAC;;EAEF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;;EAE9C,OAAO,SAAS,CAAC,KAAK,CAAC;CACxB;;wFAEuF,AACxF,AAAO,AAAuI;;ACnO9I,SAASG,0BAAwB,IAAI;EACnCF,gBAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;EAG1B,IAAI,CAAC,MAAM,CAAC,GAAG;IACb,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,EAAE;IACT,GAAG,EAAE,EAAE;IACP,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,KAAK;GACZ,CAAC;;;EAGF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;CAC1C;;AAEDE,0BAAwB,CAAC,YAAY,GAAG,aAAa,CAAC;AACtDA,0BAAwB,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;;AAE/D,IAAI,iBAAiB,GAAGA,0BAAwB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAACF,gBAAc,CAAC,SAAS,CAAC,CAAC;;AAErG,iBAAiB,CAAC,WAAW,GAAGE,0BAAwB,CAAC;;AAEzD,iBAAiB,CAACA,0BAAwB,CAAC,OAAO,GAAGF,gBAAc,CAAC,OAAO,CAAC,GAAG,UAAU,GAAG,EAAE,SAAS,EAAE;EACvG,IAAI,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC,CAAC;EAC5D,IAAI,QAAQ,KAAK,SAAS;IACxB,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;;;EAGnC,IAAI,MAAM,GAAG,IAAI,CAAC;EAClB,OAAO,eAAe;GACrB,IAAI,CAAC,YAAY;IAChB,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;GAC9C,CAAC;GACD,IAAI,CAAC,UAAU,QAAQ,EAAE;;;IAGxB,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,GAAG,CAAC,CAAC;GAClE,CAAC,CAAC;CACJ,CAAC;;AAEF,iBAAiB,CAAC,SAAS,GAAG,UAAU,QAAQ,EAAE;EAChD,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;CACtC,CAAC;;AAEF,iBAAiB,CAAC,WAAW,GAAG,UAAU,GAAG,EAAE,SAAS,EAAE;EACxD,IAAI,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC,CAAC;EAC5D,IAAI,QAAQ,KAAK,SAAS;IACxB,OAAO,QAAQ,CAAC;;;EAGlB,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;;;EAGpD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;EAC1B,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,GAAG,CAAC,CAAC;CAClE,CAAC;;AAEF,iBAAiB,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAC;;AAExF,iBAAiB,CAACE,0BAAwB,CAAC,WAAW,GAAGF,gBAAc,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC;;AAEvG,iBAAiB,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;EACxC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;;EAE1B,IAAI,GAAG,CAAC,OAAO,EAAE;IACf,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,iBAAiB,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3G,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;MACnD,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;GACzB;;EAED,IAAI,GAAG,CAAC,KAAK;IACX,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;;EAElC,IAAI,GAAG,CAAC,GAAG,EAAE;IACX,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IAClB,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;MACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACrC,SAAS;;MAEX,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;;MAEf,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;OACnB;;;WAGI;;QAEH,IAAI,cAAc,GAAG,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;OAClF;KACF;GACF;;EAED,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;IACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;MACrC,SAAS;;IAEX,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;;IAEjB,QAAQ,CAAC;MACP,KAAK,SAAS,CAAC;MACf,KAAK,OAAO,CAAC;MACb,KAAK,KAAK;MACV,MAAM;;MAEN,KAAK,SAAS;QACZ,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;UACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACrC,SAAS;UACX,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;UACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;YAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;SACzD;MACH,MAAM;;MAEN,KAAK,UAAU;QACb,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;UACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACrC,SAAS;UACX,IAAI,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;UACpD,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1F;MACH,MAAM;;MAEN,KAAK,MAAM;QACT,MAAM,CAAC,IAAI,GAAG,OAAO,WAAW,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC;MAC5D,MAAM;;MAEN;QACE,MAAM,IAAI,SAAS,CAAC,sDAAsD,GAAG,CAAC,GAAG,yBAAyB,CAAC,CAAC;KAC/G;GACF;CACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCF,iBAAiB,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;EACzD,IAAI,OAAO,GAAG,KAAK,QAAQ;IACzB,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;EACzC,OAAOA,gBAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;CACzE,CAAC;;AAEF,iBAAiB,CAAC,eAAe,GAAG,UAAU,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE;EAClF,IAAI,OAAO,GAAG,KAAK,QAAQ;IACzB,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;EACzC,OAAOA,gBAAc,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;CAClG,CAAC;;AAEF,SAAS,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;EACrC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;;;EAG1B,IAAI,SAAS,EAAE;IACb,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,QAAQ,GAAG,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;;IAElD,IAAI,QAAQ,EAAE;MACZ,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;MAC5D,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC;KACpD;GACF;;;EAGD,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;EACrB,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;;EAErC,IAAI,QAAQ,EAAE;IACZ,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC;GACpD;CACF;;AAED,SAAS,iBAAiB,EAAE,GAAG,EAAE;EAC/B,OAAO,KAAK,CAAC,GAAG,CAAC;GAChB,IAAI,CAAC,SAAS,GAAG,EAAE;IAClB,IAAI,GAAG,CAAC,EAAE;MACR,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;;MAEzB,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;GACxE,CAAC;GACD,IAAI,CAAC,UAAU,OAAO,EAAE;IACvB,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;;IAEpC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACzD,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;QAwBlD,IAAI,UAAU,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;OAChD,CAAC,CAAC;KACJ;;;;;IAKD,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;GAC/C,CAAC,CAAC;CACJ;;AAED,SAAS,YAAY,EAAE,GAAG,EAAE,mBAAmB,EAAE;EAC/C,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;IAC5C,OAAO,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY;MACzD,mBAAmB,EAAE,CAAC;MACtB,OAAO,EAAE,CAAC;KACX,EAAE,MAAM,CAAC,CAAC;GACZ,CAAC,CAAC;CACJ;;AAED,IAAI,aAAa,GAAG,EAAE,CAAC;AACvB,SAAS,eAAe,EAAE,GAAG,EAAE,mBAAmB,EAAE;EAClD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;;EAE1B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;;EAEvB,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;EACjC,IAAI,MAAM,EAAE;IACV,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;MAChC,OAAO;IACT,OAAO,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,YAAY;;;MAG3H,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;MACvD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;KACjC,CAAC,CAAC,CAAC;GACL;;EAED,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;EACpC,IAAI,QAAQ,EAAE;IACZ,IAAI,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,aAAa,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;MACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;GAClD;;EAED,IAAI,IAAI;IACN,OAAO,iBAAiB,CAAC,GAAG,CAAC;KAC5B,IAAI,CAAC,UAAU,cAAc,EAAE;MAC9B,IAAI,OAAO,cAAc,KAAK,QAAQ;QACpC,OAAO,cAAc,CAAC;;MAExB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,GAAG,kBAAkB,GAAG,GAAG,CAAC,CAAC;MACrD,mBAAmB,EAAE,CAAC;KACvB,CAAC,CAAC;;EAEL,OAAO,YAAY,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;CAC/C;;AC3TDE,0BAAwB,CAAC,SAAS,CAAC,OAAO,GAAG,wBAAO,CAAC;;AAErD,IAAI,MAAM,GAAG,IAAIA,0BAAwB,EAAE,CAAC;;;AAG5C,IAAI,SAAS,IAAI,QAAQ,EAAE;EACzBD,SAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;;;EAGzB,IAAI,CAACA,SAAM,CAAC,MAAM,EAAE;IAClBA,SAAM,CAAC,MAAM,GAAG,MAAM,CAAC;GACxB;;OAEI;IACH,IAAI,QAAQ,GAAGA,SAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtCA,SAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,YAAY;MACnC,IAAI,QAAQ;QACV,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;MAClC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KACxC,CAAC;GACH;CACF;;AAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO;EACjD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;;"} -------------------------------------------------------------------------------- /node_modules/systemjs/dist/system.js: -------------------------------------------------------------------------------- 1 | /* 2 | * SystemJS v0.20.0-rc.1 Dev 3 | */ 4 | !function(){"use strict";function e(e){return st?Symbol():"@@"+e}function t(e,t){rt||(t=t.replace(ot?/file:\/\/\//g:/file:\/\//g,""));var r,n=(e.message||e)+"\n "+t;r=lt&&e.fileName?new Error(n,e.fileName,e.lineNumber):new Error(n);var o=e.originalErr?e.originalErr.stack:e.stack;return nt?r.stack=n+"\n "+o:r.stack=o,r.originalErr=e.originalErr||e,r}function r(){throw new RangeError('Unable to resolve "'+relUrl+'" to '+parentUrl)}function n(e,t){var n=t&&t.substr(0,t.indexOf(":")+1),o=e[0],i=e[1];if("/"===o&&"/"===i)return n||r(e,t),n+e;if("."===o&&("/"===i||"."===i&&("/"===e[2]||2===e.length)||1===e.length)||"/"===o){var a,s=!n||"/"!==t[n.length];if(s?(void 0===t&&r(e,t),a=t):"/"===t[n.length+1]?"file:"!==n?(a=t.substr(n.length+2),a=a.substr(a.indexOf("/")+1)):a=t.substr(8):a=t.substr(n.length+1),"/"===o){if(!s)return t.substr(0,t.length-a.length-1)+e;r(e,t)}for(var u=a.substr(0,a.lastIndexOf("/")+1)+e,l=[],c=void 0,f=0;f1&&g(e,r,i))})).then(function(t){if(void 0!==t){if(!(t instanceof l))throw new TypeError("Instantiate did not return a valid Module object.");return delete i.records[r.key],e.trace&&v(e,r,n),o[r.key]=t}var a=r.registration;if(r.registration=void 0,!a)throw new TypeError("Module instantiation did not call an anonymous or correctly named System.register.");return n.dependencies=a[0],r.importerSetters=[],n.moduleObj={},a[2]?(n.moduleObj.default={},n.moduleObj.__useDefault=!0,n.execute=a[1]):w(e,r,n,a[1]),n.dependencies.length||(n.linked=!0,e.trace&&v(e,r,n)),r}).catch(function(e){throw n.error=t(e,"Instantiating "+r.key)}))}function m(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=t);var a=o.records[r],s=n[r];if(s&&(!a||a.module&&s!==a.module))return s;(!a||!s&&a.module)&&(a=d(o,r,a&&a.registration));var u=a.linkRecord;return u?h(e,a,u,n,o):a})}function v(e,t,r){e.loads=e.loads||{},e.loads[t.key]={key:t.key,deps:r.dependencies,depMap:r.depMap||{}}}function y(e,t){if(("object"==typeof e||"function"==typeof e)&&e!==it)for(var r=Object.getOwnPropertyNames(e),n=0;nthis.len&&(this.match=e,this.len=r)}}function N(e,t){if(Object.hasOwnProperty.call(e,t))return t;var r={name:t,match:void 0,len:0};return Object.keys(e).forEach(z,r),r.match}function J(e,t,r,n){if("file:///"===e.substr(0,8)){if(Ct)return $(e,t,r,n);throw new Error("Unable to fetch file URLs in this environment.")}e=e.replace(/#/g,"%23");var o={headers:{Accept:"application/x-es-module, */*"}};return r&&(o.integrity=r),t&&("string"==typeof t&&(o.headers.Authorization=t),o.credentials="include"),fetch(e,o).then(function(e){if(e.ok)return n?e.arrayBuffer():e.text();throw new Error("Fetch error: "+e.status+" "+e.statusText)})}function $(e,t,r,n){return new Promise(function(r,o){function i(){r(n?s.response:s.responseText)}function a(){o(new Error("XHR error: "+(s.status?" ("+s.status+(s.statusText?" "+s.statusText:"")+")":"")+" loading "+e))}e=e.replace(/#/g,"%23");var s=new XMLHttpRequest;n&&(s.responseType="arraybuffer"),s.onreadystatechange=function(){4===s.readyState&&(0==s.status?s.response?i():(s.addEventListener("error",a),s.addEventListener("load",i)):200===s.status?i():a())},s.open("GET",e,!0),s.setRequestHeader&&(s.setRequestHeader("Accept","application/x-es-module, */*"),t&&("string"==typeof t&&s.setRequestHeader("Authorization",t),s.withCredentials=!0)),s.send(null)})}function B(e,t,r,n){return"file:///"!=e.substr(0,8)?Promise.reject(new Error('Unable to fetch "'+e+'". Only file URLs of the form file:/// supported running in Node.')):(jt=jt||require("fs"),e=ot?e.replace(/\//g,"\\").substr(8):e.substr(7),new Promise(function(t,r){jt.readFile(e,function(e,o){if(e)return r(e);if(n)t(o);else{var i=o+"";"\ufeff"===i[0]&&(i=i.substr(1)),t(i)}})}))}function W(){throw new Error("No fetch method is defined for this environment.")}function G(){return{pluginKey:void 0,pluginArgument:void 0,pluginModule:void 0,packageKey:void 0,packageConfig:void 0,load:void 0}}function H(e,t,r){var n=G();if(r){var o;t.pluginFirst?-1!==(o=r.lastIndexOf("!"))&&(n.pluginArgument=n.pluginKey=r.substr(0,o)):-1!==(o=r.indexOf("!"))&&(n.pluginArgument=n.pluginKey=r.substr(o+1)),n.packageKey=N(t.packages,r),n.packageKey&&(n.packageConfig=t.packages[n.packageKey])}return n}function Z(e,t){var r=this[wt],n=G(),o=H(this,r,t),i=this;return Promise.resolve().then(function(){var r=e.lastIndexOf("#?");if(-1===r)return Promise.resolve(e);var n=he.call(i,e.substr(r+2));return me.call(i,n,t,!0).then(function(t){return t?e.substr(0,r):"@empty"})}).then(function(e){var a=ne(r.pluginFirst,e);return a?(n.pluginKey=a.plugin,Promise.all([ee.call(i,r,a.argument,o&&o.pluginArgument||t,n,o,!0),i.resolve(a.plugin,t)]).then(function(e){if(n.pluginArgument=e[0],n.pluginKey=e[1],n.pluginArgument===n.pluginKey)throw new Error("Plugin "+n.pluginArgument+" cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.");return oe(r.pluginFirst,e[0],e[1])})):ee.call(i,r,e,o&&o.pluginArgument||t,n,o,!1)}).then(function(e){return ve.call(i,e,t,o)}).then(function(e){return re.call(i,r,e,n),n.pluginKey||!n.load.loader?e:i.resolve(n.load.loader,e).then(function(t){return n.pluginKey=t,n.pluginArgument=e,e})}).then(function(e){return i[kt][e]=n,e})}function X(e,t){var r=ne(e.pluginFirst,t);if(r){var n=X.call(this,e,r.plugin);return oe(e.pluginFirst,Q.call(this,e,r.argument,void 0,!1),n)}return Q.call(this,e,t,void 0,!1)}function Y(e,t){var r=this[wt],n=G(),o=o||H(this,r,t),i=ne(r.pluginFirst,e);return i?(n.pluginKey=Y.call(this,i.plugin,t),oe(r.pluginFirst,V.call(this,r,i.argument,o.pluginArgument||t,n,o,!!n.pluginKey),n.pluginKey)):V.call(this,r,e,o.pluginArgument||t,n,o,!!n.pluginKey)}function Q(e,t,r,o){var i=n(t,r||tt);if(i)return q(e.baseURL,e.paths,i);if(o){var a=N(e.map,t);if(a&&(t=e.map[a]+t.substr(a.length),i=n(t,tt)))return q(e.baseURL,e.paths,i)}return this.registry.has(t)?t:"@node/"===t.substr(0,6)?t:q(e.baseURL,e.paths,t)}function V(e,t,r,n,o,i){if(o&&o.packageConfig&&"."!==t[0]){var a=o.packageConfig.map,s=a&&N(a,t);if(s&&"string"==typeof a[s]){var u=ue(this,e,o.packageConfig,o.packageKey,s,t,n,i);if(u)return u}}var l=Q.call(this,e,t,r,!0),c=de(e,l);if(n.packageKey=c&&c.packageKey||N(e.packages,l),!n.packageKey)return l;if(-1!==e.packageConfigKeys.indexOf(l))return n.packageKey=void 0,l;n.packageConfig=e.packages[n.packageKey]||(e.packages[n.packageKey]=Oe());var f=l.substr(n.packageKey.length+1);return ae(this,e,n.packageConfig,n.packageKey,f,n,i)}function ee(e,t,r,n,o,i){var a=this;return at.then(function(){if(o&&o.packageConfig&&"./"!==t.substr(0,2)){var r=o.packageConfig.map,s=r&&N(r,t);if(s)return ce(a,e,o.packageConfig,o.packageKey,s,t,n,i)}return at}).then(function(o){if(o)return o;var s=Q.call(a,e,t,r,!0),u=de(e,s);if(n.packageKey=u&&u.packageKey||N(e.packages,s),!n.packageKey)return Promise.resolve(s);if(-1!==e.packageConfigKeys.indexOf(s))return n.packageKey=void 0,n.load=te(),n.load.format="json",Promise.resolve(s);n.packageConfig=e.packages[n.packageKey]||(e.packages[n.packageKey]=Oe());var l=u&&!n.packageConfig.configured;return(l?pe(a,e,u.configPath,n):at).then(function(){var t=s.substr(n.packageKey.length+1);return le(a,e,n.packageConfig,n.packageKey,t,n,i)})})}function te(){return{extension:"",deps:void 0,format:void 0,loader:void 0,scriptLoad:void 0,globals:void 0,nonce:void 0,integrity:void 0,sourceMap:void 0,exports:void 0,encapsulateGlobal:!1,crossOrigin:void 0,cjsRequireDetection:!0,cjsDeferDepsExecute:!1}}function re(e,t,r){r.load=r.load||te();var n,o=0;for(var i in e.meta)if(n=i.indexOf("*"),-1!==n&&i.substr(0,n)===t.substr(0,n)&&i.substr(n+1)===t.substr(t.length-i.length+n+1)){var a=i.split("/").length;a>o&&(o=a),F(r.load,e.meta[i],o!==a)}if(e.meta[t]&&F(r.load,e.meta[t],!1),r.packageKey){var s=t.substr(r.packageKey.length+1),u={};if(r.packageConfig.meta){var o=0;ge(r.packageConfig.meta,s,function(e,t,r){r>o&&(o=r),F(u,t,r&&o>r)}),F(r.load,u,!1)}r.packageConfig.format&&!r.pluginKey&&(r.load.format=r.load.format||r.packageConfig.format)}}function ne(e,t){var r,n,o=e?t.indexOf("!"):t.lastIndexOf("!");return-1!==o?(e?(r=t.substr(o+1),n=t.substr(0,o)):(r=t.substr(0,o),n=t.substr(o+1)||r.substr(r.lastIndexOf(".")+1)),{argument:r,plugin:n}):void 0}function oe(e,t,r){return e?r+"!"+t:t+"!"+r}function ie(e,t,r,n,o){if(!n||!t.defaultExtension||"/"===n[n.length-1]||o)return n;var i=!1;if(t.meta&&ge(t.meta,n,function(e,t,r){return 0===r||e.lastIndexOf("*")!==e.length-1?i=!0:void 0}),!i&&e.meta&&ge(e.meta,r+"/"+n,function(e,t,r){return 0===r||e.lastIndexOf("*")!==e.length-1?i=!0:void 0}),i)return n;var a="."+t.defaultExtension;return n.substr(n.length-a.length)!==a?n+a:n}function ae(e,t,r,n,o,i,a){if(!o){if(!r.main)return n;o="./"===r.main.substr(0,2)?r.main.substr(2):r.main}if(r.map){var s="./"+o,u=N(r.map,s);if(u||(s="./"+ie(e,r,n,o,a),s!=="./"+o&&(u=N(r.map,s))),u){var l=ue(e,t,r,n,u,s,i,a);if(l)return l}}return n+"/"+ie(e,r,n,o,a)}function se(e,t,r){return t.substr(0,e.length)===e&&r.length>e.length?!1:!0}function ue(e,t,r,n,o,i,a,s){"/"===i[i.length-1]&&(i=i.substr(0,i.length-1));var u=r.map[o];if("object"==typeof u)throw new Error("Synchronous conditional normalization not supported sync normalizing "+o+" in "+n);if(se(o,u,i)&&"string"==typeof u)return V.call(this,t,u+i.substr(o.length),n+"/",a,a,s)}function le(e,t,r,n,o,i,a){if(!o){if(!r.main)return Promise.resolve(n);o="./"===r.main.substr(0,2)?r.main.substr(2):r.main}var s,u;return r.map&&(s="./"+o,u=N(r.map,s),u||(s="./"+ie(e,r,n,o,a),s!=="./"+o&&(u=N(r.map,s)))),(u?ce(e,t,r,n,u,s,i,a):at).then(function(t){return Promise.resolve(t?t:n+"/"+ie(e,r,n,o,a))})}function ce(e,t,r,n,o,i,a,s){"/"===i[i.length-1]&&(i=i.substr(0,i.length-1));var u=r.map[o];if("string"==typeof u)return se(o,u,i)?ee.call(e,t,u+i.substr(o.length),n+"/",a,a,s).then(function(t){return ve.call(e,t,n+"/",a)}):at;var l=[],c=[];for(var f in u){var d=he(f);c.push({condition:d,map:u[f]}),l.push(e.import(d.module,n))}return Promise.all(l).then(function(e){for(var t=0;t1?"object"==typeof o?r[n]=be(o,t-1):"packageConfig"!==n&&(r[n]=o):r[n]=o}return r}function we(e,t){var r=e[t];return r instanceof Array?e[t].concat([]):"object"==typeof r?be(r,3):e[t]}function ke(e){if(e){if(-1!==vr.indexOf(e))return we(this[wt],e);throw new Error('"'+e+'" is not a valid configuration name. Must be one of '+vr.join(", ")+".")}for(var t={},r=0;r "+o.paths[a]+" is no longer supported as wildcards are deprecated."),delete o.paths[a])}if(e.defaultJSExtensions&&M.call(o,"The defaultJSExtensions configuration option is deprecated.\n Use packages defaultExtension instead.",!0),"boolean"==typeof e.pluginFirst&&(o.pluginFirst=e.pluginFirst),e.map)for(var a in e.map){var s=e.map[a];if("string"==typeof s)o.map[a]=Q.call(r,o,s,void 0,!1);else{var u=Q.call(r,o,a,void 0,!0),l=o.packages[u];l||(l=o.packages[u]=Oe(),l.defaultExtension=""),Se(l,{map:s},u,!1,o)}}if(e.packageConfigPaths){for(var c=[],f=0;ft.index)return!0;return!1}Pt.lastIndex=Zt.lastIndex=Xt.lastIndex=0;var r,n=[],o=[],i=[];if(e.length/e.split("\n").length<200){for(;r=Xt.exec(e);)o.push([r.index,r.index+r[0].length]);for(;r=Zt.exec(e);)t(o,r)||i.push([r.index+r[1].length,r.index+r[0].length-1])}for(;r=Pt.exec(e);)if(!t(o,r)&&!t(i,r)){var a=r[1].substr(1,r[1].length-2);if(a.match(/"|'/))continue;n.push(a)}return n}function Fe(e){if(-1===Yt.indexOf(e)){try{var t=it[e]}catch(t){Yt.push(e)}this(e,t)}}function Ke(e){if("string"==typeof e)return U(e,it);if(!(e instanceof Array))throw new Error("Global exports must be a string or array.");for(var t={},r=0;r1;)n=o.shift(),e=e[n]=e[n]||{};n=o.shift(),void 0===e[n]&&(e[n]=r)}function Ye(e,t){var r=e.match(dr);if(r)for(var n=r[0].match(pr),o=0;o${opts.message}`; 3 | } 4 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import { homepageComponent } from './components.js'; 2 | import { render } from './render.js'; 3 | 4 | render(homepageComponent({ 5 | message: `This application is rendered using 6 | ${self.__supportsScriptTypeModule ? 'ES modules' : ' System.register scripts'}.` 7 | })); 8 | -------------------------------------------------------------------------------- /src/render.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Eat your heart out React. 3 | */ 4 | export function render (html) { 5 | document.body.innerHTML = html; 6 | } 7 | --------------------------------------------------------------------------------