pristine-charts 0.1.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.
Files changed (84) hide show
  1. package/README.md +154 -0
  2. package/dist/area-chart/index.cjs +1736 -0
  3. package/dist/area-chart/index.cjs.map +1 -0
  4. package/dist/area-chart/index.d.cts +75 -0
  5. package/dist/area-chart/index.d.ts +75 -0
  6. package/dist/area-chart/index.js +1730 -0
  7. package/dist/area-chart/index.js.map +1 -0
  8. package/dist/bar-chart/index.cjs +1808 -0
  9. package/dist/bar-chart/index.cjs.map +1 -0
  10. package/dist/bar-chart/index.d.cts +72 -0
  11. package/dist/bar-chart/index.d.ts +72 -0
  12. package/dist/bar-chart/index.js +1802 -0
  13. package/dist/bar-chart/index.js.map +1 -0
  14. package/dist/box-plot/index.cjs +1858 -0
  15. package/dist/box-plot/index.cjs.map +1 -0
  16. package/dist/box-plot/index.d.cts +58 -0
  17. package/dist/box-plot/index.d.ts +58 -0
  18. package/dist/box-plot/index.js +1852 -0
  19. package/dist/box-plot/index.js.map +1 -0
  20. package/dist/bullet-chart/index.cjs +1707 -0
  21. package/dist/bullet-chart/index.cjs.map +1 -0
  22. package/dist/bullet-chart/index.d.cts +68 -0
  23. package/dist/bullet-chart/index.d.ts +68 -0
  24. package/dist/bullet-chart/index.js +1701 -0
  25. package/dist/bullet-chart/index.js.map +1 -0
  26. package/dist/histogram-chart/index.cjs +1876 -0
  27. package/dist/histogram-chart/index.cjs.map +1 -0
  28. package/dist/histogram-chart/index.d.cts +76 -0
  29. package/dist/histogram-chart/index.d.ts +76 -0
  30. package/dist/histogram-chart/index.js +1870 -0
  31. package/dist/histogram-chart/index.js.map +1 -0
  32. package/dist/index.cjs +6940 -0
  33. package/dist/index.cjs.map +1 -0
  34. package/dist/index.d.cts +19 -0
  35. package/dist/index.d.ts +19 -0
  36. package/dist/index.js +6860 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/kpi-card/index.cjs +1315 -0
  39. package/dist/kpi-card/index.cjs.map +1 -0
  40. package/dist/kpi-card/index.d.cts +79 -0
  41. package/dist/kpi-card/index.d.ts +79 -0
  42. package/dist/kpi-card/index.js +1304 -0
  43. package/dist/kpi-card/index.js.map +1 -0
  44. package/dist/line-chart/index.cjs +1742 -0
  45. package/dist/line-chart/index.cjs.map +1 -0
  46. package/dist/line-chart/index.d.cts +54 -0
  47. package/dist/line-chart/index.d.ts +54 -0
  48. package/dist/line-chart/index.js +1736 -0
  49. package/dist/line-chart/index.js.map +1 -0
  50. package/dist/linearSeries-BQL4Ud3w.d.cts +14 -0
  51. package/dist/linearSeries-BQL4Ud3w.d.ts +14 -0
  52. package/dist/pie-donut-chart/index.cjs +1663 -0
  53. package/dist/pie-donut-chart/index.cjs.map +1 -0
  54. package/dist/pie-donut-chart/index.d.cts +83 -0
  55. package/dist/pie-donut-chart/index.d.ts +83 -0
  56. package/dist/pie-donut-chart/index.js +1655 -0
  57. package/dist/pie-donut-chart/index.js.map +1 -0
  58. package/dist/progress-bar/index.cjs +1336 -0
  59. package/dist/progress-bar/index.cjs.map +1 -0
  60. package/dist/progress-bar/index.d.cts +54 -0
  61. package/dist/progress-bar/index.d.ts +54 -0
  62. package/dist/progress-bar/index.js +1329 -0
  63. package/dist/progress-bar/index.js.map +1 -0
  64. package/dist/ranked-list/index.cjs +1584 -0
  65. package/dist/ranked-list/index.cjs.map +1 -0
  66. package/dist/ranked-list/index.d.cts +70 -0
  67. package/dist/ranked-list/index.d.ts +70 -0
  68. package/dist/ranked-list/index.js +1576 -0
  69. package/dist/ranked-list/index.js.map +1 -0
  70. package/dist/result-C2epnG6V.d.cts +33 -0
  71. package/dist/result-C2epnG6V.d.ts +33 -0
  72. package/dist/scatter-plot/index.cjs +1618 -0
  73. package/dist/scatter-plot/index.cjs.map +1 -0
  74. package/dist/scatter-plot/index.d.cts +55 -0
  75. package/dist/scatter-plot/index.d.ts +55 -0
  76. package/dist/scatter-plot/index.js +1612 -0
  77. package/dist/scatter-plot/index.js.map +1 -0
  78. package/dist/sparkline/index.cjs +1456 -0
  79. package/dist/sparkline/index.cjs.map +1 -0
  80. package/dist/sparkline/index.d.cts +47 -0
  81. package/dist/sparkline/index.d.ts +47 -0
  82. package/dist/sparkline/index.js +1451 -0
  83. package/dist/sparkline/index.js.map +1 -0
  84. package/package.json +126 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isPlaceholder.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curry1.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curry2.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isArray.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isTransformer.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_dispatchable.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xfBase.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_arity.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curryN.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/curryN.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_arrayFromIterator.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_includesWith.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_functionName.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_has.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_objectIs.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isArguments.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/keys.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/type.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_equals.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/equals.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_indexOf.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_includes.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_map.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_quote.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_toISOString.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_complement.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_arrayReduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_filter.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isObject.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xfilter.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/filter.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/reject.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_toString.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/toString.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/max.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xmap.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/map.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isInteger.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isString.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_nth.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/prop.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/pluck.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curry3.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isArrayLike.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_createReduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xArrayReduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/bind.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xReduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xwrap.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/reduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/allPass.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/always.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_concat.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_reduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/ap.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/liftN.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/lift.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/not.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/complement.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/cond.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/ifElse.js","../../src/shared/className.ts","../../src/shared/option.ts","../../src/shared/result.ts","../../src/chart-error/ChartError.tsx","../../src/progress-bar/ProgressBar.domain.ts","../../src/progress-bar/ProgressBar.model.ts","../../src/progress-bar/components/ProgressBarCaption.tsx","../../src/progress-bar/components/ProgressBarSvg.tsx","../../src/progress-bar/components/ProgressBarFigure.tsx","../../src/progress-bar/ProgressBar.tsx","../../src/progress-bar/ProgressBar.defaults.ts"],"names":["curryN","prop","_isArguments","contains","keys","type","b","equals","pad","_toISOString","XFilter","reject","recur","toString","max","XMap","_xmap","map","pluck","_reduce","bind","XWrap","allPass","always","reduce_default","ap","liftN","lift","not","cond","ifElse","jsxs","jsx","useId","useMemo"],"mappings":";;;;;;;;AAAe,SAAR,eAAgC,CAAA,EAAG;AACxC,EAAA,OAAO,KAAK,IAAA,IAAQ,OAAO,MAAM,QAAA,IAAY,CAAA,CAAE,0BAA0B,CAAA,KAAM,IAAA;AACjF;;;ACQe,SAAR,QAAyB,EAAA,EAAI;AAClC,EAAA,OAAO,SAAS,GAAG,CAAA,EAAG;AACpB,IAAA,IAAI,SAAA,CAAU,MAAA,KAAW,CAAA,IAAK,cAAA,CAAe,CAAC,CAAA,EAAG;AAC/C,MAAA,OAAO,EAAA;AAAA,IACT,CAAA,MAAO;AACL,MAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,IACjC;AAAA,EACF,CAAA;AACF;;;ACPe,SAAR,QAAyB,EAAA,EAAI;AAClC,EAAA,OAAO,SAAS,EAAA,CAAG,CAAA,EAAG,CAAA,EAAG;AACvB,IAAA,QAAQ,UAAU,MAAA;AAAQ,MACxB,KAAK,CAAA;AACH,QAAA,OAAO,EAAA;AAAA,MACT,KAAK,CAAA;AACH,QAAA,OAAO,eAAe,CAAC,CAAA,GAAI,EAAA,GAAK,OAAA,CAAQ,SAAU,EAAA,EAAI;AACpD,UAAA,OAAO,EAAA,CAAG,GAAG,EAAE,CAAA;AAAA,QACjB,CAAC,CAAA;AAAA,MACH;AACE,QAAA,OAAO,cAAA,CAAe,CAAC,CAAA,IAAK,cAAA,CAAe,CAAC,CAAA,GAAI,EAAA,GAAK,cAAA,CAAe,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAU,EAAA,EAAI;AAC7F,UAAA,OAAO,EAAA,CAAG,IAAI,CAAC,CAAA;AAAA,QACjB,CAAC,CAAA,GAAI,cAAA,CAAe,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAU,EAAA,EAAI;AAC7C,UAAA,OAAO,EAAA,CAAG,GAAG,EAAE,CAAA;AAAA,QACjB,CAAC,CAAA,GAAI,EAAA,CAAG,CAAA,EAAG,CAAC,CAAA;AAAA;AAChB,EACF,CAAA;AACF;;;AChBA,IAAO,eAAA,GAAQ,KAAA,CAAM,OAAA,IAAW,SAAS,SAAS,GAAA,EAAK;AACrD,EAAA,OAAO,GAAA,IAAO,IAAA,IAAQ,GAAA,CAAI,MAAA,IAAU,CAAA,IAAK,OAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA,KAAM,gBAAA;AACnF,CAAA;;;ACde,SAAR,eAAgC,GAAA,EAAK;AAC1C,EAAA,OAAO,GAAA,IAAO,IAAA,IAAQ,OAAO,GAAA,CAAI,mBAAmB,CAAA,KAAM,UAAA;AAC5D;;;ACgBe,SAAR,aAAA,CAA+B,WAAA,EAAa,iBAAA,EAAmB,EAAA,EAAI;AACxE,EAAA,OAAO,WAAY;AACjB,IAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,MAAA,OAAO,EAAA,EAAG;AAAA,IACZ;AACA,IAAA,IAAI,GAAA,GAAM,SAAA,CAAU,SAAA,CAAU,MAAA,GAAS,CAAC,CAAA;AACxC,IAAA,IAAI,CAAC,eAAA,CAAS,GAAG,CAAA,EAAG;AAClB,MAAA,IAAI,GAAA,GAAM,CAAA;AACV,MAAA,OAAO,GAAA,GAAM,YAAY,MAAA,EAAQ;AAC/B,QAAA,IAAI,OAAO,GAAA,CAAI,WAAA,CAAY,GAAG,CAAC,MAAM,UAAA,EAAY;AAC/C,UAAA,OAAO,GAAA,CAAI,WAAA,CAAY,GAAG,CAAC,EAAE,KAAA,CAAM,GAAA,EAAK,KAAA,CAAM,SAAA,CAAU,KAAA,CAAM,IAAA,CAAK,SAAA,EAAW,CAAA,EAAG,EAAE,CAAC,CAAA;AAAA,QACtF;AACA,QAAA,GAAA,IAAO,CAAA;AAAA,MACT;AACA,MAAA,IAAI,cAAA,CAAe,GAAG,CAAA,EAAG;AACvB,QAAA,IAAI,UAAA,GAAa,iBAAA,CAAkB,KAAA,CAAM,IAAA,EAAM,KAAA,CAAM,SAAA,CAAU,KAAA,CAAM,IAAA,CAAK,SAAA,EAAW,CAAA,EAAG,EAAE,CAAC,CAAA;AAC3F,QAAA,OAAO,WAAW,GAAG,CAAA;AAAA,MACvB;AAAA,IACF;AACA,IAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,EACjC,CAAA;AACF;;;ACvCA,IAAO,cAAA,GAAQ;AAAA,EACb,MAAM,WAAY;AAChB,IAAA,OAAO,IAAA,CAAK,EAAA,CAAG,mBAAmB,CAAA,EAAE;AAAA,EACtC,CAAA;AAAA,EACA,MAAA,EAAQ,SAAU,MAAA,EAAQ;AACxB,IAAA,OAAO,IAAA,CAAK,EAAA,CAAG,qBAAqB,CAAA,CAAE,MAAM,CAAA;AAAA,EAC9C;AACF,CAAA;;;ACPe,SAAR,MAAA,CAAwB,GAAG,EAAA,EAAI;AAEpC,EAAA,QAAQ,CAAA;AAAG,IACT,KAAK,CAAA;AACH,MAAA,OAAO,WAAY;AACjB,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAA,OAAO,SAAU,EAAA,EAAI;AACnB,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAA,OAAO,SAAU,IAAI,EAAA,EAAI;AACvB,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAA,OAAO,SAAU,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI;AAC3B,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAA,OAAO,SAAU,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI;AAC/B,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAA,OAAO,SAAU,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI;AACnC,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAA,OAAO,SAAU,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI;AACvC,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAA,OAAO,SAAU,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI;AAC3C,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAA,OAAO,SAAU,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI;AAC/C,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAA,OAAO,SAAU,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI;AACnD,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF,KAAK,EAAA;AACH,MAAA,OAAO,SAAU,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI;AACvD,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACjC,CAAA;AAAA,IACF;AACE,MAAA,MAAM,IAAI,MAAM,6EAA6E,CAAA;AAAA;AAEnG;;;ACrCe,SAAR,OAAA,CAAyB,MAAA,EAAQ,QAAA,EAAU,EAAA,EAAI;AACpD,EAAA,OAAO,WAAY;AACjB,IAAA,IAAI,WAAW,EAAC;AAChB,IAAA,IAAI,OAAA,GAAU,CAAA;AACd,IAAA,IAAI,IAAA,GAAO,MAAA;AACX,IAAA,IAAI,WAAA,GAAc,CAAA;AAClB,IAAA,IAAI,cAAA,GAAiB,KAAA;AACrB,IAAA,OAAO,WAAA,GAAc,QAAA,CAAS,MAAA,IAAU,OAAA,GAAU,UAAU,MAAA,EAAQ;AAClE,MAAA,IAAI,MAAA;AACJ,MAAA,IAAI,WAAA,GAAc,QAAA,CAAS,MAAA,KAAW,CAAC,cAAA,CAAe,QAAA,CAAS,WAAW,CAAC,CAAA,IAAK,OAAA,IAAW,SAAA,CAAU,MAAA,CAAA,EAAS;AAC5G,QAAA,MAAA,GAAS,SAAS,WAAW,CAAA;AAAA,MAC/B,CAAA,MAAO;AACL,QAAA,MAAA,GAAS,UAAU,OAAO,CAAA;AAC1B,QAAA,OAAA,IAAW,CAAA;AAAA,MACb;AACA,MAAA,QAAA,CAAS,WAAW,CAAA,GAAI,MAAA;AACxB,MAAA,IAAI,CAAC,cAAA,CAAe,MAAM,CAAA,EAAG;AAC3B,QAAA,IAAA,IAAQ,CAAA;AAAA,MACV,CAAA,MAAO;AACL,QAAA,cAAA,GAAiB,IAAA;AAAA,MACnB;AACA,MAAA,WAAA,IAAe,CAAA;AAAA,IACjB;AACA,IAAA,OAAO,CAAC,cAAA,IAAkB,IAAA,IAAQ,IAAI,EAAA,CAAG,KAAA,CAAM,MAAM,QAAQ,CAAA,GAAI,OAAO,IAAA,CAAK,GAAA,CAAI,GAAG,IAAI,CAAA,EAAG,QAAQ,MAAA,EAAQ,QAAA,EAAU,EAAE,CAAC,CAAA;AAAA,EAC1H,CAAA;AACF;;;ACSA,IAAI,MAAA,mBAAsB,OAAA,CAAQ,SAASA,OAAAA,CAAO,QAAQ,EAAA,EAAI;AAC5D,EAAA,IAAI,WAAW,CAAA,EAAG;AAChB,IAAA,OAAO,QAAQ,EAAE,CAAA;AAAA,EACnB;AACA,EAAA,OAAO,OAAO,MAAA,EAAQ,OAAA,CAAQ,QAAQ,EAAC,EAAG,EAAE,CAAC,CAAA;AAC/C,CAAC,CAAA;AACD,IAAO,cAAA,GAAQ,MAAA;;;ACrDA,SAAR,mBAAoC,IAAA,EAAM;AAC/C,EAAA,IAAI,OAAO,EAAC;AACZ,EAAA,IAAI,IAAA;AACJ,EAAA,OAAO,CAAA,CAAE,IAAA,GAAO,IAAA,CAAK,IAAA,IAAQ,IAAA,EAAM;AACjC,IAAA,IAAA,CAAK,IAAA,CAAK,KAAK,KAAK,CAAA;AAAA,EACtB;AACA,EAAA,OAAO,IAAA;AACT;;;ACPe,SAAR,aAAA,CAA+B,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM;AACnD,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,IAAI,MAAM,IAAA,CAAK,MAAA;AACf,EAAA,OAAO,MAAM,GAAA,EAAK;AAChB,IAAA,IAAI,IAAA,CAAK,CAAA,EAAG,IAAA,CAAK,GAAG,CAAC,CAAA,EAAG;AACtB,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAA;AACT;;;ACVe,SAAR,cAA+B,CAAA,EAAG;AAEvC,EAAA,IAAI,KAAA,GAAQ,MAAA,CAAO,CAAC,CAAA,CAAE,MAAM,iBAAiB,CAAA;AAC7C,EAAA,OAAO,KAAA,IAAS,IAAA,GAAO,EAAA,GAAK,KAAA,CAAM,CAAC,CAAA;AACrC;;;ACJe,SAAR,IAAA,CAAsBC,OAAM,GAAA,EAAK;AACtC,EAAA,OAAO,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,KAAKA,KAAI,CAAA;AACvD;;;ACDA,SAAS,SAAA,CAAU,GAAG,CAAA,EAAG;AAEvB,EAAA,IAAI,MAAM,CAAA,EAAG;AAGX,IAAA,OAAO,CAAA,KAAM,CAAA,IAAK,CAAA,GAAI,CAAA,KAAM,CAAA,GAAI,CAAA;AAAA,EAClC,CAAA,MAAO;AAEL,IAAA,OAAO,CAAA,KAAM,KAAK,CAAA,KAAM,CAAA;AAAA,EAC1B;AACF;AACA,IAAO,mBAAQ,OAAO,MAAA,CAAO,EAAA,KAAO,UAAA,GAAa,OAAO,EAAA,GAAK,SAAA;;;ACX7D,IAAI,QAAA,GAAW,OAAO,SAAA,CAAU,QAAA;AAChC,IAAI,+BAA4B,CAAA,WAAY;AAC1C,EAAA,OAAO,SAAS,IAAA,CAAK,SAAS,MAAM,oBAAA,GAAuB,SAASC,cAAa,CAAA,EAAG;AAClF,IAAA,OAAO,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,oBAAA;AAAA,EAC9B,CAAA,GAAI,SAASA,aAAAA,CAAa,CAAA,EAAG;AAC3B,IAAA,OAAO,IAAA,CAAK,UAAU,CAAC,CAAA;AAAA,EACzB,CAAA;AACF,CAAA,GAAE;AACF,IAAO,mBAAA,GAAQ,YAAA;;;ACJf,IAAI,aAAa,iBAAe;AAAA,EAC9B,QAAA,EAAU;AACZ,CAAA,CAAE,qBAAqB,UAAU,CAAA;AACjC,IAAI,kBAAA,GAAqB,CAAC,aAAA,EAAe,SAAA,EAAW,iBAAiB,UAAA,EAAY,sBAAA,EAAwB,kBAAkB,gBAAgB,CAAA;AAE3I,IAAI,iCAA8B,CAAA,WAAY;AAG5C,EAAA,OAAO,SAAA,CAAU,qBAAqB,QAAQ,CAAA;AAChD,CAAA,GAAE;AACF,IAAI,QAAA,GAAW,SAASC,SAAAA,CAAS,IAAA,EAAM,IAAA,EAAM;AAC3C,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,OAAO,GAAA,GAAM,KAAK,MAAA,EAAQ;AACxB,IAAA,IAAI,IAAA,CAAK,GAAG,CAAA,KAAM,IAAA,EAAM;AACtB,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAA;AACT,CAAA;AAoBA,IAAI,IAAA,GAAO,OAAO,MAAA,CAAO,IAAA,KAAS,UAAA,IAAc,CAAC,cAAA,mBAA8B,OAAA,CAAQ,SAASC,KAAAA,CAAK,GAAA,EAAK;AACxG,EAAA,OAAO,MAAA,CAAO,GAAG,CAAA,KAAM,GAAA,GAAM,EAAC,GAAI,MAAA,CAAO,KAAK,GAAG,CAAA;AACnD,CAAC,CAAA,mBAAiB,OAAA,CAAQ,SAASA,KAAAA,CAAK,GAAA,EAAK;AAC3C,EAAA,IAAI,MAAA,CAAO,GAAG,CAAA,KAAM,GAAA,EAAK;AACvB,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,IAAIH,KAAAA,EAAM,IAAA;AACV,EAAA,IAAI,KAAK,EAAC;AACV,EAAA,IAAI,eAAA,GAAkB,cAAA,IAAkB,mBAAA,CAAa,GAAG,CAAA;AACxD,EAAA,KAAKA,SAAQ,GAAA,EAAK;AAChB,IAAA,IAAI,KAAKA,KAAAA,EAAM,GAAG,MAAM,CAAC,eAAA,IAAmBA,UAAS,QAAA,CAAA,EAAW;AAC9D,MAAA,EAAA,CAAG,EAAA,CAAG,MAAM,CAAA,GAAIA,KAAAA;AAAA,IAClB;AAAA,EACF;AACA,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,IAAA,GAAO,mBAAmB,MAAA,GAAS,CAAA;AACnC,IAAA,OAAO,QAAQ,CAAA,EAAG;AAChB,MAAAA,KAAAA,GAAO,mBAAmB,IAAI,CAAA;AAC9B,MAAA,IAAI,IAAA,CAAKA,OAAM,GAAG,CAAA,IAAK,CAAC,QAAA,CAAS,EAAA,EAAIA,KAAI,CAAA,EAAG;AAC1C,QAAA,EAAA,CAAG,EAAA,CAAG,MAAM,CAAA,GAAIA,KAAAA;AAAA,MAClB;AACA,MAAA,IAAA,IAAQ,CAAA;AAAA,IACV;AAAA,EACF;AACA,EAAA,OAAO,EAAA;AACT,CAAC,CAAA;AACD,IAAO,YAAA,GAAQ,IAAA;;;ACzCf,IAAI,IAAA,mBAAoB,OAAA,CAAQ,SAASI,KAAAA,CAAK,GAAA,EAAK;AACjD,EAAA,OAAO,GAAA,KAAQ,IAAA,GAAO,MAAA,GAAS,GAAA,KAAQ,SAAY,WAAA,GAAc,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA,CAAE,KAAA,CAAM,GAAG,EAAE,CAAA;AAClH,CAAC,CAAA;AACD,IAAO,YAAA,GAAQ,IAAA;;;ACbf,SAAS,kBAAA,CAAmB,SAAA,EAAW,SAAA,EAAW,MAAA,EAAQ,MAAA,EAAQ;AAChE,EAAA,IAAI,CAAA,GAAI,mBAAmB,SAAS,CAAA;AACpC,EAAA,IAAI,CAAA,GAAI,mBAAmB,SAAS,CAAA;AACpC,EAAA,SAAS,EAAA,CAAG,IAAI,EAAA,EAAI;AAClB,IAAA,OAAO,OAAA,CAAQ,IAAI,EAAA,EAAI,MAAA,CAAO,OAAM,EAAG,MAAA,CAAO,OAAO,CAAA;AAAA,EACvD;AAGA,EAAA,OAAO,CAAC,aAAA,CAAc,SAAUC,EAAAA,EAAG,KAAA,EAAO;AACxC,IAAA,OAAO,CAAC,aAAA,CAAc,EAAA,EAAI,KAAA,EAAOA,EAAC,CAAA;AAAA,EACpC,CAAA,EAAG,GAAG,CAAC,CAAA;AACT;AACe,SAAR,OAAA,CAAyB,CAAA,EAAG,CAAA,EAAG,MAAA,EAAQ,MAAA,EAAQ;AACpD,EAAA,IAAI,gBAAA,CAAU,CAAA,EAAG,CAAC,CAAA,EAAG;AACnB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,KAAA,GAAQ,aAAK,CAAC,CAAA;AAClB,EAAA,IAAI,KAAA,KAAU,YAAA,CAAK,CAAC,CAAA,EAAG;AACrB,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,EAAE,qBAAqB,CAAA,KAAM,cAAc,OAAO,CAAA,CAAE,qBAAqB,CAAA,KAAM,UAAA,EAAY;AACpG,IAAA,OAAO,OAAO,CAAA,CAAE,qBAAqB,MAAM,UAAA,IAAc,CAAA,CAAE,qBAAqB,CAAA,CAAE,CAAC,CAAA,IAAK,OAAO,EAAE,qBAAqB,CAAA,KAAM,cAAc,CAAA,CAAE,qBAAqB,EAAE,CAAC,CAAA;AAAA,EACtK;AACA,EAAA,IAAI,OAAO,CAAA,CAAE,MAAA,KAAW,cAAc,OAAO,CAAA,CAAE,WAAW,UAAA,EAAY;AACpE,IAAA,OAAO,OAAO,CAAA,CAAE,MAAA,KAAW,UAAA,IAAc,EAAE,MAAA,CAAO,CAAC,CAAA,IAAK,OAAO,CAAA,CAAE,MAAA,KAAW,UAAA,IAAc,CAAA,CAAE,OAAO,CAAC,CAAA;AAAA,EACtG;AACA,EAAA,QAAQ,KAAA;AAAO,IACb,KAAK,WAAA;AAAA,IACL,KAAK,OAAA;AAAA,IACL,KAAK,QAAA;AACH,MAAA,IAAI,OAAO,EAAE,WAAA,KAAgB,UAAA,IAAc,cAAc,CAAA,CAAE,WAAW,MAAM,SAAA,EAAW;AACrF,QAAA,OAAO,CAAA,KAAM,CAAA;AAAA,MACf;AACA,MAAA;AAAA,IACF,KAAK,SAAA;AAAA,IACL,KAAK,QAAA;AAAA,IACL,KAAK,QAAA;AACH,MAAA,IAAI,EAAE,OAAO,CAAA,KAAM,OAAO,CAAA,IAAK,gBAAA,CAAU,CAAA,CAAE,OAAA,EAAQ,EAAG,CAAA,CAAE,OAAA,EAAS,CAAA,CAAA,EAAI;AACnE,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA;AAAA,IACF,KAAK,MAAA;AACH,MAAA,IAAI,CAAC,iBAAU,CAAA,CAAE,OAAA,IAAW,CAAA,CAAE,OAAA,EAAS,CAAA,EAAG;AACxC,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA;AAAA,IACF,KAAK,OAAA;AACH,MAAA,OAAO,EAAE,IAAA,KAAS,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,YAAY,CAAA,CAAE,OAAA;AAAA,IAC9C,KAAK,QAAA;AACH,MAAA,IAAI,EAAE,CAAA,CAAE,MAAA,KAAW,CAAA,CAAE,MAAA,IAAU,EAAE,MAAA,KAAW,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,UAAA,KAAe,CAAA,CAAE,cAAc,CAAA,CAAE,SAAA,KAAc,CAAA,CAAE,SAAA,IAAa,CAAA,CAAE,MAAA,KAAW,EAAE,MAAA,IAAU,CAAA,CAAE,OAAA,KAAY,CAAA,CAAE,OAAA,CAAA,EAAU;AACzK,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA;AAAA;AAEJ,EAAA,IAAI,GAAA,GAAM,OAAO,MAAA,GAAS,CAAA;AAC1B,EAAA,OAAO,OAAO,CAAA,EAAG;AACf,IAAA,IAAI,MAAA,CAAO,GAAG,CAAA,KAAM,CAAA,EAAG;AACrB,MAAA,OAAO,MAAA,CAAO,GAAG,CAAA,KAAM,CAAA;AAAA,IACzB;AACA,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,QAAQ,KAAA;AAAO,IACb,KAAK,KAAA;AACH,MAAA,IAAI,CAAA,CAAE,IAAA,KAAS,CAAA,CAAE,IAAA,EAAM;AACrB,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA,OAAO,mBAAmB,CAAA,CAAE,OAAA,IAAW,CAAA,CAAE,OAAA,IAAW,MAAA,CAAO,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,EAAG,MAAA,CAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAAA,IAC5F,KAAK,KAAA;AACH,MAAA,IAAI,CAAA,CAAE,IAAA,KAAS,CAAA,CAAE,IAAA,EAAM;AACrB,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA,OAAO,mBAAmB,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,MAAA,IAAU,MAAA,CAAO,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,EAAG,MAAA,CAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAAA,IAC1F,KAAK,WAAA;AAAA,IACL,KAAK,OAAA;AAAA,IACL,KAAK,QAAA;AAAA,IACL,KAAK,SAAA;AAAA,IACL,KAAK,QAAA;AAAA,IACL,KAAK,QAAA;AAAA,IACL,KAAK,MAAA;AAAA,IACL,KAAK,OAAA;AAAA,IACL,KAAK,QAAA;AAAA,IACL,KAAK,WAAA;AAAA,IACL,KAAK,YAAA;AAAA,IACL,KAAK,mBAAA;AAAA,IACL,KAAK,YAAA;AAAA,IACL,KAAK,aAAA;AAAA,IACL,KAAK,YAAA;AAAA,IACL,KAAK,aAAA;AAAA,IACL,KAAK,cAAA;AAAA,IACL,KAAK,cAAA;AAAA,IACL,KAAK,aAAA;AACH,MAAA;AAAA,IACF;AAEE,MAAA,OAAO,KAAA;AAAA;AAEX,EAAA,IAAI,KAAA,GAAQ,aAAK,CAAC,CAAA;AAClB,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,YAAA,CAAK,CAAC,EAAE,MAAA,EAAQ;AACnC,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,cAAA,GAAiB,MAAA,CAAO,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA;AACtC,EAAA,IAAI,cAAA,GAAiB,MAAA,CAAO,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA;AACtC,EAAA,GAAA,GAAM,MAAM,MAAA,GAAS,CAAA;AACrB,EAAA,OAAO,OAAO,CAAA,EAAG;AACf,IAAA,IAAI,GAAA,GAAM,MAAM,GAAG,CAAA;AACnB,IAAA,IAAI,EAAE,IAAA,CAAK,GAAA,EAAK,CAAC,KAAK,OAAA,CAAQ,CAAA,CAAE,GAAG,CAAA,EAAG,CAAA,CAAE,GAAG,CAAA,EAAG,cAAA,EAAgB,cAAc,CAAA,CAAA,EAAI;AAC9E,MAAA,OAAO,KAAA;AAAA,IACT;AACA,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;;;ACtGA,IAAI,MAAA,mBAAsB,OAAA,CAAQ,SAASC,OAAAA,CAAO,GAAG,CAAA,EAAG;AACtD,EAAA,OAAO,QAAQ,CAAA,EAAG,CAAA,EAAG,EAAC,EAAG,EAAE,CAAA;AAC7B,CAAC,CAAA;AACD,IAAO,cAAA,GAAQ,MAAA;;;AC9BA,SAAR,QAAA,CAA0B,IAAA,EAAM,CAAA,EAAG,GAAA,EAAK;AAC7C,EAAA,IAAI,GAAA,EAAK,IAAA;AAET,EAAA,IAAI,OAAO,IAAA,CAAK,OAAA,KAAY,UAAA,EAAY;AACtC,IAAA,QAAQ,OAAO,CAAA;AAAG,MAChB,KAAK,QAAA;AACH,QAAA,IAAI,MAAM,CAAA,EAAG;AAEX,UAAA,GAAA,GAAM,CAAA,GAAI,CAAA;AACV,UAAA,OAAO,GAAA,GAAM,KAAK,MAAA,EAAQ;AACxB,YAAA,IAAA,GAAO,KAAK,GAAG,CAAA;AACf,YAAA,IAAI,IAAA,KAAS,CAAA,IAAK,CAAA,GAAI,IAAA,KAAS,GAAA,EAAK;AAClC,cAAA,OAAO,GAAA;AAAA,YACT;AACA,YAAA,GAAA,IAAO,CAAA;AAAA,UACT;AACA,UAAA,OAAO,EAAA;AAAA,QACT,CAAA,MAAA,IAAW,MAAM,CAAA,EAAG;AAElB,UAAA,OAAO,GAAA,GAAM,KAAK,MAAA,EAAQ;AACxB,YAAA,IAAA,GAAO,KAAK,GAAG,CAAA;AACf,YAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,KAAS,IAAA,EAAM;AAC7C,cAAA,OAAO,GAAA;AAAA,YACT;AACA,YAAA,GAAA,IAAO,CAAA;AAAA,UACT;AACA,UAAA,OAAO,EAAA;AAAA,QACT;AAEA,QAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,EAAG,GAAG,CAAA;AAAA;AAAA,MAG5B,KAAK,QAAA;AAAA,MACL,KAAK,SAAA;AAAA,MACL,KAAK,UAAA;AAAA,MACL,KAAK,WAAA;AACH,QAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,EAAG,GAAG,CAAA;AAAA,MAC5B,KAAK,QAAA;AACH,QAAA,IAAI,MAAM,IAAA,EAAM;AAEd,UAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,EAAG,GAAG,CAAA;AAAA,QAC5B;AAAA;AACJ,EACF;AAEA,EAAA,OAAO,GAAA,GAAM,KAAK,MAAA,EAAQ;AACxB,IAAA,IAAI,cAAA,CAAO,IAAA,CAAK,GAAG,CAAA,EAAG,CAAC,CAAA,EAAG;AACxB,MAAA,OAAO,GAAA;AAAA,IACT;AACA,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAA;AACT;;;ACpDe,SAAR,SAAA,CAA2B,GAAG,IAAA,EAAM;AACzC,EAAA,OAAO,QAAA,CAAS,IAAA,EAAM,CAAA,EAAG,CAAC,CAAA,IAAK,CAAA;AACjC;;;ACHe,SAAR,IAAA,CAAsB,IAAI,OAAA,EAAS;AACxC,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,IAAI,MAAM,OAAA,CAAQ,MAAA;AAClB,EAAA,IAAI,MAAA,GAAS,MAAM,GAAG,CAAA;AACtB,EAAA,OAAO,MAAM,GAAA,EAAK;AAChB,IAAA,MAAA,CAAO,GAAG,CAAA,GAAI,EAAA,CAAG,OAAA,CAAQ,GAAG,CAAC,CAAA;AAC7B,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;;;ACTe,SAAR,OAAwB,CAAA,EAAG;AAChC,EAAA,IAAI,OAAA,GAAU,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,MAAM,CAAA,CAAE,OAAA,CAAQ,OAAA,EAAS,KAAK,CAAA,CAC5D,OAAA,CAAQ,KAAA,EAAO,KAAK,EAAE,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA,CAAE,QAAQ,KAAA,EAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,OAAO,KAAK,CAAA;AACnI,EAAA,OAAO,GAAA,GAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA,EAAM,KAAK,CAAA,GAAI,GAAA;AAC9C;;;ACDA,IAAI,GAAA,GAAM,SAASC,IAAAA,CAAI,CAAA,EAAG;AACxB,EAAA,OAAA,CAAQ,CAAA,GAAI,EAAA,GAAK,GAAA,GAAM,EAAA,IAAM,CAAA;AAC/B,CAAA;AACA,IAAI,YAAA,GAAe,OAAO,IAAA,CAAK,SAAA,CAAU,gBAAgB,UAAA,GAAa,SAASC,cAAa,CAAA,EAAG;AAC7F,EAAA,OAAO,EAAE,WAAA,EAAY;AACvB,CAAA,GAAI,SAASA,cAAa,CAAA,EAAG;AAC3B,EAAA,OAAO,CAAA,CAAE,gBAAe,GAAI,GAAA,GAAM,IAAI,CAAA,CAAE,WAAA,KAAgB,CAAC,CAAA,GAAI,MAAM,GAAA,CAAI,CAAA,CAAE,YAAY,CAAA,GAAI,MAAM,GAAA,CAAI,CAAA,CAAE,aAAa,CAAA,GAAI,MAAM,GAAA,CAAI,CAAA,CAAE,eAAe,CAAA,GAAI,MAAM,GAAA,CAAI,CAAA,CAAE,eAAe,CAAA,GAAI,OAAO,CAAA,CAAE,kBAAA,KAAuB,GAAA,EAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,GAAA;AACrP,CAAA;AACA,IAAO,mBAAA,GAAQ,YAAA;;;ACXA,SAAR,YAA6B,CAAA,EAAG;AACrC,EAAA,OAAO,WAAY;AACjB,IAAA,OAAO,CAAC,CAAA,CAAE,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,EACjC,CAAA;AACF;;;ACJe,SAAR,YAAA,CAA8B,OAAA,EAAS,GAAA,EAAK,IAAA,EAAM;AACvD,EAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,EAAA,IAAI,SAAS,IAAA,CAAK,MAAA;AAClB,EAAA,OAAO,QAAQ,MAAA,EAAQ;AACrB,IAAA,GAAA,GAAM,OAAA,CAAQ,GAAA,EAAK,IAAA,CAAK,KAAK,CAAC,CAAA;AAC9B,IAAA,KAAA,IAAS,CAAA;AAAA,EACX;AACA,EAAA,OAAO,GAAA;AACT;;;ACRe,SAAR,OAAA,CAAyB,IAAI,IAAA,EAAM;AACxC,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,IAAI,MAAM,IAAA,CAAK,MAAA;AACf,EAAA,IAAI,SAAS,EAAC;AACd,EAAA,OAAO,MAAM,GAAA,EAAK;AAChB,IAAA,IAAI,EAAA,CAAG,IAAA,CAAK,GAAG,CAAC,CAAA,EAAG;AACjB,MAAA,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA,GAAI,IAAA,CAAK,GAAG,CAAA;AAAA,IAClC;AACA,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;;;ACXe,SAAR,UAA2B,CAAA,EAAG;AACnC,EAAA,OAAO,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,iBAAA;AAC/C;;;ACDA,IAAI,0BAAuB,CAAA,WAAY;AACrC,EAAA,SAASC,QAAAA,CAAQ,GAAG,EAAA,EAAI;AACtB,IAAA,IAAA,CAAK,EAAA,GAAK,EAAA;AACV,IAAA,IAAA,CAAK,CAAA,GAAI,CAAA;AAAA,EACX;AACA,EAAAA,QAAAA,CAAQ,SAAA,CAAU,mBAAmB,CAAA,GAAI,cAAA,CAAQ,IAAA;AACjD,EAAAA,QAAAA,CAAQ,SAAA,CAAU,qBAAqB,CAAA,GAAI,cAAA,CAAQ,MAAA;AACnD,EAAAA,SAAQ,SAAA,CAAU,mBAAmB,CAAA,GAAI,SAAU,QAAQ,KAAA,EAAO;AAChE,IAAA,OAAO,IAAA,CAAK,CAAA,CAAE,KAAK,CAAA,GAAI,IAAA,CAAK,GAAG,mBAAmB,CAAA,CAAE,MAAA,EAAQ,KAAK,CAAA,GAAI,MAAA;AAAA,EACvE,CAAA;AACA,EAAA,OAAOA,QAAAA;AACT,CAAA,GAAE;AACa,SAAR,SAA0B,CAAA,EAAG;AAClC,EAAA,OAAO,SAAU,EAAA,EAAI;AACnB,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAA,EAAG,EAAE,CAAA;AAAA,EAC1B,CAAA;AACF;;;ACmBA,IAAI,MAAA,mBAAsB,OAAA,iBAAsB,aAAA,CAAc,CAAC,qBAAA,EAAuB,QAAQ,CAAA,EAAG,QAAA,EAAU,SAAU,IAAA,EAAM,UAAA,EAAY;AACrI,EAAA,OAAO,UAAU,UAAU,CAAA,GAAI,YAAA,CAAa,SAAU,KAAK,GAAA,EAAK;AAC9D,IAAA,IAAI,IAAA,CAAK,UAAA,CAAW,GAAG,CAAC,CAAA,EAAG;AACzB,MAAA,GAAA,CAAI,GAAG,CAAA,GAAI,UAAA,CAAW,GAAG,CAAA;AAAA,IAC3B;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAC,EAAG,YAAA,CAAK,UAAU,CAAC,CAAA;AAAA;AAAA,IAEvB,OAAA,CAAQ,MAAM,UAAU;AAAA,GAAA;AAC1B,CAAC,CAAC,CAAA;AACF,IAAO,cAAA,GAAQ,MAAA;;;AClBf,IAAI,MAAA,mBAAsB,OAAA,CAAQ,SAASC,OAAAA,CAAO,MAAM,UAAA,EAAY;AAClE,EAAA,OAAO,cAAA,CAAO,WAAA,CAAY,IAAI,CAAA,EAAG,UAAU,CAAA;AAC7C,CAAC,CAAA;AACD,IAAO,cAAA,GAAQ,MAAA;;;ACzBA,SAAR,SAAA,CAA2B,GAAG,IAAA,EAAM;AACzC,EAAA,IAAI,KAAA,GAAQ,SAASC,MAAAA,CAAM,CAAA,EAAG;AAC5B,IAAA,IAAI,EAAA,GAAK,IAAA,CAAK,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA;AACxB,IAAA,OAAO,UAAU,CAAA,EAAG,EAAE,IAAI,YAAA,GAAe,SAAA,CAAU,GAAG,EAAE,CAAA;AAAA,EAC1D,CAAA;AAGA,EAAA,IAAI,QAAA,GAAW,SAAU,GAAA,EAAKR,KAAAA,EAAM;AAClC,IAAA,OAAO,IAAA,CAAK,SAAU,CAAA,EAAG;AACvB,MAAA,OAAO,OAAO,CAAC,CAAA,GAAI,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAC,CAAA;AAAA,IACxC,CAAA,EAAGA,KAAAA,CAAK,KAAA,EAAM,CAAE,MAAM,CAAA;AAAA,EACxB,CAAA;AACA,EAAA,QAAQ,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA;AAAG,IACzC,KAAK,oBAAA;AACH,MAAA,OAAO,uCAAuC,IAAA,CAAK,KAAA,EAAO,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,GAAI,IAAA;AAAA,IAC5E,KAAK,gBAAA;AACH,MAAA,OAAO,GAAA,GAAM,IAAA,CAAK,KAAA,EAAO,CAAC,CAAA,CAAE,OAAO,QAAA,CAAS,CAAA,EAAG,cAAA,CAAO,SAAU,CAAA,EAAG;AACjE,QAAA,OAAO,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,MACvB,CAAA,EAAG,aAAK,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,GAAI,GAAA;AAAA,IAC7B,KAAK,kBAAA;AACH,MAAA,OAAO,OAAO,CAAA,KAAM,QAAA,GAAW,cAAA,GAAiB,KAAA,CAAM,CAAA,CAAE,OAAA,EAAS,CAAA,GAAI,GAAA,GAAM,CAAA,CAAE,QAAA,EAAS;AAAA,IACxF,KAAK,eAAA;AACH,MAAA,OAAO,WAAA,IAAe,KAAA,CAAM,CAAA,CAAE,OAAA,EAAS,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA,GAAI,MAAA,CAAO,mBAAA,CAAa,CAAC,CAAC,CAAA,CAAA,GAAK,GAAA;AAAA,IACrF,KAAK,cAAA;AACH,MAAA,OAAO,aAAa,KAAA,CAAM,KAAA,CAAM,IAAA,CAAK,CAAC,CAAC,CAAA,GAAI,GAAA;AAAA,IAC7C,KAAK,eAAA;AACH,MAAA,OAAO,MAAA;AAAA,IACT,KAAK,iBAAA;AACH,MAAA,OAAO,OAAO,CAAA,KAAM,QAAA,GAAW,aAAA,GAAgB,KAAA,CAAM,EAAE,OAAA,EAAS,CAAA,GAAI,GAAA,GAAM,IAAI,CAAA,KAAM,CAAA,QAAA,GAAY,IAAA,GAAO,CAAA,CAAE,SAAS,EAAE,CAAA;AAAA,IACtH,KAAK,cAAA;AACH,MAAA,OAAO,UAAA,GAAa,MAAM,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,CAAE,IAAA,EAAM,CAAA,GAAI,GAAA;AAAA,IACpD,KAAK,iBAAA;AACH,MAAA,OAAO,OAAO,CAAA,KAAM,QAAA,GAAW,aAAA,GAAgB,KAAA,CAAM,CAAA,CAAE,OAAA,EAAS,CAAA,GAAI,GAAA,GAAM,MAAA,CAAO,CAAC,CAAA;AAAA,IACpF,KAAK,oBAAA;AACH,MAAA,OAAO,WAAA;AAAA,IACT;AACE,MAAA,IAAI,OAAO,CAAA,CAAE,QAAA,KAAa,UAAA,EAAY;AACpC,QAAA,IAAI,IAAA,GAAO,EAAE,QAAA,EAAS;AACtB,QAAA,IAAI,SAAS,iBAAA,EAAmB;AAC9B,UAAA,OAAO,IAAA;AAAA,QACT;AAAA,MACF;AACA,MAAA,OAAO,GAAA,GAAM,SAAS,CAAA,EAAG,YAAA,CAAK,CAAC,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,GAAI,GAAA;AAAA;AAErD;;;ACXA,IAAIS,SAAAA,mBAAwB,OAAA,CAAQ,SAASA,SAAAA,CAAS,GAAA,EAAK;AACzD,EAAA,OAAO,SAAA,CAAU,GAAA,EAAK,EAAE,CAAA;AAC1B,CAAC,CAAA;AACD,IAAO,gBAAA,GAAQA,SAAAA;;;ACtBf,IAAI,GAAA,mBAAmB,OAAA,CAAQ,SAASC,IAAAA,CAAI,GAAG,CAAA,EAAG;AAChD,EAAA,IAAI,MAAM,CAAA,EAAG;AACX,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,SAAS,OAAA,CAAQ,GAAG,CAAA,EAAG;AACrB,IAAA,IAAI,CAAA,GAAI,CAAA,KAAM,CAAA,GAAI,CAAA,EAAG;AACnB,MAAA,OAAO,CAAA,GAAI,IAAI,CAAA,GAAI,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,UAAA,GAAa,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA;AAC7B,EAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,IAAA,OAAO,UAAA;AAAA,EACT;AACA,EAAA,IAAI,SAAA,GAAY,OAAA,CAAQ,OAAO,CAAA,EAAG,OAAO,CAAC,CAAA;AAC1C,EAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,IAAA,OAAO,SAAA,KAAc,OAAO,CAAA,GAAI,CAAA,GAAI,CAAA;AAAA,EACtC;AACA,EAAA,IAAI,OAAA,GAAU,iBAAS,CAAC,CAAA;AACxB,EAAA,IAAI,gBAAA,GAAmB,OAAA,CAAQ,OAAA,EAAS,gBAAA,CAAS,CAAC,CAAC,CAAA;AACnD,EAAA,IAAI,qBAAqB,MAAA,EAAW;AAClC,IAAA,OAAO,gBAAA,KAAqB,UAAU,CAAA,GAAI,CAAA;AAAA,EAC5C;AACA,EAAA,OAAO,CAAA;AACT,CAAC,CAAA;AACD,IAAO,WAAA,GAAQ,GAAA;;;AC5Cf,IAAI,uBAAoB,CAAA,WAAY;AAClC,EAAA,SAASC,KAAAA,CAAK,GAAG,EAAA,EAAI;AACnB,IAAA,IAAA,CAAK,EAAA,GAAK,EAAA;AACV,IAAA,IAAA,CAAK,CAAA,GAAI,CAAA;AAAA,EACX;AACA,EAAAA,KAAAA,CAAK,SAAA,CAAU,mBAAmB,CAAA,GAAI,cAAA,CAAQ,IAAA;AAC9C,EAAAA,KAAAA,CAAK,SAAA,CAAU,qBAAqB,CAAA,GAAI,cAAA,CAAQ,MAAA;AAChD,EAAAA,MAAK,SAAA,CAAU,mBAAmB,CAAA,GAAI,SAAU,QAAQ,KAAA,EAAO;AAC7D,IAAA,OAAO,IAAA,CAAK,GAAG,mBAAmB,CAAA,CAAE,QAAQ,IAAA,CAAK,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,EAC3D,CAAA;AACA,EAAA,OAAOA,KAAAA;AACT,CAAA,GAAE;AACF,IAAI,KAAA,GAAQ,SAASC,MAAAA,CAAM,CAAA,EAAG;AAC5B,EAAA,OAAO,SAAU,EAAA,EAAI;AACnB,IAAA,OAAO,IAAI,IAAA,CAAK,CAAA,EAAG,EAAE,CAAA;AAAA,EACvB,CAAA;AACF,CAAA;AACA,IAAO,YAAA,GAAQ,KAAA;;;ACyBf,IAAI,GAAA,mBAAmB,OAAA,iBAAsB,aAAA,CAAc,CAAC,kBAAA,EAAoB,KAAK,CAAA,EAAG,YAAA,EAAO,SAASC,IAAAA,CAAI,EAAA,EAAI,OAAA,EAAS;AACvH,EAAA,QAAQ,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA;AAAG,IAC/C,KAAK,mBAAA;AACH,MAAA,OAAO,cAAA,CAAO,OAAA,CAAQ,MAAA,EAAQ,WAAY;AACxC,QAAA,OAAO,GAAG,IAAA,CAAK,IAAA,EAAM,QAAQ,KAAA,CAAM,IAAA,EAAM,SAAS,CAAC,CAAA;AAAA,MACrD,CAAC,CAAA;AAAA,IACH,KAAK,iBAAA;AACH,MAAA,OAAO,YAAA,CAAa,SAAU,GAAA,EAAK,GAAA,EAAK;AACtC,QAAA,GAAA,CAAI,GAAG,CAAA,GAAI,EAAA,CAAG,OAAA,CAAQ,GAAG,CAAC,CAAA;AAC1B,QAAA,OAAO,GAAA;AAAA,MACT,CAAA,EAAG,EAAC,EAAG,YAAA,CAAK,OAAO,CAAC,CAAA;AAAA,IACtB;AACE,MAAA,OAAO,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA;AAE7B,CAAC,CAAC,CAAA;AACF,IAAO,WAAA,GAAQ,GAAA;;;AClDf,IAAO,iBAAA,GAAQ,MAAA,CAAO,SAAA,IAAa,SAAS,WAAW,CAAA,EAAG;AACxD,EAAA,OAAO,KAAK,CAAA,KAAM,CAAA;AACpB,CAAA;;;ACVe,SAAR,UAA2B,CAAA,EAAG;AACnC,EAAA,OAAO,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,iBAAA;AAC/C;;;ACDe,SAAR,IAAA,CAAsB,QAAQ,IAAA,EAAM;AACzC,EAAA,IAAI,GAAA,GAAM,MAAA,GAAS,CAAA,GAAI,IAAA,CAAK,SAAS,MAAA,GAAS,MAAA;AAC9C,EAAA,OAAO,SAAA,CAAU,IAAI,CAAA,GAAI,IAAA,CAAK,OAAO,GAAG,CAAA,GAAI,KAAK,GAAG,CAAA;AACtD;;;ACsBA,IAAI,IAAA,mBAAoB,OAAA,CAAQ,SAAShB,KAAAA,CAAK,GAAG,GAAA,EAAK;AACpD,EAAA,IAAI,OAAO,IAAA,EAAM;AACf,IAAA;AAAA,EACF;AACA,EAAA,OAAO,iBAAA,CAAW,CAAC,CAAA,GAAI,IAAA,CAAK,GAAG,GAAG,CAAA,GAAI,IAAI,CAAC,CAAA;AAC7C,CAAC,CAAA;AACD,IAAO,YAAA,GAAQ,IAAA;;;ACDf,IAAI,KAAA,mBAAqB,OAAA,CAAQ,SAASiB,MAAAA,CAAM,GAAG,IAAA,EAAM;AACvD,EAAA,OAAO,WAAA,CAAI,YAAA,CAAK,CAAC,CAAA,EAAG,IAAI,CAAA;AAC1B,CAAC,CAAA;AACD,IAAO,aAAA,GAAQ,KAAA;;;ACtBA,SAAR,QAAyB,EAAA,EAAI;AAClC,EAAA,OAAO,SAAS,EAAA,CAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG;AAC1B,IAAA,QAAQ,UAAU,MAAA;AAAQ,MACxB,KAAK,CAAA;AACH,QAAA,OAAO,EAAA;AAAA,MACT,KAAK,CAAA;AACH,QAAA,OAAO,eAAe,CAAC,CAAA,GAAI,KAAK,OAAA,CAAQ,SAAU,IAAI,EAAA,EAAI;AACxD,UAAA,OAAO,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACrB,CAAC,CAAA;AAAA,MACH,KAAK,CAAA;AACH,QAAA,OAAO,cAAA,CAAe,CAAC,CAAA,IAAK,cAAA,CAAe,CAAC,CAAA,GAAI,EAAA,GAAK,cAAA,CAAe,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAU,IAAI,EAAA,EAAI;AACjG,UAAA,OAAO,EAAA,CAAG,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA;AAAA,QACrB,CAAC,IAAI,cAAA,CAAe,CAAC,IAAI,OAAA,CAAQ,SAAU,IAAI,EAAA,EAAI;AACjD,UAAA,OAAO,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACrB,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAU,EAAA,EAAI;AACzB,UAAA,OAAO,EAAA,CAAG,CAAA,EAAG,CAAA,EAAG,EAAE,CAAA;AAAA,QACpB,CAAC,CAAA;AAAA,MACH;AACE,QAAA,OAAO,eAAe,CAAC,CAAA,IAAK,eAAe,CAAC,CAAA,IAAK,eAAe,CAAC,CAAA,GAAI,KAAK,cAAA,CAAe,CAAC,KAAK,cAAA,CAAe,CAAC,IAAI,OAAA,CAAQ,SAAU,IAAI,EAAA,EAAI;AAC3I,UAAA,OAAO,EAAA,CAAG,EAAA,EAAI,EAAA,EAAI,CAAC,CAAA;AAAA,QACrB,CAAC,CAAA,GAAI,cAAA,CAAe,CAAC,CAAA,IAAK,cAAA,CAAe,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAU,EAAA,EAAI,EAAA,EAAI;AACtE,UAAA,OAAO,EAAA,CAAG,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA;AAAA,QACrB,CAAC,CAAA,GAAI,cAAA,CAAe,CAAC,CAAA,IAAK,cAAA,CAAe,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAU,EAAA,EAAI,EAAA,EAAI;AACtE,UAAA,OAAO,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,QACrB,CAAC,CAAA,GAAI,cAAA,CAAe,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAU,EAAA,EAAI;AAC7C,UAAA,OAAO,EAAA,CAAG,EAAA,EAAI,CAAA,EAAG,CAAC,CAAA;AAAA,QACpB,CAAC,CAAA,GAAI,cAAA,CAAe,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAU,EAAA,EAAI;AAC7C,UAAA,OAAO,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,CAAC,CAAA;AAAA,QACpB,CAAC,CAAA,GAAI,cAAA,CAAe,CAAC,CAAA,GAAI,OAAA,CAAQ,SAAU,EAAA,EAAI;AAC7C,UAAA,OAAO,EAAA,CAAG,CAAA,EAAG,CAAA,EAAG,EAAE,CAAA;AAAA,QACpB,CAAC,CAAA,GAAI,EAAA,CAAG,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA;AACnB,EACF,CAAA;AACF;;;ACvBA,IAAI,YAAA,mBAA4B,OAAA,CAAQ,SAAS,WAAA,CAAY,CAAA,EAAG;AAC9D,EAAA,IAAI,eAAA,CAAS,CAAC,CAAA,EAAG;AACf,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,CAAC,CAAA,EAAG;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,MAAM,QAAA,EAAU;AACzB,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,SAAA,CAAU,CAAC,CAAA,EAAG;AAChB,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,CAAA,CAAE,WAAW,CAAA,EAAG;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,CAAA,CAAE,SAAS,CAAA,EAAG;AAChB,IAAA,OAAO,CAAA,CAAE,eAAe,CAAC,CAAA,IAAK,EAAE,cAAA,CAAe,CAAA,CAAE,SAAS,CAAC,CAAA;AAAA,EAC7D;AACA,EAAA,OAAO,KAAA;AACT,CAAC,CAAA;AACD,IAAO,mBAAA,GAAQ,YAAA;;;AC1Cf,IAAI,WAAA,GAAc,OAAO,MAAA,KAAW,WAAA,GAAc,OAAO,QAAA,GAAW,YAAA;AACrD,SAAR,aAAA,CAA+B,WAAA,EAAa,YAAA,EAAc,cAAA,EAAgB;AAC/E,EAAA,OAAO,SAASC,QAAAA,CAAQ,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM;AACrC,IAAA,IAAI,mBAAA,CAAa,IAAI,CAAA,EAAG;AACtB,MAAA,OAAO,WAAA,CAAY,EAAA,EAAI,GAAA,EAAK,IAAI,CAAA;AAAA,IAClC;AACA,IAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,MAAA,OAAO,GAAA;AAAA,IACT;AACA,IAAA,IAAI,OAAO,IAAA,CAAK,qBAAqB,CAAA,KAAM,UAAA,EAAY;AACrD,MAAA,OAAO,YAAA,CAAa,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM,qBAAqB,CAAA;AAAA,IAC1D;AACA,IAAA,IAAI,IAAA,CAAK,WAAW,CAAA,IAAK,IAAA,EAAM;AAC7B,MAAA,OAAO,eAAe,EAAA,EAAI,GAAA,EAAK,IAAA,CAAK,WAAW,GAAG,CAAA;AAAA,IACpD;AACA,IAAA,IAAI,OAAO,IAAA,CAAK,IAAA,KAAS,UAAA,EAAY;AACnC,MAAA,OAAO,cAAA,CAAe,EAAA,EAAI,GAAA,EAAK,IAAI,CAAA;AAAA,IACrC;AACA,IAAA,IAAI,OAAO,IAAA,CAAK,MAAA,KAAW,UAAA,EAAY;AACrC,MAAA,OAAO,YAAA,CAAa,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM,QAAQ,CAAA;AAAA,IAC7C;AACA,IAAA,MAAM,IAAI,UAAU,wCAAwC,CAAA;AAAA,EAC9D,CAAA;AACF;;;ACxBe,SAAR,aAAA,CAA+B,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM;AACnD,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,IAAI,MAAM,IAAA,CAAK,MAAA;AACf,EAAA,OAAO,MAAM,GAAA,EAAK;AAChB,IAAA,GAAA,GAAM,GAAG,mBAAmB,CAAA,CAAE,GAAA,EAAK,IAAA,CAAK,GAAG,CAAC,CAAA;AAC5C,IAAA,IAAI,GAAA,IAAO,GAAA,CAAI,sBAAsB,CAAA,EAAG;AACtC,MAAA,GAAA,GAAM,IAAI,oBAAoB,CAAA;AAC9B,MAAA;AAAA,IACF;AACA,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAA,CAAG,qBAAqB,CAAA,CAAE,GAAG,CAAA;AACtC;;;ACaA,IAAI,IAAA,mBAAoB,OAAA,CAAQ,SAASC,KAAAA,CAAK,IAAI,OAAA,EAAS;AACzD,EAAA,OAAO,MAAA,CAAO,EAAA,CAAG,MAAA,EAAQ,WAAY;AACnC,IAAA,OAAO,EAAA,CAAG,KAAA,CAAM,OAAA,EAAS,SAAS,CAAA;AAAA,EACpC,CAAC,CAAA;AACH,CAAC,CAAA;AACD,IAAO,YAAA,GAAQ,IAAA;;;AC3Bf,SAAS,gBAAA,CAAiB,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM;AACvC,EAAA,IAAI,IAAA,GAAO,KAAK,IAAA,EAAK;AACrB,EAAA,OAAO,CAAC,KAAK,IAAA,EAAM;AACjB,IAAA,GAAA,GAAM,EAAA,CAAG,mBAAmB,CAAA,CAAE,GAAA,EAAK,KAAK,KAAK,CAAA;AAC7C,IAAA,IAAI,GAAA,IAAO,GAAA,CAAI,sBAAsB,CAAA,EAAG;AACtC,MAAA,GAAA,GAAM,IAAI,oBAAoB,CAAA;AAC9B,MAAA;AAAA,IACF;AACA,IAAA,IAAA,GAAO,KAAK,IAAA,EAAK;AAAA,EACnB;AACA,EAAA,OAAO,EAAA,CAAG,qBAAqB,CAAA,CAAE,GAAG,CAAA;AACtC;AACA,SAAS,cAAA,CAAe,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,UAAA,EAAY;AAChD,EAAA,OAAO,EAAA,CAAG,qBAAqB,CAAA,CAAE,GAAA,CAAI,UAAU,CAAA,CAAE,YAAA,CAAK,EAAA,CAAG,mBAAmB,CAAA,EAAG,EAAE,CAAA,EAAG,GAAG,CAAC,CAAA;AAC1F;AACA,IAAI,QAAA,mBAAwB,aAAA,CAAc,aAAA,EAAe,cAAA,EAAgB,gBAAgB,CAAA;AACzF,IAAO,eAAA,GAAQ,QAAA;;;ACnBf,IAAI,wBAAqB,CAAA,WAAY;AACnC,EAAA,SAASC,OAAM,EAAA,EAAI;AACjB,IAAA,IAAA,CAAK,CAAA,GAAI,EAAA;AAAA,EACX;AACA,EAAAA,MAAAA,CAAM,SAAA,CAAU,mBAAmB,CAAA,GAAI,WAAY;AACjD,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD,CAAA;AACA,EAAAA,MAAAA,CAAM,SAAA,CAAU,qBAAqB,CAAA,GAAI,SAAU,GAAA,EAAK;AACtD,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AACA,EAAAA,OAAM,SAAA,CAAU,mBAAmB,CAAA,GAAI,SAAU,KAAK,CAAA,EAAG;AACvD,IAAA,OAAO,IAAA,CAAK,CAAA,CAAE,GAAA,EAAK,CAAC,CAAA;AAAA,EACtB,CAAA;AACA,EAAA,OAAOA,MAAAA;AACT,CAAA,GAAE;AACa,SAAR,OAAwB,EAAA,EAAI;AACjC,EAAA,OAAO,IAAI,MAAM,EAAE,CAAA;AACrB;;;ACuCA,IAAI,MAAA,mBAAsB,OAAA,CAAQ,SAAU,EAAA,EAAI,KAAK,IAAA,EAAM;AACzD,EAAA,OAAO,eAAA,CAAS,OAAO,EAAA,KAAO,UAAA,GAAa,OAAO,EAAE,CAAA,GAAI,EAAA,EAAI,GAAA,EAAK,IAAI,CAAA;AACvE,CAAC,CAAA;AACD,IAAO,cAAA,GAAQ,MAAA;;;AC5Bf,IAAI,OAAA,mBAAuB,OAAA,CAAQ,SAASC,QAAAA,CAAQ,KAAA,EAAO;AACzD,EAAA,OAAO,cAAA,CAAO,eAAO,WAAA,EAAK,CAAA,EAAG,cAAM,QAAA,EAAU,KAAK,CAAC,CAAA,EAAG,WAAY;AAChE,IAAA,IAAI,GAAA,GAAM,CAAA;AACV,IAAA,IAAI,MAAM,KAAA,CAAM,MAAA;AAChB,IAAA,OAAO,MAAM,GAAA,EAAK;AAChB,MAAA,IAAI,CAAC,KAAA,CAAM,GAAG,EAAE,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA,EAAG;AACtC,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA,GAAA,IAAO,CAAA;AAAA,IACT;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA;AACH,CAAC,CAAA;AACD,IAAO,eAAA,GAAQ,OAAA;;;ACvBf,IAAI,MAAA,mBAAsB,OAAA,CAAQ,SAASC,OAAAA,CAAO,GAAA,EAAK;AACrD,EAAA,OAAO,WAAY;AACjB,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AACF,CAAC,CAAA;AACD,IAAO,cAAA,GAAQ,MAAA;;;ACfA,SAAR,OAAA,CAAyB,MAAM,IAAA,EAAM;AAC1C,EAAA,IAAA,GAAO,QAAQ,EAAC;AAChB,EAAA,IAAA,GAAO,QAAQ,EAAC;AAChB,EAAA,IAAI,GAAA;AACJ,EAAA,IAAI,OAAO,IAAA,CAAK,MAAA;AAChB,EAAA,IAAI,OAAO,IAAA,CAAK,MAAA;AAChB,EAAA,IAAI,SAAS,EAAC;AACd,EAAA,GAAA,GAAM,CAAA;AACN,EAAA,OAAO,MAAM,IAAA,EAAM;AACjB,IAAA,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA,GAAI,IAAA,CAAK,GAAG,CAAA;AAChC,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,GAAA,GAAM,CAAA;AACN,EAAA,OAAO,MAAM,IAAA,EAAM;AACjB,IAAA,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA,GAAI,IAAA,CAAK,GAAG,CAAA;AAChC,IAAA,GAAA,IAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;;;AC3BA,SAAS,eAAA,CAAgB,OAAA,EAAS,GAAA,EAAK,IAAA,EAAM;AAC3C,EAAA,IAAI,IAAA,GAAO,KAAK,IAAA,EAAK;AACrB,EAAA,OAAO,CAAC,KAAK,IAAA,EAAM;AACjB,IAAA,GAAA,GAAM,OAAA,CAAQ,GAAA,EAAK,IAAA,CAAK,KAAK,CAAA;AAC7B,IAAA,IAAA,GAAO,KAAK,IAAA,EAAK;AAAA,EACnB;AACA,EAAA,OAAO,GAAA;AACT;AACA,SAAS,aAAA,CAAc,OAAA,EAAS,GAAA,EAAK,GAAA,EAAK,UAAA,EAAY;AACpD,EAAA,OAAO,GAAA,CAAI,UAAU,CAAA,CAAE,OAAA,EAAS,GAAG,CAAA;AACrC;AACA,IAAI,OAAA,mBAAuB,aAAA,CAAc,YAAA,EAAc,aAAA,EAAe,eAAe,CAAA;AACrF,IAAOC,eAAAA,GAAQ,OAAA;;;ACiBf,IAAI,EAAA,mBAAkB,OAAA,CAAQ,SAASC,GAAAA,CAAG,QAAQ,MAAA,EAAQ;AACxD,EAAA,OAAO,OAAO,OAAO,iBAAiB,CAAA,KAAM,aAAa,MAAA,CAAO,iBAAiB,CAAA,CAAE,MAAM,CAAA,GAAI,OAAO,OAAO,EAAA,KAAO,UAAA,GAAa,OAAO,EAAA,CAAG,MAAM,IAAI,OAAO,MAAA,KAAW,UAAA,GAAa,SAAU,CAAA,EAAG;AAC7L,IAAA,OAAO,MAAA,CAAO,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,EAC5B,CAAA,GAAID,eAAAA,CAAQ,SAAU,GAAA,EAAK,CAAA,EAAG;AAC5B,IAAA,OAAO,OAAA,CAAQ,GAAA,EAAK,WAAA,CAAI,CAAA,EAAG,MAAM,CAAC,CAAA;AAAA,EACpC,CAAA,EAAG,EAAC,EAAG,MAAM,CAAA;AACf,CAAC,CAAA;AACD,IAAO,UAAA,GAAQ,EAAA;;;ACff,IAAI,KAAA,mBAAqB,OAAA,CAAQ,SAASE,MAAAA,CAAM,OAAO,EAAA,EAAI;AACzD,EAAA,IAAI,MAAA,GAAS,cAAA,CAAO,KAAA,EAAO,EAAE,CAAA;AAC7B,EAAA,OAAO,cAAA,CAAO,OAAO,WAAY;AAC/B,IAAA,OAAO,YAAA,CAAa,UAAA,EAAI,WAAA,CAAI,MAAA,EAAQ,UAAU,CAAC,CAAC,CAAA,EAAG,KAAA,CAAM,SAAA,CAAU,KAAA,CAAM,IAAA,CAAK,SAAA,EAAW,CAAC,CAAC,CAAA;AAAA,EAC7F,CAAC,CAAA;AACH,CAAC,CAAA;AACD,IAAO,aAAA,GAAQ,KAAA;;;ACJf,IAAI,IAAA,mBAAoB,OAAA,CAAQ,SAASC,KAAAA,CAAK,EAAA,EAAI;AAChD,EAAA,OAAO,aAAA,CAAM,EAAA,CAAG,MAAA,EAAQ,EAAE,CAAA;AAC5B,CAAC,CAAA;AACD,IAAO,YAAA,GAAQ,IAAA;;;ACPf,IAAI,GAAA,mBAAmB,OAAA,CAAQ,SAASC,IAAAA,CAAI,CAAA,EAAG;AAC7C,EAAA,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AACD,IAAO,WAAA,GAAQ,GAAA;;;ACCf,IAAI,UAAA,gCAA+B,WAAG,CAAA;AACtC,IAAO,kBAAA,GAAQ,UAAA;;;ACWf,IAAI,IAAA,mBAAoB,OAAA,CAAQ,SAASC,KAAAA,CAAK,KAAA,EAAO;AACnD,EAAA,IAAI,QAAQ,cAAA,CAAO,WAAA,EAAK,CAAA,EAAG,WAAA,CAAI,SAAU,IAAA,EAAM;AAC7C,IAAA,OAAO,IAAA,CAAK,CAAC,CAAA,CAAE,MAAA;AAAA,EACjB,CAAA,EAAG,KAAK,CAAC,CAAA;AACT,EAAA,OAAO,MAAA,CAAO,OAAO,WAAY;AAC/B,IAAA,IAAI,GAAA,GAAM,CAAA;AACV,IAAA,OAAO,GAAA,GAAM,MAAM,MAAA,EAAQ;AACzB,MAAA,IAAI,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,EAAE,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA,EAAG;AACxC,QAAA,OAAO,MAAM,GAAG,CAAA,CAAE,CAAC,CAAA,CAAE,KAAA,CAAM,MAAM,SAAS,CAAA;AAAA,MAC5C;AACA,MAAA,GAAA,IAAO,CAAA;AAAA,IACT;AAAA,EACF,CAAC,CAAA;AACH,CAAC,CAAA;AACD,IAAO,YAAA,GAAQ,IAAA;;;ACrBf,IAAI,yBAAsB,OAAA,CAAQ,SAASC,OAAAA,CAAO,SAAA,EAAW,QAAQ,OAAA,EAAS;AAC5E,EAAA,OAAO,cAAA,CAAO,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,MAAA,EAAQ,MAAA,CAAO,MAAA,EAAQ,OAAA,CAAQ,MAAM,CAAA,EAAG,SAAS,OAAA,GAAU;AAC1F,IAAA,OAAO,SAAA,CAAU,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA,GAAI,MAAA,CAAO,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA,GAAI,OAAA,CAAQ,KAAA,CAAM,MAAM,SAAS,CAAA;AAAA,EACzG,CAAC,CAAA;AACH,CAAC,CAAA;AACD,IAAO,cAAA,GAAQ,MAAA;;;ACjCf,IAAM,qBAAqB,CAAC,KAAA,KAAkB,KAAA,CAAM,IAAA,GAAO,MAAA,GAAS,CAAA;AAE7D,IAAM,UAAA,GAAa,CAAC,MAAA,KACzB,cAAA,CAAO,kBAAA,EAAoB,CAAC,GAAG,MAAM,CAAC,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;;;ACa3C,IAAM,IAAA,GAAa,EAAE,MAAA,EAAQ,MAAA,EAAO;AAEpC,SAAS,KAAa,KAAA,EAA6B;AACxD,EAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAM;AACjC;AAEO,IAAM,MAAA,GAAS,CAAS,MAAA,KAC7B,MAAA,CAAO,MAAA,KAAW,MAAA;AAmBb,SAAS,WAAA,CACd,QACA,OAAA,EACA;AACA,EAAA,OAAO,cAAA;AAAA,IACL,MAAA;AAAA,IACA,CAAC,UAAA,KAA6B,OAAA,CAAQ,IAAA,CAAK,WAAW,KAAK,CAAA;AAAA,IAC3D,OAAA,CAAQ;AAAA,IACR,MAAM,CAAA;AACV;;;AClCO,SAAS,GAAW,KAAA,EAA2B;AACpD,EAAA,OAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAM;AAC/B;AAEO,SAAS,IAAY,KAAA,EAA4B;AACtD,EAAA,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,KAAA,EAAM;AAClC;AAEO,IAAM,IAAA,GAAO,CAClB,MAAA,KACyB,MAAA,CAAO,MAAA,KAAW,IAAA;AAEtC,IAAM,gBACX,CACE,SAAA,KAEF,CAAC,MAAA,KACC,YAAY,MAAA,EAAQ;AAAA,EAClB,KAAA,EAAO,GAAA;AAAA,EACP,EAAA,EAAI;AACN,CAAC,CAAA;AAEE,IAAM,SAAA,GACX,CAA6B,SAAA,KAC7B,CAAC,WACC,aAAA,CAA0C,CAAC,KAAA,KAAU,EAAA,CAAG,SAAA,CAAU,KAAK,CAAC,CAAC,EAAE,MAAM,CAAA;AAe9E,SAAS,WAAA,CACd,QACA,OAAA,EACA;AACA,EAAA,OAAO,cAAA;AAAA,IACL,IAAA;AAAA,IACA,CAAC,QAAA,KAAyB,OAAA,CAAQ,EAAA,CAAG,SAAS,KAAK,CAAA;AAAA,IACnD,CAAC,WAAA,KAA6B,OAAA,CAAQ,KAAA,CAAM,YAAY,KAAK;AAAA,IAC7D,MAAM,CAAA;AACV;ACjEA,IAAM,aAAA,GAAgB,CAAC,OAAA,KACrB,WAAA,CAAY,OAAA,EAAS;AAAA,EACnB,MAAM,MAAM,IAAA;AAAA,EACZ,MAAM,CAAC,KAAA,oCAAW,GAAA,EAAA,EAAE,SAAA,EAAU,iCAAiC,QAAA,EAAA,KAAA,EAAM;AACvE,CAAC,CAAA;AAEI,SAAS,UAAA,CAAW;AAAA,EACzB,KAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAyB;AACvB,EAAA,uBACEC,eAAA,CAAC,SAAI,SAAA,EAAW,UAAA,CAAW,CAAC,sBAAA,EAAwB,SAAS,CAAC,CAAA,EAAG,IAAA,EAC/D,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6BAAA,EAA+B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBAClDA,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+BAAA,EAAiC,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,IACrD,cAAc,OAAO;AAAA,GAAA,EACxB,CAAA;AAEJ;;;ACNA,IAAM,gBAAA,GAAmB;AAAA,EACvB,mBAAA,EAAqB,CAAC,YAAA,MAA6C;AAAA,IACjE,IAAA,EAAM,qBAAA;AAAA,IACN,OAAA,EAAS,mFAAA;AAAA,IACT,SAAS,IAAA,CAAK,CAAA,uBAAA,EAA0B,MAAA,CAAO,YAAY,CAAC,CAAA,CAAA,CAAG;AAAA,GACjE,CAAA;AAAA,EACA,YAAA,EAAc,CAAC,KAAA,MAAsC;AAAA,IACnD,IAAA,EAAM,cAAA;AAAA,IACN,OAAA,EAAS,sDAAA;AAAA,IACT,SAAS,IAAA,CAAK,CAAA,eAAA,EAAkB,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA,CAAG;AAAA,GAClD,CAAA;AAAA,EACA,mBAAA,EAAqB,CAAC,KAAA,MAAwD;AAAA,IAC5E,IAAA,EAAM,qBAAA;AAAA,IACN,OAAA,EAAS,qDAAA;AAAA,IACT,OAAA,EAAS,IAAA;AAAA,MACP,CAAA,cAAA,EAAiB,OAAO,KAAA,CAAM,YAAY,CAAC,CAAA,eAAA,EAAkB,MAAA,CAAO,KAAA,CAAM,KAAK,CAAC,CAAA,CAAA;AAAA;AAClF,GACF;AACF,CAAA;AAEA,IAAM,cAAA,GAAiB,CAAC,KAAA,KACtB,eAAA,CAAQ;AAAA,EACN,CAAC,SAAA,KAAuB,OAAO,SAAA,KAAc,QAAA;AAAA,EAC7C,CAAC,SAAA,KAAuB,MAAA,CAAO,QAAA,CAAS,SAAS;AACnD,CAAC,EAAE,KAAK,CAAA;AAEV,IAAM,yBAAA,GAA4B,CAAC,KAAA,KACjC,eAAA,CAAQ;AAAA,EACN,cAAA;AAAA,EACA,CAAC,SAAA,KAAuB,MAAA,CAAO,SAAS,CAAA,IAAK;AAC/C,CAAC,EAAE,KAAK,CAAA;AAEV,IAAM,sBAAA,GAAyB,CAAC,KAAA,KAC9B,eAAA,CAAQ;AAAA,EACN,cAAA;AAAA,EACA,CAAC,SAAA,KAAuB,MAAA,CAAO,SAAS,CAAA,GAAI;AAC9C,CAAC,EAAE,KAAK,CAAA;AAEV,IAAM,oBAAA,GAAuB,CAAC,KAAA,KAC5B,yBAAA,CAA0B,MAAM,YAAY,CAAA;AAE9C,IAAM,aAAA,GAAgB,CAAC,KAAA,KAA4B,sBAAA,CAAuB,MAAM,KAAK,CAAA;AAErF,IAAM,gBAAA,GAAmB,CAAC,KAAA,MAAwD;AAAA,EAChF,YAAA,EAAc,MAAA,CAAO,KAAA,CAAM,YAAY,CAAA;AAAA,EACvC,KAAA,EAAO,MAAA,CAAO,KAAA,CAAM,KAAK;AAC3B,CAAA,CAAA;AAEA,IAAM,mBAAA,GAAsB,CAAC,KAAA,KAC3B,KAAA,CAAM,eAAe,KAAA,CAAM,KAAA;AAE7B,IAAM,eAAA,GAA+C;AAAA,EACnD;AAAA,IACE,mBAAW,oBAAoB,CAAA;AAAA,IAC/B,CAAC,KAAA,KAA4B,GAAA,CAAI,iBAAiB,mBAAA,CAAoB,KAAA,CAAM,YAAY,CAAC;AAAA,GAC3F;AAAA,EACA;AAAA,IACE,mBAAW,aAAa,CAAA;AAAA,IACxB,CAAC,KAAA,KAA4B,GAAA,CAAI,iBAAiB,YAAA,CAAa,KAAA,CAAM,KAAK,CAAC;AAAA,GAC7E;AAAA,EACA;AAAA,IACE,CAAC,KAAA,KAA4B,mBAAA,CAAoB,gBAAA,CAAiB,KAAK,CAAC,CAAA;AAAA,IACxE,CAAC,UAA4B,GAAA,CAAI,gBAAA,CAAiB,oBAAoB,gBAAA,CAAiB,KAAK,CAAC,CAAC;AAAA,GAChG;AAAA,EACA,CAAC,cAAA,CAAO,IAAI,CAAA,EAAG,CAAC,UAA4B,EAAA,CAAG,gBAAA,CAAiB,KAAK,CAAC,CAAC;AACzE,CAAA;AAEO,IAAM,wBAAA,GAEiB,aAAK,eAAe;AAElD,IAAM,YAAA,GAAe,CAAC,KAAA,KAAqC,KAAA,CAAM,eAAe,KAAA,CAAM,KAAA;AAE/E,SAAS,mBAAmB,KAAA,EAA4C;AAC7E,EAAA,OAAO,UAA+D,YAAY,CAAA;AAAA,IAChF,yBAAyB,KAAK;AAAA,GAChC;AACF;;;AC9FO,IAAM,mBAAA,GAAsB;AAAA,EACjC,GAAA,EAAK,EAAA;AAAA,EACL,KAAA,EAAO,EAAA;AAAA,EACP,MAAA,EAAQ,EAAA;AAAA,EACR,IAAA,EAAM;AACR,CAAA;AAiBA,IAAM,YAAA,GAAe,EAAA;AAEd,IAAM,qBAAA,GAAwB,CACnC,YAAA,EACA,KAAA,EACA,OACA,KAAA,EACA,MAAA,EACA,aACA,gBAAA,KACqB;AACrB,EAAA,MAAM,UAAA,GAAa,KAAA,GAAQ,mBAAA,CAAoB,IAAA,GAAO,mBAAA,CAAoB,KAAA;AAC1E,EAAA,MAAM,cAAc,IAAA,CAAK,GAAA;AAAA,IACvB,YAAA;AAAA,IACA,MAAA,GAAS,mBAAA,CAAoB,GAAA,GAAM,mBAAA,CAAoB;AAAA,GACzD;AACA,EAAA,MAAM,SAAS,mBAAA,CAAoB,IAAA;AACnC,EAAA,MAAM,MAAA,GAAS,MAAA,GAAS,mBAAA,CAAoB,MAAA,GAAS,WAAA;AAErD,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAa,WAAA,GAAc,CAAA;AAAA,IAC3B,WAAW,UAAA,GAAa,KAAA;AAAA,IACxB,UAAA,EAAY,GAAG,WAAA,CAAY,YAAY,CAAC,CAAA,IAAA,EAAO,WAAA,CAAY,KAAK,CAAC,CAAA,CAAA;AAAA,IACjE,eAAA,EAAiB,iBAAiB,KAAK,CAAA;AAAA,IACvC,MAAA,EAAQ,oBAAoB,GAAA,GAAM;AAAA,GACpC;AACF,CAAA;ACjDO,SAAS,kBAAA,CAAmB,EAAE,OAAA,EAAQ,EAA4B;AACvE,EAAA,OAAO,YAAY,OAAA,EAAS;AAAA,IAC1B,MAAM,MAAM,IAAA;AAAA,IACZ,IAAA,EAAM,CAAC,OAAA,qBACLA,eAAC,YAAA,EAAA,EAAW,SAAA,EAAU,kCAAkC,QAAA,EAAA,OAAA,EAAQ;AAAA,GAEnE,CAAA;AACH;ACCA,IAAM,OAAA,GAAU,CAAC,QAAA,KAA+B,QAAA,CAAS,SAAA,GAAY,CAAA;AAE9D,SAAS,cAAA,CAAe;AAAA,EAC7B,SAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAwB;AACtB,EAAA,MAAM,aAAa,CAAA,sBAAA,EAAyBC,WAAA,GAAQ,UAAA,CAAW,GAAA,EAAK,EAAE,CAAC,CAAA,CAAA;AACvE,EAAA,MAAM,YAAY,CAAA,EAAG,QAAA,CAAS,UAAU,CAAA,EAAA,EAAK,SAAS,eAAe,CAAA,CAAA,CAAA;AACrE,EAAA,MAAM,UAAA,GAAa,cAAA;AAAA,IACjB,OAAA;AAAA,IACA,sBACED,cAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,6BAAA;AAAA,QACV,GAAG,QAAA,CAAS,MAAA;AAAA,QACZ,GAAG,QAAA,CAAS,MAAA;AAAA,QACZ,OAAO,QAAA,CAAS,SAAA;AAAA,QAChB,QAAQ,QAAA,CAAS,WAAA;AAAA,QACjB,QAAA,EAAU,QAAQ,UAAU,CAAA,CAAA;AAAA;AAAA,KAC9B;AAAA,IAEF,MAAM;AAAA,GACR;AACA,EAAA,MAAM,YAAA,GAAe,cAAA;AAAA,IACnB,CAAC,SAAA,KAAuB,SAAA;AAAA,IACxB,sBACED,eAAAA,CAAC,OAAE,SAAA,EAAU,+BAAA,EAAgC,eAAY,MAAA,EACvD,QAAA,EAAA;AAAA,sBAAAC,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,8BAAA;AAAA,UACV,GAAG,QAAA,CAAS,MAAA;AAAA,UACZ,GAAG,QAAA,CAAS,MAAA;AAAA,UAEX,QAAA,EAAA,QAAA,CAAS;AAAA;AAAA,OACZ;AAAA,sBACAA,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,mCAAA;AAAA,UACV,CAAA,EAAG,QAAA,CAAS,MAAA,GAAS,QAAA,CAAS,UAAA;AAAA,UAC9B,GAAG,QAAA,CAAS,MAAA;AAAA,UACZ,UAAA,EAAW,KAAA;AAAA,UAEV,QAAA,EAAA,QAAA,CAAS;AAAA;AAAA;AACZ,KAAA,EACF,CAAA;AAAA,IAEF,MAAM;AAAA,GACR;AAEA,EAAA,uBACED,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,4BAAA;AAAA,MACV,OAAA,EAAS,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,MAC/B,IAAA,EAAK,KAAA;AAAA,MACL,YAAA,EAAY,SAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAC,eAAC,MAAA,EAAA,EACC,QAAA,kBAAAA,eAAC,UAAA,EAAA,EAAS,EAAA,EAAI,YACZ,QAAA,kBAAAA,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,GAAG,QAAA,CAAS,MAAA;AAAA,YACZ,GAAG,QAAA,CAAS,MAAA;AAAA,YACZ,OAAO,QAAA,CAAS,UAAA;AAAA,YAChB,QAAQ,QAAA,CAAS,WAAA;AAAA,YACjB,IAAI,QAAA,CAAS;AAAA;AAAA,WAEjB,CAAA,EACF,CAAA;AAAA,QACC,aAAa,SAAS,CAAA;AAAA,wBACvBD,eAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,8BAAA;AAAA,YACV,IAAA,EAAK,aAAA;AAAA,YACL,YAAA,EAAY,SAAA;AAAA,YACZ,eAAA,EAAe,CAAA;AAAA,YACf,iBAAe,QAAA,CAAS,KAAA;AAAA,YACxB,iBAAe,QAAA,CAAS,YAAA;AAAA,YACxB,gBAAA,EAAgB,SAAA;AAAA,YAEhB,QAAA,EAAA;AAAA,8BAAAC,cAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,8BAAA;AAAA,kBACV,GAAG,QAAA,CAAS,MAAA;AAAA,kBACZ,GAAG,QAAA,CAAS,MAAA;AAAA,kBACZ,OAAO,QAAA,CAAS,UAAA;AAAA,kBAChB,QAAQ,QAAA,CAAS,WAAA;AAAA,kBACjB,IAAI,QAAA,CAAS;AAAA;AAAA,eACf;AAAA,cACC,WAAW,QAAQ;AAAA;AAAA;AAAA;AACtB;AAAA;AAAA,GACF;AAEJ;ACxFO,SAAS,iBAAA,CAAkB;AAAA,EAChC,SAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAA2B;AACzB,EAAA,uBACED,eAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAW,UAAA,CAAW,CAAC,uBAAA,EAAyB,SAAS,CAAC,CAAA,EAAG,YAAA,EAAY,SAAA,EAC/E,QAAA,EAAA;AAAA,oBAAAC,cAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,SAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA;AAAA,KACF;AAAA,oBACAA,cAAAA,CAAC,kBAAA,EAAA,EAAmB,OAAA,EAAkB;AAAA,GAAA,EACxC,CAAA;AAEJ;AC1BO,SAAS,WAAA,CAAY;AAAA,EAC1B,YAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAAqB;AACnB,EAAA,MAAM,MAAA,GAASE,aAAA;AAAA,IACb,MAAM,kBAAA,CAAmB,EAAE,YAAA,EAAc,OAAO,CAAA;AAAA,IAChD,CAAC,cAAc,KAAK;AAAA,GACtB;AAEA,EAAA,OAAO,YAAY,MAAA,EAAQ;AAAA,IACzB,KAAA,EAAO,CAAC,KAAA,qBACNF,cAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,UAAA,CAAW,CAAC,8BAAA,EAAgC,SAAS,CAAC,CAAA;AAAA,QACjE,KAAA,EAAM,sBAAA;AAAA,QACN,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,IAAA,EAAK;AAAA;AAAA,KACP;AAAA,IAEF,EAAA,EAAI,CAAC,KAAA,KAAU;AACb,MAAA,MAAM,QAAA,GAAW,qBAAA;AAAA,QACf,YAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,QACA,MAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACF;AAEA,MAAA,uBACEA,cAAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACC,SAAA;AAAA,UACA,OAAA;AAAA,UACA,SAAA;AAAA,UACA,MAAA;AAAA,UACA,QAAA;AAAA,UACA,SAAA;AAAA,UACA;AAAA;AAAA,OACF;AAAA,IAEJ;AAAA,GACD,CAAA;AACH;;;ACxDO,IAAM,uBAAA,GAA0B,cAAA;AAAA,EACrC,MAAA,CAAO,SAAA;AAAA,EACP,MAAA;AAAA,EACA,CAAC,UAAkB,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,UAAU,EAAE;AAC1D;AAEO,IAAM,8BAA8B,CAAC,KAAA,KAC1C,GAAG,uBAAA,CAAwB,KAAA,GAAQ,GAAG,CAAC,CAAA,CAAA;AAElC,IAAM,+BAAA,GAAkC;AAAA,EAC7C,KAAA,EAAO,GAAA;AAAA,EACP,MAAA,EAAQ,EAAA;AAAA,EACR,SAAA,EAAW,cAAA;AAAA,EACX,SAAA,EAAW,EAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,WAAA,EAAa,uBAAA;AAAA,EACb,gBAAA,EAAkB;AACpB","file":"index.cjs","sourcesContent":["export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer created by [transducerCreator] to return a new transformer\n * (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} transducerCreator transducer factory if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\nexport default function _dispatchable(methodNames, transducerCreator, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var obj = arguments[arguments.length - 1];\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, Array.prototype.slice.call(arguments, 0, -1));\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = transducerCreator.apply(null, Array.prototype.slice.call(arguments, 0, -1));\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n var hasPlaceholder = false;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n } else {\n hasPlaceholder = true;\n }\n combinedIdx += 1;\n }\n return !hasPlaceholder && left <= 0 ? fn.apply(this, combined) : _arity(Math.max(0, left), _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\nvar curryN = /*#__PURE__*/_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n});\nexport default curryN;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig * -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(async () => {}); //=> \"AsyncFunction\"\n * R.type(undefined); //=> \"Undefined\"\n * R.type(BigInt(123)); //=> \"BigInt\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparison of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n var typeA = type(a);\n if (typeA !== type(b)) {\n return false;\n }\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","import equals from \"../equals.js\";\nexport default function _indexOf(list, a, idx) {\n var inf, item;\n // Array.prototype.indexOf doesn't exist below IE9\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n }\n // non-zero numbers can utilise Set\n return list.indexOf(a, idx);\n\n // all these types can utilise Set\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n }\n }\n // anything else not covered above, defer to R.equals\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}","import _indexOf from \"./_indexOf.js\";\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n}","export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}","/**\n * Polyfill from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString>.\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\nexport default _toISOString;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","export default function _arrayReduce(reducer, acc, list) {\n var index = 0;\n var length = list.length;\n while (index < length) {\n acc = reducer(acc, list[index]);\n index += 1;\n }\n return acc;\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _xfBase from \"./_xfBase.js\";\nvar XFilter = /*#__PURE__*/function () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n return XFilter;\n}();\nexport default function _xfilter(f) {\n return function (xf) {\n return new XFilter(f, xf);\n };\n}","import _arrayReduce from \"./internal/_arrayReduce.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _xfilter from \"./internal/_xfilter.js\";\nimport keys from \"./keys.js\";\n\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @category Object\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nvar filter = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/filter', 'filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _arrayReduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n return acc;\n }, {}, keys(filterable)) :\n // else\n _filter(pred, filterable);\n}));\nexport default filter;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 !== 0;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nvar reject = /*#__PURE__*/_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\nexport default reject;","import _includes from \"./_includes.js\";\nimport _map from \"./_map.js\";\nimport _quote from \"./_quote.js\";\nimport _toISOString from \"./_toISOString.js\";\nimport keys from \"../keys.js\";\nimport reject from \"../reject.js\";\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '<Circular>' : _toString(y, xs);\n };\n\n // mapPairs :: (Object, [String]) -> [String]\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return /^\\d+$/.test(k);\n }, keys(x)))).join(', ') + ']';\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n case '[object Map]':\n return 'new Map(' + recur(Array.from(x)) + ')';\n case '[object Null]':\n return 'null';\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n case '[object Set]':\n return 'new Set(' + recur(Array.from(x).sort()) + ')';\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n case '[object Undefined]':\n return 'undefined';\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _toString from \"./internal/_toString.js\";\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\nvar toString = /*#__PURE__*/_curry1(function toString(val) {\n return _toString(val, []);\n});\nexport default toString;","import _curry2 from \"./internal/_curry2.js\";\nimport toString from \"./toString.js\";\n\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\nvar max = /*#__PURE__*/_curry2(function max(a, b) {\n if (a === b) {\n return b;\n }\n function safeMax(x, y) {\n if (x > y !== y > x) {\n return y > x ? y : x;\n }\n return undefined;\n }\n var maxByValue = safeMax(a, b);\n if (maxByValue !== undefined) {\n return maxByValue;\n }\n var maxByType = safeMax(typeof a, typeof b);\n if (maxByType !== undefined) {\n return maxByType === typeof a ? a : b;\n }\n var stringA = toString(a);\n var maxByStringValue = safeMax(stringA, toString(b));\n if (maxByStringValue !== undefined) {\n return maxByStringValue === stringA ? a : b;\n }\n return b;\n});\nexport default max;","import _xfBase from \"./_xfBase.js\";\nvar XMap = /*#__PURE__*/function () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n return XMap;\n}();\nvar _xmap = function _xmap(f) {\n return function (xf) {\n return new XMap(f, xf);\n };\n};\nexport default _xmap;","import _arrayReduce from \"./internal/_arrayReduce.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex, R.pluck, R.project\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\nvar map = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _arrayReduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\n }\n}));\nexport default map;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _isString from \"./_isString.js\";\nexport default function _nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _nth from \"./internal/_nth.js\";\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.props, R.pluck, R.project, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop = /*#__PURE__*/_curry2(function prop(p, obj) {\n if (obj == null) {\n return;\n }\n return _isInteger(p) ? _nth(p, obj) : obj[p];\n});\nexport default prop;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.project, R.prop, R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\nvar pluck = /*#__PURE__*/_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\nexport default pluck;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n * _isArrayLike({nodeType: 1, length: 1}) // => false\n */\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;","import _isArrayLike from \"./_isArrayLike.js\";\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _createReduce(arrayReduce, methodReduce, iterableReduce) {\n return function _reduce(xf, acc, list) {\n if (_isArrayLike(list)) {\n return arrayReduce(xf, acc, list);\n }\n if (list == null) {\n return acc;\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return methodReduce(xf, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return iterableReduce(xf, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return iterableReduce(xf, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return methodReduce(xf, acc, list, 'reduce');\n }\n throw new TypeError('reduce: list must be array or iterable');\n };\n}","export default function _xArrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","import _createReduce from \"./_createReduce.js\";\nimport _xArrayReduce from \"./_xArrayReduce.js\";\nimport bind from \"../bind.js\";\nfunction _xIterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\nfunction _xMethodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\nvar _xReduce = /*#__PURE__*/_createReduce(_xArrayReduce, _xMethodReduce, _xIterableReduce);\nexport default _xReduce;","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n return XWrap;\n}();\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _curry3 from \"./internal/_curry3.js\";\nimport _xReduce from \"./internal/_xReduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Be cautious of mutating and returning the accumulator. If you reuse it across\n * invocations, it will continue to accumulate onto the same value. The general\n * recommendation is to always return a new value. If you can't do so for\n * performance reasons, then be sure to reinitialize the accumulator on each\n * invocation.\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\nvar reduce = /*#__PURE__*/_curry3(function (xf, acc, list) {\n return _xReduce(typeof xf === 'function' ? _xwrap(xf) : xf, acc, list);\n});\nexport default reduce;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass, R.both\n * @example\n *\n * const isQueen = R.propEq('Q', 'rank');\n * const isSpade = R.propEq('♠︎', 'suit');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\nvar allPass = /*#__PURE__*/_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n idx += 1;\n }\n return true;\n });\n});\nexport default allPass;","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\nvar always = /*#__PURE__*/_curry1(function always(val) {\n return function () {\n return val;\n };\n});\nexport default always;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n return result;\n}","import _arrayReduce from \"./_arrayReduce.js\";\nimport _createReduce from \"./_createReduce.js\";\nfunction _iterableReduce(reducer, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = reducer(acc, step.value);\n step = iter.next();\n }\n return acc;\n}\nfunction _methodReduce(reducer, acc, obj, methodName) {\n return obj[methodName](reducer, acc);\n}\nvar _reduce = /*#__PURE__*/_createReduce(_arrayReduce, _methodReduce, _iterableReduce);\nexport default _reduce;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport map from \"./map.js\";\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the first argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\nvar ap = /*#__PURE__*/_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\nexport default ap;","import _curry2 from \"./internal/_curry2.js\";\nimport _arrayReduce from \"./internal/_arrayReduce.js\";\nimport ap from \"./ap.js\";\nimport curryN from \"./curryN.js\";\nimport map from \"./map.js\";\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\nvar liftN = /*#__PURE__*/_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _arrayReduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\nexport default liftN;","import _curry1 from \"./internal/_curry1.js\";\nimport liftN from \"./liftN.js\";\n\n/**\n * \"lifts\" a function of arity >= 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([100, 200], [30, 40], [5, 6, 7]); //=> [135, 136, 137, 145, 146, 147, 235, 236, 237, 245, 246, 247]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([10, 20], [1], [2, 3], [4], [100, 200]); //=> [117, 217, 118, 218, 127, 227, 128, 228]\n */\nvar lift = /*#__PURE__*/_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\nexport default lift;","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\nvar not = /*#__PURE__*/_curry1(function not(a) {\n return !a;\n});\nexport default not;","import lift from \"./lift.js\";\nimport not from \"./not.js\";\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * R.isNil(null); //=> true\n * isNotNil(null); //=> false\n * R.isNil(7); //=> false\n * isNotNil(7); //=> true\n */\nvar complement = /*#__PURE__*/lift(not);\nexport default complement;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport map from \"./map.js\";\nimport max from \"./max.js\";\nimport reduce from \"./reduce.js\";\n\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * **Please note**: This is not a direct substitute for a `switch` statement.\n * Remember that both elements of every pair passed to `cond` are *functions*,\n * and `cond` returns a function.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\nvar cond = /*#__PURE__*/_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n idx += 1;\n }\n });\n});\nexport default cond;","import _curry3 from \"./internal/_curry3.js\";\nimport curryN from \"./curryN.js\";\n\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * Note that `ifElse` takes its arity from the longest of the three functions passed to it.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({ count: 1 }); //=> { count: 2 }\n * incCount({}); //=> { count: 1 }\n */\nvar ifElse = /*#__PURE__*/_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\nexport default ifElse;","import { filter } from './fp'\n\nconst isPresentClassName = (value: string) => value.trim().length > 0\n\nexport const classNames = (values: readonly string[]) =>\n filter(isPresentClassName, [...values]).join(' ')\n","import { always, ifElse, isNil } from './fp'\n\nexport type Some<TValue> = {\n readonly status: 'some'\n readonly value: TValue\n}\n\nexport type None = {\n readonly status: 'none'\n}\n\nexport type Option<TValue> = Some<TValue> | None\n\nexport type OptionMatcher<TValue, TOutput> = {\n readonly some: (value: TValue) => TOutput\n readonly none: () => TOutput\n}\n\nexport const none: None = { status: 'none' }\n\nexport function some<TValue>(value: TValue): Some<TValue> {\n return { status: 'some', value }\n}\n\nexport const isSome = <TValue>(option: Option<TValue>): option is Some<TValue> =>\n option.status === 'some'\n\nexport const isNone = <TValue>(option: Option<TValue>): option is None =>\n option.status === 'none'\n\nexport const fromNullable = <TValue>(value: TValue): Option<TValue> =>\n ifElse(\n isNil,\n always(none),\n some<TValue>,\n )(value)\n\nexport const getOrElse = <TValue>(fallback: TValue) => (option: Option<TValue>): TValue =>\n ifElse(\n isSome<TValue>,\n (someOption: Some<TValue>) => someOption.value,\n always(fallback),\n )(option)\n\nexport function matchOption<TValue, TOutput>(\n option: Option<TValue>,\n matcher: OptionMatcher<TValue, TOutput>,\n) {\n return ifElse(\n isSome<TValue>,\n (someOption: Some<TValue>) => matcher.some(someOption.value),\n matcher.none,\n )(option)\n}\n","import { ifElse } from './fp'\n\nexport type Ok<TValue> = {\n readonly status: 'ok'\n readonly value: TValue\n}\n\nexport type Err<TError> = {\n readonly status: 'error'\n readonly error: TError\n}\n\nexport type Result<TValue, TError> = Ok<TValue> | Err<TError>\n\nexport type ResultMatcher<TValue, TError, TOutput> = {\n readonly ok: (value: TValue) => TOutput\n readonly error: (error: TError) => TOutput\n}\n\nexport function ok<TValue>(value: TValue): Ok<TValue> {\n return { status: 'ok', value }\n}\n\nexport function err<TError>(error: TError): Err<TError> {\n return { status: 'error', error }\n}\n\nexport const isOk = <TValue, TError>(\n result: Result<TValue, TError>,\n): result is Ok<TValue> => result.status === 'ok'\n\nexport const andThenResult =\n <TValue, TNextValue, TError>(\n transform: (value: TValue) => Result<TNextValue, TError>,\n ) =>\n (result: Result<TValue, TError>): Result<TNextValue, TError> =>\n matchResult(result, {\n error: err<TError>,\n ok: transform,\n })\n\nexport const mapResult =\n <TValue, TNextValue, TError>(transform: (value: TValue) => TNextValue) =>\n (result: Result<TValue, TError>): Result<TNextValue, TError> =>\n andThenResult<TValue, TNextValue, TError>((value) => ok(transform(value)))(result)\n\nexport const bindResult =\n <TContext extends object, TValue, TNextContext extends object, TError>(\n transform: (context: TContext) => Result<TValue, TError>,\n merge: (context: TContext, value: TValue) => TNextContext,\n ) =>\n (result: Result<TContext, TError>): Result<TNextContext, TError> =>\n andThenResult<TContext, TNextContext, TError>(\n (context) =>\n mapResult<TValue, TNextContext, TError>((value) => merge(context, value))(\n transform(context),\n ),\n )(result)\n\nexport function matchResult<TValue, TError, TOutput>(\n result: Result<TValue, TError>,\n matcher: ResultMatcher<TValue, TError, TOutput>,\n) {\n return ifElse(\n isOk<TValue, TError>,\n (okResult: Ok<TValue>) => matcher.ok(okResult.value),\n (errorResult: Err<TError>) => matcher.error(errorResult.error),\n )(result)\n}\n","import { classNames, matchOption } from '../shared'\nimport type { ChartErrorInputProps } from './ChartError.types'\n\nconst renderDetails = (details: ChartErrorInputProps['details']) =>\n matchOption(details, {\n none: () => null,\n some: (value) => <p className=\"pristine-chart-error__details\">{value}</p>,\n })\n\nexport function ChartError({\n title,\n message,\n details,\n className,\n role,\n}: ChartErrorInputProps) {\n return (\n <div className={classNames(['pristine-chart-error', className])} role={role}>\n <p className=\"pristine-chart-error__title\">{title}</p>\n <p className=\"pristine-chart-error__message\">{message}</p>\n {renderDetails(details)}\n </div>\n )\n}\n","import { err, mapResult, ok, some } from '../shared'\nimport type { Result } from '../shared'\nimport { allPass, always, complement, cond } from '../shared/fp'\n\nimport type {\n ProgressBarError,\n ProgressBarInput,\n ProgressBarResult,\n ValidatedProgressBarInput,\n} from './ProgressBar.types'\n\ntype ProgressBarInputResult = Result<ValidatedProgressBarInput, ProgressBarError>\ntype ProgressBarInputValidator = [\n (input: ProgressBarInput) => boolean,\n (input: ProgressBarInput) => ProgressBarInputResult,\n]\n\nconst progressBarRules = {\n invalidCurrentValue: (currentValue: unknown): ProgressBarError => ({\n type: 'InvalidCurrentValue',\n message: 'Progress bar current value must be a finite number greater than or equal to zero.',\n details: some(`Invalid current value: ${String(currentValue)}.`),\n }),\n invalidTotal: (total: unknown): ProgressBarError => ({\n type: 'InvalidTotal',\n message: 'Progress bar total must be a positive finite number.',\n details: some(`Invalid total: ${String(total)}.`),\n }),\n currentExceedsTotal: (input: ValidatedProgressBarInput): ProgressBarError => ({\n type: 'CurrentExceedsTotal',\n message: 'Progress bar current value cannot exceed the total.',\n details: some(\n `Current value ${String(input.currentValue)} exceeds total ${String(input.total)}.`,\n ),\n }),\n}\n\nconst isFiniteNumber = (value: unknown) =>\n allPass([\n (candidate: unknown) => typeof candidate === 'number',\n (candidate: unknown) => Number.isFinite(candidate),\n ])(value)\n\nconst isNonNegativeFiniteNumber = (value: unknown) =>\n allPass([\n isFiniteNumber,\n (candidate: unknown) => Number(candidate) >= 0,\n ])(value)\n\nconst isPositiveFiniteNumber = (value: unknown) =>\n allPass([\n isFiniteNumber,\n (candidate: unknown) => Number(candidate) > 0,\n ])(value)\n\nconst hasValidCurrentValue = (input: ProgressBarInput) =>\n isNonNegativeFiniteNumber(input.currentValue)\n\nconst hasValidTotal = (input: ProgressBarInput) => isPositiveFiniteNumber(input.total)\n\nconst toValidatedInput = (input: ProgressBarInput): ValidatedProgressBarInput => ({\n currentValue: Number(input.currentValue),\n total: Number(input.total),\n})\n\nconst currentExceedsTotal = (input: ValidatedProgressBarInput) =>\n input.currentValue > input.total\n\nconst inputValidators: ProgressBarInputValidator[] = [\n [\n complement(hasValidCurrentValue),\n (input: ProgressBarInput) => err(progressBarRules.invalidCurrentValue(input.currentValue)),\n ],\n [\n complement(hasValidTotal),\n (input: ProgressBarInput) => err(progressBarRules.invalidTotal(input.total)),\n ],\n [\n (input: ProgressBarInput) => currentExceedsTotal(toValidatedInput(input)),\n (input: ProgressBarInput) => err(progressBarRules.currentExceedsTotal(toValidatedInput(input))),\n ],\n [always(true), (input: ProgressBarInput) => ok(toValidatedInput(input))],\n]\n\nexport const validateProgressBarInput: (\n input: ProgressBarInput\n) => ProgressBarInputResult = cond(inputValidators)\n\nconst computeRatio = (input: ValidatedProgressBarInput) => input.currentValue / input.total\n\nexport function computeProgressBar(input: ProgressBarInput): ProgressBarResult {\n return mapResult<ValidatedProgressBarInput, number, ProgressBarError>(computeRatio)(\n validateProgressBarInput(input),\n )\n}\n","export const PROGRESS_BAR_MARGIN = {\n top: 30,\n right: 16,\n bottom: 18,\n left: 16,\n}\n\nexport type ProgressBarModel = {\n readonly currentValue: number\n readonly total: number\n readonly ratio: number\n readonly trackX: number\n readonly trackY: number\n readonly trackWidth: number\n readonly trackHeight: number\n readonly trackRadius: number\n readonly fillWidth: number\n readonly valueLabel: string\n readonly percentageLabel: string\n readonly labelY: number\n}\n\nconst TRACK_HEIGHT = 18\n\nexport const buildProgressBarModel = (\n currentValue: number,\n total: number,\n ratio: number,\n width: number,\n height: number,\n formatValue: (value: number) => string,\n formatPercentage: (ratio: number) => string,\n): ProgressBarModel => {\n const trackWidth = width - PROGRESS_BAR_MARGIN.left - PROGRESS_BAR_MARGIN.right\n const trackHeight = Math.min(\n TRACK_HEIGHT,\n height - PROGRESS_BAR_MARGIN.top - PROGRESS_BAR_MARGIN.bottom,\n )\n const trackX = PROGRESS_BAR_MARGIN.left\n const trackY = height - PROGRESS_BAR_MARGIN.bottom - trackHeight\n\n return {\n currentValue,\n total,\n ratio,\n trackX,\n trackY,\n trackWidth,\n trackHeight,\n trackRadius: trackHeight / 2,\n fillWidth: trackWidth * ratio,\n valueLabel: `${formatValue(currentValue)} of ${formatValue(total)}`,\n percentageLabel: formatPercentage(ratio),\n labelY: PROGRESS_BAR_MARGIN.top / 2,\n }\n}\n","import { matchOption } from '@/shared'\n\nimport type { ProgressBarProps } from '../ProgressBar.types'\n\ntype ProgressBarCaptionProps = Pick<ProgressBarProps, 'caption'>\n\nexport function ProgressBarCaption({ caption }: ProgressBarCaptionProps) {\n return matchOption(caption, {\n none: () => null,\n some: (content) => (\n <figcaption className=\"pristine-progress-bar__caption\">{content}</figcaption>\n ),\n })\n}\n","import { useId } from 'react'\n\nimport { ifElse } from '@/shared/fp'\n\nimport type { ProgressBarModel } from '../ProgressBar.model'\nimport type { ProgressBarProps } from '../ProgressBar.types'\n\ntype ProgressBarSvgProps = Pick<\n ProgressBarProps,\n 'ariaLabel' | 'height' | 'showLabel' | 'width'\n> & {\n readonly progress: ProgressBarModel\n}\n\nconst hasFill = (progress: ProgressBarModel) => progress.fillWidth > 0\n\nexport function ProgressBarSvg({\n ariaLabel,\n height,\n progress,\n showLabel,\n width,\n}: ProgressBarSvgProps) {\n const clipPathId = `pristine-progress-bar-${useId().replaceAll(':', '')}`\n const valueText = `${progress.valueLabel} (${progress.percentageLabel})`\n const renderFill = ifElse(\n hasFill,\n () => (\n <rect\n className=\"pristine-progress-bar__fill\"\n x={progress.trackX}\n y={progress.trackY}\n width={progress.fillWidth}\n height={progress.trackHeight}\n clipPath={`url(#${clipPathId})`}\n />\n ),\n () => null,\n )\n const renderLabels = ifElse(\n (candidate: boolean) => candidate,\n () => (\n <g className=\"pristine-progress-bar__labels\" aria-hidden=\"true\">\n <text\n className=\"pristine-progress-bar__value\"\n x={progress.trackX}\n y={progress.labelY}\n >\n {progress.valueLabel}\n </text>\n <text\n className=\"pristine-progress-bar__percentage\"\n x={progress.trackX + progress.trackWidth}\n y={progress.labelY}\n textAnchor=\"end\"\n >\n {progress.percentageLabel}\n </text>\n </g>\n ),\n () => null,\n )\n\n return (\n <svg\n className=\"pristine-progress-bar__svg\"\n viewBox={`0 0 ${width} ${height}`}\n role=\"img\"\n aria-label={ariaLabel}\n >\n <defs>\n <clipPath id={clipPathId}>\n <rect\n x={progress.trackX}\n y={progress.trackY}\n width={progress.trackWidth}\n height={progress.trackHeight}\n rx={progress.trackRadius}\n />\n </clipPath>\n </defs>\n {renderLabels(showLabel)}\n <g\n className=\"pristine-progress-bar__meter\"\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={progress.total}\n aria-valuenow={progress.currentValue}\n aria-valuetext={valueText}\n >\n <rect\n className=\"pristine-progress-bar__track\"\n x={progress.trackX}\n y={progress.trackY}\n width={progress.trackWidth}\n height={progress.trackHeight}\n rx={progress.trackRadius}\n />\n {renderFill(progress)}\n </g>\n </svg>\n )\n}\n","import { classNames } from '@/shared'\n\nimport type { ProgressBarModel } from '../ProgressBar.model'\nimport type { ProgressBarProps } from '../ProgressBar.types'\n\nimport { ProgressBarCaption } from './ProgressBarCaption'\nimport { ProgressBarSvg } from './ProgressBarSvg'\n\ntype ProgressBarFigureProps = Pick<\n ProgressBarProps,\n 'ariaLabel' | 'caption' | 'className' | 'height' | 'showLabel' | 'width'\n> & {\n readonly progress: ProgressBarModel\n}\n\nexport function ProgressBarFigure({\n ariaLabel,\n caption,\n className,\n height,\n progress,\n showLabel,\n width,\n}: ProgressBarFigureProps) {\n return (\n <figure className={classNames(['pristine-progress-bar', className])} aria-label={ariaLabel}>\n <ProgressBarSvg\n ariaLabel={ariaLabel}\n height={height}\n progress={progress}\n showLabel={showLabel}\n width={width}\n />\n <ProgressBarCaption caption={caption} />\n </figure>\n )\n}\n","import { useMemo } from 'react'\n\nimport { ChartError } from '../chart-error'\nimport { classNames, matchResult } from '../shared'\n\nimport { computeProgressBar } from './ProgressBar.domain'\nimport { buildProgressBarModel } from './ProgressBar.model'\nimport { ProgressBarFigure } from './components/ProgressBarFigure'\nimport type { ProgressBarProps } from './ProgressBar.types'\n\nexport function ProgressBar({\n currentValue,\n total,\n width,\n height,\n ariaLabel,\n className,\n caption,\n showLabel,\n formatValue,\n formatPercentage,\n}: ProgressBarProps) {\n const result = useMemo(\n () => computeProgressBar({ currentValue, total }),\n [currentValue, total],\n )\n\n return matchResult(result, {\n error: (error) => (\n <ChartError\n className={classNames(['pristine-progress-bar__error', className])}\n title=\"Progress unavailable\"\n message={error.message}\n details={error.details}\n role=\"alert\"\n />\n ),\n ok: (ratio) => {\n const progress = buildProgressBarModel(\n currentValue,\n total,\n ratio,\n width,\n height,\n formatValue,\n formatPercentage,\n )\n\n return (\n <ProgressBarFigure\n ariaLabel={ariaLabel}\n caption={caption}\n className={className}\n height={height}\n progress={progress}\n showLabel={showLabel}\n width={width}\n />\n )\n },\n })\n}\n","import { none } from '../shared'\nimport { ifElse } from '../shared/fp'\n\nimport type { ProgressBarProps } from './ProgressBar.types'\n\nexport const formatProgressBarNumber = ifElse(\n Number.isInteger,\n String,\n (value: number) => value.toFixed(2).replace(/\\.?0+$/, ''),\n)\n\nexport const formatProgressBarPercentage = (ratio: number) =>\n `${formatProgressBarNumber(ratio * 100)}%`\n\nexport const DEFAULT_PROGRESS_BAR_VIEW_PROPS = {\n width: 360,\n height: 92,\n ariaLabel: 'Progress bar',\n className: '',\n caption: none,\n showLabel: true,\n formatValue: formatProgressBarNumber,\n formatPercentage: formatProgressBarPercentage,\n} satisfies Omit<ProgressBarProps, 'currentValue' | 'total'>\n"]}
@@ -0,0 +1,54 @@
1
+ import * as react from 'react';
2
+ import { O as Option, R as Result, N as None } from '../result-C2epnG6V.cjs';
3
+
4
+ type CurrentValue = number;
5
+ type Total = number;
6
+ type Ratio = number;
7
+ type ProgressBarInput = {
8
+ readonly currentValue: unknown;
9
+ readonly total: unknown;
10
+ };
11
+ type ValidatedProgressBarInput = {
12
+ readonly currentValue: CurrentValue;
13
+ readonly total: Total;
14
+ };
15
+ type ProgressBarErrorType = 'InvalidCurrentValue' | 'InvalidTotal' | 'CurrentExceedsTotal';
16
+ type ProgressBarError = {
17
+ readonly type: ProgressBarErrorType;
18
+ readonly message: string;
19
+ readonly details: Option<string>;
20
+ };
21
+ type ProgressBarResult = Result<Ratio, ProgressBarError>;
22
+ type ProgressBarProps = {
23
+ readonly currentValue: number;
24
+ readonly total: number;
25
+ readonly width: number;
26
+ readonly height: number;
27
+ readonly ariaLabel: string;
28
+ readonly className: string;
29
+ readonly caption: Option<string>;
30
+ readonly showLabel: boolean;
31
+ readonly formatValue: (value: number) => string;
32
+ readonly formatPercentage: (ratio: number) => string;
33
+ };
34
+
35
+ declare function ProgressBar({ currentValue, total, width, height, ariaLabel, className, caption, showLabel, formatValue, formatPercentage, }: ProgressBarProps): react.JSX.Element;
36
+
37
+ declare const formatProgressBarNumber: (value: number) => string;
38
+ declare const formatProgressBarPercentage: (ratio: number) => string;
39
+ declare const DEFAULT_PROGRESS_BAR_VIEW_PROPS: {
40
+ width: number;
41
+ height: number;
42
+ ariaLabel: string;
43
+ className: string;
44
+ caption: None;
45
+ showLabel: true;
46
+ formatValue: (value: number) => string;
47
+ formatPercentage: (ratio: number) => string;
48
+ };
49
+
50
+ type ProgressBarInputResult = Result<ValidatedProgressBarInput, ProgressBarError>;
51
+ declare const validateProgressBarInput: (input: ProgressBarInput) => ProgressBarInputResult;
52
+ declare function computeProgressBar(input: ProgressBarInput): ProgressBarResult;
53
+
54
+ export { type CurrentValue, DEFAULT_PROGRESS_BAR_VIEW_PROPS, ProgressBar, type ProgressBarError, type ProgressBarErrorType, type ProgressBarInput, type ProgressBarProps, type ProgressBarResult, type Ratio, type Total, type ValidatedProgressBarInput, computeProgressBar, formatProgressBarNumber, formatProgressBarPercentage, validateProgressBarInput };
@@ -0,0 +1,54 @@
1
+ import * as react from 'react';
2
+ import { O as Option, R as Result, N as None } from '../result-C2epnG6V.js';
3
+
4
+ type CurrentValue = number;
5
+ type Total = number;
6
+ type Ratio = number;
7
+ type ProgressBarInput = {
8
+ readonly currentValue: unknown;
9
+ readonly total: unknown;
10
+ };
11
+ type ValidatedProgressBarInput = {
12
+ readonly currentValue: CurrentValue;
13
+ readonly total: Total;
14
+ };
15
+ type ProgressBarErrorType = 'InvalidCurrentValue' | 'InvalidTotal' | 'CurrentExceedsTotal';
16
+ type ProgressBarError = {
17
+ readonly type: ProgressBarErrorType;
18
+ readonly message: string;
19
+ readonly details: Option<string>;
20
+ };
21
+ type ProgressBarResult = Result<Ratio, ProgressBarError>;
22
+ type ProgressBarProps = {
23
+ readonly currentValue: number;
24
+ readonly total: number;
25
+ readonly width: number;
26
+ readonly height: number;
27
+ readonly ariaLabel: string;
28
+ readonly className: string;
29
+ readonly caption: Option<string>;
30
+ readonly showLabel: boolean;
31
+ readonly formatValue: (value: number) => string;
32
+ readonly formatPercentage: (ratio: number) => string;
33
+ };
34
+
35
+ declare function ProgressBar({ currentValue, total, width, height, ariaLabel, className, caption, showLabel, formatValue, formatPercentage, }: ProgressBarProps): react.JSX.Element;
36
+
37
+ declare const formatProgressBarNumber: (value: number) => string;
38
+ declare const formatProgressBarPercentage: (ratio: number) => string;
39
+ declare const DEFAULT_PROGRESS_BAR_VIEW_PROPS: {
40
+ width: number;
41
+ height: number;
42
+ ariaLabel: string;
43
+ className: string;
44
+ caption: None;
45
+ showLabel: true;
46
+ formatValue: (value: number) => string;
47
+ formatPercentage: (ratio: number) => string;
48
+ };
49
+
50
+ type ProgressBarInputResult = Result<ValidatedProgressBarInput, ProgressBarError>;
51
+ declare const validateProgressBarInput: (input: ProgressBarInput) => ProgressBarInputResult;
52
+ declare function computeProgressBar(input: ProgressBarInput): ProgressBarResult;
53
+
54
+ export { type CurrentValue, DEFAULT_PROGRESS_BAR_VIEW_PROPS, ProgressBar, type ProgressBarError, type ProgressBarErrorType, type ProgressBarInput, type ProgressBarProps, type ProgressBarResult, type Ratio, type Total, type ValidatedProgressBarInput, computeProgressBar, formatProgressBarNumber, formatProgressBarPercentage, validateProgressBarInput };