effect 3.18.4 → 3.19.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 (51) hide show
  1. package/HashRing/package.json +6 -0
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/Graph.js +290 -177
  5. package/dist/cjs/Graph.js.map +1 -1
  6. package/dist/cjs/HashRing.js +257 -0
  7. package/dist/cjs/HashRing.js.map +1 -0
  8. package/dist/cjs/JSONSchema.js +39 -8
  9. package/dist/cjs/JSONSchema.js.map +1 -1
  10. package/dist/cjs/TestClock.js +8 -8
  11. package/dist/cjs/TestClock.js.map +1 -1
  12. package/dist/cjs/index.js +4 -2
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/internal/version.js +1 -1
  15. package/dist/dts/Array.d.ts +3 -3
  16. package/dist/dts/Array.d.ts.map +1 -1
  17. package/dist/dts/Effect.d.ts +6 -1
  18. package/dist/dts/Effect.d.ts.map +1 -1
  19. package/dist/dts/Graph.d.ts +147 -49
  20. package/dist/dts/Graph.d.ts.map +1 -1
  21. package/dist/dts/HashRing.d.ts +158 -0
  22. package/dist/dts/HashRing.d.ts.map +1 -0
  23. package/dist/dts/JSONSchema.d.ts +3 -2
  24. package/dist/dts/JSONSchema.d.ts.map +1 -1
  25. package/dist/dts/Types.d.ts +1 -1
  26. package/dist/dts/Types.d.ts.map +1 -1
  27. package/dist/dts/index.d.ts +5 -0
  28. package/dist/dts/index.d.ts.map +1 -1
  29. package/dist/esm/Array.js.map +1 -1
  30. package/dist/esm/Effect.js.map +1 -1
  31. package/dist/esm/Graph.js +286 -175
  32. package/dist/esm/Graph.js.map +1 -1
  33. package/dist/esm/HashRing.js +245 -0
  34. package/dist/esm/HashRing.js.map +1 -0
  35. package/dist/esm/JSONSchema.js +35 -6
  36. package/dist/esm/JSONSchema.js.map +1 -1
  37. package/dist/esm/TestClock.js +8 -8
  38. package/dist/esm/TestClock.js.map +1 -1
  39. package/dist/esm/index.js +5 -0
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/internal/version.js +1 -1
  42. package/package.json +9 -1
  43. package/src/Array.ts +4 -4
  44. package/src/Effect.ts +6 -1
  45. package/src/Graph.ts +415 -218
  46. package/src/HashRing.ts +387 -0
  47. package/src/JSONSchema.ts +39 -9
  48. package/src/TestClock.ts +9 -9
  49. package/src/Types.ts +3 -1
  50. package/src/index.ts +6 -0
  51. package/src/internal/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Graph.js","names":["Data","Equal","dual","Hash","format","NodeInspectSymbol","Option","pipeArguments","getMapSafe","map","key","has","some","get","none","TypeId","Edge","Class","ProtoGraph","Symbol","iterator","nodes","toJSON","symbol","that","isGraph","size","edges","type","nodeIndex","nodeData","otherNodeData","equals","edgeIndex","edgeData","otherEdge","hash","string","number","_id","nodeCount","edgeCount","toString","pipe","arguments","u","directed","mutate","graph","Object","create","Map","adjacency","reverseAdjacency","nextNodeIndex","nextEdgeIndex","isAcyclic","mutable","beginMutation","endMutation","undirected","set","f","addNode","data","getNode","hasNode","findNode","predicate","index","findNodes","results","push","findEdge","source","target","findEdges","updateNode","currentData","newData","updateEdge","currentEdge","mapNodes","mapEdges","reverse","clear","sourceEdges","targetEdges","filterMapNodes","nodesToRemove","result","isSome","value","removeNode","filterMapEdges","edgesToRemove","removeEdge","filterNodes","filterEdges","invalidateCycleFlagOnRemoval","invalidateCycleFlagOnAddition","addEdge","Error","sourceAdjacency","targetReverseAdjacency","targetAdjacency","sourceReverseAdjacency","outgoingEdges","edge","incomingEdges","removeEdgeInternal","delete","wasRemoved","isNone","indexOf","splice","getEdge","hasEdge","adjacencyList","neighbors","neighborsDirected","direction","adjacencyMap","neighborNode","toGraphViz","options","edgeLabel","String","graphName","nodeLabel","isDirected","graphType","edgeOperator","lines","label","replace","join","visited","Set","recursionStack","startNode","keys","stack","length","node","neighborIndex","isFirstVisit","pop","add","nodeNeighbors","Array","from","neighbor","isBipartite","coloring","discovered","isBipartiteGraph","queue","current","shift","currentColor","neighborColor","getUndirectedNeighbors","otherNode","connectedComponents","components","component","stronglyConnectedComponents","finishOrder","nodeNeighborsList","sccs","i","scc","predecessor","dijkstra","edgeWeight","path","distance","edgeWeights","distances","previous","Infinity","priorityQueue","minIndex","currentNode","currentDistance","weight","newDistance","neighborDistance","targetDistance","unshift","prev","floydWarshall","allNodes","dist","next","edgeMatrix","j","currentWeight","k","distIK","distKJ","distIJ","paths","resultEdgeWeights","weights","nextNode","astar","heuristic","targetNodeData","gScore","fScore","sourceNodeData","h","openSet","currentGScore","tentativeGScore","neighborGScore","neighborNodeData","targetGScore","bellmanFord","hasUpdate","sourceDistance","affectedNodes","Walker","visit","constructor","indices","walker","_","values","entries","dfs","config","startNodes","nextMapped","nodeDataOption","done","undefined","bfs","topo","initials","inDegree","remaining","currentInDegree","degree","newInDegree","dfsPostOrder","finished","visitedChildren","nodeToEmit","nodeMap","edgeMap","externals","nodeIterator"],"sources":["../../src/Graph.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,KAAKA,IAAI,MAAM,WAAW;AACjC,OAAO,KAAKC,KAAK,MAAM,YAAY;AACnC,SAASC,IAAI,QAAQ,eAAe;AACpC,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC,SAASC,MAAM,EAAEC,iBAAiB,QAAQ,kBAAkB;AAC5D,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC,SAASC,aAAa,QAAQ,eAAe;AAG7C;;;;;AAKA,MAAMC,UAAU,GAAGA,CAAOC,GAAc,EAAEC,GAAM,KAAsB;EACpE,IAAID,GAAG,CAACE,GAAG,CAACD,GAAG,CAAC,EAAE;IAChB,OAAOJ,MAAM,CAACM,IAAI,CAACH,GAAG,CAACI,GAAG,CAACH,GAAG,CAAE,CAAC;EACnC;EACA,OAAOJ,MAAM,CAACQ,IAAI,EAAE;AACtB,CAAC;AAED;;;;;;AAMA,OAAO,MAAMC,MAAM,GAAoB,eAAwB;AA0B/D;;;;;;AAMA,OAAM,MAAOC,IAAQ,SAAQhB,IAAI,CAACiB,KAIhC;AAiFF;AACA;AACA;AAEA;AACA,MAAMC,UAAU,GAAG;EACjB,CAACH,MAAM,GAAGA,MAAM;EAChB,CAACI,MAAM,CAACC,QAAQ,IAAC;IACf,OAAO,IAAI,CAACC,KAAK,CAACF,MAAM,CAACC,QAAQ,CAAC,EAAE;EACtC,CAAC;EACD,CAACf,iBAAiB,IAAC;IACjB,OAAO,IAAI,CAACiB,MAAM,EAAE;EACtB,CAAC;EACD,CAACrB,KAAK,CAACsB,MAAM,EAAyBC,IAAiB;IACrD,IAAIC,OAAO,CAACD,IAAI,CAAC,EAAE;MACjB,IACE,IAAI,CAACH,KAAK,CAACK,IAAI,KAAKF,IAAI,CAACH,KAAK,CAACK,IAAI,IACnC,IAAI,CAACC,KAAK,CAACD,IAAI,KAAKF,IAAI,CAACG,KAAK,CAACD,IAAI,IACnC,IAAI,CAACE,IAAI,KAAKJ,IAAI,CAACI,IAAI,EACvB;QACA,OAAO,KAAK;MACd;MACA;MACA,KAAK,MAAM,CAACC,SAAS,EAAEC,QAAQ,CAAC,IAAI,IAAI,CAACT,KAAK,EAAE;QAC9C,IAAI,CAACG,IAAI,CAACH,KAAK,CAACV,GAAG,CAACkB,SAAS,CAAC,EAAE;UAC9B,OAAO,KAAK;QACd;QACA,MAAME,aAAa,GAAGP,IAAI,CAACH,KAAK,CAACR,GAAG,CAACgB,SAAS,CAAE;QAChD,IAAI,CAAC5B,KAAK,CAAC+B,MAAM,CAACF,QAAQ,EAAEC,aAAa,CAAC,EAAE;UAC1C,OAAO,KAAK;QACd;MACF;MACA;MACA,KAAK,MAAM,CAACE,SAAS,EAAEC,QAAQ,CAAC,IAAI,IAAI,CAACP,KAAK,EAAE;QAC9C,IAAI,CAACH,IAAI,CAACG,KAAK,CAAChB,GAAG,CAACsB,SAAS,CAAC,EAAE;UAC9B,OAAO,KAAK;QACd;QACA,MAAME,SAAS,GAAGX,IAAI,CAACG,KAAK,CAACd,GAAG,CAACoB,SAAS,CAAE;QAC5C,IAAI,CAAChC,KAAK,CAAC+B,MAAM,CAACE,QAAQ,EAAEC,SAAS,CAAC,EAAE;UACtC,OAAO,KAAK;QACd;MACF;MACA,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC;EACD,CAAChC,IAAI,CAACoB,MAAM,IAAC;IACX,IAAIa,IAAI,GAAGjC,IAAI,CAACkC,MAAM,CAAC,OAAO,CAAC;IAC/BD,IAAI,GAAGA,IAAI,GAAGjC,IAAI,CAACkC,MAAM,CAAC,IAAI,CAACT,IAAI,CAAC;IACpCQ,IAAI,GAAGA,IAAI,GAAGjC,IAAI,CAACmC,MAAM,CAAC,IAAI,CAACjB,KAAK,CAACK,IAAI,CAAC;IAC1CU,IAAI,GAAGA,IAAI,GAAGjC,IAAI,CAACmC,MAAM,CAAC,IAAI,CAACX,KAAK,CAACD,IAAI,CAAC;IAC1C,KAAK,MAAM,CAACG,SAAS,EAAEC,QAAQ,CAAC,IAAI,IAAI,CAACT,KAAK,EAAE;MAC9Ce,IAAI,GAAGA,IAAI,GAAIjC,IAAI,CAACiC,IAAI,CAACP,SAAS,CAAC,GAAG1B,IAAI,CAACiC,IAAI,CAACN,QAAQ,CAAE;IAC5D;IACA,KAAK,MAAM,CAACG,SAAS,EAAEC,QAAQ,CAAC,IAAI,IAAI,CAACP,KAAK,EAAE;MAC9CS,IAAI,GAAGA,IAAI,GAAIjC,IAAI,CAACiC,IAAI,CAACH,SAAS,CAAC,GAAG9B,IAAI,CAACiC,IAAI,CAACF,QAAQ,CAAE;IAC5D;IACA,OAAOE,IAAI;EACb,CAAC;EACDd,MAAMA,CAAA;IACJ,OAAO;MACLiB,GAAG,EAAE,OAAO;MACZC,SAAS,EAAE,IAAI,CAACnB,KAAK,CAACK,IAAI;MAC1Be,SAAS,EAAE,IAAI,CAACd,KAAK,CAACD,IAAI;MAC1BE,IAAI,EAAE,IAAI,CAACA;KACZ;EACH,CAAC;EACDc,QAAQA,CAAA;IACN,OAAOtC,MAAM,CAAC,IAAI,CAAC;EACrB,CAAC;EACDuC,IAAIA,CAAA;IACF,OAAOpC,aAAa,CAAC,IAAI,EAAEqC,SAAS,CAAC;EACvC;CACD;AAED;AACA;AACA;AAEA;AACA,OAAO,MAAMnB,OAAO,GAAIoB,CAAU,IAAmC,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAI9B,MAAM,IAAI8B,CAAC;AAEvH;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAMC,QAAQ,GAAUC,MAAsD,IAAyB;EAC5G,MAAMC,KAAK,GAAiCC,MAAM,CAACC,MAAM,CAAChC,UAAU,CAAC;EACrE8B,KAAK,CAACpB,IAAI,GAAG,UAAU;EACvBoB,KAAK,CAAC3B,KAAK,GAAG,IAAI8B,GAAG,EAAE;EACvBH,KAAK,CAACrB,KAAK,GAAG,IAAIwB,GAAG,EAAE;EACvBH,KAAK,CAACI,SAAS,GAAG,IAAID,GAAG,EAAE;EAC3BH,KAAK,CAACK,gBAAgB,GAAG,IAAIF,GAAG,EAAE;EAClCH,KAAK,CAACM,aAAa,GAAG,CAAC;EACvBN,KAAK,CAACO,aAAa,GAAG,CAAC;EACvBP,KAAK,CAACQ,SAAS,GAAGlD,MAAM,CAACM,IAAI,CAAC,IAAI,CAAC;EACnCoC,KAAK,CAACS,OAAO,GAAG,KAAK;EAErB,IAAIV,MAAM,EAAE;IACV,MAAMU,OAAO,GAAGC,aAAa,CAACV,KAA4B,CAAC;IAC3DD,MAAM,CAACU,OAAqC,CAAC;IAC7C,OAAOE,WAAW,CAACF,OAAO,CAAC;EAC7B;EAEA,OAAOT,KAAK;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAMY,UAAU,GAAUb,MAAwD,IAA2B;EAClH,MAAMC,KAAK,GAAmCC,MAAM,CAACC,MAAM,CAAChC,UAAU,CAAC;EACvE8B,KAAK,CAACpB,IAAI,GAAG,YAAY;EACzBoB,KAAK,CAAC3B,KAAK,GAAG,IAAI8B,GAAG,EAAE;EACvBH,KAAK,CAACrB,KAAK,GAAG,IAAIwB,GAAG,EAAE;EACvBH,KAAK,CAACI,SAAS,GAAG,IAAID,GAAG,EAAE;EAC3BH,KAAK,CAACK,gBAAgB,GAAG,IAAIF,GAAG,EAAE;EAClCH,KAAK,CAACM,aAAa,GAAG,CAAC;EACvBN,KAAK,CAACO,aAAa,GAAG,CAAC;EACvBP,KAAK,CAACQ,SAAS,GAAGlD,MAAM,CAACM,IAAI,CAAC,IAAI,CAAC;EACnCoC,KAAK,CAACS,OAAO,GAAG,KAAK;EAErB,IAAIV,MAAM,EAAE;IACV,MAAMU,OAAO,GAAGC,aAAa,CAACV,KAAK,CAAC;IACpCD,MAAM,CAACU,OAAuC,CAAC;IAC/C,OAAOE,WAAW,CAACF,OAAO,CAAC;EAC7B;EAEA,OAAOT,KAAK;AACd,CAAC;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;AAeA,OAAO,MAAMU,aAAa,GACxBV,KAAqB,IACI;EACzB;EACA,MAAMI,SAAS,GAAG,IAAID,GAAG,EAA+B;EACxD,MAAME,gBAAgB,GAAG,IAAIF,GAAG,EAA+B;EAE/D,KAAK,MAAM,CAACtB,SAAS,EAAEF,KAAK,CAAC,IAAIqB,KAAK,CAACI,SAAS,EAAE;IAChDA,SAAS,CAACS,GAAG,CAAChC,SAAS,EAAE,CAAC,GAAGF,KAAK,CAAC,CAAC;EACtC;EAEA,KAAK,MAAM,CAACE,SAAS,EAAEF,KAAK,CAAC,IAAIqB,KAAK,CAACK,gBAAgB,EAAE;IACvDA,gBAAgB,CAACQ,GAAG,CAAChC,SAAS,EAAE,CAAC,GAAGF,KAAK,CAAC,CAAC;EAC7C;EAEA,MAAM8B,OAAO,GAAmCR,MAAM,CAACC,MAAM,CAAChC,UAAU,CAAC;EACzEuC,OAAO,CAAC7B,IAAI,GAAGoB,KAAK,CAACpB,IAAI;EACzB6B,OAAO,CAACpC,KAAK,GAAG,IAAI8B,GAAG,CAACH,KAAK,CAAC3B,KAAK,CAAC;EACpCoC,OAAO,CAAC9B,KAAK,GAAG,IAAIwB,GAAG,CAACH,KAAK,CAACrB,KAAK,CAAC;EACpC8B,OAAO,CAACL,SAAS,GAAGA,SAAS;EAC7BK,OAAO,CAACJ,gBAAgB,GAAGA,gBAAgB;EAC3CI,OAAO,CAACH,aAAa,GAAGN,KAAK,CAACM,aAAa;EAC3CG,OAAO,CAACF,aAAa,GAAGP,KAAK,CAACO,aAAa;EAC3CE,OAAO,CAACD,SAAS,GAAGR,KAAK,CAACQ,SAAS;EACnCC,OAAO,CAACA,OAAO,GAAG,IAAI;EAEtB,OAAOA,OAAO;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAME,WAAW,GACtBF,OAA8B,IACZ;EAClB,MAAMT,KAAK,GAA4BC,MAAM,CAACC,MAAM,CAAChC,UAAU,CAAC;EAChE8B,KAAK,CAACpB,IAAI,GAAG6B,OAAO,CAAC7B,IAAI;EACzBoB,KAAK,CAAC3B,KAAK,GAAG,IAAI8B,GAAG,CAACM,OAAO,CAACpC,KAAK,CAAC;EACpC2B,KAAK,CAACrB,KAAK,GAAG,IAAIwB,GAAG,CAACM,OAAO,CAAC9B,KAAK,CAAC;EACpCqB,KAAK,CAACI,SAAS,GAAGK,OAAO,CAACL,SAAS;EACnCJ,KAAK,CAACK,gBAAgB,GAAGI,OAAO,CAACJ,gBAAgB;EACjDL,KAAK,CAACM,aAAa,GAAGG,OAAO,CAACH,aAAa;EAC3CN,KAAK,CAACO,aAAa,GAAGE,OAAO,CAACF,aAAa;EAC3CP,KAAK,CAACQ,SAAS,GAAGC,OAAO,CAACD,SAAS;EACnCR,KAAK,CAACS,OAAO,GAAG,KAAK;EAErB,OAAOT,KAAK;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAMD,MAAM,gBAqCf7C,IAAI,CAAC,CAAC,EAAE,CACV8C,KAAqB,EACrBc,CAA2C,KACzB;EAClB,MAAML,OAAO,GAAGC,aAAa,CAACV,KAAK,CAAC;EACpCc,CAAC,CAACL,OAAO,CAAC;EACV,OAAOE,WAAW,CAACF,OAAO,CAAC;AAC7B,CAAC,CAAC;AAEF;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;AAkBA,OAAO,MAAMM,OAAO,GAAGA,CACrBN,OAA8B,EAC9BO,IAAO,KACM;EACb,MAAMnC,SAAS,GAAG4B,OAAO,CAACH,aAAa;EAEvC;EACAG,OAAO,CAACpC,KAAK,CAACwC,GAAG,CAAChC,SAAS,EAAEmC,IAAI,CAAC;EAElC;EACAP,OAAO,CAACL,SAAS,CAACS,GAAG,CAAChC,SAAS,EAAE,EAAE,CAAC;EACpC4B,OAAO,CAACJ,gBAAgB,CAACQ,GAAG,CAAChC,SAAS,EAAE,EAAE,CAAC;EAE3C;EACA4B,OAAO,CAACH,aAAa,GAAGG,OAAO,CAACH,aAAa,GAAG,CAAC;EAEjD,OAAOzB,SAAS;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAMoC,OAAO,GAAGA,CACrBjB,KAA6C,EAC7CnB,SAAoB,KACCrB,UAAU,CAACwC,KAAK,CAAC3B,KAAK,EAAEQ,SAAS,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMqC,OAAO,GAAGA,CACrBlB,KAA6C,EAC7CnB,SAAoB,KACRmB,KAAK,CAAC3B,KAAK,CAACV,GAAG,CAACkB,SAAS,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAMW,SAAS,GACpBQ,KAA6C,IAClCA,KAAK,CAAC3B,KAAK,CAACK,IAAI;AAE7B;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMyC,QAAQ,GAAGA,CACtBnB,KAA6C,EAC7CoB,SAA+B,KACH;EAC5B,KAAK,MAAM,CAACC,KAAK,EAAEL,IAAI,CAAC,IAAIhB,KAAK,CAAC3B,KAAK,EAAE;IACvC,IAAI+C,SAAS,CAACJ,IAAI,CAAC,EAAE;MACnB,OAAO1D,MAAM,CAACM,IAAI,CAACyD,KAAK,CAAC;IAC3B;EACF;EACA,OAAO/D,MAAM,CAACQ,IAAI,EAAE;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMwD,SAAS,GAAGA,CACvBtB,KAA6C,EAC7CoB,SAA+B,KACX;EACpB,MAAMG,OAAO,GAAqB,EAAE;EACpC,KAAK,MAAM,CAACF,KAAK,EAAEL,IAAI,CAAC,IAAIhB,KAAK,CAAC3B,KAAK,EAAE;IACvC,IAAI+C,SAAS,CAACJ,IAAI,CAAC,EAAE;MACnBO,OAAO,CAACC,IAAI,CAACH,KAAK,CAAC;IACrB;EACF;EACA,OAAOE,OAAO;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAME,QAAQ,GAAGA,CACtBzB,KAA6C,EAC7CoB,SAAqE,KACzC;EAC5B,KAAK,MAAM,CAACnC,SAAS,EAAEC,QAAQ,CAAC,IAAIc,KAAK,CAACrB,KAAK,EAAE;IAC/C,IAAIyC,SAAS,CAAClC,QAAQ,CAAC8B,IAAI,EAAE9B,QAAQ,CAACwC,MAAM,EAAExC,QAAQ,CAACyC,MAAM,CAAC,EAAE;MAC9D,OAAOrE,MAAM,CAACM,IAAI,CAACqB,SAAS,CAAC;IAC/B;EACF;EACA,OAAO3B,MAAM,CAACQ,IAAI,EAAE;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,MAAM8D,SAAS,GAAGA,CACvB5B,KAA6C,EAC7CoB,SAAqE,KACjD;EACpB,MAAMG,OAAO,GAAqB,EAAE;EACpC,KAAK,MAAM,CAACtC,SAAS,EAAEC,QAAQ,CAAC,IAAIc,KAAK,CAACrB,KAAK,EAAE;IAC/C,IAAIyC,SAAS,CAAClC,QAAQ,CAAC8B,IAAI,EAAE9B,QAAQ,CAACwC,MAAM,EAAExC,QAAQ,CAACyC,MAAM,CAAC,EAAE;MAC9DJ,OAAO,CAACC,IAAI,CAACvC,SAAS,CAAC;IACzB;EACF;EACA,OAAOsC,OAAO;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAMM,UAAU,GAAGA,CACxBpB,OAA8B,EAC9BY,KAAgB,EAChBP,CAAiB,KACT;EACR,IAAI,CAACL,OAAO,CAACpC,KAAK,CAACV,GAAG,CAAC0D,KAAK,CAAC,EAAE;IAC7B;EACF;EAEA,MAAMS,WAAW,GAAGrB,OAAO,CAACpC,KAAK,CAACR,GAAG,CAACwD,KAAK,CAAE;EAC7C,MAAMU,OAAO,GAAGjB,CAAC,CAACgB,WAAW,CAAC;EAC9BrB,OAAO,CAACpC,KAAK,CAACwC,GAAG,CAACQ,KAAK,EAAEU,OAAO,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAMC,UAAU,GAAGA,CACxBvB,OAA8B,EAC9BxB,SAAoB,EACpB6B,CAAiB,KACT;EACR,IAAI,CAACL,OAAO,CAAC9B,KAAK,CAAChB,GAAG,CAACsB,SAAS,CAAC,EAAE;IACjC;EACF;EAEA,MAAMgD,WAAW,GAAGxB,OAAO,CAAC9B,KAAK,CAACd,GAAG,CAACoB,SAAS,CAAE;EACjD,MAAM8C,OAAO,GAAGjB,CAAC,CAACmB,WAAW,CAACjB,IAAI,CAAC;EACnCP,OAAO,CAAC9B,KAAK,CAACkC,GAAG,CAAC5B,SAAS,EAAE;IAC3B,GAAGgD,WAAW;IACdjB,IAAI,EAAEe;GACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAMG,QAAQ,GAAGA,CACtBzB,OAA8B,EAC9BK,CAAiB,KACT;EACR;EACA,KAAK,MAAM,CAACO,KAAK,EAAEL,IAAI,CAAC,IAAIP,OAAO,CAACpC,KAAK,EAAE;IACzC,MAAM0D,OAAO,GAAGjB,CAAC,CAACE,IAAI,CAAC;IACvBP,OAAO,CAACpC,KAAK,CAACwC,GAAG,CAACQ,KAAK,EAAEU,OAAO,CAAC;EACnC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMI,QAAQ,GAAGA,CACtB1B,OAA8B,EAC9BK,CAAiB,KACT;EACR;EACA,KAAK,MAAM,CAACO,KAAK,EAAEnC,QAAQ,CAAC,IAAIuB,OAAO,CAAC9B,KAAK,EAAE;IAC7C,MAAMoD,OAAO,GAAGjB,CAAC,CAAC5B,QAAQ,CAAC8B,IAAI,CAAC;IAChCP,OAAO,CAAC9B,KAAK,CAACkC,GAAG,CAACQ,KAAK,EAAE;MACvB,GAAGnC,QAAQ;MACX8B,IAAI,EAAEe;KACP,CAAC;EACJ;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMK,OAAO,GAClB3B,OAA8B,IACtB;EACR;EACA,KAAK,MAAM,CAACY,KAAK,EAAEnC,QAAQ,CAAC,IAAIuB,OAAO,CAAC9B,KAAK,EAAE;IAC7C8B,OAAO,CAAC9B,KAAK,CAACkC,GAAG,CAACQ,KAAK,EAAE;MACvBK,MAAM,EAAExC,QAAQ,CAACyC,MAAM;MACvBA,MAAM,EAAEzC,QAAQ,CAACwC,MAAM;MACvBV,IAAI,EAAE9B,QAAQ,CAAC8B;KAChB,CAAC;EACJ;EAEA;EACAP,OAAO,CAACL,SAAS,CAACiC,KAAK,EAAE;EACzB5B,OAAO,CAACJ,gBAAgB,CAACgC,KAAK,EAAE;EAEhC;EACA,KAAK,MAAM,CAACpD,SAAS,EAAEC,QAAQ,CAAC,IAAIuB,OAAO,CAAC9B,KAAK,EAAE;IACjD;IACA,MAAM2D,WAAW,GAAG7B,OAAO,CAACL,SAAS,CAACvC,GAAG,CAACqB,QAAQ,CAACwC,MAAM,CAAC,IAAI,EAAE;IAChEY,WAAW,CAACd,IAAI,CAACvC,SAAS,CAAC;IAC3BwB,OAAO,CAACL,SAAS,CAACS,GAAG,CAAC3B,QAAQ,CAACwC,MAAM,EAAEY,WAAW,CAAC;IAEnD;IACA,MAAMC,WAAW,GAAG9B,OAAO,CAACJ,gBAAgB,CAACxC,GAAG,CAACqB,QAAQ,CAACyC,MAAM,CAAC,IAAI,EAAE;IACvEY,WAAW,CAACf,IAAI,CAACvC,SAAS,CAAC;IAC3BwB,OAAO,CAACJ,gBAAgB,CAACQ,GAAG,CAAC3B,QAAQ,CAACyC,MAAM,EAAEY,WAAW,CAAC;EAC5D;EAEA;EACA9B,OAAO,CAACD,SAAS,GAAGlD,MAAM,CAACQ,IAAI,EAAE;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,OAAO,MAAM0E,cAAc,GAAGA,CAC5B/B,OAA8B,EAC9BK,CAAgC,KACxB;EACR,MAAM2B,aAAa,GAAqB,EAAE;EAE1C;EACA,KAAK,MAAM,CAACpB,KAAK,EAAEL,IAAI,CAAC,IAAIP,OAAO,CAACpC,KAAK,EAAE;IACzC,MAAMqE,MAAM,GAAG5B,CAAC,CAACE,IAAI,CAAC;IACtB,IAAI1D,MAAM,CAACqF,MAAM,CAACD,MAAM,CAAC,EAAE;MACzB;MACAjC,OAAO,CAACpC,KAAK,CAACwC,GAAG,CAACQ,KAAK,EAAEqB,MAAM,CAACE,KAAK,CAAC;IACxC,CAAC,MAAM;MACL;MACAH,aAAa,CAACjB,IAAI,CAACH,KAAK,CAAC;IAC3B;EACF;EAEA;EACA,KAAK,MAAMxC,SAAS,IAAI4D,aAAa,EAAE;IACrCI,UAAU,CAACpC,OAAO,EAAE5B,SAAS,CAAC;EAChC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,OAAO,MAAMiE,cAAc,GAAGA,CAC5BrC,OAA8B,EAC9BK,CAAgC,KACxB;EACR,MAAMiC,aAAa,GAAqB,EAAE;EAE1C;EACA,KAAK,MAAM,CAAC1B,KAAK,EAAEnC,QAAQ,CAAC,IAAIuB,OAAO,CAAC9B,KAAK,EAAE;IAC7C,MAAM+D,MAAM,GAAG5B,CAAC,CAAC5B,QAAQ,CAAC8B,IAAI,CAAC;IAC/B,IAAI1D,MAAM,CAACqF,MAAM,CAACD,MAAM,CAAC,EAAE;MACzB;MACAjC,OAAO,CAAC9B,KAAK,CAACkC,GAAG,CAACQ,KAAK,EAAE;QACvB,GAAGnC,QAAQ;QACX8B,IAAI,EAAE0B,MAAM,CAACE;OACd,CAAC;IACJ,CAAC,MAAM;MACL;MACAG,aAAa,CAACvB,IAAI,CAACH,KAAK,CAAC;IAC3B;EACF;EAEA;EACA,KAAK,MAAMpC,SAAS,IAAI8D,aAAa,EAAE;IACrCC,UAAU,CAACvC,OAAO,EAAExB,SAAS,CAAC;EAChC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAMgE,WAAW,GAAGA,CACzBxC,OAA8B,EAC9BW,SAA+B,KACvB;EACR,MAAMqB,aAAa,GAAqB,EAAE;EAE1C;EACA,KAAK,MAAM,CAACpB,KAAK,EAAEL,IAAI,CAAC,IAAIP,OAAO,CAACpC,KAAK,EAAE;IACzC,IAAI,CAAC+C,SAAS,CAACJ,IAAI,CAAC,EAAE;MACpByB,aAAa,CAACjB,IAAI,CAACH,KAAK,CAAC;IAC3B;EACF;EAEA;EACA,KAAK,MAAMxC,SAAS,IAAI4D,aAAa,EAAE;IACrCI,UAAU,CAACpC,OAAO,EAAE5B,SAAS,CAAC;EAChC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,OAAO,MAAMqE,WAAW,GAAGA,CACzBzC,OAA8B,EAC9BW,SAA+B,KACvB;EACR,MAAM2B,aAAa,GAAqB,EAAE;EAE1C;EACA,KAAK,MAAM,CAAC1B,KAAK,EAAEnC,QAAQ,CAAC,IAAIuB,OAAO,CAAC9B,KAAK,EAAE;IAC7C,IAAI,CAACyC,SAAS,CAAClC,QAAQ,CAAC8B,IAAI,CAAC,EAAE;MAC7B+B,aAAa,CAACvB,IAAI,CAACH,KAAK,CAAC;IAC3B;EACF;EAEA;EACA,KAAK,MAAMpC,SAAS,IAAI8D,aAAa,EAAE;IACrCC,UAAU,CAACvC,OAAO,EAAExB,SAAS,CAAC;EAChC;AACF,CAAC;AAED;AACA;AACA;AAEA;AACA,MAAMkE,4BAA4B,GAChC1C,OAA8B,IACtB;EACR;EACA;EACA,IAAInD,MAAM,CAACqF,MAAM,CAAClC,OAAO,CAACD,SAAS,CAAC,IAAIC,OAAO,CAACD,SAAS,CAACoC,KAAK,KAAK,KAAK,EAAE;IACzEnC,OAAO,CAACD,SAAS,GAAGlD,MAAM,CAACQ,IAAI,EAAE;EACnC;AACF,CAAC;AAED;AACA,MAAMsF,6BAA6B,GACjC3C,OAA8B,IACtB;EACR;EACA;EACA,IAAInD,MAAM,CAACqF,MAAM,CAAClC,OAAO,CAACD,SAAS,CAAC,IAAIC,OAAO,CAACD,SAAS,CAACoC,KAAK,KAAK,IAAI,EAAE;IACxEnC,OAAO,CAACD,SAAS,GAAGlD,MAAM,CAACQ,IAAI,EAAE;EACnC;AACF,CAAC;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;AAkBA,OAAO,MAAMuF,OAAO,GAAGA,CACrB5C,OAA8B,EAC9BiB,MAAiB,EACjBC,MAAiB,EACjBX,IAAO,KACM;EACb;EACA,IAAI,CAACP,OAAO,CAACpC,KAAK,CAACV,GAAG,CAAC+D,MAAM,CAAC,EAAE;IAC9B,MAAM,IAAI4B,KAAK,CAAC,eAAe5B,MAAM,iBAAiB,CAAC;EACzD;EACA,IAAI,CAACjB,OAAO,CAACpC,KAAK,CAACV,GAAG,CAACgE,MAAM,CAAC,EAAE;IAC9B,MAAM,IAAI2B,KAAK,CAAC,eAAe3B,MAAM,iBAAiB,CAAC;EACzD;EAEA,MAAM1C,SAAS,GAAGwB,OAAO,CAACF,aAAa;EAEvC;EACA,MAAMrB,QAAQ,GAAG,IAAIlB,IAAI,CAAC;IAAE0D,MAAM;IAAEC,MAAM;IAAEX;EAAI,CAAE,CAAC;EACnDP,OAAO,CAAC9B,KAAK,CAACkC,GAAG,CAAC5B,SAAS,EAAEC,QAAQ,CAAC;EAEtC;EACA,MAAMqE,eAAe,GAAG/F,UAAU,CAACiD,OAAO,CAACL,SAAS,EAAEsB,MAAM,CAAC;EAC7D,IAAIpE,MAAM,CAACqF,MAAM,CAACY,eAAe,CAAC,EAAE;IAClCA,eAAe,CAACX,KAAK,CAACpB,IAAI,CAACvC,SAAS,CAAC;EACvC;EAEA,MAAMuE,sBAAsB,GAAGhG,UAAU,CAACiD,OAAO,CAACJ,gBAAgB,EAAEsB,MAAM,CAAC;EAC3E,IAAIrE,MAAM,CAACqF,MAAM,CAACa,sBAAsB,CAAC,EAAE;IACzCA,sBAAsB,CAACZ,KAAK,CAACpB,IAAI,CAACvC,SAAS,CAAC;EAC9C;EAEA;EACA,IAAIwB,OAAO,CAAC7B,IAAI,KAAK,YAAY,EAAE;IACjC,MAAM6E,eAAe,GAAGjG,UAAU,CAACiD,OAAO,CAACL,SAAS,EAAEuB,MAAM,CAAC;IAC7D,IAAIrE,MAAM,CAACqF,MAAM,CAACc,eAAe,CAAC,EAAE;MAClCA,eAAe,CAACb,KAAK,CAACpB,IAAI,CAACvC,SAAS,CAAC;IACvC;IAEA,MAAMyE,sBAAsB,GAAGlG,UAAU,CAACiD,OAAO,CAACJ,gBAAgB,EAAEqB,MAAM,CAAC;IAC3E,IAAIpE,MAAM,CAACqF,MAAM,CAACe,sBAAsB,CAAC,EAAE;MACzCA,sBAAsB,CAACd,KAAK,CAACpB,IAAI,CAACvC,SAAS,CAAC;IAC9C;EACF;EAEA;EACAwB,OAAO,CAACF,aAAa,GAAGE,OAAO,CAACF,aAAa,GAAG,CAAC;EAEjD;EACA;EACA6C,6BAA6B,CAAC3C,OAAO,CAAC;EAEtC,OAAOxB,SAAS;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAM4D,UAAU,GAAGA,CACxBpC,OAA8B,EAC9B5B,SAAoB,KACZ;EACR;EACA,IAAI,CAAC4B,OAAO,CAACpC,KAAK,CAACV,GAAG,CAACkB,SAAS,CAAC,EAAE;IACjC,OAAM,CAAC;EACT;EAEA;EACA,MAAMkE,aAAa,GAAqB,EAAE;EAE1C;EACA,MAAMY,aAAa,GAAGnG,UAAU,CAACiD,OAAO,CAACL,SAAS,EAAEvB,SAAS,CAAC;EAC9D,IAAIvB,MAAM,CAACqF,MAAM,CAACgB,aAAa,CAAC,EAAE;IAChC,KAAK,MAAMC,IAAI,IAAID,aAAa,CAACf,KAAK,EAAE;MACtCG,aAAa,CAACvB,IAAI,CAACoC,IAAI,CAAC;IAC1B;EACF;EAEA;EACA,MAAMC,aAAa,GAAGrG,UAAU,CAACiD,OAAO,CAACJ,gBAAgB,EAAExB,SAAS,CAAC;EACrE,IAAIvB,MAAM,CAACqF,MAAM,CAACkB,aAAa,CAAC,EAAE;IAChC,KAAK,MAAMD,IAAI,IAAIC,aAAa,CAACjB,KAAK,EAAE;MACtCG,aAAa,CAACvB,IAAI,CAACoC,IAAI,CAAC;IAC1B;EACF;EAEA;EACA,KAAK,MAAM3E,SAAS,IAAI8D,aAAa,EAAE;IACrCe,kBAAkB,CAACrD,OAAO,EAAExB,SAAS,CAAC;EACxC;EAEA;EACAwB,OAAO,CAACpC,KAAK,CAAC0F,MAAM,CAAClF,SAAS,CAAC;EAC/B4B,OAAO,CAACL,SAAS,CAAC2D,MAAM,CAAClF,SAAS,CAAC;EACnC4B,OAAO,CAACJ,gBAAgB,CAAC0D,MAAM,CAAClF,SAAS,CAAC;EAE1C;EACA;EACAsE,4BAA4B,CAAC1C,OAAO,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAMuC,UAAU,GAAGA,CACxBvC,OAA8B,EAC9BxB,SAAoB,KACZ;EACR,MAAM+E,UAAU,GAAGF,kBAAkB,CAACrD,OAAO,EAAExB,SAAS,CAAC;EAEzD;EACA;EACA,IAAI+E,UAAU,EAAE;IACdb,4BAA4B,CAAC1C,OAAO,CAAC;EACvC;AACF,CAAC;AAED;AACA,MAAMqD,kBAAkB,GAAGA,CACzBrD,OAA8B,EAC9BxB,SAAoB,KACT;EACX;EACA,MAAM2E,IAAI,GAAGpG,UAAU,CAACiD,OAAO,CAAC9B,KAAK,EAAEM,SAAS,CAAC;EACjD,IAAI3B,MAAM,CAAC2G,MAAM,CAACL,IAAI,CAAC,EAAE;IACvB,OAAO,KAAK,EAAC;EACf;EAEA,MAAM;IAAElC,MAAM;IAAEC;EAAM,CAAE,GAAGiC,IAAI,CAAChB,KAAK;EAErC;EACA,MAAMW,eAAe,GAAG/F,UAAU,CAACiD,OAAO,CAACL,SAAS,EAAEsB,MAAM,CAAC;EAC7D,IAAIpE,MAAM,CAACqF,MAAM,CAACY,eAAe,CAAC,EAAE;IAClC,MAAMlC,KAAK,GAAGkC,eAAe,CAACX,KAAK,CAACsB,OAAO,CAACjF,SAAS,CAAC;IACtD,IAAIoC,KAAK,KAAK,CAAC,CAAC,EAAE;MAChBkC,eAAe,CAACX,KAAK,CAACuB,MAAM,CAAC9C,KAAK,EAAE,CAAC,CAAC;IACxC;EACF;EAEA,MAAMmC,sBAAsB,GAAGhG,UAAU,CAACiD,OAAO,CAACJ,gBAAgB,EAAEsB,MAAM,CAAC;EAC3E,IAAIrE,MAAM,CAACqF,MAAM,CAACa,sBAAsB,CAAC,EAAE;IACzC,MAAMnC,KAAK,GAAGmC,sBAAsB,CAACZ,KAAK,CAACsB,OAAO,CAACjF,SAAS,CAAC;IAC7D,IAAIoC,KAAK,KAAK,CAAC,CAAC,EAAE;MAChBmC,sBAAsB,CAACZ,KAAK,CAACuB,MAAM,CAAC9C,KAAK,EAAE,CAAC,CAAC;IAC/C;EACF;EAEA;EACA,IAAIZ,OAAO,CAAC7B,IAAI,KAAK,YAAY,EAAE;IACjC,MAAM6E,eAAe,GAAGjG,UAAU,CAACiD,OAAO,CAACL,SAAS,EAAEuB,MAAM,CAAC;IAC7D,IAAIrE,MAAM,CAACqF,MAAM,CAACc,eAAe,CAAC,EAAE;MAClC,MAAMpC,KAAK,GAAGoC,eAAe,CAACb,KAAK,CAACsB,OAAO,CAACjF,SAAS,CAAC;MACtD,IAAIoC,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBoC,eAAe,CAACb,KAAK,CAACuB,MAAM,CAAC9C,KAAK,EAAE,CAAC,CAAC;MACxC;IACF;IAEA,MAAMqC,sBAAsB,GAAGlG,UAAU,CAACiD,OAAO,CAACJ,gBAAgB,EAAEqB,MAAM,CAAC;IAC3E,IAAIpE,MAAM,CAACqF,MAAM,CAACe,sBAAsB,CAAC,EAAE;MACzC,MAAMrC,KAAK,GAAGqC,sBAAsB,CAACd,KAAK,CAACsB,OAAO,CAACjF,SAAS,CAAC;MAC7D,IAAIoC,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBqC,sBAAsB,CAACd,KAAK,CAACuB,MAAM,CAAC9C,KAAK,EAAE,CAAC,CAAC;MAC/C;IACF;EACF;EAEA;EACAZ,OAAO,CAAC9B,KAAK,CAACoF,MAAM,CAAC9E,SAAS,CAAC;EAE/B,OAAO,IAAI,EAAC;AACd,CAAC;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,MAAMmF,OAAO,GAAGA,CACrBpE,KAA6C,EAC7Cf,SAAoB,KACOzB,UAAU,CAACwC,KAAK,CAACrB,KAAK,EAAEM,SAAS,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,OAAO,MAAMoF,OAAO,GAAGA,CACrBrE,KAA6C,EAC7C0B,MAAiB,EACjBC,MAAiB,KACN;EACX,MAAM2C,aAAa,GAAG9G,UAAU,CAACwC,KAAK,CAACI,SAAS,EAAEsB,MAAM,CAAC;EACzD,IAAIpE,MAAM,CAAC2G,MAAM,CAACK,aAAa,CAAC,EAAE;IAChC,OAAO,KAAK;EACd;EAEA;EACA,KAAK,MAAMrF,SAAS,IAAIqF,aAAa,CAAC1B,KAAK,EAAE;IAC3C,MAAMgB,IAAI,GAAGpG,UAAU,CAACwC,KAAK,CAACrB,KAAK,EAAEM,SAAS,CAAC;IAC/C,IAAI3B,MAAM,CAACqF,MAAM,CAACiB,IAAI,CAAC,IAAIA,IAAI,CAAChB,KAAK,CAACjB,MAAM,KAAKA,MAAM,EAAE;MACvD,OAAO,IAAI;IACb;EACF;EAEA,OAAO,KAAK;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAMlC,SAAS,GACpBO,KAA6C,IAClCA,KAAK,CAACrB,KAAK,CAACD,IAAI;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,OAAO,MAAM6F,SAAS,GAAGA,CACvBvE,KAA6C,EAC7CnB,SAAoB,KACA;EACpB,MAAMyF,aAAa,GAAG9G,UAAU,CAACwC,KAAK,CAACI,SAAS,EAAEvB,SAAS,CAAC;EAC5D,IAAIvB,MAAM,CAAC2G,MAAM,CAACK,aAAa,CAAC,EAAE;IAChC,OAAO,EAAE;EACX;EAEA,MAAM5B,MAAM,GAAqB,EAAE;EACnC,KAAK,MAAMzD,SAAS,IAAIqF,aAAa,CAAC1B,KAAK,EAAE;IAC3C,MAAMgB,IAAI,GAAGpG,UAAU,CAACwC,KAAK,CAACrB,KAAK,EAAEM,SAAS,CAAC;IAC/C,IAAI3B,MAAM,CAACqF,MAAM,CAACiB,IAAI,CAAC,EAAE;MACvBlB,MAAM,CAAClB,IAAI,CAACoC,IAAI,CAAChB,KAAK,CAACjB,MAAM,CAAC;IAChC;EACF;EAEA,OAAOe,MAAM;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,MAAM8B,iBAAiB,GAAGA,CAC/BxE,KAA6C,EAC7CnB,SAAoB,EACpB4F,SAAoB,KACA;EACpB,MAAMC,YAAY,GAAGD,SAAS,KAAK,UAAU,GACzCzE,KAAK,CAACK,gBAAgB,GACtBL,KAAK,CAACI,SAAS;EAEnB,MAAMkE,aAAa,GAAG9G,UAAU,CAACkH,YAAY,EAAE7F,SAAS,CAAC;EACzD,IAAIvB,MAAM,CAAC2G,MAAM,CAACK,aAAa,CAAC,EAAE;IAChC,OAAO,EAAE;EACX;EAEA,MAAM5B,MAAM,GAAqB,EAAE;EACnC,KAAK,MAAMzD,SAAS,IAAIqF,aAAa,CAAC1B,KAAK,EAAE;IAC3C,MAAMgB,IAAI,GAAGpG,UAAU,CAACwC,KAAK,CAACrB,KAAK,EAAEM,SAAS,CAAC;IAC/C,IAAI3B,MAAM,CAACqF,MAAM,CAACiB,IAAI,CAAC,EAAE;MACvB;MACA,MAAMe,YAAY,GAAGF,SAAS,KAAK,UAAU,GACzCb,IAAI,CAAChB,KAAK,CAAClB,MAAM,GACjBkC,IAAI,CAAChB,KAAK,CAACjB,MAAM;MACrBe,MAAM,CAAClB,IAAI,CAACmD,YAAY,CAAC;IAC3B;EACF;EAEA,OAAOjC,MAAM;AACf,CAAC;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,OAAO,MAAMkC,UAAU,GAAGA,CACxB5E,KAA6C,EAC7C6E,OAIC,KACS;EACV,MAAM;IACJC,SAAS,GAAI9D,IAAO,IAAK+D,MAAM,CAAC/D,IAAI,CAAC;IACrCgE,SAAS,GAAG,GAAG;IACfC,SAAS,GAAIjE,IAAO,IAAK+D,MAAM,CAAC/D,IAAI;EAAC,CACtC,GAAG6D,OAAO,IAAI,EAAE;EAEjB,MAAMK,UAAU,GAAGlF,KAAK,CAACpB,IAAI,KAAK,UAAU;EAC5C,MAAMuG,SAAS,GAAGD,UAAU,GAAG,SAAS,GAAG,OAAO;EAClD,MAAME,YAAY,GAAGF,UAAU,GAAG,IAAI,GAAG,IAAI;EAE7C,MAAMG,KAAK,GAAkB,EAAE;EAC/BA,KAAK,CAAC7D,IAAI,CAAC,GAAG2D,SAAS,IAAIH,SAAS,IAAI,CAAC;EAEzC;EACA,KAAK,MAAM,CAACnG,SAAS,EAAEC,QAAQ,CAAC,IAAIkB,KAAK,CAAC3B,KAAK,EAAE;IAC/C,MAAMiH,KAAK,GAAGL,SAAS,CAACnG,QAAQ,CAAC,CAACyG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;IACvDF,KAAK,CAAC7D,IAAI,CAAC,MAAM3C,SAAS,aAAayG,KAAK,KAAK,CAAC;EACpD;EAEA;EACA,KAAK,MAAM,GAAGpG,QAAQ,CAAC,IAAIc,KAAK,CAACrB,KAAK,EAAE;IACtC,MAAM2G,KAAK,GAAGR,SAAS,CAAC5F,QAAQ,CAAC8B,IAAI,CAAC,CAACuE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;IAC5DF,KAAK,CAAC7D,IAAI,CAAC,MAAMtC,QAAQ,CAACwC,MAAM,KAAK0D,YAAY,KAAKlG,QAAQ,CAACyC,MAAM,aAAa2D,KAAK,KAAK,CAAC;EAC/F;EAEAD,KAAK,CAAC7D,IAAI,CAAC,GAAG,CAAC;EACf,OAAO6D,KAAK,CAACG,IAAI,CAAC,IAAI,CAAC;AACzB,CAAC;AA+BD;AAEA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,OAAO,MAAMhF,SAAS,GACpBR,KAA6C,IAClC;EACX;EACA,IAAI1C,MAAM,CAACqF,MAAM,CAAC3C,KAAK,CAACQ,SAAS,CAAC,EAAE;IAClC,OAAOR,KAAK,CAACQ,SAAS,CAACoC,KAAK;EAC9B;EAEA;EACA,MAAM6C,OAAO,GAAG,IAAIC,GAAG,EAAa;EACpC,MAAMC,cAAc,GAAG,IAAID,GAAG,EAAa;EAK3C;EACA,KAAK,MAAME,SAAS,IAAI5F,KAAK,CAAC3B,KAAK,CAACwH,IAAI,EAAE,EAAE;IAC1C,IAAIJ,OAAO,CAAC9H,GAAG,CAACiI,SAAS,CAAC,EAAE;MAC1B,SAAQ,CAAC;IACX;IAEA;IACA,MAAME,KAAK,GAAyB,CAAC,CAACF,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAE9D,OAAOE,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;MACvB,MAAM,CAACC,IAAI,EAAEzB,SAAS,EAAE0B,aAAa,EAAEC,YAAY,CAAC,GAAGJ,KAAK,CAACA,KAAK,CAACC,MAAM,GAAG,CAAC,CAAC;MAE9E;MACA,IAAIG,YAAY,EAAE;QAChB,IAAIP,cAAc,CAAChI,GAAG,CAACqI,IAAI,CAAC,EAAE;UAC5B;UACAhG,KAAK,CAACQ,SAAS,GAAGlD,MAAM,CAACM,IAAI,CAAC,KAAK,CAAC;UACpC,OAAO,KAAK;QACd;QAEA,IAAI6H,OAAO,CAAC9H,GAAG,CAACqI,IAAI,CAAC,EAAE;UACrBF,KAAK,CAACK,GAAG,EAAE;UACX;QACF;QAEAV,OAAO,CAACW,GAAG,CAACJ,IAAI,CAAC;QACjBL,cAAc,CAACS,GAAG,CAACJ,IAAI,CAAC;QAExB;QACA,MAAMK,aAAa,GAAGC,KAAK,CAACC,IAAI,CAAC/B,iBAAiB,CAACxE,KAAK,EAAEgG,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5EF,KAAK,CAACA,KAAK,CAACC,MAAM,GAAG,CAAC,CAAC,GAAG,CAACC,IAAI,EAAEK,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC;QACzD;MACF;MAEA;MACA,IAAIJ,aAAa,GAAG1B,SAAS,CAACwB,MAAM,EAAE;QACpC,MAAMS,QAAQ,GAAGjC,SAAS,CAAC0B,aAAa,CAAC;QACzCH,KAAK,CAACA,KAAK,CAACC,MAAM,GAAG,CAAC,CAAC,GAAG,CAACC,IAAI,EAAEzB,SAAS,EAAE0B,aAAa,GAAG,CAAC,EAAE,KAAK,CAAC;QAErE,IAAIN,cAAc,CAAChI,GAAG,CAAC6I,QAAQ,CAAC,EAAE;UAChC;UACAxG,KAAK,CAACQ,SAAS,GAAGlD,MAAM,CAACM,IAAI,CAAC,KAAK,CAAC;UACpC,OAAO,KAAK;QACd;QAEA,IAAI,CAAC6H,OAAO,CAAC9H,GAAG,CAAC6I,QAAQ,CAAC,EAAE;UAC1BV,KAAK,CAACtE,IAAI,CAAC,CAACgF,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACrC;MACF,CAAC,MAAM;QACL;QACAb,cAAc,CAAC5B,MAAM,CAACiC,IAAI,CAAC;QAC3BF,KAAK,CAACK,GAAG,EAAE;MACb;IACF;EACF;EAEA;EACAnG,KAAK,CAACQ,SAAS,GAAGlD,MAAM,CAACM,IAAI,CAAC,IAAI,CAAC;EACnC,OAAO,IAAI;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,OAAO,MAAM6I,WAAW,GACtBzG,KAAmE,IACxD;EACX,MAAM0G,QAAQ,GAAG,IAAIvG,GAAG,EAAoB;EAC5C,MAAMwG,UAAU,GAAG,IAAIjB,GAAG,EAAa;EACvC,IAAIkB,gBAAgB,GAAG,IAAI;EAE3B;EACA,KAAK,MAAMhB,SAAS,IAAI5F,KAAK,CAAC3B,KAAK,CAACwH,IAAI,EAAE,EAAE;IAC1C,IAAI,CAACc,UAAU,CAAChJ,GAAG,CAACiI,SAAS,CAAC,EAAE;MAC9B;MACA,MAAMiB,KAAK,GAAqB,CAACjB,SAAS,CAAC;MAC3Cc,QAAQ,CAAC7F,GAAG,CAAC+E,SAAS,EAAE,CAAC,CAAC,EAAC;MAC3Be,UAAU,CAACP,GAAG,CAACR,SAAS,CAAC;MAEzB,OAAOiB,KAAK,CAACd,MAAM,GAAG,CAAC,IAAIa,gBAAgB,EAAE;QAC3C,MAAME,OAAO,GAAGD,KAAK,CAACE,KAAK,EAAG;QAC9B,MAAMC,YAAY,GAAGN,QAAQ,CAAC7I,GAAG,CAACiJ,OAAO,CAAE;QAC3C,MAAMG,aAAa,GAAUD,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAEvD;QACA,MAAMX,aAAa,GAAGa,sBAAsB,CAAClH,KAAK,EAAE8G,OAAO,CAAC;QAC5D,KAAK,MAAMN,QAAQ,IAAIH,aAAa,EAAE;UACpC,IAAI,CAACM,UAAU,CAAChJ,GAAG,CAAC6I,QAAQ,CAAC,EAAE;YAC7B;YACAE,QAAQ,CAAC7F,GAAG,CAAC2F,QAAQ,EAAES,aAAa,CAAC;YACrCN,UAAU,CAACP,GAAG,CAACI,QAAQ,CAAC;YACxBK,KAAK,CAACrF,IAAI,CAACgF,QAAQ,CAAC;UACtB,CAAC,MAAM;YACL;YACA,IAAIE,QAAQ,CAAC7I,GAAG,CAAC2I,QAAQ,CAAC,KAAKQ,YAAY,EAAE;cAC3CJ,gBAAgB,GAAG,KAAK;cACxB;YACF;UACF;QACF;MACF;MAEA;MACA,IAAI,CAACA,gBAAgB,EAAE;QACrB;MACF;IACF;EACF;EAEA,OAAOA,gBAAgB;AACzB,CAAC;AAED;;;;AAIA,MAAMM,sBAAsB,GAAGA,CAC7BlH,KAAmE,EACnEnB,SAAoB,KACA;EACpB,MAAM0F,SAAS,GAAG,IAAImB,GAAG,EAAa;EAEtC;EACA,MAAMpB,aAAa,GAAG9G,UAAU,CAACwC,KAAK,CAACI,SAAS,EAAEvB,SAAS,CAAC;EAC5D,IAAIvB,MAAM,CAACqF,MAAM,CAAC2B,aAAa,CAAC,EAAE;IAChC,KAAK,MAAMrF,SAAS,IAAIqF,aAAa,CAAC1B,KAAK,EAAE;MAC3C,MAAMgB,IAAI,GAAGpG,UAAU,CAACwC,KAAK,CAACrB,KAAK,EAAEM,SAAS,CAAC;MAC/C,IAAI3B,MAAM,CAACqF,MAAM,CAACiB,IAAI,CAAC,EAAE;QACvB;QACA,MAAMuD,SAAS,GAAGvD,IAAI,CAAChB,KAAK,CAAClB,MAAM,KAAK7C,SAAS,GAAG+E,IAAI,CAAChB,KAAK,CAACjB,MAAM,GAAGiC,IAAI,CAAChB,KAAK,CAAClB,MAAM;QACzF6C,SAAS,CAAC6B,GAAG,CAACe,SAAS,CAAC;MAC1B;IACF;EACF;EAEA,OAAOb,KAAK,CAACC,IAAI,CAAChC,SAAS,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAM6C,mBAAmB,GAC9BpH,KAAmE,IACxC;EAC3B,MAAMyF,OAAO,GAAG,IAAIC,GAAG,EAAa;EACpC,MAAM2B,UAAU,GAA4B,EAAE;EAC9C,KAAK,MAAMzB,SAAS,IAAI5F,KAAK,CAAC3B,KAAK,CAACwH,IAAI,EAAE,EAAE;IAC1C,IAAI,CAACJ,OAAO,CAAC9H,GAAG,CAACiI,SAAS,CAAC,EAAE;MAC3B;MACA,MAAM0B,SAAS,GAAqB,EAAE;MACtC,MAAMxB,KAAK,GAAqB,CAACF,SAAS,CAAC;MAE3C,OAAOE,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAMe,OAAO,GAAGhB,KAAK,CAACK,GAAG,EAAG;QAC5B,IAAI,CAACV,OAAO,CAAC9H,GAAG,CAACmJ,OAAO,CAAC,EAAE;UACzBrB,OAAO,CAACW,GAAG,CAACU,OAAO,CAAC;UACpBQ,SAAS,CAAC9F,IAAI,CAACsF,OAAO,CAAC;UAEvB;UACA,MAAMT,aAAa,GAAGa,sBAAsB,CAAClH,KAAK,EAAE8G,OAAO,CAAC;UAC5D,KAAK,MAAMN,QAAQ,IAAIH,aAAa,EAAE;YACpC,IAAI,CAACZ,OAAO,CAAC9H,GAAG,CAAC6I,QAAQ,CAAC,EAAE;cAC1BV,KAAK,CAACtE,IAAI,CAACgF,QAAQ,CAAC;YACtB;UACF;QACF;MACF;MAEAa,UAAU,CAAC7F,IAAI,CAAC8F,SAAS,CAAC;IAC5B;EACF;EAEA,OAAOD,UAAU;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAME,2BAA2B,GACtCvH,KAA6C,IAClB;EAC3B,MAAMyF,OAAO,GAAG,IAAIC,GAAG,EAAa;EACpC,MAAM8B,WAAW,GAAqB,EAAE;EAOxC,KAAK,MAAM5B,SAAS,IAAI5F,KAAK,CAAC3B,KAAK,CAACwH,IAAI,EAAE,EAAE;IAC1C,IAAIJ,OAAO,CAAC9H,GAAG,CAACiI,SAAS,CAAC,EAAE;MAC1B;IACF;IAEA,MAAME,KAAK,GAAyB,CAAC,CAACF,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAE9D,OAAOE,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;MACvB,MAAM,CAACC,IAAI,EAAEK,aAAa,EAAEJ,aAAa,EAAEC,YAAY,CAAC,GAAGJ,KAAK,CAACA,KAAK,CAACC,MAAM,GAAG,CAAC,CAAC;MAElF,IAAIG,YAAY,EAAE;QAChB,IAAIT,OAAO,CAAC9H,GAAG,CAACqI,IAAI,CAAC,EAAE;UACrBF,KAAK,CAACK,GAAG,EAAE;UACX;QACF;QAEAV,OAAO,CAACW,GAAG,CAACJ,IAAI,CAAC;QACjB,MAAMyB,iBAAiB,GAAGlD,SAAS,CAACvE,KAAK,EAAEgG,IAAI,CAAC;QAChDF,KAAK,CAACA,KAAK,CAACC,MAAM,GAAG,CAAC,CAAC,GAAG,CAACC,IAAI,EAAEyB,iBAAiB,EAAE,CAAC,EAAE,KAAK,CAAC;QAC7D;MACF;MAEA;MACA,IAAIxB,aAAa,GAAGI,aAAa,CAACN,MAAM,EAAE;QACxC,MAAMS,QAAQ,GAAGH,aAAa,CAACJ,aAAa,CAAC;QAC7CH,KAAK,CAACA,KAAK,CAACC,MAAM,GAAG,CAAC,CAAC,GAAG,CAACC,IAAI,EAAEK,aAAa,EAAEJ,aAAa,GAAG,CAAC,EAAE,KAAK,CAAC;QAEzE,IAAI,CAACR,OAAO,CAAC9H,GAAG,CAAC6I,QAAQ,CAAC,EAAE;UAC1BV,KAAK,CAACtE,IAAI,CAAC,CAACgF,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACrC;MACF,CAAC,MAAM;QACL;QACAgB,WAAW,CAAChG,IAAI,CAACwE,IAAI,CAAC;QACtBF,KAAK,CAACK,GAAG,EAAE;MACb;IACF;EACF;EAEA;EACAV,OAAO,CAACpD,KAAK,EAAE;EACf,MAAMqF,IAAI,GAA4B,EAAE;EAExC,KAAK,IAAIC,CAAC,GAAGH,WAAW,CAACzB,MAAM,GAAG,CAAC,EAAE4B,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IAChD,MAAM/B,SAAS,GAAG4B,WAAW,CAACG,CAAC,CAAC;IAChC,IAAIlC,OAAO,CAAC9H,GAAG,CAACiI,SAAS,CAAC,EAAE;MAC1B;IACF;IAEA,MAAMgC,GAAG,GAAqB,EAAE;IAChC,MAAM9B,KAAK,GAAqB,CAACF,SAAS,CAAC;IAE3C,OAAOE,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;MACvB,MAAMC,IAAI,GAAGF,KAAK,CAACK,GAAG,EAAG;MAEzB,IAAIV,OAAO,CAAC9H,GAAG,CAACqI,IAAI,CAAC,EAAE;QACrB;MACF;MAEAP,OAAO,CAACW,GAAG,CAACJ,IAAI,CAAC;MACjB4B,GAAG,CAACpG,IAAI,CAACwE,IAAI,CAAC;MAEd;MACA,MAAM3F,gBAAgB,GAAG7C,UAAU,CAACwC,KAAK,CAACK,gBAAgB,EAAE2F,IAAI,CAAC;MACjE,IAAI1I,MAAM,CAACqF,MAAM,CAACtC,gBAAgB,CAAC,EAAE;QACnC,KAAK,MAAMpB,SAAS,IAAIoB,gBAAgB,CAACuC,KAAK,EAAE;UAC9C,MAAMgB,IAAI,GAAGpG,UAAU,CAACwC,KAAK,CAACrB,KAAK,EAAEM,SAAS,CAAC;UAC/C,IAAI3B,MAAM,CAACqF,MAAM,CAACiB,IAAI,CAAC,EAAE;YACvB,MAAMiE,WAAW,GAAGjE,IAAI,CAAChB,KAAK,CAAClB,MAAM;YACrC,IAAI,CAAC+D,OAAO,CAAC9H,GAAG,CAACkK,WAAW,CAAC,EAAE;cAC7B/B,KAAK,CAACtE,IAAI,CAACqG,WAAW,CAAC;YACzB;UACF;QACF;MACF;IACF;IAEAH,IAAI,CAAClG,IAAI,CAACoG,GAAG,CAAC;EAChB;EAEA,OAAOF,IAAI;AACb,CAAC;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,OAAO,MAAMI,QAAQ,GAAGA,CACtB9H,KAA6C,EAC7C0B,MAAiB,EACjBC,MAAiB,EACjBoG,UAAmC,KACH;EAChC;EACA,IAAI,CAAC/H,KAAK,CAAC3B,KAAK,CAACV,GAAG,CAAC+D,MAAM,CAAC,EAAE;IAC5B,MAAM,IAAI4B,KAAK,CAAC,eAAe5B,MAAM,iBAAiB,CAAC;EACzD;EACA,IAAI,CAAC1B,KAAK,CAAC3B,KAAK,CAACV,GAAG,CAACgE,MAAM,CAAC,EAAE;IAC5B,MAAM,IAAI2B,KAAK,CAAC,eAAe3B,MAAM,iBAAiB,CAAC;EACzD;EAEA;EACA,IAAID,MAAM,KAAKC,MAAM,EAAE;IACrB,OAAOrE,MAAM,CAACM,IAAI,CAAC;MACjBoK,IAAI,EAAE,CAACtG,MAAM,CAAC;MACduG,QAAQ,EAAE,CAAC;MACXC,WAAW,EAAE;KACd,CAAC;EACJ;EAEA;EACA,MAAMC,SAAS,GAAG,IAAIhI,GAAG,EAAqB;EAC9C,MAAMiI,QAAQ,GAAG,IAAIjI,GAAG,EAAsD;EAC9E,MAAMsF,OAAO,GAAG,IAAIC,GAAG,EAAa;EAEpC;EACA;EACA,KAAK,MAAMM,IAAI,IAAIhG,KAAK,CAAC3B,KAAK,CAACwH,IAAI,EAAE,EAAE;IACrCsC,SAAS,CAACtH,GAAG,CAACmF,IAAI,EAAEA,IAAI,KAAKtE,MAAM,GAAG,CAAC,GAAG2G,QAAQ,CAAC;IACnDD,QAAQ,CAACvH,GAAG,CAACmF,IAAI,EAAE,IAAI,CAAC;EAC1B;EAEA;EACA,MAAMsC,aAAa,GAAiD,CAClE;IAAEtC,IAAI,EAAEtE,MAAM;IAAEuG,QAAQ,EAAE;EAAC,CAAE,CAC9B;EAED,OAAOK,aAAa,CAACvC,MAAM,GAAG,CAAC,EAAE;IAC/B;IACA,IAAIwC,QAAQ,GAAG,CAAC;IAChB,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGW,aAAa,CAACvC,MAAM,EAAE4B,CAAC,EAAE,EAAE;MAC7C,IAAIW,aAAa,CAACX,CAAC,CAAC,CAACM,QAAQ,GAAGK,aAAa,CAACC,QAAQ,CAAC,CAACN,QAAQ,EAAE;QAChEM,QAAQ,GAAGZ,CAAC;MACd;IACF;IAEA,MAAMb,OAAO,GAAGwB,aAAa,CAACnE,MAAM,CAACoE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAMC,WAAW,GAAG1B,OAAO,CAACd,IAAI;IAEhC;IACA,IAAIP,OAAO,CAAC9H,GAAG,CAAC6K,WAAW,CAAC,EAAE;MAC5B;IACF;IAEA/C,OAAO,CAACW,GAAG,CAACoC,WAAW,CAAC;IAExB;IACA,IAAIA,WAAW,KAAK7G,MAAM,EAAE;MAC1B;IACF;IAEA;IACA,MAAM8G,eAAe,GAAGN,SAAS,CAACtK,GAAG,CAAC2K,WAAW,CAAE;IAEnD;IACA,MAAMlE,aAAa,GAAG9G,UAAU,CAACwC,KAAK,CAACI,SAAS,EAAEoI,WAAW,CAAC;IAC9D,IAAIlL,MAAM,CAACqF,MAAM,CAAC2B,aAAa,CAAC,EAAE;MAChC,KAAK,MAAMrF,SAAS,IAAIqF,aAAa,CAAC1B,KAAK,EAAE;QAC3C,MAAMgB,IAAI,GAAGpG,UAAU,CAACwC,KAAK,CAACrB,KAAK,EAAEM,SAAS,CAAC;QAC/C,IAAI3B,MAAM,CAACqF,MAAM,CAACiB,IAAI,CAAC,EAAE;UACvB,MAAM4C,QAAQ,GAAG5C,IAAI,CAAChB,KAAK,CAACjB,MAAM;UAClC,MAAM+G,MAAM,GAAGX,UAAU,CAACnE,IAAI,CAAChB,KAAK,CAAC5B,IAAI,CAAC;UAE1C;UACA,IAAI0H,MAAM,GAAG,CAAC,EAAE;YACd,MAAM,IAAIpF,KAAK,CAAC,kEAAkEoF,MAAM,EAAE,CAAC;UAC7F;UAEA,MAAMC,WAAW,GAAGF,eAAe,GAAGC,MAAM;UAC5C,MAAME,gBAAgB,GAAGT,SAAS,CAACtK,GAAG,CAAC2I,QAAQ,CAAE;UAEjD;UACA,IAAImC,WAAW,GAAGC,gBAAgB,EAAE;YAClCT,SAAS,CAACtH,GAAG,CAAC2F,QAAQ,EAAEmC,WAAW,CAAC;YACpCP,QAAQ,CAACvH,GAAG,CAAC2F,QAAQ,EAAE;cAAER,IAAI,EAAEwC,WAAW;cAAEtJ,QAAQ,EAAE0E,IAAI,CAAChB,KAAK,CAAC5B;YAAI,CAAE,CAAC;YAExE;YACA,IAAI,CAACyE,OAAO,CAAC9H,GAAG,CAAC6I,QAAQ,CAAC,EAAE;cAC1B8B,aAAa,CAAC9G,IAAI,CAAC;gBAAEwE,IAAI,EAAEQ,QAAQ;gBAAEyB,QAAQ,EAAEU;cAAW,CAAE,CAAC;YAC/D;UACF;QACF;MACF;IACF;EACF;EAEA;EACA,MAAME,cAAc,GAAGV,SAAS,CAACtK,GAAG,CAAC8D,MAAM,CAAE;EAC7C,IAAIkH,cAAc,KAAKR,QAAQ,EAAE;IAC/B,OAAO/K,MAAM,CAACQ,IAAI,EAAE,EAAC;EACvB;EAEA;EACA,MAAMkK,IAAI,GAAqB,EAAE;EACjC,MAAME,WAAW,GAAa,EAAE;EAChC,IAAIM,WAAW,GAAqB7G,MAAM;EAE1C,OAAO6G,WAAW,KAAK,IAAI,EAAE;IAC3BR,IAAI,CAACc,OAAO,CAACN,WAAW,CAAC;IACzB,MAAMO,IAAI,GAA4CX,QAAQ,CAACvK,GAAG,CAAC2K,WAAW,CAAE;IAChF,IAAIO,IAAI,KAAK,IAAI,EAAE;MACjBb,WAAW,CAACY,OAAO,CAACC,IAAI,CAAC7J,QAAQ,CAAC;MAClCsJ,WAAW,GAAGO,IAAI,CAAC/C,IAAI;IACzB,CAAC,MAAM;MACLwC,WAAW,GAAG,IAAI;IACpB;EACF;EAEA,OAAOlL,MAAM,CAACM,IAAI,CAAC;IACjBoK,IAAI;IACJC,QAAQ,EAAEY,cAAc;IACxBX;GACD,CAAC;AACJ,CAAC;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,OAAO,MAAMc,aAAa,GAAGA,CAC3BhJ,KAA6C,EAC7C+H,UAAmC,KACd;EACrB;EACA,MAAMkB,QAAQ,GAAG3C,KAAK,CAACC,IAAI,CAACvG,KAAK,CAAC3B,KAAK,CAACwH,IAAI,EAAE,CAAC;EAE/C;EACA,MAAMqD,IAAI,GAAG,IAAI/I,GAAG,EAAqC;EACzD,MAAMgJ,IAAI,GAAG,IAAIhJ,GAAG,EAA+C;EACnE,MAAMiJ,UAAU,GAAG,IAAIjJ,GAAG,EAAuC;EAEjE;EACA,KAAK,MAAMwH,CAAC,IAAIsB,QAAQ,EAAE;IACxBC,IAAI,CAACrI,GAAG,CAAC8G,CAAC,EAAE,IAAIxH,GAAG,EAAE,CAAC;IACtBgJ,IAAI,CAACtI,GAAG,CAAC8G,CAAC,EAAE,IAAIxH,GAAG,EAAE,CAAC;IACtBiJ,UAAU,CAACvI,GAAG,CAAC8G,CAAC,EAAE,IAAIxH,GAAG,EAAE,CAAC;IAE5B,KAAK,MAAMkJ,CAAC,IAAIJ,QAAQ,EAAE;MACxBC,IAAI,CAACrL,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAE1B,CAAC,KAAK0B,CAAC,GAAG,CAAC,GAAGhB,QAAQ,CAAC;MAC3Cc,IAAI,CAACtL,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAE,IAAI,CAAC;MACzBD,UAAU,CAACvL,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAE,IAAI,CAAC;IACjC;EACF;EAEA;EACA,KAAK,MAAM,GAAGnK,QAAQ,CAAC,IAAIc,KAAK,CAACrB,KAAK,EAAE;IACtC,MAAM+J,MAAM,GAAGX,UAAU,CAAC7I,QAAQ,CAAC8B,IAAI,CAAC;IACxC,MAAM2G,CAAC,GAAGzI,QAAQ,CAACwC,MAAM;IACzB,MAAM2H,CAAC,GAAGnK,QAAQ,CAACyC,MAAM;IAEzB;IACA,MAAM2H,aAAa,GAAGJ,IAAI,CAACrL,GAAG,CAAC8J,CAAC,CAAE,CAAC9J,GAAG,CAACwL,CAAC,CAAE;IAC1C,IAAIX,MAAM,GAAGY,aAAa,EAAE;MAC1BJ,IAAI,CAACrL,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAEX,MAAM,CAAC;MAC3BS,IAAI,CAACtL,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAEA,CAAC,CAAC;MACtBD,UAAU,CAACvL,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAEnK,QAAQ,CAAC8B,IAAI,CAAC;IAC1C;EACF;EAEA;EACA,KAAK,MAAMuI,CAAC,IAAIN,QAAQ,EAAE;IACxB,KAAK,MAAMtB,CAAC,IAAIsB,QAAQ,EAAE;MACxB,KAAK,MAAMI,CAAC,IAAIJ,QAAQ,EAAE;QACxB,MAAMO,MAAM,GAAGN,IAAI,CAACrL,GAAG,CAAC8J,CAAC,CAAE,CAAC9J,GAAG,CAAC0L,CAAC,CAAE;QACnC,MAAME,MAAM,GAAGP,IAAI,CAACrL,GAAG,CAAC0L,CAAC,CAAE,CAAC1L,GAAG,CAACwL,CAAC,CAAE;QACnC,MAAMK,MAAM,GAAGR,IAAI,CAACrL,GAAG,CAAC8J,CAAC,CAAE,CAAC9J,GAAG,CAACwL,CAAC,CAAE;QAEnC,IAAIG,MAAM,KAAKnB,QAAQ,IAAIoB,MAAM,KAAKpB,QAAQ,IAAImB,MAAM,GAAGC,MAAM,GAAGC,MAAM,EAAE;UAC1ER,IAAI,CAACrL,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAEG,MAAM,GAAGC,MAAM,CAAC;UACpCN,IAAI,CAACtL,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAEF,IAAI,CAACtL,GAAG,CAAC8J,CAAC,CAAE,CAAC9J,GAAG,CAAC0L,CAAC,CAAE,CAAC;QAC3C;MACF;IACF;EACF;EAEA;EACA,KAAK,MAAM5B,CAAC,IAAIsB,QAAQ,EAAE;IACxB,IAAIC,IAAI,CAACrL,GAAG,CAAC8J,CAAC,CAAE,CAAC9J,GAAG,CAAC8J,CAAC,CAAE,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIrE,KAAK,CAAC,0CAA0CqE,CAAC,EAAE,CAAC;IAChE;EACF;EAEA;EACA,MAAMgC,KAAK,GAAG,IAAIxJ,GAAG,EAAsD;EAC3E,MAAMyJ,iBAAiB,GAAG,IAAIzJ,GAAG,EAAuC;EAExE,KAAK,MAAMwH,CAAC,IAAIsB,QAAQ,EAAE;IACxBU,KAAK,CAAC9I,GAAG,CAAC8G,CAAC,EAAE,IAAIxH,GAAG,EAAE,CAAC;IACvByJ,iBAAiB,CAAC/I,GAAG,CAAC8G,CAAC,EAAE,IAAIxH,GAAG,EAAE,CAAC;IAEnC,KAAK,MAAMkJ,CAAC,IAAIJ,QAAQ,EAAE;MACxB,IAAItB,CAAC,KAAK0B,CAAC,EAAE;QACXM,KAAK,CAAC9L,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAE,CAAC1B,CAAC,CAAC,CAAC;QACzBiC,iBAAiB,CAAC/L,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAE,EAAE,CAAC;MACtC,CAAC,MAAM,IAAIH,IAAI,CAACrL,GAAG,CAAC8J,CAAC,CAAE,CAAC9J,GAAG,CAACwL,CAAC,CAAE,KAAKhB,QAAQ,EAAE;QAC5CsB,KAAK,CAAC9L,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAE,IAAI,CAAC;QAC1BO,iBAAiB,CAAC/L,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAE,EAAE,CAAC;MACtC,CAAC,MAAM;QACL;QACA,MAAMrB,IAAI,GAAqB,EAAE;QACjC,MAAM6B,OAAO,GAAa,EAAE;QAC5B,IAAI/C,OAAO,GAAGa,CAAC;QAEfK,IAAI,CAACxG,IAAI,CAACsF,OAAO,CAAC;QAClB,OAAOA,OAAO,KAAKuC,CAAC,EAAE;UACpB,MAAMS,QAAQ,GAAGX,IAAI,CAACtL,GAAG,CAACiJ,OAAO,CAAE,CAACjJ,GAAG,CAACwL,CAAC,CAAE;UAC3C,IAAIS,QAAQ,KAAK,IAAI,EAAE;UAEvB,MAAM5K,QAAQ,GAAGkK,UAAU,CAACvL,GAAG,CAACiJ,OAAO,CAAE,CAACjJ,GAAG,CAACiM,QAAQ,CAAE;UACxD,IAAI5K,QAAQ,KAAK,IAAI,EAAE;YACrB2K,OAAO,CAACrI,IAAI,CAACtC,QAAQ,CAAC;UACxB;UAEA4H,OAAO,GAAGgD,QAAQ;UAClB9B,IAAI,CAACxG,IAAI,CAACsF,OAAO,CAAC;QACpB;QAEA6C,KAAK,CAAC9L,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAErB,IAAI,CAAC;QAC1B4B,iBAAiB,CAAC/L,GAAG,CAAC8J,CAAC,CAAE,CAAC9G,GAAG,CAACwI,CAAC,EAAEQ,OAAO,CAAC;MAC3C;IACF;EACF;EAEA,OAAO;IACL1B,SAAS,EAAEe,IAAI;IACfS,KAAK;IACLzB,WAAW,EAAE0B;GACd;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,OAAO,MAAMG,KAAK,GAAGA,CACnB/J,KAA6C,EAC7C0B,MAAiB,EACjBC,MAAiB,EACjBoG,UAAmC,EACnCiC,SAA2D,KAC3B;EAChC;EACA,IAAI,CAAChK,KAAK,CAAC3B,KAAK,CAACV,GAAG,CAAC+D,MAAM,CAAC,EAAE;IAC5B,MAAM,IAAI4B,KAAK,CAAC,eAAe5B,MAAM,iBAAiB,CAAC;EACzD;EACA,IAAI,CAAC1B,KAAK,CAAC3B,KAAK,CAACV,GAAG,CAACgE,MAAM,CAAC,EAAE;IAC5B,MAAM,IAAI2B,KAAK,CAAC,eAAe3B,MAAM,iBAAiB,CAAC;EACzD;EAEA;EACA,IAAID,MAAM,KAAKC,MAAM,EAAE;IACrB,OAAOrE,MAAM,CAACM,IAAI,CAAC;MACjBoK,IAAI,EAAE,CAACtG,MAAM,CAAC;MACduG,QAAQ,EAAE,CAAC;MACXC,WAAW,EAAE;KACd,CAAC;EACJ;EAEA;EACA,MAAM+B,cAAc,GAAGzM,UAAU,CAACwC,KAAK,CAAC3B,KAAK,EAAEsD,MAAM,CAAC;EACtD,IAAIrE,MAAM,CAAC2G,MAAM,CAACgG,cAAc,CAAC,EAAE;IACjC,MAAM,IAAI3G,KAAK,CAAC,eAAe3B,MAAM,iBAAiB,CAAC;EACzD;EAEA;EACA,MAAMuI,MAAM,GAAG,IAAI/J,GAAG,EAAqB;EAC3C,MAAMgK,MAAM,GAAG,IAAIhK,GAAG,EAAqB;EAC3C,MAAMiI,QAAQ,GAAG,IAAIjI,GAAG,EAAsD;EAC9E,MAAMsF,OAAO,GAAG,IAAIC,GAAG,EAAa;EAEpC;EACA;EACA,KAAK,MAAMM,IAAI,IAAIhG,KAAK,CAAC3B,KAAK,CAACwH,IAAI,EAAE,EAAE;IACrCqE,MAAM,CAACrJ,GAAG,CAACmF,IAAI,EAAEA,IAAI,KAAKtE,MAAM,GAAG,CAAC,GAAG2G,QAAQ,CAAC;IAChD8B,MAAM,CAACtJ,GAAG,CAACmF,IAAI,EAAEqC,QAAQ,CAAC;IAC1BD,QAAQ,CAACvH,GAAG,CAACmF,IAAI,EAAE,IAAI,CAAC;EAC1B;EAEA;EACA,MAAMoE,cAAc,GAAG5M,UAAU,CAACwC,KAAK,CAAC3B,KAAK,EAAEqD,MAAM,CAAC;EACtD,IAAIpE,MAAM,CAACqF,MAAM,CAACyH,cAAc,CAAC,EAAE;IACjC,MAAMC,CAAC,GAAGL,SAAS,CAACI,cAAc,CAACxH,KAAK,EAAEqH,cAAc,CAACrH,KAAK,CAAC;IAC/DuH,MAAM,CAACtJ,GAAG,CAACa,MAAM,EAAE2I,CAAC,CAAC;EACvB;EAEA;EACA,MAAMC,OAAO,GAA+C,CAC1D;IAAEtE,IAAI,EAAEtE,MAAM;IAAEyI,MAAM,EAAEA,MAAM,CAACtM,GAAG,CAAC6D,MAAM;EAAE,CAAE,CAC9C;EAED,OAAO4I,OAAO,CAACvE,MAAM,GAAG,CAAC,EAAE;IACzB;IACA,IAAIwC,QAAQ,GAAG,CAAC;IAChB,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2C,OAAO,CAACvE,MAAM,EAAE4B,CAAC,EAAE,EAAE;MACvC,IAAI2C,OAAO,CAAC3C,CAAC,CAAC,CAACwC,MAAM,GAAGG,OAAO,CAAC/B,QAAQ,CAAC,CAAC4B,MAAM,EAAE;QAChD5B,QAAQ,GAAGZ,CAAC;MACd;IACF;IAEA,MAAMb,OAAO,GAAGwD,OAAO,CAACnG,MAAM,CAACoE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAMC,WAAW,GAAG1B,OAAO,CAACd,IAAI;IAEhC;IACA,IAAIP,OAAO,CAAC9H,GAAG,CAAC6K,WAAW,CAAC,EAAE;MAC5B;IACF;IAEA/C,OAAO,CAACW,GAAG,CAACoC,WAAW,CAAC;IAExB;IACA,IAAIA,WAAW,KAAK7G,MAAM,EAAE;MAC1B;IACF;IAEA;IACA,MAAM4I,aAAa,GAAGL,MAAM,CAACrM,GAAG,CAAC2K,WAAW,CAAE;IAE9C;IACA,MAAMlE,aAAa,GAAG9G,UAAU,CAACwC,KAAK,CAACI,SAAS,EAAEoI,WAAW,CAAC;IAC9D,IAAIlL,MAAM,CAACqF,MAAM,CAAC2B,aAAa,CAAC,EAAE;MAChC,KAAK,MAAMrF,SAAS,IAAIqF,aAAa,CAAC1B,KAAK,EAAE;QAC3C,MAAMgB,IAAI,GAAGpG,UAAU,CAACwC,KAAK,CAACrB,KAAK,EAAEM,SAAS,CAAC;QAC/C,IAAI3B,MAAM,CAACqF,MAAM,CAACiB,IAAI,CAAC,EAAE;UACvB,MAAM4C,QAAQ,GAAG5C,IAAI,CAAChB,KAAK,CAACjB,MAAM;UAClC,MAAM+G,MAAM,GAAGX,UAAU,CAACnE,IAAI,CAAChB,KAAK,CAAC5B,IAAI,CAAC;UAE1C;UACA,IAAI0H,MAAM,GAAG,CAAC,EAAE;YACd,MAAM,IAAIpF,KAAK,CAAC,0DAA0DoF,MAAM,EAAE,CAAC;UACrF;UAEA,MAAM8B,eAAe,GAAGD,aAAa,GAAG7B,MAAM;UAC9C,MAAM+B,cAAc,GAAGP,MAAM,CAACrM,GAAG,CAAC2I,QAAQ,CAAE;UAE5C;UACA,IAAIgE,eAAe,GAAGC,cAAc,EAAE;YACpC;YACAP,MAAM,CAACrJ,GAAG,CAAC2F,QAAQ,EAAEgE,eAAe,CAAC;YACrCpC,QAAQ,CAACvH,GAAG,CAAC2F,QAAQ,EAAE;cAAER,IAAI,EAAEwC,WAAW;cAAEtJ,QAAQ,EAAE0E,IAAI,CAAChB,KAAK,CAAC5B;YAAI,CAAE,CAAC;YAExE;YACA,MAAM0J,gBAAgB,GAAGlN,UAAU,CAACwC,KAAK,CAAC3B,KAAK,EAAEmI,QAAQ,CAAC;YAC1D,IAAIlJ,MAAM,CAACqF,MAAM,CAAC+H,gBAAgB,CAAC,EAAE;cACnC,MAAML,CAAC,GAAGL,SAAS,CAACU,gBAAgB,CAAC9H,KAAK,EAAEqH,cAAc,CAACrH,KAAK,CAAC;cACjE,MAAM9B,CAAC,GAAG0J,eAAe,GAAGH,CAAC;cAC7BF,MAAM,CAACtJ,GAAG,CAAC2F,QAAQ,EAAE1F,CAAC,CAAC;cAEvB;cACA,IAAI,CAAC2E,OAAO,CAAC9H,GAAG,CAAC6I,QAAQ,CAAC,EAAE;gBAC1B8D,OAAO,CAAC9I,IAAI,CAAC;kBAAEwE,IAAI,EAAEQ,QAAQ;kBAAE2D,MAAM,EAAErJ;gBAAC,CAAE,CAAC;cAC7C;YACF;UACF;QACF;MACF;IACF;EACF;EAEA;EACA,MAAM6J,YAAY,GAAGT,MAAM,CAACrM,GAAG,CAAC8D,MAAM,CAAE;EACxC,IAAIgJ,YAAY,KAAKtC,QAAQ,EAAE;IAC7B,OAAO/K,MAAM,CAACQ,IAAI,EAAE,EAAC;EACvB;EAEA;EACA,MAAMkK,IAAI,GAAqB,EAAE;EACjC,MAAME,WAAW,GAAa,EAAE;EAChC,IAAIM,WAAW,GAAqB7G,MAAM;EAE1C,OAAO6G,WAAW,KAAK,IAAI,EAAE;IAC3BR,IAAI,CAACc,OAAO,CAACN,WAAW,CAAC;IACzB,MAAMO,IAAI,GAA4CX,QAAQ,CAACvK,GAAG,CAAC2K,WAAW,CAAE;IAChF,IAAIO,IAAI,KAAK,IAAI,EAAE;MACjBb,WAAW,CAACY,OAAO,CAACC,IAAI,CAAC7J,QAAQ,CAAC;MAClCsJ,WAAW,GAAGO,IAAI,CAAC/C,IAAI;IACzB,CAAC,MAAM;MACLwC,WAAW,GAAG,IAAI;IACpB;EACF;EAEA,OAAOlL,MAAM,CAACM,IAAI,CAAC;IACjBoK,IAAI;IACJC,QAAQ,EAAE0C,YAAY;IACtBzC;GACD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,OAAO,MAAM0C,WAAW,GAAGA,CACzB5K,KAA6C,EAC7C0B,MAAiB,EACjBC,MAAiB,EACjBoG,UAAmC,KACH;EAChC;EACA,IAAI,CAAC/H,KAAK,CAAC3B,KAAK,CAACV,GAAG,CAAC+D,MAAM,CAAC,EAAE;IAC5B,MAAM,IAAI4B,KAAK,CAAC,eAAe5B,MAAM,iBAAiB,CAAC;EACzD;EACA,IAAI,CAAC1B,KAAK,CAAC3B,KAAK,CAACV,GAAG,CAACgE,MAAM,CAAC,EAAE;IAC5B,MAAM,IAAI2B,KAAK,CAAC,eAAe3B,MAAM,iBAAiB,CAAC;EACzD;EAEA;EACA,IAAID,MAAM,KAAKC,MAAM,EAAE;IACrB,OAAOrE,MAAM,CAACM,IAAI,CAAC;MACjBoK,IAAI,EAAE,CAACtG,MAAM,CAAC;MACduG,QAAQ,EAAE,CAAC;MACXC,WAAW,EAAE;KACd,CAAC;EACJ;EAEA;EACA,MAAMC,SAAS,GAAG,IAAIhI,GAAG,EAAqB;EAC9C,MAAMiI,QAAQ,GAAG,IAAIjI,GAAG,EAAsD;EAC9E;EAEA,KAAK,MAAM6F,IAAI,IAAIhG,KAAK,CAAC3B,KAAK,CAACwH,IAAI,EAAE,EAAE;IACrCsC,SAAS,CAACtH,GAAG,CAACmF,IAAI,EAAEA,IAAI,KAAKtE,MAAM,GAAG,CAAC,GAAG2G,QAAQ,CAAC;IACnDD,QAAQ,CAACvH,GAAG,CAACmF,IAAI,EAAE,IAAI,CAAC;EAC1B;EAEA;EACA,MAAMrH,KAAK,GAAiF,EAAE;EAC9F,KAAK,MAAM,GAAGO,QAAQ,CAAC,IAAIc,KAAK,CAACrB,KAAK,EAAE;IACtC,MAAM+J,MAAM,GAAGX,UAAU,CAAC7I,QAAQ,CAAC8B,IAAI,CAAC;IACxCrC,KAAK,CAAC6C,IAAI,CAAC;MACTE,MAAM,EAAExC,QAAQ,CAACwC,MAAM;MACvBC,MAAM,EAAEzC,QAAQ,CAACyC,MAAM;MACvB+G,MAAM;MACNxJ,QAAQ,EAAEA,QAAQ,CAAC8B;KACpB,CAAC;EACJ;EAEA;EACA,MAAMxB,SAAS,GAAGQ,KAAK,CAAC3B,KAAK,CAACK,IAAI;EAClC,KAAK,IAAIiJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnI,SAAS,GAAG,CAAC,EAAEmI,CAAC,EAAE,EAAE;IACtC,IAAIkD,SAAS,GAAG,KAAK;IAErB,KAAK,MAAMjH,IAAI,IAAIjF,KAAK,EAAE;MACxB,MAAMmM,cAAc,GAAG3C,SAAS,CAACtK,GAAG,CAAC+F,IAAI,CAAClC,MAAM,CAAE;MAClD,MAAMmH,cAAc,GAAGV,SAAS,CAACtK,GAAG,CAAC+F,IAAI,CAACjC,MAAM,CAAE;MAElD;MACA,IAAImJ,cAAc,KAAKzC,QAAQ,IAAIyC,cAAc,GAAGlH,IAAI,CAAC8E,MAAM,GAAGG,cAAc,EAAE;QAChFV,SAAS,CAACtH,GAAG,CAAC+C,IAAI,CAACjC,MAAM,EAAEmJ,cAAc,GAAGlH,IAAI,CAAC8E,MAAM,CAAC;QACxDN,QAAQ,CAACvH,GAAG,CAAC+C,IAAI,CAACjC,MAAM,EAAE;UAAEqE,IAAI,EAAEpC,IAAI,CAAClC,MAAM;UAAExC,QAAQ,EAAE0E,IAAI,CAAC1E;QAAQ,CAAE,CAAC;QACzE2L,SAAS,GAAG,IAAI;MAClB;IACF;IAEA;IACA,IAAI,CAACA,SAAS,EAAE;MACd;IACF;EACF;EAEA;EACA,KAAK,MAAMjH,IAAI,IAAIjF,KAAK,EAAE;IACxB,MAAMmM,cAAc,GAAG3C,SAAS,CAACtK,GAAG,CAAC+F,IAAI,CAAClC,MAAM,CAAE;IAClD,MAAMmH,cAAc,GAAGV,SAAS,CAACtK,GAAG,CAAC+F,IAAI,CAACjC,MAAM,CAAE;IAElD,IAAImJ,cAAc,KAAKzC,QAAQ,IAAIyC,cAAc,GAAGlH,IAAI,CAAC8E,MAAM,GAAGG,cAAc,EAAE;MAChF;MACA,MAAMkC,aAAa,GAAG,IAAIrF,GAAG,EAAa;MAC1C,MAAMmB,KAAK,GAAG,CAACjD,IAAI,CAACjC,MAAM,CAAC;MAE3B,OAAOkF,KAAK,CAACd,MAAM,GAAG,CAAC,EAAE;QACvB,MAAMC,IAAI,GAAGa,KAAK,CAACE,KAAK,EAAG;QAC3B,IAAIgE,aAAa,CAACpN,GAAG,CAACqI,IAAI,CAAC,EAAE;QAC7B+E,aAAa,CAAC3E,GAAG,CAACJ,IAAI,CAAC;QAEvB;QACA,MAAM1B,aAAa,GAAG9G,UAAU,CAACwC,KAAK,CAACI,SAAS,EAAE4F,IAAI,CAAC;QACvD,IAAI1I,MAAM,CAACqF,MAAM,CAAC2B,aAAa,CAAC,EAAE;UAChC,KAAK,MAAMrF,SAAS,IAAIqF,aAAa,CAAC1B,KAAK,EAAE;YAC3C,MAAMgB,IAAI,GAAGpG,UAAU,CAACwC,KAAK,CAACrB,KAAK,EAAEM,SAAS,CAAC;YAC/C,IAAI3B,MAAM,CAACqF,MAAM,CAACiB,IAAI,CAAC,EAAE;cACvBiD,KAAK,CAACrF,IAAI,CAACoC,IAAI,CAAChB,KAAK,CAACjB,MAAM,CAAC;YAC/B;UACF;QACF;MACF;MAEA;MACA,IAAIoJ,aAAa,CAACpN,GAAG,CAACgE,MAAM,CAAC,EAAE;QAC7B,OAAOrE,MAAM,CAACQ,IAAI,EAAE;MACtB;IACF;EACF;EAEA;EACA,MAAM+K,cAAc,GAAGV,SAAS,CAACtK,GAAG,CAAC8D,MAAM,CAAE;EAC7C,IAAIkH,cAAc,KAAKR,QAAQ,EAAE;IAC/B,OAAO/K,MAAM,CAACQ,IAAI,EAAE,EAAC;EACvB;EAEA;EACA,MAAMkK,IAAI,GAAqB,EAAE;EACjC,MAAME,WAAW,GAAa,EAAE;EAChC,IAAIM,WAAW,GAAqB7G,MAAM;EAE1C,OAAO6G,WAAW,KAAK,IAAI,EAAE;IAC3BR,IAAI,CAACc,OAAO,CAACN,WAAW,CAAC;IACzB,MAAMO,IAAI,GAA4CX,QAAQ,CAACvK,GAAG,CAAC2K,WAAW,CAAE;IAChF,IAAIO,IAAI,KAAK,IAAI,EAAE;MACjBb,WAAW,CAACY,OAAO,CAACC,IAAI,CAAC7J,QAAQ,CAAC;MAClCsJ,WAAW,GAAGO,IAAI,CAAC/C,IAAI;IACzB,CAAC,MAAM;MACLwC,WAAW,GAAG,IAAI;IACpB;EACF;EAEA,OAAOlL,MAAM,CAACM,IAAI,CAAC;IACjBoK,IAAI;IACJC,QAAQ,EAAEY,cAAc;IACxBX;GACD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,OAAM,MAAO8C,MAAM;EACjB;EACS,CAAC7M,MAAM,CAACC,QAAQ;EAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BS6M,KAAK;EAEdC;EACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BAD,KAAsD;IAEtD,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC9M,MAAM,CAACC,QAAQ,CAAC,GAAG6M,KAAK,CAAC,CAAC5J,KAAK,EAAEL,IAAI,KAAK,CAACK,KAAK,EAAEL,IAAI,CAAW,CAAC,CAAC7C,MAAM,CAACC,QAAQ,CAAC;EAC1F;;AAqBF;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAM+M,OAAO,GAAUC,MAAoB,IAAkBA,MAAM,CAACH,KAAK,CAAC,CAAC5J,KAAK,EAAEgK,CAAC,KAAKhK,KAAK,CAAC;AAErG;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAMiK,MAAM,GAAUF,MAAoB,IAAkBA,MAAM,CAACH,KAAK,CAAC,CAACI,CAAC,EAAErK,IAAI,KAAKA,IAAI,CAAC;AAElG;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAMuK,OAAO,GAAUH,MAAoB,IAChDA,MAAM,CAACH,KAAK,CAAC,CAAC5J,KAAK,EAAEL,IAAI,KAAK,CAACK,KAAK,EAAEL,IAAI,CAAW,CAAC;AAaxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,OAAO,MAAMwK,GAAG,GAAGA,CACjBxL,KAA6C,EAC7CyL,MAAA,GAAoB,EAAE,KACL;EACjB,MAAMC,UAAU,GAAGD,MAAM,CAACC,UAAU,IAAI,EAAE;EAC1C,MAAMjH,SAAS,GAAGgH,MAAM,CAAChH,SAAS,IAAI,UAAU;EAEhD;EACA,KAAK,MAAM5F,SAAS,IAAI6M,UAAU,EAAE;IAClC,IAAI,CAACxK,OAAO,CAAClB,KAAK,EAAEnB,SAAS,CAAC,EAAE;MAC9B,MAAM,IAAIyE,KAAK,CAAC,cAAczE,SAAS,iBAAiB,CAAC;IAC3D;EACF;EAEA,OAAO,IAAImM,MAAM,CAAElK,CAAC,KAAM;IACxB,CAAC3C,MAAM,CAACC,QAAQ,GAAG,MAAK;MACtB,MAAM0H,KAAK,GAAG,CAAC,GAAG4F,UAAU,CAAC;MAC7B,MAAM/E,UAAU,GAAG,IAAIjB,GAAG,EAAa;MAEvC,MAAMiG,UAAU,GAAGA,CAAA,KAAK;QACtB,OAAO7F,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;UACvB,MAAMe,OAAO,GAAGhB,KAAK,CAACK,GAAG,EAAG;UAE5B,IAAIQ,UAAU,CAAChJ,GAAG,CAACmJ,OAAO,CAAC,EAAE;YAC3B;UACF;UAEAH,UAAU,CAACP,GAAG,CAACU,OAAO,CAAC;UAEvB,MAAM8E,cAAc,GAAGpO,UAAU,CAACwC,KAAK,CAAC3B,KAAK,EAAEyI,OAAO,CAAC;UACvD,IAAIxJ,MAAM,CAAC2G,MAAM,CAAC2H,cAAc,CAAC,EAAE;YACjC;UACF;UAEA,MAAMrH,SAAS,GAAGC,iBAAiB,CAACxE,KAAK,EAAE8G,OAAO,EAAErC,SAAS,CAAC;UAC9D,KAAK,IAAIkD,CAAC,GAAGpD,SAAS,CAACwB,MAAM,GAAG,CAAC,EAAE4B,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;YAC9C,MAAMnB,QAAQ,GAAGjC,SAAS,CAACoD,CAAC,CAAC;YAC7B,IAAI,CAAChB,UAAU,CAAChJ,GAAG,CAAC6I,QAAQ,CAAC,EAAE;cAC7BV,KAAK,CAACtE,IAAI,CAACgF,QAAQ,CAAC;YACtB;UACF;UAEA,OAAO;YAAEqF,IAAI,EAAE,KAAK;YAAEjJ,KAAK,EAAE9B,CAAC,CAACgG,OAAO,EAAE8E,cAAc,CAAChJ,KAAK;UAAC,CAAE;QACjE;QAEA,OAAO;UAAEiJ,IAAI,EAAE,IAAI;UAAEjJ,KAAK,EAAEkJ;QAAS,CAAW;MAClD,CAAC;MAED,OAAO;QAAE3C,IAAI,EAAEwC;MAAU,CAAE;IAC7B;GACD,CAAC,CAAC;AACL,CAAC;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,OAAO,MAAMI,GAAG,GAAGA,CACjB/L,KAA6C,EAC7CyL,MAAA,GAAoB,EAAE,KACL;EACjB,MAAMC,UAAU,GAAGD,MAAM,CAACC,UAAU,IAAI,EAAE;EAC1C,MAAMjH,SAAS,GAAGgH,MAAM,CAAChH,SAAS,IAAI,UAAU;EAEhD;EACA,KAAK,MAAM5F,SAAS,IAAI6M,UAAU,EAAE;IAClC,IAAI,CAACxK,OAAO,CAAClB,KAAK,EAAEnB,SAAS,CAAC,EAAE;MAC9B,MAAM,IAAIyE,KAAK,CAAC,cAAczE,SAAS,iBAAiB,CAAC;IAC3D;EACF;EAEA,OAAO,IAAImM,MAAM,CAAElK,CAAC,KAAM;IACxB,CAAC3C,MAAM,CAACC,QAAQ,GAAG,MAAK;MACtB,MAAMyI,KAAK,GAAG,CAAC,GAAG6E,UAAU,CAAC;MAC7B,MAAM/E,UAAU,GAAG,IAAIjB,GAAG,EAAa;MAEvC,MAAMiG,UAAU,GAAGA,CAAA,KAAK;QACtB,OAAO9E,KAAK,CAACd,MAAM,GAAG,CAAC,EAAE;UACvB,MAAMe,OAAO,GAAGD,KAAK,CAACE,KAAK,EAAG;UAE9B,IAAI,CAACJ,UAAU,CAAChJ,GAAG,CAACmJ,OAAO,CAAC,EAAE;YAC5BH,UAAU,CAACP,GAAG,CAACU,OAAO,CAAC;YAEvB,MAAMvC,SAAS,GAAGC,iBAAiB,CAACxE,KAAK,EAAE8G,OAAO,EAAErC,SAAS,CAAC;YAC9D,KAAK,MAAM+B,QAAQ,IAAIjC,SAAS,EAAE;cAChC,IAAI,CAACoC,UAAU,CAAChJ,GAAG,CAAC6I,QAAQ,CAAC,EAAE;gBAC7BK,KAAK,CAACrF,IAAI,CAACgF,QAAQ,CAAC;cACtB;YACF;YAEA,MAAM1H,QAAQ,GAAGmC,OAAO,CAACjB,KAAK,EAAE8G,OAAO,CAAC;YACxC,IAAIxJ,MAAM,CAACqF,MAAM,CAAC7D,QAAQ,CAAC,EAAE;cAC3B,OAAO;gBAAE+M,IAAI,EAAE,KAAK;gBAAEjJ,KAAK,EAAE9B,CAAC,CAACgG,OAAO,EAAEhI,QAAQ,CAAC8D,KAAK;cAAC,CAAE;YAC3D;YACA,OAAO+I,UAAU,EAAE;UACrB;QACF;QAEA,OAAO;UAAEE,IAAI,EAAE,IAAI;UAAEjJ,KAAK,EAAEkJ;QAAS,CAAW;MAClD,CAAC;MAED,OAAO;QAAE3C,IAAI,EAAEwC;MAAU,CAAE;IAC7B;GACD,CAAC,CAAC;AACL,CAAC;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,OAAO,MAAMK,IAAI,GAAGA,CAClBhM,KAA6C,EAC7CyL,MAAA,GAAqB,EAAE,KACN;EACjB;EACA,IAAI,CAACjL,SAAS,CAACR,KAAK,CAAC,EAAE;IACrB,MAAM,IAAIsD,KAAK,CAAC,iDAAiD,CAAC;EACpE;EAEA,MAAM2I,QAAQ,GAAGR,MAAM,CAACQ,QAAQ,IAAI,EAAE;EAEtC;EACA,KAAK,MAAMpN,SAAS,IAAIoN,QAAQ,EAAE;IAChC,IAAI,CAAC/K,OAAO,CAAClB,KAAK,EAAEnB,SAAS,CAAC,EAAE;MAC9B,MAAM,IAAIyE,KAAK,CAAC,gBAAgBzE,SAAS,iBAAiB,CAAC;IAC7D;EACF;EAEA,OAAO,IAAImM,MAAM,CAAElK,CAAC,KAAM;IACxB,CAAC3C,MAAM,CAACC,QAAQ,GAAG,MAAK;MACtB,MAAM8N,QAAQ,GAAG,IAAI/L,GAAG,EAAqB;MAC7C,MAAMgM,SAAS,GAAG,IAAIzG,GAAG,EAAa;MACtC,MAAMmB,KAAK,GAAG,CAAC,GAAGoF,QAAQ,CAAC;MAE3B;MACA,KAAK,MAAM,CAACpN,SAAS,CAAC,IAAImB,KAAK,CAAC3B,KAAK,EAAE;QACrC6N,QAAQ,CAACrL,GAAG,CAAChC,SAAS,EAAE,CAAC,CAAC;QAC1BsN,SAAS,CAAC/F,GAAG,CAACvH,SAAS,CAAC;MAC1B;MAEA;MACA,KAAK,MAAM,GAAGK,QAAQ,CAAC,IAAIc,KAAK,CAACrB,KAAK,EAAE;QACtC,MAAMyN,eAAe,GAAGF,QAAQ,CAACrO,GAAG,CAACqB,QAAQ,CAACyC,MAAM,CAAC,IAAI,CAAC;QAC1DuK,QAAQ,CAACrL,GAAG,CAAC3B,QAAQ,CAACyC,MAAM,EAAEyK,eAAe,GAAG,CAAC,CAAC;MACpD;MAEA;MACA,IAAIH,QAAQ,CAAClG,MAAM,KAAK,CAAC,EAAE;QACzB,KAAK,MAAM,CAAClH,SAAS,EAAEwN,MAAM,CAAC,IAAIH,QAAQ,EAAE;UAC1C,IAAIG,MAAM,KAAK,CAAC,EAAE;YAChBxF,KAAK,CAACrF,IAAI,CAAC3C,SAAS,CAAC;UACvB;QACF;MACF;MAEA,MAAM8M,UAAU,GAAGA,CAAA,KAAK;QACtB,OAAO9E,KAAK,CAACd,MAAM,GAAG,CAAC,EAAE;UACvB,MAAMe,OAAO,GAAGD,KAAK,CAACE,KAAK,EAAG;UAE9B,IAAIoF,SAAS,CAACxO,GAAG,CAACmJ,OAAO,CAAC,EAAE;YAC1BqF,SAAS,CAACpI,MAAM,CAAC+C,OAAO,CAAC;YAEzB;YACA,MAAMvC,SAAS,GAAGC,iBAAiB,CAACxE,KAAK,EAAE8G,OAAO,EAAE,UAAU,CAAC;YAC/D,KAAK,MAAMN,QAAQ,IAAIjC,SAAS,EAAE;cAChC,IAAI4H,SAAS,CAACxO,GAAG,CAAC6I,QAAQ,CAAC,EAAE;gBAC3B,MAAM4F,eAAe,GAAGF,QAAQ,CAACrO,GAAG,CAAC2I,QAAQ,CAAC,IAAI,CAAC;gBACnD,MAAM8F,WAAW,GAAGF,eAAe,GAAG,CAAC;gBACvCF,QAAQ,CAACrL,GAAG,CAAC2F,QAAQ,EAAE8F,WAAW,CAAC;gBAEnC;gBACA,IAAIA,WAAW,KAAK,CAAC,EAAE;kBACrBzF,KAAK,CAACrF,IAAI,CAACgF,QAAQ,CAAC;gBACtB;cACF;YACF;YAEA,MAAM1H,QAAQ,GAAGmC,OAAO,CAACjB,KAAK,EAAE8G,OAAO,CAAC;YACxC,IAAIxJ,MAAM,CAACqF,MAAM,CAAC7D,QAAQ,CAAC,EAAE;cAC3B,OAAO;gBAAE+M,IAAI,EAAE,KAAK;gBAAEjJ,KAAK,EAAE9B,CAAC,CAACgG,OAAO,EAAEhI,QAAQ,CAAC8D,KAAK;cAAC,CAAE;YAC3D;YACA,OAAO+I,UAAU,EAAE;UACrB;QACF;QAEA,OAAO;UAAEE,IAAI,EAAE,IAAI;UAAEjJ,KAAK,EAAEkJ;QAAS,CAAW;MAClD,CAAC;MAED,OAAO;QAAE3C,IAAI,EAAEwC;MAAU,CAAE;IAC7B;GACD,CAAC,CAAC;AACL,CAAC;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,OAAO,MAAMY,YAAY,GAAGA,CAC1BvM,KAA6C,EAC7CyL,MAAA,GAA6B,EAAE,KACd;EACjB,MAAMC,UAAU,GAAGD,MAAM,CAACC,UAAU,IAAI,EAAE;EAC1C,MAAMjH,SAAS,GAAGgH,MAAM,CAAChH,SAAS,IAAI,UAAU;EAEhD;EACA,KAAK,MAAM5F,SAAS,IAAI6M,UAAU,EAAE;IAClC,IAAI,CAACxK,OAAO,CAAClB,KAAK,EAAEnB,SAAS,CAAC,EAAE;MAC9B,MAAM,IAAIyE,KAAK,CAAC,cAAczE,SAAS,iBAAiB,CAAC;IAC3D;EACF;EAEA,OAAO,IAAImM,MAAM,CAAElK,CAAC,KAAM;IACxB,CAAC3C,MAAM,CAACC,QAAQ,GAAG,MAAK;MACtB,MAAM0H,KAAK,GAAyD,EAAE;MACtE,MAAMa,UAAU,GAAG,IAAIjB,GAAG,EAAa;MACvC,MAAM8G,QAAQ,GAAG,IAAI9G,GAAG,EAAa;MAErC;MACA,KAAK,IAAIiC,CAAC,GAAG+D,UAAU,CAAC3F,MAAM,GAAG,CAAC,EAAE4B,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QAC/C7B,KAAK,CAACtE,IAAI,CAAC;UAAEwE,IAAI,EAAE0F,UAAU,CAAC/D,CAAC,CAAC;UAAE8E,eAAe,EAAE;QAAK,CAAE,CAAC;MAC7D;MAEA,MAAMd,UAAU,GAAGA,CAAA,KAAK;QACtB,OAAO7F,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;UACvB,MAAMe,OAAO,GAAGhB,KAAK,CAACA,KAAK,CAACC,MAAM,GAAG,CAAC,CAAC;UAEvC,IAAI,CAACY,UAAU,CAAChJ,GAAG,CAACmJ,OAAO,CAACd,IAAI,CAAC,EAAE;YACjCW,UAAU,CAACP,GAAG,CAACU,OAAO,CAACd,IAAI,CAAC;YAC5Bc,OAAO,CAAC2F,eAAe,GAAG,KAAK;UACjC;UAEA,IAAI,CAAC3F,OAAO,CAAC2F,eAAe,EAAE;YAC5B3F,OAAO,CAAC2F,eAAe,GAAG,IAAI;YAC9B,MAAMlI,SAAS,GAAGC,iBAAiB,CAACxE,KAAK,EAAE8G,OAAO,CAACd,IAAI,EAAEvB,SAAS,CAAC;YAEnE,KAAK,IAAIkD,CAAC,GAAGpD,SAAS,CAACwB,MAAM,GAAG,CAAC,EAAE4B,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;cAC9C,MAAMnB,QAAQ,GAAGjC,SAAS,CAACoD,CAAC,CAAC;cAC7B,IAAI,CAAChB,UAAU,CAAChJ,GAAG,CAAC6I,QAAQ,CAAC,IAAI,CAACgG,QAAQ,CAAC7O,GAAG,CAAC6I,QAAQ,CAAC,EAAE;gBACxDV,KAAK,CAACtE,IAAI,CAAC;kBAAEwE,IAAI,EAAEQ,QAAQ;kBAAEiG,eAAe,EAAE;gBAAK,CAAE,CAAC;cACxD;YACF;UACF,CAAC,MAAM;YACL,MAAMC,UAAU,GAAG5G,KAAK,CAACK,GAAG,EAAG,CAACH,IAAI;YAEpC,IAAI,CAACwG,QAAQ,CAAC7O,GAAG,CAAC+O,UAAU,CAAC,EAAE;cAC7BF,QAAQ,CAACpG,GAAG,CAACsG,UAAU,CAAC;cAExB,MAAM5N,QAAQ,GAAGmC,OAAO,CAACjB,KAAK,EAAE0M,UAAU,CAAC;cAC3C,IAAIpP,MAAM,CAACqF,MAAM,CAAC7D,QAAQ,CAAC,EAAE;gBAC3B,OAAO;kBAAE+M,IAAI,EAAE,KAAK;kBAAEjJ,KAAK,EAAE9B,CAAC,CAAC4L,UAAU,EAAE5N,QAAQ,CAAC8D,KAAK;gBAAC,CAAE;cAC9D;cACA,OAAO+I,UAAU,EAAE;YACrB;UACF;QACF;QAEA,OAAO;UAAEE,IAAI,EAAE,IAAI;UAAEjJ,KAAK,EAAEkJ;QAAS,CAAW;MAClD,CAAC;MAED,OAAO;QAAE3C,IAAI,EAAEwC;MAAU,CAAE;IAC7B;GACD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAMtN,KAAK,GAChB2B,KAA6C,IAE7C,IAAIgL,MAAM,CAAElK,CAAC,KAAM;EACjB,CAAC3C,MAAM,CAACC,QAAQ,IAAC;IACf,MAAMuO,OAAO,GAAG3M,KAAK,CAAC3B,KAAK;IAC3B,MAAMD,QAAQ,GAAGuO,OAAO,CAACpB,OAAO,EAAE;IAElC,OAAO;MACLpC,IAAIA,CAAA;QACF,MAAMzG,MAAM,GAAGtE,QAAQ,CAAC+K,IAAI,EAAE;QAC9B,IAAIzG,MAAM,CAACmJ,IAAI,EAAE;UACf,OAAO;YAAEA,IAAI,EAAE,IAAI;YAAEjJ,KAAK,EAAEkJ;UAAS,CAAE;QACzC;QACA,MAAM,CAACjN,SAAS,EAAEC,QAAQ,CAAC,GAAG4D,MAAM,CAACE,KAAK;QAC1C,OAAO;UAAEiJ,IAAI,EAAE,KAAK;UAAEjJ,KAAK,EAAE9B,CAAC,CAACjC,SAAS,EAAEC,QAAQ;QAAC,CAAE;MACvD;KACD;EACH;CACD,CAAC,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAMH,KAAK,GAChBqB,KAA6C,IAE7C,IAAIgL,MAAM,CAAElK,CAAC,KAAM;EACjB,CAAC3C,MAAM,CAACC,QAAQ,IAAC;IACf,MAAMwO,OAAO,GAAG5M,KAAK,CAACrB,KAAK;IAC3B,MAAMP,QAAQ,GAAGwO,OAAO,CAACrB,OAAO,EAAE;IAElC,OAAO;MACLpC,IAAIA,CAAA;QACF,MAAMzG,MAAM,GAAGtE,QAAQ,CAAC+K,IAAI,EAAE;QAC9B,IAAIzG,MAAM,CAACmJ,IAAI,EAAE;UACf,OAAO;YAAEA,IAAI,EAAE,IAAI;YAAEjJ,KAAK,EAAEkJ;UAAS,CAAE;QACzC;QACA,MAAM,CAAC7M,SAAS,EAAEC,QAAQ,CAAC,GAAGwD,MAAM,CAACE,KAAK;QAC1C,OAAO;UAAEiJ,IAAI,EAAE,KAAK;UAAEjJ,KAAK,EAAE9B,CAAC,CAAC7B,SAAS,EAAEC,QAAQ;QAAC,CAAE;MACvD;KACD;EACH;CACD,CAAC,CAAC;AAYL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,OAAO,MAAM2N,SAAS,GAAGA,CACvB7M,KAA6C,EAC7CyL,MAAA,GAA0B,EAAE,KACX;EACjB,MAAMhH,SAAS,GAAGgH,MAAM,CAAChH,SAAS,IAAI,UAAU;EAEhD,OAAO,IAAIuG,MAAM,CAAElK,CAAC,KAAM;IACxB,CAAC3C,MAAM,CAACC,QAAQ,GAAG,MAAK;MACtB,MAAMuO,OAAO,GAAG3M,KAAK,CAAC3B,KAAK;MAC3B,MAAMqG,YAAY,GAAGD,SAAS,KAAK,UAAU,GACzCzE,KAAK,CAACK,gBAAgB,GACtBL,KAAK,CAACI,SAAS;MAEnB,MAAM0M,YAAY,GAAGH,OAAO,CAACpB,OAAO,EAAE;MAEtC,MAAMI,UAAU,GAAGA,CAAA,KAAK;QACtB,IAAI7E,OAAO,GAAGgG,YAAY,CAAC3D,IAAI,EAAE;QACjC,OAAO,CAACrC,OAAO,CAAC+E,IAAI,EAAE;UACpB,MAAM,CAAChN,SAAS,EAAEC,QAAQ,CAAC,GAAGgI,OAAO,CAAClE,KAAK;UAC3C,MAAM0B,aAAa,GAAG9G,UAAU,CAACkH,YAAY,EAAE7F,SAAS,CAAC;UAEzD;UACA,IAAIvB,MAAM,CAAC2G,MAAM,CAACK,aAAa,CAAC,IAAIA,aAAa,CAAC1B,KAAK,CAACmD,MAAM,KAAK,CAAC,EAAE;YACpE,OAAO;cAAE8F,IAAI,EAAE,KAAK;cAAEjJ,KAAK,EAAE9B,CAAC,CAACjC,SAAS,EAAEC,QAAQ;YAAC,CAAE;UACvD;UACAgI,OAAO,GAAGgG,YAAY,CAAC3D,IAAI,EAAE;QAC/B;QAEA,OAAO;UAAE0C,IAAI,EAAE,IAAI;UAAEjJ,KAAK,EAAEkJ;QAAS,CAAW;MAClD,CAAC;MAED,OAAO;QAAE3C,IAAI,EAAEwC;MAAU,CAAE;IAC7B;GACD,CAAC,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Graph.js","names":["Data","Equal","dual","Hash","format","NodeInspectSymbol","Option","pipeArguments","TypeId","Edge","Class","ProtoGraph","Symbol","iterator","nodes","toJSON","symbol","that","isGraph","size","edges","type","nodeIndex","nodeData","has","otherNodeData","get","equals","edgeIndex","edgeData","otherEdge","hash","string","number","_id","nodeCount","edgeCount","toString","pipe","arguments","GraphError","TaggedError","missingNode","node","message","u","directed","mutate","graph","Object","create","Map","adjacency","reverseAdjacency","nextNodeIndex","nextEdgeIndex","isAcyclic","some","mutable","beginMutation","endMutation","undirected","set","f","addNode","data","getNode","none","hasNode","findNode","predicate","index","findNodes","results","push","findEdge","source","target","findEdges","updateNode","currentData","newData","updateEdge","currentEdge","mapNodes","mapEdges","reverse","clear","sourceEdges","targetEdges","filterMapNodes","nodesToRemove","result","isSome","value","removeNode","filterMapEdges","edgesToRemove","removeEdge","filterNodes","filterEdges","invalidateCycleFlagOnRemoval","invalidateCycleFlagOnAddition","addEdge","sourceAdjacency","undefined","targetReverseAdjacency","targetAdjacency","sourceReverseAdjacency","outgoingEdges","edge","incomingEdges","removeEdgeInternal","delete","wasRemoved","indexOf","splice","getEdge","hasEdge","adjacencyList","neighbors","getUndirectedNeighbors","neighborsDirected","direction","adjacencyMap","neighborNode","toGraphViz","options","edgeLabel","String","graphName","nodeLabel","isDirected","graphType","edgeOperator","lines","label","replace","join","escapeMermaidLabel","formatMermaidNode","nodeId","shape","toMermaid","diagramType","nodeShape","finalDiagramType","formattedNode","sourceId","targetId","visited","Set","recursionStack","startNode","keys","stack","length","neighborIndex","isFirstVisit","pop","add","nodeNeighbors","Array","from","neighbor","isBipartite","coloring","discovered","isBipartiteGraph","queue","current","shift","currentColor","neighborColor","otherNode","connectedComponents","components","component","stronglyConnectedComponents","finishOrder","nodeNeighborsList","sccs","i","scc","predecessor","dijkstra","config","cost","path","distance","costs","distances","previous","Infinity","priorityQueue","minIndex","currentNode","currentDistance","weight","Error","newDistance","neighborDistance","targetDistance","unshift","prev","floydWarshall","allNodes","dist","next","edgeMatrix","j","currentWeight","k","distIK","distKJ","distIJ","paths","resultCosts","weights","nextNode","astar","heuristic","targetNodeData","gScore","fScore","sourceNodeData","h","openSet","currentGScore","tentativeGScore","neighborGScore","neighborNodeData","targetGScore","bellmanFord","hasUpdate","sourceDistance","affectedNodes","Walker","visit","constructor","indices","walker","_","values","entries","dfs","start","nextMapped","nodeDataOption","done","bfs","topo","initials","inDegree","remaining","currentInDegree","degree","newInDegree","dfsPostOrder","finished","visitedChildren","nodeToEmit","nodeMap","edgeMap","externals","nodeIterator"],"sources":["../../src/Graph.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,245 @@
1
+ /**
2
+ * @since 3.19.0
3
+ * @experimental
4
+ */
5
+ import { dual } from "./Function.js";
6
+ import * as Hash from "./Hash.js";
7
+ import * as Inspectable from "./Inspectable.js";
8
+ import * as Iterable from "./Iterable.js";
9
+ import { pipeArguments } from "./Pipeable.js";
10
+ import { hasProperty } from "./Predicate.js";
11
+ import * as PrimaryKey from "./PrimaryKey.js";
12
+ const TypeId = "~effect/cluster/HashRing";
13
+ /**
14
+ * @since 3.19.0
15
+ * @category Guards
16
+ * @experimental
17
+ */
18
+ export const isHashRing = u => hasProperty(u, TypeId);
19
+ /**
20
+ * @since 3.19.0
21
+ * @category Constructors
22
+ * @experimental
23
+ */
24
+ export const make = options => {
25
+ const self = Object.create(Proto);
26
+ self.baseWeight = Math.max(options?.baseWeight ?? 128, 1);
27
+ self.totalWeightCache = 0;
28
+ self.nodes = new Map();
29
+ self.ring = [];
30
+ return self;
31
+ };
32
+ const Proto = {
33
+ [TypeId]: TypeId,
34
+ [Symbol.iterator]() {
35
+ return Iterable.map(this.nodes.values(), ([n]) => n)[Symbol.iterator]();
36
+ },
37
+ pipe() {
38
+ return pipeArguments(this, arguments);
39
+ },
40
+ ...Inspectable.BaseProto,
41
+ toJSON() {
42
+ return {
43
+ _id: "HashRing",
44
+ baseWeight: this.baseWeight,
45
+ nodes: this.ring.map(([, n]) => this.nodes.get(n)[0])
46
+ };
47
+ }
48
+ };
49
+ /**
50
+ * Add new nodes to the ring. If a node already exists in the ring, it
51
+ * will be updated. For example, you can use this to update the node's weight.
52
+ *
53
+ * @since 3.19.0
54
+ * @category Combinators
55
+ * @experimental
56
+ */
57
+ export const addMany = /*#__PURE__*/dual(args => isHashRing(args[0]), (self, nodes, options) => {
58
+ const weight = Math.max(options?.weight ?? 1, 0.1);
59
+ const keys = [];
60
+ let toRemove;
61
+ for (const node of nodes) {
62
+ const key = PrimaryKey.value(node);
63
+ const entry = self.nodes.get(key);
64
+ if (entry) {
65
+ if (entry[1] === weight) continue;
66
+ toRemove ??= new Set();
67
+ toRemove.add(key);
68
+ self.totalWeightCache -= entry[1];
69
+ self.totalWeightCache += weight;
70
+ entry[1] = weight;
71
+ } else {
72
+ self.nodes.set(key, [node, weight]);
73
+ self.totalWeightCache += weight;
74
+ }
75
+ keys.push(key);
76
+ }
77
+ if (toRemove) {
78
+ self.ring = self.ring.filter(([, n]) => !toRemove.has(n));
79
+ }
80
+ addNodesToRing(self, keys, Math.round(weight * self.baseWeight));
81
+ return self;
82
+ });
83
+ function addNodesToRing(self, keys, weight) {
84
+ for (let i = weight; i > 0; i--) {
85
+ for (let j = 0; j < keys.length; j++) {
86
+ const key = keys[j];
87
+ self.ring.push([Hash.string(`${key}:${i}`), key]);
88
+ }
89
+ }
90
+ self.ring.sort((a, b) => a[0] - b[0]);
91
+ }
92
+ /**
93
+ * Add a new node to the ring. If the node already exists in the ring, it
94
+ * will be updated. For example, you can use this to update the node's weight.
95
+ *
96
+ * @since 3.19.0
97
+ * @category Combinators
98
+ * @experimental
99
+ */
100
+ export const add = /*#__PURE__*/dual(args => isHashRing(args[0]), (self, node, options) => addMany(self, [node], options));
101
+ /**
102
+ * Removes the node from the ring. No-op's if the node does not exist.
103
+ *
104
+ * @since 3.19.0
105
+ * @category Combinators
106
+ * @experimental
107
+ */
108
+ export const remove = /*#__PURE__*/dual(2, (self, node) => {
109
+ const key = PrimaryKey.value(node);
110
+ const entry = self.nodes.get(key);
111
+ if (entry) {
112
+ self.nodes.delete(key);
113
+ self.ring = self.ring.filter(([, n]) => n !== key);
114
+ self.totalWeightCache -= entry[1];
115
+ }
116
+ return self;
117
+ });
118
+ /**
119
+ * @since 3.19.0
120
+ * @category Combinators
121
+ * @experimental
122
+ */
123
+ export const has = /*#__PURE__*/dual(2, (self, node) => self.nodes.has(PrimaryKey.value(node)));
124
+ /**
125
+ * Gets the node which should handle the given input. Returns undefined if
126
+ * the hashring has no elements with weight.
127
+ *
128
+ * @since 3.19.0
129
+ * @category Combinators
130
+ * @experimental
131
+ */
132
+ export const get = (self, input) => {
133
+ if (self.ring.length === 0) {
134
+ return undefined;
135
+ }
136
+ const index = getIndexForInput(self, Hash.string(input))[0];
137
+ const node = self.ring[index][1];
138
+ return self.nodes.get(node)[0];
139
+ };
140
+ /**
141
+ * Distributes `count` shards across the nodes in the ring, attempting to
142
+ * balance the number of shards allocated to each node. Returns undefined if
143
+ * the hashring has no elements with weight.
144
+ *
145
+ * @since 3.19.0
146
+ * @category Combinators
147
+ * @experimental
148
+ */
149
+ export const getShards = (self, count) => {
150
+ if (self.ring.length === 0) {
151
+ return undefined;
152
+ }
153
+ const shards = new Array(count);
154
+ // for tracking how many shards have been allocated to each node
155
+ const allocations = new Map();
156
+ // for tracking which shards still need to be allocated
157
+ const remaining = new Set();
158
+ // for tracking which nodes have reached the max allocation
159
+ const exclude = new Set();
160
+ // First pass - allocate the closest nodes, skipping nodes that have reached
161
+ // max
162
+ const distances = new Array(count);
163
+ for (let shard = 0; shard < count; shard++) {
164
+ const hash = shardHashes[shard] ??= Hash.string(`shard-${shard}`);
165
+ const [index, distance] = getIndexForInput(self, hash);
166
+ const node = self.ring[index][1];
167
+ distances[shard] = [shard, node, distance];
168
+ remaining.add(shard);
169
+ }
170
+ distances.sort((a, b) => a[2] - b[2]);
171
+ for (let i = 0; i < count; i++) {
172
+ const [shard, node] = distances[i];
173
+ if (exclude.has(node)) continue;
174
+ const [value, weight] = self.nodes.get(node);
175
+ shards[shard] = value;
176
+ remaining.delete(shard);
177
+ const nodeCount = (allocations.get(node) ?? 0) + 1;
178
+ allocations.set(node, nodeCount);
179
+ const maxPerNode = Math.max(1, Math.floor(count * (weight / self.totalWeightCache)));
180
+ if (nodeCount >= maxPerNode) {
181
+ exclude.add(node);
182
+ }
183
+ }
184
+ // Second pass - allocate any remaining shards, skipping nodes that have
185
+ // reached max
186
+ let allAtMax = exclude.size === self.nodes.size;
187
+ remaining.forEach(shard => {
188
+ const index = getIndexForInput(self, shardHashes[shard], allAtMax ? undefined : exclude)[0];
189
+ const node = self.ring[index][1];
190
+ const [value, weight] = self.nodes.get(node);
191
+ shards[shard] = value;
192
+ if (allAtMax) return;
193
+ const nodeCount = (allocations.get(node) ?? 0) + 1;
194
+ allocations.set(node, nodeCount);
195
+ const maxPerNode = Math.max(1, Math.floor(count * (weight / self.totalWeightCache)));
196
+ if (nodeCount >= maxPerNode) {
197
+ exclude.add(node);
198
+ if (exclude.size === self.nodes.size) {
199
+ allAtMax = true;
200
+ }
201
+ }
202
+ });
203
+ return shards;
204
+ };
205
+ const shardHashes = [];
206
+ function getIndexForInput(self, hash, exclude) {
207
+ const ring = self.ring;
208
+ const len = ring.length;
209
+ let mid;
210
+ let lo = 0;
211
+ let hi = len - 1;
212
+ while (lo <= hi) {
213
+ mid = (lo + hi) / 2 >>> 0;
214
+ if (ring[mid][0] >= hash) {
215
+ hi = mid - 1;
216
+ } else {
217
+ lo = mid + 1;
218
+ }
219
+ }
220
+ const a = lo === len ? lo - 1 : lo;
221
+ const distA = Math.abs(ring[a][0] - hash);
222
+ if (exclude === undefined) {
223
+ const b = lo - 1;
224
+ if (b < 0) {
225
+ return [a, distA];
226
+ }
227
+ const distB = Math.abs(ring[b][0] - hash);
228
+ return distA <= distB ? [a, distA] : [b, distB];
229
+ } else if (!exclude.has(ring[a][1])) {
230
+ return [a, distA];
231
+ }
232
+ const range = Math.max(lo, len - lo);
233
+ for (let i = 1; i < range; i++) {
234
+ let index = lo - i;
235
+ if (index >= 0 && index < len && !exclude.has(ring[index][1])) {
236
+ return [index, Math.abs(ring[index][0] - hash)];
237
+ }
238
+ index = lo + i;
239
+ if (index >= 0 && index < len && !exclude.has(ring[index][1])) {
240
+ return [index, Math.abs(ring[index][0] - hash)];
241
+ }
242
+ }
243
+ return [a, distA];
244
+ }
245
+ //# sourceMappingURL=HashRing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HashRing.js","names":["dual","Hash","Inspectable","Iterable","pipeArguments","hasProperty","PrimaryKey","TypeId","isHashRing","u","make","options","self","Object","create","Proto","baseWeight","Math","max","totalWeightCache","nodes","Map","ring","Symbol","iterator","map","values","n","pipe","arguments","BaseProto","toJSON","_id","get","addMany","args","weight","keys","toRemove","node","key","value","entry","Set","add","set","push","filter","has","addNodesToRing","round","i","j","length","string","sort","a","b","remove","delete","input","undefined","index","getIndexForInput","getShards","count","shards","Array","allocations","remaining","exclude","distances","shard","hash","shardHashes","distance","nodeCount","maxPerNode","floor","allAtMax","size","forEach","len","mid","lo","hi","distA","abs","distB","range"],"sources":["../../src/HashRing.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -22,7 +22,7 @@ export const make = schema => {
22
22
  definitions
23
23
  });
24
24
  const out = {
25
- $schema,
25
+ $schema: getMetaSchemaUri("jsonSchema7"),
26
26
  $defs: {},
27
27
  ...jsonSchema
28
28
  };
@@ -33,6 +33,18 @@ export const make = schema => {
33
33
  }
34
34
  return out;
35
35
  };
36
+ /** @internal */
37
+ export function getMetaSchemaUri(target) {
38
+ switch (target) {
39
+ case "jsonSchema7":
40
+ return "http://json-schema.org/draft-07/schema#";
41
+ case "jsonSchema2019-09":
42
+ return "https://json-schema.org/draft/2019-09/schema";
43
+ case "jsonSchema2020-12":
44
+ case "openApi3.1":
45
+ return "https://json-schema.org/draft/2020-12/schema";
46
+ }
47
+ }
36
48
  /**
37
49
  * Returns a JSON Schema with additional options and definitions.
38
50
  *
@@ -103,7 +115,6 @@ const constEmptyStruct = {
103
115
  "type": "array"
104
116
  }]
105
117
  };
106
- const $schema = "http://json-schema.org/draft-07/schema#";
107
118
  function getRawDescription(annotated) {
108
119
  if (annotated !== undefined) return Option.getOrUndefined(AST.getDescriptionAnnotation(annotated));
109
120
  }
@@ -231,6 +242,7 @@ function isContentSchemaSupported(options) {
231
242
  case "jsonSchema7":
232
243
  return false;
233
244
  case "jsonSchema2019-09":
245
+ case "jsonSchema2020-12":
234
246
  case "openApi3.1":
235
247
  return true;
236
248
  }
@@ -423,7 +435,11 @@ function go(ast, $defs, identifier, path, options, annotation, errors) {
423
435
  const len = ast.elements.length;
424
436
  if (len > 0) {
425
437
  output.minItems = len - ast.elements.filter(element => element.isOptional).length;
426
- output.items = elements;
438
+ if (options.target === "jsonSchema7") {
439
+ output.items = elements;
440
+ } else {
441
+ output.prefixItems = elements;
442
+ }
427
443
  }
428
444
  // ---------------------------------------------
429
445
  // handle rest element
@@ -433,9 +449,18 @@ function go(ast, $defs, identifier, path, options, annotation, errors) {
433
449
  const head = rest[0];
434
450
  const isHomogeneous = restLength === 1 && ast.elements.every(e => e.type === ast.rest[0].type);
435
451
  if (isHomogeneous) {
436
- output.items = head;
452
+ if (options.target === "jsonSchema7") {
453
+ output.items = head;
454
+ } else {
455
+ output.items = head;
456
+ delete output.prefixItems;
457
+ }
437
458
  } else {
438
- output.additionalItems = head;
459
+ if (options.target === "jsonSchema7") {
460
+ output.additionalItems = head;
461
+ } else {
462
+ output.items = head;
463
+ }
439
464
  }
440
465
  // ---------------------------------------------
441
466
  // handle post rest elements
@@ -446,7 +471,11 @@ function go(ast, $defs, identifier, path, options, annotation, errors) {
446
471
  }
447
472
  } else {
448
473
  if (len > 0) {
449
- output.additionalItems = false;
474
+ if (options.target === "jsonSchema7") {
475
+ output.additionalItems = false;
476
+ } else {
477
+ output.items = false;
478
+ }
450
479
  } else {
451
480
  output.maxItems = 0;
452
481
  }