@idlekit/core 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +12 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/scenario/compile.d.ts +25 -0
- package/dist/scenario/compile.js +60 -0
- package/dist/scenario/compile.js.map +1 -1
- package/dist/scenario/scenarioContract.d.ts +152 -0
- package/dist/scenario/scenarioContract.js +2815 -0
- package/dist/scenario/scenarioContract.js.map +1 -0
- package/dist/sim/analysis/analyzers.d.ts +245 -0
- package/dist/sim/analysis/analyzers.js +1076 -0
- package/dist/sim/analysis/analyzers.js.map +1 -0
- package/dist/sim/analysis/contracts.d.ts +147 -0
- package/dist/sim/analysis/contracts.js +1230 -0
- package/dist/sim/analysis/contracts.js.map +1 -0
- package/dist/sim/analysis/distribution.d.ts +199 -0
- package/dist/sim/analysis/distribution.js +1246 -0
- package/dist/sim/analysis/distribution.js.map +1 -0
- package/dist/sim/analysis/eta.d.ts +118 -0
- package/dist/sim/analysis/eta.js +968 -70
- package/dist/sim/analysis/eta.js.map +1 -1
- package/dist/sim/analysis/experiment.d.ts +300 -0
- package/dist/sim/analysis/experiment.js +2206 -0
- package/dist/sim/analysis/experiment.js.map +1 -0
- package/dist/sim/analysis/growth.d.ts +2 -0
- package/dist/sim/analysis/growth.js +5 -1
- package/dist/sim/analysis/growth.js.map +1 -1
- package/dist/sim/analysis/growthFit.d.ts +183 -0
- package/dist/sim/analysis/growthFit.js +1798 -0
- package/dist/sim/analysis/growthFit.js.map +1 -0
- package/dist/sim/analysis/inspect.d.ts +236 -0
- package/dist/sim/analysis/inspect.js +388 -0
- package/dist/sim/analysis/inspect.js.map +1 -0
- package/dist/sim/analysis/metrics.d.ts +91 -0
- package/dist/sim/analysis/metrics.js +266 -0
- package/dist/sim/analysis/metrics.js.map +1 -0
- package/dist/sim/analysis/prestigeCycle.d.ts +6 -0
- package/dist/sim/analysis/prestigeCycle.js +10 -1
- package/dist/sim/analysis/prestigeCycle.js.map +1 -1
- package/dist/sim/analysis/registry.d.ts +41 -0
- package/dist/sim/analysis/registry.js +54 -0
- package/dist/sim/analysis/registry.js.map +1 -0
- package/dist/sim/analysis/resetActions.d.ts +7 -0
- package/dist/sim/analysis/resetActions.js +45 -0
- package/dist/sim/analysis/resetActions.js.map +1 -0
- package/dist/sim/analysis/resetCycle.d.ts +175 -0
- package/dist/sim/analysis/resetCycle.js +1009 -0
- package/dist/sim/analysis/resetCycle.js.map +1 -0
- package/dist/sim/analysis/resetOptimization.d.ts +198 -0
- package/dist/sim/analysis/resetOptimization.js +2187 -0
- package/dist/sim/analysis/resetOptimization.js.map +1 -0
- package/dist/sim/analysis/sensitivity.d.ts +73 -0
- package/dist/sim/analysis/sensitivity.js +160 -0
- package/dist/sim/analysis/sensitivity.js.map +1 -0
- package/dist/sim/monteCarlo.d.ts +12 -0
- package/dist/sim/monteCarlo.js +33 -4
- package/dist/sim/monteCarlo.js.map +1 -1
- package/dist/sim/observation.d.ts +22 -0
- package/dist/sim/observation.js +33 -0
- package/dist/sim/observation.js.map +1 -1
- package/dist/sim/offline.js +9 -2
- package/dist/sim/offline.js.map +1 -1
- package/dist/sim/random.d.ts +15 -0
- package/dist/sim/random.js +28 -0
- package/dist/sim/random.js.map +1 -1
- package/dist/sim/session.d.ts +7 -0
- package/dist/sim/session.js +13 -0
- package/dist/sim/session.js.map +1 -1
- package/dist/sim/simulator.js +7 -1
- package/dist/sim/simulator.js.map +1 -1
- package/dist/sim/step.d.ts +67 -1
- package/dist/sim/step.js +100 -18
- package/dist/sim/step.js.map +1 -1
- package/dist/sim/strategy/opt/freshRun.d.ts +3 -0
- package/dist/sim/strategy/opt/freshRun.js +6 -0
- package/dist/sim/strategy/opt/freshRun.js.map +1 -0
- package/dist/sim/strategy/opt/runner.js +2 -2
- package/dist/sim/strategy/opt/runner.js.map +1 -1
- package/dist/sim/strategy/planner.d.ts +26 -0
- package/dist/sim/strategy/planner.js +30 -0
- package/dist/sim/strategy/planner.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetOptimization.js","sourceRoot":"","sources":["../../../src/sim/analysis/resetOptimization.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,EAAoB,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAA2B,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EACL,aAAa,GAMd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,eAAe,GAIhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAErE;;;;GAIG;AAEH,MAAM,8BAA8B,GAAG,iBAA0B,CAAC;AAClE,MAAM,sBAAsB,GAAG,yDAAkE,CAAC;AAClG,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,6GAA6G;AAC7G,MAAM,uBAAuB,GAAG,KAAK,CAAC;AACtC,oHAAoH;AACpH,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,yGAAyG;AACzG,SAAS,WAAW,CAAC,UAAkB,EAAE,OAAe;IACtD,OAAO,YAAY,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kCAA2C,CAAC;AAEjF;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,kCAA2C,CAAC;AAEzF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,gCAAyC,CAAC;AAErF;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAyC,CAAC;AAEjF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAAoC,CAAC;AAExE,MAAM,UAAU,mBAAmB;IACjC,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO,8BAA8B,CAAC;AACxC,CAAC;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AA6FD;;;GAGG;AACH,IAAI,oCAA0G,CAAC;AAE/G;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAc,EAAsC,EAAE,CAChG,CAAC,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAkD,CAAC,CAAC,KAAK,CAAC,CAAC;AAElG,SAAS,0BAA0B;IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAyD;AAC3D,CAAC;AAED,IAAI,yBAAoF,CAAC;AAEzF;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,yBAAyB,KAAK,0BAA0B,EAAE,CAAC;IAC3D,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAuBD,qHAAqH;AACrH,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAElD,SAAS,YAAY,CAAC,KAAa,EAAE,KAAa;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,mBAAmB,CAAC,gBAAgB,KAAK,0BAA0B,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,uDAAuD,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,aAAa,CAAC,IAAsD;IAC3E,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACrD,MAAM,IAAI,mBAAmB,CAAC,wDAAwD,CAAC,CAAC;IAC1F,CAAC;IACD,iHAAiH;IACjH,IAAI,IAAI,CAAC,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC5C,MAAM,IAAI,mBAAmB,CAC3B,+DAA+D,uBAAuB,oBAAoB,CAC3G,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,uCAAuC,CAAC,CAAC;IACpG,8GAA8G;IAC9G,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,mBAAmB,CAAC,0EAA0E,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QACrD,uFAAuF;QACvF,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrF,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;YAAE,MAAM;QACxC,yGAAyG;QACzG,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,mBAAmB,CAAC,+DAA+D,CAAC,CAAC;QACjG,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,0CAA0C,CAAC,CAAC;IACtG,IAAI,SAAS,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACtC,MAAM,IAAI,mBAAmB,CAAC,0EAA0E,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,eAAe,GAAkC,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AACxH,MAAM,gBAAgB,GAAkC,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;AAEpG,SAAS,aAAa,CAA4B,OAAuC;IACvF,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,mBAAmB,CAAC,gDAAgD,CAAC,CAAC;IAClF,CAAC;IACD,yGAAyG;IACzG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,mBAAmB,CAAC,yCAAyC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,mBAAmB,CAAC,+CAA+C,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9G,CAAC;IACD,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,qDAAqD,CAAC,CAAC;IACpH,+GAA+G;IAC/G,sEAAsE;IACtE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,mBAAmB,CAAC,6DAA6D,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,mBAAmB,CAAC,qDAAqD,CAAC,CAAC;IACvF,CAAC;IACD,4DAA4D;IAC5D,IAAI,OAAO,CAAC,SAAS,KAAK,gBAAgB,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACjF,MAAM,IAAI,mBAAmB,CAAC,oDAAoD,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,mBAAmB,CAAC,+DAA+D,CAAC,CAAC;IACjG,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,iGAAiG;IACjG,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACjF,MAAM,IAAI,mBAAmB,CAAC,iDAAiD,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC,CAAC;IAC7F,CAAC;IACD,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,SAAS,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,mBAAmB,CAAC,6CAA6C,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7D,sGAAsG;QACtG,IAAI,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;QAC1H,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,mBAAmB,CAAC,yDAAyD,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;AACH,CAAC;AAKD;;;GAGG;AACH,SAAS,cAAc,CAAC,OAAsB;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACzC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,mBAAmB,CAAC,iCAAiC,CAAC,CAAC;IAC/E,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7F,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,iGAAiG;AACjG,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAoC,CAAC;AAE1E,SAAS,aAAa,CAAC,OAAsB;IAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAG,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC;QACvD,sGAAsG;QACtG,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IACxE,CAAC,CAAC;QACF,2GAA2G;SAC1G,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACrH,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wFAAwF;AACxF,SAAS,mBAAmB,CAAI,CAAY,EAAE,IAAY;IACxD,IAAI,MAAS,CAAC;IACd,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,mBAAmB,CAAC,6DAA6D,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,mBAAmB,CAAC,6DAA6D,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAI,CAAY,EAAE,KAAQ;IAC1C,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACrE,CAAC;AAED,SAAS,MAAM,CAAI,CAAY,EAAE,IAAO,EAAE,KAAQ,EAAE,QAAW,EAAE,QAAgB;IAC/E,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjE,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,KAAK,CAAI,CAAY,EAAE,MAAoB;IAClD,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QAC9D,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,KAAK,CAAI,CAAY,EAAE,IAAO,EAAE,IAAO,EAAE,QAAW,EAAE,QAAgB;IAC7E,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,aAAa,CAAI,CAAY,EAAE,MAAoB,EAAE,QAAW,EAAE,QAAgB;IACzF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAI,CAAY,EAAE,MAAoB,EAAE,QAAW,EAAE,QAAgB;IACtF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAI,CAAY,EAAE,MAAoB,EAAE,QAAW,EAAE,QAAgB;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,QAAQ,CACf,CAAY,EACZ,MAAoB,EACpB,SAAuB,EACvB,IAAyD,EACzD,QAAW;IAEX,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,IAAI,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB;QAAE,OAAO,mBAAmB,CAAC;IACpH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IACtG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtH,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9C,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAC1E,CAAC;IACF,IAAI,YAAY,IAAI,eAAe;QAAE,OAAO,QAAQ,CAAC;IACrD,IACE,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAC1D,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAC7D,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC1H,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,2FAA2F;AAC3F,SAAS,OAAO,CACd,QAAsC,EACtC,WAA4C;IAE5C,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,SAAS,MAAM,CAA4B,QAAsC;IAC/E,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IACvG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC7C,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACnC,CAAC;AAED,uGAAuG;AACvG,SAAS,QAAQ,CACf,QAAsC,EACtC,KAA2B,EAC3B,GAA2B;IAE3B,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AACpF,CAAC;AAED,SAAS,QAAQ,CACf,QAAsC,EACtC,KAA2B,EAC3B,GAA2B;IAE3B,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CACrB,OAAuC,EACvC,QAAsC,EACtC,KAA2B,EAC3B,GAA2B;IAE3B,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1H,CAAC;AAED,0GAA0G;AAC1G,SAAS,SAAS,CAChB,OAAuC,EACvC,QAAsC,EACtC,KAA2B,EAC3B,WAA4C,EAC5C,MAAyC;IAEzC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3G,CAAC;AAoBD,SAAS,gBAAgB,CAA4B,QAAsC;IACzF,OAAO;QACL,WAAW,EAAE,gBAAgB,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW;QACzF,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,eAAe,EAAE,IAAI,GAAG,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CACd,QAAsC,EACtC,QAAwC,EACxC,KAAmC;IAEnC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK,KAAK,CAAC;IACnE,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzD,wFAAwF;IACxF,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACxH,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;IACpE,wGAAwG;IACxG,8EAA8E;IAC9E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAC;IACpD,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACpB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC;YAAE,EAAE,GAAG,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAChF,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC3D,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,EAAE;YACH,GAAG,GAAG;YACN,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACxF,QAAQ,EAAE;gBACR,GAAG,QAAQ;gBACX,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACtC,IAAI,OAAO,EAAE,CAAC;wBACZ,kGAAkG;wBAClG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACnC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACtB,OAAO;oBACT,CAAC;oBACD,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACpC,QAAQ,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CACtB,QAAsC,EACtC,KAA2B,EAC3B,KAAmC;IAEnC,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK,KAAK;QAAE,OAAO;IACxD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,SAAS;QAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;YAAE,SAAS;QAC7D,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,IAAI,CACX,QAAsC,EACtC,KAA2B,EAC3B,WAA4C,EAC5C,OAA6C,EAC7C,WAAmB,EACnB,KAAgD,EAChD,MAAyC;IAEzC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IACvF,OAAO,WAAW,CAAC;QACjB,GAAG,QAAQ;QACX,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QACnD,OAAO,EAAE,KAAK;QACd,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,EAAE;YACH,GAAG,OAAO;YACV,WAAW;YACX,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAClB,QAAsC,EACtC,KAA2B,EAC3B,WAA4C,EAC5C,OAAiC,EACjC,IAAa,EACb,MAAyC;IAIzC,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC3B,yGAAyG;IACzG,iEAAiE;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/F,MAAM,OAAO,GAAG,cAAc,CAAC;QAC7B,GAAG;QACH,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK;QACL,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QACrC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,UAAU,EAAE,KAAK;QACjB,yGAAyG;QACzG,mBAAmB,EAAE,KAAK;KAC3B,CAAC,CAAC;IACH,IAAI,IAAI,EAAE,CAAC;QACT,yGAAyG;QACzG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,IAAI,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAClD,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;IACzB,oGAAoG;IACpG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACvH,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,eAAe,GACnB,MAAM,EAAE,IAAI,KAAK,UAAU;QACzB,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,CAAC,CAAC,WAAW,CAAC;IAClB,IAAI,IAAI;QAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACpG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AACnH,CAAC;AAED,SAAS,UAAU,CAAI,CAAY,EAAE,OAAqB;IACxD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CACtB,QAAsC,EACtC,KAAsB,EACtB,OAAuC;IAEvC,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC3B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,QAAQ,CACrB,CAAC,EACD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAC5C,OAAO,CAAC,SAAS,EACjB,QAAQ,CACT,CAAC;IACF,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,iBAAiB,EAAE,KAAK;QACxB,MAAM;QACN,cAAc,EAAE,KAAK,CAAC,MAAM;QAC5B,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB;QACtD,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO;QAClC,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB;QACtD,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB;QACtD,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;AACJ,CAAC;AAED,kHAAkH;AAClH,SAAS,OAAO,CACd,OAAuC,EACvC,WAAmB;IAEnB,oFAAoF;IACpF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,uFAAuF;IACvF,IAAI,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAClG,CAAC;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IACrI,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9F,iGAAiG;IACjG,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACjH,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/E,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IACrH,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACxF,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/G,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IAClH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAClG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAC1E,CAAC;IACF,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAClF,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IAClH,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;QAC/B,MAAM,EAAE,UAAU;QAClB,4FAA4F;QAC5F,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;QAC9B,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,OAAuC,EACvC,QAAsC,EACtC,KAA2B,EAC3B,WAA4C,EAC5C,MAAyC;IAEzC,6FAA6F;IAC7F,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACpF,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,WAAW,CAClB,IAAwB,EACxB,QAAgB,EAChB,KAAa,EACb,YAA2B,EAC3B,UAA8C;IAE9C,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC1E,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,OAAO,UAAU,KAAK,UAAU,IAAI,YAAY,KAAK,IAAI;YACvD,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;YAClD,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa,CACpB,OAAuC,EACvC,QAAsC,EACtC,WAAmB,EACnB,MAAsC,EACtC,KAAsB,EACtB,GAAyB,EACzB,UAA8C,EAC9C,UAAa,EACb,YAA2B,EAC3B,KAAwB,EACxB,QAA6B,EAC7B,MAA8B;IAE9B,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC3B,MAAM,SAAS,GAAG,KAAK,CAAC;IACxB,MAAM,QAAQ,GAAG,UAAU,CACzB,CAAC,EACD,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAC7C,CAAC;IACF,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,MAAM,UAAU,GAAuC,OAAO,CAAC,IAAI;QACjE,CAAC,CAAC,YAAY,KAAK,IAAI;YACrB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,UAAU;QACd,CAAC,CAAC,eAAe,CAAC;IACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACpH,OAAO;QACL,WAAW;QACX,MAAM;QACN,eAAe,EAAE,SAAS,CAAC,MAAM;QACjC,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACpC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACxC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChC,UAAU;QACV,qBAAqB,EAAE,sBAAsB;QAC7C,UAAU;QACV,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;QACxD,cAAc,EAAE,SAAS,CAAC,KAAK;QAC/B,gBAAgB,EAAE,SAAS,CAAC,OAAO;QACnC,cAAc,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,SAAS,WAAW,CAClB,OAAuC,EACvC,MAAoC,EACpC,KAA0B;IAE1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAuC,EACvC,WAAmB;IAEnB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC1C,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC3B,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/C,qEAAqE;IACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAyB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACvC,sGAAsG;IACtG,IAAI,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/C,uGAAuG;IACvG,MAAM,QAAQ,GAAG,WAAW,CAC1B,OAAO,EACP,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,CAAC,EAAE,EAAE;QACJ,IAAI,OAAO,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChF,CAAC,CACF,CAAC;IACF,sFAAsF;IACtF,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,MAAoD,CAAC;IACzD,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,gGAAgG;IAChG,yGAAyG;IACzG,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,OAAO,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1C,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC3C,gHAAgH;QAChH,MAAM,IAAI,GAAG,kBAAkB,CAAC;YAC9B,QAAQ,EAAE,QAAQ,EAAE;YACpB,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE;YAC1D,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,MAAM,GAAG,GAAgC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACnB,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QACzB,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC3C,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM;QACR,CAAC;QACD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,GAAG,GAAG,EAAE,kBAAkB,KAAK,SAAS,CAAC;YAChD,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1G,2FAA2F;QAC3F,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3D,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpC,iHAAiH;QACjH,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3C,iGAAiG;IACjG,oGAAoG;IACpG,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC;IAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5G,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;QACnB,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,GAAG,kBAAkB,CAAC;IAC7C,MAAM,UAAU,GACd,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzK,2EAA2E;IAC3E,+GAA+G;IAC/G,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACvG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/F,MAAM,MAAM,GACV,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,OAAO,IAAI,WAAW;YACtB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,IAAI,CAAC;IACf,OAAO;QACL,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,aAAa,CACnB,OAAO,EACP,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,KAAK,EACL,UAAU,EACV,UAAU,EACV,OAAO,CAAC,CAAC,EACT,UAAU,EACV,QAAQ,EACR,SAAS,CACV;KACF,CAAC;AACJ,CAAC;AAqBD;;;;;GAKG;AACH,SAAS,YAAY,CACnB,OAAuC,EACvC,QAAsC,EACtC,WAAmB,EACnB,OAAgG;IAEhG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,mBAAmB,CAAC,iCAAiC,CAAC,CAAC;IAC/E,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC7B,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACvC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,2FAA2F;IAC3F,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAyB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,QAAQ,GAA2E,IAAI,CAAC;IAC5F,2GAA2G;IAC3G,oHAAoH;IACpH,IAAI,OAAO,GAAgF;QACzF,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,KAAK,CAAC,CAAC;QACpB,gBAAgB,EAAE,IAAI;KACvB,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO,CACL,OAAO,CAAC,SAAS;YACjB,CAAC,OAAO,CAAC,gBAAgB,KAAK,IAAI;gBAChC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CACvF,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAgD,EAAE,CACrG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAClD,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;QACnG,CAAC,CAAC,SAAS,CAAC;IAChB,gHAAgH;IAChH,qHAAqH;IACrH,8FAA8F;IAC9F,IAAI,WAAW,GAAwD,IAAI,CAAC;IAC5E,MAAM,KAAK,GAAG,CAAC,OAAe,EAA0B,EAAE;QACxD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3E,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CAAC;IACF,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,2GAA2G;IAC3G,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,YAAY,GAA0B,OAAO,CAAC,SAAS;QAC3D,CAAC,CAAC,WAAW,CACT,OAAO,EACP,GAAG,EAAE,CAAC,UAAU,EAChB,CAAC,CAAC,EAAE,EAAE;YACJ,IAAI,OAAO,CAAC,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC,CACF;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAA0B,CAAC,GAAG,YAAY,CAAC,CAAC;IAC1D,6GAA6G;IAC7G,MAAM,WAAW,GAAG,CAAC,MAAc,EAAQ,EAAE;QAC3C,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC;QACnB,KAAK,MAAM,OAAO,IAAI,YAAY;YAAE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,EAAE;QACxC,UAAU,GAAG,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CACjB,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAClC,KAAK,EACL,WAAW,EACX,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,EAChD,WAAW,EACX,SAAS,EACT,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,CACvE,CAAC;QACF,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;QACnB,IAAI,IAAI,WAAW,CAAC;QACpB,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE;QACpC,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;YAAE,OAAO;QAC7B,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC;QACrF,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,mBAAmB,CAAC;YAClC,QAAQ,EAAE;gBACR,GAAG,IAAI;gBACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBACxF,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxC;YACD,OAAO,EAAE,MAAM,GAAG,IAAI;YACtB,OAAO,EAAE;gBACP,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;gBAChE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI;gBACvB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO;aAC7B;SACF,CAAC,CAAC;QACH,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,GAAG,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK;YAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3C,WAAW,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,WAAW,EAAE,IAAI,CAAC,CAAC;YACzD,qHAAqH;YACrH,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAAE,MAAM;YACzG,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,EAAE,GAAG,IAAI;gBAAE,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YACrF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,WAAW,GAAG,IAAI,CAAC;gBACnB,UAAU,GAAG,KAAK,CAAC;gBACnB,MAAM;YACR,CAAC;YACD,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YACxE,6GAA6G;YAC7G,+GAA+G;YAC/G,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAClC,IAAI,OAAO,CAAC,SAAS,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,YAAY,CAAC,WAAW,EAAE,4BAA4B,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9H,WAAW,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YACvG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,UAAU,GAAG,KAAK,CAAC;gBACnB,MAAM;YACR,CAAC;YACD,8GAA8G;YAC9G,gDAAgD;YAChD,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnC,WAAW,EAAE,EAAE,GAAG,aAAa;gBAC/B,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;aAC5D,CAAC,CAAC;YACH,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YACxB,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,WAAW,GAAG,EAAE,CAAC;YACjB,gHAAgH;YAChH,iCAAiC;YACjC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,8GAA8G;YAC9G,IAAI,OAAO,CAAC,IAAI;gBAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1D,wGAAwG;YACxG,mFAAmF;YACnF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,4BAA4B,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnH,WAAW,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,OAAO,CAAC,aAAa,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,IAAqB,EAAE,CAAC;gBAC/E,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;qBACzG,CAAC;oBACJ,QAAQ,CAAC,IAAI,CAAC;wBACZ,EAAE,EAAE,iBAAiB;wBACrB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;wBACzF,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;4BACX,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;gCAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChE,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,aAAa,GAAG,EAAE,CAAC;YACnB,8DAA8D;YAC9D,IAAI,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG;YAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QAClD,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,MAAM,aAAa,GAAG,WAAW,CAAC;IAClC,4EAA4E;IAC5E,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/B,mGAAmG;IACnG,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU;QAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IACzD,mHAAmH;IACnH,wCAAwC;IACxC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IACpC,MAAM,MAAM,GAA2B,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1H,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,4BAA4B,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACzG,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,4GAA4G;IAC5G,MAAM,YAAY,GAAG,QAAkF,CAAC;IACxG,IACE,YAAY;QACZ,YAAY,CAAC,WAAW,KAAK,IAAI;QACjC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EACpF,CAAC;QACD,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;IAClC,CAAC;IACD,OAAO;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,WAAW;QACX,OAAO;QACP,WAAW;QACX,aAAa;QACb,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM;QACN,YAAY,EAAE,OAAO,CAAC,CAAC;QACvB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAAuC,EACvC,WAAmB;IAEnB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC1C,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC3B,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC5D,4GAA4G;IAC5G,iFAAiF;IACjF,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE;QACjF,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,KAAK;QACX,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAwB,KAAK,CAAC,QAAQ;QAClD,CAAC,CAAC;YACE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YAC/B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;YACrE,sGAAsG;YACtG,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS;YAC3G,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;SAChD;QACH,CAAC,CAAC;YACE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YAC/B,MAAM,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;YACvE,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,KAAK;SACjB,CAAC;IACN,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;QAC3D,MAAM,EAAE,OAAO,CAAC,WAAW;QAC3B,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,kGAAkG;IAClG,MAAM,UAAU,GACd,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,UAAU;QACjG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE;QAC1H,CAAC,CAAC,IAAI,CAAC;IACX,kHAAkH;IAClH,mFAAmF;IACnF,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC;IAC7H,MAAM,UAAU,GAAG,UAAU,IAAI,eAAe;QAC9C,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5F,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACb,MAAM,MAAM,GACV,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC/C,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW;YACtC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAC1B,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,IAAI,CAAC;IACf,OAAO;QACL,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,aAAa,CACnB,OAAO,EACP,QAAQ,EACR,WAAW,EACX,MAAM,EACN,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,UAAU,EACV,UAAU,EACV,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,KAAK,EACb,QAAQ,EACR,OAAO,CAAC,MAAM,CACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAI,IAAwB,EAAE,IAA0B,EAAE,KAA2B,EAAE,CAAY;IAChH,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/E,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChF,OAAO,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,KAAK,CAAC,cAAc,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAuC;IAEvC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAC/F,CAAC;IACF,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,mBAAmB,CAAC,0CAA0C,CAAC,CAAC;IACtF,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM;YAAE,SAAS;QACpC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YAAE,SAAS,GAAG,KAAK,CAAC;IAClG,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa;QACjC,CAAC,CAAC;YACE,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY;YAChD,YAAY,EAAE,UAAU,CAAC,UAAU,IAAI,EAAE;YACzC,OAAO,EACL,UAAU,CAAC,UAAU,KAAK,IAAI;gBAC9B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oBACxH,CAAC;SACN;QACH,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,WAAW,GAAG;QAClB,6EAA6E;QAC7E,mFAAmF;QACnF,wFAAwF;QACxF,0FAA0F;QAC1F,2CAA2C;QAC3C,6DAA6D;KAC9D,CAAC;IACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAClF,WAAW,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;QAChG,WAAW,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QACpG,WAAW,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,KAAK,gBAAgB,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC;IACpG,yGAAyG;IACzG,MAAM,MAAM,GAAoC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC;QAC/G,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,UAAU,IAAI,YAAY;YAChD,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,YAAY;gBAClC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,mBAAmB;oBACnD,CAAC,CAAC,mBAAmB;oBACrB,CAAC,CAAC,IAAI,CAAC;IACf,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,8BAA8B;QAChD,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,YAAY;QACnB,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE;YACJ,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,SAAS,EAAE;gBACT,IAAI,EAAE,OAAO,CAAC,SAAS;gBACvB,OAAO,EAAE,UAAU,CAAC,gBAAgB;gBACpC,KAAK,EAAE,UAAU,CAAC,cAAc;aACjC;YACD,UAAU,EAAE;gBACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;gBAC7B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;gBACzB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;gBAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,cAAc,EAAE,SAAS,CAAC,MAAM;gBAChC,KAAK,EAAE,YAAY;gBACnB,aAAa,EAAE,KAAK;aACrB;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe;gBACxD,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI;gBAC9C,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,IAAI,IAAI;aACtD;YACD,WAAW,EAAE;gBACX,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM;gBACnC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM;gBACtC,iBAAiB,EAAE,KAAK;gBACxB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM;aACrC;SACF;QACD,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;QAClD,aAAa,EAAE,KAAK;QACpB,WAAW;QACX,QAAQ,EAAE;YACR,yDAAyD;YACzD,+DAA+D;YAC/D,mEAAmE;SACpE;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { ParamSpace } from "../strategy/opt/tuneSpec";
|
|
2
|
+
/**
|
|
3
|
+
* Local one-at-a-time sensitivity.
|
|
4
|
+
* This is not a global sensitivity index and not a Sobol index.
|
|
5
|
+
*/
|
|
6
|
+
export type ElasticityDirection = "higher" | "lower" | "flat" | "unavailable";
|
|
7
|
+
export type LocalElasticity = Readonly<{
|
|
8
|
+
status: "observed" | "unavailable";
|
|
9
|
+
elasticity: string | null;
|
|
10
|
+
absoluteChange: string | null;
|
|
11
|
+
direction: ElasticityDirection;
|
|
12
|
+
globalSensitivity: false;
|
|
13
|
+
sobol: false;
|
|
14
|
+
}>;
|
|
15
|
+
export type ParetoSense = "lower" | "higher";
|
|
16
|
+
export type ParetoObjective = Readonly<{
|
|
17
|
+
id: string;
|
|
18
|
+
sense: ParetoSense;
|
|
19
|
+
value: number | null;
|
|
20
|
+
}>;
|
|
21
|
+
export type ParetoPoint = Readonly<{
|
|
22
|
+
id: string;
|
|
23
|
+
objectives: readonly ParetoObjective[];
|
|
24
|
+
}>;
|
|
25
|
+
export type ParetoFront = Readonly<{
|
|
26
|
+
sense: "per-metric";
|
|
27
|
+
nonDominated: readonly string[];
|
|
28
|
+
uncompared: readonly string[];
|
|
29
|
+
}>;
|
|
30
|
+
export declare function assignmentFitsParamSpace(space: ParamSpace, value: string | number | boolean | null): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Relative elasticity only when baseline p and y are finite and greater than zero and p changes.
|
|
33
|
+
* A missing y is not replaced with the horizon.
|
|
34
|
+
*/
|
|
35
|
+
export declare function localElasticity(args: Readonly<{
|
|
36
|
+
baselineP: number;
|
|
37
|
+
probeP: number;
|
|
38
|
+
baselineY: number | null;
|
|
39
|
+
probeY: number | null;
|
|
40
|
+
}>): LocalElasticity;
|
|
41
|
+
/**
|
|
42
|
+
* `(probeP - baselineP) / baselineP`. When the difference of two finite parameters overflows, the ratio
|
|
43
|
+
* `probeP / baselineP - 1` gives the same relative change without leaving the double range.
|
|
44
|
+
*/
|
|
45
|
+
export declare function relativeParameterChange(baselineP: number, probeP: number): number;
|
|
46
|
+
/**
|
|
47
|
+
* Relative elasticity from a change measured in the metric's own arithmetic, such as an engine amount.
|
|
48
|
+
* `relativeChange` is `(probeY - baselineY) / baselineY`, or null when baseline y is not greater than zero.
|
|
49
|
+
* The elasticity is reported only when baseline p is finite and greater than zero and p changes.
|
|
50
|
+
*/
|
|
51
|
+
export declare function elasticityFromChange(args: Readonly<{
|
|
52
|
+
baselineP: number;
|
|
53
|
+
probeP: number;
|
|
54
|
+
absoluteChange: string | null;
|
|
55
|
+
direction: Exclude<ElasticityDirection, "unavailable">;
|
|
56
|
+
relativeChange: number | null;
|
|
57
|
+
}>): LocalElasticity;
|
|
58
|
+
/**
|
|
59
|
+
* Pareto front under a caller order, such as an engine comparison. Every pair is compared directly,
|
|
60
|
+
* so an order with a tolerance is not chained through a third point. A null objective is uncompared.
|
|
61
|
+
*/
|
|
62
|
+
export declare function paretoFrontBy<T>(points: readonly Readonly<{
|
|
63
|
+
id: string;
|
|
64
|
+
objectives: readonly Readonly<{
|
|
65
|
+
sense: ParetoSense;
|
|
66
|
+
value: T | null;
|
|
67
|
+
}>[];
|
|
68
|
+
}>[], compare: (left: T, right: T) => number): ParetoFront;
|
|
69
|
+
/**
|
|
70
|
+
* Fully observed points only. A null objective cannot dominate and is not dominated into a win.
|
|
71
|
+
* Objectives are matched by id, so two points may list them in different orders. Points must share one id set.
|
|
72
|
+
*/
|
|
73
|
+
export declare function paretoFront(points: readonly ParetoPoint[]): ParetoFront;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
const UNAVAILABLE = {
|
|
2
|
+
status: "unavailable",
|
|
3
|
+
elasticity: null,
|
|
4
|
+
absoluteChange: null,
|
|
5
|
+
direction: "unavailable",
|
|
6
|
+
globalSensitivity: false,
|
|
7
|
+
sobol: false,
|
|
8
|
+
};
|
|
9
|
+
export function assignmentFitsParamSpace(space, value) {
|
|
10
|
+
// Canonical JSON, task text, and probe ids write -0 as 0, so -0 would share every descriptor with 0.
|
|
11
|
+
if (Object.is(value, -0))
|
|
12
|
+
return false;
|
|
13
|
+
if (space.kind === "bool")
|
|
14
|
+
return typeof value === "boolean";
|
|
15
|
+
if (space.kind === "int") {
|
|
16
|
+
return typeof value === "number" && Number.isInteger(value) && value >= space.min && value <= space.max;
|
|
17
|
+
}
|
|
18
|
+
if (space.kind === "number") {
|
|
19
|
+
return typeof value === "number" && Number.isFinite(value) && value >= space.min && value <= space.max;
|
|
20
|
+
}
|
|
21
|
+
// A JSON literal such as 1e400 parses to Infinity, and canonical JSON would write it as null.
|
|
22
|
+
if (typeof value === "number" && !Number.isFinite(value))
|
|
23
|
+
return false;
|
|
24
|
+
return space.values.some((entry) => entry === value);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Relative elasticity only when baseline p and y are finite and greater than zero and p changes.
|
|
28
|
+
* A missing y is not replaced with the horizon.
|
|
29
|
+
*/
|
|
30
|
+
export function localElasticity(args) {
|
|
31
|
+
const { baselineP, probeP, baselineY, probeY } = args;
|
|
32
|
+
if (baselineY === null || probeY === null || !Number.isFinite(baselineY) || !Number.isFinite(probeY)) {
|
|
33
|
+
return UNAVAILABLE;
|
|
34
|
+
}
|
|
35
|
+
// Two finite values of opposite sign near the double limit have a difference outside it. The ratio stays finite.
|
|
36
|
+
const delta = probeY - baselineY;
|
|
37
|
+
const finiteDelta = Number.isFinite(delta);
|
|
38
|
+
return elasticityFromChange({
|
|
39
|
+
baselineP,
|
|
40
|
+
probeP,
|
|
41
|
+
absoluteChange: finiteDelta ? String(delta) : null,
|
|
42
|
+
direction: probeY > baselineY ? "higher" : probeY < baselineY ? "lower" : "flat",
|
|
43
|
+
relativeChange: baselineY > 0 ? (finiteDelta ? delta / baselineY : probeY / baselineY - 1) : null,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* `(probeP - baselineP) / baselineP`. When the difference of two finite parameters overflows, the ratio
|
|
48
|
+
* `probeP / baselineP - 1` gives the same relative change without leaving the double range.
|
|
49
|
+
*/
|
|
50
|
+
export function relativeParameterChange(baselineP, probeP) {
|
|
51
|
+
const delta = probeP - baselineP;
|
|
52
|
+
return Number.isFinite(delta) ? delta / baselineP : probeP / baselineP - 1;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Relative elasticity from a change measured in the metric's own arithmetic, such as an engine amount.
|
|
56
|
+
* `relativeChange` is `(probeY - baselineY) / baselineY`, or null when baseline y is not greater than zero.
|
|
57
|
+
* The elasticity is reported only when baseline p is finite and greater than zero and p changes.
|
|
58
|
+
*/
|
|
59
|
+
export function elasticityFromChange(args) {
|
|
60
|
+
const { baselineP, probeP, absoluteChange, direction, relativeChange } = args;
|
|
61
|
+
const unavailable = {
|
|
62
|
+
status: "unavailable",
|
|
63
|
+
elasticity: null,
|
|
64
|
+
absoluteChange,
|
|
65
|
+
direction,
|
|
66
|
+
globalSensitivity: false,
|
|
67
|
+
sobol: false,
|
|
68
|
+
};
|
|
69
|
+
const pChanged = Number.isFinite(baselineP) && Number.isFinite(probeP) && probeP !== baselineP;
|
|
70
|
+
if (relativeChange === null || !Number.isFinite(relativeChange) || !(baselineP > 0) || !pChanged)
|
|
71
|
+
return unavailable;
|
|
72
|
+
// A tiny positive baseline can make the parameter change overflow. Dividing by it would report a false 0.
|
|
73
|
+
const parameterChange = relativeParameterChange(baselineP, probeP);
|
|
74
|
+
if (!Number.isFinite(parameterChange) || parameterChange === 0)
|
|
75
|
+
return unavailable;
|
|
76
|
+
const elasticity = relativeChange / parameterChange;
|
|
77
|
+
if (!Number.isFinite(elasticity))
|
|
78
|
+
return unavailable;
|
|
79
|
+
return {
|
|
80
|
+
status: "observed",
|
|
81
|
+
elasticity: String(elasticity),
|
|
82
|
+
absoluteChange,
|
|
83
|
+
direction,
|
|
84
|
+
globalSensitivity: false,
|
|
85
|
+
sobol: false,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function dominates(left, right, compare) {
|
|
89
|
+
let better = false;
|
|
90
|
+
for (let index = 0; index < left.values.length; index += 1) {
|
|
91
|
+
const order = compare(left.values[index], right.values[index]);
|
|
92
|
+
const ahead = left.senses[index] === "lower" ? order < 0 : order > 0;
|
|
93
|
+
const behind = left.senses[index] === "lower" ? order > 0 : order < 0;
|
|
94
|
+
if (behind)
|
|
95
|
+
return false;
|
|
96
|
+
if (ahead)
|
|
97
|
+
better = true;
|
|
98
|
+
}
|
|
99
|
+
return better;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Pareto front under a caller order, such as an engine comparison. Every pair is compared directly,
|
|
103
|
+
* so an order with a tolerance is not chained through a third point. A null objective is uncompared.
|
|
104
|
+
*/
|
|
105
|
+
export function paretoFrontBy(points, compare) {
|
|
106
|
+
// The front lists ids, so two points with one id would be ambiguous and would never compare against each other.
|
|
107
|
+
if (new Set(points.map((point) => point.id)).size !== points.length)
|
|
108
|
+
throw new Error("Pareto point ids must be unique");
|
|
109
|
+
// Dominance reads each position with one sense, so every point must list the same objective count and senses.
|
|
110
|
+
const shape = points[0]?.objectives.map((item) => item.sense) ?? [];
|
|
111
|
+
for (const point of points) {
|
|
112
|
+
if (point.objectives.length !== shape.length || point.objectives.some((item, index) => item.sense !== shape[index])) {
|
|
113
|
+
throw new Error(`Pareto point ${point.id} does not share the objective count and senses of the other points`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
const comparable = [];
|
|
117
|
+
const uncompared = [];
|
|
118
|
+
for (const point of points) {
|
|
119
|
+
if (point.objectives.length === 0 || point.objectives.some((item) => item.value === null)) {
|
|
120
|
+
uncompared.push(point.id);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
comparable.push({
|
|
124
|
+
id: point.id,
|
|
125
|
+
values: point.objectives.map((item) => item.value),
|
|
126
|
+
senses: point.objectives.map((item) => item.sense),
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
const nonDominated = comparable
|
|
130
|
+
.filter((candidate) => !comparable.some((other) => other.id !== candidate.id && dominates(other, candidate, compare)))
|
|
131
|
+
.map((candidate) => candidate.id)
|
|
132
|
+
.sort((left, right) => (left < right ? -1 : left > right ? 1 : 0));
|
|
133
|
+
uncompared.sort((left, right) => (left < right ? -1 : left > right ? 1 : 0));
|
|
134
|
+
return { sense: "per-metric", nonDominated, uncompared };
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Fully observed points only. A null objective cannot dominate and is not dominated into a win.
|
|
138
|
+
* Objectives are matched by id, so two points may list them in different orders. Points must share one id set.
|
|
139
|
+
*/
|
|
140
|
+
export function paretoFront(points) {
|
|
141
|
+
const first = points[0]?.objectives ?? [];
|
|
142
|
+
const ids = first.map((item) => item.id).sort();
|
|
143
|
+
const senses = new Map(first.map((item) => [item.id, item.sense]));
|
|
144
|
+
return paretoFrontBy(points.map((point) => {
|
|
145
|
+
const byId = new Map(point.objectives.map((item) => [item.id, item]));
|
|
146
|
+
if (byId.size !== point.objectives.length || byId.size !== ids.length || ids.some((id) => !byId.has(id))) {
|
|
147
|
+
throw new Error(`Pareto point ${point.id} does not list the same objective ids as the other points`);
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
id: point.id,
|
|
151
|
+
objectives: ids.map((id) => {
|
|
152
|
+
const item = byId.get(id);
|
|
153
|
+
if (item.sense !== senses.get(id))
|
|
154
|
+
throw new Error(`Pareto point ${point.id} gives objective ${id} another sense`);
|
|
155
|
+
return { sense: item.sense, value: item.value === null || !Number.isFinite(item.value) ? null : item.value };
|
|
156
|
+
}),
|
|
157
|
+
};
|
|
158
|
+
}), (left, right) => (left < right ? -1 : left > right ? 1 : 0));
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=sensitivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensitivity.js","sourceRoot":"","sources":["../../../src/sim/analysis/sensitivity.ts"],"names":[],"mappings":"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"}
|
package/dist/sim/monteCarlo.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { type SessionPatternSpec, type SessionRunResult } from "./session";
|
|
2
2
|
import { type RunBindOptions, type RunFactoryDeps } from "./runFactory";
|
|
3
3
|
import type { CompiledScenario, RunResult } from "./types";
|
|
4
|
+
/**
|
|
5
|
+
* @evidence docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws Draws and the base seed are finite. The loop bound is that integer.
|
|
6
|
+
* @evidenceReview docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws #6e3688a Re-read the section: NaN and Infinity do not become an empty result or an open loop, and draw index 2 keeps its seed when the calls are reversed.
|
|
7
|
+
*/
|
|
8
|
+
export declare const monteCarloDrawBudget: "finite-integer-draws";
|
|
9
|
+
export declare class MonteCarloRejected extends Error {
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
12
|
+
/** Rejects a request that would clamp NaN into an empty run or loop forever. */
|
|
13
|
+
export declare function assertMonteCarloDrawRequest(draws: number, seed: number, budget?: number): number;
|
|
4
14
|
export type MonteCarloMetricEvaluator<N, U extends string, Vars, T> = (args: {
|
|
5
15
|
scenario: CompiledScenario<N, U, Vars>;
|
|
6
16
|
run: RunResult<N, U, Vars>;
|
|
@@ -14,6 +24,8 @@ export type MonteCarloOptions<N, U extends string, Vars, T> = Readonly<{
|
|
|
14
24
|
seed: number;
|
|
15
25
|
sessionPattern?: SessionPatternSpec;
|
|
16
26
|
metrics: MonteCarloMetricEvaluator<N, U, Vars, T>;
|
|
27
|
+
/** Upper bound on the floored draw count. Non-finite values throw. */
|
|
28
|
+
budget?: number;
|
|
17
29
|
/** Registries used to construct a new model or strategy for each draw. */
|
|
18
30
|
registries?: RunFactoryDeps;
|
|
19
31
|
/**
|
package/dist/sim/monteCarlo.js
CHANGED
|
@@ -1,16 +1,45 @@
|
|
|
1
1
|
import { simulateSessionPattern } from "./session";
|
|
2
2
|
import { runScenario } from "./simulator";
|
|
3
3
|
import { createRunFactory } from "./runFactory";
|
|
4
|
-
import {
|
|
4
|
+
import { logicalDrawId, logicalDrawSeed } from "./random";
|
|
5
|
+
/**
|
|
6
|
+
* @evidence docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws Draws and the base seed are finite. The loop bound is that integer.
|
|
7
|
+
* @evidenceReview docs/requirements/active/simulation-distribution.md#req-pr13-logical-draws #6e3688a Re-read the section: NaN and Infinity do not become an empty result or an open loop, and draw index 2 keeps its seed when the calls are reversed.
|
|
8
|
+
*/
|
|
9
|
+
export const monteCarloDrawBudget = "finite-integer-draws";
|
|
10
|
+
export class MonteCarloRejected extends Error {
|
|
11
|
+
constructor(message) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "MonteCarloRejected";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Rejects a request that would clamp NaN into an empty run or loop forever. */
|
|
17
|
+
export function assertMonteCarloDrawRequest(draws, seed, budget) {
|
|
18
|
+
if (typeof draws !== "number" || !Number.isFinite(draws) || draws < 1) {
|
|
19
|
+
throw new MonteCarloRejected("monte carlo draws must be a finite number >= 1");
|
|
20
|
+
}
|
|
21
|
+
const count = Math.floor(draws);
|
|
22
|
+
if (count < 1)
|
|
23
|
+
throw new MonteCarloRejected("monte carlo draws must be a finite number >= 1");
|
|
24
|
+
if (typeof seed !== "number" || !Number.isFinite(seed)) {
|
|
25
|
+
throw new MonteCarloRejected("monte carlo seed must be finite");
|
|
26
|
+
}
|
|
27
|
+
if (budget !== undefined) {
|
|
28
|
+
if (typeof budget !== "number" || !Number.isFinite(budget) || budget < count) {
|
|
29
|
+
throw new MonteCarloRejected("monte carlo budget must be a finite number >= draws");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return count;
|
|
33
|
+
}
|
|
5
34
|
export function simulateMonteCarlo(args) {
|
|
6
|
-
const draws =
|
|
35
|
+
const draws = assertMonteCarloDrawRequest(args.draws, args.seed, args.budget);
|
|
7
36
|
const results = [];
|
|
8
37
|
const binding = createRunFactory(args.registries).bind(args.scenario, args.isolation);
|
|
9
38
|
let failed = false;
|
|
10
39
|
try {
|
|
11
40
|
for (let drawIndex = 0; drawIndex < draws; drawIndex += 1) {
|
|
12
|
-
const seed =
|
|
13
|
-
const scenario = binding.fresh({ trialId:
|
|
41
|
+
const seed = logicalDrawSeed(args.seed, drawIndex);
|
|
42
|
+
const scenario = binding.fresh({ trialId: logicalDrawId(drawIndex), seed }).scenario;
|
|
14
43
|
if (args.sessionPattern) {
|
|
15
44
|
const session = simulateSessionPattern({
|
|
16
45
|
scenario,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monteCarlo.js","sourceRoot":"","sources":["../../src/sim/monteCarlo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAkD,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAA4C,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"monteCarlo.js","sourceRoot":"","sources":["../../src/sim/monteCarlo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ObservationLedger } from "./goalRead";
|
|
2
2
|
import { type MetricStatus, type SimStats } from "./analysis/ux";
|
|
3
|
+
import type { CommittedResetFact } from "./step";
|
|
3
4
|
import type { SimEvent, SimState } from "./types";
|
|
4
5
|
/**
|
|
5
6
|
* Resolved observation contract. TC-05 has not registered this DTO.
|
|
@@ -84,7 +85,28 @@ export type RunObserver = Readonly<{
|
|
|
84
85
|
t: number;
|
|
85
86
|
goalId: string;
|
|
86
87
|
}>) => void;
|
|
88
|
+
/**
|
|
89
|
+
* A committed reset action. A `prestige.count` change is not this fact.
|
|
90
|
+
* `wallT` is the session wall clock when the model declared one. It is not an OS clock.
|
|
91
|
+
*/
|
|
92
|
+
onReset?: (fact: CommittedResetFact) => void;
|
|
87
93
|
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Tell the observer about reset actions that actually committed.
|
|
96
|
+
* Callers pass the action receipt. This function does not read `prestige.count`.
|
|
97
|
+
*
|
|
98
|
+
* @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset Reset facts come from the committed action, not from a prestige count change.
|
|
99
|
+
* @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: onReset is the action receipt, and a count change alone is not a reset.
|
|
100
|
+
*/
|
|
101
|
+
export declare function emitCommittedResets(observer: RunObserver | undefined, resets: readonly CommittedResetFact[]): void;
|
|
102
|
+
/**
|
|
103
|
+
* Tell the observer about actions decided outside a runner step, such as a reset committed at a cycle boundary.
|
|
104
|
+
* The facts are the ones the runner's recorder forwards for an action decided inside a step.
|
|
105
|
+
*
|
|
106
|
+
* @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset A boundary reset reaches onAction like an action decided in a step.
|
|
107
|
+
* @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: the boundary action is committed through the action payment path, so its applied or skipped fact is an action fact.
|
|
108
|
+
*/
|
|
109
|
+
export declare function emitActionFacts<N>(observer: RunObserver | undefined, t: number, events: readonly SimEvent<N>[]): void;
|
|
88
110
|
export type RunGoal<N, U extends string, Vars> = Readonly<{
|
|
89
111
|
id: string;
|
|
90
112
|
met: (state: SimState<N, U, Vars>) => boolean;
|
package/dist/sim/observation.js
CHANGED
|
@@ -8,6 +8,39 @@ import { simStatsFromCounters } from "./analysis/ux";
|
|
|
8
8
|
* @evidenceReview docs/requirements/active/observation-retention.md#req-pr05-observation-retention #d4a8252 Re-read explicit collectMoneyEvents precedence and the compact facts clause: omitted events still supply exact reward amounts and the same counters without altering the wallet. Re-read the section: retention does not change these counters, a disabled mode is missing rather than zero, a sample cap does not hide a fact from the observer, including an action-derived milestone key, the shared session cap sentence is about the recorder's ledger and simulateSessionPattern, not this name, the start-goal sentence is about the recorder's start hook, not this name, and the tuning sentence is about runCandidateAndScore and pacingBalancedLog10, which read these missing counters.
|
|
9
9
|
*/
|
|
10
10
|
export const observationContract = "idlekit.run-observation";
|
|
11
|
+
/**
|
|
12
|
+
* Tell the observer about reset actions that actually committed.
|
|
13
|
+
* Callers pass the action receipt. This function does not read `prestige.count`.
|
|
14
|
+
*
|
|
15
|
+
* @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset Reset facts come from the committed action, not from a prestige count change.
|
|
16
|
+
* @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: onReset is the action receipt, and a count change alone is not a reset.
|
|
17
|
+
*/
|
|
18
|
+
export function emitCommittedResets(observer, resets) {
|
|
19
|
+
if (!observer?.onReset || resets.length === 0)
|
|
20
|
+
return;
|
|
21
|
+
for (const fact of resets) {
|
|
22
|
+
notify(() => observer.onReset?.(fact));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Tell the observer about actions decided outside a runner step, such as a reset committed at a cycle boundary.
|
|
27
|
+
* The facts are the ones the runner's recorder forwards for an action decided inside a step.
|
|
28
|
+
*
|
|
29
|
+
* @evidence docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset A boundary reset reaches onAction like an action decided in a step.
|
|
30
|
+
* @evidenceReview docs/requirements/active/reset-cycle-execution.md#req-pr10-committed-reset #22d7a8a Re-read the section: the boundary action is committed through the action payment path, so its applied or skipped fact is an action fact.
|
|
31
|
+
*/
|
|
32
|
+
export function emitActionFacts(observer, t, events) {
|
|
33
|
+
if (!observer?.onAction)
|
|
34
|
+
return;
|
|
35
|
+
for (const event of events) {
|
|
36
|
+
if (event.type === "action.applied") {
|
|
37
|
+
notify(() => observer.onAction?.({ t, actionId: event.actionId, outcome: "applied" }));
|
|
38
|
+
}
|
|
39
|
+
else if (event.type === "action.skipped") {
|
|
40
|
+
notify(() => observer.onAction?.({ t, actionId: event.actionId, outcome: "skipped", reason: event.reason }));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
11
44
|
export class ObservationError extends Error {
|
|
12
45
|
constructor(message, cause) {
|
|
13
46
|
super(message, { cause });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/sim/observation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/sim/observation.ts"],"names":[],"mappings":"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"}
|