{"version":3,"file":"index.8ef58f64.js","mappings":";;;;;;;;AAAA;;;;;;;;;ACAA;;;;;;;;;ACAA;;;;;;;;;ACAA;;;;;;;;;ACAA,+DAAe,wCAAwC,4BAA4B,6BAA6B,KAAK,eAAe,4BAA4B,KAAK,gBAAgB,mBAAmB,KAAK,uBAAuB,kCAAkC,KAAK,4CAA4C,2BAA2B,6BAA6B,KAAK,6BAA6B,+BAA+B,gCAAgC,gCAAgC,KAAK,cAAc,uBAAuB,8BAA8B,+BAA+B,2BAA2B,sCAAsC,2BAA2B,gCAAgC,KAAK,uCAAuC,+CAA+C,qFAAqF,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,qBAAqB,2BAA2B,6BAA6B,+BAA+B,8BAA8B,2BAA2B,iBAAiB,KAAK,kCAAkC,sCAAsC,KAAK,uDAAuD,sBAAsB,KAAK,sDAAsD,2BAA2B,4BAA4B,yBAAyB,yBAAyB,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAl7C;AAGA;AACA;AAQM,MAAOG,MAAP,SAAsBH,sDAAtB,CAA6B;AAGf,SAATI,SAAS,CAACC,QAAD,EAAmBC,WAAnB,EAAuC;AACnD,UAAMF,SAAN,CAAgBC,QAAhB,EAA0BC,WAA1B;AACH;;AAEmB,SAAPC,OAAO,CAACC,MAAD,EAAiD;;;;;;;;AACjE,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,YAAsCA,iEAAtC,cAAwEO,MAAM,CAACS,MAA/E,cAAyFT,MAAM,CAACU,SAAP,CAAiBC,GAAjB,CAAqBC,CAAC,uBAAgBA,CAAhB,CAAtB,EAA2CC,IAA3C,CAAgD,GAAhD,CAAzF,EAAvB;AACA,aAAOZ,QAAP;AACH;AAAA;;AAEmB,SAAPa,OAAO,CAACd,MAAD,EAAgE;;;;;;;;AAChF,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,iEAAnC,EAAmE,CAACO,MAAM,CAACS,MAAR,EAAgBT,MAAM,CAACgB,QAAvB,EAAiChB,MAAM,CAACiB,QAAxC,CAAnE,EAAsHC,SAAtH,EAAiI,MAAjI,CAAvB;AACA,YAAMC,eAAe,GAA0C;AAC3DC,eAAO,EAAE,KADkD;AAE3DC,aAAK,EAAEpB,QAAQ,CAACoB;AAF2C,OAA/D;;AAIA,UAAIpB,QAAQ,CAACc,IAAb,EAAmB;AACf,cAAMO,IAAI,GAAGrB,QAAQ,CAACc,IAAtB;AACA,cAAMQ,KAAK,GAAG,IAAIC,UAAJ,CAAe,MAAMF,IAAI,CAACG,WAAL,EAArB,CAAd;AACA,cAAMC,OAAO,GAAGhC,qEAAA,CAAgC6B,KAAhC,CAAhB;AACAJ,uBAAe,CAACJ,IAAhB,GAAuBW,OAAvB;AACAP,uBAAe,CAACC,OAAhB,GAA0B,IAA1B;AACH;;AACD,aAAOD,eAAP;AACH;AAAA;;AAE0B,SAAdU,cAAc,CAAC7B,MAAD,EAAgE;;;;;;;;AACvF,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAmCX,wDAAnC,EAA0DA,wEAA1D,EAAiG,CAACO,MAAM,CAACS,MAAR,EAAgBT,MAAM,CAACgB,QAAvB,EAAiChB,MAAM,CAACiB,QAAxC,CAAjG,CAAvB;AACA,aAAOhB,QAAP;AACH;AAAA;;AAE8B,SAAlB8B,kBAAkB,CAAC/B,MAAD,EAAsD;;;;;;;;AACjF,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,4EAAnC,EAA8E,CAACO,MAAM,CAACiC,KAAP,CAAaC,WAAb,EAAD,EAA6BlC,MAAM,CAACmC,GAAP,CAAWD,WAAX,EAA7B,EAAuDlC,MAAM,CAACoC,IAA9D,CAA9E,CAAvB;AACA,aAAOnC,QAAP;AACH;AAAA;;AAE0B,SAAdoC,cAAc,CAACrC,MAAD,EAAgF;;;;;;;;AACvG,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,wEAAnC,EAA0E,CAACO,MAAM,CAACiC,KAAP,CAAaC,WAAb,EAAD,EAA6BlC,MAAM,CAACmC,GAAP,CAAWD,WAAX,EAA7B,EAAuDlC,MAAM,CAACuC,aAA9D,EAA6EvC,MAAM,CAACwC,MAApF,CAA1E,EAAuKtB,SAAvK,EAAkL,MAAlL,CAAvB;AACA,YAAMC,eAAe,GAA2C;AAC5DC,eAAO,EAAE,KADmD;AAE5DC,aAAK,EAAEpB,QAAQ,CAACoB;AAF4C,OAAhE;;AAIA,UAAIpB,QAAQ,CAACc,IAAb,EAAmB;AACf,cAAMO,IAAI,GAAGrB,QAAQ,CAACc,IAAtB;AACA,cAAMQ,KAAK,GAAG,IAAIC,UAAJ,CAAe,MAAMF,IAAI,CAACG,WAAL,EAArB,CAAd;AACA,cAAMC,OAAO,GAAGhC,sEAAA,CAAiC6B,KAAjC,CAAhB;AACAJ,uBAAe,CAACJ,IAAhB,GAAuBW,OAAvB;AACAP,uBAAe,CAACC,OAAhB,GAA0B,IAA1B;AACH;;AACD,aAAOD,eAAP;AACH;AAAA;;AAEsB,SAAVuB,UAAU,CAAC1C,MAAD,EAA2F;;;;;;;;;;;AAC9G,YAAM2C,QAAQ,aAAM3C,MAAM,CAAC2C,QAAb,cAAyB3C,MAAM,CAAC4C,MAAhC,CAAd;AACA,YAAM3C,QAAQ,GAAG,MAAMC,OAAM2C,SAAN,CAAezC,IAAf,CAAe,IAAf,EAAgBX,wDAAhB,YAA0CA,sEAA1C,cAA8EO,MAAM,CAACS,MAArF,cAA+FT,MAAM,CAACU,SAAP,CAAiBC,GAAjB,CAAqBC,CAAC,uBAAgBA,CAAhB,CAAtB,EAA2CC,IAA3C,CAAgD,GAAhD,CAA/F,qBAA8Jb,MAAM,CAAC4C,MAArK,EAAvB;AACA,aAAO3C,QAAQ,CAACmB,OAAT,GAAmBlB,OAAM6C,QAAN,CAAc3C,IAAd,CAAc,IAAd,EAAeH,QAAf,EAAyB0C,QAAzB,CAAnB,GAAwD1C,QAA/D;AACH;AAAA;;AAE6B,SAAjB+C,iBAAiB,CAAChD,MAAD,EAAgE;;;;;;;;AAC1F,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAA4BX,wDAA5B,EAAmDA,sEAAnD,EAAwF,CAACO,MAAM,CAACS,MAAR,EAAgBT,MAAM,CAACgB,QAAvB,EAAiChB,MAAM,CAACiB,QAAxC,CAAxF,CAAvB;AACA,aAAOhB,QAAP;AACH;AAAA;;AAEgC,SAApBiD,oBAAoB,CAAClD,MAAD,EAAmF;;;;;;;;;;;AAChH,YAAM2C,QAAQ,aAAM3C,MAAM,CAAC2C,QAAb,SAAd;AACA,YAAM1C,QAAQ,GAAG,MAAMC,OAAM2C,SAAN,CAAezC,IAAf,CAAe,IAAf,EAAgBX,wDAAhB,YAA0CA,4EAA1C,cAAuFO,MAAM,CAACS,MAA9F,cAAwGT,MAAM,CAACU,SAAP,CAAiBC,GAAjB,CAAqBC,CAAC,uBAAgBA,CAAhB,CAAtB,EAA2CC,IAA3C,CAAgD,GAAhD,CAAxG,SAA+Jb,MAAM,CAACoD,KAAP,oBAAyBpD,MAAM,CAACoD,KAAhC,IAA0C,EAAzM,EAAvB;AACA,aAAOnD,QAAQ,CAACmB,OAAT,GAAmBlB,OAAM6C,QAAN,CAAc3C,IAAd,CAAc,IAAd,EAAeH,QAAf,EAAyB0C,QAAzB,CAAnB,GAAwD1C,QAA/D;AACH;AAAA;;AAEyB,SAAboD,aAAa;;;;;;;;AACtB,YAAMpD,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,iFAAnC,CAAvB;AACA,aAAOQ,QAAP;AACH;AAAA;;AAE4B,SAAhBsD,gBAAgB,CAACvD,MAAD,EAA0F;;;;;;;;AACnH,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,6EAAnC,EAA+E,CAACO,MAAM,CAACyD,SAAR,EAAmBzD,MAAM,CAACgB,QAA1B,EAAoChB,MAAM,CAACiB,QAA3C,CAA/E,EAAqIjB,MAAM,CAAC0D,UAA5I,CAAvB;AACA,aAAOzD,QAAP;AACH;AAAA;;AAE4B,SAAhB0D,gBAAgB,CAAC3D,MAAD,EAAoC;;;;;;;;AAC7D,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,6EAAnC,EAA+E,CAACO,MAAM,CAAC0D,UAAP,CAAkBG,IAAnB,CAA/E,EAAyG7D,MAAM,CAAC0D,UAAhH,CAAvB;AACA,aAAOzD,QAAP;AACH;AAAA;;AAE4B,SAAhB6D,gBAAgB,CAAC9D,MAAD,EAAoC;;;;;;;;AAC7D,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,6EAAnC,EAA+E,CAACO,MAAM,CAAC0D,UAAP,CAAkBG,IAAnB,CAA/E,EAAyG7D,MAAM,CAAC0D,UAAhH,CAAvB;AACA,aAAOzD,QAAP;AACH;AAAA;;AAEiC,SAArB+D,qBAAqB,CAAChE,MAAD,EAAoG;;;;;;;;AAClI,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,kFAAnC,EAAoF,CAACO,MAAM,CAACyD,SAAR,EAAmBzD,MAAM,CAACgB,QAA1B,EAAoChB,MAAM,CAACiB,QAA3C,CAApF,EAA0IjB,MAAM,CAACkE,eAAjJ,CAAvB;AACA,aAAOjE,QAAP;AACH;AAAA;;AAEiC,SAArBkE,qBAAqB,CAACnE,MAAD,EAA8C;;;;;;;;AAC5E,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,kFAAnC,EAAoF,CAACO,MAAM,CAACkE,eAAP,CAAuBG,EAAxB,CAApF,EAAiHrE,MAAM,CAACkE,eAAxH,CAAvB;AACA,aAAOjE,QAAP;AACH;AAAA;;AAEiC,SAArBqE,qBAAqB,CAACtE,MAAD,EAA8C;;;;;;;;AAC5E,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,kFAAnC,EAAoF,CAACO,MAAM,CAACkE,eAAP,CAAuBG,EAAxB,CAApF,EAAiHrE,MAAM,CAACkE,eAAxH,CAAvB;AACA,aAAOjE,QAAP;AACH;AAAA;;AAE6B,SAAjBuE,iBAAiB,CAACxE,MAAD,EAAmF;;;;;;;;AAC7G,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,2EAAnC,EAA6E,CAACO,MAAM,CAAC0E,OAAR,EAAiB1E,MAAM,CAACwC,MAAxB,EAAgCxC,MAAM,CAAC2E,MAAvC,CAA7E,EAA6H3E,MAAM,CAAC4E,UAApI,EAAgJ,MAAhJ,CAAvB;AACA,YAAMzD,eAAe,GAA8C;AAC/DC,eAAO,EAAE,KADsD;AAE/DC,aAAK,EAAEpB,QAAQ,CAACoB;AAF+C,OAAnE;;AAIA,UAAIpB,QAAQ,CAACc,IAAb,EAAmB;AACf,cAAMO,IAAI,GAAGrB,QAAQ,CAACc,IAAtB;AACA,cAAMQ,KAAK,GAAG,IAAIC,UAAJ,CAAe,MAAMF,IAAI,CAACG,WAAL,EAArB,CAAd;AACA,cAAMC,OAAO,GAAGhC,yEAAA,CAAoC6B,KAApC,CAAhB;AACAJ,uBAAe,CAACJ,IAAhB,GAAuBW,OAAvB;AACAP,uBAAe,CAACC,OAAhB,GAA0B,IAA1B;AACH;;AACD,aAAOD,eAAP;AACH;AAAA;;AAEgC,SAApB2D,oBAAoB,CAAC9E,MAAD,EAAuG;;;;;;;;AACpI,YAAM+E,MAAM,GAAG/E,MAAM,CAACgF,UAAP,CAAkBC,MAAlB,CAAyB,CAAzB,CAAf;AACA,UAAI,CAACF,MAAL,EAAa,OAAO;AAAE3D,eAAO,EAAE;AAAX,OAAP;AAEb,aAAO,MAAMlB,OAAMgF,GAAN,CAAS9E,IAAT,CAAS,IAAT,EAAUX,wDAAV,EAAiCA,6EAAjC,EAA6E,CAACO,MAAM,CAAC0E,OAAR,EAAiB1E,MAAM,CAACwC,MAAxB,EAAgCxC,MAAM,CAAC2E,MAAvC,CAA7E,EAA6H;AACtIS,aAAK,EAAEL,MAAM,CAACM,KADwH;AAEtIC,aAAK,EAAEP,MAAM,CAACO,KAFwH;AAGtIC,cAAM,EAAER,MAAM,CAACQ,MAHuH;AAItIC,qBAAa,EAAET,MAAM,CAACS,aAJgH;AAKtIC,aAAK,EAAEV,MAAM,CAACU,KALwH;AAMtIb,kBAAU,EAAE5E,MAAM,CAACgF,UAAP,CAAkBC,MAAlB,CAAyBtE,GAAzB,CAA6BC,CAAC,IAAIA,CAAC,CAAC8E,SAApC;AAN0H,OAA7H,CAAb;AAQH;AAAA;;AAE6B,SAAjBC,iBAAiB,CAAC3F,MAAD,EAA6D;;;;;;;;AACvF,aAAO,MAAME,OAAM0F,GAAN,CAASxF,IAAT,CAAS,IAAT,EAAUX,wDAAV,EAAiCA,kFAAjC,EAAkF,CAACO,MAAM,CAAC0E,OAAR,EAAiB1E,MAAM,CAACwC,MAAxB,EAAgCxC,MAAM,CAAC2E,MAAvC,CAAlF,CAAb;AACH;AAAA;;AA1I8B;AA6I7B,MAAOmB,YAAP,SAA4BtG,sDAA5B,CAAmC;AAGrB,SAATI,SAAS,CAACC,QAAD,EAAmBC,WAAnB,EAAuC;AACnD,UAAMF,SAAN,CAAgBC,QAAhB,EAA0BC,WAA1B;AACH;;AAEuB,SAAXiG,WAAW,CAAC/F,MAAD,EAA4B;;;;;;;;AAChD,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,2EAAnC,EAA6E,CAACO,MAAM,CAACS,MAAR,CAA7E,CAAvB;AACA,aAAOR,QAAP;AACH;AAAA;;AAEmB,SAAPF,OAAO,CAACC,MAAD,EAAiD;;;;;;;;AACjE,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,YAAsCA,iEAAtC,cAAwEO,MAAM,CAACS,MAA/E,cAAyFT,MAAM,CAACU,SAAP,CAAiBC,GAAjB,CAAqBC,CAAC,uBAAgBA,CAAhB,CAAtB,EAA2CC,IAA3C,CAAgD,GAAhD,CAAzF,EAAvB;AACA,aAAOZ,QAAP;AACH;AAAA;;AAEmB,SAAPa,OAAO,CAACd,MAAD,EAAgD;;;;;;;;AAChE,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,iEAAnC,EAAmE,CAACO,MAAM,CAACS,MAAR,EAAgBT,MAAM,CAACiG,UAAvB,CAAnE,EAAuG/E,SAAvG,EAAkH,MAAlH,CAAvB;AACA,YAAMC,eAAe,GAA0C;AAC3DC,eAAO,EAAE,KADkD;AAE3DC,aAAK,EAAEpB,QAAQ,CAACoB;AAF2C,OAA/D;;AAIA,UAAIpB,QAAQ,CAACc,IAAb,EAAmB;AACf,cAAMO,IAAI,GAAGrB,QAAQ,CAACc,IAAtB;AACA,cAAMQ,KAAK,GAAG,IAAIC,UAAJ,CAAe,MAAMF,IAAI,CAACG,WAAL,EAArB,CAAd;AACA,cAAMC,OAAO,GAAGhC,qEAAA,CAAgC6B,KAAhC,CAAhB;AACAJ,uBAAe,CAACJ,IAAhB,GAAuBW,OAAvB;AACAP,uBAAe,CAACC,OAAhB,GAA0B,IAA1B;AACH;;AACD,aAAOD,eAAP;AACH;AAAA;;AAE8B,SAAlBY,kBAAkB,CAAC/B,MAAD,EAAsD;;;;;;;;AACjF,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,4EAAnC,EAA8E,CAACO,MAAM,CAACiC,KAAP,CAAaC,WAAb,EAAD,EAA6BlC,MAAM,CAACmC,GAAP,CAAWD,WAAX,EAA7B,EAAuDlC,MAAM,CAACoC,IAA9D,CAA9E,CAAvB;AACA,aAAOnC,QAAP;AACH;AAAA;;AAE0B,SAAdoC,cAAc,CAACrC,MAAD,EAAoF;;;;;;;;AAC3G,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAAYX,wDAAZ,EAAmCA,wEAAnC,EAA0E,CAACO,MAAM,CAACiC,KAAP,CAAaC,WAAb,EAAD,EAA6BlC,MAAM,CAACmC,GAAP,CAAWD,WAAX,EAA7B,EAAuDlC,MAAM,CAACuC,aAA9D,EAA6EvC,MAAM,CAACiG,UAApF,CAA1E,EAA2K/E,SAA3K,EAAsL,MAAtL,CAAvB;AACA,YAAMC,eAAe,GAA2C;AAC5DC,eAAO,EAAE,KADmD;AAE5DC,aAAK,EAAEpB,QAAQ,CAACoB;AAF4C,OAAhE;;AAIA,UAAIpB,QAAQ,CAACc,IAAb,EAAmB;AACf,cAAMO,IAAI,GAAGrB,QAAQ,CAACc,IAAtB;AACA,cAAMQ,KAAK,GAAG,IAAIC,UAAJ,CAAe,MAAMF,IAAI,CAACG,WAAL,EAArB,CAAd;AACA,cAAMC,OAAO,GAAGhC,sEAAA,CAAiC6B,KAAjC,CAAhB;AACAJ,uBAAe,CAACJ,IAAhB,GAAuBW,OAAvB;AACAP,uBAAe,CAACC,OAAhB,GAA0B,IAA1B;AACH;;AACD,aAAOD,eAAP;AACH;AAAA;;AAEsB,SAAVuB,UAAU,CAAC1C,MAAD,EAA6F;;;;;;;;;;;AAChH,YAAM2C,QAAQ,aAAM3C,MAAM,CAAC2C,QAAb,cAAyB3C,MAAM,CAAC4C,MAAhC,CAAd;AACA,YAAM3C,QAAQ,GAAG,MAAMC,OAAM2C,SAAN,CAAezC,IAAf,CAAe,IAAf,EAAgBX,wDAAhB,YAA0CA,sEAA1C,cAA8EO,MAAM,CAACS,MAArF,cAA+FT,MAAM,CAACkG,WAAP,CAAmBvF,GAAnB,CAAuBC,CAAC,yBAAkBA,CAAlB,CAAxB,EAA+CC,IAA/C,CAAoD,GAApD,CAA/F,qBAAkKb,MAAM,CAAC4C,MAAzK,EAAvB;AACA,aAAO3C,QAAQ,CAACmB,OAAT,GAAmBlB,OAAM6C,QAAN,CAAc3C,IAAd,CAAc,IAAd,EAAeH,QAAf,EAAyB0C,QAAzB,CAAnB,GAAwD1C,QAA/D;AACH;AAAA;;AAE6B,SAAjB+C,iBAAiB,CAAChD,MAAD,EAAgD;;;;;;;;AAC1E,YAAMC,QAAQ,GAAG,MAAMC,OAAMC,KAAN,CAAWC,IAAX,CAAW,IAAX,EAA4BX,wDAA5B,EAAmDA,sEAAnD,EAAwF,CAACO,MAAM,CAACS,MAAR,EAAgBT,MAAM,CAACiG,UAAvB,CAAxF,CAAvB;AACA,aAAOhG,QAAP;AACH;AAAA;;AAEgC,SAApBiD,oBAAoB,CAAClD,MAAD,EAAoF;;;;;;;;;;;AACjH,YAAM2C,QAAQ,aAAM3C,MAAM,CAAC2C,QAAb,SAAd;AACA,YAAM1C,QAAQ,GAAG,MAAMC,OAAM2C,SAAN,CAAezC,IAAf,CAAe,IAAf,EAAgBX,wDAAhB,YAA0CA,4EAA1C,cAAuFO,MAAM,CAACS,MAA9F,cAAwGT,MAAM,CAACiG,UAAP,CAAkBtF,GAAlB,CAAsBC,CAAC,yBAAkBA,CAAlB,CAAvB,EAA8CC,IAA9C,CAAmD,GAAnD,CAAxG,SAAkKb,MAAM,CAACoD,KAAP,oBAAyBpD,MAAM,CAACoD,KAAhC,IAA0C,EAA5M,EAAvB;AACA,aAAOnD,QAAQ,CAACmB,OAAT,GAAmBlB,OAAM6C,QAAN,CAAc3C,IAAd,CAAc,IAAd,EAAeH,QAAf,EAAyB0C,QAAzB,CAAnB,GAAwD1C,QAA/D;AACH;AAAA;;AArEoC;;;;;;;;;;;;;;;;;;;;ACxJzC;AACA;AAEM,SAAgBoG,QAAhB,CAAyBC,GAAzB,EAA0CC,KAA1C,EAAyDC,MAAzD,EAAuE;;AACzE,UAAMC,MAAM,GAAGC,YAAY,CAACH,KAAD,EAAQC,MAAR,CAA3B;AACA,QAAI,CAACC,MAAL,EAAa;AAEb,UAAME,KAAK,GAAGC,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAd;AACAF,SAAK,CAACG,SAAN,GAAkB,yJAAM,MAAN,+DAAM,EAAY,KAAZ,EAAmB,EAAnB,CAAxB;AAEA,UAAMC,IAAI,GAAGT,GAAG,CAACU,oBAAJ,CAAyB,MAAzB,CAAb;AACAD,QAAI,CAAC,CAAD,CAAJ,CAAQE,WAAR,CAAoBN,KAApB;AAEA,UAAMO,GAAG,GAAG,IAAIC,aAAJ,GAAoBC,iBAApB,CAAsCd,GAAtC,CAAZ;AACA,UAAMe,OAAO,qCAA8BC,kBAAkB,CAACJ,GAAD,CAAhD,CAAb;AAEA,UAAMK,SAAS,GAAG,MAAM,IAAIC,OAAJ,CAAiCC,OAAD,IAAY;AAChE,YAAMC,GAAG,GAAG,IAAIC,KAAJ,CAAUpB,KAAV,EAAiBC,MAAjB,CAAZ;;AACAkB,SAAG,CAACE,MAAJ,GAAa,MAAK;AACdnB,cAAM,CAACoB,OAAP,CAAeC,SAAf,CAAyBJ,GAAzB,EAA8B,CAA9B,EAAiC,CAAjC;AACA,cAAMH,SAAS,GAAGd,MAAM,CAACsB,OAAP,CAAeC,SAAf,CAAyB,WAAzB,EAAsC,GAAtC,CAAlB;AACAP,eAAO,CAACF,SAAD,CAAP;AACH,OAJD;;AAKAG,SAAG,CAACO,OAAJ,GAAc,MAAMR,OAAO,CAACvG,SAAD,CAA3B;;AACAwG,SAAG,CAACQ,GAAJ,GAAUb,OAAV;AACH,KATuB,CAAxB;AAWAN,QAAI,CAAC,CAAD,CAAJ,CAAQoB,WAAR,CAAoBxB,KAApB;AAEA,WAAOY,SAAP;AACH;AAAA;;AAED,SAASb,YAAT,CAAsBH,KAAtB,EAAqCC,MAArC,EAAmD;AAC/C,QAAMC,MAAM,GAAGG,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACAJ,QAAM,CAACF,KAAP,GAAeA,KAAf;AACAE,QAAM,CAACD,MAAP,GAAgBA,MAAhB;AAEA,QAAM4B,GAAG,GAAG3B,MAAM,CAAC4B,UAAP,CAAkB,IAAlB,CAAZ;AACA,MAAI,CAACD,GAAL,EAAU;AAGVA,KAAG,CAACE,SAAJ,GAAgB,SAAhB;AACAF,KAAG,CAACG,QAAJ,CAAa,CAAb,EAAgB,CAAhB,EAAmBhC,KAAnB,EAA0BC,MAA1B;AAEA,SAAO;AAAEuB,WAAO,EAAEtB,MAAX;AAAmBoB,WAAO,EAAEO;AAA5B,GAAP;AACH;;AAEK,SAAgBI,QAAhB,CAAyBlC,GAAzB,EAA0ClD,KAA1C,EAAyDmD,KAAzD,EAAwEC,MAAxE,EAAsF;;AACxF,UAAMe,SAAS,GAAG,MAAMlB,QAAQ,CAACC,GAAD,EAAMC,KAAN,EAAaC,MAAb,CAAhC;AACA,QAAI,CAACe,SAAL,EAAgB;AAEhB,UAAMkB,GAAG,GAAG,IAAItC,6CAAJ,CAAU;AAClBuC,UAAI,EAAE,IADY;AAElBC,iBAAW,EAAE,GAFK;AAGlB/F,YAAM,EAAE,CAAC2D,KAAD,EAAQC,MAAR,CAHU;AAIlBoC,cAAQ,EAAE,CAAC,YAAD;AAJQ,KAAV,CAAZ;AAOAH,OAAG,CAACI,QAAJ,CAAatB,SAAb,EAAwB,KAAxB,EAA+B,CAA/B,EAAkC,CAAlC,EAAqChB,KAArC,EAA4CC,MAA5C;AACAiC,OAAG,CAACK,IAAJ,CAAS1F,KAAT;AACH;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AC7DD;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA0C,gEAAA,CAAuBrG,4DAAvB;;AAEA,SAAewC,KAAf,GAAoB;;;;AAChB,UAAMuH,MAAM,GAAG,IAAI,iGAAgBC,QAAQ,CAACD,MAA7B,CAAf;AACA,UAAM/I,MAAM,GAAGiJ,MAAM,CAAC,YAAM,CAAC9D,GAAP,CAAW,QAAX,OAAoB,IAApB,IAAoB+D,aAApB,GAAoBA,EAApB,GAAwB,EAAzB,CAArB;AAEA,UAAMC,QAAQ,GAAmB,OAAC,MAAM9D,kEAAA,CAAyB;AAAErF;AAAF,KAAzB,CAAP,EAA6CM,IAA7C,MAAiD,IAAjD,IAAiD8I,aAAjD,GAAiDA,EAAjD,GAAqD;AAClFC,WAAK,EAAE;AACH7G,iBAAS,EAAE,IADR;AAEHnB,mBAAW,EAAE,KAFV;AAGHiI,aAAK,EAAE;AACHC,iBAAO,EAAE,KADN;AAEHC,sBAAY,EAAE,KAFX;AAGHC,sBAAY,EAAE,KAHX;AAIHC,sBAAY,EAAE,IAJX;AAKHC,oBAAU,EAAE;AALT;AAHJ;AAD2E,KAAtF;;AAcA,UAAMC,MAAM,GAAG,MAAK;;;AAChB,YAAMC,UAAU,GAAE,cACd,oBAAC,qDAAD;AAAQ,WAAG,EAAE,CAAb;AAAgB,UAAE,EAAE;AAApB,QADc,eAEd,oBAAC,4DAAD;AAAe,WAAG,EAAE,CAApB;AAAuB,UAAE,EAAE;AAA3B,QAFc,CAAlB;AAIA,UAAI,cAAQ,CAACR,KAAT,MAAc,IAAd,IAAcH,aAAd,GAAc,MAAd,GAAcA,GAAE1G,SAApB,EACIqH,UAAU,CAACC,IAAX,eAAgB,oBAAC,oEAAD;AAAqB,WAAG,EAAE,CAA1B;AAA6B,UAAE,EAAE,WAAjC;AAA8C,cAAM,EAAE,CAAC,aAAD,CAAtD;AAAuE,YAAI;AAA3E,QAAhB;AACJ,UAAI,cAAQ,CAACT,KAAT,MAAc,IAAd,IAAcD,aAAd,GAAc,MAAd,GAAcA,GAAE/H,WAApB,EACIwI,UAAU,CAACC,IAAX,eAAgB,oBAAC,4DAAD;AAAa,WAAG,EAAE,CAAlB;AAAqB,UAAE,EAAE,aAAzB;AAAwC,cAAM,EAAE,CAAC,aAAD;AAAhD,QAAhB;AAEJ,0BAAO,oBAAC,kDAAD;AACH,YAAI,EAAE,cAAQ,CAACnH,KAAT,MAAc,IAAd,IAAcoH,aAAd,GAAcA,EAAd,GAAkB,0BADrB;AAEH,eAAO,EAAE/K,wDAFN;AAGH,WAAG,EAAEA,2DAHF;AAIH,YAAI,EAAEmK,QAAQ,CAACe,WAAT,GAAuBzJ,SAAvB,GAAmC,KAJtC;AAKH,eAAO,EAAE0I,QAAQ,CAACgB,UALf;AAMH,oBAAY,EAAE;AACVC,cAAI,EAAE,SADI;AAEVzI,cAAI,EAAE,IAFI;AAGVsC,iBAAO,EAAE,KAHC;AAIVoG,gBAAM,EAAE;AAJE,SANX;AAYH,kBAAU,EAAC,UAZR;AAaH,kBAAU,EAAER,UAbT;AAcH,eAAO,EAAE,cACL,oBAAC,mEAAD;AAAmB,aAAG,EAAE,CAAxB;AAA2B,YAAE,EAAE,QAA/B;AAAyC,gBAAM,EAAE,CAAC,aAAD,CAAjD;AAAkE,cAAI,MAAtE;AACI,iBAAO,EAAE,0BAAQ,CAACR,KAAT,MAAc,IAAd,IAAciB,aAAd,GAAc,MAAd,GAAcA,GAAEhB,KAAhB,MAAqB,IAArB,IAAqBiB,aAArB,GAAqB,MAArB,GAAqBA,GAAEhB,OAAvB,MAA8B,IAA9B,IAA8BiB,aAA9B,GAA8BA,EAA9B,GAAkC,KAD/C;AAEI,sBAAY,EAAE,0BAAQ,CAACnB,KAAT,MAAc,IAAd,IAAcoB,aAAd,GAAc,MAAd,GAAcA,GAAEnB,KAAhB,MAAqB,IAArB,IAAqBoB,aAArB,GAAqB,MAArB,GAAqBA,GAAElB,YAAvB,MAAmC,IAAnC,IAAmCmB,aAAnC,GAAmCA,EAAnC,GAAuC,KAFzD;AAGI,sBAAY,EAAE,0BAAQ,CAACtB,KAAT,MAAc,IAAd,IAAcuB,aAAd,GAAc,MAAd,GAAcA,GAAEtB,KAAhB,MAAqB,IAArB,IAAqBuB,aAArB,GAAqB,MAArB,GAAqBA,GAAEpB,YAAvB,MAAmC,IAAnC,IAAmCqB,aAAnC,GAAmCA,EAAnC,GAAuC,KAHzD;AAII,sBAAY,EAAE,0BAAQ,CAACzB,KAAT,MAAc,IAAd,IAAc0B,aAAd,GAAc,MAAd,GAAcA,GAAEzB,KAAhB,MAAqB,IAArB,IAAqB0B,aAArB,GAAqB,MAArB,GAAqBA,GAAEtB,YAAvB,MAAmC,IAAnC,IAAmCuB,aAAnC,GAAmCA,EAAnC,GAAuC,IAJzD;AAKI,oBAAU,EAAE,0BAAQ,CAAC5B,KAAT,MAAc,IAAd,IAAc6B,aAAd,GAAc,MAAd,GAAcA,GAAE5B,KAAhB,MAAqB,IAArB,IAAqB6B,aAArB,GAAqB,MAArB,GAAqBA,GAAExB,UAAvB,MAAiC,IAAjC,IAAiCyB,aAAjC,GAAiCA,EAAjC,GAAqC;AALrD,UADK;AAdN,QAAP;AAsBH,KAhCD;;AAmCA9C,IAAAA,6CAAA,eAAgB,oBAAC,MAAD,OAAhB,EAA4BnC,QAAQ,CAACmF,cAAT,CAAwB,MAAxB,CAA5B;;AACH;;AAED9J,KAAK;;;;;;;;;;;;;;;;;;;;;;;ACtEL;AACA;AACA;AACA;AAEA;AACA;AACA;AAsBc,MAAOsK,gBAAP,SAAgCF,4CAAhC,CAAuF;AACjGG,cAAYC,KAAZ,EAAkD;;;AAC9C,UAAMA,KAAN;AAGA,QAAIC,IAAJ;;AACA,QAAID,KAAK,CAACvI,eAAV,EAA2B;AACvBwI,UAAI,GAAGP,iDAAS,CAACM,KAAK,CAACvI,eAAP,EAAwB6D,OAAO,IAAIA,OAAO,GAAI;AAAE1C,aAAK,EAAE0C,OAAT;AAAkB4E,aAAK,EAAE;AAAzB,OAAJ,GAAuC,IAAjF,CAAhB;AAEA,UAAI,UAAI,CAACC,SAAL,MAAc,IAAd,IAAcjD,aAAd,GAAc,MAAd,GAAcA,GAAEtE,KAApB,EACIqH,IAAI,CAACE,SAAL,CAAevH,KAAf,GAAuB+G,6CAAM,CAACM,IAAI,CAACE,SAAL,CAAevH,KAAhB,CAAN,CAA6BzC,MAA7B,CAAoC0J,yDAApC,CAAvB;AAEJ,UAAI,UAAI,CAACO,OAAL,MAAY,IAAZ,IAAYhD,aAAZ,GAAY,MAAZ,GAAYA,GAAExE,KAAlB,EACIqH,IAAI,CAACG,OAAL,CAAaxH,KAAb,GAAqB+G,6CAAM,CAACM,IAAI,CAACG,OAAL,CAAaxH,KAAd,CAAN,CAA2BzC,MAA3B,CAAkC0J,yDAAlC,CAArB;AACP,KARD,MASK;AACDI,UAAI,GAAG;AACHE,iBAAS,EAAEH,KAAK,CAACK,SAAN,GAAkB;AAAEzH,eAAK,EAAE+G,6CAAM,CAACK,KAAK,CAACK,SAAN,CAAgB,CAAhB,CAAD,CAAN,CAA2BlK,MAA3B,CAAkC0J,yDAAlC,CAAT;AAAyDK,eAAK,EAAE;AAAhE,SAAlB,GAA2F,IADnG;AAEHE,eAAO,EAAEJ,KAAK,CAACK,SAAN,GAAkB;AAAEzH,eAAK,EAAE+G,6CAAM,CAACK,KAAK,CAACK,SAAN,CAAgB,CAAhB,CAAD,CAAN,CAA2BlK,MAA3B,CAAkC0J,yDAAlC,CAAT;AAAyDK,eAAK,EAAE;AAAhE,SAAlB,GAA2F,IAFjG;AAGHI,kBAAU,EAAE;AAHT,OAAP;AAKH;;AAED,SAAKzH,KAAL,GAAa;AACToH,UAAI,EAAEA;AADG,KAAb;AAIA,SAAKM,aAAL,GAAqB,KAAKA,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAArB;AACA,SAAKC,eAAL,GAAuB,KAAKA,eAAL,CAAqBD,IAArB,CAA0B,IAA1B,CAAvB;AACA,SAAKE,aAAL,GAAqB,KAAKA,aAAL,CAAmBF,IAAnB,CAAwB,IAAxB,CAArB;AACA,SAAKG,eAAL,GAAuB,KAAKA,eAAL,CAAqBH,IAArB,CAA0B,IAA1B,CAAvB;AACH;;AAEDD,eAAa,CAACK,IAAD,EAA+B;AACxC,SAAKC,QAAL,CAAchI,KAAK,KAAK;AACpBoH,UAAI,kCACGpH,KAAK,CAACoH,IADT,GACa;AACb,SAACW,IAAI,CAACE,IAAN,GAAa;AACTlI,eAAK,EAAEgI,IAAI,CAAChI,KADH;AAETsH,eAAK,EAAEU,IAAI,CAACV;AAFH;AADA,OADb;AADgB,KAAL,CAAnB;AASH;;AAEDO,iBAAe;;;AACX,qBAAKT,KAAL,EAAWS,eAAX,MAA0B,IAA1B,IAA0BrD,aAA1B,GAA0B,MAA1B,GAA0BA,WAA1B;AACH;;AAEDuD,iBAAe;;;AACX,qBAAKX,KAAL,EAAWW,eAAX,MAA0B,IAA1B,IAA0BvD,aAA1B,GAA0B,MAA1B,GAA0BA,YAAG,KAAK4C,KAAL,CAAWvI,eAAd,CAA1B;AACH;;AAEDiJ,eAAa;;;AAET,SAAK,MAAME,IAAX,IAAmB,KAAK/H,KAAL,CAAWoH,IAA9B,EAAoC;AAChC,YAAMrH,KAAK,GAAG,KAAKC,KAAL,CAAWoH,IAAX,CAAgBW,IAAhB,CAAd;AACA,UAAIhI,KAAK,KAAKnE,SAAd,EAAyB;;AAEzB,UAAImE,KAAK,KAAK,IAAV,IAAkB,CAACA,KAAK,CAACsH,KAA7B,EAAoC;AAChC;AACH;AACJ;;AAED,UAAMzI,eAAe,GAAGiI,iDAAS,CAAC,KAAK7G,KAAL,CAAWoH,IAAZ,EAAkBW,IAAI,IAAIA,IAAI,GAAGA,IAAI,CAAChI,KAAR,GAAgBnE,SAA9C,CAAjC;AACAgD,mBAAe,CAAC0I,SAAhB,GAA4BR,iDAAA,CAAWlI,eAAe,CAAC0I,SAA3B,EAAsCN,yDAAtC,EAAmDmB,MAAnD,EAA5B;AACAvJ,mBAAe,CAAC2I,OAAhB,GAA0BT,iDAAA,CAAWlI,eAAe,CAAC2I,OAA3B,EAAoCP,yDAApC,EAAiDmB,MAAjD,EAA1B;AAGA,QAAI,KAAKhB,KAAL,CAAWvI,eAAf,EACI,iBAAKuI,KAAL,EAAWiB,eAAX,MAA0B,IAA1B,IAA0B7D,aAA1B,GAA0B,MAA1B,GAA0BA,YAAG3F,eAAH,CAA1B,CADJ,KAGI,iBAAKuI,KAAL,EAAWkB,eAAX,MAA0B,IAA1B,IAA0B5C,aAA1B,GAA0B,MAA1B,GAA0BA,YAAG7G,eAAH,CAA1B;AACP;;AAED4H,QAAM;;;AACF,UAAMa,KAAK,GAAGiB,MAAM,CAACC,IAAP,CAAY,KAAKvI,KAAL,CAAWoH,IAAvB,EAA6BoB,KAA7B,CAAmCC,GAAG,IAAG;AAAA;;AAAC,kBAAKzI,KAAL,CAAWoH,IAAX,CAAgBqB,GAAhB,MAAyB7M,SAAzB,KAAsC,WAAKoE,KAAL,CAAWoH,IAAX,CAAgBqB,GAAhB,OAAoB,IAApB,IAAoBpE,aAApB,GAAoB,MAApB,GAAoBA,GAAEgD,KAA5D;AAAiE,KAA3G,CAAd;AAEA,wBACI;AAAK,eAAS,EAAC;AAAf,OACK,KAAKF,KAAL,CAAWvI,eAAX,iBAA8B;AAAQ,eAAS,EAAC,4BAAlB;AAA+C,aAAO,EAAE,KAAKkJ;AAA7D,oBAC3B,oBAAC,2EAAD;AAAiB,UAAI,EAAEpB,wEAAUA;AAAjC,MAD2B,UAE1BgC,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,aAAzB,CAF0B,CADnC,eAKI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAI,eAAS,EAAC;AAAd,OAAkC,KAAKzB,KAAL,CAAWvI,eAAX,GAA6B,kBAA7B,GAAkD,kBAApF,CADJ,eAEI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,+DAAD;AAAkB,iBAAW,EAAE,YAA/B;AAA6C,gBAAU,EAAEoI,yDAAzD;AACI,kBAAY,EAAE,WAAKhH,KAAL,CAAWoH,IAAX,CAAgBE,SAAhB,MAAyB,IAAzB,IAAyBjD,aAAzB,GAAyB,MAAzB,GAAyBA,GAAEtE,KAD7C;AAEI,UAAI,EAAE,WAFV;AAEuB,cAAQ,EAAE,IAFjC;AAEuC,cAAQ,MAF/C;AAGI,oBAAc,EAAE,KAAK2H,aAHzB;AAGwC,cAAQ;AAHhD,MADJ,CADJ,eAOI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,+DAAD;AAAkB,iBAAW,EAAE,WAA/B;AAA4C,gBAAU,EAAEV,yDAAxD;AACI,kBAAY,EAAE,WAAKhH,KAAL,CAAWoH,IAAX,CAAgBG,OAAhB,MAAuB,IAAvB,IAAuBhD,aAAvB,GAAuB,MAAvB,GAAuBA,GAAExE,KAD3C;AAEI,UAAI,EAAE,SAFV;AAEqB,cAAQ,EAAE,IAF/B;AAEqC,cAAQ,MAF7C;AAGI,oBAAc,EAAE,KAAK2H,aAHzB;AAGwC,cAAQ;AAHhD,MADJ,CAPJ,CAFJ,eAgBI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,mEAAD;AAAsB,iBAAW,EAAE,WAAnC;AACI,kBAAY,EAAE,WAAK1H,KAAL,CAAWoH,IAAX,CAAgBK,UAAhB,MAA0B,IAA1B,IAA0BvC,aAA1B,GAA0B,MAA1B,GAA0BA,GAAEnF,KAD9C;AACqD,UAAI,EAAE,CAD3D;AAEI,UAAI,EAAE,YAFV;AAEwB,cAAQ,EAAE,IAFlC;AAEwC,cAAQ,MAFhD;AAGI,oBAAc,EAAE,KAAK2H,aAHzB;AAGwC,cAAQ;AAHhD,MADJ,CAhBJ,eAsBI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAQ,eAAS,EAAC,6BAAlB;AAAgD,cAAQ,EAAE,CAACL,KAA3D;AAAkE,aAAO,EAAEA,KAAK,GAAG,KAAKQ,aAAR,GAAwBjM;AAAxG,OACK8M,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,SAAzB,CADL,CADJ,eAII;AAAQ,eAAS,EAAC,6BAAlB;AAAgD,aAAO,EAAE,KAAKhB;AAA9D,OACKc,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,WAAzB,CADL,CAJJ,CAtBJ,CADJ,CALJ,CADJ;AAyCH;;AAvHgG;;;;;;;;;;;;;;;AC7BrG;AACA;AAEA;AACA;;AAWA,MAAMK,eAAN,SAA8BH,gDAA9B,CAAiE;AAC7D5B,cAAYC,KAAZ,EAAiD;AAC7C,UAAMA,KAAN;AAEA,SAAK+B,OAAL,GAAe,KAAKA,OAAL,CAAavB,IAAb,CAAkB,IAAlB,CAAf;AACA,SAAKwB,YAAL,GAAoB,KAAKA,YAAL,CAAkBxB,IAAlB,CAAuB,IAAvB,CAApB;AACH;;AAEDwB,cAAY,CAACC,CAAD,EAAoB;AAC5BA,KAAC,CAACC,cAAF;AACAD,KAAC,CAACE,eAAF;AACH;;AAEDJ,SAAO;;;AACH,qBAAK/B,KAAL,EAAWoC,wBAAX,MAAmC,IAAnC,IAAmChF,aAAnC,GAAmC,MAAnC,GAAmCA,YAAG,KAAK4C,KAAL,CAAWpH,KAAd,CAAnC;AACH;;AAEDyG,QAAM;AACF,UAAM;AAAEgD,aAAF;AAAWzJ;AAAX,QAAqB,KAAKoH,KAAhC;AACA,wBACI,oBAAC,uDAAD;AACI,eAAS,EAAC,KADd;AAEI,WAAK,EAAE;AAAEsC,YAAI,EAAE,CAAR;AAAWC,YAAI,EAAE;AAAjB,OAFX;AAGI,aAAO,eAAE,oBAAC,uDAAD;AAAS,UAAE,+BAAwB3J,KAAK,CAAChB,EAA9B,CAAX;AAA+C,iBAAS,EAAC;AAAzD,SAA+EgB,KAAK,CAAC0H,UAArF;AAHb,oBAKI;AAAG,eAAS,sBAAe+B,OAAO,CAACG,CAAR,GAAY,EAA3B,cAAiCH,OAAO,CAACI,CAAR,GAAY,EAA7C,MAAZ;AAAgE,iBAAW,EAAE,KAAKT,YAAlF;AAAgG,aAAO,EAAE,KAAKD;AAA9G,oBACI,oBAAC,2EAAD;AAAiB,eAAS,EAAE,iBAA5B;AAA+C,WAAK,EAAE,EAAtD;AAA0D,YAAM,EAAE,EAAlE;AAAsE,UAAI,EAAEL,oEAAMA;AAAlF,MADJ,CALJ,CADJ;AAWH;;AA9B4D;;AAiCjE,+DAAeI,eAAf;;;;;;;;;;;;;;AC/CA;AACA;AACA;AAEA;;AAEA,SAASgB,kBAAT,CAA4B9C,KAA5B,EAOC;;;AACG,QAAMjM,IAAI,GAAG,WAAK,CAACgP,UAAN,MAAgB,IAAhB,IAAgB7F,aAAhB,GAAgB,MAAhB,GAAgBA,GAAG8C,KAAK,CAACpH,KAAT,CAA7B;AAEA,sBACI;AAAe,KAAC,EAAEoH,KAAK,CAACwC,CAAN,GAAU,EAA5B;AAAgC,KAAC,EAAExC,KAAK,CAACyC,CAAN,GAAU,EAA7C;AAAiD,SAAK,EAAE,CAAxD;AAA2D,UAAM,EAAE,CAAnE;AAAsE,YAAQ,EAAE;AAAhF,kBACI;AAAK,aAAS,gCAAyBzC,KAAK,CAACgD,kBAAN,GAA2B,iBAA3B,GAA+C,EAAxE,CAAd;AACI,WAAO,EAAEjP,IAAI,IAAIiM,KAAK,CAACgD,kBAAd,GAAmC,MAAK;AAAA;;AAAC,wBAAK,CAACC,uBAAN,MAA6B,IAA7B,IAA6B/F,aAA7B,GAA6B,MAA7B,GAA6BA,eAAGnJ,IAAH,CAA7B;AAAqC,KAA9E,GAAiFU,SAD9F;AAII,SAAK,EAAC;AAJV,kBAKI,oBAAC,2EAAD;AAAiB,QAAI,EAAEkO,0EAAvB;AAAmC,SAAK,EAAE,EAA1C;AAA8C,UAAM,EAAE;AAAtD,IALJ,uBAMU,kCACFpB,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyBN,MAAM,CAAC3I,MAAP,CAAckK,6DAAd,EAA+B,UAAI,SAAJ,QAAI,WAAJ,GAAI,MAAJ,OAAI,CAAEQ,eAAN,MAAqB,IAArB,IAAqB9F,aAArB,GAAqBA,EAArB,GAAyB,MAAxD,CAAzB,CADE,CANV,UASK,KAAI,SAAJ,QAAI,WAAJ,GAAI,MAAJ,OAAI,CAAE+F,cAAN,iBAAwB;AAAM,aAAS,EAAC;AAAhB,kBACrB,oBAAC,2EAAD;AAAiB,QAAI,EAAEN,4EAAvB;AAAuC,SAAK,EAAE,EAA9C;AAAkD,UAAM,EAAE;AAA1D,IADqB,SAAxB,GAEUpO,SAXf,eAYI,oBAAC,2EAAD;AAAiB,QAAI,EAAEmO,2EAAvB;AAAoC,SAAK,EAAE,EAA3C;AAA+C,UAAM,EAAE;AAAvD,IAZJ,CADJ,CADJ;AAkBH;;AAED,+DAAeE,kBAAf;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AAEA;AACA;AACA;AA4Bc,MAAOO,gBAAP,SAAgCzD,4CAAhC,CAAuF;AAEjGG,cAAYC,KAAZ,EAAkD;;;AAC9C,UAAMA,KAAN;AAGA,QAAIC,IAAJ;;AACA,QAAID,KAAK,CAAC/I,UAAV,EAAsB;AAClBgJ,UAAI,GAAGP,iDAAS,CAACM,KAAK,CAAC/I,UAAP,EAAmBqE,OAAO,IAAIA,OAAO,GAAI;AAAE1C,aAAK,EAAE0C,OAAT;AAAkB4E,aAAK,EAAE;AAAzB,OAAJ,GAAuC,IAA5E,CAAhB;AAEA,UAAI,UAAI,CAACoD,UAAL,MAAe,IAAf,IAAepG,aAAf,GAAe,MAAf,GAAeA,GAAEtE,KAArB,EACIqH,IAAI,CAACqD,UAAL,CAAgB1K,KAAhB,GAAwB+G,6CAAM,CAACM,IAAI,CAACqD,UAAL,CAAgB1K,KAAjB,CAAN,CAA8BzC,MAA9B,CAAqC0J,yDAArC,CAAxB;AAEJ,UAAI,UAAI,CAAC0D,SAAL,MAAc,IAAd,IAAcnG,aAAd,GAAc,MAAd,GAAcA,GAAExE,KAApB,EACIqH,IAAI,CAACsD,SAAL,CAAe3K,KAAf,GAAuB+G,6CAAM,CAACM,IAAI,CAACsD,SAAL,CAAe3K,KAAhB,CAAN,CAA6BzC,MAA7B,CAAoC0J,yDAApC,CAAvB;AAEJ,UAAI,UAAI,CAAC2D,iBAAL,MAAsB,IAAtB,IAAsBzF,aAAtB,GAAsB,MAAtB,GAAsBA,GAAEnF,KAA5B,EACIqH,IAAI,CAACuD,iBAAL,CAAuB5K,KAAvB,GAA+B+G,6CAAM,CAACM,IAAI,CAACuD,iBAAL,CAAuB5K,KAAxB,CAAN,CAAqCzC,MAArC,CAA4CiN,6DAA5C,CAA/B;AACP,KAXD,MAYK;AACDnD,UAAI,GAAG;AACHqD,kBAAU,EAAEtD,KAAK,CAACK,SAAN,GAAkB;AAAEzH,eAAK,EAAE+G,6CAAM,CAACK,KAAK,CAACK,SAAN,CAAgB,CAAhB,CAAD,CAAN,CAA2BlK,MAA3B,CAAkC0J,yDAAlC,CAAT;AAAyDK,eAAK,EAAE;AAAhE,SAAlB,GAA2F,IADpG;AAEHqD,iBAAS,EAAEvD,KAAK,CAACK,SAAN,GAAkB;AAAEzH,eAAK,EAAE+G,6CAAM,CAACK,KAAK,CAACK,SAAN,CAAgB,CAAhB,CAAD,CAAN,CAA2BlK,MAA3B,CAAkC0J,yDAAlC,CAAT;AAAyDK,eAAK,EAAE;AAAhE,SAAlB,GAA2F,IAFnG;AAGHsD,yBAAiB,EAAE,IAHhB;AAIHC,sBAAc,EAAE,IAJb;AAKHP,uBAAe,EAAE,IALd;AAMHQ,wBAAgB,EAAE,IANf;AAOHC,6BAAqB,EAAE,IAPpB;AAQHC,kBAAU,EAAE;AART,OAAP;AAUH;;AAED,SAAK/K,KAAL,GAAa;AACToH,UAAI,EAAEA;AADG,KAAb;AAIA,SAAKM,aAAL,GAAqB,KAAKA,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAArB;AACA,SAAKC,eAAL,GAAuB,KAAKA,eAAL,CAAqBD,IAArB,CAA0B,IAA1B,CAAvB;AACA,SAAKE,aAAL,GAAqB,KAAKA,aAAL,CAAmBF,IAAnB,CAAwB,IAAxB,CAArB;AACH;;AAEDD,eAAa,CAACK,IAAD,EAA+B;AACxC,SAAKC,QAAL,CAAchI,KAAK,KAAK;AACpBoH,UAAI,kCACGpH,KAAK,CAACoH,IADT,GACa;AACb,SAACW,IAAI,CAACE,IAAN,GAAa;AACTlI,eAAK,EAAEgI,IAAI,CAAChI,KADH;AAETsH,eAAK,EAAEU,IAAI,CAACV;AAFH;AADA,OADb;AADgB,KAAL,CAAnB;AASH;;AAEDO,iBAAe;;;AACX,qBAAKT,KAAL,EAAWS,eAAX,MAA0B,IAA1B,IAA0BrD,aAA1B,GAA0B,MAA1B,GAA0BA,WAA1B;AACH;;AAEDsD,eAAa;;;AAET,SAAK,MAAME,IAAX,IAAmB,KAAK/H,KAAL,CAAWoH,IAA9B,EAAoC;AAChC,YAAMrH,KAAK,GAAG,KAAKC,KAAL,CAAWoH,IAAX,CAAgBW,IAAhB,CAAd;AACA,UAAI,CAAChI,KAAL,EAAY;;AAEZ,UAAI,CAACA,KAAK,CAACsH,KAAX,EAAkB;AACd;AACH;AACJ;;AAED,UAAMjJ,UAAU,GAAGyI,iDAAS,CAAC,KAAK7G,KAAL,CAAWoH,IAAZ,EAAkBW,IAAI,IAAIA,IAAI,GAAGA,IAAI,CAAChI,KAAR,GAAgBnE,SAA9C,CAA5B;AACAwC,cAAU,CAACqM,UAAX,GAAwB3D,iDAAA,CAAW1I,UAAU,CAACqM,UAAtB,EAAkCzD,yDAAlC,EAA+CmB,MAA/C,EAAxB;AACA/J,cAAU,CAACsM,SAAX,GAAuB5D,iDAAA,CAAW1I,UAAU,CAACsM,SAAtB,EAAiC1D,yDAAjC,EAA8CmB,MAA9C,EAAvB;AACA/J,cAAU,CAACuM,iBAAX,GAA+B7D,iDAAA,CAAW1I,UAAU,CAACuM,iBAAtB,EAAyCJ,6DAAzC,EAA0DpC,MAA1D,EAA/B;AAGA,QAAI,KAAKhB,KAAL,CAAW/I,UAAf,EACI,iBAAK+I,KAAL,EAAWiB,eAAX,MAA0B,IAA1B,IAA0B7D,aAA1B,GAA0B,MAA1B,GAA0BA,YAAGnG,UAAH,CAA1B,CADJ,KAGI,iBAAK+I,KAAL,EAAWkB,eAAX,MAA0B,IAA1B,IAA0B5C,aAA1B,GAA0B,MAA1B,GAA0BA,YAAGrH,UAAH,CAA1B;AACP;;AAEDoI,QAAM;;;AACF,UAAMa,KAAK,GAAGiB,MAAM,CAACC,IAAP,CAAY,KAAKvI,KAAL,CAAWoH,IAAvB,EAA6BoB,KAA7B,CAAmCC,GAAG,IAAG;AAAA;;AAAC,cAAC,KAAKzI,KAAL,CAAWoH,IAAX,CAAgBqB,GAAhB,CAAD,KAAyB,WAAKzI,KAAL,CAAWoH,IAAX,CAAgBqB,GAAhB,OAAoB,IAApB,IAAoBpE,aAApB,GAAoB,MAApB,GAAoBA,GAAEgD,KAA/C;AAAoD,KAA9F,CAAd;AAEA,wBACI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAI,eAAS,EAAC;AAAd,OAAkC,KAAKF,KAAL,CAAW/I,UAAX,GAAwB,oBAAxB,GAA+C,oBAAjF,CADJ,eAEI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,+DAAD;AAAkB,iBAAW,EAAE,YAA/B;AAA6C,gBAAU,EAAE4I,yDAAzD;AACI,kBAAY,EAAE,WAAKhH,KAAL,CAAWoH,IAAX,CAAgBqD,UAAhB,MAA0B,IAA1B,IAA0BpG,aAA1B,GAA0B,MAA1B,GAA0BA,GAAEtE,KAD9C;AAEI,UAAI,EAAE,YAFV;AAEwB,cAAQ,EAAE,CAFlC;AAEqC,cAAQ,EAAE,IAF/C;AAEqD,iBAAW,EAAE,IAFlE;AAEwE,cAAQ,MAFhF;AAGI,oBAAc,EAAE,KAAK2H;AAHzB,MADJ,CADJ,eAOI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,+DAAD;AAAkB,iBAAW,EAAE,WAA/B;AAA4C,gBAAU,EAAEV,yDAAxD;AACI,kBAAY,EAAE,WAAKhH,KAAL,CAAWoH,IAAX,CAAgBsD,SAAhB,MAAyB,IAAzB,IAAyBnG,aAAzB,GAAyB,MAAzB,GAAyBA,GAAExE,KAD7C;AAEI,UAAI,EAAE,WAFV;AAEuB,cAAQ,EAAE,CAFjC;AAEoC,cAAQ,EAAE,IAF9C;AAEoD,iBAAW,EAAE,IAFjE;AAEuE,cAAQ,MAF/E;AAGI,oBAAc,EAAE,KAAK2H;AAHzB,MADJ,CAPJ,eAaI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,+DAAD;AAAkB,iBAAW,EAAE,oBAA/B;AAAqD,gBAAU,EAAEV,yDAAjE;AAA8E,iBAAW,EAAE,OAA3F;AAAoG,cAAQ,EAAE,SAA9G;AACI,kBAAY,EAAE,WAAKhH,KAAL,CAAWoH,IAAX,CAAgBuD,iBAAhB,MAAiC,IAAjC,IAAiCzF,aAAjC,GAAiC,MAAjC,GAAiCA,GAAEnF,KADrD;AAEI,UAAI,EAAE,mBAFV;AAE+B,cAAQ,EAAE,CAFzC;AAE4C,cAAQ,EAAE,IAFtD;AAE4D,iBAAW,EAAE,IAFzE;AAE+E,cAAQ,MAFvF;AAGI,oBAAc,EAAE,KAAK2H;AAHzB,MADJ,CAbJ,eAmBI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,iEAAD;AAAoB,iBAAW,EAAE,gBAAjC;AACI,oBAAc,EAAE,WAAK1H,KAAL,CAAWoH,IAAX,CAAgBwD,cAAhB,MAA8B,IAA9B,IAA8BnF,aAA9B,GAA8B,MAA9B,GAA8BA,GAAE1F,KAAF,CAAQiL,QAAR,EADlD;AAEI,aAAO,EAAE;AACL,WAAG,gBADE;AAEL,WAAG;AAFE,OAFb;AAMI,UAAI,EAAE,gBANV;AAM4B,cAAQ,EAAE,CANtC;AAMyC,cAAQ,EAAE,IANnD;AAMyD,iBAAW,EAAE,IANtE;AAM4E,cAAQ,MANpF;AAOI,iBAAW,EAAE,YAPjB;AAQI,oBAAc,EAAE,KAAKtD;AARzB,MADJ,CAnBJ,eA8BI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,iEAAD;AAAoB,iBAAW,EAAE,kBAAjC;AACI,oBAAc,EAAE,WAAK1H,KAAL,CAAWoH,IAAX,CAAgBiD,eAAhB,MAA+B,IAA/B,IAA+B3E,aAA/B,GAA+B,MAA/B,GAA+BA,GAAE3F,KAAF,CAAQiL,QAAR,EADnD;AAEI,aAAO,EAAE;AACL,WAAGnB,sEADE;AAEL,WAAGA,uEAAyBqB;AAFvB,OAFb;AAMI,UAAI,EAAE,iBANV;AAM6B,cAAQ,EAAE,CANvC;AAM0C,cAAQ,EAAE,IANpD;AAM0D,iBAAW,EAAE,IANvE;AAM6E,cAAQ,MANrF;AAOI,iBAAW,EAAE,YAPjB;AAQI,oBAAc,EAAE,KAAKxD;AARzB,MADJ,CA9BJ,eAyCI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,+DAAD;AAAkB,iBAAW,EAAE,2BAA/B;AACI,kBAAY,EAAE,WAAK1H,KAAL,CAAWoH,IAAX,CAAgByD,gBAAhB,MAAgC,IAAhC,IAAgClF,aAAhC,GAAgC,MAAhC,GAAgCA,GAAE5F,KADpD;AAEI,UAAI,EAAE,kBAFV;AAE8B,cAAQ,EAAE,CAFxC;AAE2C,cAAQ,EAAE,IAFrD;AAE2D,iBAAW,EAAE,IAFxE;AAE8E,cAAQ,MAFtF;AAGI,oBAAc,EAAE,KAAK2H;AAHzB,MADJ,CAzCJ,eA+CI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,iEAAD;AAAoB,iBAAW,EAAE,YAAjC;AACI,oBAAc,EAAE,WAAK1H,KAAL,CAAWoH,IAAX,CAAgB2D,UAAhB,MAA0B,IAA1B,IAA0BnF,aAA1B,GAA0B,MAA1B,GAA0BA,GAAE7F,KAAF,CAAQiL,QAAR,EAD9C;AAEI,aAAO,EAAE;AACL,WAAG;AADE,OAFb;AAKI,UAAI,EAAE,YALV;AAKwB,cAAQ,EAAE,CALlC;AAKqC,cAAQ,EAAE,IAL/C;AAKqD,iBAAW,EAAE,IALlE;AAKwE,cAAQ,MALhF;AAMI,iBAAW,EAAE,YANjB;AAOI,oBAAc,EAAE,KAAKtD;AAPzB,MADJ,CA/CJ,eAyDI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,iEAAD;AAAoB,iBAAW,EAAE,uBAAjC;AACI,oBAAc,EAAE,WAAK1H,KAAL,CAAWoH,IAAX,CAAgB0D,qBAAhB,MAAqC,IAArC,IAAqCjF,aAArC,GAAqC,MAArC,GAAqCA,GAAE9F,KAAF,CAAQiL,QAAR,EADzD;AAEI,aAAO,EAAE;AACL,WAAG,oBADE;AAEL,WAAG,iCAFE;AAGL,WAAG,oBAHE;AAIL,WAAG,gDAJE;AAKL,WAAG,wBALE;AAML,WAAG;AANE,OAFb;AAUI,UAAI,EAAE,uBAVV;AAUmC,cAAQ,EAAE,CAV7C;AAUgD,cAAQ,EAAE,IAV1D;AAUgE,iBAAW,EAAE,IAV7E;AAUmF,cAAQ,MAV3F;AAWI,iBAAW,EAAE,YAXjB;AAYI,oBAAc,EAAE,KAAKtD;AAZzB,MADJ,CAzDJ,CAFJ,eA2EI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAQ,eAAS,EAAC,6BAAlB;AAAgD,cAAQ,EAAE,CAACL,KAA3D;AAAkE,aAAO,EAAEA,KAAK,GAAG,KAAKQ,aAAR,GAAwBjM;AAAxG,OACK8M,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,SAAzB,CADL,CADJ,eAII;AAAQ,eAAS,EAAC,6BAAlB;AAAgD,aAAO,EAAE,KAAKhB;AAA9D,OACKc,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,WAAzB,CADL,CAJJ,CA3EJ,CADJ;AAsFH;;AAzKgG;;;;;;;;;;;;;;;;;;;;;;;;ACjCrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA,MAAM2C,mBAAmB,GAAG,QAA5B;AAEM,MAAOC,UAAP,SAA0BzE,4CAA1B,CAAqE;AACvEG,cAAYC,KAAZ,EAA4C;AACxC,UAAMA,KAAN;AAEA,UAAMsE,IAAI,GAAGC,IAAI,CAACC,KAAL,CAAW,CAACxE,KAAK,CAACyE,YAAN,GAAqBzE,KAAK,CAAC0E,YAA5B,IAA4CN,mBAAvD,CAAb;AAEA,SAAKvL,KAAL,GAAa;AACT8L,SAAG,EAAE3E,KAAK,CAAC0E,YADF;AAETE,SAAG,EAAE5E,KAAK,CAACyE,YAFF;AAGTH,UAAI,EAAEA,IAHG;AAITO,kBAAY,EAAE,CAAC,CAAD,EAAIP,IAAJ,CAJL;AAKTQ,cAAQ,EAAE;AALD,KAAb;AAOH;;AAEDC,oBAAkB,CAACC,SAAD,EAAuCC,SAAvC,EAA2E;;;AACzF,QAAI,KAAKjF,KAAL,CAAWkF,OAAX,CAAmB,CAAnB,KAAyBF,SAAS,CAACE,OAAV,CAAkB,CAAlB,CAAzB,IAAiD,KAAKlF,KAAL,CAAWkF,OAAX,CAAmB,CAAnB,KAAyBF,SAAS,CAACE,OAAV,CAAkB,CAAlB,CAA9E,EAAoG;AAChG,YAAMP,GAAG,GAAGJ,IAAI,CAACC,KAAL,CAAW,CAAC,KAAKxE,KAAL,CAAWkF,OAAX,CAAmB,CAAnB,IAAwB,KAAKlF,KAAL,CAAW0E,YAApC,IAAoDN,mBAA/D,CAAZ;AACA,YAAMQ,GAAG,GAAGL,IAAI,CAACC,KAAL,CAAW,CAAC,KAAKxE,KAAL,CAAWkF,OAAX,CAAmB,CAAnB,IAAwB,KAAKlF,KAAL,CAAW0E,YAApC,IAAoDN,mBAA/D,CAAZ;;AAEA,UAAI,KAAKvL,KAAL,CAAWgM,YAAX,CAAwB,CAAxB,KAA8BF,GAA9B,IAAqC,KAAK9L,KAAL,CAAWgM,YAAX,CAAwB,CAAxB,KAA8BD,GAAvE,EAA4E;AACxE,aAAK/D,QAAL,CAAc,OAAO;AACjBiE,kBAAQ,EAAE,KAAKjM,KAAL,CAAWiM,QAAX,GAAsB,CADf;AAEjBD,sBAAY,EAAE,CAACF,GAAD,EAAMC,GAAN;AAFG,SAAP,CAAd;AAIH;AACJ;;AAED,QAAI,CAACX,+CAAO,CAAC,KAAKpL,KAAL,CAAWgM,YAAZ,EAA0BI,SAAS,CAACJ,YAApC,CAAZ,EAA+D;AAC3D,YAAMrM,MAAM,GAAG,KAAKK,KAAL,CAAWgM,YAA1B;;AAEA,UAAIrM,MAAM,CAAC,CAAD,CAAN,IAAa,CAAb,IAAkBA,MAAM,CAAC,CAAD,CAAN,IAAa,KAAKK,KAAL,CAAWyL,IAA9C,EAAoD;AAChD,cAAMK,GAAG,GAAG,KAAK3E,KAAL,CAAW0E,YAAX,GAA2BlM,MAAM,CAAC,CAAD,CAAN,GAAY4L,mBAAnD;AACA,cAAMQ,GAAG,GAAG,KAAK5E,KAAL,CAAW0E,YAAX,GAA2BlM,MAAM,CAAC,CAAD,CAAN,GAAY4L,mBAAnD;AAEA,yBAAKpE,KAAL,EAAWmF,kBAAX,MAA6B,IAA7B,IAA6B/H,aAA7B,GAA6B,MAA7B,GAA6BA,YAAGuH,GAAH,EAAQC,GAAR,CAA7B;AACH,OALD,MAKO;AACH,yBAAK5E,KAAL,EAAWoF,gBAAX,MAA2B,IAA3B,IAA2B9G,aAA3B,GAA2B,MAA3B,GAA2BA,WAA3B;AACH;AACJ;AACJ;;AAEDe,QAAM;AAEF,UAAMgG,KAAK,GAAGrB,yEAAA,CAA+BA,uDAA/B,CAAd;AACA,UAAMuB,SAAS,gBACX,oBAAC,KAAD;AAAO,SAAG,EAAE,KAAK1M,KAAL,CAAWiM,QAAvB;AAAiC,kBAAY,EAAE,KAAKjM,KAAL,CAAWgM,YAA1D;AAAwE,cAAQ,MAAhF;AACI,SAAG,EAAE,CADT;AACY,SAAG,EAAE,KAAKhM,KAAL,CAAWyL,IAD5B;AAEI,mBAAa,EAAG1L,KAAD,IAAW,KAAKiI,QAAL,CAAc;AAAEgE,oBAAY,EAAEjM;AAAhB,OAAd,CAF9B;AAGI,kBAAY,EAAGA,KAAD,IAAmB+G,6CAAM,CAAC,KAAK9G,KAAL,CAAW8L,GAAZ,CAAN,CAAuBa,GAAvB,CAA2B5M,KAA3B,EAAkC,MAAlC,EAA0CzC,MAA1C,CAAiD,aAAjD;AAHrC,MADJ;AAOA,wBACI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE+N,6EAAvB;AAAwC,UAAI,EAAC;AAA7C,MADJ,CADJ,eAKI;AAAK,eAAS,EAAC;AAAf,OACKqB,SADL,CALJ,eASI,oBAAC,uDAAD;AAAgB,aAAO,EAAE,CAAC,OAAD,EAAU,OAAV,CAAzB;AACI,eAAS,EAAC,QADd;AAEI,aAAO,eACH,oBAAC,uDAAD;AAAS,UAAE,EAAC;AAAZ,SACKhE,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,YAAzB,CADL;AAHR,oBAQI;AAAG,eAAS,EAAC,uCAAb;AAAqD,UAAI,EAAC,GAA1D;AACI,aAAO,EAAE,MAAK;AAAA;;AAAC,gCAAKzB,KAAL,EAAWyF,OAAX,MAAkB,IAAlB,IAAkBrI,aAAlB,GAAkB,MAAlB,GAAkBA,WAAlB;AAAsB;AADzC,oBAGI,oBAAC,2EAAD;AAAiB,UAAI,EAAE+G,sEAAQA;AAA/B,MAHJ,CARJ,CATJ,CADJ;AA2BH;;AA/EsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3B3E;AACA;AACA;AAEA;AAEA;AACA;AACA;AAGA;AAIA;AAGA;AACA;AA8CM,MAAO0C,KAAP,SAAqBjH,4CAArB,CAAsD;AACxDG,cAAYC,KAAZ,EAAuC;AACnC,UAAMA,KAAN;AAEA,SAAKnH,KAAL,GAAa;AACTiO,iBAAW,EAAErS,SADJ;AAETsS,kBAAY,EAAEtS,SAFL;AAGTuS,YAAM,EAAE,KAHC;AAITC,gBAAU,EAAE,EAJH;AAKTC,iBAAW,EAAE,IALJ;AAMTC,iBAAW,EAAE,IANJ;AAOTC,gBAAU,EAAE,KAAKC,aAAL,CAAmBrH,KAAK,CAAC1L,IAAzB;AAPH,KAAb;AAUA,SAAKgT,UAAL,gBAAkB5B,gDAAS,EAA3B;AAEA,SAAK6B,IAAL,GAAY,KAAKA,IAAL,CAAU/G,IAAV,CAAe,IAAf,CAAZ;AACA,SAAKgH,KAAL,GAAa,KAAKA,KAAL,CAAWhH,IAAX,CAAgB,IAAhB,CAAb;AACA,SAAK2E,kBAAL,GAA0B,KAAKA,kBAAL,CAAwB3E,IAAxB,CAA6B,IAA7B,CAA1B;AACA,SAAK4E,gBAAL,GAAwB,KAAKA,gBAAL,CAAsB5E,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKiH,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBjH,IAAvB,CAA4B,IAA5B,CAAzB;AACA,SAAKyC,uBAAL,GAA+B,KAAKA,uBAAL,CAA6BzC,IAA7B,CAAkC,IAAlC,CAA/B;AACA,SAAK4B,wBAAL,GAAgC,KAAKA,wBAAL,CAA8B5B,IAA9B,CAAmC,IAAnC,CAAhC;AAGH;;AASD6G,eAAa,CAAC/S,IAAD,EAAkB;AAC3B,UAAMoT,IAAI,GAAG,CAAC,OAAD,EAAU,UAAV,EAAsB,KAAtB,EAA6B,QAA7B,CAAb;AACA,QAAI,CAAC,KAAK1H,KAAL,CAAW2H,QAAhB,EAA0B,OAAOD,IAAP;AAE1B,UAAME,SAAS,GAAG9B,4CAAI,CAACxR,IAAI,CAACuT,OAAL,CAAarF,CAAC,IAAIA,CAAC,CAAChK,MAApB,EAA4BqP,OAA5B,CAAoCrF,CAAC,IAAIrB,MAAM,CAACC,IAAP,CAAYoB,CAAZ,EAAetK,MAAf,CAAsB4P,CAAC,IAAI,OAAOtF,CAAC,CAACsF,CAAD,CAAR,IAAe,QAA1C,CAAzC,CAAD,CAAtB;AACA,WAAO,CAAC,OAAD,EAAU,UAAV,EAAsB,KAAtB,EAA6B,QAA7B,EAAuC5P,MAAvC,CAA8CsK,CAAC,IAAIoF,SAAS,CAACG,QAAV,CAAmBvF,CAAnB,CAAnD,CAAP;AACH;;AAEDwF,mBAAiB;;;AACb,SAAKC,MAAL,GAAc,IAAIC,MAAJ,WAAclL,QAAQ,CAACmL,QAAvB,6BAAyD;AAAEC,UAAI,EAAE;AAAR,KAAzD,CAAd;AACA,SAAKC,OAAL,GAAe3B,6CAAI,CAAc,KAAKuB,MAAnB,CAAnB;AAEA,SAAKI,OAAL,CAAaC,OAAb,CAAqB,KAAKtI,KAAL,CAAW1L,IAAhC,EAAsCiU,IAAtC,CAA2C,MAAK;AAC5C,YAAMjQ,MAAM,GAAG,KAAK0H,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,CAAf;AACA,WAAKuM,QAAL,CAAc;AACV2H,eAAO,EAAElQ,MAAM,CAACqM,GADN;AAEV8D,eAAO,EAAEnQ,MAAM,CAACsM,GAFN;AAGV8D,eAAO,EAAEpQ,MAAM,CAACqQ,GAHN;AAIVC,eAAO,EAAEtQ,MAAM,CAACuQ,GAJN;AAKVC,eAAO,EAAExQ,MAAM,CAACyQ,GALN;AAMVC,eAAO,EAAE1Q,MAAM,CAAC2Q,GANN;AAOVC,eAAO,EAAE5Q,MAAM,CAAC6Q,GAPN;AAQVlC,kBAAU,EAAE,KAAKmC,oBAAL;AARF,OAAd,EASG,MAAM,KAAK5B,KAAL,EATT;AAUH,KAZD;AAaA,SAAKa,OAAL,CAAagB,UAAb,CAAwB,WAAKrJ,KAAL,CAAWsJ,OAAX,MAAkB,IAAlB,IAAkBpM,aAAlB,GAAkBA,EAAlB,GAAsB,EAA9C;AACH;;AAED6H,oBAAkB,CAACC,SAAD,EAAkCC,SAAlC,EAAiE;AAC/E,QAAI,KAAKpM,KAAL,CAAWiO,WAAX,IAA0B7B,SAAS,CAAC6B,WAAxC,EAAqD;AACjD,UAAI,KAAKjO,KAAL,CAAWiO,WAAf,EAA4B;AACxB,aAAKyC,kBAAL,GAA0BC,WAAW,CAAC,MAAK;AACvC,cAAI,KAAK3Q,KAAL,CAAWkO,YAAX,IAA2B,KAAKA,YAApC,EAAkD;AAC9C,iBAAKlG,QAAL,CAAc;AAAEkG,0BAAY,EAAE,KAAKA;AAArB,aAAd;AACH;AACJ,SAJoC,EAIlC,GAJkC,CAArC;AAMH,OAPD,MAOO;AACH0C,qBAAa,CAAC,KAAKF,kBAAN,CAAb;AACA,aAAKA,kBAAL,GAA0B9U,SAA1B;AACA,aAAKsS,YAAL,GAAoBtS,SAApB;AACH;AACJ,KAbD,MAaO;AACH,UAAI,CAACwP,+CAAO,CAAC,KAAKjE,KAAL,CAAW1L,IAAZ,EAAkB0Q,SAAS,CAAC1Q,IAA5B,CAAZ,EAA+C;AAC3C,cAAM8S,UAAU,GAAG,KAAKC,aAAL,CAAmB,KAAKrH,KAAL,CAAW1L,IAA9B,CAAnB;AACA,aAAKuM,QAAL,CAAc;AAAEvM,cAAI,EAAE,EAAR;AAAY8S;AAAZ,SAAd,EAAwC,MAAK;;;AACzC,qBAAKiB,OAAL,MAAY,IAAZ,IAAYnL,aAAZ,GAAY,MAAZ,GAAYA,GAAEoL,OAAF,CAAU,KAAKtI,KAAL,CAAW1L,IAArB,EAA2BiU,IAA3B,CAAgC,MAAK;AAC7C,kBAAMjQ,MAAM,GAAG,KAAK0H,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,CAAf;AACA,kBAAM2S,UAAU,GAAG,KAAKmC,oBAAL,EAAnB;;AACA,iBAAK,MAAM9H,GAAX,IAAkBH,MAAM,CAACC,IAAP,CAAY,KAAKvI,KAAL,CAAWoO,UAAvB,CAAlB,EAAsD;AAClD,kBAAI,CAAC9F,MAAM,CAACC,IAAP,CAAY6F,UAAZ,EAAwBc,QAAxB,CAAiCzG,GAAjC,CAAL,EAA4C;;AAE5C,kBAAIA,GAAG,CAACoI,QAAJ,CAAa,OAAb,CAAJ,EAA2B;AACvBzC,0BAAU,CAAC3F,GAAD,CAAV,GAAkB,IAAlB;AACH,eAFD,MAEO;AACH2F,0BAAU,CAAC3F,GAAD,CAAV,GAAkB,KAAKzI,KAAL,CAAWoO,UAAX,CAAsB3F,GAAtB,CAAlB;AACH;AACJ;;AAED,iBAAKT,QAAL,CAAc;AACV2H,qBAAO,EAAElQ,MAAM,CAACqM,GADN;AAEV8D,qBAAO,EAAEnQ,MAAM,CAACsM,GAFN;AAGV8D,qBAAO,EAAEpQ,MAAM,CAACqQ,GAHN;AAIVC,qBAAO,EAAEtQ,MAAM,CAACuQ,GAJN;AAKVC,qBAAO,EAAExQ,MAAM,CAACyQ,GALN;AAMVC,qBAAO,EAAE1Q,MAAM,CAAC2Q,GANN;AAOVC,qBAAO,EAAE5Q,MAAM,CAAC6Q,GAPN;AAQVlC,wBAAU,EAAEA;AARF,aAAd,EASG,MAAM,KAAKO,KAAL,EATT;AAUH,WAvBW,CAAZ;AAwBH,SAzBD;AA0BH;;AACD,UAAI,CAACvD,+CAAO,CAAC,KAAKjE,KAAL,CAAWsJ,OAAZ,EAAqBtE,SAAS,CAACsE,OAA/B,CAAZ,EAAqD;AACjD,aAAKzI,QAAL,CAAc;AAAEyI,iBAAO,EAAE7U;AAAX,SAAd,EAAsC,MAAWkV,gDAAAA;;;AAC7C,gBAAM,WAAKtB,OAAL,MAAY,IAAZ,IAAYnL,aAAZ,GAAY,MAAZ,GAAYA,GAAEmM,UAAF,CAAa,WAAKrJ,KAAL,CAAWsJ,OAAX,MAAkB,IAAlB,IAAkBlM,aAAlB,GAAkBA,EAAlB,GAAsB,EAAnC,CAAlB;AACA,gBAAMkM,OAAO,GAAG,MAAM,WAAKjB,OAAL,MAAY,IAAZ,IAAYtK,aAAZ,GAAY,MAAZ,GAAYA,GAAE6L,iBAAF,EAAlC;AACA,eAAK/I,QAAL,CAAc;AAAEyI,mBAAO,EAAEA;AAAX,WAAd;AACH,SAJgD,CAAjD;AAKH;AACJ;AACJ;;AAEDO,sBAAoB;;;AAChB,QAAI,KAAKN,kBAAL,IAA2B9U,SAA/B,EAA0C;AACtCgV,mBAAa,CAAC,KAAKF,kBAAN,CAAb;AACA,WAAKA,kBAAL,GAA0B9U,SAA1B;AACH;;AAED,qBAAK4T,OAAL,MAAY,IAAZ,IAAYnL,aAAZ,GAAY,MAAZ,GAAYA,GAAGyJ,iDAAH,CAAZ,MAA4B,IAA5B,IAA4BvJ,aAA5B,GAA4B,MAA5B,GAA4BA,WAA5B;AACA,eAAK6K,MAAL,MAAW,IAAX,IAAWlK,aAAX,GAAW,MAAX,GAAWA,GAAE+L,SAAF,EAAX;AACH;;AAEDV,sBAAoB;AAChB,WAAOjI,MAAM,CAAC4I,MAAP,CAAc,EAAd,EAAkB,GAAG,CACxB,GAAGpE,6CAAK,CAAC,CAAD,EAAI,KAAK3F,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,EAAmBkE,MAAnB,CAA0BwR,MAA9B,CAAL,CACE9V,GADF,CACM0D,EAAE,qBAAcA,EAAd,MADR,EAEEiQ,OAFF,CAEUjQ,EAAE,IAAI,KAAKiB,KAAL,CAAWuO,UAAX,CAAsBlT,GAAtB,CAA0BC,CAAC,cAAOyD,EAAP,cAAazD,CAAb,CAA3B,CAFhB,CADqB,EAIxB,KAJwB,EAIjB,KAJiB,EAIV,KAJU,EAIH,KAJG,EAII,KAJJ,EAK1BD,GAL0B,CAKtBC,CAAC,KAAK;AAAE,OAACA,CAAD,GAAKA,CAAC,CAACuV,QAAF,CAAW,OAAX;AAAP,KAAL,CALqB,CAArB,CAAP;AAMH;;AAEKnC,MAAI,CAAC5C,GAAD,EAAcC,GAAd,EAAyB;;AAC/B,UAAI,CAAC,KAAKyD,OAAV,EAAmB;AAEnB,UAAIjH,IAAI,GAAG,KAAKpB,KAAL,CAAW1L,IAAX,CAAgBJ,GAAhB,CAAoBC,CAAC,IAAIA,CAAC,CAAC8V,IAA3B,CAAX;AACA,UAAIC,UAAU,GAAG9I,IAAI,CAAC+I,OAAL,CAAaxF,GAAb,CAAjB;;AACA,UAAIuF,UAAU,IAAI,CAAC,CAAnB,EAAsB;AAClBA,kBAAU,GAAG9I,IAAI,CAAC+I,OAAL,CAAavE,8CAAM,CAACxE,IAAD,EAAOjN,CAAC,IAAIoQ,IAAI,CAAC6F,GAAL,CAASjW,CAAC,GAAGwQ,GAAb,CAAZ,CAAN,CAAqC,CAArC,CAAb,CAAb;AACH;;AACD,UAAI0F,QAAQ,GAAGjJ,IAAI,CAAC+I,OAAL,CAAavF,GAAb,CAAf;;AACA,UAAIyF,QAAQ,IAAI,CAAC,CAAjB,EAAoB;AAChBA,gBAAQ,GAAGjJ,IAAI,CAAC+I,OAAL,CAAavE,8CAAM,CAACxE,IAAD,EAAOjN,CAAC,IAAIoQ,IAAI,CAAC6F,GAAL,CAASjW,CAAC,GAAGyQ,GAAb,CAAZ,CAAN,CAAqC,CAArC,CAAb,CAAX;AACH;;AAGD,UAAI,KAAK5E,KAAL,CAAW1L,IAAX,CAAgBgW,KAAhB,CAAsBJ,UAAtB,EAAkCG,QAAlC,EAA4CL,MAA5C,GAAqD,CAAzD,EAA4D;AACxD,cAAM,KAAK3B,OAAL,CAAakC,QAAb,CAAsB,CAACL,UAAD,EAAaG,QAAb,CAAtB,CAAN;AAEA,cAAM/V,IAAI,GAAG,MAAM,KAAK+T,OAAL,CAAamC,UAAb,EAAnB;AAEA,YAAIlB,OAAJ;;AACA,YAAI,KAAKtJ,KAAL,CAAWsJ,OAAf,EAAwB;AACpBlI,cAAI,GAAG,KAAKpB,KAAL,CAAWsJ,OAAX,CAAmBpV,GAAnB,CAAuBC,CAAC,IAAIA,CAAC,CAAC8V,IAA9B,CAAP;AACAC,oBAAU,GAAG9I,IAAI,CAAC+I,OAAL,CAAaxF,GAAb,CAAb;;AACA,cAAIuF,UAAU,IAAI,CAAC,CAAnB,EAAsB;AAClBA,sBAAU,GAAG9I,IAAI,CAAC+I,OAAL,CAAavE,8CAAM,CAACxE,IAAD,EAAOjN,CAAC,IAAIoQ,IAAI,CAAC6F,GAAL,CAASjW,CAAC,GAAGwQ,GAAb,CAAZ,CAAN,CAAqC,CAArC,CAAb,CAAb;AACH;;AACD0F,kBAAQ,GAAGjJ,IAAI,CAAC+I,OAAL,CAAavF,GAAb,CAAX;;AACA,cAAIyF,QAAQ,IAAI,CAAC,CAAjB,EAAoB;AAChBA,oBAAQ,GAAGjJ,IAAI,CAAC+I,OAAL,CAAavE,8CAAM,CAACxE,IAAD,EAAOjN,CAAC,IAAIoQ,IAAI,CAAC6F,GAAL,CAASjW,CAAC,GAAGyQ,GAAb,CAAZ,CAAN,CAAqC,CAArC,CAAb,CAAX;AACH;;AAED,gBAAM,KAAKyD,OAAL,CAAaoC,eAAb,CAA6B,CAACP,UAAD,EAAaG,QAAb,CAA7B,CAAN;AAEAf,iBAAO,GAAG,MAAM,KAAKjB,OAAL,CAAauB,iBAAb,EAAhB;AACH;;AAED,cAAMc,MAAM,GAAG,MAAM,KAAKrC,OAAL,CAAasC,SAAb,CAAuB,KAAK9R,KAAL,CAAWoO,UAAlC,CAArB;AAEA,aAAKpG,QAAL,CAAc;AACVvM,cAAI,EAAEA,IADI;AAEVgV,iBAAO,EAAEA,OAFC;AAGVoB,gBAAM,EAAEA,MAHE;AAIV5D,qBAAW,EAAErS,SAJH;AAKVsS,sBAAY,EAAEtS,SALJ;AAMVuS,gBAAM,EAAE;AANE,SAAd;AAQH,OAhCD,MAgCO;AACH,aAAKnG,QAAL,CAAc;AACViG,qBAAW,EAAErS,SADH;AAEVsS,sBAAY,EAAEtS;AAFJ,SAAd;AAIH;AACJ;AAAA;;AAEK+S,OAAK;;AACP,UAAI,CAAC,KAAKa,OAAV,EAAmB;AAEnB,YAAM,KAAKA,OAAL,CAAakC,QAAb,CAAsB,CAAC9V,SAAD,EAAYA,SAAZ,CAAtB,CAAN;AACA,YAAM,KAAK4T,OAAL,CAAaoC,eAAb,CAA6B,CAAChW,SAAD,EAAYA,SAAZ,CAA7B,CAAN;AAEA,YAAMH,IAAI,GAAG,MAAM,KAAK+T,OAAL,CAAamC,UAAb,EAAnB;AACA,UAAIlB,OAAJ;;AACA,UAAI,KAAKtJ,KAAL,CAAWsJ,OAAf,EAAwB;AACpBA,eAAO,GAAG,MAAM,KAAKjB,OAAL,CAAauB,iBAAb,EAAhB;AACH;;AAED,YAAMc,MAAM,GAAG,MAAM,KAAKrC,OAAL,CAAasC,SAAb,CAAuB,KAAK9R,KAAL,CAAWoO,UAAlC,CAArB;AAEA,WAAKpG,QAAL,CAAc;AACVvM,YAAI,EAAEA,IADI;AAEVgV,eAAO,EAAEA,OAFC;AAGVoB,cAAM,EAAEA,MAHE;AAIV5D,mBAAW,EAAErS,SAJH;AAKVsS,oBAAY,EAAEtS,SALJ;AAMVuS,cAAM,EAAE;AANE,OAAd;AAQH;AAAA;;AAED4D,aAAW;AACP,QAAIzU,MAAM,GAAG,mBAAb;AACA,UAAM0U,KAAK,GAAa,EAAxB;;AAEA,QAAI,KAAKhS,KAAL,CAAW6R,MAAf,EAAuB;AAEnB,YAAM/E,KAAK,GAAI,KAAK9M,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB,KAAK7R,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,CAAtC;;AACA,UAAI/E,KAAK,GAAG,WAAR,GAAsB,CAA1B,EAA6B;AACzBxP,cAAM,GAAG,MAAT;AACH,OAFD,MAEO,IAAIwP,KAAK,GAAG,UAAR,GAAqB,CAAzB,EAA4B;AAC/BxP,cAAM,GAAG,UAAT;AACH,OAFM,MAEA,IAAIwP,KAAK,GAAG,QAAR,GAAmB,EAAvB,EAA2B;AAC9BxP,cAAM,GAAG,QAAT;AACH,OAFM,MAEA,IAAIwP,KAAK,GAAG,QAAR,GAAmB,CAAvB,EAA0B;AAC7BxP,cAAM,GAAG,WAAT;AACH,OAFM,MAEA;AACHA,cAAM,GAAG,OAAT;AACH;;AAED,YAAM2U,KAAK,GAAG,CAAd;AACA,YAAMC,QAAQ,GAAGxG,IAAI,CAACC,KAAL,CAAWmB,KAAK,IAAImF,KAAK,GAAG,CAAZ,CAAhB,CAAjB;;AAEA,WAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAApB,EAA2BE,CAAC,EAA5B,EAAgC;AAC5BH,aAAK,CAAC/M,IAAN,CAAW,KAAKjF,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuBK,QAAQ,GAAGC,CAA7C;AACH;;AAED,YAAMC,SAAS,GAAGpF,oDAAY,CAACgF,KAAD,EAAQ1W,CAAC,IAAIwL,6CAAM,CAACxL,CAAD,CAAN,CAAUgC,MAAV,CAAiBA,MAAjB,CAAb,CAA9B;;AACA,UAAI8U,SAAS,CAACjB,MAAV,KAAqBa,KAAK,CAACb,MAA/B,EAAuC;AACnC,cAAMc,KAAK,GAAGG,SAAS,CAACjB,MAAxB;AACA,cAAMe,QAAQ,GAAGxG,IAAI,CAACC,KAAL,CAAWmB,KAAK,IAAImF,KAAK,GAAG,CAAZ,CAAhB,CAAjB;AAEAD,aAAK,CAACK,MAAN,CAAa,CAAb,EAAgBL,KAAK,CAACb,MAAtB;;AACA,aAAK,IAAIgB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAApB,EAA2BE,CAAC,EAA5B,EAAgC;AAC5BH,eAAK,CAAC/M,IAAN,CAAW,KAAKjF,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuBK,QAAQ,GAAGC,CAA7C;AACH;AACJ;AACJ;;AAED,WAAO;AACH7U,YAAM,EAAEA,MADL;AAEH0U,WAAK,EAAEA;AAFJ,KAAP;AAIH;;AAEDM,wBAAsB;;;AAClB,QAAI,KAAKnL,KAAL,CAAWoL,SAAX,KAAyB,YAA7B,EAA2C;AAE3C,UAAMC,QAAQ,GAAG,WAAKxS,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBxN,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAlC;AACA,UAAMoO,QAAQ,GAAG,WAAKzS,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBtN,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAlC;AAEA,UAAMyN,KAAK,GAAa,EAAxB;AACA,UAAM9H,UAAU,GAAuC,EAAvD;;AAEA,UAAMwI,YAAY,GAAG,CAAC/V,KAAD,EAAgBE,GAAhB,EAA6B8V,GAA7B,EAA2CvU,UAA3C,KAAsE;AAEvF,YAAMwU,IAAI,GAAG,CAACjW,KAAK,GAAGE,GAAT,IAAgB,CAA7B;AACAmV,WAAK,CAAC/M,IAAN,CAAW2N,IAAX;AACA,UAAIxU,UAAJ,EACI8L,UAAU,CAAC0I,IAAD,CAAV,GAAmBxU,UAAnB,CADJ,KAGI8L,UAAU,CAAC0I,IAAD,CAAV,GAAmB;AACfnI,kBAAU,EAAE3D,6CAAM,CAACnK,KAAD,CAAN,CAAcwL,MAAd,EADG;AAEfuC,iBAAS,EAAE5D,6CAAM,CAACjK,GAAD,CAAN,CAAYsL,MAAZ,EAFI;AAGfmC,sBAAc,EAAEqI,GAAG,GAAG7L,6CAAM,CAAC6L,GAAD,CAAN,CAAYxK,MAAZ,EAAH,GAAyBvM,SAH7B;AAIfyO,uBAAe,EAAE;AAJF,OAAnB;AAMP,KAbD;;AAeA,QAAI,WAAKlD,KAAL,CAAWkH,WAAX,MAAsB,IAAtB,IAAsBnJ,aAAtB,GAAsB,MAAtB,GAAsBA,GAAEiM,MAA5B,EAAoC;AAChC,YAAM0B,MAAM,GAAmC,EAA/C;;AAEA,WAAK,IAAIV,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKhL,KAAL,CAAWkH,WAAX,CAAuB8C,MAA3C,EAAmDgB,CAAC,EAApD,EAAwD;AACpD,cAAM/T,UAAU,GAAG,KAAK+I,KAAL,CAAWkH,WAAX,CAAuB8D,CAAvB,CAAnB;AACA,YAAIW,SAAS,GAAGhM,6CAAM,CAAC1I,UAAU,CAACqM,UAAZ,CAAN,CAA8BsI,OAA9B,EAAhB;AACA,YAAIC,OAAO,GAAGlM,6CAAM,CAAC1I,UAAU,CAACsM,SAAZ,CAAN,CAA6BqI,OAA7B,EAAd;AACA,cAAME,OAAO,GAAG7U,UAAU,CAACkM,cAAX,GAA4BxD,6CAAM,CAAC1I,UAAU,CAACkM,cAAZ,CAAN,CAAkCyI,OAAlC,EAA5B,GAA0EnX,SAA1F;AAGA,YAAIkX,SAAS,KAAKL,QAAQ,SAAR,YAAQ,WAAR,cAAY,CAAjB,CAAT,IAAgCO,OAAO,KAAKR,QAAQ,SAAR,YAAQ,WAAR,cAAY,CAAjB,CAA3C,EAAgE;AAEhE,YAAIA,QAAQ,IAAIM,SAAS,GAAGN,QAA5B,EACIM,SAAS,GAAGN,QAAZ;AACJ,YAAIC,QAAQ,IAAIO,OAAO,GAAGP,QAA1B,EACIO,OAAO,GAAGP,QAAV;AAEJC,oBAAY,CAACI,SAAD,EAAYE,OAAZ,EAAqBC,OAArB,EAA8B7U,UAA9B,CAAZ;AACAyU,cAAM,CAAC5N,IAAP,CAAY,CAAC6N,SAAD,EAAYE,OAAZ,CAAZ;AACH;;AAGD,UAAIH,MAAM,CAAC1B,MAAX,EAAmB;AACf,YAAIqB,QAAQ,IAAIA,QAAQ,GAAGK,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA3B,EAAyC;AACrCH,sBAAY,CAACF,QAAD,EAAWK,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAX,CAAZ;AACH;;AACD,YAAIJ,QAAQ,IAAIA,QAAQ,GAAGI,MAAM,CAACA,MAAM,CAAC1B,MAAP,GAAgB,CAAjB,CAAN,CAA0B,CAA1B,CAA3B,EAAyD;AACrDuB,sBAAY,CAACG,MAAM,CAACA,MAAM,CAAC1B,MAAP,GAAgB,CAAjB,CAAN,CAA0B,CAA1B,CAAD,EAA+BsB,QAA/B,CAAZ;AACH;;AACD,aAAK,IAAIN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGU,MAAM,CAAC1B,MAA3B,EAAmCgB,CAAC,EAApC,EAAwC;AACpC,gBAAMe,eAAe,GAAGL,MAAM,CAACV,CAAC,GAAG,CAAL,CAAN,CAAc,CAAd,CAAxB;AACA,gBAAMgB,SAAS,GAAGN,MAAM,CAACV,CAAD,CAAN,CAAU,CAAV,CAAlB;;AACA,cAAIe,eAAe,GAAGC,SAAtB,EAAiC;AAC7BT,wBAAY,CAACQ,eAAD,EAAkBC,SAAlB,CAAZ;AACH;AACJ;AACJ;AACJ;;AAGD,QAAI,CAACnB,KAAK,CAACb,MAAP,IAAiBqB,QAAjB,IAA6BC,QAAjC,EAA2C;AACvCC,kBAAY,CAACF,QAAD,EAAWC,QAAX,CAAZ;AACH;;AAED,WAAO;AACHT,WAAK,EAAEA,KADJ;AAEH9H,gBAAU,EAAEA;AAFT,KAAP;AAIH;;AAEDkJ,wBAAsB;;;AAClB,QAAI,KAAKjM,KAAL,CAAWoL,SAAX,KAAyB,YAA7B,EAA2C;AAE3C,UAAMC,QAAQ,GAAG,WAAKxS,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBxN,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAlC;AACA,UAAMoO,QAAQ,GAAG,WAAKzS,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBtN,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAlC;AAEA,UAAM8O,QAAQ,GAAyB,EAAvC;;AAEA,QAAI,WAAKlM,KAAL,CAAWmH,WAAX,MAAsB,IAAtB,IAAsBpJ,aAAtB,GAAsB,MAAtB,GAAsBA,GAAEiM,MAA5B,EAAoC;AAEhC,WAAK,IAAIgB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKhL,KAAL,CAAWmH,WAAX,CAAuB6C,MAA3C,EAAmDgB,CAAC,EAApD,EAAwD;AACpD,cAAM1K,UAAU,GAAG,KAAKN,KAAL,CAAWmH,WAAX,CAAuB6D,CAAvB,CAAnB;AACA,YAAIW,SAAS,GAAG,IAAIQ,IAAJ,CAAS7L,UAAU,CAACH,SAApB,EAA+ByL,OAA/B,EAAhB;AACA,YAAIC,OAAO,GAAG,IAAIM,IAAJ,CAAS7L,UAAU,CAACF,OAApB,EAA6BwL,OAA7B,EAAd;AAGA,YAAID,SAAS,KAAKL,QAAQ,SAAR,YAAQ,WAAR,cAAY,CAAjB,CAAT,IAAgCO,OAAO,KAAKR,QAAQ,SAAR,YAAQ,WAAR,cAAY,CAAjB,CAA3C,EAAgE;AAEhE,cAAMe,YAAY,GAAG,KAAKpM,KAAL,CAAWmH,WAAX,CAChBmD,KADgB,CACV,CADU,EACPU,CADO,EAEhB9S,MAFgB,CAETsK,CAAC,IAAI+B,IAAI,CAACK,GAAL,CAAS,IAAIuH,IAAJ,CAAS3J,CAAC,CAACrC,SAAX,EAAsByL,OAAtB,EAAT,EAA0CD,SAA1C,IAAuDpH,IAAI,CAACI,GAAL,CAAS,IAAIwH,IAAJ,CAAS3J,CAAC,CAACpC,OAAX,EAAoBwL,OAApB,EAAT,EAAwCC,OAAxC,CAFnD,EAEqG7B,MAF1H;AAIA,cAAMqC,aAAa,GAAG,IAAtB;AACA,cAAMC,GAAG,GAAI,iBAAKzT,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBpM,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBC,aAAtB,GAAsBA,EAAtB,GAA0B,CAAvC;AACA,cAAMgO,MAAM,GAAI,iBAAK1T,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBlM,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBC,aAAtB,GAAsBA,EAAtB,GAA0B,CAA1C;AACA,cAAM+N,MAAM,GAAI,CAACD,MAAM,GAAGD,GAAV,IAAiBD,aAAlB,GAAmCD,YAAlD;AACA,cAAM3J,CAAC,GAAG,KAAKzC,KAAL,CAAW/D,IAAX,KAAoB,KAApB,GAA4BqQ,GAAG,GAAGE,MAAlC,GAA2CD,MAAM,GAAGC,MAA9D;AAEA,YAAInB,QAAQ,IAAIM,SAAS,GAAGN,QAA5B,EACIM,SAAS,GAAGN,QAAZ;AACJ,YAAIC,QAAQ,IAAIO,OAAO,GAAGP,QAA1B,EACIO,OAAO,GAAGP,QAAV;AAEJY,gBAAQ,CAACpO,IAAT,CAAc;AACV2O,YAAE,EAAEd,SADM;AAEVe,YAAE,EAAEb,OAFM;AAGVpJ,WAAC,EAAEA,CAHO;AAIV7J,eAAK,EAAE0H;AAJG,SAAd;AAMH;AACJ;;AAED,WAAO4L,QAAP;AACH;;AAEKS,oBAAkB,GAA4C;AAAA,sCAAxCnU,MAAwC;AAAxCA,YAAwC;AAAA;;;AAChE,YAAMyO,UAAU,qBAAQ,KAAKpO,KAAL,CAAWoO,UAAnB,CAAhB;;AACA,WAAK,MAAM,CAAC3F,GAAD,EAAMzI,KAAN,CAAX,IAA2BL,MAA3B,EAAmC;AAC/ByO,kBAAU,CAAC3F,GAAD,CAAV,GAAkBzI,KAAK,IAAIpE,SAAT,GAAqBoE,KAArB,GAA6BoO,UAAU,CAAC3F,GAAD,CAAV,IAAmB7M,SAAnB,GAA+B,CAACwS,UAAU,CAAC3F,GAAD,CAA1C,GAAkD,KAAjG;AACH;;AACD,WAAKT,QAAL,CAAc;AAAEoG,kBAAU,EAAEA;AAAd,OAAd,EAA0C,MAAW0C,gDAAAA;AACjD,YAAI,KAAK9Q,KAAL,CAAWvE,IAAX,IAAmB,KAAK+T,OAA5B,EAAqC;AACjC,gBAAMqC,MAAM,GAAG,MAAM,KAAKrC,OAAL,CAAasC,SAAb,CAAuB,KAAK9R,KAAL,CAAWoO,UAAlC,CAArB;AACA,eAAKpG,QAAL,CAAc;AAAE6J,kBAAM,EAAEA;AAAV,WAAd;AACH;AACJ,OALoD,CAArD;AAMH;AAAA;;AAEDjD,mBAAiB;AAEb,QAAI;AAAEX,iBAAF;AAAeC;AAAf,QAAgC,KAAKlO,KAAzC;;AAEA,QAAIiO,WAAW,KAAKC,YAAhB,IAAgCD,WAAW,KAAKrS,SAAhD,IAA6DsS,YAAY,KAAKtS,SAAlF,EAA6F;AACzF,WAAKoM,QAAL,CAAc,OAAO;AACjBiG,mBAAW,EAAErS,SADI;AAEjBsS,oBAAY,EAAEtS;AAFG,OAAP,CAAd;AAIA;AACH;;AAGD,QAAIqS,WAAW,GAAGC,YAAlB,EAAgC,CAACD,WAAD,EAAcC,YAAd,IAA8B,CAACA,YAAD,EAAeD,WAAf,CAA9B;AAEhC,SAAKS,IAAL,CAAUT,WAAV,EAAuBC,YAAvB;AACH;;AAED5B,oBAAkB,CAACR,GAAD,EAAcC,GAAd,EAAyB;AACvC,SAAK/D,QAAL,CAAc;AACViG,iBAAW,EAAErS,SADH;AAEVsS,kBAAY,EAAEtS;AAFJ,KAAd;AAKA,SAAK8S,IAAL,CAAU5C,GAAV,EAAeC,GAAf;AACH;;AAEDQ,kBAAgB;AACZ,SAAKoC,KAAL;AACH;;AAEDpF,0BAAwB,CAACxJ,KAAD,EAAuB;;;AAC3C,qBAAKoH,KAAL,EAAWoC,wBAAX,MAAmC,IAAnC,IAAmChF,aAAnC,GAAmC,MAAnC,GAAmCA,YAAGxE,KAAH,CAAnC;AACH;;AAEDqK,yBAAuB,CAACrK,KAAD,EAA0B;;;AAC7C,qBAAKoH,KAAL,EAAWiD,uBAAX,MAAkC,IAAlC,IAAkC7F,aAAlC,GAAkC,MAAlC,GAAkCA,YAAGxE,KAAH,CAAlC;AACH;;AAEDgU,SAAO;AACH,UAAMtU,MAAM,GAAG,KAAK0H,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,CAAf;AACA,UAAM8M,IAAI,GAAG9I,MAAM,CAACE,MAAP,CACRqP,OADQ,CACA,CAAC1T,CAAD,EAAI6W,CAAJ,KAAU,KAAKnS,KAAL,CAAWuO,UAAX,CAAsBlT,GAAtB,CAA0B4T,CAAC,KAAK;AAC/CxG,SAAG,mBAAY0J,CAAZ,eAAkBlD,CAAlB,CAD4C;AAE/ClP,WAAK,EAAE;AACHiU,aAAK,EAAEtL,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyBqG,CAAzB,EAA4B;AAC/B1M,iBAAO,EAAE,KADsB;AAE/BjF,gBAAM,EAAE;AAFuB,SAA5B,CADJ;AAKH2W,eAAO,EAAE3Y,CAAC,CAAC0Y;AALR,OAFwC;AAS/CE,WAAK,EAAEjF,CAAC,IAAI,QAAL,GAAgB,MAAhB,GAAyBA,CAAC,IAAI,KAAL,GAAa,SAAb,GAAyBlB,oDAAM,CAACoE,CAAC,GAAGpE,2DAAL,CAThB;AAU/CoG,eAAS,EAAElF,CAAC,IAAI,UAAL,GAAkB,SAAlB,GAA8BrT;AAVM,KAAL,CAA3B,CADV,CAAb;AAaA,WAAO2M,IAAP;AACH;;AAED6L,eAAa,CAAC7L,IAAD,EAAiF;AAAA;;AAC1F,UAAM8L,OAAO,GAAG,CAAC9L,IAAI,SAAJ,QAAI,WAAJ,UAAQ,KAAKwL,OAAL,EAAT,EAAyB1Y,GAAzB,CAA6B4T,CAAC,IAAG;;;AAAC,aAAC;AAC/ClQ,UAAE,EAAEkQ,CAAC,CAACxG,GADyC;AAE/C1I,aAAK,EAAEkP,CAAC,CAAClP,KAFsC;AAG/CmU,aAAK,EAAE,OAAC,CAACC,SAAF,MAAW,IAAX,IAAW9P,aAAX,GAAWA,EAAX,GAAe4K,CAAC,CAACiF;AAHuB,OAAD;AAIhD,KAJc,CAAhB;AAKA,wBAAO,oBAAC,4CAAD;AACH,aAAO,EAAEG,OADN;AAEH,aAAO,eAAE,oBAAC,uDAAD;AACL,kBAAU,EAAE,KAAKrU,KAAL,CAAWoO,UADlB;AAEL,eAAO,EAAE;AAAA,6CAAI9S,CAAJ;AAAIA,aAAJ;AAAA;;AAAA,iBAAU,KAAI,CAACwY,kBAAL,CAAwB,GAAGxY,CAAC,CAACD,GAAF,CAAMsO,CAAC,IAAI,CAACA,CAAD,CAAX,CAA3B,CAAV;AAAA;AAFJ;AAFN,MAAP;AAMH;;AAEDnD,QAAM;;;AACF,UAAM6M,QAAQ,GAAG,KAAKtB,WAAL,EAAjB;AACA,UAAMuC,mBAAmB,GAAG,KAAKhC,sBAAL,EAA5B;AACA,UAAMiC,mBAAmB,GAAG,KAAKnB,sBAAL,EAA5B;AAEA,UAAM3T,MAAM,GAAG,KAAK0H,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,CAAf;AACA,UAAM8M,IAAI,GAAG,KAAKwL,OAAL,EAAb;AAEA,UAAMS,WAAW,GAAG,CAAC,CAAC,iBAAKxU,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBxN,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBE,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,KAAiC,iBAAKvE,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiB3M,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBO,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3D,CAAD,IAAkE,EAAtF;AACA,UAAMgP,YAAY,GAAG,CAAC,CAAC,iBAAKzU,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBnM,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBC,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,KAAiC,iBAAK3F,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBjM,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBC,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3D,CAAD,IAAkE,EAAvF;AAEA,UAAM6O,WAAW,GAAe,CAC5B,MAAC,QAAO,WAAK1U,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiB/L,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAxB,KAAiC,QAAjC,GAA4C,KAAK9F,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB2C,WAAnE,GAAiF5Y,SAAlF,MAA4F,IAA5F,IAA4FmK,aAA5F,GAA4FA,EAA5F,GAAgG,SADpE,EAE5B,MAAC,QAAO,WAAK/F,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiB7L,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAxB,KAAiC,QAAjC,GAA4C,KAAKhG,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB2C,WAAnE,GAAiF5Y,SAAlF,MAA4F,IAA5F,IAA4FqK,aAA5F,GAA4FA,EAA5F,GAAgG,SAFpE,CAAhC;AAIA,UAAM0O,WAAW,GAAe,CAC5B,MAAC,QAAO,WAAK3U,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiB3L,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAxB,KAAiC,QAAjC,GAA4C,KAAKlG,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB4C,YAAnE,GAAkF7Y,SAAnF,MAA6F,IAA7F,IAA6FuK,aAA7F,GAA6FA,EAA7F,GAAiG,SADrE,EAE5B,MAAC,QAAO,WAAKnG,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBzL,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAxB,KAAiC,QAAjC,GAA4C,KAAKpG,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB4C,YAAnE,GAAkF7Y,SAAnF,MAA6F,IAA7F,IAA6FyK,aAA7F,GAA6FA,EAA7F,GAAiG,SAFrE,CAAhC;AAKA,UAAMuO,OAAO,GAAGrM,IAAI,CAAClJ,MAAL,CAAY4P,CAAC,IAAI,KAAKjP,KAAL,CAAWoO,UAAX,CAAsBa,CAAC,CAACxG,GAAxB,KAAgC,KAAKzI,KAAL,CAAWoO,UAAX,CAAsBa,CAAC,CAAClP,KAAF,CAAQkU,OAA9B,KAA0C,KAA3F,CAAhB;AAEA,UAAMY,eAAe,GAAG,KAAK1N,KAAL,CAAWoL,SAAX,KAAyB,YAAzB,IAAyC,KAAKvS,KAAL,CAAWqO,WAApD,IAAmE,CAAC,KAAKlH,KAAL,CAAW2H,QAA/E,GAA0F,CAAC,GAAG,IAAIgG,GAAJ,CAAQ,WAAK3N,KAAL,CAAWkH,WAAX,MAAsB,IAAtB,IAAsB/H,aAAtB,GAAsB,MAAtB,GAAsBA,GAAE0I,OAAF,CAAU+F,CAAC,IAAI,CAACA,CAAC,CAACtK,UAAH,EAAesK,CAAC,CAACrK,SAAjB,EAA4BrP,GAA5B,CAAgCsO,CAAC,IAAI7C,6CAAM,CAAC6C,CAAD,CAAN,CAAUoJ,OAAV,EAArC,CAAf,CAA9B,CAAJ,CAA1F,GAA0M,EAAlO;AACA,UAAMiC,QAAQ,GAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,EAA6B,KAA7B,EAAoC,KAApC,EAA2C,KAA3C,EACZ3V,MADY,CACL4P,CAAC,IAAI,KAAKjP,KAAL,CAAWoO,UAAX,CAAsBa,CAAtB,CADA,CAAjB;AAGA,UAAMgG,UAAU,GAAG,KAAKb,aAAL,CAAmB7L,IAAnB,CAAnB;AAEA,wBAAQ,uDACJ;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,oDAAD;AACI,kBAAY,EAAE,KAAKpB,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,EAAmB2V,IADrC;AAEI,kBAAY,EAAE,KAAKjK,KAAL,CAAW1L,IAAX,CAAgB,KAAK0L,KAAL,CAAW1L,IAAX,CAAgB0V,MAAhB,GAAyB,CAAzC,EAA4CC,IAF9D;AAGI,aAAO,EAAE,CACL,iBAAKpR,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBtL,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsB2O,aAAtB,GAAsBA,EAAtB,GAA0B,KAAK/N,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,EAAmB2V,IADxC,EAEL,iBAAKpR,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBsD,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBC,aAAtB,GAAsBA,EAAtB,GAA0B,KAAKjO,KAAL,CAAW1L,IAAX,CAAgB,KAAK0L,KAAL,CAAW1L,IAAX,CAAgB0V,MAAhB,GAAyB,CAAzC,EAA4CC,IAFjE,CAHb;AAOI,wBAAkB,EAAE,KAAK9E,kBAP7B;AAQI,sBAAgB,EAAE,KAAKC,gBAR3B;AASI,aAAO,EAAE,KAAKoC;AATlB,MADJ,eAYI;AAAK,eAAS,EAAC;AAAf,OACK,KAAK3O,KAAL,CAAWvE,IAAX,gBACG,uDACI,oBAAC,0DAAD;AAAqB,WAAK,EAAC,MAA3B;AAAkC,YAAM,EAAE,GAA1C;AAA+C,cAAQ,EAAE;AAAzD,oBACI,oBAAC,oDAAD;AAAe,UAAI,EAAE,KAAKuE,KAAL,CAAWvE,IAAhC;AAAsC,YAAM,EAAE;AAAEgY,WAAG,EAAE,CAAP;AAAU4B,YAAI,EAAE,CAAhB;AAAmBC,aAAK,EAAE,CAA1B;AAA6B5B,cAAM,EAAE;AAArC,OAA9C;AACI,SAAG,EAAE,KAAKvM,KAAL,CAAWoO,QADpB;AAEI,iBAAW,EAAGnM,CAAD,IAAM;AACf,cAAMoM,WAAW,GAAGpR,MAAM,CAACgF,CAAC,SAAD,KAAC,WAAD,GAAC,MAAD,IAAC,CAAEoM,WAAJ,CAA1B;;AACA,YAAIA,WAAJ,EAAiB;AACb,eAAKxN,QAAL,CAAc;AACViG,uBAAW,EAAEuH,WADH;AAEVtH,wBAAY,EAAEsH;AAFJ,WAAd;AAIH;AACJ,OAVL;AAWI,iBAAW,EAAE,KAAKxV,KAAL,CAAWiO,WAAX,GAA0B7E,CAAD,IAAM;AACxC,cAAMoM,WAAW,GAAGpR,MAAM,CAACgF,CAAC,SAAD,KAAC,WAAD,GAAC,MAAD,IAAC,CAAEoM,WAAJ,CAA1B;;AACA,YAAIA,WAAJ,EAAiB;AACb,eAAKtH,YAAL,GAAoBsH,WAApB;AACH,SAFD,MAEO;AACH,eAAKxN,QAAL,CAAc;AACViG,uBAAW,EAAErS,SADH;AAEVsS,wBAAY,EAAEtS;AAFJ,WAAd;AAIH;AACJ,OAVY,GAUTA,SArBR;AAsBI,eAAS,EAAE,KAAKoE,KAAL,CAAWiO,WAAX,GAAyB,KAAKW,iBAA9B,GAAkDhT;AAtBjE,oBAyBI,oBAAC,oDAAD;AAAe,qBAAe,EAAC;AAA/B,MAzBJ,eA2BI,oBAAC,4CAAD;AAAO,aAAO,EAAC,MAAf;AAAsB,uBAAiB,MAAvC;AACI,YAAM,EAAE+Y,WADZ;AAEI,WAAK,EAAC,MAFV;AAGI,UAAI,EAAC,QAHT;AAII,WAAK,EAAEtB,QAAQ,CAACrB,KAJpB;AAKI,mBAAa,EAAG1W,CAAD,IAAOwL,6CAAM,CAACxL,CAAD,CAAN,CAAUgC,MAAV,CAAiB+V,QAAQ,CAAC/V,MAA1B,CAL1B;AAMI,cAAQ,EAAE,CANd;AAMiB,mBAAa,EAAE;AANhC,oBAQI,oBAAC,4CAAD;AAAO,cAAQ,EAAC,cAAhB;AAA+B,WAAK,EAAE;AAAEmY,kBAAU,EAAE;AAAd,OAAtC;AAAgE,QAAE,EAAE,EAApE;AACI,WAAK,EAAC;AADV,MARJ,CA3BJ,EAuCK,KAAKtO,KAAL,CAAWoL,SAAX,KAAyB,YAAzB,IAAyC,KAAKvS,KAAL,CAAWqO,WAApD,IAAmE,CAAC,KAAKlH,KAAL,CAAW2H,QAA/E,iBAA2F,oBAAC,4CAAD;AAAO,aAAO,EAAC,MAAf;AAAsB,uBAAiB,MAAvC;AACxF,YAAM,EAAE6F,WADgF;AAExF,WAAK,EAAC,MAFkF;AAGxF,UAAI,EAAC,QAHmF;AAIxF,aAAO,EAAC,aAJgF;AAKxF,cAAQ,EAAE,KAL8E;AAMxF,cAAQ,EAAE,KAN8E;AAOxF,iBAAW,EAAC,KAP4E;AAQxF,WAAK,EAAEL,mBAAmB,SAAnB,uBAAmB,WAAnB,GAAmB,MAAnB,sBAAmB,CAAEtC,KAR4D;AASxF,UAAI,EAAG7K,KAAD,iBAAW,oBAAC,4DAAD;AAAoB,SAAC,EAAEA,KAAK,CAACwC,CAA7B;AAAgC,SAAC,EAAExC,KAAK,CAACyC,CAAzC;AACb,aAAK,EAAEzC,KAAK,CAACkN,OAAN,CAActU,KADR;AAEb,kBAAU,EAAEuU,mBAAmB,SAAnB,uBAAmB,WAAnB,GAAmB,MAAnB,sBAAmB,CAAEpK,UAFpB;AAGb,0BAAkB,EAAE,KAAK/C,KAAL,CAAWgD,kBAHlB;AAIb,+BAAuB,EAAE,KAAKC;AAJjB,QATuE;AAcxF,cAAQ,EAAE,CAd8E;AAc3E,mBAAa,EAAE;AAd4D,MAvChG,eAyDI,oBAAC,4CAAD;AAAO,iBAAW,EAAC,MAAnB;AACI,YAAM,EAAEsK,WADZ;AAEI,WAAK,EAAC,QAFV;AAEmB,cAAQ,EAAE,KAAKvN,KAAL,CAAW/D,IAAX,IAAmB,IAFhD;AAEsD,uBAAiB;AAFvE,oBAGI,oBAAC,4CAAD;AAAO,WAAK,EAAE,CAAC,EAAf;AAAmB,cAAQ,EAAC,YAA5B;AAAyC,WAAK,EAAE;AAAEqS,kBAAU,EAAE;AAAd,OAAhD;AACI,WAAK,6BAAsB,KAAKtO,KAAL,CAAW/D,IAAX,IAAmB,IAAnB,GAA0B,OAA1B,GAAoC,QAA1D;AADT,MAHJ,CAzDJ,EAgEK4R,QAAQ,CAAC7D,MAAT,gBACG,oBAAC,4CAAD;AAAO,aAAO,EAAC,YAAf;AAA4B,iBAAW,EAAC,OAAxC;AACI,YAAM,EAAEuD,WADZ;AACyB,cAAQ,EAAE,CADnC;AAEI,WAAK,EAAC,QAFV;AAEmB,cAAQ,EAAE,KAAKvN,KAAL,CAAW/D,IAAX,IAAmB,IAFhD;AAGI,WAAK,EAAE4R,QAAQ,CAAC3Z,GAAT,CAAa4T,CAAC,IAAIxP,MAAM,CAACwP,CAAD,CAAxB,CAHX;AAII,mBAAa,EAAG3T,CAAD,IAAO0Z,QAAQ,CAAC3V,MAAT,CAAgB4P,CAAC,IAAIxP,MAAM,CAACwP,CAAD,CAAN,IAAa3T,CAAlC,EAAqC,CAArC;AAJ1B,MADH,GAMGM,SAtER,eAwEI,oBAAC,8CAAD;AAAS,aAAO,eAAE,oBAAC,wDAAD;AAAgB,iBAAS,EAAE,WAAK6S,UAAL,CAAgBpC,OAAhB,MAAuB,IAAvB,IAAuBqJ,aAAvB,GAAuBA,EAAvB,GAA2B9Z,SAAtD;AACd,cAAM,EAAE0M,MAAM,CAAC4I,MAAP,CAAc,EAAd,EAAkB,GAAG3I,IAAI,CAAClN,GAAL,CAAS4T,CAAC,KAAK;AAAE,WAACA,CAAC,CAACxG,GAAH,aAAYwG,CAAC,CAAClP,KAAF,CAAQkU,OAApB,eAAgChF,CAAC,CAAClP,KAAF,CAAQiU,KAAxC;AAAF,SAAL,CAAV,CAArB,CADM;AAEd,eAAO,EAAE,KAAKhU,KAAL,CAAW4P,OAFN;AAGd,eAAO,EAAE,KAAK5P,KAAL,CAAW2P,OAHN;AAId,WAAG,EAAE,KAAK3P,KAAL,CAAW6P,OAJF;AAKd,WAAG,EAAE,KAAK7P,KAAL,CAAW+P,OALF;AAMd,WAAG,EAAE,KAAK/P,KAAL,CAAWiQ,OANF;AAOd,WAAG,EAAE,KAAKjQ,KAAL,CAAWmQ,OAPF;AAQd,WAAG,EAAE,KAAKnQ,KAAL,CAAWqQ,OARF;AASd,wBAAgB,EAAE/U,CAAC,IAAI,KAAKwY,kBAAL,CAAwB,CAAC,KAAD,EAAQxY,CAAR,CAAxB,CATT;AAUd,wBAAgB,EAAEA,CAAC,IAAI,KAAKwY,kBAAL,CAAwB,CAAC,KAAD,EAAQxY,CAAR,CAAxB,CAVT;AAWd,oBAAY,EAAEA,CAAC,IAAI,KAAKwY,kBAAL,CAAwB,CAAC,KAAD,EAAQxY,CAAR,CAAxB,CAXL;AAYd,oBAAY,EAAEA,CAAC,IAAI,KAAKwY,kBAAL,CAAwB,CAAC,KAAD,EAAQxY,CAAR,CAAxB,CAZL;AAad,oBAAY,EAAEA,CAAC,IAAI,KAAKwY,kBAAL,CAAwB,CAAC,KAAD,EAAQxY,CAAR,CAAxB,CAbL;AAcd,oBAAY,EAAEA,CAAC,IAAI,KAAKwY,kBAAL,CAAwB,CAAC,KAAD,EAAQxY,CAAR,CAAxB,CAdL;AAed,oBAAY,EAAEA,CAAC,IAAI,KAAKwY,kBAAL,CAAwB,CAAC,KAAD,EAAQxY,CAAR,CAAxB;AAfL;AAAlB,MAxEJ,EA0FKsZ,OAAO,CAACvV,MAAR,CAAe4P,CAAC,IAAI,CAACA,CAAC,CAACxG,GAAF,CAAMoI,QAAN,CAAe,QAAf,CAArB,EAA+C8E,OAA/C,GAAyDta,GAAzD,CAA6D4T,CAAC,IAAG;;;AAAC,0BAC/D,oBAAC,2CAAD;AAAM,WAAG,uBAAgBA,CAAC,CAACxG,GAAlB,CAAT;AAAkC,YAAI,EAAC,SAAvC;AAAiD,eAAO,EAAEwG,CAAC,CAACxG,GAA5D;AAAiE,YAAI,EAAEwG,CAAC,CAACiF,KAAzE;AAAgF,cAAM,EAAE,OAAC,CAACC,SAAF,MAAW,IAAX,IAAW9P,aAAX,GAAWA,EAAX,GAAe4K,CAAC,CAACiF,KAAzG;AAAgH,mBAAW,EAAEjF,CAAC,CAACkF,SAAF,GAAc,EAAd,GAAmBvY,SAAhJ;AAA2J,oBAAY,EAAE,KAAzK;AACI,WAAG,EAAE;AAAEga,WAAC,EAAE;AAAL,SADT;AACmB,iBAAS,EAAE;AAAEA,WAAC,EAAE;AAAL;AAD9B,QAD+D;AAGlE,KAHA,CA1FL,EA+FKhB,OAAO,CAACvV,MAAR,CAAe4P,CAAC,IAAIA,CAAC,CAACxG,GAAF,CAAMoI,QAAN,CAAe,QAAf,CAApB,EAA8C8E,OAA9C,GAAwDta,GAAxD,CAA4D4T,CAAC,iBAC1D,oBAAC,2CAAD;AAAM,SAAG,uBAAgBA,CAAC,CAACxG,GAAlB,CAAT;AAAkC,UAAI,EAAC,OAAvC;AAA+C,aAAO,EAAEwG,CAAC,CAACxG,GAA1D;AAA+D,UAAI,EAAEwG,CAAC,CAACiF,KAAvE;AAA8E,YAAM,EAAEjF,CAAC,CAACiF,KAAxF;AAA+F,kBAAY,EAAE,KAA7G;AACI,SAAG,EAAE;AAAE0B,SAAC,EAAE;AAAL,OADT;AACmB,eAAS,EAAE;AAAEA,SAAC,EAAE;AAAL,OAD9B;AACwC,WAAK,EAAE;AAD/C,MADH,CA/FL,EAoGKZ,QAAQ,CAAC3Z,GAAT,CAAa4T,CAAC,iBACX,oBAAC,2CAAD;AAAM,SAAG,EAAEA,CAAX;AAAc,UAAI,EAAC,SAAnB;AAA6B,YAAM,EAAC,MAApC;AAA2C,aAAO,EAAEA,CAApD;AAAuD,aAAO,EAAC,YAA/D;AAA4E,SAAG,EAAE;AAAE2G,SAAC,EAAE;AAAL,OAAjF;AAA2F,eAAS,EAAE;AAAEA,SAAC,EAAE;AAAL;AAAtG,MADH,CApGL,EAuGK,KAAKzO,KAAL,CAAWoL,SAAX,KAAyB,YAAzB,IAAyC,CAAC,KAAKpL,KAAL,CAAW2H,QAArD,iBACG,0CACK,KAAK9O,KAAL,CAAWqO,WAAX,IAA0BwG,eAAe,CAACxZ,GAAhB,CAAoBsO,CAAC,iBAC5C,oBAAC,oDAAD;AAAe,SAAG,EAAEA,CAApB;AAAuB,OAAC,EAAEA,CAA1B;AAA6B,YAAM,EAAC,MAApC;AAA2C,qBAAe,EAAC;AAA3D,MADuB,CAD/B,EAGK,KAAK3J,KAAL,CAAWsO,WAAX,KAA0BiG,mBAAmB,SAAnB,uBAAmB,WAAnB,GAAmB,MAAnB,sBAAmB,CAAElZ,GAArB,CAAyB,CAACgY,QAAD,EAAWlB,CAAX,kBAChD,oBAAC,oDAAD;AAAe,SAAG,EAAEA,CAApB;AAAuB,YAAM,EAAC,MAA9B;AAAqC,qBAAe,EAAC,KAArD;AACI,aAAO,EAAE,CAAC;AAAExI,SAAC,EAAE0J,QAAQ,CAACO,EAAd;AAAkBhK,SAAC,EAAEyJ,QAAQ,CAACzJ;AAA9B,OAAD,EAAoC;AAAED,SAAC,EAAE0J,QAAQ,CAACQ,EAAd;AAAkBjK,SAAC,EAAEyJ,QAAQ,CAACzJ;AAA9B,OAApC,CADb;AAEI,WAAK,EAAEzC,KAAK,iBAAI,oBAAC,yDAAD;AAAiB,aAAK,EAAEkM,QAAQ,CAACtT;AAAjC,SAA4CoH,KAA5C;AAAmD,gCAAwB,EAAE,KAAKoC;AAAlF;AAFpB,MADuB,CAA1B,CAHL,CAxGR,EAiHK,KAAKvJ,KAAL,CAAWiO,WAAX,gBACG,oBAAC,oDAAD;AAAe,QAAE,EAAE,KAAKjO,KAAL,CAAWiO,WAA9B;AAA2C,QAAE,EAAE,KAAKjO,KAAL,CAAWkO,YAA1D;AAAwE,mBAAa,EAAE;AAAvF,MADH,GAEGtS,SAnHR,CADJ,CADJ,EAyHK,YAAKuL,KAAL,CAAWsJ,OAAX,MAAkB,IAAlB,IAAkBoF,aAAlB,GAAkB,MAAlB,GAAkBA,GAAE1E,MAApB,iBAA6B;AAAK,eAAS,EAAC,OAAf;AAAuB,WAAK,EAAE;AAAE2E,iBAAS,EAAE,OAAb;AAAsBC,mBAAW,EAAEf,QAAQ,CAAC7D,MAAT,GAAkB,MAAlB,GAA2BvV;AAA9D;AAA9B,oBAC1B,oBAAC,0DAAD;AAAqB,WAAK,EAAC,MAA3B;AAAkC,cAAQ,EAAE;AAA5C,oBACI,oBAAC,oDAAD;AAAe,UAAI,EAAE,KAAKoE,KAAL,CAAWyQ,OAAhC;AAAyC,YAAM,EAAE;AAAEgD,WAAG,EAAE,CAAP;AAAU4B,YAAI,EAAE,CAAhB;AAAmBC,aAAK,EAAE,CAA1B;AAA6B5B,cAAM,EAAE;AAArC;AAAjD,oBAEI,oBAAC,oDAAD;AAAe,qBAAe,EAAC;AAA/B,MAFJ,eAII,oBAAC,4CAAD;AAAO,aAAO,EAAC,MAAf;AACI,YAAM,EAAEiB,WADZ;AAEI,WAAK,EAAC,MAFV;AAGI,UAAI,EAAC,QAHT;AAII,UAAI,EAAE,KAJV;AAIiB,mBAAa,EAAE,KAJhC;AAIuC,uBAAiB;AAJxD,MAJJ,eAWI,oBAAC,4CAAD;AAAO,WAAK,EAAC,QAAb;AACI,mBAAa,EAAGrZ,CAAD,cAAUoQ,IAAI,CAACC,KAAL,CAAWrQ,CAAX,CAAV,OADnB;AACgD,uBAAiB;AADjE,oBAEI,oBAAC,4CAAD;AAAO,WAAK,EAAE,CAAC,EAAf;AAAmB,cAAQ,EAAC,YAA5B;AAAyC,WAAK,EAAE;AAAEma,kBAAU,EAAE;AAAd,OAAhD;AACI,WAAK,EAAE;AADX,MAFJ,CAXJ,eAiBI,oBAAC,2CAAD;AAAM,UAAI,EAAC,QAAX;AAAoB,YAAM,EAAC,MAA3B;AAAkC,aAAO,EAAC,OAA1C;AAAkD,SAAG,EAAE;AAAEG,SAAC,EAAE;AAAL,OAAvD;AAAiE,eAAS,EAAE;AAAEA,SAAC,EAAE;AAAL;AAA5E,MAjBJ,CADJ,CAD0B,CAA7B,GAsBQha,SA/Ib,eAiJI;AAAK,eAAS,EAAC;AAAf,OACKqZ,UADL,CAjJJ,CADH,GAsJGrZ,SAvJR,CAZJ,CADJ,eAwKI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC,MAAf;AAAsB,SAAG,EAAE,KAAK6S;AAAhC,MADJ,CAxKJ,CADI,CAAR;AA8KH;;AAtpBuD;AA0pB5D,+DAAeT,KAAf;;;;;;;;;;;;;;;;;;;;;AC3tBA;AAEA;AAEA;AAQM,MAAOJ,aAAP,SAA6B7G,4CAA7B,CAA0D;AAK5DG,cAAYC,KAAZ,EAA+C;AAC3C,UAAMA,KAAN;AACH;;AAEDX,QAAM;AACF,UAAM2P,MAAM,GAAG7N,MAAM,CAAC8N,OAAP,CAAeF,+CAAO,CAAC,KAAK/O,KAAL,CAAWkN,OAAZ,EAAqB1K,CAAC,IAAKA,CAAC,CAAC5J,KAAF,CAAwBkU,OAAnD,CAAtB,CAAf;AACA,QAAI,CAACkC,MAAM,CAAChF,MAAZ,EAAoB,oBAAO,yCAAP;AAEpB,UAAMkF,YAAY,GAAGF,MAAM,CACtB9a,GADgB,CACZ;AAAA,UAAC,GAAGib,KAAH,CAAD;AAAA,aAAeA,KAAK,CAACjb,GAAN,CAAUkb,IAAI,IAAI,CAACA,IAAI,CAACxX,EAAN,CAAlB,CAAf;AAAA,KADY,EAEhByX,MAFgB,CAET,CAACC,CAAD,EAAIC,CAAJ,KAAUD,CAAC,CAACpb,GAAF,CAAM,CAACC,CAAD,EAAI6W,CAAJ,KAAU,CAAC,GAAG7W,CAAJ,EAAO,GAAGob,CAAC,CAACvE,CAAD,CAAX,CAAhB,CAFD,CAArB;AAGA,UAAMwE,MAAM,GAAGR,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,EAAa9a,GAAb,CAAiBkb,IAAI,IAAIA,IAAI,CAACrC,KAA9B,CAAf;AAEA,UAAM0C,KAAK,GAAG,CAAC,CAAC,KAAKzP,KAAL,CAAW0P,MAAZ,GAAqBV,MAArB,GAA8B,CAACA,MAAM,CAAC,CAAD,CAAP,CAA/B,EAA4C9a,GAA5C,CAAgD;AAAA,UAAC,CAACyb,OAAD,EAAUR,KAAV,CAAD;AAAA,0BAC1D;AAAK,WAAG,EAAEQ,OAAV;AAAmB,iBAAS,qBAAc,CAAC,KAAK3P,KAAL,CAAW0P,MAAZ,GAAqB,WAArB,GAAmC,EAAjD;AAA5B,sBACI;AAAQ,iBAAS,EAAC,4BAAlB;AACI,eAAO,EAAE,MAAK;AAAA;;AAAC,kCAAK1P,KAAL,EAAW+B,OAAX,MAAkB,IAAlB,IAAkB3E,aAAlB,GAAkB,MAAlB,GAAkBA,YAAGuS,OAAH,CAAlB;AAA6B;AADhD,sBAGcA,OAHd,CADJ,EAOQR,KAAK,CAACjb,GAAN,CAAWkb,IAAD,IAAS;AACf,cAAMxX,EAAE,GAAGwX,IAAI,CAACxX,EAAhB;AACA,cAAMmV,KAAK,GAAGqC,IAAI,CAACrC,KAAnB;AACA,cAAMnU,KAAK,GAAGwW,IAAI,CAACxW,KAAnB;AACA,4BACI;AAAQ,aAAG,oBAAahB,EAAb,CAAX;AAA8B,mBAAS,EAAC,+EAAxC;AACI,iBAAO,EAAE,MAAK;AAAA;;AAAC,oCAAKoI,KAAL,EAAW+B,OAAX,MAAkB,IAAlB,IAAkB3E,aAAlB,GAAkB,MAAlB,GAAkBA,YAAGxF,EAAH,CAAlB;AAAwB;AAD3C,wBAGI,oBAAC,6CAAD;AAAS,eAAK,EAAE,EAAhB;AAAoB,gBAAM,EAAE,EAA5B;AAAgC,iBAAO,EAAE;AAAE4K,aAAC,EAAE,CAAL;AAAQC,aAAC,EAAE,CAAX;AAAc3I,iBAAK,EAAE,EAArB;AAAyBC,kBAAM,EAAE;AAAjC;AAAzC,wBACI,oBAAC,6CAAD;AAAS,YAAE,EAAE,CAAb;AAAgB,YAAE,EAAE,CAApB;AAAuB,cAAI,EAAC,QAA5B;AAAqC,cAAI,EAAE,EAA3C;AAA+C,cAAI,EAAEgT;AAArD,UADJ,EAEK,CAAC,CAAC,KAAK/M,KAAL,CAAWiH,UAAX,CAAsBrP,EAAtB,CAAD,IAA8B,KAAKoI,KAAL,CAAWiH,UAAX,CAAsB0I,OAAtB,KAAkC,KAAjE,kBAA2E,oBAAC,6CAAD;AACxE,YAAE,EAAE,CADoE;AAExE,YAAE,EAAE,CAFoE;AAGxE,cAAI,EAAC,QAHmE;AAIxE,cAAI,EAAE,EAJkE;AAKxE,cAAI,EAAC;AALmE,UAFhF,CAHJ,eAcI;AAAM,mBAAS,EAAC;AAAhB,WAAwB/W,KAAK,CAACiU,KAA9B,CAdJ,CADJ;AAkBH,OAtBD,CAPR,CAD0D;AAAA,KAAhD,CAAd;AAmCA,wBACI;AAAK,eAAS,EAAC;AAAf,OACK,CAAC,KAAK7M,KAAL,CAAW0P,MAAZ,gBAAqB;AAAK,eAAS,EAAC;AAAf,oBAClB,mCAAQnO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,oBAAzB,CAAR,CADkB,eAElB;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,MADJ,EAGQyN,YAAY,CAAChb,GAAb,CAAiB,CAACkb,IAAD,EAAOpE,CAAP,KAAY;AACzB,YAAMyC,OAAO,GAAG2B,IAAI,CAAC/N,KAAL,CAAWlN,CAAC,IAAI,KAAK6L,KAAL,CAAWiH,UAAX,CAAsB9S,CAAtB,CAAhB,CAAhB;AACA,YAAM0E,KAAK,GAAGuW,IAAI,CAACQ,IAAL,CAAUzb,CAAC,IAAI,CAAC,KAAK6L,KAAL,CAAWiH,UAAX,CAAsB9S,CAAtB,CAAhB,CAAd;AACA,YAAM0b,QAAQ,GAAGhX,KAAK,GAAGuW,IAAI,CAAClX,MAAL,CAAY/D,CAAC,IAAI,CAAC,KAAK6L,KAAL,CAAWiH,UAAX,CAAsB9S,CAAtB,CAAlB,CAAH,GAAiDib,IAAvE;AAEA,0BACI;AAAQ,WAAG,uBAAgBpE,CAAhB,CAAX;AAAgC,iBAAS,EAAC,0EAA1C;AACI,eAAO,EAAE,MAAK;AAAA;;AAAC,kCAAKhL,KAAL,EAAW+B,OAAX,MAAkB,IAAlB,IAAkB3E,aAAlB,GAAkB,MAAlB,GAAkBA,YAAG,GAAGyS,QAAN,CAAlB;AAAiC;AADpD,sBAGI,oBAAC,6CAAD;AAAS,aAAK,EAAE,EAAhB;AAAoB,cAAM,EAAE,EAA5B;AAAgC,eAAO,EAAE;AAAErN,WAAC,EAAE,CAAL;AAAQC,WAAC,EAAE,CAAX;AAAc3I,eAAK,EAAE,EAArB;AAAyBC,gBAAM,EAAE;AAAjC;AAAzC,sBACI,oBAAC,6CAAD;AAAS,UAAE,EAAE,CAAb;AAAgB,UAAE,EAAE,CAApB;AAAuB,YAAI,EAAC,QAA5B;AAAqC,YAAI,EAAE,EAA3C;AAA+C,YAAI,EAAEyV,MAAM,CAACxE,CAAD;AAA3D,QADJ,EAEK,CAACyC,OAAD,iBAAY,oBAAC,6CAAD;AACT,UAAE,EAAE,CADK;AAET,UAAE,EAAE,CAFK;AAGT,YAAI,EAAC,QAHI;AAIT,YAAI,EAAE,EAJG;AAKT,YAAI,EAAC;AALI,QAFjB,CAHJ,CADJ;AAgBH,KArBD,CAHR,CADJ,EA4BKgC,KA5BL,CAFkB,CAArB,GAgCQA,KAjCb,CADJ;AAqCH;;AA1F2D;AACrDhJ,6BAAe;AAClByG,SAAO,EAAE;AADS,CAAf;AA4FX,+DAAezG,aAAf;;;;;;;;;;;;;;;;;;;;;;;;ACzGA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAiCM,MAAOD,cAAP,SAA8B5G,4CAA9B,CAAiF;AAKnFG,cAAYC,KAAZ,EAAgD;AAC5C,UAAMA,KAAN;AAEA,SAAKnH,KAAL,GAAa;AACT4P,aAAO,EAAE,KADA;AAETD,aAAO,EAAE,KAFA;AAGTG,SAAG,EAAE,KAHI;AAITE,SAAG,EAAE,KAJI;AAKTE,SAAG,EAAE,KALI;AAMTE,SAAG,EAAE,KANI;AAOTE,SAAG,EAAE;AAPI,KAAb;AASH;;AAEDnB,mBAAiB;AACb,QAAI,KAAKhI,KAAL,CAAWkQ,SAAf,EAA0B;AACtB,YAAMC,OAAO,GAAG,KAAKC,aAAL,EAAhB;AACA9T,MAAAA,6CAAA,CAAgB6T,OAAhB,EAAyB,KAAKnQ,KAAL,CAAWkQ,SAApC;AACH;AACJ;;AAEDnL,oBAAkB,CAACC,SAAD,EAA2CC,SAA3C,EAAmF;;;AACjG,QAAI,KAAKjF,KAAL,CAAWkQ,SAAf,EAA0B;AACtB,YAAMC,OAAO,GAAG,KAAKC,aAAL,EAAhB;AACA9T,MAAAA,6CAAA,CAAgB6T,OAAhB,EAAyB,KAAKnQ,KAAL,CAAWkQ,SAApC;AACH;;AAED,QAAI,KAAKrX,KAAL,CAAW4P,OAAX,IAAsBxD,SAAS,CAACwD,OAApC,EAA6C;AACzC,uBAAKzI,KAAL,EAAWqQ,gBAAX,MAA2B,IAA3B,IAA2BjT,aAA3B,GAA2B,MAA3B,GAA2BA,YAAG,KAAKvE,KAAL,CAAW4P,OAAd,CAA3B;AACH;;AACD,QAAI,KAAK5P,KAAL,CAAW2P,OAAX,IAAsBvD,SAAS,CAACuD,OAApC,EAA6C;AACzC,uBAAKxI,KAAL,EAAWsQ,gBAAX,MAA2B,IAA3B,IAA2BhS,aAA3B,GAA2B,MAA3B,GAA2BA,YAAG,KAAKzF,KAAL,CAAW2P,OAAd,CAA3B;AACH;;AACD,QAAI,KAAK3P,KAAL,CAAW8P,GAAX,IAAkB1D,SAAS,CAAC0D,GAAhC,EAAqC;AACjC,uBAAK3I,KAAL,EAAWuQ,YAAX,MAAuB,IAAvB,IAAuB/R,aAAvB,GAAuB,MAAvB,GAAuBA,YAAG,KAAK3F,KAAL,CAAW8P,GAAd,CAAvB;AACH;;AACD,QAAI,KAAK9P,KAAL,CAAWgQ,GAAX,IAAkB5D,SAAS,CAAC4D,GAAhC,EAAqC;AACjC,uBAAK7I,KAAL,EAAWwQ,YAAX,MAAuB,IAAvB,IAAuB9R,aAAvB,GAAuB,MAAvB,GAAuBA,YAAG,KAAK7F,KAAL,CAAWgQ,GAAd,CAAvB;AACH;;AACD,QAAI,KAAKhQ,KAAL,CAAWkQ,GAAX,IAAkB9D,SAAS,CAAC8D,GAAhC,EAAqC;AACjC,uBAAK/I,KAAL,EAAWyQ,YAAX,MAAuB,IAAvB,IAAuB7R,aAAvB,GAAuB,MAAvB,GAAuBA,YAAG,KAAK/F,KAAL,CAAWkQ,GAAd,CAAvB;AACH;;AACD,QAAI,KAAKlQ,KAAL,CAAWoQ,GAAX,IAAkBhE,SAAS,CAACgE,GAAhC,EAAqC;AACjC,uBAAKjJ,KAAL,EAAW0Q,YAAX,MAAuB,IAAvB,IAAuB5R,aAAvB,GAAuB,MAAvB,GAAuBA,YAAG,KAAKjG,KAAL,CAAWoQ,GAAd,CAAvB;AACH;;AACD,QAAI,KAAKpQ,KAAL,CAAWsQ,GAAX,IAAkBlE,SAAS,CAACkE,GAAhC,EAAqC;AACjC,uBAAKnJ,KAAL,EAAW2Q,YAAX,MAAuB,IAAvB,IAAuB3R,aAAvB,GAAuB,MAAvB,GAAuBA,YAAG,KAAKnG,KAAL,CAAWsQ,GAAd,CAAvB;AACH;AACJ;;AAEDU,sBAAoB;AAChB,QAAI,KAAK7J,KAAL,CAAWkQ,SAAf,EAA0B;AACtB5T,MAAAA,6DAAA,CAAgC,KAAK0D,KAAL,CAAWkQ,SAA3C;AACH;AACJ;;AAEDE,eAAa;;;AACT,UAAM;AAAElD;AAAF,QAAc,KAAKlN,KAAzB;AACA,UAAMjM,IAAI,GAAG,aAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAG,CAAH,CAAP,MAAY,IAAZ,IAAYmJ,aAAZ,GAAY,MAAZ,GAAYA,GAAEgQ,OAA3B;AAEA,wBACI,uDACI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI,+CADJ,eAGI,oBAAC,uDAAD;AACI,aAAO,EAAE,CAAC,OAAD,EAAU,OAAV,CADb;AAEI,eAAS,EAAC,MAFd;AAGI,aAAO,eACH,oBAAC,uDAAD;AAAS,UAAE,EAAC;AAAZ,sBACI,oBAAC,6DAAD;AAAe,UAAE,EAAC;AAAlB,sBADJ,eAEI,oBAAC,+DAAD,qBACI,6CACI,sWADJ,eAII,sHAJJ,eAOI,+bAPJ,CADJ,CAFJ;AAJR,oBAqBI;AAAQ,eAAS,EAAC;AAAlB,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE+C,4EAAvB;AAAqC,UAAI,EAAE;AAA3C,MADJ,CArBJ,CAHJ,CADJ,eA+BI;AAAO,eAAS,EAAC;AAAjB,oBACI,mCACK,KAAKjQ,KAAL,CAAWyI,OAAX,KAAuBhU,SAAvB,iBAAoC,6CACjC;AAAI,eAAS,EAAC;AAAd,oBACI;AAAG,UAAI,EAAC,GAAR;AAAY,aAAO,EAAE,MAAM,KAAKoM,QAAL,CAAc;AAAE4H,eAAO,EAAE,CAAC,KAAK5P,KAAL,CAAW4P;AAAvB,OAAd;AAA3B,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE,KAAK5P,KAAL,CAAW4P,OAAX,GAAqBsH,2EAArB,GAAqCD,sEAAQA;AAApE,MADJ,CADJ,CADiC,eAMjC;AAAI,eAAS,EAAC;AAAd,aANiC,eAOjC;AAAI,eAAS,EAAC;AAAd,OAAwB,KAAKe,WAAL,CAAiB,KAAK7Q,KAAL,CAAWyI,OAA5B,CAAxB,CAPiC,CADzC,EAUK,KAAKzI,KAAL,CAAWwI,OAAX,KAAuB/T,SAAvB,iBAAoC,6CACjC;AAAI,eAAS,EAAC;AAAd,oBACI;AAAG,UAAI,EAAC,GAAR;AAAY,aAAO,EAAE,MAAM,KAAKoM,QAAL,CAAc;AAAE2H,eAAO,EAAE,CAAC,KAAK3P,KAAL,CAAW2P;AAAvB,OAAd;AAA3B,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE,KAAK3P,KAAL,CAAW2P,OAAX,GAAqBuH,2EAArB,GAAqCD,sEAAQA;AAApE,MADJ,CADJ,CADiC,eAMjC;AAAI,eAAS,EAAC;AAAd,aANiC,eAOjC;AAAI,eAAS,EAAC;AAAd,OAAwB,KAAKe,WAAL,CAAiB,KAAK7Q,KAAL,CAAWwI,OAA5B,CAAxB,CAPiC,CAVzC,EAmBK,KAAKxI,KAAL,CAAW2I,GAAX,KAAmBlU,SAAnB,iBAAiC,6CAC9B;AAAI,eAAS,EAAC;AAAd,oBACI;AAAG,UAAI,EAAC,GAAR;AAAY,aAAO,EAAE,MAAM,KAAKoM,QAAL,CAAc;AAAE8H,WAAG,EAAE,CAAC,KAAK9P,KAAL,CAAW8P;AAAnB,OAAd;AAA3B,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE,KAAK9P,KAAL,CAAW8P,GAAX,GAAiBoH,2EAAjB,GAAiCD,sEAAQA;AAAhE,MADJ,CADJ,CAD8B,eAM9B;AAAI,eAAS,EAAC;AAAd,aAN8B,eAO9B;AAAI,eAAS,EAAC;AAAd,OAAwB,KAAKe,WAAL,CAAiB,KAAK7Q,KAAL,CAAW2I,GAA5B,CAAxB,CAP8B,CAnBtC,EA4BK,KAAK3I,KAAL,CAAW6I,GAAX,KAAmBpU,SAAnB,iBAAgC,6CAC7B;AAAI,eAAS,EAAC;AAAd,oBACI;AAAG,UAAI,EAAC,GAAR;AAAY,aAAO,EAAE,MAAM,KAAKoM,QAAL,CAAc;AAAEgI,WAAG,EAAE,CAAC,KAAKhQ,KAAL,CAAWgQ;AAAnB,OAAd;AAA3B,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE,KAAKhQ,KAAL,CAAWgQ,GAAX,GAAiBkH,2EAAjB,GAAiCD,sEAAQA;AAAhE,MADJ,CADJ,CAD6B,eAM7B;AAAI,eAAS,EAAC;AAAd,aAN6B,eAO7B;AAAI,eAAS,EAAC;AAAd,OAAwB,KAAKe,WAAL,CAAiB,KAAK7Q,KAAL,CAAW6I,GAA5B,CAAxB,CAP6B,CA5BrC,EAqCK,KAAK7I,KAAL,CAAW+I,GAAX,KAAmBtU,SAAnB,iBAAiC,6CAC9B;AAAI,eAAS,EAAC;AAAd,oBACI;AAAG,UAAI,EAAC,GAAR;AAAY,aAAO,EAAE,MAAM,KAAKoM,QAAL,CAAc;AAAEkI,WAAG,EAAE,CAAC,KAAKlQ,KAAL,CAAWkQ;AAAnB,OAAd;AAA3B,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE,KAAKlQ,KAAL,CAAWkQ,GAAX,GAAiBgH,2EAAjB,GAAiCD,sEAAQA;AAAhE,MADJ,CADJ,CAD8B,eAM9B;AAAI,eAAS,EAAC;AAAd,aAN8B,eAO9B;AAAI,eAAS,EAAC;AAAd,OAAwB,KAAKe,WAAL,CAAiB,KAAK7Q,KAAL,CAAW+I,GAA5B,CAAxB,CAP8B,CArCtC,EA8CK,KAAK/I,KAAL,CAAWiJ,GAAX,KAAmBxU,SAAnB,iBAAgC,6CAC7B;AAAI,eAAS,EAAC;AAAd,oBACI;AAAG,UAAI,EAAC,GAAR;AAAY,aAAO,EAAE,MAAM,KAAKoM,QAAL,CAAc;AAAEoI,WAAG,EAAE,CAAC,KAAKpQ,KAAL,CAAWoQ;AAAnB,OAAd;AAA3B,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE,KAAKpQ,KAAL,CAAWoQ,GAAX,GAAiB8G,2EAAjB,GAAiCD,sEAAQA;AAAhE,MADJ,CADJ,CAD6B,eAM7B;AAAI,eAAS,EAAC;AAAd,aAN6B,eAO7B;AAAI,eAAS,EAAC;AAAd,OAAwB,KAAKe,WAAL,CAAiB,KAAK7Q,KAAL,CAAWiJ,GAA5B,CAAxB,CAP6B,CA9CrC,EAuDK,KAAKjJ,KAAL,CAAWmJ,GAAX,KAAmB1U,SAAnB,iBAAiC,6CAC9B;AAAI,eAAS,EAAC;AAAd,oBACI;AAAG,UAAI,EAAC,GAAR;AAAY,aAAO,EAAE,MAAM,KAAKoM,QAAL,CAAc;AAAEsI,WAAG,EAAE,CAAC,KAAKtQ,KAAL,CAAWsQ;AAAnB,OAAd;AAA3B,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE,KAAKtQ,KAAL,CAAWsQ,GAAX,GAAiB4G,2EAAjB,GAAiCD,sEAAQA;AAAhE,MADJ,CADJ,CAD8B,eAM9B;AAAI,eAAS,EAAC;AAAd,YAN8B,eAO9B;AAAI,eAAS,EAAC;AAAd,OAAwB,KAAKe,WAAL,CAAiB,KAAK7Q,KAAL,CAAWmJ,GAA5B,CAAxB,CAP8B,CAvDtC,CADJ,CA/BJ,CADJ,eAqGI,iCACKpV,IAAI,IAAImZ,OAAR,gBACG;AAAO,eAAS,EAAC;AAAjB,oBACI,gDACI,6CACI;AAAI,WAAK,EAAC,KAAV;AAAgB,aAAO,EAAE;AAAzB,oBACI,oCAASvN,6CAAM,CAAC5L,IAAI,CAACkW,IAAN,CAAN,CAAkB9T,MAAlB,CAAyB,mBAAzB,CAAT,CADJ,CADJ,CADJ,CADJ,eAQI,mCACKyP,8CAAM,CAACsH,OAAO,CAAChV,MAAR,CAAe/D,CAAC,IAAIA,CAAC,CAAC2M,IAAF,IAAU,CAAC,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,EAA6B,KAA7B,EAAoC,KAApC,EAA2C,KAA3C,EAAkDiH,QAAlD,CAA2D5T,CAAC,CAAC2M,IAA7D,CAA/B,CAAD,EAAqG3M,CAAC,IAAIA,CAAC,CAAC2c,OAA5G,CAAN,CACI5c,GADJ,CACQC,CAAC,IAAG;;;AACL,YAAM4c,KAAK,GAAG5c,CAAC,CAAC+Y,OAAhB;AACA,aAAO6D,KAAK,gBACR;AAAI,WAAG,oBAAa5c,CAAC,CAAC2M,IAAf;AAAP,sBACI;AAAI,aAAK,EAAC;AAAV,SACK3M,CAAC,CAAC2M,IAAF,GAAS,WAAKd,KAAL,CAAWgR,MAAX,CAAkB7c,CAAC,CAAC2M,IAApB,OAAyB,IAAzB,IAAyB5D,aAAzB,GAAyBA,EAAzB,GAA6B/I,CAAC,CAAC2M,IAAxC,GAA+C,GADpD,CADJ,eAII,gCACK3M,CAAC,CAACyE,KAAF,GAAU,KAAKiY,WAAL,CAAiB1c,CAAC,CAACyE,KAAnB,CAAV,GAAsC,GAD3C,CAJJ,CADQ,GASRnE,SATJ;AAUH,KAbJ,CADL,CARJ,CADH,GA0BGA,SA3BR,CArGJ,CADJ;AAqIH;;AAEDoc,aAAW,CAACjY,KAAD,EAAc;AACrB,qBAAU2L,IAAI,CAACC,KAAL,CAAW5L,KAAK,GAAG,IAAnB,IAA2B,IAArC;AACH;;AAEDyG,QAAM;AACF,WAAO,IAAP;AACH;;AA9MkF;AAC5EmH,8BAAe;AAClB0G,SAAO,EAAE;AADS,CAAf;AAgNX,+DAAe1G,cAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3PA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;;AAiBA,SAASyL,gBAAT,CAA0BjS,KAA1B,EAAsD;;;AAClD,QAAM;AAAEkS,aAAF;AAAa5d,QAAb;AAAmB2H,QAAnB;AAAyBkW;AAAzB,MAAuCnS,KAA7C;AAEA,QAAM,CAAC/K,OAAD,EAAUmd,UAAV,IAAwBR,+CAAQ,EAAtC;AACA,QAAM,CAACS,gBAAD,EAAmBC,mBAAnB,IAA0CV,+CAAQ,EAAxD;AACA,QAAM,CAACW,cAAD,EAAiBC,iBAAjB,IAAsCZ,+CAAQ,EAApD;AACA,QAAM,CAACa,QAAD,EAAWC,WAAX,IAA0Bd,+CAAQ,CAAoD,EAApD,CAAxC;AACA,QAAM,CAACe,QAAD,EAAWC,WAAX,IAA0BhB,+CAAQ,CAAS,CAAT,CAAxC;AACA,QAAM,CAAC1Z,MAAD,EAAS2a,SAAT,IAAsBjB,+CAAQ,CAAyB,EAAzB,CAApC;AACA,QAAM,CAACkB,KAAD,EAAQC,QAAR,IAAoBnB,+CAAQ,CAA0B,WAA1B,CAAlC;AAEA,QAAM,CAACoB,SAAD,EAAYC,YAAZ,IAA4BrB,+CAAQ,EAA1C;AACA,QAAM,CAACsB,SAAD,EAAYC,YAAZ,IAA4BvB,+CAAQ,EAA1C;AACA,QAAM,CAACwB,UAAD,EAAaC,aAAb,IAA8BzB,+CAAQ,EAA5C;AACA,QAAM,CAAC0B,SAAD,EAAYC,YAAZ,IAA4B3B,+CAAQ,EAA1C;AACA,QAAM,CAAC4B,iBAAD,EAAoBC,oBAApB,IAA4C7B,+CAAQ,EAA1D;AAEA,QAAM8B,WAAW,GAAG/B,6CAAM,EAA1B;AACA,QAAMgC,aAAa,GAAGhC,6CAAM,EAA5B;AACA,QAAMiC,UAAU,GAAGjC,6CAAM,CAAyBzZ,MAAzB,CAAzB;AACA,QAAM2b,SAAS,GAAGlC,6CAAM,CAA0BmB,KAA1B,CAAxB;AAEA,QAAMgB,WAAW,GAAGjC,kDAAW,CAAC,MAAK;;;AACjCe,eAAW,CAAC,aAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAE5I,MAAT,MAAe,IAAf,IAAe9M,aAAf,GAAeA,EAAf,GAAmB,CAApB,CAAX;AACA2V,aAAS,CAAC,EAAD,CAAT;AACH,GAH8B,EAG5B,CAAC5d,OAAD,CAH4B,CAA/B;AAKAyc,EAAAA,gDAAS,CAAC,MAAK;AACX,QAAIgC,WAAW,CAACxO,OAAZ,IAAuBjQ,OAA3B,EAAoC;AAChC6e,iBAAW;AAEXJ,iBAAW,CAACxO,OAAZ,GAAsBjQ,OAAtB;AACH;AACJ,GANQ,EAMN,CAAC6e,WAAD,EAAc7e,OAAd,CANM,CAAT;AAQAyc,EAAAA,gDAAS,CAAC,MAAK;AACX,QAAIiC,aAAa,CAACzO,OAAd,IAAyBgN,SAA7B,EAAwC;AACpCI,yBAAmB,CAACJ,SAAS,CAAChe,GAAV,CAAcsO,CAAC,IAAG;AAAA;;AAAC,+CAAMA,CAAN,GAAO;AAAEhK,gBAAM,EAAE,CAACgK,CAAC,CAAChK,MAAF,CAAU,CAAC,UAAI,SAAJ,QAAI,WAAJ,GAAI,MAAJ,OAAI,CAAG,CAAH,CAAJ,CAAUub,QAAV,MAAkB,IAAlB,IAAkB7W,aAAlB,GAAkBA,EAAlB,GAAsB,CAAvB,IAAuC,CAAjD,CAAD;AAAV,SAAP;AAAwE,OAA3F,CAAD,CAAnB;AACAyW,mBAAa,CAACzO,OAAd,GAAwBgN,SAAxB;AACH;AACJ,GALQ,EAKN,CAACA,SAAD,EAAY5d,IAAZ,CALM,CAAT;AAOAod,EAAAA,gDAAS,CAAC,MAAK;;;AACX,QAAIkC,UAAU,CAAC1O,OAAX,IAAsBhN,MAA1B,EAAkC;AAC9B,YAAM8b,WAAW,GAAsD,EAAvE;AACA,UAAIlJ,KAAK,GAAG,CAAZ;;AACA,UAAI7V,OAAJ,EAAa;AACT,aAAK,MAAMqD,MAAX,IAAqBrD,OAArB,EAA8B;AAC1B,cAAI,CAAC,EAAC,YAAM,CAAC2D,KAAP,MAAY,IAAZ,IAAYsE,aAAZ,GAAY,MAAZ,GAAYA,GAAE8M,MAAf,MAAyB,YAAM,CAACpR,KAAP,MAAY,IAAZ,IAAYwE,aAAZ,GAAY,MAAZ,GAAYA,GAAE2K,QAAF,CAAW,YAAM,CAAC,CAAD,CAAN,CAAUnP,KAAV,MAAe,IAAf,IAAemF,aAAf,GAAeA,EAAf,GAAmBtJ,SAA9B,CAArC,CAAD,MACC,EAAC,YAAM,CAACoE,KAAP,MAAY,IAAZ,IAAYyF,aAAZ,GAAY,MAAZ,GAAYA,GAAE0L,MAAf,MAAyB,YAAM,CAACnR,KAAP,MAAY,IAAZ,IAAY0F,aAAZ,GAAY,MAAZ,GAAYA,GAAEwJ,QAAF,CAAW,YAAM,CAAC,CAAD,CAAN,CAAUlP,KAAV,MAAe,IAAf,IAAe2F,aAAf,GAAeA,EAAf,GAAmB/J,SAA9B,CAArC,CADD,MAEC,EAAC,YAAM,CAACqE,MAAP,MAAa,IAAb,IAAa2F,aAAb,GAAa,MAAb,GAAaA,GAAEuL,MAAhB,MAA0B,YAAM,CAAClR,MAAP,MAAa,IAAb,IAAa4F,aAAb,GAAa,MAAb,GAAaA,GAAEqJ,QAAF,CAAW,YAAM,CAAC,CAAD,CAAN,CAAUjP,MAAV,MAAgB,IAAhB,IAAgB6F,aAAhB,GAAgBA,EAAhB,GAAoBlK,SAA/B,CAAvC,CAFD,MAGC,EAAC,YAAM,CAACsE,aAAP,MAAoB,IAApB,IAAoB6F,aAApB,GAAoB,MAApB,GAAoBA,GAAEoL,MAAvB,MAAiC,YAAM,CAACjR,aAAP,MAAoB,IAApB,IAAoB8F,aAApB,GAAoB,MAApB,GAAoBA,GAAEkJ,QAAF,CAAW,YAAM,CAAC,CAAD,CAAN,CAAUhP,aAAV,MAAuB,IAAvB,IAAuB+F,aAAvB,GAAuBA,EAAvB,GAA2BrK,SAAtC,CAArD,CAHD,CAAJ,EAG6G;AAEzGuf,uBAAW,CAAClW,IAAZ,CAAiBxF,MAAjB;AACA,gBAAIA,MAAM,CAAC,CAAD,CAAV,EAAewS,KAAK;AACvB,WAPD,MAOO;AACHxS,kBAAM,CAAC,CAAD,CAAN,GAAY,KAAZ;AACH;AACJ;AACJ;;AAEDsa,iBAAW,CAAC9H,KAAD,CAAX;AACA4H,iBAAW,CAACsB,WAAD,CAAX;AAEAJ,gBAAU,CAAC1O,OAAX,GAAqBhN,MAArB;AACH;AACJ,GAxBQ,EAwBN,CAACjD,OAAD,EAAUiD,MAAV,CAxBM,CAAT;AA0BAwZ,EAAAA,gDAAS,CAAC,MAAK;AACX,QAAImC,SAAS,CAAC3O,OAAV,IAAqB4N,KAAzB,EAAgC;AAC5B,UAAIA,KAAK,IAAI,SAAb,EAAwB;AACpB,cAAM3D,KAAK,GAAGsD,QAAQ,CAACva,MAAT,CAAgB;AAAA,cAAC,IAAG+b,CAAH,CAAD;AAAA,iBAAWA,CAAX;AAAA,SAAhB,EAA8B/f,GAA9B,CAAkC;AAAA,cAAC,GAAEsO,CAAF,CAAD;AAAA,iBAAUA,CAAV;AAAA,SAAlC,CAAd;AACA,cAAMoF,SAAS,GAAG;AACdhP,eAAK,EAAEoZ,kDAAU,CAACpM,8CAAM,CAACuJ,KAAK,CAACjb,GAAN,CAAUsO,CAAC,IAAG;AAAA;;AAAC,0BAAC,CAAC5J,KAAF,MAAO,IAAP,IAAOsE,aAAP,GAAOA,EAAP,GAAWzI,SAAX;AAAoB,WAAnC,CAAD,CAAP,CADH;AAEdoE,eAAK,EAAEmZ,kDAAU,CAACpM,8CAAM,CAACuJ,KAAK,CAACjb,GAAN,CAAUsO,CAAC,IAAG;AAAA;;AAAC,0BAAC,CAAC3J,KAAF,MAAO,IAAP,IAAOqE,aAAP,GAAOA,EAAP,GAAWzI,SAAX;AAAoB,WAAnC,CAAD,CAAP,CAFH;AAGdqE,gBAAM,EAAEkZ,kDAAU,CAACpM,8CAAM,CAACuJ,KAAK,CAACjb,GAAN,CAAUsO,CAAC,IAAG;AAAA;;AAAC,0BAAC,CAAC1J,MAAF,MAAQ,IAAR,IAAQoE,aAAR,GAAQA,EAAR,GAAYzI,SAAZ;AAAqB,WAApC,CAAD,CAAP,CAHJ;AAIdsE,uBAAa,EAAEiZ,kDAAU,CAACpM,8CAAM,CAACuJ,KAAK,CAACjb,GAAN,CAAUsO,CAAC,IAAG;AAAA;;AAAC,0BAAC,CAACzJ,aAAF,MAAe,IAAf,IAAemE,aAAf,GAAeA,EAAf,GAAmBzI,SAAnB;AAA4B,WAA3C,CAAD,CAAP,CAJX;AAKduE,eAAK,EAAEgZ,kDAAU,CAACpM,8CAAM,CAACuJ,KAAK,CAACjb,GAAN,CAAUsO,CAAC,IAAG;AAAA;;AAAC,0BAAC,CAACxJ,KAAF,MAAO,IAAP,IAAOkE,aAAP,GAAOA,EAAP,GAAWzI,SAAX;AAAoB,WAAnC,CAAD,CAAP;AALH,SAAlB;AAQAwe,oBAAY,CAACrL,SAAS,CAAChP,KAAV,CAAgBoR,MAAhB,IAA0B,CAA1B,GAA8BpC,SAAS,CAAChP,KAAV,CAAgB,CAAhB,CAA9B,GAAmDnE,SAApD,CAAZ;AACA0e,oBAAY,CAACvL,SAAS,CAAC/O,KAAV,CAAgBmR,MAAhB,IAA0B,CAA1B,GAA8BpC,SAAS,CAAC/O,KAAV,CAAgB,CAAhB,CAA9B,GAAmDpE,SAApD,CAAZ;AACA4e,qBAAa,CAACzL,SAAS,CAAC9O,MAAV,CAAiBkR,MAAjB,IAA2B,CAA3B,GAA+BpC,SAAS,CAAC9O,MAAV,CAAiB,CAAjB,CAA/B,GAAqDrE,SAAtD,CAAb;AACAgf,4BAAoB,CAAC7L,SAAS,CAAC7O,aAAV,CAAwBiR,MAAxB,IAAkC,CAAlC,GAAsCpC,SAAS,CAAC7O,aAAV,CAAwB,CAAxB,CAAtC,GAAmEtE,SAApE,CAApB;AACA8e,oBAAY,CAAC3L,SAAS,CAAC5O,KAAV,CAAgBgR,MAAhB,IAA0B,CAA1B,GAA8BpC,SAAS,CAAC5O,KAAV,CAAgB,CAAhB,CAA9B,GAAmDvE,SAApD,CAAZ;AACH;;AAKDof,eAAS,CAAC3O,OAAV,GAAoB4N,KAApB;AACH;AACJ,GAxBQ,EAwBN,CAACL,QAAD,EAAWqB,WAAX,EAAwBhB,KAAxB,CAxBM,CAAT;AA0BA,QAAMoB,iCAAiC,GAAGrC,kDAAW,CAAQ1C,KAAP,IAAmDxF,gDAAAA;AACrG,QAAI,EAACwF,KAAK,SAAL,SAAK,WAAL,GAAK,MAAL,QAAK,CAAEnF,MAAR,CAAJ,EAAoB;AAChBoI,gBAAU,CAAC3d,SAAD,CAAV;AACA;AACH;;AAED0d,aAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAG,IAAH,CAAT;AAEA,UAAM,CAACgC,YAAD,IAAiB7f,IAAvB;AACA,UAAM8f,IAAI,GACNjT,MAAM,CAAC4I,MAAP,CAAc,EAAd,EAAkB,GAAGoF,KAAK,CAACjb,GAAN,CAAU+f,CAAC,KAAK;AAAE,OAAChX,MAAM,CAACgX,CAAC,CAAChb,SAAH,CAAP,GAAuB,CAACgb,CAAD,EAAIxf,SAAJ;AAAzB,KAAL,CAAX,CAArB,CADJ;AAGA,UAAMjB,QAAQ,GAAG,MAAMN,iEAAA,CAAyB;AAC5C+E,aAAO,EAAEkc,YAAY,CAACE,SADsB;AAE5Cte,YAAM,EAAEoe,YAAY,CAACG,QAFuB;AAG5Cpc,YAAM,EAAEic,YAAY,CAACJ,QAHuB;AAI5C5b,gBAAU,EAAEgJ,MAAM,CAACC,IAAP,CAAYgT,IAAZ,EAAkBlgB,GAAlB,CAAsB+I,MAAtB;AAJgC,KAAzB,CAAvB;;AAOA,QAAIzJ,QAAQ,CAACc,IAAb,EAAmB;AACf,WAAK,MAAM8a,IAAX,IAAmB5b,QAAQ,CAACc,IAAT,CAAckE,MAAjC,EAAyC;AACrC4b,YAAI,CAACnX,MAAM,CAACmS,IAAI,CAACnW,SAAN,CAAP,CAAJ,CAA6B,CAA7B,IAAkCmW,IAAlC;AACH;AACJ;;AAED,UAAM5W,MAAM,GAAG2I,MAAM,CAAC3I,MAAP,CAAc4b,IAAd,EAAoBlc,MAApB,CAA2B;AAAA,UAAC,GAAE/D,CAAF,CAAD;AAAA,aAAUA,CAAV;AAAA,KAA3B,EACVD,GADU,CACNsO,CAAC,IAAI,CAAC,GAAGA,CAAJ,EAAO,IAAP,CADC,CAAf;AAGA4P,cAAU,CAAC5Z,MAAD,CAAV;AACA2Z,aAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAG,KAAH,CAAT;AACH,GA9BwG,CAApD,EA8BlD,CAACA,SAAD,EAAY7d,IAAZ,CA9BkD,CAArD;AAgCA,QAAMigB,cAAc,GAAG1C,kDAAW,CAAC,MAA0BlI,gDAAAA;AACzD,UAAM,CAACwK,YAAD,IAAiB7f,IAAvB;AACA,UAAMpB,iEAAA,CAAyB;AAC3B+E,aAAO,EAAEkc,YAAY,CAACE,SADK;AAE3Bte,YAAM,EAAEoe,YAAY,CAACG,QAFM;AAG3Bpc,YAAM,EAAEic,YAAY,CAACJ;AAHM,KAAzB,CAAN;;AAMA,QAAI1B,gBAAJ,EAAsB;AAClB,WAAK,MAAMmC,SAAX,IAAwBnC,gBAAxB,EAA0C;AACtC,cAAMzZ,KAAK,GAAG4b,SAAS,CAAChc,MAAV,CAAiB,CAAjB,CAAd;AACAI,aAAK,CAAC6b,QAAN,GAAiB7b,KAAK,CAACsH,KAAN,GAActH,KAAK,CAAC8b,GAApB,GAA0B,IAA3C;AACH;;AAEDpC,yBAAmB,CAAC,CAAC,GAAGD,gBAAJ,CAAD,CAAnB;AACH;AAEJ,GAjB4D,CAA3B,EAiB/B,CAACA,gBAAD,EAAmB/d,IAAnB,CAjB+B,CAAlC;AAmBA,QAAMqgB,aAAa,GAAG9C,kDAAW,CAAC,MAA0BlI,gDAAAA;AACxDoJ,YAAQ,CAAC,WAAD,CAAR;AACH,GAF2D,CAA3B,EAE9B,EAF8B,CAAjC;AAIA,QAAM6B,WAAW,GAAG/C,kDAAW,CAAC,MAA0BlI,gDAAAA;;;AACtD,QAAI,CAAC8I,QAAQ,CAACzI,MAAd,EAAsB;AAEtBmI,aAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAG,IAAH,CAAT;AAEA,UAAM,CAACgC,YAAD,IAAiB7f,IAAvB;AACA,UAAM6a,KAAK,GAAGsD,QAAQ,CAACva,MAAT,CAAgB;AAAA,UAAC,IAAG+b,CAAH,CAAD;AAAA,aAAWA,CAAX;AAAA,KAAhB,EAA8B/f,GAA9B,CAAkC;AAAA,UAAC,GAAEsO,CAAF,CAAD;AAAA,aAAUA,CAAV;AAAA,KAAlC,CAAd;AAEA,UAAMqS,cAAc,GAAuC,EAA3D;;AACA,SAAK,MAAMzF,IAAX,IAAmBD,KAAnB,EAA0B;AACtBC,UAAI,CAACxW,KAAL,GAAaoa,SAAS,SAAT,aAAS,WAAT,eAAa/f,kFAA1B;AACAmc,UAAI,CAACvW,KAAL,GAAaqa,SAAS,SAAT,aAAS,WAAT,eAAajgB,kFAA1B;AACAmc,UAAI,CAACtW,MAAL,GAAcsa,UAAU,SAAV,cAAU,WAAV,gBAAcngB,oFAA5B;AACAmc,UAAI,CAACpW,KAAL,GAAasa,SAAS,SAAT,aAAS,WAAT,eAAa7e,SAA1B;AACA2a,UAAI,CAACrW,aAAL,GAAqBya,iBAAiB,SAAjB,qBAAiB,WAAjB,uBAAqBvgB,kGAA1C;AAEA4hB,oBAAc,CAAC5X,MAAM,CAACmS,IAAI,CAACnW,SAAN,CAAP,CAAd,GAAyC,CACrCmW,IAAI,CAACxW,KAAL,IAAc3F,0EADuB,EAErCmc,IAAI,CAACvW,KAAL,IAAc5F,6EAFuB,CAAzC;AAIH;;AAED,QAAIiF,MAAM,CAACU,KAAP,IAAgB,CAACV,MAAM,CAACU,KAAP,CAAamP,QAAb,CAAsBiL,SAAtB,CAArB,EACI9a,MAAM,CAACU,KAAP,CAAakF,IAAb,CAAkBkV,SAAlB;AACJ,QAAI9a,MAAM,CAACW,KAAP,IAAgB,CAACX,MAAM,CAACW,KAAP,CAAakP,QAAb,CAAsBmL,SAAtB,CAArB,EACIhb,MAAM,CAACW,KAAP,CAAaiF,IAAb,CAAkBoV,SAAlB;AACJ,QAAIhb,MAAM,CAACY,MAAP,IAAiB,CAACZ,MAAM,CAACY,MAAP,CAAciP,QAAd,CAAuBqL,UAAvB,CAAtB,EACIlb,MAAM,CAACY,MAAP,CAAcgF,IAAd,CAAmBsV,UAAnB;AACJ,QAAIlb,MAAM,CAACa,aAAP,IAAwB,CAACb,MAAM,CAACa,aAAP,CAAqBgP,QAArB,CAA8ByL,iBAA9B,CAA7B,EACItb,MAAM,CAACa,aAAP,CAAqB+E,IAArB,CAA0B0V,iBAA1B;;AAEJ,QAAInB,gBAAJ,EAAsB;AAClB,WAAK,MAAMmC,SAAX,IAAwBnC,gBAAxB,EAA0C;AACtC,cAAMoD,WAAW,GAAGZ,cAAc,CAACL,SAAS,CAACvK,IAAX,CAAlC;AACA,YAAI,CAACwL,WAAL,EAAkB;AAElB,cAAM,CAACC,OAAD,EAAUC,UAAV,IAAwBd,cAAc,CAACL,SAAS,CAACvK,IAAX,CAA5C;;AACA,YAAI,OAAOyL,OAAP,IAAkB,SAAtB,EAAiC;AAC7BlB,mBAAS,CAAChc,MAAV,CAAiB,CAAjB,EAAoB0H,KAApB,GAA4BwV,OAAO,GAAGlB,SAAS,CAAChc,MAAV,CAAiB,CAAjB,EAAoBkc,GAAvB,GAA6B,IAAhE;AACAF,mBAAS,CAAChc,MAAV,CAAiB,CAAjB,EAAoBic,QAApB,GAA+BkB,UAAU,GAAGnB,SAAS,CAAChc,MAAV,CAAiB,CAAjB,EAAoBkc,GAAvB,GAA6B,IAAtE;AACH;AACJ;AACJ;;AAED,UAAMnc,UAAU,GAAG,IAAItF,kEAAJ,EAAnB;AACAsF,cAAU,CAACC,MAAX,CAAkBsF,IAAlB,CAAuB,GAAGqR,KAA1B;AAEA,UAAM3b,QAAQ,GAAG,MAAMN,oEAAA,CAA4B;AAC/C+E,aAAO,EAAEkc,YAAY,CAACE,SADyB;AAE/Cte,YAAM,EAAEoe,YAAY,CAACG,QAF0B;AAG/Cpc,YAAM,EAAEic,YAAY,CAACJ,QAH0B;AAI/Cxb,gBAAU,EAAEA;AAJmC,KAA5B,CAAvB;;AAOA,QAAI,EAAE,cAAQ,CAACjE,IAAT,MAAa,IAAb,IAAa8I,aAAb,GAAaA,EAAb,GAAiB5J,QAAQ,CAACmB,OAA5B,CAAJ,EAA0C;AACtCihB,aAAO,CAAChhB,KAAR,CAAc,8DAAd;AACH;;AAEDme,YAAQ,CAAC,WAAD,CAAR;;AACA,QAAIV,gBAAJ,EAAsB;AAClBC,yBAAmB,CAAC,CAAC,GAAGD,gBAAJ,CAAD,CAAnB;AACH;;AAEDF,aAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAG,KAAH,CAAT;AACH,GAhEyD,CAA3B,EAgE5B,CAACE,gBAAD,EAAmB/d,IAAnB,EAAyBkf,iBAAzB,EAA4CF,SAA5C,EAAuDF,UAAvD,EAAmEJ,SAAnE,EAA8EE,SAA9E,EAAyFhb,MAAM,CAACa,aAAhG,EAA+Gb,MAAM,CAACY,MAAtH,EAA8HZ,MAAM,CAACW,KAArI,EAA4IX,MAAM,CAACU,KAAnJ,EAA0J6Z,QAA1J,EAAoKN,SAApK,CAhE4B,CAA/B;AAkEA,sBACI;AAAK,aAAS,EAAC;AAAf,KACKW,KAAK,IAAI,WAAT,gBAAwB,0CACpB,iBAAgB,SAAhB,oBAAgB,WAAhB,GAAgB,MAAhB,mBAAgB,CAAE9I,MAAlB,iBACG,oBAAC,wDAAD;AACI,QAAI,EAAE1V,IADV;AACgB,QAAI,EAAE2H,IADtB;AAEI,QAAI,EAAEoW,gBAFV;AAGI,aAAS,EAAEE,cAHf;AAII,eAAW,EAAE,CAACjD,CAAD,EAAIC,CAAJ,KAAS;AAClBiD,uBAAiB,CAACjD,CAAD,CAAjB;AACA2E,uCAAiC,CAAC5E,CAAD,CAAjC;AACH;AAPL,IADH,GASK7a,SAVe,eAYrB;AAAK,aAAS,EAAC;AAAf,kBACI;AAAK,aAAS,EAAC;AAAf,kBACI;AAAK,aAAS,EAAC;AAAf,kBACI;AAAM,aAAS,EAAC;AAAhB,KACK8M,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,cAAzB,CADL,QACiDkR,QADjD,SAC8D,aAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAE3I,MAAT,MAAe,IAAf,IAAe9M,aAAf,GAAeA,EAAf,GAAmB,CADjF,CADJ,CADJ,eAOI;AAAK,aAAS,EAAC;AAAf,kBACI;AAAQ,aAAS,EAAC,yBAAlB;AAA4C,YAAQ,EAAE,EAACjI,OAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAE+U,MAAV,CAAtD;AAAwE,WAAO,EAAE,MAAM+I,QAAQ,CAAC,SAAD;AAA/F,kBACI,oBAAC,2EAAD;AAAiB,QAAI,EAAEvB,sEAAQA;AAA/B,IADJ,OACyCjQ,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,UAAzB,CADzC,CADJ,eAKI;AAAQ,aAAS,EAAC,wBAAlB;AAA2C,WAAO,EAAE,MAAM8S,cAAc;AAAxE,kBACI,oBAAC,2EAAD;AAAiB,QAAI,EAAE9C,4EAAcA;AAArC,IADJ,OAC+ClQ,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,oCAAzB,CAD/C,CALJ,CAPJ,CADJ,EAmBK,QAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAEuI,MAAT,iBACG;AAAO,aAAS,EAAC;AAAjB,kBACI;AAAO,aAAS,EAAC;AAAjB,kBACI,6CACI;AAAI,aAAS,EAAC;AAAd,kBACI;AAAG,QAAI,EAAC,GAAR;AAAY,WAAO,EAAE,MAAK;AAEtB,UAAI2I,QAAQ,IAAIF,QAAQ,CAACzI,MAAzB,EAAiC;AAC7ByI,gBAAQ,CAACoD,OAAT,CAAiBrT,CAAC,IAAIA,CAAC,CAAC,CAAD,CAAD,GAAO,IAA7B;AACAoQ,mBAAW,CAACH,QAAQ,CAACzI,MAAV,CAAX;AACH,OAHD,MAGO;AACHyI,gBAAQ,CAACoD,OAAT,CAAiBrT,CAAC,IAAIA,CAAC,CAAC,CAAD,CAAD,GAAO,KAA7B;AACAoQ,mBAAW,CAAC,CAAD,CAAX;AACH;AAEJ;AAVD,kBAWI,oBAAC,2EAAD;AAAiB,QAAI,EAAE3d,OAAO,CAAC+U,MAAR,IAAkB2I,QAAlB,GAA6B5C,2EAA7B,GAA6C4C,QAAQ,GAAGxB,2EAAH,GAAmBrB,sEAA/F;AAAyG,QAAI,EAAC;AAA9G,IAXJ,CADJ,CADJ,eAgBI;AAAI,SAAK,EAAC;AAAV,aAhBJ,eAiBI;AAAI,SAAK,EAAC;AAAV,IAjBJ,eAkBI;AAAI,SAAK,EAAC;AAAV,uBAlBJ,eAoBI,oBAAC,SAAD;AAAW,UAAM,EAAE,CACf7c,kFADe,EAEfA,0EAFe,EAGfA,4EAHe,EAIfA,4EAJe,EAKjBiB,GALiB,CAKbC,CAAC,IAAG;AAAA;;AAAC,cAACA,CAAD,EAAI6hB,kBAAkB,CAAC7hB,CAAD,CAAtB,EAA2B,kBAAM,CAACyE,KAAP,MAAY,IAAZ,IAAYsE,aAAZ,GAAY,MAAZ,GAAYA,GAAE6K,QAAF,CAAW5T,CAAX,CAAZ,MAAyB,IAAzB,IAAyBiJ,aAAzB,GAAyBA,EAAzB,GAA6B,KAAxD;AAA8D,KALtD,CAAnB;AAK4E,YAAQ,EAAG6Y,CAAD,IAAM;AACxF,YAAMC,SAAS,qBAAgChe,MAAhC,CAAf;AACAge,eAAS,CAACtd,KAAV,GAAkBqd,CAAC,CAAC/d,MAAF,CAAS;AAAA,YAAC,GAAE+b,CAAF,CAAD;AAAA,eAAUA,CAAV;AAAA,OAAT,EAAsB/f,GAAtB,CAA0B;AAAA,YAAC,CAACC,CAAD,CAAD;AAAA,eAASA,CAAT;AAAA,OAA1B,CAAlB;AACA0e,eAAS,CAACqD,SAAD,CAAT;AACH;AATD,iBApBJ,eAiCI,oBAAC,SAAD;AAAW,UAAM,EAAE,CACfjjB,kFADe,EAEfA,6EAFe,EAGfA,8EAHe,EAIfA,6EAJe,EAKfA,8EALe,EAMjBiB,GANiB,CAMbC,CAAC,IAAG;AAAA;;AAAC,cAACA,CAAD,EAAImiB,aAAa,CAACniB,CAAD,CAAjB,EAAsB,kBAAM,CAAC0E,KAAP,MAAY,IAAZ,IAAYqE,aAAZ,GAAY,MAAZ,GAAYA,GAAE6K,QAAF,CAAW5T,CAAX,CAAZ,MAAyB,IAAzB,IAAyBiJ,aAAzB,GAAyBA,EAAzB,GAA6B,KAAnD;AAAyD,KANjD,CAAnB;AAMuE,YAAQ,EAAG6Y,CAAD,IAAM;AACnF,YAAMC,SAAS,qBAAgChe,MAAhC,CAAf;AACAge,eAAS,CAACrd,KAAV,GAAkBod,CAAC,CAAC/d,MAAF,CAAS;AAAA,YAAC,GAAE+b,CAAF,CAAD;AAAA,eAAUA,CAAV;AAAA,OAAT,EAAsB/f,GAAtB,CAA0B;AAAA,YAAC,CAACC,CAAD,CAAD;AAAA,eAASA,CAAT;AAAA,OAA1B,CAAlB;AACA0e,eAAS,CAACqD,SAAD,CAAT;AACH;AAVD,iCAjCJ,eA+CI,oBAAC,SAAD;AAAW,UAAM,EAAE,CACfjjB,oFADe,EAEfA,yFAFe,EAGfA,sFAHe,EAIjBiB,GAJiB,CAIbC,CAAC,IAAG;AAAA;;AAAC,cAACA,CAAD,EAAIsiB,cAAc,CAACtiB,CAAD,CAAlB,EAAuB,kBAAM,CAAC2E,MAAP,MAAa,IAAb,IAAaoE,aAAb,GAAa,MAAb,GAAaA,GAAE6K,QAAF,CAAW5T,CAAX,CAAb,MAA0B,IAA1B,IAA0BiJ,aAA1B,GAA0BA,EAA1B,GAA8B,KAArD;AAA2D,KAJnD,CAAnB;AAIyE,YAAQ,EAAG6Y,CAAD,IAAM;AACrF,YAAMC,SAAS,qBAAgChe,MAAhC,CAAf;AACAge,eAAS,CAACpd,MAAV,GAAmBmd,CAAC,CAAC/d,MAAF,CAAS;AAAA,YAAC,GAAE+b,CAAF,CAAD;AAAA,eAAUA,CAAV;AAAA,OAAT,EAAsB/f,GAAtB,CAA0B;AAAA,YAAC,CAACC,CAAD,CAAD;AAAA,eAASA,CAAT;AAAA,OAA1B,CAAnB;AACA0e,eAAS,CAACqD,SAAD,CAAT;AACH;AARD,oBA/CJ,eA2DI;AAAI,SAAK,EAAC;AAAV,qBA3DJ,eA6DI,oBAAC,SAAD;AAAW,UAAM,EAAE,CACfjjB,kGADe,EAEfA,kGAFe,EAGjBiB,GAHiB,CAGbC,CAAC,IAAG;AAAA;;AAAC,cAACA,CAAD,EAAIwiB,qBAAqB,CAACxiB,CAAD,CAAzB,EAA8B,kBAAM,CAAC4E,aAAP,MAAoB,IAApB,IAAoBmE,aAApB,GAAoB,MAApB,GAAoBA,GAAE6K,QAAF,CAAW5T,CAAX,CAApB,MAAiC,IAAjC,IAAiCiJ,aAAjC,GAAiCA,EAAjC,GAAqC,KAAnE;AAAyE,KAHjE,CAAnB;AAGuF,YAAQ,EAAG6Y,CAAD,IAAM;AACnG,YAAMC,SAAS,qBAAgChe,MAAhC,CAAf;AACAge,eAAS,CAACnd,aAAV,GAA0Bkd,CAAC,CAAC/d,MAAF,CAAS;AAAA,YAAC,GAAE+b,CAAF,CAAD;AAAA,eAAUA,CAAV;AAAA,OAAT,EAAsB/f,GAAtB,CAA0B;AAAA,YAAC,CAACC,CAAD,CAAD;AAAA,eAASA,CAAT;AAAA,OAA1B,CAA1B;AACA0e,eAAS,CAACqD,SAAD,CAAT;AACH;AAPD,wBA7DJ,CADJ,CADJ,eA4EI,mCACKzD,QAAQ,CAACzI,MAAT,IAAmB,IAAnB,GACKyI,QAAQ,CAACve,GAAT,CAAa,SAAY8W,CAAZ,EAAe4L,GAAf;AAAA,QAAC,CAACpU,CAAD,EAAIrO,CAAJ,EAAO8f,CAAP,CAAD;AAAA,wBACX,oBAAC,aAAD;AAAe,SAAG,EAAEzR,CAAC,CAACvJ,SAAtB;AAAiC,YAAM,EAAEuJ,CAAzC;AAA4C,gBAAU,EAAErO,CAAxD;AAA2D,aAAO,EAAE8f,CAApE;AAAuE,cAAQ,EAAE9f,CAAC,IAAG;AACjF,YAAIA,CAAC,IAAI8f,CAAT,EAAY;AACR2C,aAAG,CAAC5L,CAAD,CAAH,CAAO,CAAP,IAAY7W,CAAZ;AACAye,qBAAW,CAACze,CAAC,GAAGwe,QAAQ,GAAG,CAAd,GAAkBA,QAAQ,GAAG,CAA/B,CAAX;AACH;AACJ;AALD,MADW;AAAA,GAAb,CADL,gBAQK,6CACE;AAAI,WAAO,EAAE;AAAb,KAAiBpR,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,2LAAzB,CAAjB,CADF,CATV,CA5EJ,CADH,GA2FGhN,SA9GR,CAZqB,CAAxB,gBA6HG,8CACI;AAAK,aAAS,EAAC;AAAf,kBACI,mCAAQ8M,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,WAAzB,CAAR,CADJ,eAEI,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,WAAO,EAAC,WAAzB;AAAqC,aAAS,EAAC,iBAA/C;AAAiE,MAAE,EAAC,uBAApE;AAA4F,QAAI,EAAC;AAAjG,KACKuU,kBAAkB,CAAChD,SAAD,CADvB,CADJ,eAKI,oBAAC,6DAAD;AAAe,aAAS,EAAC;AAAzB,KACK,CACG/f,kFADH,EAEGA,0EAFH,EAGGA,4EAHH,EAIGA,4EAJH,EAKCiB,GALD,CAKKC,CAAC,iBACH,oBAAC,6DAAD;AAAe,OAAG,EAAEA,CAApB;AAAuB,WAAO,EAAE,MAAM8e,YAAY,CAAC9e,CAAD;AAAlD,KACK6hB,kBAAkB,CAAC7hB,CAAD,CADvB,CANH,CADL,CALJ,CAFJ,CADJ,eAsBI;AAAK,aAAS,EAAC;AAAf,kBACI,mCAAQoN,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,2BAAzB,CAAR,CADJ,eAEI,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,WAAO,EAAC,WAAzB;AAAqC,aAAS,EAAC,iBAA/C;AAAiE,MAAE,EAAC,uBAApE;AAA4F,QAAI,EAAC;AAAjG,KACK6U,aAAa,CAACpD,SAAD,CADlB,CADJ,eAKI,oBAAC,6DAAD;AAAe,aAAS,EAAC;AAAzB,KACK,CACGjgB,kFADH,EAEGA,6EAFH,EAGGA,8EAHH,EAIGA,6EAJH,EAKGA,8EALH,EAMCiB,GAND,CAMKC,CAAC,iBACH,oBAAC,6DAAD;AAAe,OAAG,EAAEA,CAApB;AAAuB,WAAO,EAAE,MAAMgf,YAAY,CAAChf,CAAD;AAAlD,KACKmiB,aAAa,CAACniB,CAAD,CADlB,CAPH,CADL,CALJ,CAFJ,CAtBJ,eA4CI;AAAK,aAAS,EAAC;AAAf,kBACI,mCAAQoN,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,cAAzB,CAAR,CADJ,eAEI,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,WAAO,EAAC,WAAzB;AAAqC,aAAS,EAAC,iBAA/C;AAAiE,MAAE,EAAC,wBAApE;AAA6F,QAAI,EAAC;AAAlG,KACKgV,cAAc,CAACrD,UAAD,CADnB,CADJ,eAKI,oBAAC,6DAAD;AAAe,aAAS,EAAC;AAAzB,KACK,CACGngB,oFADH,EAEGA,yFAFH,EAGGA,sFAHH,EAICiB,GAJD,CAIKC,CAAC,iBACH,oBAAC,6DAAD;AAAe,OAAG,EAAEA,CAApB;AAAuB,WAAO,EAAE,MAAMkf,aAAa,CAAClf,CAAD;AAAnD,KACKsiB,cAAc,CAACtiB,CAAD,CADnB,CALH,CADL,CALJ,CAFJ,CA5CJ,eAgEI;AAAK,aAAS,EAAC;AAAf,kBACI,mCAAQoN,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,kBAAzB,CAAR,CADJ,eAEI,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,WAAO,EAAC,WAAzB;AAAqC,aAAS,EAAC,iBAA/C;AAAiE,MAAE,EAAC,+BAApE;AAAoG,QAAI,EAAC;AAAzG,KACKkV,qBAAqB,CAACnD,iBAAD,CAD1B,CADJ,eAKI,oBAAC,6DAAD;AAAe,aAAS,EAAC;AAAzB,KACK,CACGvgB,kGADH,EAEGA,kGAFH,EAGCiB,GAHD,CAGKC,CAAC,iBACH,oBAAC,6DAAD;AAAe,OAAG,EAAEA,CAApB;AAAuB,WAAO,EAAE,MAAMsf,oBAAoB,CAACtf,CAAD;AAA1D,KACKwiB,qBAAqB,CAACxiB,CAAD,CAD1B,CAJH,CADL,CALJ,CAFJ,CAhEJ,eAmFI;AAAK,aAAS,EAAC;AAAf,kBACI,mCAAQoN,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,eAAzB,CAAR,CADJ,eAEI;AAAO,QAAI,EAAC,MAAZ;AAAmB,aAAS,EAAC,cAA7B;AAA4C,gBAAY,EAAE6R,SAA1D;AAAqE,YAAQ,EAAGrR,CAAD,IAAM;AACjF,YAAMrJ,KAAK,GAAGie,UAAU,CAAC5U,CAAC,CAAC6U,MAAF,CAASle,KAAV,CAAxB;AACA,UAAI,CAACme,KAAK,CAACne,KAAD,CAAV,EAAmB2a,YAAY,CAAC3a,KAAD,CAAZ,CAAnB,KACK2a,YAAY,CAAC9e,SAAD,CAAZ;AACR;AAJD,IAFJ,CAnFJ,eA4FI;AAAQ,aAAS,EAAC,0BAAlB;AAA6C,WAAO,EAAE,MAAMkgB,aAAa;AAAzE,KACKpT,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,WAAzB,CADL,CA5FJ,eAgGI;AAAQ,aAAS,EAAC,wBAAlB;AAA2C,WAAO,EAAE,MAAMmT,WAAW;AAArE,KACKrT,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,SAAzB,CADL,CAhGJ,CA9HR,CADJ;AAsOH;;AAED,SAASuV,SAAT,CAAgDhX,KAAhD,EAA0J;AACtJ,QAAM;AAAExH,UAAF;AAAUye,YAAV;AAAoBC;AAApB,MAAiClX,KAAvC;AAEA,QAAM,CAACmX,OAAD,EAAUC,UAAV,IAAwBxF,+CAAQ,CAAYpZ,MAAM,CAACtE,GAAP,CAAW;AAAA,QAAC,IAAGsO,CAAH,CAAD;AAAA,WAAWA,CAAX;AAAA,GAAX,CAAZ,CAAtC;AACA,QAAM,CAAC6U,OAAD,EAAUC,UAAV,IAAwB1F,+CAAQ,CAAU,KAAV,CAAtC;AAEA,QAAM2F,WAAW,GAAG5F,6CAAM,CAAYwF,OAAZ,CAA1B;AACA,QAAMK,UAAU,GAAG7F,6CAAM,CAAyBnZ,MAAzB,CAAzB;AAEAkZ,EAAAA,gDAAS,CAAC,MAAK;AACX,QAAI,CAACzN,+CAAO,CAACsT,WAAW,CAACrS,OAAb,EAAsBiS,OAAtB,CAAZ,EAA4C;AACxCF,cAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAGze,MAAM,CAACtE,GAAP,CAAW,SAAK8W,CAAL;AAAA,YAAC,CAAClD,CAAD,CAAD;AAAA,eAAW,CAACA,CAAD,EAAIqP,OAAO,CAACnM,CAAD,CAAX,CAAX;AAAA,OAAX,CAAH,CAAR;AACAuM,iBAAW,CAACrS,OAAZ,GAAsBiS,OAAtB;AACH;;AAED,QAAI,CAAClT,+CAAO,CAACuT,UAAU,CAACtS,OAAZ,EAAqB1M,MAArB,CAAR,IAAwC,CAACyL,+CAAO,CAACzL,MAAM,CAACtE,GAAP,CAAW;AAAA,UAAC,IAAGsO,CAAH,CAAD;AAAA,aAAWA,CAAX;AAAA,KAAX,CAAD,EAA2B2U,OAA3B,CAApD,EAAyF;AACrFI,iBAAW,CAACrS,OAAZ,GAAsB1M,MAAM,CAACtE,GAAP,CAAW;AAAA,YAAC,IAAGsO,CAAH,CAAD;AAAA,eAAWA,CAAX;AAAA,OAAX,CAAtB;AACA4U,gBAAU,CAACG,WAAW,CAACrS,OAAb,CAAV;AACAsS,gBAAU,CAACtS,OAAX,GAAqB1M,MAArB;AACH;AACJ,GAXQ,EAWN,CAAC2e,OAAD,EAAU3e,MAAV,EAAkBye,QAAlB,CAXM,CAAT;AAaA,sBACI;AAAI,aAAS,EAAC,eAAd;AAA8B,SAAK,EAAC;AAApC,kBACI,oBAAC,wDAAD;AAAU,QAAI,EAAEI,OAAhB;AAAyB,YAAQ,EAAE,CAACI,MAAD,EAASxV,CAAT,EAAYyV,QAAZ,KAAwB;AACvD,UAAIA,QAAQ,CAACC,MAAT,IAAmB,QAAvB,EAAiC;AAC7BL,kBAAU,CAACG,MAAD,CAAV;AACH;AACJ;AAJD,kBAKI,oBAAC,+DAAD;AAAiB,MAAE,EAAC,GAApB;AAAwB,MAAE,EAAC,qBAA3B;AAAiD,QAAI,EAAC,GAAtD;AAA0D,aAAS,EAAC;AAApE,KACKP,QADL,oBACe,oBAAC,2EAAD;AAAiB,QAAI,EAAEC,OAAO,CAACvH,IAAR,CAAazb,CAAC,IAAIA,CAAlB,IAAuBmd,uEAAvB,GAAkCC,sEAAzD;AAA2E,aAAS,EAAC;AAArF,IADf,CALJ,eASI,oBAAC,6DAAD,QACKvR,KAAK,CAACxH,MAAN,CAAatE,GAAb,CAAiB,SAAS8W,CAAT;AAAA,QAAC,CAAClD,CAAD,EAAI3T,CAAJ,CAAD;AAAA,wBACd,oBAAC,6DAAD;AAAe,SAAG,EAAE2T,CAApB;AAAuB,aAAO,EAAE,MAAK;AACjC,cAAMjP,KAAK,GAAG,CAAC,GAAGse,OAAJ,CAAd;AACAte,aAAK,CAACmS,CAAD,CAAL,GAAW,CAACnS,KAAK,CAACmS,CAAD,CAAjB;AACAoM,kBAAU,CAACve,KAAD,CAAV;AACH;AAJD,oBAKI,oBAAC,2EAAD;AAAiB,UAAI,EAAEse,OAAO,CAACnM,CAAD,CAAP,GAAa+E,2EAAb,GAA6BD,sEAApD;AAA8D,UAAI,EAAC,IAAnE;AAAwE,eAAS,EAAC;AAAlF,MALJ,EAMK3b,CANL,CADc;AAAA,GAAjB,CADL,CATJ,CADJ,CADJ;AAyBH;;AAED,SAASyjB,aAAT,CAAuB5X,KAAvB,EAAmJ;;;AAC/I,QAAM;AAAE1H,UAAF;AAAUuf,cAAV;AAAsBV,WAAtB;AAA+BW;AAA/B,MAA4C9X,KAAlD;AAEA,QAAM,CAAC2S,QAAD,EAAWC,WAAX,IAA0BhB,+CAAQ,CAAUuF,OAAV,CAAxC;AACA,QAAMY,YAAY,GAAGpG,6CAAM,CAAUgB,QAAV,CAA3B;AAEAjB,EAAAA,gDAAS,CAAC,MAAK;AACX,QAAIiB,QAAQ,IAAIoF,YAAY,CAAC7S,OAA7B,EAAsC;AAClC4S,cAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAGnF,QAAH,CAAR;AACAoF,kBAAY,CAAC7S,OAAb,GAAuByN,QAAvB;AACH,KAHD,MAGO,IAAIwE,OAAO,IAAIxE,QAAf,EAAyB;AAC5BoF,kBAAY,CAAC7S,OAAb,GAAuBiS,OAAvB;AACAvE,iBAAW,CAACuE,OAAD,CAAX;AACH;AACJ,GARQ,EAQN,CAACA,OAAD,EAAUW,QAAV,EAAoBnF,QAApB,CARM,CAAT;AAUA,QAAM/Z,KAAK,GAAGod,kBAAkB,CAAC6B,UAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEjf,KAAb,CAAhC;AACA,QAAMC,KAAK,GAAGyd,aAAa,CAACuB,UAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEhf,KAAb,CAA3B;AACA,QAAMC,MAAM,GAAG2d,cAAc,CAACoB,UAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE/e,MAAb,CAA7B;AACA,QAAMC,aAAa,GAAG4d,qBAAqB,CAACkB,UAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE9e,aAAb,CAA3C;AAEA,sBACI;AAAI,WAAO,EAAE,MAAM6Z,WAAW,CAAC,CAACD,QAAF;AAA9B,kBACI;AAAI,aAAS,EAAC;AAAd,kBACI;AAAG,QAAI,EAAC;AAAR,kBACI,oBAAC,2EAAD;AAAiB,QAAI,EAAEA,QAAQ,GAAG5C,2EAAH,GAAmBD,sEAAlD;AAA4D,QAAI,EAAC;AAAjE,IADJ,CADJ,CADJ,eAMI;AAAI,SAAK,EAAC;AAAV,KAAiBnQ,6CAAM,CAAC,YAAM,CAAC1G,SAAP,MAAgB,IAAhB,IAAgBiE,aAAhB,GAAgBA,EAAhB,GAAoB,CAArB,CAAN,CAA8B/G,MAA9B,CAAqC,mBAArC,CAAjB,CANJ,eAOI,6CACI,oBAAC,cAAD;AAAgB,SAAK,EAAE0hB,UAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEjf;AAAnC,IADJ,CAPJ,eAUI,gCAAK,kBAAM,CAACA,KAAP,MAAY,IAAZ,IAAYwE,aAAZ,GAAY,MAAZ,GAAYA,GAAE4a,OAAF,CAAU,CAAV,CAAZ,MAAwB,IAAxB,IAAwBja,aAAxB,GAAwBA,EAAxB,GAA4B,GAAjC,CAVJ,eAWI,gCAAKnF,KAAL,CAXJ,eAYI,gCAAKC,KAAL,CAZJ,eAaI,gCAAKC,MAAL,CAbJ,eAcI,gCAAK,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEE,KAAZ,MAAiB,IAAjB,IAAiBsF,aAAjB,GAAiBA,EAAjB,GAAqB,GAA1B,CAdJ,eAeI,gCAAKvF,aAAa,SAAb,iBAAa,WAAb,mBAAiB,GAAtB,CAfJ,CADJ;AAmBH;;AAED,SAASkf,cAAT,CAAwBjY,KAAxB,EAA0E;AACtE,QAAM;AAAEpH;AAAF,MAAYoH,KAAlB;;AAEA,UAAQpH,KAAR;AACA,SAAK3F,0EAAL;AACI,0BAAO,oBAAC,2EAAD;AAAiB,YAAI,EAAEge,2EAAvB;AAAsC,iBAAS,EAAC;AAAhD,QAAP;;AACJ,SAAKhe,4EAAL;AACI,0BAAO,oBAAC,2EAAD;AAAiB,YAAI,EAAEoe,mEAAvB;AAA8B,iBAAS,EAAC;AAAxC,QAAP;;AACJ,SAAKpe,4EAAL;AACI,0BAAO,oBAAC,2EAAD;AAAiB,YAAI,EAAEie,2EAAvB;AAAsC,iBAAS,EAAC;AAAhD,QAAP;AANJ;;AASA,sBAAO,oBAAC,2EAAD;AAAiB,QAAI,EAAEE,sEAAQA;AAA/B,IAAP;AACH;;AAED,SAAS4E,kBAAT,CAA4Bpd,KAA5B,EAAmE;AAC/D,UAAQA,KAAR;AACA,SAAK3F,0EAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,QAAzB,EAAmC;AAAErG,eAAO,EAAE;AAAX,OAAnC,CAAP;;AACJ,SAAKnI,4EAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,YAAzB,EAAuC;AAAErG,eAAO,EAAE;AAAX,OAAvC,CAAP;;AACJ,SAAKnI,4EAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,UAAzB,EAAqC;AAAErG,eAAO,EAAE;AAAX,OAArC,CAAP;AANJ;;AASA,SAAOmG,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,GAAzB,EAA8B;AAAErG,WAAO,EAAE;AAAX,GAA9B,CAAP;AACH;;AAED,SAASkb,aAAT,CAAuB1d,KAAvB,EAA8D;AAC1D,UAAQA,KAAR;AACA,SAAK3F,6EAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,aAAzB,EAAwC;AAAErG,eAAO,EAAE;AAAX,OAAxC,CAAP;;AACJ,SAAKnI,8EAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,qBAAzB,EAAgD;AAAErG,eAAO,EAAE;AAAX,OAAhD,CAAP;;AACJ,SAAKnI,6EAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,WAAzB,EAAsC;AAAErG,eAAO,EAAE;AAAX,OAAtC,CAAP;;AACJ,SAAKnI,8EAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,WAAzB,EAAsC;AAAErG,eAAO,EAAE;AAAX,OAAtC,CAAP;AARJ;;AAWA,SAAOmG,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,GAAzB,EAA8B;AAAErG,WAAO,EAAE;AAAX,GAA9B,CAAP;AACH;;AAED,SAASqb,cAAT,CAAwB7d,KAAxB,EAAgE;AAC5D,UAAQA,KAAR;AACA,SAAK3F,yFAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,yBAAzB,EAAoD;AAAErG,eAAO,EAAE;AAAX,OAApD,CAAP;;AACJ,SAAKnI,sFAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,0BAAzB,EAAqD;AAAErG,eAAO,EAAE;AAAX,OAArD,CAAP;AAJJ;;AAOA,SAAOmG,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,GAAzB,EAA8B;AAAErG,WAAO,EAAE;AAAX,GAA9B,CAAP;AACH;;AAED,SAASub,qBAAT,CAA+B/d,KAA/B,EAA8E;AAC1E,UAAQA,KAAR;AACA,SAAK3F,kGAAL;AACI,aAAOsO,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,YAAzB,EAAuC;AAAErG,eAAO,EAAE;AAAX,OAAvC,CAAP;AAFJ;;AAKA,SAAOmG,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,GAAzB,EAA8B;AAAErG,WAAO,EAAE;AAAX,GAA9B,CAAP;AACH;;AAED,+DAAe6W,gBAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtnBA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAGA;AA6BM,MAAOH,eAAP,SAA+BlS,4CAA/B,CAAoF;AACtFG,cAAYC,KAAZ,EAAiD;AAC7C,UAAMA,KAAN;AAEA,SAAKnH,KAAL,GAAa;AACToO,gBAAU,EAAE,EADH;AAETD,YAAM,EAAE,KAFC;AAGT0D,YAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAHC;AAITwN,eAAS,EAAElY,KAAK,CAACkY,SAJR;AAKTC,cAAQ,EAAE;AALD,KAAb;AAQA,SAAK7Q,UAAL,gBAAkB5B,gDAAS,EAA3B;AACA,SAAK0I,QAAL,gBAAgB1I,gDAAS,EAAzB;AACA,SAAK0S,YAAL,GAAoB,KAApB;AAEA,SAAK7Q,IAAL,GAAY,KAAKA,IAAL,CAAU/G,IAAV,CAAe,IAAf,CAAZ;AACA,SAAKgH,KAAL,GAAa,KAAKA,KAAL,CAAWhH,IAAX,CAAgB,IAAhB,CAAb;AACA,SAAK2E,kBAAL,GAA0B,KAAKA,kBAAL,CAAwB3E,IAAxB,CAA6B,IAA7B,CAA1B;AACA,SAAK4E,gBAAL,GAAwB,KAAKA,gBAAL,CAAsB5E,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKiH,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBjH,IAAvB,CAA4B,IAA5B,CAAzB;AACA,SAAK6X,mBAAL,GAA2B,KAAKA,mBAAL,CAAyB7X,IAAzB,CAA8B,IAA9B,CAA3B;AACH;;AAcDwH,mBAAiB;AACb,SAAKC,MAAL,GAAc,IAAIC,MAAJ,WAAclL,QAAQ,CAACmL,QAAvB,6BAAyD;AAAEC,UAAI,EAAE;AAAR,KAAzD,CAAd;AACA,SAAKC,OAAL,GAAe3B,6CAAI,CAAc,KAAKuB,MAAnB,CAAnB;AAEA,SAAKI,OAAL,CAAaC,OAAb,CAAqB,KAAKtI,KAAL,CAAW1L,IAAhC,EAAsCiU,IAAtC,CAA2C,MAAK;AAC5C,WAAK1H,QAAL,CAAc;AACVoG,kBAAU,EAAE,KAAKmC,oBAAL;AADF,OAAd,EAEG,MAAM,KAAK5B,KAAL,EAFT;AAGH,KAJD;;AAMA8Q,UAAM,CAACC,SAAP,GAAoBtW,CAAD,IAAO,KAAKmW,YAAL,GAAoBnW,CAAC,CAACuW,OAAF,IAAavW,CAAC,CAACwW,QAA7D;;AACAH,UAAM,CAACI,OAAP,GAAkBzW,CAAD,IAAO,KAAKmW,YAAL,GAAoBnW,CAAC,CAACuW,OAAF,IAAavW,CAAC,CAACwW,QAA3D;AACH;;AAED1T,oBAAkB,CAACC,SAAD,EAA4CC,SAA5C,EAAqF;;;AACnG,QAAI,KAAKpM,KAAL,CAAWiO,WAAX,IAA0B7B,SAAS,CAAC6B,WAApC,IAAmD,KAAKjO,KAAL,CAAW8f,UAAX,IAAyB1T,SAAS,CAAC0T,UAA1F,EAAsG;AAClG,UAAI,KAAK9f,KAAL,CAAWiO,WAAf,EAA4B;AACxB,aAAKyC,kBAAL,GAA0BC,WAAW,CAAC,MAAK;AACvC,cAAI,KAAK3Q,KAAL,CAAWkO,YAAX,IAA2B,KAAKA,YAAhC,IAAgD,KAAKlO,KAAL,CAAW+f,aAAX,IAA4B,KAAKA,aAArF,EAAoG;AAChG,iBAAK/X,QAAL,CAAc;AACVkG,0BAAY,EAAE,KAAKA,YADT;AAEV6R,2BAAa,EAAE,KAAKA;AAFV,aAAd;AAIH;AACJ,SAPoC,EAOlC,GAPkC,CAArC;AASH,OAVD,MAUO;AACHnP,qBAAa,CAAC,KAAKF,kBAAN,CAAb;AACA,aAAKA,kBAAL,GAA0B9U,SAA1B;AACA,aAAKsS,YAAL,GAAoBtS,SAApB;AACA,aAAKmkB,aAAL,GAAqBnkB,SAArB;AACH;AACJ;;AAED,QAAI,KAAKuL,KAAL,CAAW1L,IAAX,IAAmB0Q,SAAS,CAAC1Q,IAAjC,EAAuC;AACnC,UAAI,KAAKuE,KAAL,CAAWqf,SAAf,EAA0B;AACtB,cAAM/f,UAAU,GAAG,KAAKU,KAAL,CAAWqf,SAAX,CAAqBhkB,GAArB,CAAyBsO,CAAC,IAAIA,CAAC,CAACyH,IAAhC,CAAnB;AACA,aAAKpJ,QAAL,CAAc;AAAEqX,mBAAS,EAAE,KAAKlY,KAAL,CAAW1L,IAAX,CAAgB4D,MAAhB,CAAuBsK,CAAC,IAAIrK,UAAU,CAAC4P,QAAX,CAAoBvF,CAAC,CAACyH,IAAtB,CAA5B;AAAb,SAAd;AACH;;AACD,WAAKpJ,QAAL,CAAc;AAAEvM,YAAI,EAAE;AAAR,OAAd,EAA4B,MAAK;;;AAC7B,mBAAK+T,OAAL,MAAY,IAAZ,IAAYnL,aAAZ,GAAY,MAAZ,GAAYA,GAAEoL,OAAF,CAAU,KAAKtI,KAAL,CAAW1L,IAArB,EAA2BiU,IAA3B,CAAgC,MAAK;AAC7C,eAAK1H,QAAL,CAAc;AACVoG,sBAAU,EAAE,KAAKmC,oBAAL;AADF,WAAd,EAEG,MAAM,KAAK5B,KAAL,EAFT;AAGH,SAJW,CAAZ;AAKH,OAND;AAOH;;AAED,QAAI,KAAK3O,KAAL,CAAWggB,iBAAX,IAAgC5T,SAAS,CAAC4T,iBAA9C,EAAiE;AAC7D,uBAAK7Y,KAAL,EAAW8Y,WAAX,MAAsB,IAAtB,IAAsB1b,aAAtB,GAAsB,MAAtB,GAAsBA,YAAG,KAAKvE,KAAL,CAAWggB,iBAAd,EAAiC,KAAKhgB,KAAL,CAAWqf,SAA5C,CAAtB;AACH;AACJ;;AAEDrO,sBAAoB;;;AAChB,QAAI,KAAKN,kBAAL,IAA2B9U,SAA/B,EAA0C;AACtCgV,mBAAa,CAAC,KAAKF,kBAAN,CAAb;AACA,WAAKA,kBAAL,GAA0B9U,SAA1B;AACH;;AAED6jB,UAAM,CAACC,SAAP,GAAmB,IAAnB;AACAD,UAAM,CAACI,OAAP,GAAiB,IAAjB;AAEA,qBAAKrQ,OAAL,MAAY,IAAZ,IAAYnL,aAAZ,GAAY,MAAZ,GAAYA,GAAGyJ,iDAAH,CAAZ,MAA4B,IAA5B,IAA4BvJ,aAA5B,GAA4B,MAA5B,GAA4BA,WAA5B;AACA,eAAK6K,MAAL,MAAW,IAAX,IAAWlK,aAAX,GAAW,MAAX,GAAWA,GAAE+L,SAAF,EAAX;AACH;;AAEDV,sBAAoB;AAChB,WAAOjI,MAAM,CAAC4I,MAAP,CAAc,EAAd,EAAkB,GAAG,CACxB,GAAGpE,6CAAK,CAAC,CAAD,EAAI,KAAK3F,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,EAAmBkE,MAAnB,CAA0BwR,MAA1B,GAAmC,CAAvC,CAAL,CACE9V,GADF,CACM0D,EAAE,qBAAcA,EAAd,MADR,EAEEiQ,OAFF,CAEUjQ,EAAE,IAAI,CAAC,OAAD,EAAU,UAAV,EAAsB,KAAtB,EAA6B,QAA7B,EAAuC1D,GAAvC,CAA2CC,CAAC,cAAOyD,EAAP,cAAazD,CAAb,CAA5C,CAFhB,CADqB,EAI1BD,GAJ0B,CAItBC,CAAC,KAAK;AAAE,OAACA,CAAD,GAAKA,CAAC,CAACuV,QAAF,CAAW,KAAX,KAAqBvV,CAAC,CAACuV,QAAF,CAAW,UAAX,CAArB,IAA+CvV,CAAC,CAACuV,QAAF,CAAW,OAAX;AAAtD,KAAL,CAJqB,CAArB,CAAP;AAKH;;AAEKnC,MAAI,CAAC5C,GAAD,EAAcC,GAAd,EAAyB;;AAC/B,UAAI,CAAC,KAAKyD,OAAV,EAAmB;AAEnB,YAAMjH,IAAI,GAAG,KAAKpB,KAAL,CAAW1L,IAAX,CAAgBJ,GAAhB,CAAoBC,CAAC,IAAIA,CAAC,CAAC8V,IAA3B,CAAb;AACA,UAAIC,UAAU,GAAG9I,IAAI,CAAC+I,OAAL,CAAaxF,GAAb,CAAjB;;AACA,UAAIuF,UAAU,IAAI,CAAC,CAAnB,EAAsB;AAClBA,kBAAU,GAAG9I,IAAI,CAAC+I,OAAL,CAAavE,8CAAM,CAACxE,IAAD,EAAOjN,CAAC,IAAIoQ,IAAI,CAAC6F,GAAL,CAASjW,CAAC,GAAGwQ,GAAb,CAAZ,CAAN,CAAqC,CAArC,CAAb,CAAb;AACH;;AACD,UAAI0F,QAAQ,GAAGjJ,IAAI,CAAC+I,OAAL,CAAavF,GAAb,CAAf;;AACA,UAAIyF,QAAQ,IAAI,CAAC,CAAjB,EAAoB;AAChBA,gBAAQ,GAAGjJ,IAAI,CAAC+I,OAAL,CAAavE,8CAAM,CAACxE,IAAD,EAAOjN,CAAC,IAAIoQ,IAAI,CAAC6F,GAAL,CAASjW,CAAC,GAAGyQ,GAAb,CAAZ,CAAN,CAAqC,CAArC,CAAb,CAAX;AACH;;AAGD,UAAI,KAAK5E,KAAL,CAAW1L,IAAX,CAAgBgW,KAAhB,CAAsBJ,UAAtB,EAAkCG,QAAlC,EAA4CL,MAA5C,GAAqD,CAAzD,EAA4D;AACxD,cAAM,KAAK3B,OAAL,CAAakC,QAAb,CAAsB,CAACL,UAAD,EAAaG,QAAb,CAAtB,CAAN;AAEA,cAAM/V,IAAI,GAAG,MAAM,KAAK+T,OAAL,CAAamC,UAAb,EAAnB;AACA,cAAME,MAAM,GAAG,MAAM,KAAKrC,OAAL,CAAasC,SAAb,CAAuB,KAAK9R,KAAL,CAAWoO,UAAlC,CAArB;AAEA,aAAKpG,QAAL,CAAc;AACVvM,cAAI,EAAEA,IADI;AAEVoW,gBAAM,EAAEA,MAFE;AAGV5D,qBAAW,EAAErS,SAHH;AAIVsS,sBAAY,EAAEtS,SAJJ;AAKV0jB,kBAAQ,EAAE,KALA;AAMVnR,gBAAM,EAAE;AANE,SAAd;AAQH;AACJ;AAAA;;AAEKQ,OAAK;;AACP,UAAI,CAAC,KAAKa,OAAV,EAAmB;AAEnB,YAAM,KAAKA,OAAL,CAAakC,QAAb,CAAsB,CAAC9V,SAAD,EAAYA,SAAZ,CAAtB,CAAN;AAEA,YAAMH,IAAI,GAAG,MAAM,KAAK+T,OAAL,CAAamC,UAAb,EAAnB;AACA,YAAME,MAAM,GAAG,MAAM,KAAKrC,OAAL,CAAasC,SAAb,CAAuB,KAAK9R,KAAL,CAAWoO,UAAlC,CAArB;AAEA,WAAKpG,QAAL,CAAc;AACVvM,YAAI,EAAEA,IADI;AAEVoW,cAAM,EAAEA,MAFE;AAGV1D,cAAM,EAAE;AAHE,OAAd;AAKH;AAAA;;AAED+R,QAAM,CAACC,IAAD,EAAeC,IAAf,EAA6BC,IAA7B,EAA2CC,IAA3C,EAAuD;;;AACzD,UAAMjB,SAAS,GAAG,WAAKrf,KAAL,CAAWvE,IAAX,MAAe,IAAf,IAAe4I,aAAf,GAAe,MAAf,GAAeA,GAC3BhF,MAD2B,CACpBsK,CAAC,IAAIA,CAAC,CAACyH,IAAF,IAAU+O,IAAV,IAAkBxW,CAAC,CAACyH,IAAF,IAAUiP,IAA5B,IACV1W,CAAC,CAAChK,MAAF,CAASoX,IAAT,CAAczb,CAAC,IAAI,OAAOA,CAAC,CAACugB,GAAT,IAAgB,QAAhB,IAA4BvgB,CAAC,CAACugB,GAAF,IAASuE,IAArC,IAA6C9kB,CAAC,CAACugB,GAAF,IAASyE,IAAzE,CAFyB,CAAjC;;AAGA,QAAIjB,SAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAElO,MAAf,EAAuB;AACnB,YAAM6O,iBAAiB,GAAG,KAAK7Y,KAAL,CAAWjM,IAAX,CAAgB,CAAhB,EAAmByE,MAAnB,CACrBN,MADqB,CACdsK,CAAC,IAAG;AACR,cAAM5J,KAAK,GAAG,KAAKoH,KAAL,CAAW/D,IAAX,IAAmB,IAAnB,IAA2BuG,CAAC,CAAC5J,KAA7B,GAAqC,KAAKoH,KAAL,CAAWjM,IAAX,CAAgB,CAAhB,EAAmBqlB,QAAnB,GAA8B5W,CAAC,CAAC5J,KAArE,GAA6E4J,CAAC,CAAC5J,KAA7F;AACA,eAAO4J,CAAC,CAACvJ,SAAF,IAAe,CAACuJ,CAAC,CAAC6W,MAAlB,IAA4BzgB,KAA5B,IAAqC4J,CAAC,CAACvJ,SAAF,IAAe+f,IAApD,IAA4DxW,CAAC,CAACvJ,SAAF,IAAeigB,IAA3E,IAAmFtgB,KAAK,IAAIqgB,IAA5F,IAAoGrgB,KAAK,IAAIugB,IAApH;AACH,OAJqB,CAA1B;AAMA,WAAKtY,QAAL,CAAc;AACVqX,iBAAS,EAAEA,SADD;AAEVW,yBAAiB,EAAEA;AAFT,OAAd;AAIH,KAXD,MAWO;AACH,WAAKhY,QAAL,CAAc;AACVqX,iBAAS,EAAEzjB,SADD;AAEVokB,yBAAiB,EAAEpkB;AAFT,OAAd;AAIH;AACJ;;AAEDmW,aAAW;AACP,QAAIzU,MAAM,GAAG,mBAAb;AACA,UAAM0U,KAAK,GAAa,EAAxB;;AAEA,QAAI,KAAKhS,KAAL,CAAW6R,MAAf,EAAuB;AAEnB,YAAM/E,KAAK,GAAI,KAAK9M,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB,KAAK7R,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,CAAtC;;AACA,UAAI/E,KAAK,GAAG,WAAR,GAAsB,CAA1B,EAA6B;AACzBxP,cAAM,GAAG,MAAT;AACH,OAFD,MAEO,IAAIwP,KAAK,GAAG,UAAR,GAAqB,CAAzB,EAA4B;AAC/BxP,cAAM,GAAG,UAAT;AACH,OAFM,MAEA,IAAIwP,KAAK,GAAG,QAAR,GAAmB,EAAvB,EAA2B;AAC9BxP,cAAM,GAAG,QAAT;AACH,OAFM,MAEA,IAAIwP,KAAK,GAAG,QAAR,GAAmB,CAAvB,EAA0B;AAC7BxP,cAAM,GAAG,WAAT;AACH,OAFM,MAEA;AACHA,cAAM,GAAG,OAAT;AACH;;AAED,YAAM2U,KAAK,GAAG,CAAd;AACA,YAAMC,QAAQ,GAAGxG,IAAI,CAACC,KAAL,CAAWmB,KAAK,IAAImF,KAAK,GAAG,CAAZ,CAAhB,CAAjB;;AAEA,WAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAApB,EAA2BE,CAAC,EAA5B,EAAgC;AAC5BH,aAAK,CAAC/M,IAAN,CAAW,KAAKjF,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuBK,QAAQ,GAAGC,CAA7C;AACH;;AAED,YAAMC,SAAS,GAAGpF,oDAAY,CAACgF,KAAD,EAAQ1W,CAAC,IAAIwL,6CAAM,CAACxL,CAAD,CAAN,CAAUgC,MAAV,CAAiBA,MAAjB,CAAb,CAA9B;;AACA,UAAI8U,SAAS,CAACjB,MAAV,KAAqBa,KAAK,CAACb,MAA/B,EAAuC;AACnC,cAAMc,KAAK,GAAGG,SAAS,CAACjB,MAAxB;AACA,cAAMe,QAAQ,GAAGxG,IAAI,CAACC,KAAL,CAAWmB,KAAK,IAAImF,KAAK,GAAG,CAAZ,CAAhB,CAAjB;AAEAD,aAAK,CAACK,MAAN,CAAa,CAAb,EAAgBL,KAAK,CAACb,MAAtB;;AACA,aAAK,IAAIgB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAApB,EAA2BE,CAAC,EAA5B,EAAgC;AAC5BH,eAAK,CAAC/M,IAAN,CAAW,KAAKjF,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuBK,QAAQ,GAAGC,CAA7C;AACH;AACJ;AACJ;;AAED,WAAO;AACH7U,YAAM,EAAEA,MADL;AAEH0U,WAAK,EAAEA;AAFJ,KAAP;AAIH;;AAEK8B,oBAAkB,GAA4C;AAAA,sCAAxCnU,MAAwC;AAAxCA,YAAwC;AAAA;;;AAChE,YAAMyO,UAAU,qBAAQ,KAAKpO,KAAL,CAAWoO,UAAnB,CAAhB;;AACA,WAAK,MAAM,CAAC3F,GAAD,EAAMzI,KAAN,CAAX,IAA2BL,MAA3B,EAAmC;AAC/ByO,kBAAU,CAAC3F,GAAD,CAAV,GAAkBzI,KAAK,IAAIpE,SAAT,GAAqBoE,KAArB,GAA6BoO,UAAU,CAAC3F,GAAD,CAAV,IAAmB7M,SAAnB,GAA+B,CAACwS,UAAU,CAAC3F,GAAD,CAA1C,GAAkD,KAAjG;AACH;;AACD,WAAKT,QAAL,CAAc;AAAEoG,kBAAU,EAAEA;AAAd,OAAd,EAA0C,MAAW0C,gDAAAA;AACjD,YAAI,KAAK9Q,KAAL,CAAWvE,IAAX,IAAmB,KAAK+T,OAA5B,EAAqC;AACjC,gBAAMqC,MAAM,GAAG,MAAM,KAAKrC,OAAL,CAAasC,SAAb,CAAuB,KAAK9R,KAAL,CAAWoO,UAAlC,CAArB;AACA,eAAKpG,QAAL,CAAc;AAAE6J,kBAAM,EAAEA;AAAV,WAAd;AACH;AACJ,OALoD,CAArD;AAMH;AAAA;;AAEDjD,mBAAiB;AACb,QAAI;AAAEX,iBAAF;AAAeC;AAAf,QAAgC,KAAKlO,KAAzC;;AAEA,QAAIiO,WAAW,KAAKC,YAAhB,IAAgCD,WAAW,KAAKrS,SAAhD,IAA6DsS,YAAY,KAAKtS,SAAlF,EAA6F;AACzF,WAAKoM,QAAL,CAAc,OAAO;AACjBiG,mBAAW,EAAErS,SADI;AAEjBsS,oBAAY,EAAEtS;AAFG,OAAP,CAAd;AAIA;AACH;;AAGD,QAAIqS,WAAW,GAAGC,YAAlB,EAAgC,CAACD,WAAD,EAAcC,YAAd,IAA8B,CAACA,YAAD,EAAeD,WAAf,CAA9B;AAEhC,SAAKS,IAAL,CAAUT,WAAV,EAAuBC,YAAvB;AACH;;AAEDsR,qBAAmB;AAEf,QAAI;AAAEvR,iBAAF;AAAeC,kBAAf;AAA6B4R,gBAA7B;AAAyCC;AAAzC,QAA2D,KAAK/f,KAApE;;AAEA,QAAIiO,WAAW,KAAKC,YAAhB,IAAgC6R,aAAa,KAAKD,UAAlD,IACA7R,WAAW,KAAKrS,SADhB,IAC6BsS,YAAY,KAAKtS,SAD9C,IAEAmkB,aAAa,KAAKnkB,SAFlB,IAE+BkkB,UAAU,KAAKlkB,SAFlD,EAE6D;AAEzD,WAAKoM,QAAL,CAAc,OAAO;AACjBiG,mBAAW,EAAErS,SADI;AAEjBsS,oBAAY,EAAEtS,SAFG;AAGjBmkB,qBAAa,EAAEnkB,SAHE;AAIjBkkB,kBAAU,EAAElkB;AAJK,OAAP,CAAd;AAMA;AACH;;AAGD,QAAIqS,WAAW,GAAGC,YAAlB,EAAgC,CAACD,WAAD,EAAcC,YAAd,IAA8B,CAACA,YAAD,EAAeD,WAAf,CAA9B;AAChC,QAAI8R,aAAa,GAAGD,UAApB,EAAgC,CAACA,UAAD,EAAaC,aAAb,IAA8B,CAACA,aAAD,EAAgBD,UAAhB,CAA9B;AAEhC,SAAKI,MAAL,CAAYjS,WAAZ,EAAyB8R,aAAzB,EAAwC7R,YAAxC,EAAsD4R,UAAtD;AAEA,SAAK9X,QAAL,CAAc;AACViG,iBAAW,EAAErS,SADH;AAEVsS,kBAAY,EAAEtS,SAFJ;AAGVkkB,gBAAU,EAAElkB,SAHF;AAIVmkB,mBAAa,EAAEnkB;AAJL,KAAd;AAMH;;AAED0Q,oBAAkB,CAACR,GAAD,EAAcC,GAAd,EAAyB;AACvC,SAAK2C,IAAL,CAAU5C,GAAV,EAAeC,GAAf;AACH;;AAEDQ,kBAAgB;AACZ,SAAKoC,KAAL;AACH;;AAEDoF,SAAO;AACH,UAAMtU,MAAM,GAAG,KAAK0H,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,CAAf;AACA,UAAM8M,IAAI,GAAG9I,MAAM,CAACE,MAAP,CACRqP,OADQ,CACA,CAAC1T,CAAD,EAAI6W,CAAJ,KAAU,CAAC,OAAD,EAAU,UAAV,EAAsB,KAAtB,EAA6B,QAA7B,EAAuC9W,GAAvC,CAA2C4T,CAAC,KAAK;AAChExG,SAAG,mBAAY0J,CAAZ,eAAkBlD,CAAlB,CAD6D;AAEhElP,WAAK,EAAE;AACHiU,aAAK,EAAEtL,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyBqG,CAAzB,EAA4B;AAC/B1M,iBAAO,EAAE,KADsB;AAE/BjF,gBAAM,EAAE;AAFuB,SAA5B,CADJ;AAKH2W,eAAO,EAAE3Y,CAAC,CAAC0Y;AALR,OAFyD;AAShEE,WAAK,EAAEjF,CAAC,IAAI,QAAL,GAAgB,MAAhB,GAAyBA,CAAC,IAAI,KAAL,GAAa,SAAb,GAAyBlB,oDAAM,CAACoE,CAAC,GAAGpE,2DAAL,CATC;AAUhEoG,eAAS,EAAElF,CAAC,IAAI,UAAL,GAAkB,SAAlB,GAA8BrT;AAVuB,KAAL,CAA5C,CADV,CAAb;AAaA,WAAO2M,IAAP;AACH;;AAED6L,eAAa,CAAC7L,IAAD,EAAiF;AAAA;;AAC1F,UAAM8L,OAAO,GAAG,CAAC9L,IAAI,SAAJ,QAAI,WAAJ,UAAQ,KAAKwL,OAAL,EAAT,EAAyB1Y,GAAzB,CAA6B4T,CAAC,IAAG;;;AAAC,aAAC;AAC/ClQ,UAAE,EAAEkQ,CAAC,CAACxG,GADyC;AAE/C1I,aAAK,EAAEkP,CAAC,CAAClP,KAFsC;AAG/CmU,aAAK,EAAE,OAAC,CAACC,SAAF,MAAW,IAAX,IAAW9P,aAAX,GAAWA,EAAX,GAAe4K,CAAC,CAACiF;AAHuB,OAAD;AAIhD,KAJc,CAAhB;AAKA,wBAAO,oBAAC,4CAAD;AACH,aAAO,EAAEG,OADN;AAEH,aAAO,eAAE,oBAAC,sDAAD;AAAe,cAAM,MAArB;AACL,kBAAU,EAAE,KAAKrU,KAAL,CAAWoO,UADlB;AAEL,eAAO,EAAE;AAAA,6CAAI9S,CAAJ;AAAIA,aAAJ;AAAA;;AAAA,iBAAU,KAAI,CAACwY,kBAAL,CAAwB,GAAGxY,CAAC,CAACD,GAAF,CAAMsO,CAAC,IAAI,CAACA,CAAD,CAAX,CAA3B,CAAV;AAAA;AAFJ;AAFN,MAAP;AAMH;;AAED8W,YAAU;;;AAEN,UAAMjM,WAAW,GAAG,CAAC,CAAC,iBAAKxU,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBxN,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBE,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,KAAiC,iBAAKvE,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiB3M,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBO,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3D,CAAD,IAAkE,EAAtF;AACA,UAAMgP,YAAY,GAAG,CAAC,CAAC,iBAAKzU,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBnM,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBC,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,KAAiC,iBAAK3F,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBjM,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBC,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3D,CAAD,IAAkE,EAAvF;AAEA,UAAM6O,WAAW,GAAqB,CAClC,KAAK1U,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB2C,WADW,EAElC,KAAKxU,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB2C,WAFW,CAAtC;AAIA,UAAMG,WAAW,GAAqB,CAClC,KAAK3U,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB4C,YADW,EAElC,KAAKzU,KAAL,CAAW6R,MAAX,CAAkB,CAAlB,IAAuB4C,YAFW,CAAtC;AAKA,WAAO,CAACE,WAAD,EAAcD,WAAd,CAAP;AACH;;AAEDlO,QAAM;;;AACF,UAAM6M,QAAQ,GAAG,KAAKtB,WAAL,EAAjB;AAEA,UAAMxJ,IAAI,GAAG,KAAKwL,OAAL,EAAb;AAEA,UAAM,CAACY,WAAD,EAAcD,WAAd,IAA6B,KAAK+L,UAAL,EAAnC;AAEA,UAAM7L,OAAO,GAAGrM,IAAI,CAAClJ,MAAL,CAAY4P,CAAC,IAAI,KAAKjP,KAAL,CAAWoO,UAAX,CAAsBa,CAAC,CAACxG,GAAxB,KAAgC,KAAKzI,KAAL,CAAWoO,UAAX,CAAsBa,CAAC,CAAClP,KAAF,CAAQkU,OAA9B,KAA0C,KAA3F,CAAhB;AAEA,UAAMgB,UAAU,GAAG,KAAKb,aAAL,CAAmB7L,IAAnB,CAAnB;AAEA,wBAAQ,uDACJ;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,oDAAD;AACI,kBAAY,EAAE,KAAKpB,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,EAAmB2V,IADrC;AAEI,kBAAY,EAAE,KAAKjK,KAAL,CAAW1L,IAAX,CAAgB,KAAK0L,KAAL,CAAW1L,IAAX,CAAgB0V,MAAhB,GAAyB,CAAzC,EAA4CC,IAF9D;AAGI,aAAO,EAAE,CACL,iBAAKpR,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiBxN,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBE,aAAtB,GAAsBA,EAAtB,GAA0B,KAAK4C,KAAL,CAAW1L,IAAX,CAAgB,CAAhB,EAAmB2V,IADxC,EAEL,iBAAKpR,KAAL,CAAW6R,MAAX,MAAiB,IAAjB,IAAiB3M,aAAjB,GAAiB,MAAjB,GAAiBA,GAAG,CAAH,CAAjB,MAAsB,IAAtB,IAAsBO,aAAtB,GAAsBA,EAAtB,GAA0B,KAAK0B,KAAL,CAAW1L,IAAX,CAAgB,KAAK0L,KAAL,CAAW1L,IAAX,CAAgB0V,MAAhB,GAAyB,CAAzC,EAA4CC,IAFjE,CAHb;AAOI,wBAAkB,EAAE,KAAK9E,kBAP7B;AAQI,sBAAgB,EAAE,KAAKC,gBAR3B;AASI,aAAO,EAAE,KAAKoC;AATlB,MADJ,eAYI;AAAK,eAAS,EAAC;AAAf,OACK,KAAK3O,KAAL,CAAWvE,IAAX,gBACG,uDACI,oBAAC,0DAAD;AAAqB,WAAK,EAAC,MAA3B;AAAkC,YAAM,EAAE,GAA1C;AAA+C,cAAQ,EAAE;AAAzD,oBACI,oBAAC,oDAAD;AAAe,UAAI,EAAE,KAAKuE,KAAL,CAAWvE,IAAhC;AAAsC,YAAM,EAAE;AAAEgY,WAAG,EAAE,CAAP;AAAU4B,YAAI,EAAE,CAAhB;AAAmBC,aAAK,EAAE,CAA1B;AAA6B5B,cAAM,EAAE;AAArC,OAA9C;AACI,SAAG,EAAE,KAAK6B,QADd;AAEI,iBAAW,EAAGnM,CAAD,IAAM;;;AACf,YAAI,CAACA,CAAC,CAACoM,WAAH,IAAkB,OAAOpM,CAAC,CAACsX,MAAT,IAAmB,QAArC,IAAiD,OAAOtX,CAAC,CAACuX,MAAT,IAAmB,QAAxE,EAAkF;AAElF,cAAMC,UAAU,GAAG,WAAKrL,QAAL,CAAclJ,OAAd,MAAqB,IAArB,IAAqBhI,aAArB,GAAqB,MAArB,GAAqBA,GAAErE,KAA1C;AACA,cAAMkB,MAAM,GAAGkD,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEyc,UAAZ,MAAsB,IAAtB,IAAsBtc,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,CAAN,IAAuCH,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmBF,GAAnB,MAAsB,IAAtB,IAAsBvO,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,CAAN,GAAsCd,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmBD,MAAnB,MAAyB,IAAzB,IAAyBjO,aAAzB,GAAyBA,EAAzB,GAA6B,CAA9B,CAAnF,CAAf;AACA,cAAMxE,KAAK,GAAGmD,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE0c,SAAZ,MAAqB,IAArB,IAAqBpb,aAArB,GAAqBA,EAArB,GAAyB,CAA1B,CAAN,IAAsCtB,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmB0B,IAAnB,MAAuB,IAAvB,IAAuB1P,aAAvB,GAAuBA,EAAvB,GAA2B,CAA5B,CAAN,GAAuCvB,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmB2B,KAAnB,MAAwB,IAAxB,IAAwB1P,aAAxB,GAAwBA,EAAxB,GAA4B,CAA7B,CAAnF,CAAd;AAEA,cAAMmb,QAAQ,GAAG,KAAK5Z,KAAL,CAAW/D,IAAX,IAAmB,KAApC;AACA,cAAM4d,OAAO,GAAG,CAAC5X,CAAC,CAACsX,MAAF,GAAWtc,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmB0B,IAAnB,MAAuB,IAAvB,IAAuBxP,aAAvB,GAAuBA,EAAvB,GAA2B,CAA5B,CAAlB,KAAqD,CAAC8O,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA7B,IAAoC1T,KAAzF,CAAhB;AACA,cAAMggB,OAAO,GAAG,CAAC7X,CAAC,CAACuX,MAAF,GAAWvc,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmBF,GAAnB,MAAsB,IAAtB,IAAsB3N,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,CAAlB,KAAoD,CAAC4O,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA7B,IAAoCxT,MAAxF,CAAhB;AAEA,cAAMggB,YAAY,GAAG9c,MAAM,CAACuQ,WAAW,CAAC,CAAD,CAAX,GAAiBqM,OAAlB,CAA3B;AACA,cAAMG,YAAY,GAAG/c,MAAM,CAAC,CAAC2c,QAAD,GAAYrM,WAAW,CAAC,CAAD,CAAX,GAAiBuM,OAA7B,GAAuCvM,WAAW,CAAC,CAAD,CAAX,GAAiBuM,OAAzD,CAA3B;;AAEA,YAAIC,YAAY,IAAIC,YAApB,EAAkC;AAC9B,cAAI,KAAK5B,YAAT,EAAuB;AACnB,iBAAKvX,QAAL,CAAc;AACViG,yBAAW,EAAEiT,YADH;AAEVhT,0BAAY,EAAEgT,YAFJ;AAGV5B,sBAAQ,EAAE;AAHA,aAAd;AAKH,WAND,MAMO;AACH,iBAAKtX,QAAL,CAAc;AACViG,yBAAW,EAAEiT,YADH;AAEVhT,0BAAY,EAAEgT,YAFJ;AAGVpB,wBAAU,EAAEqB,YAHF;AAIVpB,2BAAa,EAAEoB;AAJL,aAAd;AAMH;AACJ;AACJ,OAhCL;AAiCI,iBAAW,EAAE,KAAKnhB,KAAL,CAAWiO,WAAX,GAA0B7E,CAAD,IAAM;;;AACxC,YAAI,OAAOA,CAAC,CAACsX,MAAT,IAAmB,QAAnB,IAA+B,OAAOtX,CAAC,CAACuX,MAAT,IAAmB,QAAtD,EAAgE;AAEhE,cAAMC,UAAU,GAAG,WAAKrL,QAAL,CAAclJ,OAAd,MAAqB,IAArB,IAAqBhI,aAArB,GAAqB,MAArB,GAAqBA,GAAErE,KAA1C;AACA,cAAMkB,MAAM,GAAGkD,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEyc,UAAZ,MAAsB,IAAtB,IAAsBtc,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,CAAN,IAAuCH,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmBF,GAAnB,MAAsB,IAAtB,IAAsBvO,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,CAAN,GAAsCd,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmBD,MAAnB,MAAyB,IAAzB,IAAyBjO,aAAzB,GAAyBA,EAAzB,GAA6B,CAA9B,CAAnF,CAAf;AACA,cAAMxE,KAAK,GAAGmD,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE0c,SAAZ,MAAqB,IAArB,IAAqBpb,aAArB,GAAqBA,EAArB,GAAyB,CAA1B,CAAN,IAAsCtB,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmB0B,IAAnB,MAAuB,IAAvB,IAAuB1P,aAAvB,GAAuBA,EAAvB,GAA2B,CAA5B,CAAN,GAAuCvB,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmB2B,KAAnB,MAAwB,IAAxB,IAAwB1P,aAAxB,GAAwBA,EAAxB,GAA4B,CAA7B,CAAnF,CAAd;AAEA,cAAMmb,QAAQ,GAAG,KAAK5Z,KAAL,CAAW/D,IAAX,IAAmB,KAApC;AACA,cAAM4d,OAAO,GAAG,CAAC5X,CAAC,CAACsX,MAAF,GAAWtc,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmB0B,IAAnB,MAAuB,IAAvB,IAAuBxP,aAAvB,GAAuBA,EAAvB,GAA2B,CAA5B,CAAlB,KAAqD,CAAC8O,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA7B,IAAoC1T,KAAzF,CAAhB;AACA,cAAMggB,OAAO,GAAG,CAAC7X,CAAC,CAACuX,MAAF,GAAWvc,MAAM,CAAC,gBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAEuP,MAAZ,CAAmBF,GAAnB,MAAsB,IAAtB,IAAsB3N,aAAtB,GAAsBA,EAAtB,GAA0B,CAA3B,CAAlB,KAAoD,CAAC4O,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA7B,IAAoCxT,MAAxF,CAAhB;AAEA,cAAMggB,YAAY,GAAG9c,MAAM,CAACuQ,WAAW,CAAC,CAAD,CAAX,GAAiBqM,OAAlB,CAA3B;AACA,cAAMG,YAAY,GAAG/c,MAAM,CAAC,CAAC2c,QAAD,GAAYrM,WAAW,CAAC,CAAD,CAAX,GAAiBuM,OAA7B,GAAuCvM,WAAW,CAAC,CAAD,CAAX,GAAiBuM,OAAzD,CAA3B;;AAEA,YAAIC,YAAY,IAAIC,YAApB,EAAkC;AAC9B,eAAKjT,YAAL,GAAoBgT,YAApB;AACA,eAAKnB,aAAL,GAAqB,CAAC,KAAK/f,KAAL,CAAWsf,QAAZ,GAAuB6B,YAAvB,GAAsCvlB,SAA3D;AACH,SAHD,MAGO;AACH,eAAKoM,QAAL,CAAc;AACViG,uBAAW,EAAErS,SADH;AAEVsS,wBAAY,EAAEtS,SAFJ;AAGVkkB,sBAAU,EAAElkB,SAHF;AAIVmkB,yBAAa,EAAEnkB,SAJL;AAKV0jB,oBAAQ,EAAE;AALA,WAAd;AAOH;AACJ,OA1BY,GA0BT1jB,SA3DR;AA4DI,eAAS,EAAE,MAAK;AACZ,YAAI,KAAKoE,KAAL,CAAWsf,QAAf,EAAyB;AACrB,cAAI,KAAKtf,KAAL,CAAWiO,WAAf,EACI,KAAKW,iBAAL;AACP,SAHD,MAGO;AACH,cAAI,KAAK5O,KAAL,CAAWiO,WAAX,IAA0B,KAAKjO,KAAL,CAAW8f,UAAzC,EACI,KAAKN,mBAAL;AACP;AACJ;AApEL,oBAuEI,oBAAC,oDAAD;AAAe,qBAAe,EAAC;AAA/B,MAvEJ,eAyEI,oBAAC,4CAAD;AAAO,aAAO,EAAC,MAAf;AAAsB,uBAAiB,MAAvC;AACI,YAAM,EAAE7K,WADZ;AAEI,WAAK,EAAC,MAFV;AAGI,UAAI,EAAC,QAHT;AAII,WAAK,EAAEtB,QAAQ,CAACrB,KAJpB;AAKI,mBAAa,EAAG1W,CAAD,IAAOwL,6CAAM,CAACxL,CAAD,CAAN,CAAUgC,MAAV,CAAiB+V,QAAQ,CAAC/V,MAA1B,CAL1B;AAMI,cAAQ,EAAE,CANd;AAMiB,mBAAa,EAAE;AANhC,oBAQI,oBAAC,4CAAD;AAAO,cAAQ,EAAC,cAAhB;AAA+B,WAAK,EAAE;AAAEmY,kBAAU,EAAE;AAAd,OAAtC;AAAgE,QAAE,EAAE,EAApE;AACI,WAAK,EAAC;AADV,MARJ,CAzEJ,eAqFI,oBAAC,4CAAD;AAAO,iBAAW,EAAC,MAAnB;AACI,YAAM,EAAEf,WADZ;AAEI,WAAK,EAAC,QAFV;AAEmB,cAAQ,EAAE,KAAKvN,KAAL,CAAW/D,IAAX,IAAmB,IAFhD;AAEsD,uBAAiB;AAFvE,oBAGI,oBAAC,4CAAD;AAAO,WAAK,EAAE,CAAC,EAAf;AAAmB,cAAQ,EAAC,YAA5B;AAAyC,WAAK,EAAE;AAAEqS,kBAAU,EAAE;AAAd,OAAhD;AACI,WAAK,6BAAsB,KAAKtO,KAAL,CAAW/D,IAAX,IAAmB,IAAnB,GAA0B,OAA1B,GAAoC,QAA1D;AADT,MAHJ,CArFJ,eAgGI,oBAAC,8CAAD;AAAS,aAAO,EAAGge,CAAD,IAAoC;;;AAClD,cAAMlJ,KAAK,GAAG,aAAC,CAAC7D,OAAF,MAAS,IAAT,IAAShQ,aAAT,GAAS,MAAT,GAASA,GAAG,CAAH,CAAT,MAAc,IAAd,IAAcE,aAAd,GAAc,MAAd,GAAcA,GAAE8P,OAA9B;AACA,eAAO6D,KAAK,gBACR;AAAM,mBAAS,EAAC;AAAhB,WAAyC,uBAAK,CAACvY,MAAN,CAAa,CAAb,OAAe,IAAf,IAAeuF,aAAf,GAAe,MAAf,GAAeA,GAAE2W,GAAjB,MAAoB,IAApB,IAAoBpW,aAApB,GAAoB,MAApB,GAAoBA,GAAE0Z,OAAF,CAAU,CAAV,CAApB,MAAgC,IAAhC,IAAgCzZ,aAAhC,GAAgCA,EAAhC,GAAoC,GAA7E,QAAoFoB,6CAAM,CAACoR,KAAK,CAAC9G,IAAP,CAAN,CAAmB9T,MAAnB,CAA0B,mBAA1B,CAApF,MADQ,gBAER,iCAFJ;AAGH;AALD,MAhGJ,EAuGKsX,OAAO,CAACvV,MAAR,CAAe4P,CAAC,IAAI,CAACA,CAAC,CAACxG,GAAF,CAAMoI,QAAN,CAAe,QAAf,CAArB,EAA+C8E,OAA/C,GAAyDta,GAAzD,CAA6D4T,CAAC,IAAG;;;AAAC,0BAC/D,oBAAC,2CAAD;AAAM,WAAG,uBAAgBA,CAAC,CAACxG,GAAlB,CAAT;AAAkC,YAAI,EAAE,KAAKzI,KAAL,CAAWvE,IAAnD;AAAyD,YAAI,EAAC,SAA9D;AAAwE,eAAO,EAAEwT,CAAC,CAACxG,GAAnF;AAAwF,YAAI,EAAEwG,CAAC,CAACiF,KAAhG;AAAuG,cAAM,EAAE,OAAC,CAACC,SAAF,MAAW,IAAX,IAAW9P,aAAX,GAAWA,EAAX,GAAe4K,CAAC,CAACiF,KAAhI;AAAuI,mBAAW,EAAEjF,CAAC,CAACkF,SAAF,GAAc,EAAd,GAAmBvY,SAAvK;AAAkL,oBAAY,EAAE,KAAhM;AACI,WAAG,EAAE;AAAEga,WAAC,EAAE;AAAL,SADT;AACmB,iBAAS,EAAE;AAAEA,WAAC,EAAE;AAAL;AAD9B,QAD+D;AAGlE,KAHA,CAvGL,EA4GKhB,OAAO,CAACvV,MAAR,CAAe4P,CAAC,IAAIA,CAAC,CAACxG,GAAF,CAAMoI,QAAN,CAAe,QAAf,CAApB,EAA8C8E,OAA9C,GAAwDta,GAAxD,CAA4D4T,CAAC,iBAC1D,oBAAC,2CAAD;AAAM,SAAG,uBAAgBA,CAAC,CAACxG,GAAlB,CAAT;AAAkC,UAAI,EAAE,KAAKzI,KAAL,CAAWvE,IAAnD;AAAyD,UAAI,EAAC,OAA9D;AAAsE,aAAO,EAAEwT,CAAC,CAACxG,GAAjF;AAAsF,UAAI,EAAEwG,CAAC,CAACiF,KAA9F;AAAqG,YAAM,EAAEjF,CAAC,CAACiF,KAA/G;AAAsH,kBAAY,EAAE,KAApI;AACI,SAAG,EAAE;AAAE0B,SAAC,EAAE;AAAL,OADT;AACmB,eAAS,EAAE;AAAEA,SAAC,EAAE;AAAL,OAD9B;AACwC,WAAK,EAAE;AAD/C,MADH,CA5GL,EAiHK,KAAK5V,KAAL,CAAWqf,SAAX,gBACG,oBAAC,2CAAD;AAAM,SAAG,EAAE,sBAAX;AAAmC,UAAI,EAAE,KAAKrf,KAAL,CAAWqf,SAApD;AAA+D,UAAI,EAAC,SAApE;AAA8E,aAAO,EAAE,eAAvF;AAAwG,UAAI,EAAE,SAA9G;AAAyH,YAAM,EAAE,SAAjI;AAA4I,iBAAW,EAAE,CAAzJ;AAA4J,kBAAY,EAAE,KAA1K;AACI,SAAG,EAAE;AAAEzJ,SAAC,EAAE;AAAL,OADT;AACmB,eAAS,EAAE;AAAEA,SAAC,EAAE;AAAL;AAD9B,MADH,GAGGha,SApHR,EAsHK,KAAKoE,KAAL,CAAWiO,WAAX,gBACG,oBAAC,oDAAD;AAAe,QAAE,EAAE,KAAKjO,KAAL,CAAWiO,WAA9B;AAA2C,QAAE,EAAE,KAAKjO,KAAL,CAAWkO,YAA1D;AAAwE,QAAE,EAAE,KAAKlO,KAAL,CAAW8f,UAAvF;AAAmG,QAAE,EAAE,KAAK9f,KAAL,CAAW+f,aAAlH;AAAiI,mBAAa,EAAE;AAAhJ,MADH,GAEGnkB,SAxHR,CADJ,CADJ,eA8HI;AAAK,eAAS,EAAC;AAAf,OACKqZ,UADL,eAGI,8CACI;AAAM,eAAS,EAAC;AAAhB,OACKvM,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,0EAAzB,CADL,CADJ,CAHJ,CA9HJ,eAwII;AAAK,eAAS,EAAC,+BAAf;AAA+C,SAAG,EAAE,KAAK6F;AAAzD,MAxIJ,CADH,GA2IG7S,SA5IR,CAZJ,CADJ,CADI,CAAR;AA+JH;;AA/fqF;AAmgB1F,+DAAeqd,eAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3iBA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAGA;AAEA;AAGA;AAEA;AAEA;AACA;AACA;AACA;AACA;;AAiCA,MAAMpV,iBAAN,SAAgCwd,qDAAhC,CAAsF;AAclFna,cAAYC,KAAZ,EAAyC;AACrC,UAAMA,KAAN;AAEA,SAAKnH,KAAL,GAAa;AACTqf,eAAS,EAAE,EADF;AAETjc,UAAI,EAAE,KAFG;AAGTmP,eAAS,EAAE,YAHF;AAITkQ,aAAO,EAAE,KAJA;AAKTC,iBAAW,EAAE,OALJ;AAMT3kB,mBAAa,EAAE;AANN,KAAb;AASA,SAAKwX,QAAL,gBAAgB1I,gDAAS,EAAzB;AACA,SAAK8V,QAAL,gBAAgB9V,gDAAS,EAAzB;AAEA,SAAK+V,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBjb,IAAxB,CAA6B,IAA7B,CAA1B;AACA,SAAKkb,4BAAL,GAAoC,KAAKA,4BAAL,CAAkClb,IAAlC,CAAuC,IAAvC,CAApC;AACA,SAAKmb,4BAAL,GAAoC,KAAKA,4BAAL,CAAkCnb,IAAlC,CAAuC,IAAvC,CAApC;AACA,SAAKob,MAAL,GAAc,KAAKA,MAAL,CAAYpb,IAAZ,CAAiB,IAAjB,CAAd;AACA,SAAKtJ,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBsJ,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAK1J,gBAAL,GAAwB,KAAKA,gBAAL,CAAsB0J,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKjJ,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BiJ,IAA3B,CAAgC,IAAhC,CAA7B;AACA,SAAK9I,qBAAL,GAA6B,KAAKA,qBAAL,CAA2B8I,IAA3B,CAAgC,IAAhC,CAA7B;AACA,SAAK3I,qBAAL,GAA6B,KAAKA,qBAAL,CAA2B2I,IAA3B,CAAgC,IAAhC,CAA7B;AACA,SAAKqb,WAAL,GAAmB,KAAKA,WAAL,CAAiBrb,IAAjB,CAAsB,IAAtB,CAAnB;AACH;;AAMM,MAAH3D,GAAG;AAAK,WAAO,KAAKmD,KAAL,CAAW8b,IAAX,GAAkBziB,sDAAlB,GAAiCnG,gDAAxC;AAAiD;;AAE7D8U,mBAAiB;;;AACb,gBAAMA,iBAAN,MAAuB,IAAvB,IAAuB9K,aAAvB,GAAuB,MAAvB,GAAuBA,aAAvB;;AAEA,QAAI,CAAC,KAAK8C,KAAL,CAAW8b,IAAhB,EAAsB;AAClB5oB,MAAAA,8DAAA,GAAuBqV,IAAvB,CAA6BwT,MAAD,IAAW;AACnC,YAAIA,MAAM,CAACznB,IAAX,EAAiB;AACb,eAAKuM,QAAL,CAAc;AACVjK,yBAAa,EAAEmlB,MAAM,CAACznB;AADZ,WAAd;AAGH;AACJ,OAND;AAOH;;AAED0nB,cAAU,CAAC,MAAK;AACZ,UAAI,CAAC,KAAKnjB,KAAL,CAAWojB,MAAZ,IAAsB,CAAC,KAAKpjB,KAAL,CAAWqf,SAAX,CAAqBlO,MAA5C,IAAsDzI,GAAG,CAAC2W,SAAJ,CAAclO,MAAxE,EAAgF;AAC5E,aAAKnJ,QAAL,CAAc;AACVqX,mBAAS,EAAEtS,8CAAM,CAAC,CAAC,GAAGrE,GAAG,CAAC2W,SAAR,EAAmBhgB,MAAnB,CAA0B+d,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAA/B,CAAD,EAAgEjG,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAArE;AADP,SAAd;AAGH;AACJ,KANS,EAMP,GANO,CAAV;AAQA3a,OAAG,CAACka,kBAAJ,GAAyB,KAAKA,kBAA9B;AACH;;AAED1W,oBAAkB,CAACC,SAAD,EAA8CC,SAA9C,EAAyF;;;AACvG,QAAI,CAAChB,+CAAO,CAACgB,SAAS,CAACiT,SAAX,EAAsB,KAAKrf,KAAL,CAAWqf,SAAjC,CAAZ,EAAyD;AACrD,UAAI,KAAKrf,KAAL,CAAWqf,SAAX,CAAqBlO,MAArB,GAA8B,CAAlC,EAAqC;AACjC,cAAMiS,MAAM,GAAG,KAAKpjB,KAAL,CAAWojB,MAAX,IAAqB,KAAKpjB,KAAL,CAAWqf,SAAX,CAAqBnQ,QAArB,CAA8B,KAAKlP,KAAL,CAAWojB,MAAzC,CAArB,GACT,KAAKpjB,KAAL,CAAWojB,MADF,GACW,KAAKpjB,KAAL,CAAWqf,SAAX,CAAqB,CAArB,CAD1B;;AAGA,YAAI,KAAKrf,KAAL,CAAWuS,SAAX,KAAyB,YAAzB,IAAyC,CAACnH,+CAAO,CAACgB,SAAS,CAACgX,MAAX,EAAmBA,MAAnB,CAArD,EAAiF;AAC7E,eAAKpb,QAAL,CAAc;AACVob,kBAAM,EAAEA,MADE;AAEVE,gBAAI,EAAE1nB,SAFI;AAGV2nB,sBAAU,EAAE3nB,SAHF;AAIV2W,qBAAS,EAAE,KAAKvS,KAAL,CAAWqf,SAAX,CAAqBlO,MAArB,IAA+B,CAA/B,IAAoC,KAAKnR,KAAL,CAAWuS,SAAX,IAAwB,UAA5D,GAAyE,YAAzE,GAAwF,KAAKvS,KAAL,CAAWuS;AAJpG,WAAd,EAKG,KAAKvS,KAAL,CAAWuS,SAAX,KAAyB,YAAzB,GAAwC,MAAK;AAC5C,iBAAKiR,UAAL;AACH,WAFE,GAEC5nB,SAPJ;AAQH;;AAED,mBAAK6nB,MAAL,MAAW,IAAX,IAAWpf,aAAX,GAAW,MAAX,GAAWA,cAAG,CAAC,GAAD,EAAM,GAAN,CAAH,CAAX;AACA,mBAAKqf,QAAL,MAAa,IAAb,IAAanf,aAAb,GAAa,MAAb,GAAaA,aAAb;AACH;AACJ;;AAED,QAAI,CAAC6G,+CAAO,CAACgB,SAAS,CAACgX,MAAX,EAAmB,KAAKpjB,KAAL,CAAWojB,MAA9B,CAAR,IAAiDhX,SAAS,CAACmG,SAAV,KAAwB,KAAKvS,KAAL,CAAWuS,SAApF,IACC,KAAKvS,KAAL,CAAW0iB,WAAX,IAA0BtW,SAAS,CAACsW,WAApC,IAAmDtW,SAAS,CAACsW,WAAV,IAAyB,YADjF,EACgG;AAE5F,WAAKc,UAAL;AACH;;AAED,QAAIpX,SAAS,CAACkX,IAAV,IAAkB,KAAKtjB,KAAL,CAAWsjB,IAA7B,IAAqClX,SAAS,CAAChJ,IAAV,IAAkB,KAAKpD,KAAL,CAAWoD,IAAtE,EAA4E;AACxE,WAAKugB,iBAAL;AACH;;AAED,QAAI,YAAK3jB,KAAL,CAAW4jB,aAAX,MAAwB,IAAxB,IAAwB1e,aAAxB,GAAwB,MAAxB,GAAwBA,GAAEnG,EAA1B,MAAgC,eAAS,CAAC6kB,aAAV,MAAuB,IAAvB,IAAuBne,aAAvB,GAAuB,MAAvB,GAAuBA,GAAE1G,EAAzD,CAAJ,EAAiE;AAC7D,WAAK8kB,kBAAL;AACH;AACJ;;AAED7S,sBAAoB;;;AAChB,gBAAMA,oBAAN,MAA0B,IAA1B,IAA0B3M,aAA1B,GAA0B,MAA1B,GAA0BA,aAA1B;AAEAqE,OAAG,CAACob,UAAJ,CAAe,KAAKlB,kBAApB;AACH;;AAEDA,oBAAkB,CAACmB,QAAD,EAAqB;AACnC,SAAK/b,QAAL,CAAc;AACVqX,eAAS,EAAEtS,8CAAM,CAAC,CAAC,IAAGgX,QAAQ,SAAR,YAAQ,WAAR,cAAY,EAAf,CAAD,EAAoB1kB,MAApB,CAA2B+d,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAAhC,CAAD,EAAiEjG,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAAtE;AADP,KAAd;AAGH;;AAEDW,UAAQ,CAACC,OAAD,EAAiB;AACrB,SAAKjc,QAAL,CAAc;AACVqX,eAAS,EAAEtS,8CAAM,CAAC,CAAC,GAAGrE,GAAG,CAAC2W,SAAR,EAAmBhgB,MAAnB,CAA0B+d,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAA/B,CAAD,EAAgEjG,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAArE,CADP;AAEVD,YAAM,EAAEa;AAFE,KAAd;AAIH;;AAEKT,YAAU;;;;AACZ,UAAI,CAAC,KAAKxjB,KAAL,CAAWojB,MAAZ,IAAsB,CAAC,KAAKpjB,KAAL,CAAWqf,SAAX,CAAqBlO,MAAhD,EAAwD;AAExD,YAAM+S,QAAQ,GAA2C,CAAC,IAAI,WAAKlkB,KAAL,CAAWsjB,IAAX,MAAe,IAAf,IAAejf,aAAf,GAAeA,EAAf,GAAmB,EAAvB,CAAD,CAAzD;AACA,YAAM0f,QAAQ,GAAG,KAAK/jB,KAAL,CAAWuS,SAAX,KAAyB,UAAzB,GACb,CAAC,GAAG,KAAKvS,KAAL,CAAWqf,SAAf,CADa,GACe,CAAC,KAAKrf,KAAL,CAAWojB,MAAZ,CADhC;AAGA,YAAMjoB,MAAM,GAAG,cAAQ,CAAC,CAAD,CAAR,MAAW,IAAX,IAAWoJ,aAAX,GAAW,MAAX,GAAWA,GAAE8e,aAAF,GAAkB,QAAlB,CAA1B;AACA,UAAI,CAACloB,MAAL,EAAa;AAEb,YAAMgpB,aAAa,GAAGJ,QAAQ,CAAC/U,OAAT,CAAiBiV,OAAO,IAAG;AAC7C,cAAMvoB,QAAQ,GAAGuoB,OAAO,CAACZ,aAAR,GAAwB,UAAxB,CAAjB;AACA,eAAO3nB,QAAQ,GAAG,CAACA,QAAD,CAAH,GAAgB,EAA/B;AACH,OAHqB,EAGnB2D,MAHmB,CAGZsK,CAAC,IAAIua,QAAQ,CAAC1b,KAAT,CAAe;AAAA,YAAC,CAAC4b,CAAD,CAAD;AAAA,eAASA,CAAC,CAAC3I,QAAF,IAAc9R,CAAvB;AAAA,OAAf,CAHO,CAAtB;AAKA,WAAK3B,QAAL,CAAc;AAAEya,eAAO,EAAE;AAAX,OAAd;AAEA,UAAI9nB,QAAJ;;AACA,UAAIwpB,aAAa,CAAChT,MAAlB,EAA0B;AACtBxW,gBAAQ,GAAG,MAAO,KAAKwM,KAAL,CAAW8b,IAAX,GAAkBziB,8DAAA,CAAqB;AACrDrF,gBAAM,EAAEA,MAD6C;AAErDC,mBAAS,EAAE+oB;AAF0C,SAArB,CAAlB,GAGb9pB,wDAAA,CAAe;AAChBc,gBAAM,EAAEA,MADQ;AAEhBC,mBAAS,EAAE+oB;AAFK,SAAf,CAHL;AAOH;;AAED,UAAIE,QAAJ;;AACA,UAAI,cAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE5oB,IAAV,MAAc,IAAd,IAAcyJ,aAAd,GAAc,MAAd,GAAcA,GAAEiM,MAApB,EAA4B;AACxB,cAAMmT,aAAa,GAAG,MAAMpiB,OAAO,CAACqiB,GAAR,CAAY5pB,QAAQ,CAACc,IAAT,CAAcJ,GAAd,CAAyBC,CAAP,IAAYwV,iDAAAA;AAClE,gBAAM8E,CAAC,GAAG,MAAO,KAAKzO,KAAL,CAAW8b,IAAX,GAAkBziB,8DAAA,CAAqB;AACpDrF,kBAAM,EAAEG,CAAC,CAACkpB,MAD0C;AAEpD7jB,sBAAU,EAAErF,CAAC,CAAC4f;AAFsC,WAArB,CAAlB,GAGZ7gB,wDAAA,CAAe;AAChBc,kBAAM,EAAEG,CAAC,CAACkpB,MADM;AAEhB9oB,oBAAQ,EAAEJ,CAAC,CAACmgB,QAFI;AAGhB9f,oBAAQ,EAAEL,CAAC,CAAC4f;AAHI,WAAf,CAHL;AAQA,cAAI,CAACtF,CAAC,CAACna,IAAP,EAAa;AAGbma,WAAC,CAACna,IAAF,CAAOkE,MAAP,GAAgBoN,8CAAM,CAAC6I,CAAC,CAACna,IAAF,CAAOkE,MAAR,EAAgBgK,CAAC,IAAI,CAACA,CAAC,CAACvJ,SAAH,EAAcuJ,CAAC,CAAC6W,MAAF,GAAW,CAAX,GAAe,CAA7B,CAArB,CAAtB;AACA,eAAKiE,aAAL,CAAmB7O,CAAC,CAACna,IAArB;AAEA,iBAAO,CAACH,CAAD,EAAIsa,CAAC,CAACna,IAAN,CAAP;AACH,SAhBqE,CAA9B,CAAZ,CAA5B;AAkBAyoB,gBAAQ,CAACjf,IAAT,CAAc,GAAGqf,aAAa,CAACjlB,MAAd,CAAqB/D,CAAC,IAAIA,CAA1B,CAAjB;AAEA,cAAMopB,KAAK,GAAGR,QAAQ,CAAClV,OAAT,CAAiB;AAAA,cAAC,CAACoV,CAAD,CAAD;AAAA,iBAAS,CAACtd,6CAAM,CAACsd,CAAC,CAACO,UAAF,CAAa7R,SAAd,CAAP,EAAiChM,6CAAM,CAACsd,CAAC,CAACO,UAAF,CAAa3R,OAAd,CAAvC,CAAT;AAAA,SAAjB,EACT3T,MADS,CACF/D,CAAC,IAAIA,CAAC,CAACuhB,OAAF,EADH,CAAd;AAEA,cAAMrV,SAAS,GAAG,CAACV,iDAAA,CAAW4d,KAAX,CAAD,EAAoB5d,iDAAA,CAAW4d,KAAX,CAApB,CAAlB;AAEA,cAAME,eAAe,GAAG,MAAM,CAAC,KAAKzd,KAAL,CAAW8b,IAAX,GAAkBziB,sDAAlB,GAAiCnG,gDAAlC,EAA0CoC,kBAA1C,CAA6D;AACvFE,eAAK,EAAE6K,SAAS,CAAC,CAAD,CADuE;AAEvF3K,aAAG,EAAE2K,SAAS,CAAC,CAAD,CAFyE;AAGvF1K,cAAI,EAAE,SAAG,CAAC5B,IAAJ,MAAQ,IAAR,IAAQuK,aAAR,GAAQ,MAAR,GAAQA,GAAEof;AAHuE,SAA7D,CAA9B;;AAMA,YAAID,eAAe,CAACnpB,IAApB,EAA0B;AACtB,gBAAMqpB,QAAQ,GAAG1C,4CAAa,CAAC,WAAD,CAA9B;AACA,gBAAM2C,QAAQ,GAAG,eAAG,CAACC,IAAJ,MAAQ,IAAR,IAAQtf,aAAR,GAAQ,MAAR,GAAQA,GAAE0c,aAAF,EAAR,MAAyB,IAAzB,IAAyBzc,aAAzB,GAAyBA,EAAzB,GAA6Byc,4CAAa,CAAC,YAAD,CAA3D;AACA,gBAAM6C,MAAM,GAAG1C,qDAAS,CAAC,iBAAKviB,KAAL,CAAWojB,MAAX,CAAkB8B,WAAlB,QAA+B,IAA/B,IAA+Btf,aAA/B,GAA+B,MAA/B,GAA+BA,GAAEuf,SAAF,EAA/B,MAA4C,IAA5C,IAA4Ctf,aAA5C,GAA4CA,EAA5C,GAAgD,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAjD,CAAxB;AAEAwe,kBAAQ,GAAGO,eAAe,CAACnpB,IAAhB,CAAqBJ,GAArB,CAA0BC,CAAD,IAAM;AACtC,kBAAM8lB,CAAC,GAAeiB,kDAAS,CAAC,CAAC/mB,CAAC,CAACqO,CAAH,EAAMrO,CAAC,CAACsO,CAAR,CAAD,EAAakb,QAAb,EAAuBC,QAAvB,CAA/B;AACA,kBAAMK,QAAQ,GAAG1Z,IAAI,CAAC2Z,IAAL,CAAU3Z,IAAI,CAAC4Z,GAAL,CAASL,MAAM,CAAC,CAAD,CAAN,GAAY7D,CAAC,CAAC,CAAD,CAAtB,EAA2B,CAA3B,IAAgC1V,IAAI,CAAC4Z,GAAL,CAASL,MAAM,CAAC,CAAD,CAAN,GAAY7D,CAAC,CAAC,CAAD,CAAtB,EAA2B,CAA3B,CAA1C,CAAjB;AACA,mBAAO,CAAC9lB,CAAD,EAAI8pB,QAAJ,CAAP;AACH,WAJU,CAAX;AAMAf,kBAAQ,GAAGtX,8CAAM,CAACsX,QAAD,EAAW;AAAA,gBAAC,GAAG/oB,CAAH,CAAD;AAAA,mBAAWA,CAAX;AAAA,WAAX,CAAjB;AACH;AACJ;;AAED,YAAMI,QAAQ,GAAG,WAAKsE,KAAL,CAAWojB,MAAX,MAAiB,IAAjB,IAAiBtd,aAAjB,GAAiB,MAAjB,GAAiBA,GAAEud,aAAF,GAAkB,UAAlB,CAAlC;AACA,YAAMkC,UAAU,GAAG7pB,QAAQ,GAAGwoB,QAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE7kB,MAAV,CAAiB;AAAA,YAAC,CAAC+kB,CAAD,CAAD;AAAA,eAASA,CAAC,CAAC3I,QAAF,IAAc/f,QAAvB;AAAA,OAAjB,CAAH,GAAuDE,SAAlF;AAEA,WAAKoM,QAAL,CAAc;AACVya,eAAO,EAAE,KADC;AAEVa,YAAI,EAAEY,QAFI;AAGVG,gBAAQ,EAAEA,QAAQ,SAAR,YAAQ,WAAR,cAAY,KAAKrkB,KAAL,CAAWqkB,QAHvB;AAIVT,qBAAa,EAAE,oBAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAG,CAAH,CAAR,MAAa,IAAb,IAAa7d,aAAb,GAAa,MAAb,GAAaA,GAAG,CAAH,CAAb,MAAkB,IAAlB,IAAkBC,aAAlB,GAAkBA,EAAlB,GAAsB,KAAKhG,KAAL,CAAW4jB,aAJtC;AAKV2B,kBAAU,EAAEA;AALF,OAAd;;AAOH;;AAEDd,eAAa,CAAChpB,IAAD,EAA2D;AACpE,UAAM+pB,UAAU,GAAG,EAAnB;AACA,QAAI/pB,IAAI,CAACkE,MAAL,CAAYwR,MAAZ,IAAsBqU,UAA1B,EAAsC;AAEtC,UAAMC,KAAK,GAAGhqB,IAAI,CAACkE,MAAL,CAAYtE,GAAZ,CAAgB,CAACC,CAAD,EAAI6W,CAAJ,EAAOsE,CAAP,KAC1BtE,CAAC,GAAG,CAAJ,GAAQsE,CAAC,CAACtF,MAAV,GAAmBsF,CAAC,CAACtE,CAAC,GAAG,CAAL,CAAD,CAAS/R,SAAT,GAAqB9E,CAAC,CAAC8E,SAA1C,GAAsD9E,CAAC,CAAC8E,SAAF,GAAcqW,CAAC,CAACtE,CAAC,GAAG,CAAL,CAAD,CAAS/R,SADnE,CAAd;;AAGA,SAAK,IAAIslB,CAAC,GAAGjqB,IAAI,CAACkE,MAAL,CAAYwR,MAAZ,GAAqB,CAAlC,EAAqCuU,CAAC,IAAI,CAA1C,EAA6CA,CAAC,EAA9C,EAAkD;AAC9C,YAAMC,SAAS,GAAG,CAACF,KAAK,CAACtU,MAAN,GAAeuU,CAAhB,IAAqBF,UAAvC;AACA,YAAMI,MAAM,GAAGH,KAAK,CAAChU,KAAN,CAAYiU,CAAC,IAAIF,UAAU,GAAGG,SAAjB,CAAb,EAA0CD,CAAC,GAAGC,SAA9C,CAAf;AACA,YAAME,GAAG,GAAGvD,4CAAI,CAACsD,MAAD,CAAhB;AACA,YAAME,GAAG,GAAGpa,IAAI,CAAC2Z,IAAL,CAAU/C,4CAAI,CAACsD,MAAM,CAACvqB,GAAP,CAAWC,CAAC,IAAIoQ,IAAI,CAAC4Z,GAAL,CAAShqB,CAAC,GAAGuqB,GAAb,EAAkB,CAAlB,CAAhB,CAAD,CAAd,CAAZ;;AAEA,UAAIJ,KAAK,CAACC,CAAD,CAAL,GAAWG,GAAX,GAAiBC,GAAG,GAAG,CAA3B,EAA8B;AAC1BrqB,YAAI,CAACkE,MAAL,CAAY0S,MAAZ,CAAmBqT,CAAC,GAAG,CAAvB,EAA0B,CAA1B,EAA6B;AACzBtlB,mBAAS,EAAE3E,IAAI,CAACkE,MAAL,CAAY+lB,CAAC,GAAG,CAAhB,EAAmBtlB,SAAnB,GAA+B;AADjB,SAA7B;AAGH;AACJ;AACJ;;AAEDujB,mBAAiB;;;AACb,SAAK3b,QAAL,CAAc;AAAEya,aAAO,EAAE;AAAX,KAAd;AAEA,QAAIsD,UAAJ;AAEA,QAAI7B,QAAQ,GAAG,WAAKlkB,KAAL,CAAWsjB,IAAX,MAAe,IAAf,IAAejf,aAAf,GAAeA,EAAf,GAAmB,EAAlC;;AACA,QAAI,KAAKrE,KAAL,CAAWuS,SAAX,IAAwB,YAAxB,IAAwC,KAAKvS,KAAL,CAAWojB,MAAvD,EAA+D;AAC3D,YAAM1nB,QAAQ,GAAG,KAAKsE,KAAL,CAAWojB,MAAX,CAAkBC,aAAlB,GAAkC,UAAlC,CAAjB;AACAa,cAAQ,GAAGA,QAAQ,CAAC7kB,MAAT,CAAgB;AAAA,YAAC,CAAC+kB,CAAD,CAAD;AAAA,eAASA,CAAC,CAAC3I,QAAF,IAAc/f,QAAvB;AAAA,OAAhB,CAAX;AACH;;AAED,QAAIwoB,QAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE/S,MAAd,EAAsB;AAElB,YAAM5I,IAAI,GAAG4Q,kDAAU,CAACpM,8CAAM,CAACmX,QAAQ,CAAClV,OAAT,CAAiB;AAAA,YAAC,GAAG1T,CAAH,CAAD;AAAA,eAAWA,CAAC,CAACqE,MAAF,CAAStE,GAAT,CAAasO,CAAC,IAAIA,CAAC,CAACvJ,SAApB,CAAX;AAAA,OAAjB,CAAD,CAAP,CAAvB;;AAEA,UAAImI,IAAI,CAAC4I,MAAT,EAAiB;AACb,cAAM6U,KAAK,GAAG,KAAKhmB,KAAL,CAAWoD,IAAX,IAAmB,KAAjC;AAEA,cAAM,CAAC0I,GAAD,EAAMC,GAAN,IAAamY,QAAQ,CAAC7oB,GAAT,CAAa;AAAA,cAAC,CAAC+oB,CAAD,CAAD;AAAA,iBAAS,CACrC4B,KAAK,GAAG5B,CAAC,CAACO,UAAF,CAAa7Y,GAAhB,GAAuB,OAAOsY,CAAC,CAACO,UAAF,CAAa5Y,GAApB,IAA2B,QAA3B,GAAsCqY,CAAC,CAAC7D,QAAF,GAAa6D,CAAC,CAACO,UAAF,CAAa5Y,GAAhE,GAAsEnQ,SAD7D,EAErCoqB,KAAK,GAAG5B,CAAC,CAACO,UAAF,CAAa5Y,GAAhB,GAAuB,OAAOqY,CAAC,CAACO,UAAF,CAAa7Y,GAApB,IAA2B,QAA3B,GAAsCsY,CAAC,CAAC7D,QAAF,GAAa6D,CAAC,CAACO,UAAF,CAAa7Y,GAAhE,GAAsElQ,SAF7D,CAAT;AAAA,SAAb,EAGhB4a,MAHgB,CAGT;AAAA,cAAC,CAACyP,IAAD,EAAOC,IAAP,CAAD;AAAA,cAAe,CAACC,IAAD,EAAOC,IAAP,CAAf;AAAA,iBAAgC,CACtC,OAAOH,IAAP,IAAe,QAAf,IAA2B,OAAOE,IAAP,IAAe,QAA1C,GAAqDza,IAAI,CAACI,GAAL,CAASma,IAAT,EAAeE,IAAf,CAArD,GAA4E,OAAOF,IAAP,IAAe,QAAf,GAA0BA,IAA1B,GAAiCE,IADvE,EAEtC,OAAOD,IAAP,IAAe,QAAf,IAA2B,OAAOE,IAAP,IAAe,QAA1C,GAAqD1a,IAAI,CAACK,GAAL,CAASma,IAAT,EAAeE,IAAf,CAArD,GAA4E,OAAOF,IAAP,IAAe,QAAf,GAA0BA,IAA1B,GAAiCE,IAFvE,CAAhC;AAAA,SAHS,CAAnB;AAQA,YAAI,CAAC9V,GAAD,EAAMR,GAAN,EAAWE,GAAX,EAAgBE,GAAhB,EAAqBE,GAArB,IAAoD,EAAxD;;AACA,YAAI,KAAKpQ,KAAL,CAAWuS,SAAX,IAAwB,YAA5B,EAA0C;AACtC,gBAAMrX,IAAI,GAAGgpB,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAb;AACA5T,aAAG,GAAG0V,KAAK,GAAG9qB,IAAI,CAACqlB,QAAR,GAAmB,CAA9B;AACAzQ,aAAG,GAAG,OAAO5U,IAAI,CAACypB,UAAL,CAAgB7U,GAAvB,IAA8B,QAA9B,GAA0CkW,KAAK,GAAG9qB,IAAI,CAACypB,UAAL,CAAgB7U,GAAnB,GAAyB5U,IAAI,CAACqlB,QAAL,GAAgBrlB,IAAI,CAACypB,UAAL,CAAgB7U,GAAxG,GAA+GlU,SAArH;AACAoU,aAAG,GAAG,OAAO9U,IAAI,CAACypB,UAAL,CAAgB3U,GAAvB,IAA8B,QAA9B,GAA0CgW,KAAK,GAAG9qB,IAAI,CAACypB,UAAL,CAAgB3U,GAAnB,GAAyB9U,IAAI,CAACqlB,QAAL,GAAgBrlB,IAAI,CAACypB,UAAL,CAAgB3U,GAAxG,GAA+GpU,SAArH;AACAsU,aAAG,GAAG,OAAOhV,IAAI,CAACypB,UAAL,CAAgBzU,GAAvB,IAA8B,QAA9B,GAA0C8V,KAAK,GAAG9qB,IAAI,CAACypB,UAAL,CAAgBzU,GAAnB,GAAyBhV,IAAI,CAACqlB,QAAL,GAAgBrlB,IAAI,CAACypB,UAAL,CAAgBzU,GAAxG,GAA+GtU,SAArH;AACAwU,aAAG,GAAG,OAAOlV,IAAI,CAACypB,UAAL,CAAgBvU,GAAvB,IAA8B,QAA9B,GAA0C4V,KAAK,GAAG9qB,IAAI,CAACypB,UAAL,CAAgBvU,GAAnB,GAAyBlV,IAAI,CAACqlB,QAAL,GAAgBrlB,IAAI,CAACypB,UAAL,CAAgBvU,GAAxG,GAA+GxU,SAArH;AACH,SAPD,MAOO,IAAI,CAACoqB,KAAL,EAAY;AACf1V,aAAG,GAAG,CAAN;AACH;;AAED,cAAM7U,IAAI,GAA8B,EAAxC;;AACA,aAAK,MAAMwT,CAAX,IAAgB1G,IAAhB,EAAsB;AAClB9M,cAAI,CAACwT,CAAD,CAAJ,GAAU;AACNmC,gBAAI,EAAEnC,CADA;AAENtP,kBAAM,EAAE,EAFF;AAGNmM,eAAG,EAAEA,GAHC;AAINC,eAAG,EAAEA,GAJC;AAKN+D,eAAG,EAAEA,GALC;AAMNE,eAAG,EAAEA,GANC;AAONE,eAAG,EAAEA,GAPC;AAQNE,eAAG,EAAEA,GARC;AASNE,eAAG,EAAEA;AATC,WAAV;AAWH;;AAED,YAAIoV,CAAC,GAAG,CAAR;;AACA,aAAK,MAAM,CAACtB,CAAD,EAAIhoB,OAAJ,CAAX,IAA2B8nB,QAA3B,EAAqC;AACjC,cAAI/R,CAAC,GAAG,CAAR;AACA,gBAAM6B,KAAK,GAAG,CAAC,KAAK7M,KAAL,CAAW8b,IAAZ,aAAsBmB,CAAC,CAAC3I,QAAxB,cAAoC2I,CAAC,CAAClJ,QAAtC,eAAuDwK,CAAC,GAAG,CAA3D,SAA+DtB,CAAC,CAACiC,KAAF,eAAejC,CAAC,CAACiC,KAAjB,SAA4B,EAA3F,CAAd;;AAEA,cAAIjqB,OAAO,CAACuD,MAAR,CAAewR,MAAf,GAAwB,CAA5B,EAA+B;AAC3B,mBAAO5I,IAAI,CAAC4J,CAAD,CAAJ,GAAU/V,OAAO,CAACuD,MAAR,CAAe,CAAf,EAAkBS,SAAnC,EAA8C+R,CAAC,EAA/C,EAAmD;AAC/C,oBAAMoE,IAAI,GAAe;AACrBvC,qBAAK,EAAEA,KADc;AAErB6H,mBAAG,EAAE,IAFgB;AAEVxU,qBAAK,EAAE,IAFG;AAEGuU,wBAAQ,EAAE,IAFb;AAEmB4E,sBAAM,EAAE;AAF3B,eAAzB;AAIA/kB,kBAAI,CAAC8M,IAAI,CAAC4J,CAAD,CAAL,CAAJ,CAAcxS,MAAd,CAAqBsF,IAArB,CAA0BsR,IAA1B;AACH;;AAED,gBAAIiK,MAAJ;;AACA,iBAAK,MAAM/gB,MAAX,IAAqBrD,OAAO,CAACuD,MAA7B,EAAqC;AACjC,kBAAI,CAACkc,GAAD,EAAMxU,KAAN,EAAauU,QAAb,IAAiD,EAArD;;AACA,kBAAI,OAAOnc,MAAM,CAACM,KAAd,IAAuB,QAA3B,EAAqC;AAEjC,oBAAIN,MAAM,CAAC+gB,MAAX,EAAmB;AACfA,wBAAM,GAAG,CAACwF,KAAD,GAAS5B,CAAC,CAAC7D,QAAF,GAAa9gB,MAAM,CAACM,KAA7B,GAAqCN,MAAM,CAACM,KAArD;AACA;AACH;;AAED8b,mBAAG,GAAG,CAACmK,KAAD,GAAS5B,CAAC,CAAC7D,QAAF,GAAa9gB,MAAM,CAACM,KAA7B,GAAqCN,MAAM,CAACM,KAAlD;AACA,oBAAIN,MAAM,CAAC4H,KAAX,EAAkBA,KAAK,GAAGwU,GAAR;AAClB,oBAAIpc,MAAM,CAACmc,QAAX,EAAqBA,QAAQ,GAAGC,GAAX;AACxB;;AAED,qBAAOtT,IAAI,CAAC4J,CAAD,CAAJ,IAAW1S,MAAM,CAACW,SAAzB,EAAoC+R,CAAC,EAArC,EAAyC;AACrC,sBAAMoE,IAAI,GAAe;AACrBvC,uBAAK,EAAEA,KADc;AAErB3M,uBAAK,EAAEA,KAAK,SAAL,SAAK,WAAL,WAAS,IAFK;AAGrBwU,qBAAG,EAAE,KAAK1U,KAAL,CAAWzC,OAAX,GAAqBmX,GAAG,SAAH,OAAG,WAAH,SAAO,IAA5B,GAAmC,IAHnB;AAIrBD,0BAAQ,EAAE,KAAKzU,KAAL,CAAWxC,YAAX,GAA0BiX,QAAQ,SAAR,YAAQ,WAAR,cAAY,IAAtC,GAA6C,IAJlC;AAKrB4E,wBAAM,EAAE;AALa,iBAAzB;;AAQA,oBAAIA,MAAM,IAAI/gB,MAAM,CAACW,SAAP,IAAoBmI,IAAI,CAAC4J,CAAD,CAAtC,EAA2C;AACvCoE,sBAAI,CAACiK,MAAL,GAAcA,MAAd;AACAA,wBAAM,GAAG5kB,SAAT;AACH;;AAEDH,oBAAI,CAAC8M,IAAI,CAAC4J,CAAD,CAAL,CAAJ,CAAcxS,MAAd,CAAqBsF,IAArB,CAA0BsR,IAA1B;AACH;AACJ;AACJ;;AAED,iBAAOpE,CAAC,GAAG5J,IAAI,CAAC4I,MAAhB,EAAwBgB,CAAC,EAAzB,EAA6B;AACzB,kBAAMoE,IAAI,GAAe;AACrBvC,mBAAK,EAAEA,KADc;AAErB6H,iBAAG,EAAE,IAFgB;AAEVxU,mBAAK,EAAE,IAFG;AAEGuU,sBAAQ,EAAE,IAFb;AAEmB4E,oBAAM,EAAE;AAF3B,aAAzB;AAIA/kB,gBAAI,CAAC8M,IAAI,CAAC4J,CAAD,CAAL,CAAJ,CAAcxS,MAAd,CAAqBsF,IAArB,CAA0BsR,IAA1B;AACH;;AAEDmP,WAAC;AACJ;;AAEDK,kBAAU,GAAGhZ,8CAAM,CAACzE,MAAM,CAAC3I,MAAP,CAAclE,IAAd,CAAD,EAAsBH,CAAC,IAAIA,CAAC,CAAC8V,IAA7B,CAAnB;;AAEA,aAAK,MAAMrR,KAAX,IAAoBgmB,UAAU,CAAC/W,OAAX,CAAmB1T,CAAC,IAAIA,CAAC,CAACqE,MAA1B,CAApB,EAAuD;AACnDI,eAAK,CAACygB,MAAN,GAAe,WAAK,CAACA,MAAN,MAAY,IAAZ,IAAYjc,aAAZ,GAAYA,EAAZ,GAAgB,IAA/B;AACAxE,eAAK,CAAC8b,GAAN,GAAY,WAAK,CAACA,GAAN,MAAS,IAAT,IAAS3W,aAAT,GAASA,EAAT,GAAa,IAAzB;AACAnF,eAAK,CAACsH,KAAN,GAAc,WAAK,CAACA,KAAN,MAAW,IAAX,IAAW5B,aAAX,GAAWA,EAAX,GAAe,IAA7B;AACH;AACJ;AACJ;;AAED,SAAKuC,QAAL,CAAc;AAAEya,aAAO,EAAE,KAAX;AAAkBc,gBAAU,EAAEwC;AAA9B,KAAd;AACH;;AAEKlC,oBAAkB;;;;AAEpB,UAAIpoB,IAAJ;;AACA,UAAI,KAAKuE,KAAL,CAAW4jB,aAAX,IAA4B,KAAK5jB,KAAL,CAAWsjB,IAA3C,EAAiD;AAC7C,cAAMoB,KAAK,GAAG,KAAK1kB,KAAL,CAAWsjB,IAAX,CAAgBtU,OAAhB,CAAwB;AAAA,cAAC,CAACoV,CAAD,CAAD;AAAA,iBAAS,CAACtd,6CAAM,CAACsd,CAAC,CAACO,UAAF,CAAa7R,SAAd,CAAP,EAAiChM,6CAAM,CAACsd,CAAC,CAACO,UAAF,CAAa3R,OAAd,CAAvC,CAAT;AAAA,SAAxB,EACT3T,MADS,CACF/D,CAAC,IAAIA,CAAC,CAACuhB,OAAF,EADH,CAAd;AAEA,cAAMrV,SAAS,GAAG,CAACV,iDAAA,CAAW4d,KAAX,CAAD,EAAoB5d,iDAAA,CAAW4d,KAAX,CAApB,CAAlB;AACA,cAAM4B,SAAS,GAAG,KAAKtmB,KAAL,CAAW4jB,aAAX,CAAyB9E,MAAzB,IAAmC,SAArD;AACA,cAAM3jB,MAAM,GAAG,SAAG,CAACD,IAAJ,MAAQ,IAAR,IAAQmJ,aAAR,GAAQ,MAAR,GAAQA,GAAEwgB,MAAzB;;AAEA,YAAIyB,SAAS,IAAI,OAAOnrB,MAAP,IAAiB,QAAlC,EAA4C;AACxC,gBAAM,yCAAN;AACH;;AAED,cAAMorB,eAAe,GAAG,MAAO,KAAKpf,KAAL,CAAW8b,IAAX,GAAkBziB,qEAAA,CAA4B;AACzEvD,uBAAa,EAAE,CAACqpB,SAAD,GAAaliB,MAAM,CAAC,KAAKpE,KAAL,CAAW4jB,aAAX,CAAyB7kB,EAA1B,CAAnB,GAAmD5D,MADO;AAEzEwF,oBAAU,EAAE2lB,SAAS,GAAG,KAAKtmB,KAAL,CAAW4jB,aAAX,CAAyB7kB,EAAzB,CAA4BiM,QAA5B,EAAH,GAA4CpP,SAFQ;AAGzEe,eAAK,EAAE6K,SAAS,CAAC,CAAD,CAHyD;AAIzE3K,aAAG,EAAE2K,SAAS,CAAC,CAAD;AAJ2D,SAA5B,CAAlB,GAK1BnN,+DAAA,CAAsB;AACvB4C,uBAAa,EAAE,CAACqpB,SAAD,GAAaliB,MAAM,CAAC,KAAKpE,KAAL,CAAW4jB,aAAX,CAAyB7kB,EAA1B,CAAnB,GAAmD5D,MAD3C;AAEvB+B,gBAAM,EAAEopB,SAAS,GAAGliB,MAAM,CAAC,KAAKpE,KAAL,CAAW4jB,aAAX,CAAyB7kB,EAA1B,CAAT,GAAyCnD,SAFnC;AAGvBe,eAAK,EAAE6K,SAAS,CAAC,CAAD,CAHO;AAIvB3K,aAAG,EAAE2K,SAAS,CAAC,CAAD;AAJS,SAAtB,CALL;;AAYA,YAAI+e,eAAe,CAAC9qB,IAApB,EAA0B;AACtBA,cAAI,GAAG8qB,eAAe,CAAC9qB,IAAhB,CAAqBkE,MAA5B;AACH;AACJ;;AAED,WAAKqI,QAAL,CAAc;AACVyI,eAAO,EAAEhV,IAAI,SAAJ,QAAI,WAAJ,GAAI,MAAJ,OAAI,CAAEJ,GAAN,CAAUC,CAAC,IAAG;;;AAAC,iBAAC;AACrB8V,gBAAI,EAAE9V,CAAC,CAAC8E,SADa;AAErBL,iBAAK,EAAE,OAAC,CAACymB,aAAF,MAAe,IAAf,IAAeniB,aAAf,GAAeA,EAAf,GAAmB;AAFL,WAAD;AAGtB,SAHO;AADC,OAAd;;AAMH;;AAEDoiB,yBAAuB,CAAChrB,IAAD,EAAwB;;;AAC3C,UAAMirB,GAAG,GAAG,WAAK1mB,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBlhB,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAAjC;AACA,UAAM3I,QAAQ,GAAGgrB,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAG,CAAH,CAAH,CAASjL,QAA1B;;AAEA,QAAI,KAAKzb,KAAL,CAAWsjB,IAAX,IAAmB5nB,QAAvB,EAAiC;AAC7B,YAAMirB,KAAK,GAAG,WAAK3mB,KAAL,CAAWsjB,IAAX,MAAe,IAAf,IAAe/e,aAAf,GAAe,MAAf,GAAeA,GAAEqiB,SAAF,CAAYjd,CAAC,IAAIA,CAAC,CAAC,CAAD,CAAD,CAAK8R,QAAL,IAAiB/f,QAAlC,CAA7B;AACA,WAAKsE,KAAL,CAAWsjB,IAAX,CAAgBqD,KAAhB,EAAuB,CAAvB,EAA0BE,gBAA1B,GAA6CprB,IAA7C;AAEAirB,SAAG,CAAC,CAAD,CAAH,CAAOG,gBAAP,GAA0BprB,IAA1B;AACA,WAAKqrB,WAAL;AACH;AACJ;;AAEDC,oBAAkB,CAACtrB,IAAD,EAAmB;;;AACjC,UAAMirB,GAAG,GAAG,WAAK1mB,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBlhB,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAAjC;AACA,UAAM3I,QAAQ,GAAGgrB,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAG,CAAH,CAAH,CAASjL,QAA1B;;AAEA,QAAI,KAAKzb,KAAL,CAAWsjB,IAAX,IAAmB5nB,QAAvB,EAAiC;AAC7B,YAAMirB,KAAK,GAAG,WAAK3mB,KAAL,CAAWsjB,IAAX,MAAe,IAAf,IAAe/e,aAAf,GAAe,MAAf,GAAeA,GAAEqiB,SAAF,CAAYjd,CAAC,IAAIA,CAAC,CAAC,CAAD,CAAD,CAAK8R,QAAL,IAAiB/f,QAAlC,CAA7B;AACA,WAAKsE,KAAL,CAAWsjB,IAAX,CAAgBqD,KAAhB,EAAuB,CAAvB,EAA0BtY,WAA1B,GAAwC5S,IAAxC;AAEAirB,SAAG,CAAC,CAAD,CAAH,CAAOrY,WAAP,GAAqB5S,IAArB;AACA,WAAKqrB,WAAL;AACH;AACJ;;AAEKE,UAAQ,CAAC1pB,MAAD,EAAuB;;;;AACjC,WAAK0K,QAAL,CAAc;AAAEya,eAAO,EAAE;AAAX,OAAd;AAEA,YAAMsB,QAAQ,GAAG,KAAK/jB,KAAL,CAAWuS,SAAX,KAAyB,UAAzB,GACb,CAAC,GAAG,KAAKvS,KAAL,CAAWqf,SAAf,CADa,GACe,CAAC,KAAKrf,KAAL,CAAWojB,MAAZ,CADhC;AAIA,YAAMjoB,MAAM,GAAG,cAAQ,CAAC,CAAD,CAAR,MAAW,IAAX,IAAWkJ,aAAX,GAAW,MAAX,GAAWA,GAAEgf,aAAF,GAAkB,QAAlB,CAA1B;AACA,YAAMc,aAAa,GAAGJ,QAAQ,CAAC/U,OAAT,CAAiBiV,OAAO,IAAG;AAC7C,cAAMvoB,QAAQ,GAAGuoB,OAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAEZ,aAAT,GAAyB,UAAzB,CAAjB;AACA,eAAO3nB,QAAQ,GAAG,CAACA,QAAD,CAAH,GAAgB,EAA/B;AACH,OAHqB,CAAtB;;AAKA,UAAIP,MAAM,IAAIgpB,aAAa,CAAChT,MAAd,GAAuB,CAAjC,IAAsC,KAAKnR,KAAL,CAAWsjB,IAArD,EAA2D;AAEvD,cAAMtP,KAAK,GAAG,KAAKhU,KAAL,CAAWsjB,IAAX,CAAgBjkB,MAAhB,CAAuB;AAAA,cAAC,CAAC+kB,CAAD,CAAD;AAAA,iBAASD,aAAa,CAACjV,QAAd,CAAuBkV,CAAC,CAAC3I,QAAzB,CAAT;AAAA,SAAvB,EACTpgB,GADS,CACL,UAAQ;AAAA,cAAP,CAAC+oB,CAAD,CAAO;;AAAA;;AAAC,kBAAC,KAAKjd,KAAL,CAAW8b,IAAZ,aAAsBmB,CAAC,CAAC3I,QAAxB,cAAoC2I,CAAC,CAAClJ,QAAtC,cAAqD,OAAC,CAACmL,KAAF,MAAO,IAAP,IAAOhiB,aAAP,GAAOA,EAAP,GAAW+f,CAAC,CAAClJ,QAAlE;AAA4E,SADhF,EACkF3f,IADlF,CACuF,GADvF,CAAd;AAIA,cAAO,KAAK4L,KAAL,CAAW8b,IAAX,GAAkBziB,iEAAA,CAAwB;AAC7CrF,gBAAM,EAAEA,MADqC;AAE7CyF,qBAAW,EAAEujB,aAFgC;AAG7C9mB,kBAAQ,YAAKlC,MAAL,cAAe6Y,KAAf,CAHqC;AAI7C1W,gBAAM,EAAEA;AAJqC,SAAxB,CAAlB,GAKFjD,2DAAA,CAAkB;AACnBc,gBAAM,EAAEA,MADW;AAEnBC,mBAAS,EAAE+oB,aAFQ;AAGnB9mB,kBAAQ,YAAKlC,MAAL,cAAe6Y,KAAf,CAHW;AAInB1W,gBAAM,EAAEA;AAJW,SAAlB,CALL;AAWH;;AAED,WAAK0K,QAAL,CAAc;AAAEya,eAAO,EAAE;AAAX,OAAd;;AACH;;AAEDI,8BAA4B,CAACzkB,UAAD,EAA+B;;;AACvD,QAAI,WAAK4B,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBlhB,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAAzB,EAAgC;AAC5B,YAAM4iB,gBAAgB,GAAG7oB,UAAU,CAACG,IAAX,GAAkB,WAAKyB,KAAL,CAAWulB,UAAX,CAAsB,CAAtB,EAAyB,CAAzB,EAA4BlX,WAA5B,MAAuC,IAAvC,IAAuC9J,aAAvC,GAAuC,MAAvC,GAAuCA,GAAE2iB,IAAF,CAAOvd,CAAC,IAAIA,CAAC,CAACpL,IAAF,IAAUH,UAAU,CAACG,IAAjC,CAAzD,GAAkG3C,SAA3H;AACA,YAAMe,KAAK,GAAG,OAAOyB,UAAU,CAACqM,UAAlB,IAAgC,QAAhC,GAA2C3D,6CAAM,CAAC1I,UAAU,CAACqM,UAAZ,CAAN,CAA8BtC,MAA9B,EAA3C,GAAoF/J,UAAU,CAACqM,UAA7G;AACA,YAAM5N,GAAG,GAAG,OAAOuB,UAAU,CAACsM,SAAlB,IAA+B,QAA/B,GAA0C5D,6CAAM,CAAC1I,UAAU,CAACsM,SAAZ,CAAN,CAA6BvC,MAA7B,EAA1C,GAAkF/J,UAAU,CAACsM,SAAzG;AAEA,WAAK1C,QAAL,CAAc;AACV0a,mBAAW,EAAE,YADH;AAEVuE,wBAAgB,EAAEA,gBAFR;AAGVE,2BAAmB,EAAE,CAACxqB,KAAD,EAAQE,GAAR;AAHX,OAAd;AAKH;AACJ;;AAEDimB,8BAA4B,CAAClkB,eAAD,EAAiC;;;AACzD,QAAI,WAAKoB,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBlhB,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAAzB,EAAgC;AAC5B,YAAM+iB,qBAAqB,GAAG,WAAKpnB,KAAL,CAAWulB,UAAX,CAAsB,CAAtB,EAAyB,CAAzB,EAA4BsB,gBAA5B,MAA4C,IAA5C,IAA4CtiB,aAA5C,GAA4C,MAA5C,GAA4CA,GAAE2iB,IAAF,CAAOvd,CAAC,IAAIA,CAAC,CAAC5K,EAAF,IAAQH,eAAe,CAACG,EAApC,CAA1E;AAEA,WAAKiJ,QAAL,CAAc;AACV0a,mBAAW,EAAE,YADH;AAEV0E,6BAAqB,EAAEA;AAFb,OAAd;AAKH;AACJ;;AAEDC,8BAA4B,CAACX,GAAD,EAA0C;AAClE,SAAK1e,QAAL,CAAc;AACV0a,iBAAW,EAAE,YADH;AAEV4E,mBAAa,EAAEZ;AAFL,KAAd;AAIH;;AAED3D,QAAM;AACF,SAAK/a,QAAL,CAAc;AACV0a,iBAAW,EAAE,OADH;AAEVuE,sBAAgB,EAAErrB,SAFR;AAGVurB,yBAAmB,EAAEvrB,SAHX;AAIVwrB,2BAAqB,EAAExrB;AAJb,KAAd;AAMH;;AAEKqC,kBAAgB,CAACG,UAAD,EAAuB;;;;AACzC,YAAMkd,YAAY,GAAG,iBAAKtb,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBlhB,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAArB,MAA0B,IAA1B,IAA0BE,aAA1B,GAA0B,MAA1B,GAA0BA,GAAG,CAAH,CAA/C;;AACA,UAAI+W,YAAJ,EAAkB;AACd,cAAM3gB,QAAQ,GAAG,MAAMN,iEAAA,CAAwB;AAC3C8D,mBAAS,EAAEmd,YAAY,CAACE,SADmB;AAE3C9f,kBAAQ,EAAE4f,YAAY,CAACG,QAFoB;AAG3C9f,kBAAQ,EAAE2f,YAAY,CAACJ,QAHoB;AAI3C9c,oBAAU,EAAEA;AAJ+B,SAAxB,CAAvB;;AAMA,YAAIzD,QAAQ,CAACc,IAAb,EAAmB;AACf,eAAKsrB,kBAAL,CAAwBpsB,QAAQ,CAACc,IAAjC;AACH;AACJ;;AAED,WAAKsnB,MAAL;;AACH;;AAEK1kB,kBAAgB,CAACD,UAAD,EAAuB;;AACzC,YAAMzD,QAAQ,GAAG,MAAMN,iEAAA,CAAwB;AAC3C+D,kBAAU,EAAEA;AAD+B,OAAxB,CAAvB;;AAGA,UAAIzD,QAAQ,CAACc,IAAb,EAAmB;AACf,aAAKsrB,kBAAL,CAAwBpsB,QAAQ,CAACc,IAAjC;AACH;;AAED,WAAKsnB,MAAL;AACH;AAAA;;AAEKrkB,uBAAqB,CAACE,eAAD,EAAiC;;;;AACxD,YAAM0c,YAAY,GAAG,iBAAKtb,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBlhB,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAArB,MAA0B,IAA1B,IAA0BE,aAA1B,GAA0B,MAA1B,GAA0BA,GAAG,CAAH,CAA/C;;AACA,UAAI+W,YAAJ,EAAkB;AACd,cAAM3gB,QAAQ,GAAG,MAAMN,sEAAA,CAA6B;AAChD8D,mBAAS,EAAEmd,YAAY,CAACE,SADwB;AAEhD9f,kBAAQ,EAAE4f,YAAY,CAACG,QAFyB;AAGhD9f,kBAAQ,EAAE2f,YAAY,CAACJ,QAHyB;AAIhDtc,yBAAe,EAAEA;AAJ+B,SAA7B,CAAvB;;AAMA,YAAIjE,QAAQ,CAACc,IAAb,EAAmB;AACf,eAAKgrB,uBAAL,CAA6B9rB,QAAQ,CAACc,IAAtC;AACH;AACJ;;AAED,WAAKsnB,MAAL;;AACH;;AAEKlkB,uBAAqB,CAACD,eAAD,EAAiC;;AACxD,YAAMjE,QAAQ,GAAG,MAAMN,sEAAA,CAA6B;AAChDuE,uBAAe,EAAEA;AAD+B,OAA7B,CAAvB;;AAGA,UAAIjE,QAAQ,CAACc,IAAb,EAAmB;AACf,aAAKgrB,uBAAL,CAA6B9rB,QAAQ,CAACc,IAAtC;AACH;;AAED,WAAKsnB,MAAL;AACH;AAAA;;AAEK/jB,uBAAqB,CAACJ,eAAD,EAAiC;;AACxD,YAAMjE,QAAQ,GAAG,MAAMN,sEAAA,CAA6B;AAChDuE,uBAAe,EAAEA;AAD+B,OAA7B,CAAvB;;AAGA,UAAIjE,QAAQ,CAACc,IAAb,EAAmB;AACf,aAAKgrB,uBAAL,CAA6B9rB,QAAQ,CAACc,IAAtC;AACH;;AAED,WAAKsnB,MAAL;AACH;AAAA;;AAEKwE,qBAAmB;;AACrB,UAAI,KAAKvnB,KAAL,CAAWsjB,IAAX,IAAmB,KAAKtjB,KAAL,CAAWsnB,aAAlC,EAAiD;AAC7C,cAAMhM,YAAY,GAAG,KAAKtb,KAAL,CAAWsnB,aAAX,CAAyB,CAAzB,CAArB;AACA,cAAME,QAAQ,GAAG,KAAKxnB,KAAL,CAAWsjB,IAAX,CAAgBjkB,MAAhB,CAAuBsK,CAAC,IAAIA,CAAC,CAAC,CAAD,CAAD,CAAK6R,SAAL,IAAkBF,YAAY,CAACE,SAA/B,IAA4C7R,CAAC,CAAC,CAAD,CAAD,CAAK8R,QAAL,IAAiBH,YAAY,CAACG,QAAtG,CAAjB;;AACA,aAAK,MAAMlF,IAAX,IAAmBiR,QAAnB,EAA6B;AACzB,eAAKxnB,KAAL,CAAWsjB,IAAX,CAAgBjR,MAAhB,CAAuB,KAAKrS,KAAL,CAAWsjB,IAAX,CAAgBhS,OAAhB,CAAwBiF,IAAxB,CAAvB,EAAsD,CAAtD;AACH;;AACD,cAAM,KAAKiN,UAAL,EAAN;AACH;AACJ;AAAA;;AAEKR,aAAW,CAACzT,IAAD,EAAoB;;;;AACjC,YAAMkY,SAAS,GAAe,iBAAKlS,QAAL,CAAclJ,OAAd,MAAqB,IAArB,IAAqBhI,aAArB,GAAqB,MAArB,GAAqBA,GAAEgT,SAAvB,MAAgC,IAAhC,IAAgC9S,aAAhC,GAAgC,MAAhC,GAAgCA,GAAEmjB,UAAF,CAAa,CAAb,CAA9D;AACA,UAAI,CAACD,SAAL,EAAgB;AAEhB,YAAM;AAAExmB,aAAF;AAASC;AAAT,UAAoBumB,SAAS,CAACE,qBAAV,EAA1B;AACA,UAAIC,WAAW,GAAG1mB,MAAlB;AAEA,YAAMpD,KAAK,2BAAoB,WAAKkC,KAAL,CAAWsjB,IAAX,MAAe,IAAf,IAAepe,aAAf,GAAe,MAAf,GAAeA,GAAG,CAAH,EAAM,CAAN,EAASsW,SAA5C,cAAyDjM,IAAzD,CAAX;AAEA,YAAM0F,UAAU,GAA4B,iBAAK0N,QAAL,MAAa,IAAb,IAAald,aAAb,GAAa,MAAb,GAAaA,GAAE4G,OAAf,MAAsB,IAAtB,IAAsB3G,aAAtB,GAAsB,MAAtB,GAAsBA,GAAE0O,aAAF,EAAlE;AACA,UAAI,CAACa,UAAL,EAAiB;AAEjB,YAAM4S,YAAY,GAAG,MAArB;AACAD,iBAAW,IAAIC,YAAf;AAEA,YAAMC,UAAU,GAAeL,SAAS,CAACM,SAAV,CAAoB,IAApB,CAA/B;AACA,YAAMC,MAAM,gBAAgB;AAAe,aAAK,EAAE/mB,KAAtB;AAA6B,cAAM,EAAE4mB,YAArC;AAAmD,SAAC,EAAE,CAAtD;AAAyD,SAAC,EAAE3mB;AAA5D,sBACxB;AAGI,aAAK,EAAC;AAHV,SAIK+T,UAJL,CADwB,CAA5B;AASA6S,gBAAU,CAACtmB,SAAX,IAAwBghB,sEAAoB,CAACwF,MAAD,CAA5C;AACAF,gBAAU,CAACG,YAAX,CAAwB,QAAxB,EAAkCL,WAAW,CAAC5c,QAAZ,EAAlC;AACA8c,gBAAU,CAACG,YAAX,CAAwB,SAAxB,gBAA0ChnB,KAA1C,cAAmD2mB,WAAnD;;AAEA,UAAIrY,IAAI,IAAI,KAAZ,EAAmB;AACf,cAAMrM,+DAAQ,CAAC4kB,UAAD,EAAahqB,KAAb,EAAoBmD,KAApB,EAA2B2mB,WAA3B,CAAd;AACH,OAFD,MAGK,IAAIrY,IAAI,IAAI,KAAZ,EAAmB;AACpB,cAAMtN,SAAS,GAAG,MAAMlB,+DAAQ,CAAC+mB,UAAD,EAAa7mB,KAAb,EAAoB2mB,WAApB,CAAhC;;AAEA,YAAI3lB,SAAJ,EAAe;AACX,gBAAMimB,IAAI,GAAG5mB,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAb;AACA2mB,cAAI,CAACC,IAAL,GAAYlmB,SAAZ;AACAimB,cAAI,CAAClB,QAAL,GAAgBlpB,KAAhB;AACAoqB,cAAI,CAAC7mB,KAAL,CAAW+mB,OAAX,GAAqB,MAArB;AAEA9mB,kBAAQ,CAAC+mB,IAAT,CAAc1mB,WAAd,CAA0BumB,IAA1B;AACAA,cAAI,CAACI,KAAL;AACAhnB,kBAAQ,CAAC+mB,IAAT,CAAcxlB,WAAd,CAA0BqlB,IAA1B;AACH;AACJ;;AACJ;;AAED1hB,QAAM;;;AACF,UAAM+hB,OAAO,GAAG,CAAC,CAAC,KAAKvoB,KAAL,CAAWujB,UAA7B;AACA,UAAMiF,UAAU,GAAG,aAAnB;;AAEA,UAAMC,kBAAkB,GAAIrqB,UAAD,IAAmC;AAC1D,YAAM0U,SAAS,GAAGhM,6CAAM,CAAC1I,UAAU,CAACqM,UAAZ,CAAxB;AACA,YAAMuI,OAAO,GAAGlM,6CAAM,CAAC1I,UAAU,CAACsM,SAAZ,CAAtB;AACA,uBAAUoI,SAAS,CAACxV,MAAV,CAAiBkrB,UAAjB,CAAV,gBAA4CxV,OAAO,CAAC1V,MAAR,CAAekrB,UAAf,CAA5C;AACH,KAJD;;AAMA,UAAME,uBAAuB,GAAIjhB,UAAD,IAAwC;AACpE,YAAMqL,SAAS,GAAGhM,6CAAM,CAACW,UAAU,CAACH,SAAZ,CAAxB;AACA,YAAM0L,OAAO,GAAGlM,6CAAM,CAACW,UAAU,CAACF,OAAZ,CAAtB;AACA,uBAAUuL,SAAS,CAACxV,MAAV,CAAiBkrB,UAAjB,CAAV,gBAA4CxV,OAAO,CAAC1V,MAAR,CAAekrB,UAAf,CAA5C;AACH,KAJD;;AAMA,QAAIG,WAAJ;;AACA,QAAI,YAAK3oB,KAAL,CAAWqf,SAAX,MAAoB,IAApB,IAAoBhb,aAApB,GAAoB,MAApB,GAAoBA,GAAE8M,MAAtB,KAAgC,KAAKnR,KAAL,CAAWojB,MAA/C,EAAuD;AACnD,cAAQ,KAAKpjB,KAAL,CAAW0iB,WAAnB;AACA,aAAK,OAAL;AACIiG,qBAAW,gBAAG,uDACV;AAAK,qBAAS,EAAC;AAAf,0BACI,8CACI;AAAK,qBAAS,EAAC;AAAf,0BACI;AAAQ,qBAAS,gBAAS,KAAK3oB,KAAL,CAAWoD,IAAX,IAAmB,KAAnB,GAA2B,eAA3B,GAA6C,sCAAtD,CAAjB;AAAiH,oBAAQ,EAAE,CAACmlB,OAA5H;AAAqI,mBAAO,EAAE,MAAM,KAAKvgB,QAAL,CAAc;AAAE5E,kBAAI,EAAE;AAAR,aAAd;AAApJ,aACKsF,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,KAAzB,CADL,CADJ,eAII;AAAQ,qBAAS,gBAAS,KAAK5I,KAAL,CAAWoD,IAAX,IAAmB,IAAnB,GAA0B,eAA1B,GAA4C,sCAArD,CAAjB;AAAgH,oBAAQ,EAAE,CAACmlB,OAA3H;AAAoI,mBAAO,EAAE,MAAM,KAAKvgB,QAAL,CAAc;AAAE5E,kBAAI,EAAE;AAAR,aAAd;AAAnJ,aACKsF,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,UAAzB,CADL,CAJJ,CADJ,EASK,YAAK5I,KAAL,CAAWqkB,QAAX,MAAmB,IAAnB,IAAmB9f,aAAnB,GAAmB,MAAnB,GAAmBA,GAAE4M,MAArB,iBAA8B;AAAK,qBAAS,EAAC;AAAf,0BAC3B,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,mBAAO,EAAC,WAAzB;AAAqC,cAAE,EAAC,2BAAxC;AAAoE,qBAAS,EAAC;AAA9E,0BAEI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEqQ,0EAAvB;AAAoC,qBAAS,EAAC;AAA9C,YAFJ,eAGI;AAAM,qBAAS,EAAC;AAAhB,aACK,iBAAKxhB,KAAL,CAAW4jB,aAAX,MAAwB,IAAxB,IAAwB1e,aAAxB,GAAwB,MAAxB,GAAwBA,GAAE+C,IAA1B,MAA8B,IAA9B,IAA8BxC,aAA9B,GAA8BA,EAA9B,GAAkC,KADvC,CAHJ,CADJ,eASI,oBAAC,6DAAD;AAAe,iBAAK,EAAE;AAAEqQ,uBAAS,EAAE,OAAb;AAAsB8S,sBAAQ,EAAE;AAAhC;AAAtB,aACK,WAAK5oB,KAAL,CAAWqkB,QAAX,MAAmB,IAAnB,IAAmB3e,aAAnB,GAAmB,MAAnB,GAAmBA,GAAErK,GAAF,CAAM,UAAW;AAAA,gBAAV,CAACC,CAAD,EAAIutB,CAAJ,CAAU;;;;AAAC,gCAClC,oBAAC,6DAAD;AAAe,iBAAG,kBAAWvtB,CAAC,CAACyD,EAAb,CAAlB;AAAqC,kBAAI,EAAC,GAA1C;AAA8C,oBAAM,EAAEzD,CAAC,CAACyD,EAAF,KAAQ,WAAKiB,KAAL,CAAW4jB,aAAX,MAAwB,IAAxB,IAAwBvf,aAAxB,GAAwB,MAAxB,GAAwBA,GAAEtF,EAAlC,CAAtD;AACI,uBAAS,EAAC,4DADd;AAEI,qBAAO,EAAE,MAAM,KAAKiJ,QAAL,CAAc;AAAE4b,6BAAa,EAAEtoB;AAAjB,eAAd;AAFnB,eAGKA,CAAC,CAAC2M,IAHP,eAII;AAAM,uBAAS,EAAC;AAAhB,4BACI;AAAM,uBAAS,EAAC;AAAhB,eAAyC4gB,CAAC,GAAG,IAAJ,aAAcnd,IAAI,CAACC,KAAL,CAAWkd,CAAX,CAAd,oBAAqCnd,IAAI,CAACC,KAAL,CAAWkd,CAAC,GAAG,IAAf,CAArC,QAAzC,CADJ,eAEI;AAAM,uBAAS,EAAC;AAAhB,eAA8CvtB,CAAC,CAACwjB,MAAhD,CAFJ,CAJJ,CADkC;AAUrC,WAVmB,CADxB,CATJ,CAD2B,CAA9B,GAwBQljB,SAjCb,CADJ,eAqCI,iCACK,KAAKoE,KAAL,CAAWuS,SAAX,KAAyB,YAAzB,IAAyC,CAAC,KAAKpL,KAAL,CAAW8b,IAArD,iBACG;AAAK,qBAAS,EAAC;AAAf,0BACI,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,mBAAO,EAAC,WAAzB;AAAqC,cAAE,EAAC,mBAAxC;AAA4D,qBAAS,EAAC;AAAtE,0BAEI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEhB,6EAAvB;AAAuC,qBAAS,EAAC;AAAjD,YAFJ,eAGI;AAAM,qBAAS,EAAC;AAAhB,2BAHJ,CADJ,eASI,oBAAC,6DAAD;AAAe,iBAAK,EAAE;AAAEnM,uBAAS,EAAE,OAAb;AAAsB8S,sBAAQ,EAAE;AAAhC;AAAtB,0BACI,oBAAC,6DAAD;AAAe,gBAAI,EAAC,GAApB;AACI,mBAAO,EAAE,MAAM,KAAK5gB,QAAL,CAAc;AAAE0a,yBAAW,EAAE,YAAf;AAA6B0E,mCAAqB,EAAExrB;AAApD,aAAd;AADnB,0BAEI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEmmB,qEAAMA;AAA7B,YAFJ,yBADJ,EAMK,wBAAK/hB,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqB5f,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAArB,MAA0B,IAA1B,IAA0BC,aAA1B,GAA0B,MAA1B,GAA0BA,GAAG,CAAH,EAAMihB,gBAAhC,MAAgD,IAAhD,IAAgDhhB,aAAhD,GAAgD,MAAhD,GAAgDA,GAAEsL,MAAlD,iBAA2D,uDACxD,oBAAC,gEAAD,OADwD,eAGxD,oBAAC,+DAAD,+BAHwD,EAKvD,KAAKnR,KAAL,CAAWulB,UAAX,CAAsB,CAAtB,EAAyB,CAAzB,EAA4BsB,gBAA5B,CAA6CxrB,GAA7C,CAAiDsO,CAAC,iBAC/C,oBAAC,6DAAD;AAAe,eAAG,EAAEA,CAAC,CAAC5K,EAAtB;AAA0B,gBAAI,EAAC,GAA/B;AACI,mBAAO,EAAE,MAAM,KAAKiJ,QAAL,CAAc;AAAE0a,yBAAW,EAAE,YAAf;AAA6B0E,mCAAqB,EAAEzd;AAApD,aAAd;AADnB,aAEK+e,uBAAuB,CAAC/e,CAAD,CAF5B,CADH,CALuD,CAA3D,GAWK/N,SAjBV,CATJ,CADJ,CAFR,EAkCK,KAAKoE,KAAL,CAAWuS,SAAX,KAAyB,YAAzB,IAAyC,KAAKvS,KAAL,CAAWjC,aAApD,IAAqE,CAAC,KAAKoJ,KAAL,CAAW8b,IAAjF,iBAA0F,uDACvF;AAAK,qBAAS,EAAC;AAAf,0BACI,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,mBAAO,EAAC,WAAzB;AAAqC,cAAE,EAAC,qBAAxC;AAA8D,qBAAS,EAAC;AAAxE,0BAEI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEf,wEAAvB;AAAkC,qBAAS,EAAC;AAA5C,YAFJ,eAGI;AAAM,qBAAS,EAAC;AAAhB,sBAHJ,CADJ,eASI,oBAAC,6DAAD;AAAe,iBAAK,EAAE;AAAEpM,uBAAS,EAAE,OAAb;AAAsB8S,sBAAQ,EAAE;AAAhC;AAAtB,0BACI,oBAAC,6DAAD;AAAe,gBAAI,EAAC,GAApB;AACI,mBAAO,EAAE,MAAM,KAAK5gB,QAAL,CAAc;AAAE0a,yBAAW,EAAE,YAAf;AAA6BuE,8BAAgB,EAAErrB;AAA/C,aAAd;AADnB,0BAEI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEmmB,qEAAMA;AAA7B,YAFJ,2BADJ,EAMK,wBAAK/hB,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBzf,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAArB,MAA0B,IAA1B,IAA0BC,aAA1B,GAA0B,MAA1B,GAA0BA,GAAG,CAAH,EAAMsI,WAAhC,MAA2C,IAA3C,IAA2CrI,aAA3C,GAA2C,MAA3C,GAA2CA,GAAEmL,MAA7C,iBAAsD,uDACnD,oBAAC,gEAAD,OADmD,eAGnD,oBAAC,+DAAD,iCAHmD,EAKlD,KAAKnR,KAAL,CAAWulB,UAAX,CAAsB,CAAtB,EAAyB,CAAzB,EAA4BlX,WAA5B,CAAwChT,GAAxC,CAA4CsO,CAAC,iBAC1C,oBAAC,6DAAD;AAAe,eAAG,EAAEA,CAAC,CAACpL,IAAtB;AAA4B,gBAAI,EAAC,GAAjC;AACI,mBAAO,EAAE,MAAM,KAAKyJ,QAAL,CAAc;AAAE0a,yBAAW,EAAE,YAAf;AAA6BuE,8BAAgB,EAAEtd;AAA/C,aAAd;AADnB,aAEK8e,kBAAkB,CAAC9e,CAAD,CAFvB,CADH,CALkD,CAAtD,GAWK/N,SAjBV,eAmBI,oBAAC,gEAAD,OAnBJ,eAqBI,oBAAC,+DAAD,4BArBJ,EAuBK,WAAKoE,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBtf,aAArB,GAAqB,MAArB,GAAqBA,GAAE5K,GAAF,CAAM+f,CAAC,iBACzB,oBAAC,6DAAD;AAAe,eAAG,qBAAcA,CAAC,CAAC,CAAD,CAAD,CAAKK,QAAnB,cAA+BL,CAAC,CAAC,CAAD,CAAD,CAAKF,QAApC,CAAlB;AAAkE,gBAAI,EAAC,GAAvE;AACI,mBAAO,EAAE,MAAM,KAAKmM,4BAAL,CAAkCjM,CAAlC;AADnB,gCAEiBA,CAAC,CAAC,CAAD,CAAD,CAAKK,QAFtB,cAEkCL,CAAC,CAAC,CAAD,CAAD,CAAKF,QAFvC,EADkB,CAvB1B,CATJ,CADJ,CADuF,CAlC/F,eA8EI;AAAK,qBAAS,EAAC;AAAf,aACK,KAAK/T,KAAL,CAAWrC,UAAX,gBAAwB;AAAK,qBAAS,EAAC;AAAf,0BACrB,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,mBAAO,EAAC,WAAzB;AAAqC,cAAE,EAAC,iBAAxC;AAA0D,qBAAS,EAAC,qCAApE;AAA0G,oBAAQ,EAAE,CAACyjB;AAArH,0BAEI,oBAAC,2EAAD;AAAiB,gBAAI,EAAE1G,2EAAvB;AAAqC,qBAAS,EAAC;AAA/C,YAFJ,eAGI;AAAM,qBAAS,EAAC;AAAhB,sBAHJ,CADJ,eASI,oBAAC,6DAAD;AAAe,iBAAK,EAAE;AAAE/L,uBAAS,EAAE,OAAb;AAAsB8S,sBAAQ,EAAE;AAAhC;AAAtB,0BACI,oBAAC,+DAAD,eADJ,eAGI,oBAAC,6DAAD;AAAe,gBAAI,EAAC,GAApB;AAAwB,mBAAO,EAAE,MAAM,KAAK5B,QAAL,CAAc,MAAd;AAAvC,0BACI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEpF,0EAAWA;AAAlC,YADJ,0BACiD,0CADjD,CAHJ,eAMI,oBAAC,6DAAD;AAAe,gBAAI,EAAC,GAApB;AAAwB,mBAAO,EAAE,MAAM,KAAKoF,QAAL,CAAc,KAAd;AAAvC,0BACI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEtF,wEAASA;AAAhC,YADJ,qCAC0D,yCAD1D,CANJ,eAUI,oBAAC,gEAAD,OAVJ,eAYI,oBAAC,+DAAD,kBAZJ,eAcI,oBAAC,6DAAD;AAAe,gBAAI,EAAC,GAApB;AAAwB,mBAAO,EAAE,MAAM,KAAKsB,WAAL,CAAiB,KAAjB;AAAvC,0BACI,oBAAC,2EAAD;AAAiB,gBAAI,EAAErB,0EAAWA;AAAlC,YADJ,+BACsD,yCADtD,CAdJ,eAiBI,oBAAC,6DAAD;AAAe,gBAAI,EAAC,GAApB;AAAwB,mBAAO,EAAE,MAAM,KAAKqB,WAAL,CAAiB,KAAjB;AAAvC,0BACI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEhB,wEAASA;AAAhC,YADJ,gCACqD,yCADrD,CAjBJ,CATJ,CADqB,CAAxB,GAgCQpmB,SAjCb,eAkCI;AAAK,qBAAS,EAAC;AAAf,0BACI,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,mBAAO,EAAE,KAAKoE,KAAL,CAAWuS,SAAX,IAAwB,YAAxB,GAAuC,SAAvC,GAAmD,WAA7E;AAA0F,cAAE,EAAC,oBAA7F;AACI,qBAAS,gBAAS,KAAKvS,KAAL,CAAWuS,SAAX,IAAwB,YAAxB,GAAuC,cAAvC,GAAwD,EAAjE;AADb,0BAGI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEkP,0EAAvB;AAAoC,qBAAS,EAAC;AAA9C,YAHJ,eAII;AAAM,qBAAS,EAAC;AAAhB,aACK,uBAAKzhB,KAAL,CAAWojB,MAAX,CAAkBC,aAAlB,GAAkC,YAAlC,OAA+C,IAA/C,IAA+Cnd,aAA/C,GAA+CA,EAA/C,GAAmD,KAAKlG,KAAL,CAAWojB,MAAX,CAAkBC,aAAlB,GAAkC,aAAlC,CAAnD,MAAmG,IAAnG,IAAmGld,aAAnG,GAAmGA,EAAnG,GAAuG,KAAKnG,KAAL,CAAWojB,MAAX,CAAkBC,aAAlB,GAAkC,UAAlC,CAAvG,MAAoJ,IAApJ,IAAoJjd,aAApJ,GAAoJA,EAApJ,GAAwJ,SAD7J,CAJJ,CADJ,eAUI,oBAAC,6DAAD;AAAe,sBAAU,MAAzB;AAA0B,iBAAK,EAAE;AAAE0P,uBAAS,EAAE,OAAb;AAAsB8S,sBAAQ,EAAE;AAAhC;AAAjC,aACK,KAAK5oB,KAAL,CAAWqf,SAAX,CAAqBhkB,GAArB,CAAyBC,CAAC,IAAG;;;AAC1B,kBAAMwtB,QAAQ,GAAGxtB,CAAC,CAAC+nB,aAAF,GAAkB,UAAlB,CAAjB;AACA,gCACI,oBAAC,6DAAD;AAAe,iBAAG,kBAAWyF,QAAX,CAAlB;AAAyC,kBAAI,EAAC,GAA9C;AAAkD,oBAAM,EAAExtB,CAAC,IAAI,KAAK0E,KAAL,CAAWojB,MAA1E;AACI,qBAAO,EAAE,MAAM,KAAKpb,QAAL,CAAc;AAAEob,sBAAM,EAAE9nB,CAAV;AAAaiX,yBAAS,EAAE;AAAxB,eAAd;AADnB,eAEK,aAAC,CAAC8Q,aAAF,GAAkB,aAAlB,OAAgC,IAAhC,IAAgChf,aAAhC,GAAgCA,EAAhC,GAAoC/I,CAAC,CAAC+nB,aAAF,GAAkB,YAAlB,CAApC,MAAmE,IAAnE,IAAmE9e,aAAnE,GAAmEA,EAAnE,GAAuEjJ,CAAC,CAAC+nB,aAAF,GAAkB,UAAlB,CAF5E,CADJ;AAMH,WARA,CADL,CAVJ,CADJ,CAlCJ,EA2DK,KAAKrjB,KAAL,CAAWqf,SAAX,CAAqBlO,MAArB,GAA8B,CAA9B,IAAmC,KAAKhK,KAAL,CAAWtC,YAA9C,gBAA6D;AAAK,qBAAS,EAAC;AAAf,0BAC1D;AAAQ,qBAAS,oBAAa,KAAK7E,KAAL,CAAWuS,SAAX,IAAwB,UAAxB,GAAqC,WAArC,GAAmD,WAAhE,CAAjB;AACI,mBAAO,EAAE,MAAM,KAAKvK,QAAL,CAAc;AAAEuK,uBAAS,EAAE,KAAKvS,KAAL,CAAWuS,SAAX,IAAwB,UAAxB,GAAqC,YAArC,GAAoD;AAAjE,aAAd;AADnB,0BAEI,oBAAC,2EAAD;AAAiB,gBAAI,EAAEuP,qEAAMA;AAA7B,YAFJ,CAD0D,CAA7D,GAKQlmB,SAhEb,CA9EJ,CArCJ,CADU,EAyLT,YAAKoE,KAAL,CAAWsjB,IAAX,MAAe,IAAf,IAAejd,aAAf,GAAe,MAAf,GAAeA,GAAE8K,MAAjB,KAA2B,KAAKnR,KAAL,CAAWujB,UAAtC,gBACG;AAAK,qBAAS,EAAC;AAAf,0BACI,oBAAC,0DAAD;AACI,gBAAI,EAAE,KAAKvjB,KAAL,CAAWsjB,IAAX,CAAgBjoB,GAAhB,CAAoB;AAAA,kBAAC,CAAC+oB,CAAD,CAAD;AAAA,qBAASA,CAAT;AAAA,aAApB,CADV;AAC2C,qBAAS,EAAE,KAAKpkB,KAAL,CAAWuS,SADjE;AAEI,gBAAI,EAAE,KAAKvS,KAAL,CAAWujB,UAFrB;AAGI,oBAAQ,EAAE,KAAKpc,KAAL,CAAW8b,IAHzB;AAII,uBAAW,EAAE,CAAC,KAAK9b,KAAL,CAAW8b,IAAZ,GAAmB,iBAAKjjB,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBjf,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAArB,MAA0B,IAA1B,IAA0BC,aAA1B,GAA0B,MAA1B,GAA0BA,GAAG,CAAH,EAAM8H,WAAnD,GAAiEzS,SAJlF;AAKI,uBAAW,EAAE,KAAKuL,KAAL,CAAWvC,YAAX,GAA0B,iBAAK5E,KAAL,CAAWulB,UAAX,MAAqB,IAArB,IAAqBrQ,aAArB,GAAqB,MAArB,GAAqBA,GAAG,CAAH,CAArB,MAA0B,IAA1B,IAA0BC,aAA1B,GAA0B,MAA1B,GAA0BA,GAAG,CAAH,EAAM0R,gBAA1D,GAA6EjrB,SAL9F;AAMI,8BAAkB,EAAE,CAAC,KAAKuL,KAAL,CAAW8b,IAAZ,IAAoB,KAAKjjB,KAAL,CAAWjC,aANvD;AAOI,mBAAO,EAAE,KAAKiC,KAAL,CAAWyQ,OAPxB;AAQI,gBAAI,EAAE,KAAKzQ,KAAL,CAAWoD,IARrB;AASI,mCAAuB,EAAE,CAAC,KAAK+D,KAAL,CAAW8b,IAAZ,GAAmB,KAAKJ,4BAAxB,GAAuDjnB,SATpF;AAUI,oCAAwB,EAAE,CAAC,KAAKuL,KAAL,CAAW8b,IAAZ,GAAmB,KAAKH,4BAAxB,GAAuDlnB,SAVrF;AAWI,eAAG,EAAE,KAAK+mB,QAXd;AAYI,oBAAQ,EAAE,KAAKpN;AAZnB,YADJ,CADH,GAgBG,CAAC,KAAKvV,KAAL,CAAWyiB,OAAZ,gBACA;AAAK,qBAAS,EAAC;AAAf,0BACI,oCAAS/Z,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,YAAzB,CAAT,MADJ,eAEI,kCAAOF,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,0DAAzB,CAAP,CAFJ,CADA,GAKAhN,SA9MM,CAAd;AAgNA;;AACJ,aAAK,YAAL;AACI+sB,qBAAW,gBAAG,uDACV;AAAK,qBAAS,EAAC;AAAf,0BACI,8CACI;AAAK,qBAAS,EAAC;AAAf,0BACI;AAAQ,qBAAS,gBAAS,KAAK3oB,KAAL,CAAWoD,IAAX,IAAmB,KAAnB,GAA2B,eAA3B,GAA6C,sCAAtD,CAAjB;AAAiH,oBAAQ,EAAE,CAACmlB,OAA5H;AAAqI,mBAAO,EAAE,MAAWzX,iDAAAA;AACrJ,oBAAM,KAAKyW,mBAAL,EAAN;AACA,mBAAKvf,QAAL,CAAc;AAAE5E,oBAAI,EAAE;AAAR,eAAd;AACH,aAHwJ;AAAzJ,aAIKsF,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,KAAzB,CAJL,CADJ,eAOI;AAAQ,qBAAS,gBAAS,KAAK5I,KAAL,CAAWoD,IAAX,IAAmB,IAAnB,GAA0B,eAA1B,GAA4C,sCAArD,CAAjB;AAAgH,oBAAQ,EAAE,CAACmlB,OAA3H;AAAoI,mBAAO,EAAE,MAAWzX,iDAAAA;AACpJ,oBAAM,KAAKyW,mBAAL,EAAN;AACA,mBAAKvf,QAAL,CAAc;AAAE5E,oBAAI,EAAE;AAAR,eAAd;AACH,aAHuJ;AAAxJ,aAIKsF,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,UAAzB,CAJL,CAPJ,CADJ,CADJ,eAkBI,8CACI;AAAQ,qBAAS,EAAC,iBAAlB;AAAoC,mBAAO,EAAE,MAAWkI,iDAAAA;AACpD,oBAAM,KAAKyW,mBAAL,EAAN;AACA,mBAAKvf,QAAL,CAAc;AAAE0a,2BAAW,EAAE,OAAf;AAAwB4E,6BAAa,EAAE1rB;AAAvC,eAAd;AACH,aAHuD;AAAxD,0BAII,oBAAC,2EAAD;AAAiB,gBAAI,EAAEumB,gFAAiBA;AAAxC,YAJJ,OAIkDzZ,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,OAAzB,CAJlD,CADJ,CAlBJ,CADU,EA6BT,KAAK5I,KAAL,CAAWsnB,aAAX,IAA4B,KAAKtnB,KAAL,CAAWujB,UAAvC,gBACG,oBAAC,qEAAD;AACI,gBAAI,EAAE,KAAKvjB,KAAL,CAAWsnB,aADrB;AAEI,qBAAS,EAAE,KAAKtnB,KAAL,CAAWujB,UAF1B;AAGI,gBAAI,EAAE,KAAKvjB,KAAL,CAAWoD,IAHrB;AAII,qBAAS,EAAEgY,CAAC,IAAI,KAAKpT,QAAL,CAAc;AAAEya,qBAAO,EAAErH;AAAX,aAAd;AAJpB,YADH,GAMG,CAAC,KAAKpb,KAAL,CAAWyiB,OAAZ,gBACA;AAAK,qBAAS,EAAC;AAAf,0BACI,oCAAS/Z,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,YAAzB,CAAT,MADJ,eAEI,kCAAOF,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,0DAAzB,CAAP,CAFJ,CADA,GAKAhN,SAxCM,CAAd;AA0CA;;AACJ,aAAK,YAAL;AACI+sB,qBAAW,gBACH,oBAAC,qEAAD;AACI,sBAAU,EAAE,KAAK3oB,KAAL,CAAWinB,gBAD3B;AAEI,qBAAS,EAAE,KAAKjnB,KAAL,CAAWmnB,mBAF1B;AAGI,2BAAe,EAAE,KAAKpE,MAH1B;AAII,2BAAe,EAAE,KAAK9kB,gBAJ1B;AAKI,2BAAe,EAAE,KAAKI;AAL1B,YADR;AAQA;;AACJ,aAAK,YAAL;AACIsqB,qBAAW,gBACH,oBAAC,qEAAD;AACI,2BAAe,EAAE,KAAK3oB,KAAL,CAAWonB,qBADhC;AAEI,qBAAS,EAAE,KAAKpnB,KAAL,CAAWmnB,mBAF1B;AAGI,2BAAe,EAAE,KAAKpE,MAH1B;AAII,2BAAe,EAAE,KAAKrkB,qBAJ1B;AAKI,2BAAe,EAAE,KAAKG,qBAL1B;AAMI,2BAAe,EAAE,KAAKG;AAN1B,YADR;AASA;AAnRJ;AAqRH;;AAED,wBACI;AAAK,eAAS,EAAC;AAAf,OACK,EAAC,WAAKgB,KAAL,CAAWqf,SAAX,MAAoB,IAApB,IAAoBjK,aAApB,GAAoB,MAApB,GAAoBA,GAAEjE,MAAvB,KAAiC,CAAC,KAAKnR,KAAL,CAAWojB,MAA7C,gBACG,gCAAK1a,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,uCAAzB,CAAL,CADH,GAEG+f,WAHR,EAKK,KAAK3oB,KAAL,CAAWyiB,OAAX,gBAAqB,oBAAC,0DAAD,OAArB,GAAuC7mB,SAL5C,CADJ;AASH;;AAt6BiF;;AAC3EiI,iCAAe;AAClB/F,OAAK,EAAE,MAAc4K,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,yBAAzB,CADH;AAGlBmgB,aAAW,EAAE,MAAcrgB,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,yBAAzB,CAHT;AAIlBqa,MAAI,EAAE,KAJY;AAKlBve,SAAO,EAAE,IALS;AAMlBC,cAAY,EAAE,IANI;AAOlBC,cAAY,EAAE,IAPI;AAQlBC,cAAY,EAAE,IARI;AASlBC,YAAU,EAAE,IATM;AAUlBkkB,MAAI,EAAEzH,0EAAWA;AAVC,CAAf;AAw6BX,+DAAe1d,iBAAf;;;;;;;;;;;;;;;ACn+BO,IAAKgG,eAAZ;;AAAA,WAAYA,eAAZ,EAA2B;AAAGA;AAA0BA;AAAkCA;AAAoC,CAA9H,EAAYA,eAAe,KAAfA,eAAe,MAA3B;;AACO,MAAM7C,WAAW,GAAG,YAApB;AACA,MAAMuD,eAAe,GAAG,kBAAxB;AAEA,MAAMwD,MAAM,GAAG,CAClB,SADkB,EAElB,SAFkB,EAGlB,SAHkB,EAIlB,SAJkB,EAKlB,SALkB,EAMlB,SANkB,EAOlB,SAPkB,EAQlB,SARkB,EASlB,SATkB,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;ACJP;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;;AAUA,MAAMjK,WAAN,SAA0Bud,qDAA1B,CAA+D;AAQ3Dna,cAAYC,KAAZ,EAA8B;AAC1B,UAAMA,KAAN;AAEA,SAAKnH,KAAL,GAAa;AACTqf,eAAS,EAAE,EADF;AAEToD,aAAO,EAAE;AAFA,KAAb;AAKA,SAAKG,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBjb,IAAxB,CAA6B,IAA7B,CAA1B;AACH;;AAEDwH,mBAAiB;;;AACb,gBAAMA,iBAAN,MAAuB,IAAvB,IAAuB9K,aAAvB,GAAuB,MAAvB,GAAuBA,aAAvB;AAEAqE,OAAG,CAACka,kBAAJ,GAAyB,KAAKA,kBAA9B;;AAEA,QAAIla,GAAG,CAAC2W,SAAJ,CAAclO,MAAlB,EAA0B;AACtB,WAAKnJ,QAAL,CAAc;AACVqX,iBAAS,EAAEtS,8CAAM,CAAC,CAAC,GAAGrE,GAAG,CAAC2W,SAAR,EAAmBhgB,MAAnB,CAA0B+d,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAA/B,CAAD,EAAgEjG,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAArE;AADP,OAAd;AAGH;AACJ;;AAEDnX,oBAAkB,CAACC,SAAD,EAAmCC,SAAnC,EAAwE;;;AACtF,QAAI,CAAChB,+CAAO,CAACgB,SAAS,CAACiT,SAAX,EAAsB,KAAKrf,KAAL,CAAWqf,SAAjC,CAAZ,EAAyD;AACrD,UAAI,KAAKrf,KAAL,CAAWqf,SAAX,CAAqBlO,MAArB,GAA8B,CAA9B,IACI,EAAE,KAAKnR,KAAL,CAAWojB,MAAX,IAAqB,KAAKpjB,KAAL,CAAWqf,SAAX,CAAqBnQ,QAArB,CAA8B,KAAKlP,KAAL,CAAWojB,MAAzC,CAAvB,CADR,EACkF;AAE9E,YAAI,CAAC,KAAKpjB,KAAL,CAAWojB,MAAhB,EAAwB;AACpB,qBAAKK,MAAL,MAAW,IAAX,IAAWpf,aAAX,GAAW,MAAX,GAAWA,cAAG,CAAC,GAAD,EAAM,GAAN,CAAH,CAAX;AACH;;AAED,aAAK2D,QAAL,CAAc;AACVob,gBAAM,EAAE,KAAKpjB,KAAL,CAAWqf,SAAX,CAAqB,CAArB,CADE;AAEV5jB,cAAI,EAAEG,SAFI;AAGVutB,iBAAO,EAAEvtB;AAHC,SAAd;AAKH;AACJ;;AACD,QAAIwQ,SAAS,CAACgX,MAAV,IAAoB,KAAKpjB,KAAL,CAAWojB,MAAnC,EAA2C;AACvC,WAAKI,UAAL;AACH;AACJ;;AAEDxS,sBAAoB;;;AAChB,gBAAMA,oBAAN,MAA0B,IAA1B,IAA0B3M,aAA1B,GAA0B,MAA1B,GAA0BA,aAA1B;AAEAqE,OAAG,CAACob,UAAJ,CAAe,KAAKlB,kBAApB;AACH;;AAEDA,oBAAkB,CAACmB,QAAD,EAAqB;AACnC,SAAK/b,QAAL,CAAc;AACVqX,eAAS,EAAEtS,8CAAM,CAAC,CAAC,IAAGgX,QAAQ,SAAR,YAAQ,WAAR,cAAY,EAAf,CAAD,EAAoB1kB,MAApB,CAA2B+d,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAAhC,CAAD,EAAiEjG,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAAtE;AADP,KAAd;AAGH;;AAEDW,UAAQ,CAACC,OAAD,EAAiB;AACrB,SAAKjc,QAAL,CAAc;AACVob,YAAM,EAAEa;AADE,KAAd;AAGH;;AAEKT,YAAU;;;;AACZ,YAAMroB,MAAM,GAAG,WAAK6E,KAAL,CAAWojB,MAAX,MAAiB,IAAjB,IAAiB/e,aAAjB,GAAiB,MAAjB,GAAiBA,GAAEgf,aAAF,GAAkB,QAAlB,CAAhC;AACA,YAAM/H,YAAY,GAAG,WAAKtb,KAAL,CAAWojB,MAAX,MAAiB,IAAjB,IAAiB7e,aAAjB,GAAiB,MAAjB,GAAiBA,GAAE8e,aAAF,GAAkB,UAAlB,CAAtC;AACA,UAAI,CAACloB,MAAD,IAAW,CAACmgB,YAAhB,EAA8B;AAE9B,WAAKtT,QAAL,CAAc;AAAEya,eAAO,EAAE;AAAX,OAAd;AAEA,YAAM9nB,QAAQ,GAAG,MAAMN,8DAAA,CAAsB;AACzCc,cAAM,EAAEA,MADiC;AAEzCO,gBAAQ,EAAE4f,YAF+B;AAGzC3f,gBAAQ,EAAE;AAH+B,OAAtB,CAAvB;AAMA,WAAKqM,QAAL,CAAc;AACVvM,YAAI,EAAEd,QAAQ,CAACc,IADL;AAEVgnB,eAAO,EAAE;AAFC,OAAd;;AAIH;;AAEDjc,QAAM;;;AACF,wBACI;AAAK,eAAS,EAAC;AAAf,OAGK,EAAC,WAAKxG,KAAL,CAAWqf,SAAX,MAAoB,IAApB,IAAoBhb,aAApB,GAAoB,MAApB,GAAoBA,GAAE8M,MAAvB,KAAiC,CAAC,KAAKnR,KAAL,CAAWojB,MAA7C,gBACG,wEADH,gBAEI,uDACD;AAAK,eAAS,EAAC;AAAf,oBAEI;AAAK,eAAS,EAAC;AAAf,oBACI,oBAAC,uDAAD;AAAU,eAAS,EAAC;AAApB,oBACI,oBAAC,8DAAD;AAAiB,aAAO,EAAC,SAAzB;AAAmC,QAAE,EAAC,8BAAtC;AAAqE,eAAS,EAAC;AAA/E,oBAEI,oBAAC,2EAAD;AAAiB,UAAI,EAAE6F,yEAAvB;AAAoC,eAAS,EAAC;AAA9C,MAFJ,eAGI;AAAM,eAAS,EAAC;AAAhB,OACK,iBAAKjpB,KAAL,CAAWojB,MAAX,CAAkBC,aAAlB,GAAkC,YAAlC,OAA+C,IAA/C,IAA+C9e,aAA/C,GAA+CA,EAA/C,GAAmD,KAAKvE,KAAL,CAAWojB,MAAX,CAAkBC,aAAlB,GAAkC,UAAlC,CAAnD,MAAgG,IAAhG,IAAgGne,aAAhG,GAAgGA,EAAhG,GAAoG,SADzG,CAHJ,CADJ,eASI,oBAAC,4DAAD,QACK,KAAKlF,KAAL,CAAWqf,SAAX,CAAqBhkB,GAArB,CAAyBC,CAAC,IAAG;;;AAC1B,YAAMwtB,QAAQ,GAAGxtB,CAAC,CAAC+nB,aAAF,GAAkB,UAAlB,CAAjB;AACA,0BACI,oBAAC,4DAAD;AAAe,WAAG,yCAAkCyF,QAAlC,CAAlB;AAAgE,YAAI,EAAC,GAArE;AAAyE,cAAM,EAAExtB,CAAC,IAAI,KAAK0E,KAAL,CAAWojB,MAAjG;AACI,eAAO,EAAE,MAAM,KAAKpb,QAAL,CAAc;AAAEob,gBAAM,EAAE9nB,CAAV;AAAaG,cAAI,EAAEG,SAAnB;AAA8ButB,iBAAO,EAAEvtB;AAAvC,SAAd;AADnB,SAEK,OAAC,CAACynB,aAAF,GAAkB,YAAlB,OAA+B,IAA/B,IAA+Bhf,aAA/B,GAA+BA,EAA/B,GAAmCykB,QAFxC,CADJ;AAMH,KARA,CADL,CATJ,CADJ,CAFJ,CADC,EA4BA,KAAK9oB,KAAL,CAAWvE,IAAX,gBAAmB;AAAK,eAAS,EAAC;AAAf,oBAChB,8CADgB,eAEhB;AAAO,eAAS,EAAC;AAAjB,oBACI;AAAO,eAAS,EAAC;AAAjB,oBACI,6CACI;AAAI,WAAK,EAAC;AAAV,iBADJ,eAEI;AAAI,WAAK,EAAC;AAAV,eAFJ,eAGI;AAAI,WAAK,EAAC;AAAV,cAHJ,CADJ,CADJ,eAQI,mCACK,KAAKuE,KAAL,CAAWvE,IAAX,CAAgB2tB,WAAhB,CAA4B/tB,GAA5B,CAAgCsO,CAAC,iBAC9B;AAAI,SAAG,EAAE7C,6CAAM,CAAC6C,CAAC,CAAChN,KAAH,CAAN,CAAgB0sB,IAAhB;AAAT,oBACI;AAAI,WAAK,EAAC;AAAV,OAAiB1f,CAAC,CAAC2f,MAAnB,CADJ,eAEI,gCAAKxiB,6CAAM,CAAC6C,CAAC,CAAChN,KAAH,CAAN,CAAgBW,MAAhB,CAAuB,MAAvB,CAAL,CAFJ,eAGI,gCAAKqM,CAAC,CAAC9M,GAAF,GAAQiK,6CAAM,CAAC6C,CAAC,CAAC9M,GAAH,CAAN,CAAcS,MAAd,CAAqB,MAArB,CAAR,GAAuC,QAA5C,CAHJ,CADH,CADL,CARJ,CAFgB,eAqBhB,qDArBgB,eAsBhB;AAAO,eAAS,EAAC;AAAjB,oBACI;AAAO,eAAS,EAAC;AAAjB,oBACI,6CACI;AAAI,WAAK,EAAC;AAAV,eADJ,eAEI;AAAI,WAAK,EAAC;AAAV,sBAFJ,CADJ,CADJ,eAOI,mCACK,KAAK0C,KAAL,CAAWvE,IAAX,CAAgBe,WAAhB,CAA4BnB,GAA5B,CAAgCsO,CAAC,iBAC9B;AAAI,SAAG,EAAE7C,6CAAM,CAAC6C,CAAC,CAAC4f,IAAH,CAAN,CAAeF,IAAf;AAAT,oBACI;AAAI,WAAK,EAAC;AAAV,OAAiBviB,6CAAM,CAAC6C,CAAC,CAAC4f,IAAH,CAAN,CAAejsB,MAAf,CAAsB,MAAtB,CAAjB,CADJ,eAEI,gCAAKqM,CAAC,CAAC6f,WAAP,CAFJ,CADH,CADL,CAPJ,CAtBgB,CAAnB,GAsCS,CAAC,KAAKxpB,KAAL,CAAWyiB,OAAZ,gBACN;AAAK,eAAS,EAAC;AAAf,oBACI,kDADJ,eAEI,6FAFJ,CADM,GAKN7mB,SAvEH,CALT,EA+EK,KAAKoE,KAAL,CAAWyiB,OAAX,gBAAqB,oBAAC,0DAAD,OAArB,GAAuC7mB,SA/E5C,CADJ;AAmFH;;AA7K0D;;AACpDkI,2BAAe;AAClBhG,OAAK,EAAE,MAAc4K,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,2BAAzB,CADH;AAGlBmgB,aAAW,EAAE,MAAcrgB,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,2BAAzB,CAHT;AAIlBogB,MAAI,EAAEE,iFAAmBA;AAJP,CAAf;AA+KX,+DAAeplB,WAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnMA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA,MAAM6lB,aAAa,GAAuB,CACtC,CAAC,cAAD,EAAiB,OAAjB,CADsC,EAEtC,CAAC,GAAD,EAAM,SAAN,CAFsC,EAGtC,CAAC,OAAD,EAAU,QAAV,CAHsC,EAItC,CAAC,UAAD,EAAa,oBAAb,CAJsC,CAA1C;;AAoBA,MAAM5lB,mBAAN,SAAkCsd,qDAAlC,CAA4F;AASxFna,cAAYC,KAAZ,EAAqD;AACjD,UAAMA,KAAN;AAEA,SAAKnH,KAAL,GAAa;AACTqf,eAAS,EAAE,EADF;AAEToD,aAAO,EAAE,KAFA;AAGTmH,gBAAU,EAAE;AAHH,KAAb;AAMA,SAAKhH,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBjb,IAAxB,CAA6B,IAA7B,CAA1B;AACA,SAAKkiB,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBliB,IAAzB,CAA8B,IAA9B,CAA3B;AACH;;AAEDwH,mBAAiB;;;AACb,gBAAMA,iBAAN,MAAuB,IAAvB,IAAuB9K,aAAvB,GAAuB,MAAvB,GAAuBA,aAAvB;AAEAqE,OAAG,CAACka,kBAAJ,GAAyB,KAAKA,kBAA9B;;AAEA,QAAIla,GAAG,CAAC2W,SAAJ,CAAclO,MAAlB,EAA0B;AACtB,WAAKnJ,QAAL,CAAc;AACVqX,iBAAS,EAAEtS,8CAAM,CAAC,CAAC,GAAGrE,GAAG,CAAC2W,SAAR,EAAmBhgB,MAAnB,CAA0B+d,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAA/B,CAAD,EAAgEjG,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAArE;AADP,OAAd;AAGH;AACJ;;AAEDnX,oBAAkB,CAACC,SAAD,EAAgDC,SAAhD,EAA6F;;;AAC3G,QAAI,CAAChB,+CAAO,CAACgB,SAAS,CAACiT,SAAX,EAAsB,KAAKrf,KAAL,CAAWqf,SAAjC,CAAZ,EAAyD;AACrD,UAAI,KAAKrf,KAAL,CAAWqf,SAAX,CAAqBlO,MAArB,GAA8B,CAA9B,IACI,EAAE,KAAKnR,KAAL,CAAWojB,MAAX,IAAqB,KAAKpjB,KAAL,CAAWqf,SAAX,CAAqBnQ,QAArB,CAA8B,KAAKlP,KAAL,CAAWojB,MAAzC,CAAvB,CADR,EACkF;AAE9E,YAAI,CAAC,KAAKpjB,KAAL,CAAWojB,MAAhB,EAAwB;AACpB,qBAAKK,MAAL,MAAW,IAAX,IAAWpf,aAAX,GAAW,MAAX,GAAWA,cAAG,CAAC,GAAD,EAAM,GAAN,CAAH,CAAX;AACH;;AAED,aAAK2D,QAAL,CAAc;AACVob,gBAAM,EAAE,KAAKpjB,KAAL,CAAWqf,SAAX,CAAqB,CAArB,CADE;AAEV5jB,cAAI,EAAEG,SAFI;AAGVutB,iBAAO,EAAEvtB;AAHC,SAAd;AAKH;AACJ;;AACD,QAAIwQ,SAAS,CAACgX,MAAV,IAAoB,KAAKpjB,KAAL,CAAWojB,MAAnC,EAA2C;AACvC,WAAKI,UAAL;AACH;AACJ;;AAEDxS,sBAAoB;;;AAChB,gBAAMA,oBAAN,MAA0B,IAA1B,IAA0B3M,aAA1B,GAA0B,MAA1B,GAA0BA,aAA1B;AAEAqE,OAAG,CAACob,UAAJ,CAAe,KAAKlB,kBAApB;AACH;;AAEDA,oBAAkB,CAACmB,QAAD,EAAqB;AACnC,SAAK/b,QAAL,CAAc;AACVqX,eAAS,EAAEtS,8CAAM,CAAC,CAAC,IAAGgX,QAAQ,SAAR,YAAQ,WAAR,cAAY,EAAf,CAAD,EAAoB1kB,MAApB,CAA2B+d,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAAhC,CAAD,EAAiEjG,CAAC,IAAIA,CAAC,CAACiG,aAAF,GAAkB,UAAlB,CAAtE;AADP,KAAd;AAGH;;AAEDwG,qBAAmB,CAACC,KAAD,EAAc;AAC7B,SAAK9hB,QAAL,CAAc;AAAE4hB,gBAAU,EAAEE;AAAd,KAAd;AACH;;AAED9F,UAAQ,CAACC,OAAD,EAAiB;AACrB,SAAKjc,QAAL,CAAc;AACVob,YAAM,EAAEa;AADE,KAAd;AAGH;;AAEKzmB,QAAM,GAAuB;AAAA,sCAAnBumB,QAAmB;AAAnBA,cAAmB;AAAA;;;;;AAC/B,YAAM5oB,MAAM,GAAG,cAAQ,CAAC,CAAD,CAAR,MAAW,IAAX,IAAWkJ,aAAX,GAAW,MAAX,GAAWA,GAAEgf,aAAF,GAAkB,QAAlB,CAA1B;AACA,UAAI,CAACloB,MAAL,EAAa;AAEb,WAAK6M,QAAL,CAAc;AAAEya,eAAO,EAAE;AAAX,OAAd;AAEA,YAAM0B,aAAa,GAAGJ,QAAQ,CACzB/U,OADiB,CACTiV,OAAO,IAAIA,OAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAEZ,aAAT,GAAyB,UAAzB,CADF,EAEjBhkB,MAFiB,CAEV/D,CAAC,IAAI,OAAOA,CAAP,IAAY,QAAZ,IAAwB,OAAOA,CAAP,IAAY,QAF/B,CAAtB;AAIA,YAAO,CAAC,KAAK6L,KAAL,CAAW8b,IAAZ,GAAmB5oB,oEAAA,CAA4B;AAClDc,cAAM,EAAEA,MAD0C;AAElDC,iBAAS,EAAE+oB,aAFuC;AAGlD9mB,gBAAQ,YAAKlC,MAAL,cAAegpB,aAAa,CAAC5oB,IAAd,CAAmB,GAAnB,CAAf,CAH0C;AAIlDuC,aAAK,EAAE,KAAKkC,KAAL,CAAW4pB;AAJgC,OAA5B,CAAnB,GAKHppB,0EAAA,CAAkC;AAClCrF,cAAM,EAAEA,MAD0B;AAElCwF,kBAAU,EAAEwjB,aAFsB;AAGlC9mB,gBAAQ,YAAKlC,MAAL,cAAegpB,aAAa,CAAC5oB,IAAd,CAAmB,GAAnB,CAAf,CAH0B;AAIlCuC,aAAK,EAAE,KAAKkC,KAAL,CAAW4pB;AAJgB,OAAlC,CALJ;AAYA,WAAK5hB,QAAL,CAAc;AAAEya,eAAO,EAAE;AAAX,OAAd;;AACH;;AAEKe,YAAU;;;;AACZ,YAAMroB,MAAM,GAAG,WAAK6E,KAAL,CAAWojB,MAAX,MAAiB,IAAjB,IAAiB/e,aAAjB,GAAiB,MAAjB,GAAiBA,GAAEgf,aAAF,GAAkB,QAAlB,CAAhC;AACA,YAAM/H,YAAY,GAAG,WAAKtb,KAAL,CAAWojB,MAAX,MAAiB,IAAjB,IAAiB7e,aAAjB,GAAiB,MAAjB,GAAiBA,GAAE8e,aAAF,GAAkB,UAAlB,CAAtC;AACA,UAAI,CAACloB,MAAD,IAAW,CAACmgB,YAAhB,EAA8B;AAE9B,WAAKtT,QAAL,CAAc;AAAEya,eAAO,EAAE;AAAX,OAAd;AAEA,YAAM9nB,QAAQ,GAAG,MAAO,CAAC,KAAKwM,KAAL,CAAW8b,IAAZ,GAAmB5oB,iEAAA,CAAyB;AAChEc,cAAM,EAAEA,MADwD;AAEhEO,gBAAQ,EAAE4f,YAFsD;AAGhE3f,gBAAQ,EAAE;AAHsD,OAAzB,CAAnB,GAInB6E,uEAAA,CAA+B;AAChCrF,cAAM,EAAEA,MADwB;AAEhCwF,kBAAU,EAAE2a;AAFoB,OAA/B,CAJL;AASA,WAAKtT,QAAL,CAAc;AACVvM,YAAI,EAAEd,QAAQ,CAACc,IADL;AAEVgnB,eAAO,EAAE;AAFC,OAAd;;AAIH;;AAEDsH,aAAW;;;AACP,QAAI,CAAC,KAAK/pB,KAAL,CAAWvE,IAAhB,EAAsB;AAEtB,UAAMA,IAAI,GAAG,KAAKuE,KAAL,CAAWvE,IAAxB;AAEA,UAAMuuB,WAAW,GAAGvuB,IAAI,CAACwuB,YAAL,GAAoBnjB,6CAAM,CAACrL,IAAI,CAACwuB,YAAN,EAAoB,qBAApB,CAA1B,GAAuEruB,SAA3F;AACA,UAAMsuB,gBAAgB,GAAGzuB,IAAI,CAAC0uB,gBAAL,GAAwBrjB,6CAAM,CAACrL,IAAI,CAAC0uB,gBAAN,EAAwB,qBAAxB,CAA9B,GAA+EvuB,SAAxG;AAEA,wBAAO;AAAK,eAAS,EAAC;AAAf,oBACH;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAO,eAAS,EAAC;AAAjB,oBACI,gDACI,6CACI;AAAI,eAAS,EAAC,aAAd;AAA4B,aAAO,EAAE;AAArC,0BADJ,CADJ,CADJ,eAMI,gDACI,6CACI,wCADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAkB,UAAI,CAACwuB,MAAL,MAAW,IAAX,IAAW/lB,aAAX,GAAWA,EAAX,GAAe,GAAjC,CAFJ,CADJ,eAKI,6CACI,2CADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAoB,UAAI,CAACgmB,YAAL,MAAiB,IAAjB,IAAiB9lB,aAAjB,GAAiBA,EAAjB,GAAqB,GAAzC,CAFJ,CALJ,eASI,6CACI,+CADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAgB,UAAI,CAAC+lB,WAAL,MAAgB,IAAhB,IAAgBplB,aAAhB,GAAgBA,EAAhB,GAAoB,GAApC,CAFJ,CATJ,eAaI,6CACI,+CADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAgB,UAAI,CAACqlB,WAAL,MAAgB,IAAhB,IAAgB9kB,aAAhB,GAAgBA,EAAhB,GAAoB,GAApC,CAFJ,CAbJ,eAiBI,6CACI,mDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAc,UAAI,CAAC6K,GAAL,MAAQ,IAAR,IAAQ5K,aAAR,GAAQA,EAAR,GAAY,GAA1B,CAFJ,CAjBJ,CANJ,CADJ,eA8BI;AAAO,eAAS,EAAC;AAAjB,oBACI,gDACI,6CACI;AAAI,eAAS,EAAC,aAAd;AAA4B,aAAO,EAAE;AAArC,4BADJ,CADJ,CADJ,eAMI,gDACI,6CACI,oDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAsB,iBAAW,SAAX,eAAW,WAAX,GAAW,MAAX,cAAW,CAAEpI,MAAb,CAAoB,YAApB,OAAiC,IAAjC,IAAiCqI,aAAjC,GAAiCA,EAAjC,GAAqC,GAA3D,CAFJ,CADJ,eAKI,6CACI,wDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAmB,UAAI,CAAC6kB,YAAL,MAAiB,IAAjB,IAAiB5kB,aAAjB,GAAiBA,EAAjB,GAAqB,GAAxC,CAFJ,CALJ,CANJ,CA9BJ,eA+CI;AAAO,eAAS,EAAC;AAAjB,oBACI,gDACI,6CACI;AAAI,eAAS,EAAC,aAAd;AAA4B,aAAO,EAAE;AAArC,6BADJ,CADJ,CADJ,eAMI,gDACI,6CACI,8CADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAiB,UAAI,CAAC6kB,QAAL,MAAa,IAAb,IAAa5kB,aAAb,GAAaA,EAAb,GAAiB,GAAlC,CAFJ,CADJ,eAKI,6CACI,0DADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAqB,sBAAgB,SAAhB,oBAAgB,WAAhB,GAAgB,MAAhB,mBAAgB,CAAEvI,MAAlB,CAAyB,YAAzB,OAAsC,IAAtC,IAAsCwI,aAAtC,GAAsCA,EAAtC,GAA0C,GAA/D,CAFJ,CALJ,eASI,6CACI,2CADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAqB,sBAAgB,SAAhB,oBAAgB,WAAhB,GAAgB,MAAhB,mBAAgB,CAAExI,MAAlB,CAAyB,SAAzB,OAAmC,IAAnC,IAAmCyI,aAAnC,GAAmCA,EAAnC,GAAuC,GAA5D,CAFJ,CATJ,eAaI,6CACI,+DADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAc,UAAI,CAAC2kB,iBAAL,MAAsB,IAAtB,IAAsB1kB,aAAtB,GAAsBA,EAAtB,GAA0B,GAAxC,CAFJ,CAbJ,eAiBI,6CACI,wDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAiB,UAAI,CAAC2kB,UAAL,MAAe,IAAf,IAAe1kB,aAAf,GAAeA,EAAf,GAAmB,GAApC,CAFJ,CAjBJ,eAqBI,6CACI,mEADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAmB,UAAI,CAAC2kB,YAAL,MAAiB,IAAjB,IAAiB1kB,aAAjB,GAAiBA,EAAjB,GAAqB,GAAxC,CAFJ,CArBJ,eAyBI,6CACI,sCADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAc,UAAI,CAAC2kB,GAAL,MAAQ,IAAR,IAAQ1kB,aAAR,GAAQA,EAAR,GAAY,GAA1B,CAFJ,CAzBJ,eA6BI,6CACI;AAAI,eAAS,EAAC,SAAd;AAAwB,aAAO,EAAE;AAAjC,6KACgF,+BADhF,4BADJ,CA7BJ,CANJ,CA/CJ,CADJ,eA4FI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAO,eAAS,EAAC;AAAjB,oBACI,gDACI,6CACI;AAAI,eAAS,EAAC,aAAd;AAA4B,aAAO,EAAE;AAArC,qCADJ,CADJ,CADJ,eAMI,gDACI,6CACI,uDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAkB,UAAI,CAAC2kB,gBAAL,MAAqB,IAArB,IAAqB1kB,aAArB,GAAqBA,EAArB,GAAyB,GAA3C,CAFJ,CADJ,eAKI,6CACI,uDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAkB,UAAI,CAAC2kB,mBAAL,MAAwB,IAAxB,IAAwB1kB,aAAxB,GAAwBA,EAAxB,GAA4B,GAA9C,CAFJ,CALJ,eASI,6CACI,iDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAgB,UAAI,CAAC2kB,SAAL,MAAc,IAAd,IAAc1kB,aAAd,GAAcA,EAAd,GAAkB,GAAlC,CAFJ,CATJ,eAaI,6CACI,mDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAuB,UAAI,CAAC2kB,YAAL,MAAiB,IAAjB,IAAiB1kB,aAAjB,GAAiBA,EAAjB,GAAqB,GAA5C,CAFJ,CAbJ,eAiBI,6CACI,qDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAmB,UAAI,CAACijB,WAAL,MAAgB,IAAhB,IAAgBtU,aAAhB,GAAgBA,EAAhB,GAAoB,GAAvC,CAFJ,CAjBJ,eAqBI,6CACI,qDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAiB,UAAI,CAACgW,MAAL,MAAW,IAAX,IAAW/V,aAAX,GAAWA,EAAX,GAAe,GAAhC,CAFJ,CArBJ,eAyBI,6CACI,sDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAyB,UAAI,CAACgW,cAAL,MAAmB,IAAnB,IAAmB/V,aAAnB,GAAmBA,EAAnB,GAAuB,GAAhD,CAFJ,CAzBJ,eA6BI,6CACI,uDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAA0B,UAAI,CAACgW,eAAL,MAAoB,IAApB,IAAoB1V,aAApB,GAAoBA,EAApB,GAAwB,GAAlD,CAFJ,CA7BJ,eAiCI,6CACI,uDADJ,eAEI;AAAI,QAAE,EAAC;AAAP,OAAwB,UAAI,CAAC2V,cAAL,MAAmB,IAAnB,IAAmBxV,aAAnB,GAAmBA,EAAnB,GAAuB,GAA/C,CAFJ,CAjCJ,CANJ,CADJ,eA8CI;AAAO,eAAS,EAAC;AAAjB,oBACI,gDACI,6CACI;AAAI,eAAS,EAAC;AAAd,qBADJ,CADJ,CADJ,eAMI,gDACI,6CACI;AAAI,QAAE,EAAC;AAAP,OAAkB,UAAI,CAACyV,QAAL,MAAa,IAAb,IAAaC,aAAb,GAAaA,EAAb,GAAiB,GAAnC,CADJ,CADJ,CANJ,CA9CJ,CA5FJ,CADG,eAyJH;AAAK,eAAS,EAAC;AAAf,OACK9vB,IAAI,CAAC+vB,MAAL,CAAYnwB,GAAZ,CAAgB,CAACC,CAAD,EAAI6W,CAAJ,kBACb;AAAK,SAAG,EAAEA,CAAV;AAAa,eAAS,8BAAuBA,CAAC,GAAC,CAAzB;AAAtB,oBACI;AAAO,eAAS,EAAC;AAAjB,oBACI,gDACI,6CACI;AAAI,eAAS,EAAC;AAAd,gBAAkCA,CAAC,GAAC,CAApC,CADJ,CADJ,CADJ,eAMI,gDACI,6CACI,gCACK,KAAKsZ,WAAL,CAAiBnwB,CAAjB,CADL,CADJ,CADJ,CANJ,CADJ,CADH,CADL,CAzJG,eA6KH;AAAK,eAAS,EAAC;AAAf,oBACI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAO,eAAS,EAAC;AAAjB,oBACI,gDACI,6CACI;AAAI,eAAS,EAAC;AAAd,0BADJ,CADJ,CADJ,eAMI,gDACI,6CACI;AAAI,QAAE,EAAC;AAAP,OACKG,IAAI,CAACiwB,UAAL,GAAkB,KAAKD,WAAL,CAAiBhwB,IAAI,CAACiwB,UAAtB,CAAlB,GAAsD9vB,SAD3D,CADJ,CADJ,CANJ,CADJ,CADJ,CA7KG,CAAP;AAgMH;;AAED6vB,aAAW,CAACzwB,GAAD,EAAY;AACnB,WAAOA,GAAG,CAAC2wB,WAAJ,GAAkBzc,QAAlB,CAA2B,mBAA3B,iBACH;AAAQ,SAAG,EAAElU,GAAb;AAAkB,iBAAW,EAAE,CAA/B;AAAkC,WAAK,EAAE;AAAE4wB,iBAAS,EAAE;AAAb,OAAzC;AACI,qBAAe,EAAE;AADrB,MADG,gBAGH;AAAK,eAAS,EAAC,WAAf;AAA2B,SAAG,EAAE5wB;AAAhC,MAHJ;AAIH;;AAEDwL,QAAM;;;AACF,UAAM1I,KAAK,GAAG,KAAKkC,KAAL,CAAWvE,IAAX,GACR6M,MAAM,CAACC,IAAP,CAAY,KAAKvI,KAAL,CAAWvE,IAAvB,EAA6ByT,QAA7B,CAAsC,KAAKlP,KAAL,CAAW4pB,UAAjD,IACI,WAAK5pB,KAAL,CAAWvE,IAAX,CAAgB,KAAKuE,KAAL,CAAW4pB,UAA3B,OAAsC,IAAtC,IAAsCvlB,aAAtC,GAAsCA,EAAtC,GAA0C,GAD9C,aAEO,KAAKrE,KAAL,CAAWvE,IAAX,CAAgBqtB,QAFvB,cAEmC,KAAK9oB,KAAL,CAAWvE,IAAX,CAAgB4D,MAFnD,CADQ,GAIRzD,SAJN;AAMA,wBACI;AAAK,eAAS,EAAC;AAAf,OAGK,EAAC,WAAKoE,KAAL,CAAWqf,SAAX,MAAoB,IAApB,IAAoB9a,aAApB,GAAoB,MAApB,GAAoBA,GAAE4M,MAAvB,KAAiC,CAAC,KAAKnR,KAAL,CAAWojB,MAA7C,gBACG,wEADH,gBAEI,uDACD;AAAK,eAAS,EAAC;AAAf,oBAEI;AAAK,eAAS,EAAC;AAAf,oBACI;AAAQ,QAAE,EAAC,iBAAX;AAA6B,eAAS,EAAC,qCAAvC;AACI,aAAO,EAAE,MAAM,KAAKpjB,KAAL,CAAWojB,MAAX,GAAoB,KAAK5lB,MAAL,CAAY,KAAKwC,KAAL,CAAWojB,MAAvB,CAApB,GAAqDxnB;AADxE,oBAEI,oBAAC,2EAAD;AAAiB,UAAI,EAAEomB,uEAAvB;AAAkC,eAAS,EAAC,MAA5C;AAAmD,WAAK,EAAE;AAAE9N,aAAK,EAAE;AAAT;AAA1D,MAFJ,iBADJ,eAMI;AAAQ,QAAE,EAAC,iBAAX;AAA6B,eAAS,EAAC,+BAAvC;AACI,aAAO,EAAE,MAAM,KAAK1W,MAAL,CAAY,GAAG,KAAKwC,KAAL,CAAWqf,SAA1B;AADnB,oBAEI,oBAAC,2EAAD;AAAiB,UAAI,EAAE2C,uEAAvB;AAAkC,eAAS,EAAC,MAA5C;AAAmD,WAAK,EAAE;AAAE9N,aAAK,EAAE;AAAT;AAA1D,MAFJ,eAGI;AAAM,eAAS,EAAC;AAAhB,OAAuC,KAAKlU,KAAL,CAAWqf,SAAX,CAAqBlO,MAA5D,CAHJ,CANJ,eAYI,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,aAAO,EAAC,SAAzB;AAAmC,QAAE,EAAC,8BAAtC;AAAqE,eAAS,EAAC;AAA/E,oBAEI,oBAAC,2EAAD;AAAiB,UAAI,EAAE8X,yEAAvB;AAAoC,eAAS,EAAC;AAA9C,MAFJ,eAGI;AAAM,eAAS,EAAC;AAAhB,OACK,uBAAKjpB,KAAL,CAAWojB,MAAX,CAAkBC,aAAlB,GAAkC,YAAlC,OAA+C,IAA/C,IAA+Cne,aAA/C,GAA+CA,EAA/C,GAAmD,KAAKlF,KAAL,CAAWojB,MAAX,CAAkBC,aAAlB,GAAkC,aAAlC,CAAnD,MAAmG,IAAnG,IAAmG5d,aAAnG,GAAmGA,EAAnG,GAAuG,KAAKzF,KAAL,CAAWojB,MAAX,CAAkBC,aAAlB,GAAkC,UAAlC,CAAvG,MAAoJ,IAApJ,IAAoJ3d,aAApJ,GAAoJA,EAApJ,GAAwJ,SAD7J,CAHJ,CADJ,eASI,oBAAC,6DAAD,QACK,KAAK1F,KAAL,CAAWqf,SAAX,CAAqBhkB,GAArB,CAAyBC,CAAC,IAAG;;;AAC1B,YAAMwtB,QAAQ,GAAGxtB,CAAC,CAAC+nB,aAAF,GAAkB,UAAlB,CAAjB;AACA,0BACI,oBAAC,6DAAD;AAAe,WAAG,yCAAkCyF,QAAlC,CAAlB;AAAgE,YAAI,EAAC,GAArE;AAAyE,cAAM,EAAExtB,CAAC,IAAI,KAAK0E,KAAL,CAAWojB,MAAjG;AACI,eAAO,EAAE,MAAM,KAAKpb,QAAL,CAAc;AAAEob,gBAAM,EAAE9nB,CAAV;AAAaG,cAAI,EAAEG,SAAnB;AAA8ButB,iBAAO,EAAEvtB;AAAvC,SAAd;AADnB,SAEK,aAAC,CAACynB,aAAF,GAAkB,aAAlB,OAAgC,IAAhC,IAAgChf,aAAhC,GAAgCA,EAAhC,GAAoC/I,CAAC,CAAC+nB,aAAF,GAAkB,YAAlB,CAApC,MAAmE,IAAnE,IAAmE9e,aAAnE,GAAmEA,EAAnE,GAAuEukB,QAF5E,CADJ;AAMH,KARA,CADL,CATJ,CAZJ,CAFJ,CADC,eAsCD;AAAK,eAAS,EAAC;AAAf,oBACI;AAAI,QAAE,EAAC,OAAP;AAAe,eAAS,EAAC;AAAzB,OAA0ChrB,KAA1C,CADJ,eAGI,oBAAC,wDAAD,qBACI,oBAAC,+DAAD;AAAiB,aAAO,EAAC,OAAzB;AAAiC,QAAE,EAAC;AAApC,oBACI,oBAAC,2EAAD;AAAiB,UAAI,EAAE2rB,oEAAMA;AAA7B,MADJ,CADJ,eAKI,oBAAC,6DAAD,QACKE,aAAa,CAACtuB,GAAd,CAAkB;AAAA,UAAC,CAACoN,GAAD,EAAMuL,KAAN,CAAD;AAAA,0BACf,oBAAC,6DAAD;AAAe,WAAG,iCAA0BvL,GAA1B,CAAlB;AAAmD,YAAI,EAAC,GAAxD;AAA4D,cAAM,EAAEA,GAAG,IAAI,KAAKzI,KAAL,CAAW4pB,UAAtF;AACI,eAAO,EAAE,MAAM,KAAK5hB,QAAL,CAAc;AAAE4hB,oBAAU,EAAEnhB;AAAd,SAAd;AADnB,SAEKuL,KAFL,CADe;AAAA,KAAlB,CADL,CALJ,CAHJ,CAtCC,EAyDA,KAAKhU,KAAL,CAAWvE,IAAX,GAAkB,KAAKsuB,WAAL,EAAlB,GAAuC,CAAC,KAAK/pB,KAAL,CAAWyiB,OAAZ,gBACpC;AAAK,eAAS,EAAC;AAAf,oBACI,kDADJ,eAEI,6FAFJ,CADoC,GAKpC7mB,SA9DH,CALT,EAsEK,KAAKoE,KAAL,CAAWyiB,OAAX,gBAAqB,oBAAC,0DAAD,OAArB,GAAuC7mB,SAtE5C,CADJ;AA0EH;;AA9ZuF;;AACjFmI,mCAAe;AAClBjG,OAAK,EAAE,MAAc4K,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,2BAAzB,CADH;AAGlBmgB,aAAW,EAAE,MAAcrgB,GAAG,CAACC,UAAJ,CAAeC,SAAf,CAAyB,2BAAzB,CAHT;AAIlBogB,MAAI,EAAEU,oEAJY;AAKlBzG,MAAI,EAAE;AALY,CAAf;AAgaX,+DAAelf,mBAAf;;;;;;;;AChcA;AACa;AACb;AACA,gBAAgB,mBAAO,CAAC,sCAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA,gEAAgE,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,8CAA8C;AAC9H;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA,kGAAkG,8CAA8C;AAChJ;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,QAAQ;AAC3B,qBAAqB,0BAA0B;AAC/C,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,qBAAqB,0BAA0B;AAC/C,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,mBAAmB,8BAA8B;AACjD,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC,sBAAsB,kBAAkB;AACxC,sBAAsB,cAAc;AACpC,sBAAsB,cAAc;AACpC,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA,gEAAgE,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,oCAAoC;AAC1G;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,oCAAoC;AAC5H;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,QAAQ;AAC3B,qBAAqB,gBAAgB;AACrC,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,qBAAqB,gBAAgB;AACrC,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC,mBAAmB,8BAA8B;AACjD,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kCAAkC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA,gEAAgE,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,kDAAkD;AACtI;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA,sGAAsG,kDAAkD;AACxJ;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,QAAQ;AAC3B,qBAAqB,8BAA8B;AACnD,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,qBAAqB,8BAA8B;AACnD,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,8BAA8B;AACjD,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC,sBAAsB,+BAA+B;AACrD,sBAAsB,uCAAuC;AAC7D,sBAAsB,gCAAgC;AACtD,sBAAsB,+BAA+B;AACrD,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA,gEAAgE,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kCAAkC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,wCAAwC;AAClH;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,wCAAwC;AACpI;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,QAAQ;AAC3B,qBAAqB,oBAAoB;AACzC,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,qBAAqB,oBAAoB;AACzC,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,mBAAmB,8BAA8B;AACjD,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB;AAClB,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB;AAClB,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB;AAClB,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B,sBAAsB,QAAQ;AAC9B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA,gEAAgE,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,+CAA+C;AAChI;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA,mGAAmG,+CAA+C;AAClJ;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,QAAQ;AAC3B,qBAAqB,2BAA2B;AAChD,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,qBAAqB,2BAA2B;AAChD,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,mBAAmB,8BAA8B;AACjD,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC,sBAAsB,aAAa;AACnC,sBAAsB,aAAa;AACnC,sBAAsB,aAAa;AACnC,sBAAsB,aAAa;AACnC,sBAAsB,aAAa;AACnC,sBAAsB,aAAa;AACnC,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA,gEAAgE,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,qCAAqC;AAC5G;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,qCAAqC;AAC9H;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,mBAAmB,kBAAkB;AACrC,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,mBAAmB,QAAQ;AAC3B,qBAAqB,iBAAiB;AACtC,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD,qBAAqB,iBAAiB;AACtC,oBAAoB,OAAO;AAC3B,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,8BAA8B;AACjD,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA","sources":["webpack://grondwatermeetnet/./src/index.scss","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/index.scss?586a","webpack://grondwatermeetnet/./src/widgets/Maintenance/index.scss","webpack://grondwatermeetnet/./src/widgets/PiezometerFactsheet/index.scss?6dcc","webpack://grondwatermeetnet/./src/general/export.css","webpack://grondwatermeetnet/./src/general/api/index.ts","webpack://grondwatermeetnet/./src/general/svgConverter.ts","webpack://grondwatermeetnet/./src/index.public.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/AnnotationEditor.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/AnnotationLabel.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/AssessmentAxisTick.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/AssessmentEditor.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/DateFilter.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/Graph.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/LegendWrapper.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/TooltipWrapper.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/ValidationEditor.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/components/ValidationGraph.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/index.tsx","webpack://grondwatermeetnet/./src/widgets/GroundwaterGraphs/utils/constants.ts","webpack://grondwatermeetnet/./src/widgets/Maintenance/index.tsx","webpack://grondwatermeetnet/./src/widgets/PiezometerFactsheet/index.tsx","webpack://grondwatermeetnet/./src/protobuf/index.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","export default \"\\r\\n/* Required bootstrap */\\r\\n.mx-2 {\\r\\n margin-left: 0.5rem;\\r\\n margin-right: 0.5rem;\\r\\n}\\r\\n\\r\\n.pl-1 {\\r\\n\\tpadding-left: 0.25rem;\\r\\n}\\r\\n\\r\\n.h-100 {\\r\\n\\theight: 100%;\\r\\n}\\r\\n\\r\\n.text-primary {\\r\\n color: #4b55a5 !important;\\r\\n}\\r\\n\\r\\n.btn-group,\\r\\n.btn-group-vertical {\\r\\n position: relative;\\r\\n display: inline-flex;\\r\\n}\\r\\n\\r\\n.btn-group-vertical {\\r\\n flex-direction: column;\\r\\n align-items: flex-start;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.btn {\\r\\n color: #212529;\\r\\n display: inline-block;\\r\\n background-color: #fff;\\r\\n border-color: #fff;\\r\\n border: 1px solid transparent;\\r\\n text-align: center;\\r\\n padding: 0.25rem 0.5rem;\\r\\n}\\r\\n\\r\\n/* Custom styling */\\r\\nsvg * {\\r\\n font-family: \\\"Open Sans\\\", sans-serif;\\r\\n src: url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap');\\r\\n font-size: 0.85rem;\\r\\n font-weight: 400\\r\\n}\\r\\n\\r\\n.assessment-tick-info {\\r\\n display: inline-block;\\r\\n width: max-content;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.recharts-legend-wrapper {\\r\\n position: relative !important;\\r\\n}\\r\\n\\r\\n.recharts-legend-wrapper .charts-legend label {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.recharts-legend-wrapper .charts-legend-item {\\r\\n padding-left: 1rem;\\r\\n white-space: nowrap;\\r\\n font-weight: 300;\\r\\n text-align: left;\\r\\n}\";","import { ApiBase, ApiResponse } from '@tauw/viewer-base';\r\nimport Meetpunt from '../../models/Meetpunt';\r\nimport PiezometerData from '../../models/PiezometerData';\r\nimport config from './config.json';\r\nimport { gwm_api } from 'protobuf';\r\nimport { Moment } from 'moment';\r\nimport WeatherStation from '../../models/WeatherStation';\r\nimport Assessment from '../../models/Assessment';\r\nimport GraphAnnotation from '../../models/GraphAnnotation';\r\nimport MaintenanceCollection from '../../models/MaintenanceCollection';\r\nimport PublicSettings from '../../models/PublicSettings';\r\n\r\nexport class GwmApi extends ApiBase {\r\n // private static adapter?: Remote;\r\n\r\n static configure(basePath: string, accessToken?: string): void {\r\n super.configure(basePath, accessToken);\r\n }\r\n\r\n static async getInfo(params: { siteid: number; boringnrs: number[]; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, `${config.grondwater.actions.info}/${params.siteid}?${params.boringnrs.map(v => `boringnr=${v}`).join('&')}`) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async getData(params: { siteid: number; boringnr: number; filternr: number; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.data, [params.siteid, params.boringnr, params.filternr], undefined, 'blob') as ApiResponse;\r\n const samplesResponse: ApiResponse = {\r\n success: false,\r\n error: response.error\r\n };\r\n if (response.data) {\r\n const blob = response.data;\r\n const bytes = new Uint8Array(await blob.arrayBuffer());\r\n const samples = gwm_api.SampleCollection.decode(bytes);\r\n samplesResponse.data = samples;\r\n samplesResponse.success = true;\r\n }\r\n return samplesResponse;\r\n }\r\n\r\n static async getMaintenance(params: { siteid: number; boringnr: number; filternr: number; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.maintenance, [params.siteid, params.boringnr, params.filternr]) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async getWeatherStations(params: { start: Moment; end: Moment; site?: number }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.weatherStations, [params.start.toISOString(), params.end.toISOString(), params.site]) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async getWeatherData(params: { stationOrSite: number; boring?: number; start: Moment; end: Moment; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.weatherData, [params.start.toISOString(), params.end.toISOString(), params.stationOrSite, params.boring], undefined, 'blob') as ApiResponse;\r\n const samplesResponse: ApiResponse = {\r\n success: false,\r\n error: response.error\r\n };\r\n if (response.data) {\r\n const blob = response.data;\r\n const bytes = new Uint8Array(await blob.arrayBuffer());\r\n const samples = gwm_api.WeatherCollection.decode(bytes);\r\n samplesResponse.data = samples;\r\n samplesResponse.success = true;\r\n }\r\n return samplesResponse;\r\n }\r\n\r\n static async exportData(params: { siteid: number; boringnrs: number[]; filename: string; format: 'xlsx' | 'csv'; }): Promise> {\r\n const filename = `${params.filename}.${params.format}`;\r\n const response = await super.fetchFile(config.grondwater.url, `${config.grondwater.actions.export}/${params.siteid}?${params.boringnrs.map(v => `boringnr=${v}`).join('&')}&format=${params.format}`);\r\n return response.success ? super.pushFile(response, filename) : response;\r\n }\r\n\r\n static async getPiezometerData(params: { siteid: number; boringnr: number; filternr: number; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.factsheet, [params.siteid, params.boringnr, params.filternr]);\r\n return response;\r\n }\r\n\r\n static async exportPiezometerData(params: { siteid: number; boringnrs: number[]; title?: string; filename: string; }): Promise> {\r\n const filename = `${params.filename}.pdf`;\r\n const response = await super.fetchFile(config.grondwater.url, `${config.grondwater.actions.factsheetExport}/${params.siteid}?${params.boringnrs.map(v => `boringnr=${v}`).join('&')}${params.title ? `&title=${params.title}` : ''}`);\r\n return response.success ? super.pushFile(response, filename) : response;\r\n }\r\n\r\n static async hasFullAccess(): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.assessmentFullAccess) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async createAssessment(params: { projectnr: number, boringnr: number, filternr: number, assessment: Assessment }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.assessmentCreate, [params.projectnr, params.boringnr, params.filternr], params.assessment) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async updateAssessment(params: { assessment: Assessment; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.assessmentUpdate, [params.assessment.guid], params.assessment) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async deleteAssessment(params: { assessment: Assessment; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.assessmentDelete, [params.assessment.guid], params.assessment) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async createGraphAnnotation(params: { projectnr: number, boringnr: number, filternr: number, graphAnnotation: GraphAnnotation }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.graphAnnotationCreate, [params.projectnr, params.boringnr, params.filternr], params.graphAnnotation) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async updateGraphAnnotation(params: { graphAnnotation: GraphAnnotation; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.graphAnnotationUpdate, [params.graphAnnotation.id], params.graphAnnotation) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async deleteGraphAnnotation(params: { graphAnnotation: GraphAnnotation; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.graphAnnotationDelete, [params.graphAnnotation.id], params.graphAnnotation) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async getValidationInfo(params: { project: number; boring: number; filter: number; timestamps: number[]; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.validationInfo, [params.project, params.boring, params.filter], params.timestamps, 'blob') as ApiResponse;\r\n const samplesResponse: ApiResponse = {\r\n success: false,\r\n error: response.error\r\n };\r\n if (response.data) {\r\n const blob = response.data;\r\n const bytes = new Uint8Array(await blob.arrayBuffer());\r\n const samples = gwm_api.ValidationCollection.decode(bytes);\r\n samplesResponse.data = samples;\r\n samplesResponse.success = true;\r\n }\r\n return samplesResponse;\r\n }\r\n\r\n static async updateValidationInfo(params: { project: number; boring: number; filter: number; collection: gwm_api.ValidationCollection; }): Promise> {\r\n const sample = params.collection.values[0];\r\n if (!sample) return { success: false };\r\n\r\n return await super.put(config.grondwater.url, config.grondwater.actions.validationUpdate, [params.project, params.boring, params.filter], {\r\n score: sample.value,\r\n state: sample.state,\r\n reason: sample.reason,\r\n interpolation: sample.interpolation,\r\n limit: sample.limit,\r\n timestamps: params.collection.values.map(v => v.timestamp)\r\n }) as ApiResponse;\r\n }\r\n\r\n static async updateAutoControl(params: { project: number; boring: number; filter: number; }): Promise> {\r\n return await super.get(config.grondwater.url, config.grondwater.actions.validationAutoControl, [params.project, params.boring, params.filter]) as ApiResponse;\r\n }\r\n}\r\n\r\nexport class GwmPublicApi extends ApiBase {\r\n // private static adapter?: Remote;\r\n\r\n static configure(basePath: string, accessToken?: string): void {\r\n super.configure(basePath, accessToken);\r\n }\r\n\r\n static async getSettings(params: { siteid: number; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.publicSettings, [params.siteid]) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async getInfo(params: { siteid: number; boringnrs: string[]; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, `${config.grondwater.actions.info}/${params.siteid}?${params.boringnrs.map(v => `boringnr=${v}`).join('&')}`) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async getData(params: { siteid: number; piezometer: string; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.data, [params.siteid, params.piezometer], undefined, 'blob') as ApiResponse;\r\n const samplesResponse: ApiResponse = {\r\n success: false,\r\n error: response.error\r\n };\r\n if (response.data) {\r\n const blob = response.data;\r\n const bytes = new Uint8Array(await blob.arrayBuffer());\r\n const samples = gwm_api.SampleCollection.decode(bytes);\r\n samplesResponse.data = samples;\r\n samplesResponse.success = true;\r\n }\r\n return samplesResponse;\r\n }\r\n\r\n static async getWeatherStations(params: { start: Moment; end: Moment; site?: number }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.weatherStations, [params.start.toISOString(), params.end.toISOString(), params.site]) as ApiResponse;\r\n return response;\r\n }\r\n\r\n static async getWeatherData(params: { stationOrSite: number; piezometer?: string; start: Moment; end: Moment; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.weatherData, [params.start.toISOString(), params.end.toISOString(), params.stationOrSite, params.piezometer], undefined, 'blob') as ApiResponse;\r\n const samplesResponse: ApiResponse = {\r\n success: false,\r\n error: response.error\r\n };\r\n if (response.data) {\r\n const blob = response.data;\r\n const bytes = new Uint8Array(await blob.arrayBuffer());\r\n const samples = gwm_api.WeatherCollection.decode(bytes);\r\n samplesResponse.data = samples;\r\n samplesResponse.success = true;\r\n }\r\n return samplesResponse;\r\n }\r\n\r\n static async exportData(params: { siteid: number; piezometers: string[]; filename: string; format: 'xlsx' | 'csv'; }): Promise> {\r\n const filename = `${params.filename}.${params.format}`;\r\n const response = await super.fetchFile(config.grondwater.url, `${config.grondwater.actions.export}/${params.siteid}?${params.piezometers.map(v => `piezometer=${v}`).join('&')}&format=${params.format}`);\r\n return response.success ? super.pushFile(response, filename) : response;\r\n }\r\n\r\n static async getPiezometerData(params: { siteid: number; piezometer: string; }): Promise> {\r\n const response = await super.fetch(config.grondwater.url, config.grondwater.actions.factsheet, [params.siteid, params.piezometer]);\r\n return response;\r\n }\r\n\r\n static async exportPiezometerData(params: { siteid: number; piezometer: string[]; title?: string; filename: string; }): Promise> {\r\n const filename = `${params.filename}.pdf`;\r\n const response = await super.fetchFile(config.grondwater.url, `${config.grondwater.actions.factsheetExport}/${params.siteid}?${params.piezometer.map(v => `piezometer=${v}`).join('&')}${params.title ? `&title=${params.title}` : ''}`);\r\n return response.success ? super.pushFile(response, filename) : response;\r\n }\r\n}","\r\nimport jsPDF from 'jspdf';\r\nimport styles from '!!raw-loader!./export.css'; \r\n\r\nexport async function svgToPNG(svg: SVGElement, width: number, height: number): Promise {\r\n const canvas = createCanvas(width, height);\r\n if (!canvas) return;\r\n\r\n const style = document.createElement('style');\r\n style.innerHTML = styles.replaceAll('\\\\n', '');\r\n\r\n const defs = svg.getElementsByTagName('defs');\r\n defs[0].appendChild(style);\r\n\r\n const xml = new XMLSerializer().serializeToString(svg);\r\n const dataUrl = `data:image/svg+xml;utf8,${encodeURIComponent(xml)}`;\r\n\r\n const imageData = await new Promise((resolve) => {\r\n const img = new Image(width, height);\r\n img.onload = () => {\r\n canvas.context.drawImage(img, 0, 0);\r\n const imageData = canvas.element.toDataURL('image/png', 1.0);\r\n resolve(imageData);\r\n };\r\n img.onerror = () => resolve(undefined);\r\n img.src = dataUrl;\r\n });\r\n\r\n defs[0].removeChild(style);\r\n\r\n return imageData;\r\n}\r\n\r\nfunction createCanvas(width: number, height: number): { element: HTMLCanvasElement; context: CanvasRenderingContext2D; } | undefined {\r\n const canvas = document.createElement('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx) return;\r\n\r\n // Set background to white\r\n ctx.fillStyle = '#ffffff';\r\n ctx.fillRect(0, 0, width, height);\r\n\r\n return { element: canvas, context: ctx };\r\n}\r\n\r\nexport async function svgToPDF(svg: SVGElement, title: string, width: number, height: number): Promise {\r\n const imageData = await svgToPNG(svg, width, height);\r\n if (!imageData) return;\r\n\r\n const pdf = new jsPDF({\r\n unit: 'px',\r\n orientation: 'l',\r\n format: [width, height],\r\n hotfixes: ['px_scaling']\r\n });\r\n\r\n pdf.addImage(imageData, 'PNG', 0, 0, width, height);\r\n pdf.save(title);\r\n}\r\n","import '@tauw/viewer-base/build/index.css';\r\nimport './index.scss';\r\n\r\nimport ReactDOM from 'react-dom';\r\nimport { App, MapInfo, LayerOverview, Legend } from '@tauw/viewer-base';\r\nimport GroundwaterGraphs from './widgets/GroundwaterGraphs';\r\nimport { GwmPublicApi } from './general/api';\r\nimport config from './config/config.json';\r\nimport PublicSettings from './models/PublicSettings';\r\nimport Maintenance from './widgets/Maintenance';\r\nimport PiezometerFactsheet from './widgets/PiezometerFactsheet';\r\n\r\nGwmPublicApi.configure(config.api.gwm.url);\r\n\r\nasync function start() {\r\n const search = new URLSearchParams(location.search);\r\n const siteid = Number(search.get('siteid') ?? '');\r\n\r\n const settings: PublicSettings = (await GwmPublicApi.getSettings({ siteid })).data ?? {\r\n tools: {\r\n factsheet: true,\r\n maintenance: false,\r\n graph: {\r\n showRaw: false,\r\n showReleased: false,\r\n showComments: false,\r\n showGrouping: true,\r\n showExport: true\r\n }\r\n }\r\n };\r\n\r\n const GwmApp = () => {\r\n const topWidgets =[\r\n ,\r\n \r\n ];\r\n if (settings.tools?.factsheet)\r\n topWidgets.push();\r\n if (settings.tools?.maintenance)\r\n topWidgets.push();\r\n \r\n return }\r\n api={config.api.tegsis}\r\n logo={settings.defaultLogo ? undefined : false}\r\n subLogo={settings.clientLogo}\r\n loginManager={{ \r\n mode: 'hide-ui',\r\n site: true, \r\n project: false, \r\n client: false\r\n }}\r\n searchMode=\"geocoder\"\r\n topWidgets={topWidgets}\r\n widgets={[\r\n ,\r\n ]} />;\r\n };\r\n \r\n // Initialize main React entry point\r\n ReactDOM.render(, document.getElementById('root'));\r\n}\r\n\r\nstart();\r\n","import { faTrashCan } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { FormControl, FormControlValue, FormValue } from '@tauw/viewer-base';\r\nimport { mapValues } from 'lodash';\r\nimport GraphAnnotation from 'models/GraphAnnotation';\r\nimport moment from 'moment';\r\nimport { Component } from 'react';\r\nimport { DATE_FORMAT } from '../utils/constants';\r\n\r\ninterface AnnotationEditorProps {\r\n graphAnnotation?: GraphAnnotation;\r\n dateRange?: [Date, Date];\r\n\r\n onCancelClicked?: () => void;\r\n onCreateClicked?: (graphAnnotation: GraphAnnotation) => void;\r\n onUpdateClicked?: (graphAnnotation: GraphAnnotation) => void;\r\n onDeleteClicked?: (graphAnnotation: GraphAnnotation) => void;\r\n}\r\n\r\ninterface AnnotationEditorState {\r\n form: Form;\r\n}\r\n\r\ninterface Form {\r\n startdate: FormValue;\r\n enddate: FormValue;\r\n annotation: FormValue;\r\n}\r\n\r\nexport default class AnnotationEditor extends Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n // Initializes form state based on new or existing assessment\r\n let form: Form;\r\n if (props.graphAnnotation) {\r\n form = mapValues(props.graphAnnotation, element => element ? ({ value: element, valid: true }) : null) as Form;\r\n\r\n if (form.startdate?.value)\r\n form.startdate.value = moment(form.startdate.value).format(DATE_FORMAT);\r\n\r\n if (form.enddate?.value)\r\n form.enddate.value = moment(form.enddate.value).format(DATE_FORMAT);\r\n }\r\n else {\r\n form = {\r\n startdate: props.dateRange ? { value: moment(props.dateRange[0]).format(DATE_FORMAT), valid: true } : null,\r\n enddate: props.dateRange ? { value: moment(props.dateRange[1]).format(DATE_FORMAT), valid: true } : null,\r\n annotation: null,\r\n };\r\n }\r\n\r\n this.state = {\r\n form: form,\r\n };\r\n\r\n this.onFormChanged = this.onFormChanged.bind(this);\r\n this.onCancelClicked = this.onCancelClicked.bind(this);\r\n this.onSaveClicked = this.onSaveClicked.bind(this);\r\n this.onDeleteClicked = this.onDeleteClicked.bind(this);\r\n }\r\n\r\n onFormChanged(prop: FormControlValue.Default): void {\r\n this.setState(state => ({\r\n form: {\r\n ...state.form,\r\n [prop.name]: {\r\n value: prop.value,\r\n valid: prop.valid\r\n }\r\n }\r\n }));\r\n }\r\n\r\n onCancelClicked(): void {\r\n this.props.onCancelClicked?.();\r\n }\r\n\r\n onDeleteClicked(): void {\r\n this.props.onDeleteClicked?.(this.props.graphAnnotation as GraphAnnotation);\r\n }\r\n\r\n onSaveClicked(): void {\r\n // Check validation states\r\n for (const prop in this.state.form) {\r\n const value = this.state.form[prop];\r\n if (value === undefined) continue;\r\n\r\n if (value === null || !value.valid) { // prop is null or invalid\r\n return;\r\n }\r\n }\r\n\r\n const graphAnnotation = mapValues(this.state.form, prop => prop ? prop.value : undefined) as unknown as GraphAnnotation;\r\n graphAnnotation.startdate = moment.utc(graphAnnotation.startdate, DATE_FORMAT).toDate();\r\n graphAnnotation.enddate = moment.utc(graphAnnotation.enddate, DATE_FORMAT).toDate();\r\n\r\n\r\n if (this.props.graphAnnotation)\r\n this.props.onUpdateClicked?.(graphAnnotation);\r\n else\r\n this.props.onCreateClicked?.(graphAnnotation);\r\n }\r\n\r\n render(): JSX.Element {\r\n const valid = Object.keys(this.state.form).every(key => this.state.form[key] === undefined || this.state.form[key]?.valid);\r\n\r\n return (\r\n
\r\n {this.props.graphAnnotation && }\r\n
\r\n
\r\n

{this.props.graphAnnotation ? 'Wijzig opmerking' : 'Nieuwe opmerking'}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import { faMemo } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport GraphAnnotation from 'models/GraphAnnotation';\r\nimport { PureComponent } from 'react';\r\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\r\n\r\ninterface AnnotationLabelProps {\r\n viewBox: {\r\n x: number;\r\n y: number;\r\n },\r\n value: GraphAnnotation,\r\n onAnnotationLabelClicked: (value: GraphAnnotation) => void;\r\n}\r\n\r\nclass AnnotationLabel extends PureComponent {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.onClick = this.onClick.bind(this);\r\n this.stopBubbling = this.stopBubbling.bind(this);\r\n }\r\n\r\n stopBubbling(e: React.MouseEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n onClick() {\r\n this.props.onAnnotationLabelClicked?.(this.props.value);\r\n }\r\n\r\n render() {\r\n const { viewBox, value } = this.props;\r\n return (\r\n {value.annotation}}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AnnotationLabel;","\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { MateBeoordeling } from '../utils/constants';\r\nimport { faLeftLong, faRightLong } from '@fortawesome/pro-regular-svg-icons';\r\nimport { AssessmentTickInfo } from 'models/Assessment';\r\nimport { faCloudArrowUp } from '@fortawesome/pro-light-svg-icons';\r\n\r\nfunction AssessmentAxisTick(props: {\r\n tickValues?: Record; \r\n canEditAssessments: boolean;\r\n x: number;\r\n y: number;\r\n value: number;\r\n onEditAssessmentClicked?: (value: AssessmentTickInfo) => void;\r\n}): JSX.Element {\r\n const info = props.tickValues?.[props.value];\r\n\r\n return (\r\n \r\n
props.onEditAssessmentClicked?.(info) : undefined}\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n xmlns=\"http://www.w3.org/1999/xhtml\">\r\n \r\n  {\r\n app.translator.translate(Object.values(MateBeoordeling)[info?.mateBeoordeling ?? 'Geen'])\r\n } \r\n {info?.aangeleverdBro ? (\r\n  \r\n ) : undefined}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AssessmentAxisTick;","import { FormControl, FormControlValue, FormValue } from '@tauw/viewer-base';\r\nimport { mapValues } from 'lodash';\r\nimport Assessment from 'models/Assessment';\r\nimport moment from 'moment';\r\nimport { Component } from 'react';\r\nimport { MateBeoordeling, DATE_FORMAT, DATETIME_FORMAT } from '../utils/constants';\r\n\r\ninterface AssessmentEditorProps {\r\n assessment?: Assessment;\r\n dateRange?: [Date, Date];\r\n\r\n onCancelClicked?: () => void;\r\n onCreateClicked?: (assessment: Assessment) => void;\r\n onUpdateClicked?: (assessment: Assessment) => void;\r\n}\r\n\r\ninterface AssessmentEditorState {\r\n form: Form;\r\n}\r\n\r\n// todo rename to english\r\ninterface Form {\r\n begindatum: FormValue;\r\n einddatum: FormValue;\r\n tijdstipResultaat: FormValue;\r\n observatietype: FormValue;\r\n mateBeoordeling: FormValue;\r\n identificatieOrg: FormValue;\r\n beoordelingsprocedure: FormValue;\r\n procestype: FormValue;\r\n}\r\n\r\n\r\nexport default class AssessmentEditor extends Component {\r\n\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n // Initializes form state based on new or existing assessment\r\n let form: Form;\r\n if (props.assessment) {\r\n form = mapValues(props.assessment, element => element ? ({ value: element, valid: true }) : null) as Form;\r\n\r\n if (form.begindatum?.value)\r\n form.begindatum.value = moment(form.begindatum.value).format(DATE_FORMAT);\r\n\r\n if (form.einddatum?.value)\r\n form.einddatum.value = moment(form.einddatum.value).format(DATE_FORMAT);\r\n\r\n if (form.tijdstipResultaat?.value)\r\n form.tijdstipResultaat.value = moment(form.tijdstipResultaat.value).format(DATETIME_FORMAT);\r\n }\r\n else {\r\n form = {\r\n begindatum: props.dateRange ? { value: moment(props.dateRange[0]).format(DATE_FORMAT), valid: true } : null,\r\n einddatum: props.dateRange ? { value: moment(props.dateRange[1]).format(DATE_FORMAT), valid: true } : null,\r\n tijdstipResultaat: null,\r\n observatietype: null,\r\n mateBeoordeling: null,\r\n identificatieOrg: null,\r\n beoordelingsprocedure: null,\r\n procestype: null\r\n };\r\n }\r\n\r\n this.state = {\r\n form: form,\r\n };\r\n\r\n this.onFormChanged = this.onFormChanged.bind(this);\r\n this.onCancelClicked = this.onCancelClicked.bind(this);\r\n this.onSaveClicked = this.onSaveClicked.bind(this);\r\n }\r\n\r\n onFormChanged(prop: FormControlValue.Default): void {\r\n this.setState(state => ({\r\n form: {\r\n ...state.form,\r\n [prop.name]: {\r\n value: prop.value,\r\n valid: prop.valid\r\n }\r\n }\r\n }));\r\n }\r\n\r\n onCancelClicked(): void {\r\n this.props.onCancelClicked?.();\r\n }\r\n\r\n onSaveClicked(): void {\r\n // Check validation states\r\n for (const prop in this.state.form) {\r\n const value = this.state.form[prop];\r\n if (!value) continue;\r\n\r\n if (!value.valid) { // prop is null or invalid\r\n return;\r\n }\r\n }\r\n\r\n const assessment = mapValues(this.state.form, prop => prop ? prop.value : undefined) as unknown as Assessment;\r\n assessment.begindatum = moment.utc(assessment.begindatum, DATE_FORMAT).toDate();\r\n assessment.einddatum = moment.utc(assessment.einddatum, DATE_FORMAT).toDate();\r\n assessment.tijdstipResultaat = moment.utc(assessment.tijdstipResultaat, DATETIME_FORMAT).toDate();\r\n\r\n\r\n if (this.props.assessment)\r\n this.props.onUpdateClicked?.(assessment);\r\n else\r\n this.props.onCreateClicked?.(assessment);\r\n }\r\n\r\n render(): JSX.Element {\r\n const valid = Object.keys(this.state.form).every(key => !this.state.form[key] || this.state.form[key]?.valid);\r\n\r\n return (\r\n
\r\n

{this.props.assessment ? 'Wijzig beoordeling' : 'Nieuwe beoordeling'}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n name={'observatietype'} colWidth={7} feedback={true} feedbackOut={true} required\r\n placeholder={'Selecteer…'}\r\n onValueChanged={this.onFormChanged} />\r\n
\r\n
\r\n }\r\n name={'mateBeoordeling'} colWidth={7} feedback={true} feedbackOut={true} required\r\n placeholder={'Selecteer…'}\r\n onValueChanged={this.onFormChanged} />\r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n name={'procestype'} colWidth={7} feedback={true} feedbackOut={true} required\r\n placeholder={'Selecteer…'}\r\n onValueChanged={this.onFormChanged} />\r\n
\r\n
\r\n }\r\n name={'beoordelingsprocedure'} colWidth={7} feedback={true} feedbackOut={true} required\r\n placeholder={'Selecteer…'}\r\n onValueChanged={this.onFormChanged} />\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import { Component } from 'react';\r\nimport Slider from 'rc-slider';\r\nimport 'rc-slider/assets/index.css';\r\nimport moment from 'moment';\r\nimport { isEqual } from 'lodash';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCalendarRange, faEraser } from '@fortawesome/pro-solid-svg-icons';\r\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\r\n\r\ninterface DateFilterProps {\r\n dateRangeMin: number;\r\n dateRangeMax: number;\r\n current: [number, number];\r\n onDateRangeChanged?: (min: number, max: number) => void;\r\n onDateRangeReset?: () => void;\r\n onClear?: () => void;\r\n}\r\ninterface DateFilterState {\r\n min: number;\r\n max: number;\r\n days: number;\r\n currentValue: number[];\r\n revision: number;\r\n}\r\n\r\nconst DAY_IN_MILLISECONDS = 86400000;\r\n\r\nexport class DateFilter extends Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n const days = Math.round((props.dateRangeMax - props.dateRangeMin) / DAY_IN_MILLISECONDS);\r\n\r\n this.state = {\r\n min: props.dateRangeMin,\r\n max: props.dateRangeMax,\r\n days: days,\r\n currentValue: [0, days],\r\n revision: 0\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\r\n if (this.props.current[0] != prevProps.current[0] || this.props.current[1] != prevProps.current[1]) {\r\n const min = Math.round((this.props.current[0] - this.props.dateRangeMin) / DAY_IN_MILLISECONDS);\r\n const max = Math.round((this.props.current[1] - this.props.dateRangeMin) / DAY_IN_MILLISECONDS);\r\n\r\n if (this.state.currentValue[0] != min || this.state.currentValue[1] != max) {\r\n this.setState(() => ({\r\n revision: this.state.revision + 1,\r\n currentValue: [min, max]\r\n }));\r\n }\r\n }\r\n\r\n if (!isEqual(this.state.currentValue, prevState.currentValue)) {\r\n const values = this.state.currentValue;\r\n\r\n if (values[0] != 0 || values[1] != this.state.days) {\r\n const min = this.props.dateRangeMin + (values[0] * DAY_IN_MILLISECONDS);\r\n const max = this.props.dateRangeMin + (values[1] * DAY_IN_MILLISECONDS);\r\n \r\n this.props.onDateRangeChanged?.(min, max);\r\n } else {\r\n this.props.onDateRangeReset?.();\r\n }\r\n }\r\n }\r\n\r\n render(): JSX.Element {\r\n\r\n const Range = Slider.createSliderWithTooltip(Slider.Range);\r\n const rangeNode = (\r\n this.setState({ currentValue: value })} \r\n tipFormatter={(value: number) => moment(this.state.min).add(value, 'days').format('DD MMM YYYY')} />\r\n );\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n {rangeNode}\r\n
\r\n\r\n \r\n {app.translator.translate('Reset Zoom')}\r\n \r\n )}\r\n > \r\n this.props.onClear?.()}>\r\n\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}","import React, { Component, createRef, RefObject } from 'react';\r\nimport { isEqual, range, sortBy, sortedUniqBy, uniq } from 'lodash';\r\nimport moment from 'moment';\r\nimport { ChartItem, LegendValue } from '../models/ChartValue';\r\nimport { ComposedChart, Line, ResponsiveContainer, CartesianGrid, XAxis, YAxis, ReferenceArea, Legend, Label, Tooltip, ReferenceLine } from 'recharts';\r\nimport Meetpunt from 'models/Meetpunt';\r\nimport TooltipWrapper from './TooltipWrapper';\r\nimport LegendWrapper from './LegendWrapper';\r\nimport { DateFilter } from './DateFilter';\r\nimport { AssessmentTickInfo } from 'models/Assessment';\r\nimport { WeatherItem } from '../models/WeatherItem';\r\nimport { wrap, releaseProxy, Remote } from 'comlink';\r\nimport GraphWorker from 'workers/GraphWorker';\r\nimport Assessment from '../../../models/Assessment';\r\nimport { AxisDomain } from 'recharts/types/util/types';\r\nimport AssessmentAxisTick from './AssessmentAxisTick';\r\nimport GraphAnnotation from 'models/GraphAnnotation';\r\nimport { AnnotationTickInfo } from '../../../models/GraphAnnotation';\r\nimport AnnotationLabel from './AnnotationLabel';\r\nimport { COLORS } from '../utils/constants';\r\n\r\ninterface GraphProps {\r\n unit: 'mv' | 'nap';\r\n info: Meetpunt[];\r\n data: ChartItem[];\r\n weather?: WeatherItem[];\r\n assessments?: Assessment[];\r\n annotations?: GraphAnnotation[];\r\n graphMode: 'individual' | 'combined';\r\n canEditAssessments: boolean;\r\n liteMode: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n chartRef?: React.RefObject;\r\n\r\n onEditAssessmentClicked?: (assessment: AssessmentTickInfo) => void;\r\n onAnnotationLabelClicked?: (annotation: GraphAnnotation) => void;\r\n}\r\n\r\ninterface GraphState {\r\n data?: ChartItem[];\r\n weather?: WeatherItem[];\r\n tooltip?: JSX.Element;\r\n limits?: [number, number, number, number],\r\n categories: string[];\r\n\r\n dataMin?: number;\r\n dataMax?: number;\r\n dataGhg?: number;\r\n dataGlg?: number;\r\n dataRhg?: number;\r\n dataRlg?: number;\r\n dataNap?: number;\r\n\r\n refAreaLeft?: number;\r\n refAreaRight?: number;\r\n\r\n visibility: Record;\r\n\r\n zoomed: boolean;\r\n\r\n // filter\r\n assessments: boolean;\r\n annotations: boolean;\r\n}\r\n\r\nexport class Graph extends Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n zoomed: false,\r\n visibility: {},\r\n assessments: true,\r\n annotations: true,\r\n categories: this.getCategories(props.data)\r\n };\r\n\r\n this.tooltipRef = createRef();\r\n\r\n this.zoom = this.zoom.bind(this);\r\n this.reset = this.reset.bind(this);\r\n this.onDateRangeChanged = this.onDateRangeChanged.bind(this);\r\n this.onDateRangeReset = this.onDateRangeReset.bind(this);\r\n this.onGraphZoomAction = this.onGraphZoomAction.bind(this);\r\n this.onEditAssessmentClicked = this.onEditAssessmentClicked.bind(this);\r\n this.onAnnotationLabelClicked = this.onAnnotationLabelClicked.bind(this);\r\n\r\n\r\n }\r\n\r\n readonly tooltipRef: RefObject;\r\n\r\n private zoomIntervalHandle?: number;\r\n private refAreaRight?: number;\r\n private worker?: Worker;\r\n private adapter?: Remote;\r\n\r\n getCategories(data: ChartItem[]): string[] {\r\n const main = ['valid', 'released', 'raw', 'manual'];\r\n if (!this.props.liteMode) return main;\r\n\r\n const available = uniq(data.flatMap(x => x.values).flatMap(x => Object.keys(x).filter(k => typeof x[k] == 'number')));\r\n return ['valid', 'released', 'raw', 'manual'].filter(x => available.includes(x));\r\n }\r\n\r\n componentDidMount(): void {\r\n this.worker = new Worker(`${location.pathname}workers/GraphWorker.js`, { type: 'module' });\r\n this.adapter = wrap(this.worker);\r\n\r\n this.adapter.setData(this.props.data).then(() => {\r\n const sample = this.props.data[0];\r\n this.setState({\r\n dataMin: sample.min,\r\n dataMax: sample.max,\r\n dataGhg: sample.ghg,\r\n dataGlg: sample.glg,\r\n dataRhg: sample.rhg,\r\n dataRlg: sample.rlg,\r\n dataNap: sample.nap,\r\n visibility: this.getDefaultVisibility()\r\n }, () => this.reset());\r\n });\r\n this.adapter.setWeather(this.props.weather ?? []);\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly): void {\r\n if (this.state.refAreaLeft != prevState.refAreaLeft) {\r\n if (this.state.refAreaLeft) {\r\n this.zoomIntervalHandle = setInterval(() => {\r\n if (this.state.refAreaRight != this.refAreaRight) {\r\n this.setState({ refAreaRight: this.refAreaRight });\r\n }\r\n }, 100);\r\n\r\n } else {\r\n clearInterval(this.zoomIntervalHandle);\r\n this.zoomIntervalHandle = undefined;\r\n this.refAreaRight = undefined;\r\n }\r\n } else {\r\n if (!isEqual(this.props.data, prevProps.data)) {\r\n const categories = this.getCategories(this.props.data);\r\n this.setState({ data: [], categories }, () => {\r\n this.adapter?.setData(this.props.data).then(() => {\r\n const sample = this.props.data[0];\r\n const visibility = this.getDefaultVisibility();\r\n for (const key of Object.keys(this.state.visibility)) {\r\n if (!Object.keys(visibility).includes(key)) continue;\r\n\r\n if (key.endsWith('valid')) {\r\n visibility[key] = true;\r\n } else {\r\n visibility[key] = this.state.visibility[key];\r\n }\r\n }\r\n\r\n this.setState({\r\n dataMin: sample.min,\r\n dataMax: sample.max,\r\n dataGhg: sample.ghg,\r\n dataGlg: sample.glg,\r\n dataRhg: sample.rhg,\r\n dataRlg: sample.rlg,\r\n dataNap: sample.nap,\r\n visibility: visibility\r\n }, () => this.reset());\r\n });\r\n });\r\n }\r\n if (!isEqual(this.props.weather, prevProps.weather)) {\r\n this.setState({ weather: undefined }, async () => {\r\n await this.adapter?.setWeather(this.props.weather ?? []);\r\n const weather = await this.adapter?.sampleWeatherData();\r\n this.setState({ weather: weather });\r\n });\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount(): void {\r\n if (this.zoomIntervalHandle != undefined) {\r\n clearInterval(this.zoomIntervalHandle);\r\n this.zoomIntervalHandle = undefined;\r\n }\r\n\r\n this.adapter?.[releaseProxy]?.();\r\n this.worker?.terminate();\r\n }\r\n\r\n getDefaultVisibility(): Record {\r\n return Object.assign({}, ...[\r\n ...range(0, this.props.data[0].values.length)\r\n .map(id => `values[${id}]`)\r\n .flatMap(id => this.state.categories.map(v => `${id}.${v}`)),\r\n 'ghg', 'glg', 'max', 'min', 'nap'\r\n ].map(v => ({ [v]: v.endsWith('valid') })));\r\n }\r\n\r\n async zoom(min: number, max: number): Promise {\r\n if (!this.adapter) return;\r\n\r\n let keys = this.props.data.map(v => v.time);\r\n let startIndex = keys.indexOf(min);\r\n if (startIndex == -1) {\r\n startIndex = keys.indexOf(sortBy(keys, v => Math.abs(v - min))[0]);\r\n }\r\n let endIndex = keys.indexOf(max);\r\n if (endIndex == -1) {\r\n endIndex = keys.indexOf(sortBy(keys, v => Math.abs(v - max))[0]);\r\n }\r\n\r\n // Graph can only be drawn for 2 or more data points \r\n if (this.props.data.slice(startIndex, endIndex).length > 1) {\r\n await this.adapter.setSlice([startIndex, endIndex]);\r\n \r\n const data = await this.adapter.sampleData();\r\n \r\n let weather: WeatherItem[] | undefined;\r\n if (this.props.weather) {\r\n keys = this.props.weather.map(v => v.time);\r\n startIndex = keys.indexOf(min);\r\n if (startIndex == -1) {\r\n startIndex = keys.indexOf(sortBy(keys, v => Math.abs(v - min))[0]);\r\n }\r\n endIndex = keys.indexOf(max);\r\n if (endIndex == -1) {\r\n endIndex = keys.indexOf(sortBy(keys, v => Math.abs(v - max))[0]);\r\n }\r\n \r\n await this.adapter.setWeatherSlice([startIndex, endIndex]);\r\n \r\n weather = await this.adapter.sampleWeatherData();\r\n }\r\n \r\n const limits = await this.adapter.getLimits(this.state.visibility);\r\n\r\n this.setState({\r\n data: data,\r\n weather: weather,\r\n limits: limits,\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n zoomed: true\r\n });\r\n } else {\r\n this.setState({\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined\r\n });\r\n }\r\n }\r\n\r\n async reset(): Promise {\r\n if (!this.adapter) return;\r\n\r\n await this.adapter.setSlice([undefined, undefined]);\r\n await this.adapter.setWeatherSlice([undefined, undefined]);\r\n\r\n const data = await this.adapter.sampleData();\r\n let weather: WeatherItem[] | undefined;\r\n if (this.props.weather) {\r\n weather = await this.adapter.sampleWeatherData();\r\n }\r\n\r\n const limits = await this.adapter.getLimits(this.state.visibility);\r\n\r\n this.setState({\r\n data: data,\r\n weather: weather,\r\n limits: limits,\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n zoomed: false\r\n });\r\n }\r\n\r\n getTickInfo(): { format: string; ticks: number[]; } {\r\n let format = 'DD MMM YYYY HH:mm';\r\n const ticks: number[] = [];\r\n\r\n if (this.state.limits) {\r\n //const start = moment(this.state.limits[0]);\r\n const range = (this.state.limits[2] - this.state.limits[0]);\r\n if (range / 31536000000 > 3) { // year\r\n format = 'YYYY';\r\n } else if (range / 2592000000 > 6) { // month\r\n format = 'MMM YYYY';\r\n } else if (range / 86400000 > 14) { // day\r\n format = 'DD MMM';\r\n } else if (range / 86400000 > 1) { // day\r\n format = 'ddd HH:00';\r\n } else {\r\n format = 'HH:mm';\r\n }\r\n\r\n const count = 8;\r\n const interval = Math.round(range / (count - 1));\r\n\r\n for (let i = 0; i < count; i++) {\r\n ticks.push(this.state.limits[0] + interval * i);\r\n }\r\n\r\n const uniqTicks = sortedUniqBy(ticks, v => moment(v).format(format));\r\n if (uniqTicks.length !== ticks.length) {\r\n const count = uniqTicks.length;\r\n const interval = Math.round(range / (count - 1));\r\n\r\n ticks.splice(0, ticks.length);\r\n for (let i = 0; i < count; i++) {\r\n ticks.push(this.state.limits[0] + interval * i);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n format: format,\r\n ticks: ticks //sortedUniqBy(ticks, v => moment(v).format(format))\r\n };\r\n }\r\n\r\n getAssessmentsTickInfo(): { tickValues: Record; ticks: number[]; } | undefined {\r\n if (this.props.graphMode !== 'individual') return;\r\n\r\n const minLimit = this.state.limits?.[0];\r\n const maxLimit = this.state.limits?.[2];\r\n\r\n const ticks: number[] = [];\r\n const tickValues: Record = {};\r\n\r\n const addTickValue = (start: number, end: number, bro?: number, assessment?: Assessment) => {\r\n // Calculate the tick based on the center for two dates\r\n const tick = (start + end) / 2;\r\n ticks.push(tick);\r\n if (assessment)\r\n tickValues[tick] = assessment;\r\n else\r\n tickValues[tick] = {\r\n begindatum: moment(start).toDate(),\r\n einddatum: moment(end).toDate(),\r\n aangeleverdBro: bro ? moment(bro).toDate(): undefined,\r\n mateBeoordeling: 0\r\n };\r\n };\r\n\r\n if (this.props.assessments?.length) {\r\n const ranges: [start: number, end: number][] = [];\r\n\r\n for (let i = 0; i < this.props.assessments.length; i++) {\r\n const assessment = this.props.assessments[i];\r\n let startDate = moment(assessment.begindatum).valueOf();\r\n let endDate = moment(assessment.einddatum).valueOf();\r\n const broDate = assessment.aangeleverdBro ? moment(assessment.aangeleverdBro).valueOf() : undefined;\r\n\r\n // Skip assessments which are not in the current scope.\r\n if (startDate >= (maxLimit ?? 0) || endDate <= (minLimit ?? 0)) continue;\r\n\r\n if (minLimit && startDate < minLimit)\r\n startDate = minLimit;\r\n if (maxLimit && endDate > maxLimit)\r\n endDate = maxLimit;\r\n\r\n addTickValue(startDate, endDate, broDate, assessment);\r\n ranges.push([startDate, endDate]);\r\n }\r\n\r\n // Find the holes (Niet beoordeelde observaties)\r\n if (ranges.length) {\r\n if (minLimit && minLimit < ranges[0][0]) {\r\n addTickValue(minLimit, ranges[0][0]);\r\n }\r\n if (maxLimit && maxLimit > ranges[ranges.length - 1][1]) {\r\n addTickValue(ranges[ranges.length - 1][1], maxLimit);\r\n }\r\n for (let i = 1; i < ranges.length; i++) {\r\n const beginningOfHole = ranges[i - 1][1];\r\n const endOfHole = ranges[i][0];\r\n if (beginningOfHole < endOfHole) {\r\n addTickValue(beginningOfHole, endOfHole);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Add one tick which spans the full width if there are no assessments within range\r\n if (!ticks.length && minLimit && maxLimit) {\r\n addTickValue(minLimit, maxLimit);\r\n }\r\n\r\n return {\r\n ticks: ticks,\r\n tickValues: tickValues\r\n };\r\n }\r\n\r\n getAnnotationsTickInfo(): AnnotationTickInfo[] | undefined {\r\n if (this.props.graphMode !== 'individual') return;\r\n\r\n const minLimit = this.state.limits?.[0];\r\n const maxLimit = this.state.limits?.[2];\r\n\r\n const tickInfo: AnnotationTickInfo[] = [];\r\n\r\n if (this.props.annotations?.length) {\r\n\r\n for (let i = 0; i < this.props.annotations.length; i++) {\r\n const annotation = this.props.annotations[i];\r\n let startDate = new Date(annotation.startdate).valueOf();\r\n let endDate = new Date(annotation.enddate).valueOf();\r\n\r\n // Skip annotations which are not in the current scope.\r\n if (startDate >= (maxLimit ?? 0) || endDate <= (minLimit ?? 0)) continue;\r\n\r\n const overlapCount = this.props.annotations\r\n .slice(0, i)\r\n .filter(x => Math.max(new Date(x.startdate).valueOf(), startDate) < Math.min(new Date(x.enddate).valueOf(), endDate)).length;\r\n\r\n const paddingFactor = .075;\r\n const top = (this.state.limits?.[1] ?? 0);\r\n const bottom = (this.state.limits?.[3] ?? 0);\r\n const offset = ((bottom - top) * paddingFactor) * overlapCount;\r\n const y = this.props.unit === 'nap' ? top + offset : bottom - offset;\r\n\r\n if (minLimit && startDate < minLimit)\r\n startDate = minLimit;\r\n if (maxLimit && endDate > maxLimit)\r\n endDate = maxLimit;\r\n\r\n tickInfo.push({\r\n x1: startDate,\r\n x2: endDate,\r\n y: y,\r\n value: annotation\r\n } as AnnotationTickInfo);\r\n }\r\n }\r\n\r\n return tickInfo;\r\n }\r\n\r\n async onToggleVisibility(...values: [key: string, state?: boolean][]): Promise {\r\n const visibility = { ...this.state.visibility };\r\n for (const [key, state] of values) {\r\n visibility[key] = state != undefined ? state : visibility[key] != undefined ? !visibility[key] : false;\r\n }\r\n this.setState({ visibility: visibility }, async () => {\r\n if (this.state.data && this.adapter) {\r\n const limits = await this.adapter.getLimits(this.state.visibility);\r\n this.setState({ limits: limits });\r\n }\r\n });\r\n }\r\n\r\n onGraphZoomAction(): void {\r\n\r\n let { refAreaLeft, refAreaRight } = this.state;\r\n\r\n if (refAreaLeft === refAreaRight || refAreaLeft === undefined || refAreaRight === undefined) {\r\n this.setState(() => ({\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n }));\r\n return;\r\n }\r\n\r\n // xAxis domain\r\n if (refAreaLeft > refAreaRight) [refAreaLeft, refAreaRight] = [refAreaRight, refAreaLeft];\r\n\r\n this.zoom(refAreaLeft, refAreaRight);\r\n }\r\n\r\n onDateRangeChanged(min: number, max: number): void {\r\n this.setState({\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n });\r\n\r\n this.zoom(min, max);\r\n }\r\n\r\n onDateRangeReset(): void {\r\n this.reset();\r\n }\r\n\r\n onAnnotationLabelClicked(value: GraphAnnotation): void {\r\n this.props.onAnnotationLabelClicked?.(value);\r\n }\r\n\r\n onEditAssessmentClicked(value: AssessmentTickInfo): void {\r\n this.props.onEditAssessmentClicked?.(value);\r\n }\r\n\r\n getKeys(): { key: string; value: LegendValue; color: string; lineColor?: string; }[] {\r\n const sample = this.props.data[0];\r\n const keys = sample.values\r\n .flatMap((v, i) => this.state.categories.map(k => ({\r\n key: `values[${i}].${k}`,\r\n value: {\r\n label: app.translator.translate(k, {\r\n context: 'GWM',\r\n format: 'lc'\r\n }),\r\n groupId: v.label\r\n } as LegendValue,\r\n color: k == 'manual' ? '#f60' : k == 'raw' ? '#a1a1a1' : COLORS[i % COLORS.length],\r\n lineColor: k == 'released' ? '#f9c5fc' : undefined\r\n })));\r\n return keys;\r\n }\r\n\r\n getLegendNode(keys?: { key: string; value: LegendValue; color: string; lineColor?: string; }[]): React.ReactElement {\r\n const payload = (keys ?? this.getKeys()).map(k => ({\r\n id: k.key,\r\n value: k.value,\r\n color: k.lineColor ?? k.color\r\n }));\r\n return this.onToggleVisibility(...v.map(x => [x] as [string]))} />}\r\n />;\r\n }\r\n\r\n render(): JSX.Element | null {\r\n const tickInfo = this.getTickInfo();\r\n const assessmentsTickInfo = this.getAssessmentsTickInfo();\r\n const annotationsTickInfo = this.getAnnotationsTickInfo();\r\n\r\n const sample = this.props.data[0];\r\n const keys = this.getKeys();\r\n\r\n const dataPadding = ((this.state.limits?.[3] ?? 0) - (this.state.limits?.[1] ?? 0)) * .1;\r\n const dataPaddingX = ((this.state.limits?.[2] ?? 0) - (this.state.limits?.[0] ?? 0)) * .1;\r\n\r\n const yAxisDomain: AxisDomain = [\r\n (typeof this.state.limits?.[1] == 'number' ? this.state.limits[1] - dataPadding : undefined) ?? 'dataMin',\r\n (typeof this.state.limits?.[3] == 'number' ? this.state.limits[3] + dataPadding : undefined) ?? 'dataMax'\r\n ];\r\n const xAxisDomain: AxisDomain = [\r\n (typeof this.state.limits?.[0] == 'number' ? this.state.limits[0] - dataPaddingX : undefined) ?? 'dataMin',\r\n (typeof this.state.limits?.[2] == 'number' ? this.state.limits[2] + dataPaddingX : undefined) ?? 'dataMax'\r\n ];\r\n\r\n const visible = keys.filter(k => this.state.visibility[k.key] && this.state.visibility[k.value.groupId] != false);\r\n\r\n const assessmentLines = this.props.graphMode === 'individual' && this.state.assessments && !this.props.liteMode ? [...new Set(this.props.assessments?.flatMap(o => [o.begindatum, o.einddatum].map(x => moment(x).valueOf())))] : [];\r\n const refLines = ['max', 'min', 'ghg', 'glg', 'rhg', 'rlg', 'nap']\r\n .filter(k => this.state.visibility[k]);\r\n\r\n const legendNode = this.getLegendNode(keys);\r\n\r\n return (<>\r\n
\r\n
\r\n \r\n \r\n
\r\n {this.state.data ? (\r\n <>\r\n \r\n {\r\n const activeLabel = Number(e?.activeLabel);\r\n if (activeLabel) {\r\n this.setState({\r\n refAreaLeft: activeLabel,\r\n refAreaRight: activeLabel\r\n });\r\n }\r\n }}\r\n onMouseMove={this.state.refAreaLeft ? (e) => {\r\n const activeLabel = Number(e?.activeLabel);\r\n if (activeLabel) {\r\n this.refAreaRight = activeLabel;\r\n } else {\r\n this.setState({\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined\r\n });\r\n }\r\n } : undefined}\r\n onMouseUp={this.state.refAreaLeft ? this.onGraphZoomAction : undefined}\r\n >\r\n\r\n \r\n\r\n moment(v).format(tickInfo.format)}\r\n interval={0} allowDecimals={false}\r\n >\r\n \r\n\r\n {this.props.graphMode === 'individual' && this.state.assessments && !this.props.liteMode && }\r\n interval={0} allowDecimals={false}\r\n >\r\n }\r\n\r\n \r\n \r\n\r\n {refLines.length ? (\r\n sample[k] as number)}\r\n tickFormatter={(v) => refLines.filter(k => sample[k] == v)[0]} />\r\n ) : undefined}\r\n\r\n ({ [k.key]: `${k.value.groupId}: ${k.value.label}` })))}\r\n dataMax={this.state.dataMax}\r\n dataMin={this.state.dataMin}\r\n ghg={this.state.dataGhg}\r\n glg={this.state.dataGlg}\r\n rhg={this.state.dataRhg}\r\n rlg={this.state.dataRlg}\r\n nap={this.state.dataNap}\r\n onDataMaxToggled={v => this.onToggleVisibility(['max', v])}\r\n onDataMinToggled={v => this.onToggleVisibility(['min', v])}\r\n onGhgToggled={v => this.onToggleVisibility(['ghg', v])}\r\n onGlgToggled={v => this.onToggleVisibility(['glg', v])}\r\n onRhgToggled={v => this.onToggleVisibility(['rhg', v])}\r\n onRlgToggled={v => this.onToggleVisibility(['rlg', v])}\r\n onNapToggled={v => this.onToggleVisibility(['nap', v])}\r\n />} />\r\n\r\n {visible.filter(k => !k.key.endsWith('manual')).reverse().map(k => (\r\n \r\n ))}\r\n\r\n {visible.filter(k => k.key.endsWith('manual')).reverse().map(k => (\r\n \r\n ))}\r\n\r\n {refLines.map(k =>\r\n )}\r\n\r\n {this.props.graphMode === 'individual' && !this.props.liteMode &&\r\n <>\r\n {this.state.assessments && assessmentLines.map(x =>\r\n )}\r\n {this.state.annotations && annotationsTickInfo?.map((tickInfo, i) =>\r\n } />)}\r\n \r\n }\r\n {this.state.refAreaLeft ? (\r\n \r\n ) : undefined}\r\n \r\n \r\n\r\n {this.props.weather?.length ?
\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n `${Math.round(v)}mm`} allowDataOverflow>\r\n \r\n\r\n \r\n \r\n \r\n
: undefined}\r\n\r\n
\r\n {legendNode}\r\n
\r\n \r\n ) : undefined}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default Graph;","import { Component } from 'react';\r\nimport { Payload } from 'recharts/types/component/DefaultLegendContent';\r\nimport { Surface, Symbols } from 'recharts';\r\nimport { LegendValue } from '../models/ChartValue';\r\nimport { groupBy } from 'lodash';\r\ninterface LegendWrapperProps {\r\n payload: Payload[];\r\n visibility: Record;\r\n simple?: boolean;\r\n onClick?: (...name: string[]) => void;\r\n}\r\n\r\nexport class LegendWrapper extends Component {\r\n static defaultProps = {\r\n payload: []\r\n };\r\n\r\n constructor(props: Readonly) {\r\n super(props);\r\n }\r\n\r\n render(): JSX.Element {\r\n const groups = Object.entries(groupBy(this.props.payload, x => (x.value as LegendValue).groupId));\r\n if (!groups.length) return <>;\r\n \r\n const toggleGroups = groups\r\n .map(([, items]) => items.map(item => [item.id as string]))\r\n .reduce((a, b) => a.map((v, i) => [...v, ...b[i]]));\r\n const colors = groups[0][1].map(item => item.color as string);\r\n\r\n const nodes = (!this.props.simple ? groups : [groups[0]]).map(([groupid, items]) =>\r\n
\r\n \r\n {\r\n items.map((item) => {\r\n const id = item.id as string;\r\n const color = item.color as string;\r\n const value = item.value as LegendValue;\r\n return (\r\n \r\n );\r\n })\r\n }\r\n
\r\n );\r\n\r\n return (\r\n
\r\n {!this.props.simple ?
\r\n \r\n
\r\n
\r\n
\r\n {\r\n toggleGroups.map((item, i) => {\r\n const visible = item.every(v => this.props.visibility[v]);\r\n const state = item.some(v => !this.props.visibility[v]);\r\n const toToggle = state ? item.filter(v => !this.props.visibility[v]) : item;\r\n\r\n return (\r\n \r\n );\r\n })\r\n }\r\n
\r\n {nodes}\r\n
\r\n
: nodes}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LegendWrapper;","import { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport moment from 'moment';\r\nimport { ChartItem } from '../models/ChartValue';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faSquare, faSquareCheck } from '@fortawesome/pro-light-svg-icons';\r\nimport { sortBy } from 'lodash';\r\nimport { Popover, OverlayTrigger } from 'react-bootstrap';\r\nimport { TooltipProps } from 'recharts';\r\nimport { faCircleInfo } from '@fortawesome/pro-regular-svg-icons';\r\n\r\ninterface TooltipWrapperProps extends TooltipProps {\r\n labels: Record[];\r\n container?: Element;\r\n\r\n dataMin?: number;\r\n dataMax?: number;\r\n ghg?: number;\r\n glg?: number;\r\n rhg?: number;\r\n rlg?: number;\r\n nap?: number;\r\n\r\n onDataMinToggled?: (state: boolean) => void;\r\n onDataMaxToggled?: (state: boolean) => void;\r\n onGhgToggled?: (state: boolean) => void;\r\n onGlgToggled?: (state: boolean) => void;\r\n onRhgToggled?: (state: boolean) => void;\r\n onRlgToggled?: (state: boolean) => void;\r\n onNapToggled?: (state: boolean) => void;\r\n}\r\n\r\ninterface TooltipWrapperState {\r\n dataMin: boolean;\r\n dataMax: boolean;\r\n ghg: boolean;\r\n glg: boolean;\r\n rhg: boolean;\r\n rlg: boolean;\r\n nap: boolean;\r\n}\r\n\r\nexport class TooltipWrapper extends Component {\r\n static defaultProps = {\r\n payload: []\r\n };\r\n\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n dataMax: false,\r\n dataMin: false,\r\n ghg: false,\r\n glg: false,\r\n rhg: false,\r\n rlg: false,\r\n nap: false\r\n };\r\n }\r\n\r\n componentDidMount(): void {\r\n if (this.props.container) {\r\n const tooltip = this.renderTooltip();\r\n ReactDOM.render(tooltip, this.props.container);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly): void {\r\n if (this.props.container) {\r\n const tooltip = this.renderTooltip();\r\n ReactDOM.render(tooltip, this.props.container);\r\n }\r\n\r\n if (this.state.dataMax != prevState.dataMax) {\r\n this.props.onDataMaxToggled?.(this.state.dataMax);\r\n }\r\n if (this.state.dataMin != prevState.dataMin) {\r\n this.props.onDataMinToggled?.(this.state.dataMin);\r\n }\r\n if (this.state.ghg != prevState.ghg) {\r\n this.props.onGhgToggled?.(this.state.ghg);\r\n }\r\n if (this.state.glg != prevState.glg) {\r\n this.props.onGlgToggled?.(this.state.glg);\r\n }\r\n if (this.state.rhg != prevState.rhg) {\r\n this.props.onRhgToggled?.(this.state.rhg);\r\n }\r\n if (this.state.rlg != prevState.rlg) {\r\n this.props.onRlgToggled?.(this.state.rlg);\r\n }\r\n if (this.state.nap != prevState.nap) {\r\n this.props.onNapToggled?.(this.state.nap);\r\n }\r\n }\r\n\r\n componentWillUnmount(): void {\r\n if (this.props.container) {\r\n ReactDOM.unmountComponentAtNode(this.props.container);\r\n }\r\n }\r\n\r\n renderTooltip(): JSX.Element {\r\n const { payload } = this.props;\r\n const info = payload?.[0]?.payload as ChartItem | undefined;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n

Samenvatting

\r\n\r\n \r\n Informatie\r\n \r\n
    \r\n
  • \r\n De GxG waarden zijn op klassieke manier bepaald. Dit is gedaan door de 3 hoogste/laagste metingen in een jaar op de 14e en 28e van elke maand te nemen en daarvan het gemiddelde te berekenen. Voor elk jaar is deze waarde bepaald en daarvan het gemiddelde. Voor een betrouwbare GxG is minimaal een meetreeks van 8 jaar nodig.\r\n
  • \r\n
  • \r\n In de grafiek zijn de reeksen aan en uit te zetten door op de reeksnaam te klikken.\r\n
  • \r\n
  • \r\n De RxG waarden zijn een alternatief voor de GxG waarden aangezien niet altijd een reeks van 8 jaar beschikbaar is. De RxG waarden betreffen de 8 en 92 percentiel waarde van de gehele reeks. Dit komt overeen met een grondwaterstand die gedurende 30 dagen per jaar voor kan komen en is tevens de HG2 en/of LG2 waarde over 24 metingen. In de praktijk blijkt dit een zeer goede benadering van de GxG waarden te zijn.\r\n
  • \r\n
\r\n
\r\n \r\n )}>\r\n \r\n \r\n
\r\n\r\n \r\n \r\n {this.props.dataMax !== undefined && \r\n \r\n \r\n \r\n }\r\n {this.props.dataMin !== undefined && \r\n \r\n \r\n \r\n }\r\n {this.props.ghg !== undefined && \r\n \r\n \r\n \r\n }\r\n {this.props.glg !== undefined && \r\n \r\n \r\n \r\n }\r\n {this.props.rhg !== undefined && \r\n \r\n \r\n \r\n }\r\n {this.props.rlg !== undefined && \r\n \r\n \r\n \r\n }\r\n {this.props.nap !== undefined && \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n this.setState({ dataMax: !this.state.dataMax })}>\r\n \r\n \r\n Max{this.formatValue(this.props.dataMax)}
\r\n this.setState({ dataMin: !this.state.dataMin })}>\r\n \r\n \r\n Min{this.formatValue(this.props.dataMin)}
\r\n this.setState({ ghg: !this.state.ghg })}>\r\n \r\n \r\n GHG{this.formatValue(this.props.ghg)}
\r\n this.setState({ glg: !this.state.glg })}>\r\n \r\n \r\n GLG{this.formatValue(this.props.glg)}
\r\n this.setState({ rhg: !this.state.rhg })}>\r\n \r\n \r\n RHG{this.formatValue(this.props.rhg)}
\r\n this.setState({ rlg: !this.state.rlg })}>\r\n \r\n \r\n RLG{this.formatValue(this.props.rlg)}
\r\n this.setState({ nap: !this.state.nap })}>\r\n \r\n \r\n MV{this.formatValue(this.props.nap)}
\r\n
\r\n\r\n
\r\n {info && payload ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {sortBy(payload.filter(v => v.name && !['max', 'min', 'ghg', 'glg', 'rhg', 'rlg', 'nap'].includes(v.name)), v => v.dataKey)\r\n .map(v => {\r\n const point = v.payload as ChartItem | undefined;\r\n return point ? (\r\n \r\n \r\n \r\n \r\n ) : undefined;\r\n })}\r\n \r\n
\r\n {moment(info.time).format('DD MMM YYYY HH:mm')}\r\n
\r\n {v.name ? this.props.labels[v.name] ?? v.name : '-'}\r\n \r\n {v.value ? this.formatValue(v.value) : '-'}\r\n
\r\n ) : undefined}\r\n
\r\n \r\n );\r\n }\r\n\r\n formatValue(value: number): string {\r\n return `${Math.round(value * 1000) / 1000}`;\r\n }\r\n\r\n render(): JSX.Element | null {\r\n return null;\r\n }\r\n}\r\n\r\nexport default TooltipWrapper;","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCircleCheck, faCircleXmark, faSquareCheck, faSquare, faSquareMinus, faCircle, faBan, faFilter as faDisabledFilter, faPencil, faWandSparkles } from '@fortawesome/pro-light-svg-icons';\r\nimport { faFilter } from '@fortawesome/pro-solid-svg-icons';\r\nimport Meetpunt from 'models/Meetpunt';\r\nimport moment from 'moment';\r\nimport { gwm_api } from 'protobuf';\r\nimport { useEffect, useRef, useState, PropsWithChildren, useCallback } from 'react';\r\nimport { ChartItem } from '../models/ChartValue';\r\nimport ValidationGraph from './ValidationGraph';\r\nimport { GwmApi } from 'general/api';\r\nimport { RefUnit } from '..';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport { isEqual, sortBy, sortedUniq } from 'lodash';\r\n\r\ninterface ValidationEditorProps {\r\n chartData: ChartItem[];\r\n data: [Meetpunt, gwm_api.SampleCollection];\r\n unit: RefUnit;\r\n onFinish?: (success: boolean) => void;\r\n onLoading?: (state: boolean) => void;\r\n}\r\n\r\ninterface ValidationEditorFilter {\r\n value?: (gwm_api.Validation.Score | undefined)[],\r\n state?: (gwm_api.Validation.State | undefined)[],\r\n reason?: (gwm_api.Validation.Reason | undefined)[],\r\n interpolation?: (gwm_api.Validation.Interpolation | undefined)[]\r\n}\r\n\r\nfunction ValidationEditor(props: ValidationEditorProps) {\r\n const { chartData, data, unit, onLoading } = props;\r\n\r\n const [samples, setSamples] = useState<[gwm_api.ISample, gwm_api.IValidation, boolean][]>();\r\n const [chartSamplesFull, setChartSamplesFull] = useState();\r\n const [chartSelection, setChartSelection] = useState();\r\n const [filtered, setFiltered] = useState<[gwm_api.ISample, gwm_api.IValidation, boolean][]>([]);\r\n const [selected, setSelected] = useState(0);\r\n const [filter, setFilter] = useState({});\r\n const [stage, setStage] = useState<'selection' | 'editing'>('selection');\r\n \r\n const [editScore, setEditScore] = useState();\r\n const [editState, setEditState] = useState();\r\n const [editReason, setEditReason] = useState();\r\n const [editLimit, setEditLimit] = useState();\r\n const [editInterpolation, setEditInterpolation] = useState();\r\n\r\n const prevSamples = useRef<[gwm_api.ISample, gwm_api.IValidation, boolean][] | undefined>();\r\n const prevChartData = useRef();\r\n const prevFilter = useRef(filter);\r\n const prevStage = useRef<'selection' | 'editing'>(stage);\r\n\r\n const resetFilter = useCallback(() => {\r\n setSelected(samples?.length ?? 0);\r\n setFilter({});\r\n }, [samples]);\r\n\r\n useEffect(() => {\r\n if (prevSamples.current != samples) {\r\n resetFilter();\r\n\r\n prevSamples.current = samples;\r\n }\r\n }, [resetFilter, samples]);\r\n\r\n useEffect(() => {\r\n if (prevChartData.current != chartData) {\r\n setChartSamplesFull(chartData.map(x => ({ ...x, values: [x.values[((data?.[0].filterNr ?? 1) as number) - 1]]})));\r\n prevChartData.current = chartData;\r\n }\r\n }, [chartData, data]);\r\n\r\n useEffect(() => {\r\n if (prevFilter.current != filter) {\r\n const newFiltered: [gwm_api.ISample, gwm_api.IValidation, boolean][] = [];\r\n let count = 0;\r\n if (samples) {\r\n for (const sample of samples) {\r\n if ((!filter.value?.length || filter.value?.includes(sample[1].value ?? undefined)) &&\r\n (!filter.state?.length || filter.state?.includes(sample[1].state ?? undefined)) &&\r\n (!filter.reason?.length || filter.reason?.includes(sample[1].reason ?? undefined)) &&\r\n (!filter.interpolation?.length || filter.interpolation?.includes(sample[1].interpolation ?? undefined))) {\r\n\r\n newFiltered.push(sample);\r\n if (sample[2]) count++;\r\n } else {\r\n sample[2] = false;\r\n }\r\n }\r\n }\r\n \r\n setSelected(count);\r\n setFiltered(newFiltered);\r\n\r\n prevFilter.current = filter;\r\n }\r\n }, [samples, filter]);\r\n\r\n useEffect(() => {\r\n if (prevStage.current != stage) {\r\n if (stage == 'editing') {\r\n const items = filtered.filter(([,,s]) => s).map(([,x]) => x);\r\n const available = {\r\n value: sortedUniq(sortBy(items.map(x => x.value ?? undefined))),\r\n state: sortedUniq(sortBy(items.map(x => x.state ?? undefined))),\r\n reason: sortedUniq(sortBy(items.map(x => x.reason ?? undefined))),\r\n interpolation: sortedUniq(sortBy(items.map(x => x.interpolation ?? undefined))),\r\n limit: sortedUniq(sortBy(items.map(x => x.limit ?? undefined))),\r\n };\r\n\r\n setEditScore(available.value.length == 1 ? available.value[0] : undefined);\r\n setEditState(available.state.length == 1 ? available.state[0] : undefined);\r\n setEditReason(available.reason.length == 1 ? available.reason[0] : undefined);\r\n setEditInterpolation(available.interpolation.length == 1 ? available.interpolation[0] : undefined);\r\n setEditLimit(available.limit.length == 1 ? available.limit[0] : undefined);\r\n }\r\n // else if (stage == 'selection') {\r\n // resetFilter();\r\n // }\r\n\r\n prevStage.current = stage;\r\n }\r\n }, [filtered, resetFilter, stage]);\r\n\r\n const onValidationGraphSelectionChanged = useCallback(async (items?: gwm_api.ISample[]): Promise => {\r\n if (!items?.length) {\r\n setSamples(undefined);\r\n return;\r\n }\r\n \r\n onLoading?.(true);\r\n \r\n const [measurepoint] = data;\r\n const dict: Record = \r\n Object.assign({}, ...items.map(s => ({ [Number(s.timestamp)]: [s, undefined] })));\r\n \r\n const response = await GwmApi.getValidationInfo({\r\n project: measurepoint.projectNr,\r\n boring: measurepoint.boringNr as number,\r\n filter: measurepoint.filterNr as number,\r\n timestamps: Object.keys(dict).map(Number)\r\n });\r\n \r\n if (response.data) {\r\n for (const item of response.data.values) {\r\n dict[Number(item.timestamp)][1] = item;\r\n }\r\n }\r\n \r\n const values = Object.values(dict).filter(([,v]) => v)\r\n .map(x => [...x, true] as [gwm_api.ISample, gwm_api.IValidation, boolean]);\r\n \r\n setSamples(values);\r\n onLoading?.(false);\r\n }, [onLoading, data]);\r\n\r\n const runAutoControl = useCallback(async (): Promise => {\r\n const [measurepoint] = data;\r\n await GwmApi.updateAutoControl({\r\n project: measurepoint.projectNr,\r\n boring: measurepoint.boringNr as number,\r\n filter: measurepoint.filterNr as number\r\n });\r\n\r\n if (chartSamplesFull) {\r\n for (const chartItem of chartSamplesFull) {\r\n const value = chartItem.values[0];\r\n value.released = value.valid ? value.raw : null;\r\n }\r\n\r\n setChartSamplesFull([...chartSamplesFull]);\r\n }\r\n\r\n }, [chartSamplesFull, data]);\r\n\r\n const cancelChanges = useCallback(async (): Promise => {\r\n setStage('selection');\r\n }, []);\r\n\r\n const saveChanges = useCallback(async (): Promise => {\r\n if (!filtered.length) return;\r\n\r\n onLoading?.(true);\r\n\r\n const [measurepoint] = data;\r\n const items = filtered.filter(([,,s]) => s).map(([,x]) => x);\r\n\r\n const changeRegistry: Record = {};\r\n for (const item of items) {\r\n item.value = editScore ?? gwm_api.Validation.Score.SCORE_NOT_SPECIFIED;\r\n item.state = editState ?? gwm_api.Validation.State.STATE_NOT_SPECIFIED;\r\n item.reason = editReason ?? gwm_api.Validation.Reason.REASON_NOT_SPECIFIED;\r\n item.limit = editLimit ?? undefined;\r\n item.interpolation = editInterpolation ?? gwm_api.Validation.Interpolation.INTERPOLATION_DISCONTINUOUS;\r\n\r\n changeRegistry[Number(item.timestamp)] = [\r\n item.value == gwm_api.Validation.Score.SCORE_VALID,\r\n item.state == gwm_api.Validation.State.STATE_APPROVED\r\n ];\r\n }\r\n\r\n if (filter.value && !filter.value.includes(editScore)) \r\n filter.value.push(editScore);\r\n if (filter.state && !filter.state.includes(editState)) \r\n filter.state.push(editState);\r\n if (filter.reason && !filter.reason.includes(editReason)) \r\n filter.reason.push(editReason);\r\n if (filter.interpolation && !filter.interpolation.includes(editInterpolation)) \r\n filter.interpolation.push(editInterpolation);\r\n\r\n if (chartSamplesFull) {\r\n for (const chartItem of chartSamplesFull) {\r\n const changeState = changeRegistry[chartItem.time];\r\n if (!changeState) continue;\r\n\r\n const [isValid, isApproved] = changeRegistry[chartItem.time];\r\n if (typeof isValid == 'boolean') {\r\n chartItem.values[0].valid = isValid ? chartItem.values[0].raw : null;\r\n chartItem.values[0].released = isApproved ? chartItem.values[0].raw : null;\r\n }\r\n }\r\n }\r\n\r\n const collection = new gwm_api.ValidationCollection();\r\n collection.values.push(...items);\r\n \r\n const response = await GwmApi.updateValidationInfo({\r\n project: measurepoint.projectNr,\r\n boring: measurepoint.boringNr as number,\r\n filter: measurepoint.filterNr as number,\r\n collection: collection\r\n });\r\n\r\n if (!(response.data ?? response.success)) {\r\n console.error('failed to update validation state for selected measurements.');\r\n }\r\n\r\n setStage('selection');\r\n if (chartSamplesFull) {\r\n setChartSamplesFull([...chartSamplesFull]);\r\n }\r\n\r\n onLoading?.(false);\r\n }, [chartSamplesFull, data, editInterpolation, editLimit, editReason, editScore, editState, filter.interpolation, filter.reason, filter.state, filter.value, filtered, onLoading]);\r\n\r\n return (\r\n
\r\n {stage == 'selection' ? (<>\r\n {chartSamplesFull?.length ? \r\n {\r\n setChartSelection(b);\r\n onValidationGraphSelectionChanged(a);\r\n }} /> \r\n : undefined}\r\n\r\n
\r\n
\r\n
\r\n \r\n {app.translator.translate('Geselecteerd')}: {selected} / {samples?.length ?? 0}\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n {samples?.length ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n [v, getValidationLabel(v), filter.value?.includes(v) ?? false])} onFilter={(f) => {\r\n const newFilter: ValidationEditorFilter = { ...filter };\r\n newFilter.value = f.filter(([,s]) => s).map(([v]) => v);\r\n setFilter(newFilter);\r\n }}>\r\n Validatie\r\n \r\n\r\n [v, getStateLabel(v), filter.state?.includes(v) ?? false])} onFilter={(f) => {\r\n const newFilter: ValidationEditorFilter = { ...filter };\r\n newFilter.state = f.filter(([,s]) => s).map(([v]) => v);\r\n setFilter(newFilter);\r\n }}>\r\n Status kwaliteitscontrole\r\n \r\n\r\n [v, getReasonLabel(v), filter.reason?.includes(v) ?? false])} onFilter={(f) => {\r\n const newFilter: ValidationEditorFilter = { ...filter };\r\n newFilter.reason = f.filter(([,s]) => s).map(([v]) => v);\r\n setFilter(newFilter);\r\n }}>\r\n Censuurreden\r\n \r\n \r\n \r\n\r\n [v, getInterpolationLabel(v), filter.interpolation?.includes(v) ?? false])} onFilter={(f) => {\r\n const newFilter: ValidationEditorFilter = { ...filter };\r\n newFilter.interpolation = f.filter(([,s]) => s).map(([v]) => v);\r\n setFilter(newFilter);\r\n }}>\r\n Interpolatietype\r\n \r\n \r\n \r\n\r\n \r\n {filtered.length <= 1000 \r\n ? filtered.map(([x, v, s], i, arr) => \r\n {\r\n if (v != s) {\r\n arr[i][2] = v;\r\n setSelected(v ? selected + 1 : selected - 1);\r\n }\r\n }} />)\r\n : \r\n \r\n }\r\n \r\n
\r\n {\r\n\r\n if (selected != filtered.length) {\r\n filtered.forEach(x => x[2] = true);\r\n setSelected(filtered.length);\r\n } else {\r\n filtered.forEach(x => x[2] = false);\r\n setSelected(0);\r\n }\r\n \r\n }}>\r\n \r\n \r\n DatumGrondwaterstandCensuurlimiet
{app.translator.translate('Meer dan 1000 metingen in geselecteerd gebied. Selectie te groot om weer te geven. Ga door met de huidige selectie, selecteer een kleiner gebied, of stel een filter in op de resultaten.')}
\r\n ) : undefined}\r\n
\r\n ) : (\r\n
\r\n
\r\n \r\n \r\n \r\n {getValidationLabel(editScore)}\r\n \r\n\r\n \r\n {[\r\n gwm_api.Validation.Score.SCORE_NOT_SPECIFIED,\r\n gwm_api.Validation.Score.SCORE_VALID, \r\n gwm_api.Validation.Score.SCORE_INVALID, \r\n gwm_api.Validation.Score.SCORE_REMOVED\r\n ].map(v => \r\n setEditScore(v)}>\r\n {getValidationLabel(v)}\r\n )}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {getStateLabel(editState)}\r\n \r\n\r\n \r\n {[\r\n gwm_api.Validation.State.STATE_NOT_SPECIFIED,\r\n gwm_api.Validation.State.STATE_APPROVED,\r\n gwm_api.Validation.State.STATE_NOT_RATED,\r\n gwm_api.Validation.State.STATE_REJECTED,\r\n gwm_api.Validation.State.STATE_UNDECIDED\r\n ].map(v => \r\n setEditState(v)}>\r\n {getStateLabel(v)}\r\n )}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {getReasonLabel(editReason)}\r\n \r\n\r\n \r\n {[\r\n gwm_api.Validation.Reason.REASON_NOT_SPECIFIED,\r\n gwm_api.Validation.Reason.REASON_GREATER_THAN_LIMIT,\r\n gwm_api.Validation.Reason.REASON_LESS_THEN_LIMIT\r\n ].map(v => \r\n setEditReason(v)}>\r\n {getReasonLabel(v)}\r\n )}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {getInterpolationLabel(editInterpolation)}\r\n \r\n\r\n \r\n {[\r\n gwm_api.Validation.Interpolation.INTERPOLATION_NOT_SPECIFIED,\r\n gwm_api.Validation.Interpolation.INTERPOLATION_DISCONTINUOUS\r\n ].map(v => \r\n setEditInterpolation(v)}>\r\n {getInterpolationLabel(v)}\r\n )}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n {\r\n const value = parseFloat(e.target.value);\r\n if (!isNaN(value)) setEditLimit(value);\r\n else setEditLimit(undefined);\r\n }} />\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nfunction FilterCol(props: PropsWithChildren<{ values: [T, string, boolean][], onFilter?: (states: [T, boolean][]) => void; }>): JSX.Element {\r\n const { values, onFilter, children } = props;\r\n\r\n const [enabled, setEnabled] = useState(values.map(([,,x]) => x));\r\n const [isShown, setIsShown] = useState(false);\r\n\r\n const prevEnabled = useRef(enabled);\r\n const prevValues = useRef<[T, string, boolean][]>(values);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevEnabled.current, enabled)) {\r\n onFilter?.(values.map(([k],i) => [k, enabled[i]]));\r\n prevEnabled.current = enabled;\r\n }\r\n\r\n if (!isEqual(prevValues.current, values) && !isEqual(values.map(([,,x]) => x), enabled)) {\r\n prevEnabled.current = values.map(([,,x]) => x);\r\n setEnabled(prevEnabled.current);\r\n prevValues.current = values;\r\n }\r\n }, [enabled, values, onFilter]);\r\n\r\n return (\r\n \r\n {\r\n if (metadata.source != 'select') {\r\n setIsShown(isOpen);\r\n }\r\n }}>\r\n \r\n {children} v) ? faFilter : faDisabledFilter} className=\"ml-2\" />\r\n \r\n\r\n \r\n {props.values.map(([k, v], i) => \r\n {\r\n const state = [...enabled];\r\n state[i] = !state[i];\r\n setEnabled(state);\r\n }}>\r\n \r\n {v}\r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction ValidationRow(props: { sample: gwm_api.ISample; validation?: gwm_api.IValidation; enabled: boolean; onSelect?: (state: boolean) => void; }) {\r\n const { sample, validation, enabled, onSelect } = props;\r\n\r\n const [selected, setSelected] = useState(enabled);\r\n const prevSelected = useRef(selected);\r\n\r\n useEffect(() => {\r\n if (selected != prevSelected.current) {\r\n onSelect?.(selected);\r\n prevSelected.current = selected;\r\n } else if (enabled != selected) {\r\n prevSelected.current = enabled;\r\n setSelected(enabled);\r\n }\r\n }, [enabled, onSelect, selected]);\r\n\r\n const value = getValidationLabel(validation?.value);\r\n const state = getStateLabel(validation?.state);\r\n const reason = getReasonLabel(validation?.reason);\r\n const interpolation = getInterpolationLabel(validation?.interpolation);\r\n\r\n return (\r\n setSelected(!selected)}>\r\n \r\n \r\n \r\n \r\n \r\n {moment(sample.timestamp ?? 0).format('DD MMM YYYY HH:mm')}\r\n \r\n \r\n \r\n {sample.value?.toFixed(1) ?? '-'}\r\n {value}\r\n {state}\r\n {reason}\r\n {validation?.limit ?? '-'}\r\n {interpolation ?? '-'}\r\n \r\n );\r\n}\r\n\r\nfunction ValidationIcon(props: { value?: gwm_api.Validation.Score | null }): JSX.Element {\r\n const { value } = props;\r\n\r\n switch (value) {\r\n case gwm_api.Validation.Score.SCORE_VALID:\r\n return ;\r\n case gwm_api.Validation.Score.SCORE_REMOVED:\r\n return ;\r\n case gwm_api.Validation.Score.SCORE_INVALID:\r\n return ;\r\n }\r\n\r\n return ;\r\n}\r\n\r\nfunction getValidationLabel(value?: gwm_api.Validation.Score | null): string {\r\n switch (value) {\r\n case gwm_api.Validation.Score.SCORE_VALID:\r\n return app.translator.translate('Valide', { context: 'GWM' });\r\n case gwm_api.Validation.Score.SCORE_REMOVED:\r\n return app.translator.translate('Verwijderd', { context: 'GWM' });\r\n case gwm_api.Validation.Score.SCORE_INVALID:\r\n return app.translator.translate('Invalide', { context: 'GWM' });\r\n }\r\n\r\n return app.translator.translate('-', { context: 'GWM' });\r\n}\r\n\r\nfunction getStateLabel(value?: gwm_api.Validation.State | null): string {\r\n switch (value) {\r\n case gwm_api.Validation.State.STATE_APPROVED:\r\n return app.translator.translate('Goedgekeurd', { context: 'GWM' });\r\n case gwm_api.Validation.State.STATE_NOT_RATED:\r\n return app.translator.translate('Nog niet beoordeeld', { context: 'GWM' });\r\n case gwm_api.Validation.State.STATE_REJECTED:\r\n return app.translator.translate('Afgekeurd', { context: 'GWM' });\r\n case gwm_api.Validation.State.STATE_UNDECIDED:\r\n return app.translator.translate('Onbeslist', { context: 'GWM' });\r\n }\r\n\r\n return app.translator.translate('-', { context: 'GWM' });\r\n}\r\n\r\nfunction getReasonLabel(value?: gwm_api.Validation.Reason | null): string {\r\n switch (value) {\r\n case gwm_api.Validation.Reason.REASON_GREATER_THAN_LIMIT:\r\n return app.translator.translate('Groter dan limietwaarde', { context: 'GWM' });\r\n case gwm_api.Validation.Reason.REASON_LESS_THEN_LIMIT:\r\n return app.translator.translate('Kleiner dan limietwaarde', { context: 'GWM' });\r\n }\r\n\r\n return app.translator.translate('-', { context: 'GWM' });\r\n}\r\n\r\nfunction getInterpolationLabel(value?: gwm_api.Validation.Interpolation | null): string {\r\n switch (value) {\r\n case gwm_api.Validation.Interpolation.INTERPOLATION_DISCONTINUOUS:\r\n return app.translator.translate('Discontinu', { context: 'GWM' });\r\n }\r\n\r\n return app.translator.translate('-', { context: 'GWM' });\r\n}\r\n\r\nexport default ValidationEditor;","import React, { Component, createRef, RefObject } from 'react';\r\nimport { range, sortBy, sortedUniqBy } from 'lodash';\r\nimport moment from 'moment';\r\nimport { ChartItem, LegendValue } from '../models/ChartValue';\r\nimport { ComposedChart, Line, ResponsiveContainer, CartesianGrid, XAxis, YAxis, ReferenceArea, Legend, Label, Tooltip, TooltipProps } from 'recharts';\r\nimport Meetpunt from 'models/Meetpunt';\r\nimport LegendWrapper from './LegendWrapper';\r\nimport { DateFilter } from './DateFilter';\r\nimport { wrap, releaseProxy, Remote } from 'comlink';\r\nimport GraphWorker from 'workers/GraphWorker';\r\nimport { gwm_api } from 'protobuf';\r\nimport { COLORS } from '../utils/constants';\r\n\r\ninterface ValidationGraphProps {\r\n unit: 'mv' | 'nap';\r\n info: [Meetpunt, gwm_api.SampleCollection];\r\n data: ChartItem[];\r\n selection?: ChartItem[]\r\n\r\n onSelection?: (samples?: gwm_api.ISample[], selection?: ChartItem[]) => void;\r\n}\r\n\r\ninterface ValidationGraphState {\r\n data?: ChartItem[];\r\n selection?: ChartItem[];\r\n selectionDetailed?: gwm_api.ISample[];\r\n limits: [number, number, number, number];\r\n\r\n zoomMode: boolean;\r\n\r\n refAreaLeft?: number;\r\n refAreaRight?: number;\r\n refAreaTop?: number;\r\n refAreaBottom?: number;\r\n\r\n visibility: Record;\r\n\r\n zoomed: boolean;\r\n}\r\n\r\nexport class ValidationGraph extends Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n visibility: {},\r\n zoomed: false,\r\n limits: [0, 0, 0, 0],\r\n selection: props.selection,\r\n zoomMode: false\r\n };\r\n\r\n this.tooltipRef = createRef();\r\n this.chartRef = createRef();\r\n this.shiftPressed = false;\r\n\r\n this.zoom = this.zoom.bind(this);\r\n this.reset = this.reset.bind(this);\r\n this.onDateRangeChanged = this.onDateRangeChanged.bind(this);\r\n this.onDateRangeReset = this.onDateRangeReset.bind(this);\r\n this.onGraphZoomAction = this.onGraphZoomAction.bind(this);\r\n this.onGraphSelectAction = this.onGraphSelectAction.bind(this);\r\n }\r\n\r\n readonly tooltipRef: RefObject;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n readonly chartRef: RefObject;\r\n\r\n private zoomIntervalHandle?: number;\r\n private refAreaRight?: number;\r\n private refAreaBottom?: number;\r\n private worker?: Worker;\r\n private adapter?: Remote;\r\n\r\n private shiftPressed: boolean;\r\n\r\n componentDidMount(): void {\r\n this.worker = new Worker(`${location.pathname}workers/GraphWorker.js`, { type: 'module' });\r\n this.adapter = wrap(this.worker);\r\n\r\n this.adapter.setData(this.props.data).then(() => {\r\n this.setState({\r\n visibility: this.getDefaultVisibility()\r\n }, () => this.reset());\r\n });\r\n\r\n window.onkeydown = (e) => this.shiftPressed = e.ctrlKey || e.shiftKey;\r\n window.onkeyup = (e) => this.shiftPressed = e.ctrlKey || e.shiftKey;\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly): void {\r\n if (this.state.refAreaLeft != prevState.refAreaLeft || this.state.refAreaTop != prevState.refAreaTop) {\r\n if (this.state.refAreaLeft) {\r\n this.zoomIntervalHandle = setInterval(() => {\r\n if (this.state.refAreaRight != this.refAreaRight || this.state.refAreaBottom != this.refAreaBottom) {\r\n this.setState({ \r\n refAreaRight: this.refAreaRight,\r\n refAreaBottom: this.refAreaBottom \r\n });\r\n }\r\n }, 100);\r\n\r\n } else {\r\n clearInterval(this.zoomIntervalHandle);\r\n this.zoomIntervalHandle = undefined;\r\n this.refAreaRight = undefined;\r\n this.refAreaBottom = undefined;\r\n }\r\n }\r\n \r\n if (this.props.data != prevProps.data) {\r\n if (this.state.selection) {\r\n const timestamps = this.state.selection.map(x => x.time);\r\n this.setState({ selection: this.props.data.filter(x => timestamps.includes(x.time))});\r\n }\r\n this.setState({ data: [] }, () => {\r\n this.adapter?.setData(this.props.data).then(() => {\r\n this.setState({\r\n visibility: this.getDefaultVisibility()\r\n }, () => this.reset());\r\n });\r\n });\r\n }\r\n \r\n if (this.state.selectionDetailed != prevState.selectionDetailed) {\r\n this.props.onSelection?.(this.state.selectionDetailed, this.state.selection);\r\n }\r\n }\r\n\r\n componentWillUnmount(): void {\r\n if (this.zoomIntervalHandle != undefined) {\r\n clearInterval(this.zoomIntervalHandle);\r\n this.zoomIntervalHandle = undefined;\r\n }\r\n\r\n window.onkeydown = null;\r\n window.onkeyup = null;\r\n\r\n this.adapter?.[releaseProxy]?.();\r\n this.worker?.terminate();\r\n }\r\n\r\n getDefaultVisibility(): Record {\r\n return Object.assign({}, ...[\r\n ...range(0, this.props.data[0].values.length + 0)\r\n .map(id => `values[${id}]`)\r\n .flatMap(id => ['valid', 'released', 'raw', 'manual'].map(v => `${id}.${v}`))\r\n ].map(v => ({ [v]: v.endsWith('raw') || v.endsWith('released') || v.endsWith('valid') })));\r\n }\r\n\r\n async zoom(min: number, max: number): Promise {\r\n if (!this.adapter) return;\r\n\r\n const keys = this.props.data.map(v => v.time);\r\n let startIndex = keys.indexOf(min);\r\n if (startIndex == -1) {\r\n startIndex = keys.indexOf(sortBy(keys, v => Math.abs(v - min))[0]);\r\n }\r\n let endIndex = keys.indexOf(max);\r\n if (endIndex == -1) {\r\n endIndex = keys.indexOf(sortBy(keys, v => Math.abs(v - max))[0]);\r\n }\r\n\r\n // Graph can only be drawn for 2 or more data points \r\n if (this.props.data.slice(startIndex, endIndex).length > 1) {\r\n await this.adapter.setSlice([startIndex, endIndex]);\r\n \r\n const data = await this.adapter.sampleData();\r\n const limits = await this.adapter.getLimits(this.state.visibility);\r\n\r\n this.setState({\r\n data: data,\r\n limits: limits,\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n zoomMode: false,\r\n zoomed: true\r\n });\r\n }\r\n }\r\n\r\n async reset(): Promise {\r\n if (!this.adapter) return;\r\n\r\n await this.adapter.setSlice([undefined, undefined]);\r\n\r\n const data = await this.adapter.sampleData();\r\n const limits = await this.adapter.getLimits(this.state.visibility);\r\n\r\n this.setState({\r\n data: data,\r\n limits: limits,\r\n zoomed: false\r\n });\r\n }\r\n\r\n select(xmin: number, ymin: number, xmax: number, ymax: number): void {\r\n const selection = this.state.data\r\n ?.filter(x => x.time >= xmin && x.time <= xmax && \r\n x.values.some(v => typeof v.raw == 'number' && v.raw >= ymin && v.raw <= ymax));\r\n if (selection?.length) {\r\n const selectionDetailed = this.props.info[1].values\r\n .filter(x => {\r\n const value = this.props.unit == 'mv' && x.value ? this.props.info[0].napLevel - x.value : x.value;\r\n return x.timestamp && !x.manual && value && x.timestamp >= xmin && x.timestamp <= xmax && value >= ymin && value <= ymax;\r\n });\r\n \r\n this.setState({\r\n selection: selection,\r\n selectionDetailed: selectionDetailed\r\n });\r\n } else {\r\n this.setState({\r\n selection: undefined,\r\n selectionDetailed: undefined\r\n });\r\n }\r\n }\r\n\r\n getTickInfo(): { format: string; ticks: number[]; } {\r\n let format = 'DD MMM YYYY HH:mm';\r\n const ticks: number[] = [];\r\n\r\n if (this.state.limits) {\r\n //const start = moment(this.state.limits[0]);\r\n const range = (this.state.limits[2] - this.state.limits[0]);\r\n if (range / 31536000000 > 3) { // year\r\n format = 'YYYY';\r\n } else if (range / 2592000000 > 6) { // month\r\n format = 'MMM YYYY';\r\n } else if (range / 86400000 > 14) { // day\r\n format = 'DD MMM';\r\n } else if (range / 86400000 > 1) { // day\r\n format = 'ddd HH:00';\r\n } else {\r\n format = 'HH:mm';\r\n }\r\n\r\n const count = 8;\r\n const interval = Math.round(range / (count - 1));\r\n\r\n for (let i = 0; i < count; i++) {\r\n ticks.push(this.state.limits[0] + interval * i);\r\n }\r\n\r\n const uniqTicks = sortedUniqBy(ticks, v => moment(v).format(format));\r\n if (uniqTicks.length !== ticks.length) {\r\n const count = uniqTicks.length;\r\n const interval = Math.round(range / (count - 1));\r\n\r\n ticks.splice(0, ticks.length);\r\n for (let i = 0; i < count; i++) {\r\n ticks.push(this.state.limits[0] + interval * i);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n format: format,\r\n ticks: ticks //sortedUniqBy(ticks, v => moment(v).format(format))\r\n };\r\n }\r\n\r\n async onToggleVisibility(...values: [key: string, state?: boolean][]): Promise {\r\n const visibility = { ...this.state.visibility };\r\n for (const [key, state] of values) {\r\n visibility[key] = state != undefined ? state : visibility[key] != undefined ? !visibility[key] : false;\r\n }\r\n this.setState({ visibility: visibility }, async () => {\r\n if (this.state.data && this.adapter) {\r\n const limits = await this.adapter.getLimits(this.state.visibility);\r\n this.setState({ limits: limits });\r\n }\r\n });\r\n }\r\n\r\n onGraphZoomAction(): void {\r\n let { refAreaLeft, refAreaRight } = this.state;\r\n\r\n if (refAreaLeft === refAreaRight || refAreaLeft === undefined || refAreaRight === undefined) {\r\n this.setState(() => ({\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n }));\r\n return;\r\n }\r\n\r\n // xAxis domain\r\n if (refAreaLeft > refAreaRight) [refAreaLeft, refAreaRight] = [refAreaRight, refAreaLeft];\r\n\r\n this.zoom(refAreaLeft, refAreaRight);\r\n }\r\n\r\n onGraphSelectAction(): void {\r\n\r\n let { refAreaLeft, refAreaRight, refAreaTop, refAreaBottom } = this.state;\r\n\r\n if (refAreaLeft === refAreaRight || refAreaBottom === refAreaTop || \r\n refAreaLeft === undefined || refAreaRight === undefined || \r\n refAreaBottom === undefined || refAreaTop === undefined) {\r\n\r\n this.setState(() => ({\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n refAreaBottom: undefined,\r\n refAreaTop: undefined,\r\n }));\r\n return;\r\n }\r\n\r\n // xAxis domain\r\n if (refAreaLeft > refAreaRight) [refAreaLeft, refAreaRight] = [refAreaRight, refAreaLeft];\r\n if (refAreaBottom > refAreaTop) [refAreaTop, refAreaBottom] = [refAreaBottom, refAreaTop];\r\n\r\n this.select(refAreaLeft, refAreaBottom, refAreaRight, refAreaTop);\r\n\r\n this.setState({\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n refAreaTop: undefined,\r\n refAreaBottom: undefined\r\n });\r\n }\r\n\r\n onDateRangeChanged(min: number, max: number): void {\r\n this.zoom(min, max);\r\n }\r\n\r\n onDateRangeReset(): void {\r\n this.reset();\r\n }\r\n\r\n getKeys(): { key: string; value: LegendValue; color: string; lineColor?: string; }[] {\r\n const sample = this.props.data[0];\r\n const keys = sample.values\r\n .flatMap((v, i) => ['valid', 'released', 'raw', 'manual'].map(k => ({\r\n key: `values[${i}].${k}`,\r\n value: {\r\n label: app.translator.translate(k, {\r\n context: 'GWM',\r\n format: 'lc'\r\n }),\r\n groupId: v.label\r\n } as LegendValue,\r\n color: k == 'manual' ? '#f60' : k == 'raw' ? '#a1a1a1' : COLORS[i % COLORS.length],\r\n lineColor: k == 'released' ? '#f9c5fc' : undefined\r\n })));\r\n return keys;\r\n }\r\n\r\n getLegendNode(keys?: { key: string; value: LegendValue; color: string; lineColor?: string; }[]): React.ReactElement {\r\n const payload = (keys ?? this.getKeys()).map(k => ({\r\n id: k.key,\r\n value: k.value,\r\n color: k.lineColor ?? k.color\r\n }));\r\n return this.onToggleVisibility(...v.map(x => [x] as [string]))} />}\r\n />;\r\n }\r\n\r\n getDomains(): [domainX: [number, number], domainY: [number, number]] {\r\n\r\n const dataPadding = ((this.state.limits?.[3] ?? 0) - (this.state.limits?.[1] ?? 0)) * .1;\r\n const dataPaddingX = ((this.state.limits?.[2] ?? 0) - (this.state.limits?.[0] ?? 0)) * .1;\r\n\r\n const yAxisDomain: [number, number] = [\r\n this.state.limits[1] - dataPadding,\r\n this.state.limits[3] + dataPadding\r\n ];\r\n const xAxisDomain: [number, number] = [\r\n this.state.limits[0] - dataPaddingX,\r\n this.state.limits[2] + dataPaddingX\r\n ];\r\n\r\n return [xAxisDomain, yAxisDomain];\r\n }\r\n\r\n render(): JSX.Element | null {\r\n const tickInfo = this.getTickInfo();\r\n\r\n const keys = this.getKeys();\r\n\r\n const [xAxisDomain, yAxisDomain] = this.getDomains();\r\n\r\n const visible = keys.filter(k => this.state.visibility[k.key] && this.state.visibility[k.value.groupId] != false);\r\n\r\n const legendNode = this.getLegendNode(keys);\r\n\r\n return (<>\r\n
\r\n
\r\n \r\n\r\n
\r\n {this.state.data ? (\r\n <>\r\n \r\n {\r\n if (!e.activeLabel || typeof e.chartX != 'number' || typeof e.chartY != 'number') return;\r\n \r\n const chartState = this.chartRef.current?.state;\r\n const height = Number(chartState?.prevHeight ?? 0) - (Number(chartState?.offset.top ?? 0) + Number(chartState?.offset.bottom ?? 0));\r\n const width = Number(chartState?.prevWidth ?? 0) - (Number(chartState?.offset.left ?? 0) + Number(chartState?.offset.right ?? 0));\r\n \r\n const reversed = this.props.unit == 'nap';\r\n const xOffset = (e.chartX - Number(chartState?.offset.left ?? 0)) * ((xAxisDomain[1] - xAxisDomain[0]) / width);\r\n const yOffset = (e.chartY - Number(chartState?.offset.top ?? 0)) * ((yAxisDomain[1] - yAxisDomain[0]) / height);\r\n\r\n const activeLabelX = Number(xAxisDomain[0] + xOffset);\r\n const activeLabelY = Number(!reversed ? yAxisDomain[0] + yOffset : yAxisDomain[1] - yOffset);\r\n\r\n if (activeLabelX && activeLabelY) {\r\n if (this.shiftPressed) {\r\n this.setState({\r\n refAreaLeft: activeLabelX,\r\n refAreaRight: activeLabelX,\r\n zoomMode: true\r\n });\r\n } else {\r\n this.setState({\r\n refAreaLeft: activeLabelX,\r\n refAreaRight: activeLabelX,\r\n refAreaTop: activeLabelY,\r\n refAreaBottom: activeLabelY,\r\n });\r\n }\r\n }\r\n }}\r\n onMouseMove={this.state.refAreaLeft ? (e) => {\r\n if (typeof e.chartX != 'number' || typeof e.chartY != 'number') return;\r\n \r\n const chartState = this.chartRef.current?.state;\r\n const height = Number(chartState?.prevHeight ?? 0) - (Number(chartState?.offset.top ?? 0) + Number(chartState?.offset.bottom ?? 0));\r\n const width = Number(chartState?.prevWidth ?? 0) - (Number(chartState?.offset.left ?? 0) + Number(chartState?.offset.right ?? 0));\r\n \r\n const reversed = this.props.unit == 'nap';\r\n const xOffset = (e.chartX - Number(chartState?.offset.left ?? 0)) * ((xAxisDomain[1] - xAxisDomain[0]) / width);\r\n const yOffset = (e.chartY - Number(chartState?.offset.top ?? 0)) * ((yAxisDomain[1] - yAxisDomain[0]) / height);\r\n\r\n const activeLabelX = Number(xAxisDomain[0] + xOffset);\r\n const activeLabelY = Number(!reversed ? yAxisDomain[0] + yOffset : yAxisDomain[1] - yOffset);\r\n \r\n if (activeLabelX && activeLabelY) {\r\n this.refAreaRight = activeLabelX;\r\n this.refAreaBottom = !this.state.zoomMode ? activeLabelY : undefined;\r\n } else {\r\n this.setState({\r\n refAreaLeft: undefined,\r\n refAreaRight: undefined,\r\n refAreaTop: undefined,\r\n refAreaBottom: undefined,\r\n zoomMode: false\r\n });\r\n }\r\n } : undefined}\r\n onMouseUp={() => {\r\n if (this.state.zoomMode) {\r\n if (this.state.refAreaLeft) \r\n this.onGraphZoomAction();\r\n } else {\r\n if (this.state.refAreaLeft && this.state.refAreaTop) \r\n this.onGraphSelectAction();\r\n }\r\n }}\r\n >\r\n\r\n \r\n\r\n moment(v).format(tickInfo.format)}\r\n interval={0} allowDecimals={false}\r\n >\r\n \r\n\r\n \r\n \r\n\r\n {/* ({ [k.key]: `${k.value.groupId}: ${k.value.label}` })))}\r\n />} /> */}\r\n\r\n ) => {\r\n const point = p.payload?.[0]?.payload as ChartItem | undefined;\r\n return point ? (\r\n {point.values[0]?.raw?.toFixed(1) ?? '-'} ({moment(point.time).format('DD MMM YYYY HH:mm')})\r\n ) : ;\r\n }} />\r\n\r\n {visible.filter(k => !k.key.endsWith('manual')).reverse().map(k => (\r\n \r\n ))}\r\n\r\n {visible.filter(k => k.key.endsWith('manual')).reverse().map(k => (\r\n \r\n ))}\r\n\r\n {this.state.selection ? (\r\n \r\n ) : undefined}\r\n\r\n {this.state.refAreaLeft ? (\r\n \r\n ) : undefined}\r\n \r\n \r\n\r\n
\r\n {legendNode}\r\n \r\n
\r\n \r\n {app.translator.translate('tip: houdt \\'shift\\' ingedrukt en sleep over de grafiek om in te zoomen.')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n ) : undefined}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default ValidationGraph;","import { WidgetProps, Widget, PanelLoader, ApiResponse } from '@tauw/viewer-base';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChartArea, faCloudRain, faDotCircle, faFileCsv, faFileImage, faFileExcel, faFileExport, faLink, faPlus, faFilePdf, faCommentLines, faToolbox, faArrowLeftToLine } from '@fortawesome/pro-light-svg-icons';\r\nimport './index.scss';\r\nimport { Feature } from 'ol';\r\nimport { get as getProjection, transform } from 'ol/proj';\r\nimport { isEqual, mean, sortBy, sortedUniq } from 'lodash';\r\nimport { GwmApi, GwmPublicApi } from 'general/api';\r\nimport Meetpunt from 'models/Meetpunt';\r\nimport Graph from './components/Graph';\r\nimport { ChartItem, ChartValue } from './models/ChartValue';\r\nimport { gwm_api } from 'protobuf';\r\nimport moment from 'moment';\r\nimport { WeatherItem } from './models/WeatherItem';\r\nimport { getCenter } from 'ol/extent';\r\nimport { Coordinate } from 'ol/coordinate';\r\nimport WeatherStation from 'models/WeatherStation';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport Assessment, { AssessmentTickInfo } from 'models/Assessment';\r\nimport AssessmentEditor from './components/AssessmentEditor';\r\nimport GraphAnnotation from 'models/GraphAnnotation';\r\nimport AnnotationEditor from './components/AnnotationEditor';\r\nimport { createRef, RefObject } from 'react';\r\nimport { renderToStaticMarkup } from 'react-dom/server';\r\nimport { svgToPDF, svgToPNG } from 'general/svgConverter';\r\nimport ValidationEditor from './components/ValidationEditor';\r\n\r\nexport type RefUnit = 'mv' | 'nap';\r\n\r\ninterface GroundwaterGraphsProps extends WidgetProps {\r\n lite: boolean;\r\n showComments: boolean;\r\n showGrouping: boolean;\r\n showRaw: boolean;\r\n showReleased: boolean;\r\n showExport: boolean;\r\n}\r\n\r\ninterface GroundwaterGraphsState {\r\n selection: Feature[];\r\n active?: Feature;\r\n activeSets?: [Meetpunt, gwm_api.SampleCollection][];\r\n sets?: [Meetpunt, gwm_api.SampleCollection][];\r\n activeData?: ChartItem[];\r\n validationSet?: [Meetpunt, gwm_api.SampleCollection];\r\n stations?: [WeatherStation, number][];\r\n activeStation?: WeatherStation;\r\n activeAssessment?: Assessment;\r\n activeGraphAnnotation?: GraphAnnotation;\r\n assessmentDateRange?: [Date, Date];\r\n weather?: WeatherItem[];\r\n unit: RefUnit;\r\n displayMode: 'graph' | 'assessment' | 'annotation' | 'validation';\r\n graphMode: 'individual' | 'combined';\r\n loading: boolean;\r\n hasFullAccess: boolean;\r\n}\r\n\r\nclass GroundwaterGraphs extends Widget {\r\n static defaultProps = {\r\n title: (): string => app.translator.translate('Tauw Grondwater Grafiek'),\r\n //info: (): string => app.translator.translate('Lorem ipsum dolor sit amet, consectetur adipiscing elit.'),\r\n actionLabel: (): string => app.translator.translate('Tauw Grondwater Grafiek'),\r\n lite: false,\r\n showRaw: true,\r\n showReleased: true,\r\n showComments: true,\r\n showGrouping: true,\r\n showExport: true,\r\n icon: faChartArea\r\n };\r\n\r\n constructor(props: GroundwaterGraphsProps) {\r\n super(props);\r\n\r\n this.state = {\r\n selection: [],\r\n unit: 'nap',\r\n graphMode: 'individual',\r\n loading: false,\r\n displayMode: 'graph',\r\n hasFullAccess: false\r\n };\r\n\r\n this.chartRef = createRef();\r\n this.graphRef = createRef();\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onGraphEditAssessmentClicked = this.onGraphEditAssessmentClicked.bind(this);\r\n this.onGraphEditAnnotationClicked = this.onGraphEditAnnotationClicked.bind(this);\r\n this.return = this.return.bind(this);\r\n this.updateAssessment = this.updateAssessment.bind(this);\r\n this.createAssessment = this.createAssessment.bind(this);\r\n this.createGraphAnnotation = this.createGraphAnnotation.bind(this);\r\n this.updateGraphAnnotation = this.updateGraphAnnotation.bind(this);\r\n this.deleteGraphAnnotation = this.deleteGraphAnnotation.bind(this);\r\n this.exportGraph = this.exportGraph.bind(this);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n readonly chartRef: RefObject;\r\n readonly graphRef: RefObject;\r\n\r\n get api() { return this.props.lite ? GwmPublicApi : GwmApi; }\r\n\r\n componentDidMount(): void {\r\n super.componentDidMount?.();\r\n\r\n if (!this.props.lite) {\r\n GwmApi.hasFullAccess().then((result) => {\r\n if (result.data) {\r\n this.setState({\r\n hasFullAccess: result.data\r\n });\r\n }\r\n });\r\n }\r\n\r\n setTimeout(() => {\r\n if (!this.state.active && !this.state.selection.length && app.selection.length) {\r\n this.setState({\r\n selection: sortBy([...app.selection].filter(f => f.getProperties()['BORINGNR']), f => f.getProperties()['BORINGNR'])\r\n });\r\n }\r\n }, 500);\r\n\r\n app.onSelectionChanged = this.onSelectionChanged;\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly): void {\r\n if (!isEqual(prevState.selection, this.state.selection)) {\r\n if (this.state.selection.length > 0) {\r\n const active = this.state.active && this.state.selection.includes(this.state.active)\r\n ? this.state.active : this.state.selection[0];\r\n\r\n if (this.state.graphMode !== 'individual' || !isEqual(prevState.active, active)) {\r\n this.setState({\r\n active: active,\r\n sets: undefined,\r\n activeData: undefined,\r\n graphMode: this.state.selection.length == 1 && this.state.graphMode == 'combined' ? 'individual' : this.state.graphMode\r\n }, this.state.graphMode !== 'individual' ? () => {\r\n this.initialize();\r\n } : undefined);\r\n }\r\n\r\n this.resize?.([860, 600]);\r\n this.maximize?.();\r\n }\r\n } \r\n \r\n if (!isEqual(prevState.active, this.state.active) || prevState.graphMode !== this.state.graphMode || \r\n (this.state.displayMode != prevState.displayMode && prevState.displayMode == 'validation')) {\r\n\r\n this.initialize();\r\n }\r\n\r\n if (prevState.sets != this.state.sets || prevState.unit != this.state.unit) {\r\n this.refreshActiveData();\r\n }\r\n\r\n if (this.state.activeStation?.id != prevState.activeStation?.id) {\r\n this.refreshWeatherData();\r\n }\r\n }\r\n\r\n componentWillUnmount(): void {\r\n super.componentWillUnmount?.();\r\n\r\n app.unregister(this.onSelectionChanged);\r\n }\r\n\r\n onSelectionChanged(features?: Feature[]): void {\r\n this.setState({\r\n selection: sortBy([...features ?? []].filter(f => f.getProperties()['BORINGNR']), f => f.getProperties()['BORINGNR'])\r\n });\r\n }\r\n\r\n onAction(feature: Feature): void {\r\n this.setState({\r\n selection: sortBy([...app.selection].filter(f => f.getProperties()['BORINGNR']), f => f.getProperties()['BORINGNR']),\r\n active: feature\r\n });\r\n }\r\n\r\n async initialize(): Promise {\r\n if (!this.state.active || !this.state.selection.length) return;\r\n\r\n const dataSets: [Meetpunt, gwm_api.SampleCollection][] = [...(this.state.sets ?? [])];\r\n const features = this.state.graphMode === 'combined' ?\r\n [...this.state.selection] : [this.state.active];\r\n\r\n const siteid = features[0]?.getProperties()['SITEID'] as number | undefined;\r\n if (!siteid) return;\r\n\r\n const measurepoints = features.flatMap(feature => {\r\n const boringnr = feature.getProperties()['BORINGNR'] as number | string | undefined;\r\n return boringnr ? [boringnr] : [];\r\n }).filter(x => dataSets.every(([m]) => m.boringNr != x));\r\n \r\n this.setState({ loading: true });\r\n\r\n let response: ApiResponse | undefined;\r\n if (measurepoints.length) {\r\n response = await (this.props.lite ? GwmPublicApi.getInfo({\r\n siteid: siteid,\r\n boringnrs: measurepoints as string[]\r\n }) : GwmApi.getInfo({\r\n siteid: siteid,\r\n boringnrs: measurepoints as number[]\r\n }));\r\n }\r\n\r\n let stations: [WeatherStation, number][] | undefined;\r\n if (response?.data?.length) {\r\n const dataResponses = await Promise.all(response.data.map(async (v) => {\r\n const r = await (this.props.lite ? GwmPublicApi.getData({\r\n siteid: v.siteId,\r\n piezometer: v.filterNr as string\r\n }) : GwmApi.getData({\r\n siteid: v.siteId,\r\n boringnr: v.boringNr as number,\r\n filternr: v.filterNr as number\r\n }));\r\n if (!r.data) return;\r\n\r\n // manual should come first in list\r\n r.data.values = sortBy(r.data.values, x => [x.timestamp, x.manual ? 0 : 1]);\r\n this.addNullValues(r.data);\r\n\r\n return [v, r.data] as [Meetpunt, gwm_api.SampleCollection];\r\n }));\r\n\r\n dataSets.push(...dataResponses.filter(v => v) as [Meetpunt, gwm_api.SampleCollection][]);\r\n\r\n const dates = dataSets.flatMap(([m]) => [moment(m.statistics.startDate), moment(m.statistics.endDate)])\r\n .filter(v => v.isValid());\r\n const dateRange = [moment.min(dates), moment.max(dates)];\r\n\r\n const stationResponse = await (this.props.lite ? GwmPublicApi : GwmApi).getWeatherStations({\r\n start: dateRange[0],\r\n end: dateRange[1],\r\n site: app.info?.SiteId\r\n });\r\n\r\n if (stationResponse.data) {\r\n const epsg4326 = getProjection('EPSG:4326');\r\n const destProj = app.view?.getProjection() ?? getProjection('EPSG:28992');\r\n const center = getCenter(this.state.active.getGeometry()?.getExtent() ?? [0, 0, 0, 0]);\r\n\r\n stations = stationResponse.data.map((v) => {\r\n const p: Coordinate = transform([v.x, v.y], epsg4326, destProj);\r\n const distance = Math.sqrt(Math.pow(center[0] - p[0], 2) + Math.pow(center[1] - p[1], 2));\r\n return [v, distance];\r\n });\r\n\r\n stations = sortBy(stations, ([, v]) => v);\r\n }\r\n }\r\n\r\n const boringnr = this.state.active?.getProperties()['BORINGNR'] as number | string | undefined;\r\n const activeSets = boringnr ? dataSets?.filter(([m]) => m.boringNr == boringnr) : undefined;\r\n\r\n this.setState({\r\n loading: false,\r\n sets: dataSets,\r\n stations: stations ?? this.state.stations,\r\n activeStation: stations?.[0]?.[0] ?? this.state.activeStation,\r\n activeSets: activeSets\r\n });\r\n }\r\n\r\n addNullValues(data: gwm_api.SampleCollection | gwm_api.WeatherCollection): void {\r\n const sampleSize = 20;\r\n if (data.values.length <= sampleSize) return;\r\n\r\n const diffs = data.values.map((v, i, a) =>\r\n i + 1 < a.length ? a[i + 1].timestamp - v.timestamp : v.timestamp - a[i - 1].timestamp);\r\n\r\n for (let j = data.values.length - 2; j >= 0; j--) {\r\n const remainder = (diffs.length - j) % sampleSize;\r\n const subset = diffs.slice(j - (sampleSize - remainder), j + remainder);\r\n const avg = mean(subset);\r\n const std = Math.sqrt(mean(subset.map(v => Math.pow(v - avg, 2))));\r\n\r\n if (diffs[j] - avg > std * 2) {\r\n data.values.splice(j + 1, 0, {\r\n timestamp: data.values[j + 1].timestamp - 1\r\n });\r\n }\r\n }\r\n }\r\n\r\n refreshActiveData(): void {\r\n this.setState({ loading: true });\r\n\r\n let sortedData: ChartItem[] | undefined;\r\n\r\n let dataSets = this.state.sets ?? [];\r\n if (this.state.graphMode == 'individual' && this.state.active) {\r\n const boringnr = this.state.active.getProperties()['BORINGNR'] as number | string | undefined;\r\n dataSets = dataSets.filter(([m]) => m.boringNr == boringnr);\r\n }\r\n\r\n if (dataSets?.length) {\r\n // map all data to a record\r\n const keys = sortedUniq(sortBy(dataSets.flatMap(([, v]) => v.values.map(x => x.timestamp as number))));\r\n\r\n if (keys.length) {\r\n const isNap = this.state.unit == 'nap';\r\n\r\n const [min, max] = dataSets.map(([m]) => [\r\n isNap ? m.statistics.min : (typeof m.statistics.max == 'number' ? m.napLevel - m.statistics.max : undefined),\r\n isNap ? m.statistics.max : (typeof m.statistics.min == 'number' ? m.napLevel - m.statistics.min : undefined)\r\n ]).reduce(([aMin, aMax], [bMin, bMax]) => [\r\n typeof aMin == 'number' && typeof bMin == 'number' ? Math.min(aMin, bMin) : typeof aMin == 'number' ? aMin : bMin,\r\n typeof aMax == 'number' && typeof bMax == 'number' ? Math.max(aMax, bMax) : typeof aMax == 'number' ? aMax : bMax\r\n ]);\r\n\r\n let [nap, ghg, glg, rhg, rlg]: (number | undefined)[] = [];\r\n if (this.state.graphMode == 'individual') {\r\n const info = dataSets[0][0];\r\n nap = isNap ? info.napLevel : 0;\r\n ghg = typeof info.statistics.ghg == 'number' ? (isNap ? info.statistics.ghg : info.napLevel - info.statistics.ghg) : undefined;\r\n glg = typeof info.statistics.glg == 'number' ? (isNap ? info.statistics.glg : info.napLevel - info.statistics.glg) : undefined;\r\n rhg = typeof info.statistics.rhg == 'number' ? (isNap ? info.statistics.rhg : info.napLevel - info.statistics.rhg) : undefined;\r\n rlg = typeof info.statistics.rlg == 'number' ? (isNap ? info.statistics.rlg : info.napLevel - info.statistics.rlg) : undefined;\r\n } else if (!isNap) {\r\n nap = 0;\r\n }\r\n\r\n const data: Record = {};\r\n for (const k of keys) {\r\n data[k] = {\r\n time: k,\r\n values: [],\r\n min: min,\r\n max: max,\r\n ghg: ghg,\r\n glg: glg,\r\n rhg: rhg,\r\n rlg: rlg,\r\n nap: nap\r\n };\r\n }\r\n\r\n let j = 0;\r\n for (const [m, samples] of dataSets) {\r\n let i = 0;\r\n const label = !this.props.lite ? `${m.boringNr}.${m.filterNr}` : `#${j + 1}${m.broId ? ` [${m.broId}]` : ''}`;\r\n\r\n if (samples.values.length > 0) {\r\n for (; keys[i] < samples.values[0].timestamp; i++) {\r\n const item: ChartValue = {\r\n label: label,\r\n raw: null, valid: null, released: null, manual: null\r\n };\r\n data[keys[i]].values.push(item);\r\n }\r\n\r\n let manual: number | undefined;\r\n for (const sample of samples.values) {\r\n let [raw, valid, released]: (number | undefined)[] = [];\r\n if (typeof sample.value == 'number') {\r\n // manual always come first in list\r\n if (sample.manual) {\r\n manual = !isNap ? m.napLevel - sample.value : sample.value;\r\n continue;\r\n }\r\n\r\n raw = !isNap ? m.napLevel - sample.value : sample.value;\r\n if (sample.valid) valid = raw;\r\n if (sample.released) released = raw;\r\n }\r\n\r\n for (; keys[i] <= sample.timestamp; i++) {\r\n const item: ChartValue = {\r\n label: label,\r\n valid: valid ?? null,\r\n raw: this.props.showRaw ? raw ?? null : null,\r\n released: this.props.showReleased ? released ?? null : null,\r\n manual: null\r\n };\r\n\r\n if (manual && sample.timestamp == keys[i]) {\r\n item.manual = manual;\r\n manual = undefined;\r\n }\r\n\r\n data[keys[i]].values.push(item);\r\n }\r\n }\r\n }\r\n\r\n for (; i < keys.length; i++) {\r\n const item: ChartValue = {\r\n label: label,\r\n raw: null, valid: null, released: null, manual: null\r\n };\r\n data[keys[i]].values.push(item);\r\n }\r\n\r\n j++;\r\n }\r\n\r\n sortedData = sortBy(Object.values(data), v => v.time);\r\n\r\n for (const value of sortedData.flatMap(v => v.values)) {\r\n value.manual = value.manual ?? null;\r\n value.raw = value.raw ?? null;\r\n value.valid = value.valid ?? null;\r\n }\r\n }\r\n }\r\n\r\n this.setState({ loading: false, activeData: sortedData });\r\n }\r\n\r\n async refreshWeatherData(): Promise {\r\n\r\n let data: gwm_api.IWeather[] | undefined;\r\n if (this.state.activeStation && this.state.sets) {\r\n const dates = this.state.sets.flatMap(([m]) => [moment(m.statistics.startDate), moment(m.statistics.endDate)])\r\n .filter(v => v.isValid());\r\n const dateRange = [moment.min(dates), moment.max(dates)];\r\n const isMeeth2o = this.state.activeStation.source == 'meeth2o';\r\n const siteid = app.info?.SiteId;\r\n\r\n if (isMeeth2o && typeof siteid != 'number') {\r\n throw 'siteid shouldn\\'t be null at this point';\r\n }\r\n\r\n const weatherResponse = await (this.props.lite ? GwmPublicApi.getWeatherData({\r\n stationOrSite: !isMeeth2o ? Number(this.state.activeStation.id) : siteid as number,\r\n piezometer: isMeeth2o ? this.state.activeStation.id.toString() : undefined,\r\n start: dateRange[0],\r\n end: dateRange[1]\r\n }) : GwmApi.getWeatherData({\r\n stationOrSite: !isMeeth2o ? Number(this.state.activeStation.id) : siteid as number,\r\n boring: isMeeth2o ? Number(this.state.activeStation.id) : undefined,\r\n start: dateRange[0],\r\n end: dateRange[1]\r\n }));\r\n\r\n if (weatherResponse.data) {\r\n data = weatherResponse.data.values;\r\n }\r\n }\r\n\r\n this.setState({\r\n weather: data?.map(v => ({\r\n time: v.timestamp as number,\r\n value: v.precipitation ?? 0\r\n }))\r\n });\r\n }\r\n\r\n refreshGraphAnnotations(data: GraphAnnotation[]): void {\r\n const set = this.state.activeSets?.[0];\r\n const boringnr = set?.[0].boringNr;\r\n\r\n if (this.state.sets && boringnr) {\r\n const index = this.state.sets?.findIndex(x => x[0].boringNr == boringnr) as number;\r\n this.state.sets[index][0].graphAnnotations = data;\r\n\r\n set[0].graphAnnotations = data;\r\n this.forceUpdate();\r\n }\r\n }\r\n\r\n refreshAssessments(data: Assessment[]): void {\r\n const set = this.state.activeSets?.[0];\r\n const boringnr = set?.[0].boringNr;\r\n\r\n if (this.state.sets && boringnr) {\r\n const index = this.state.sets?.findIndex(x => x[0].boringNr == boringnr) as number;\r\n this.state.sets[index][0].assessments = data;\r\n\r\n set[0].assessments = data;\r\n this.forceUpdate();\r\n }\r\n }\r\n\r\n async download(format: 'xlsx' | 'csv'): Promise {\r\n this.setState({ loading: true });\r\n\r\n const features = this.state.graphMode === 'combined' ?\r\n [...this.state.selection] : [this.state.active];\r\n\r\n\r\n const siteid = features[0]?.getProperties()['SITEID'] as number | undefined;\r\n const measurepoints = features.flatMap(feature => {\r\n const boringnr = feature?.getProperties()['BORINGNR'] as number | string | undefined;\r\n return boringnr ? [boringnr] : [];\r\n });\r\n\r\n if (siteid && measurepoints.length > 0 && this.state.sets) {\r\n\r\n const label = this.state.sets.filter(([m]) => measurepoints.includes(m.boringNr))\r\n .map(([m]) => !this.props.lite ? `${m.boringNr}-${m.filterNr}`: `${m.broId ?? m.filterNr}`).join('_')\r\n ;\r\n\r\n await (this.props.lite ? GwmPublicApi.exportData({\r\n siteid: siteid,\r\n piezometers: measurepoints as string[],\r\n filename: `${siteid}_${label}`,\r\n format: format\r\n }) : GwmApi.exportData({\r\n siteid: siteid,\r\n boringnrs: measurepoints as number[],\r\n filename: `${siteid}_${label}`,\r\n format: format\r\n }));\r\n }\r\n\r\n this.setState({ loading: false });\r\n }\r\n\r\n onGraphEditAssessmentClicked(assessment: AssessmentTickInfo): void {\r\n if (this.state.activeSets?.[0]) {\r\n const activeAssessment = assessment.guid ? this.state.activeSets[0][0].assessments?.find(x => x.guid == assessment.guid) : undefined;\r\n const start = typeof assessment.begindatum == 'string' ? moment(assessment.begindatum).toDate() : assessment.begindatum;\r\n const end = typeof assessment.einddatum == 'string' ? moment(assessment.einddatum).toDate() : assessment.einddatum;\r\n\r\n this.setState({\r\n displayMode: 'assessment',\r\n activeAssessment: activeAssessment,\r\n assessmentDateRange: [start, end]\r\n });\r\n }\r\n }\r\n\r\n onGraphEditAnnotationClicked(graphAnnotation: GraphAnnotation): void {\r\n if (this.state.activeSets?.[0]) {\r\n const activeGraphAnnotation = this.state.activeSets[0][0].graphAnnotations?.find(x => x.id == graphAnnotation.id);\r\n\r\n this.setState({\r\n displayMode: 'annotation',\r\n activeGraphAnnotation: activeGraphAnnotation,\r\n //assessmentDateRange: [assessment.begindatum, assessment.einddatum]\r\n });\r\n }\r\n }\r\n\r\n onGraphEditValidationClicked(set: [Meetpunt, gwm_api.SampleCollection]): void {\r\n this.setState({\r\n displayMode: 'validation',\r\n validationSet: set\r\n });\r\n }\r\n\r\n return(): void {\r\n this.setState({\r\n displayMode: 'graph',\r\n activeAssessment: undefined,\r\n assessmentDateRange: undefined,\r\n activeGraphAnnotation: undefined\r\n });\r\n }\r\n\r\n async createAssessment(assessment: Assessment): Promise {\r\n const measurepoint = this.state.activeSets?.[0]?.[0];\r\n if (measurepoint) {\r\n const response = await GwmApi.createAssessment({\r\n projectnr: measurepoint.projectNr,\r\n boringnr: measurepoint.boringNr as number,\r\n filternr: measurepoint.filterNr as number,\r\n assessment: assessment\r\n });\r\n if (response.data) {\r\n this.refreshAssessments(response.data);\r\n }\r\n }\r\n\r\n this.return();\r\n }\r\n\r\n async updateAssessment(assessment: Assessment): Promise {\r\n const response = await GwmApi.updateAssessment({\r\n assessment: assessment\r\n });\r\n if (response.data) {\r\n this.refreshAssessments(response.data);\r\n }\r\n\r\n this.return();\r\n }\r\n\r\n async createGraphAnnotation(graphAnnotation: GraphAnnotation): Promise {\r\n const measurepoint = this.state.activeSets?.[0]?.[0];\r\n if (measurepoint) {\r\n const response = await GwmApi.createGraphAnnotation({\r\n projectnr: measurepoint.projectNr,\r\n boringnr: measurepoint.boringNr as number,\r\n filternr: measurepoint.filterNr as number,\r\n graphAnnotation: graphAnnotation\r\n });\r\n if (response.data) {\r\n this.refreshGraphAnnotations(response.data);\r\n }\r\n }\r\n\r\n this.return();\r\n }\r\n\r\n async updateGraphAnnotation(graphAnnotation: GraphAnnotation): Promise {\r\n const response = await GwmApi.updateGraphAnnotation({\r\n graphAnnotation: graphAnnotation\r\n });\r\n if (response.data) {\r\n this.refreshGraphAnnotations(response.data);\r\n }\r\n\r\n this.return();\r\n }\r\n\r\n async deleteGraphAnnotation(graphAnnotation: GraphAnnotation): Promise {\r\n const response = await GwmApi.deleteGraphAnnotation({\r\n graphAnnotation: graphAnnotation\r\n });\r\n if (response.data) {\r\n this.refreshGraphAnnotations(response.data);\r\n }\r\n\r\n this.return();\r\n }\r\n\r\n async refreshOnValidation(): Promise {\r\n if (this.state.sets && this.state.validationSet) {\r\n const measurepoint = this.state.validationSet[0];\r\n const toDelete = this.state.sets.filter(x => x[0].projectNr == measurepoint.projectNr && x[0].boringNr == measurepoint.boringNr);\r\n for (const item of toDelete) {\r\n this.state.sets.splice(this.state.sets.indexOf(item), 1);\r\n }\r\n await this.initialize();\r\n }\r\n }\r\n\r\n async exportGraph(type: 'png' | 'pdf'): Promise {\r\n const graphNode: SVGElement = this.chartRef.current?.container?.childNodes[0];\r\n if (!graphNode) return;\r\n\r\n const { width, height } = graphNode.getBoundingClientRect();\r\n let totalHeight = height;\r\n\r\n const title = `graph_Project ${this.state.sets?.[0][0].projectNr}.${type}`;\r\n\r\n const legendNode: JSX.Element | undefined = this.graphRef?.current?.getLegendNode();\r\n if (!legendNode) return;\r\n\r\n const legendHeight = 129.25;\r\n totalHeight += legendHeight;\r\n\r\n const exportNode: SVGElement = graphNode.cloneNode(true) as SVGElement;\r\n const legend: JSX.Element = \r\n \r\n {legendNode}\r\n \r\n ;\r\n\r\n exportNode.innerHTML += renderToStaticMarkup(legend);\r\n exportNode.setAttribute('height', totalHeight.toString());\r\n exportNode.setAttribute('viewBox', `0 0 ${width} ${totalHeight}`);\r\n\r\n if (type == 'pdf') {\r\n await svgToPDF(exportNode, title, width, totalHeight);\r\n }\r\n else if (type == 'png') {\r\n const imageData = await svgToPNG(exportNode, width, totalHeight);\r\n\r\n if (imageData) {\r\n const link = document.createElement('a');\r\n link.href = imageData;\r\n link.download = title;\r\n link.style.display = 'none';\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n }\r\n }\r\n\r\n render(): JSX.Element {\r\n const hasData = !!this.state.activeData;\r\n const dateFormat = 'DD MMM YYYY';\r\n\r\n const getAssessmentTitle = (assessment: Assessment): string => {\r\n const startDate = moment(assessment.begindatum);\r\n const endDate = moment(assessment.einddatum);\r\n return `${startDate.format(dateFormat)} - ${endDate.format(dateFormat)}`;\r\n };\r\n\r\n const getGraphAnnotationTitle = (annotation: GraphAnnotation): string => {\r\n const startDate = moment(annotation.startdate);\r\n const endDate = moment(annotation.enddate);\r\n return `${startDate.format(dateFormat)} - ${endDate.format(dateFormat)}`;\r\n };\r\n\r\n let displayNode;\r\n if (this.state.selection?.length && this.state.active) {\r\n switch (this.state.displayMode) {\r\n case 'graph':\r\n displayNode = <>\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {this.state.stations?.length ?
\r\n \r\n \r\n\r\n \r\n \r\n {this.state.activeStation?.name ?? '...'}\r\n \r\n \r\n\r\n \r\n {this.state.stations?.map(([v, d]) => (\r\n this.setState({ activeStation: v })}>\r\n {v.name}\r\n \r\n {d < 1000 ? `${Math.round(d)} m` : `${Math.round(d / 1000)} km`}\r\n {v.source}\r\n \r\n \r\n ))}\r\n \r\n \r\n
: undefined}\r\n
\r\n\r\n
\r\n {this.state.graphMode === 'individual' && !this.props.lite && (\r\n
\r\n \r\n \r\n\r\n \r\n \r\n Opmerkingen\r\n \r\n \r\n\r\n \r\n this.setState({ displayMode: 'annotation', activeGraphAnnotation: undefined })}>\r\n Opmerking toevoegen\r\n \r\n\r\n {this.state.activeSets?.[0]?.[0].graphAnnotations?.length ? <>\r\n \r\n\r\n Wijzig een opmerking\r\n \r\n {this.state.activeSets[0][0].graphAnnotations.map(x =>\r\n this.setState({ displayMode: 'annotation', activeGraphAnnotation: x })}>\r\n {getGraphAnnotationTitle(x)}\r\n \r\n )}\r\n : undefined}\r\n \r\n \r\n
\r\n )}\r\n {this.state.graphMode === 'individual' && this.state.hasFullAccess && !this.props.lite && (<>\r\n
\r\n \r\n \r\n\r\n \r\n \r\n Beheer\r\n \r\n \r\n\r\n \r\n this.setState({ displayMode: 'assessment', activeAssessment: undefined })}>\r\n Beoordeling toevoegen\r\n \r\n\r\n {this.state.activeSets?.[0]?.[0].assessments?.length ? <>\r\n \r\n\r\n Wijzig een beoordeling\r\n \r\n {this.state.activeSets[0][0].assessments.map(x =>\r\n this.setState({ displayMode: 'assessment', activeAssessment: x })}>\r\n {getAssessmentTitle(x)}\r\n \r\n )}\r\n : undefined}\r\n \r\n \r\n \r\n Valideer metingen\r\n\r\n {this.state.activeSets?.map(s => (\r\n this.onGraphEditValidationClicked(s)}>\r\n {`Peilbuis ${s[0].boringNr}.${s[0].filterNr}`}\r\n \r\n ))}\r\n \r\n \r\n
\r\n )}\r\n
\r\n {this.props.showExport ?
\r\n \r\n \r\n\r\n \r\n \r\n Export\r\n \r\n \r\n\r\n \r\n Data\r\n\r\n this.download('xlsx')}>\r\n Excel .xlsx\r\n \r\n this.download('csv')}>\r\n Komma-gescheiden .csv\r\n \r\n \r\n \r\n \r\n Grafiek\r\n \r\n this.exportGraph('png')}>\r\n Afbeelding .png\r\n \r\n this.exportGraph('pdf')}>\r\n PDF-bestand .pdf\r\n \r\n \r\n \r\n
: undefined}\r\n
\r\n \r\n \r\n\r\n \r\n \r\n {this.state.active.getProperties()['BORINGCODE'] ?? this.state.active.getProperties()['DESCRIPTION'] ?? this.state.active.getProperties()['BORINGNR'] ?? 'unknown'}\r\n \r\n \r\n\r\n \r\n {this.state.selection.map(v => {\r\n const borehole = v.getProperties()['BORINGNR'] as number | string;\r\n return (\r\n this.setState({ active: v, graphMode: 'individual' })}>\r\n {v.getProperties()['DESCRIPTION'] ?? v.getProperties()['BORINGCODE'] ?? v.getProperties()['BORINGNR']}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n\r\n {this.state.selection.length > 1 && this.props.showGrouping ?
\r\n \r\n
: undefined}\r\n
\r\n
\r\n
\r\n\r\n {this.state.sets?.length && this.state.activeData ? (\r\n
\r\n m)} graphMode={this.state.graphMode}\r\n data={this.state.activeData}\r\n liteMode={this.props.lite}\r\n assessments={!this.props.lite ? this.state.activeSets?.[0]?.[0].assessments : undefined}\r\n annotations={this.props.showComments ? this.state.activeSets?.[0]?.[0].graphAnnotations : undefined}\r\n canEditAssessments={!this.props.lite && this.state.hasFullAccess}\r\n weather={this.state.weather}\r\n unit={this.state.unit}\r\n onEditAssessmentClicked={!this.props.lite ? this.onGraphEditAssessmentClicked : undefined}\r\n onAnnotationLabelClicked={!this.props.lite ? this.onGraphEditAnnotationClicked : undefined}\r\n ref={this.graphRef}\r\n chartRef={this.chartRef} />\r\n
\r\n ) : !this.state.loading ? (\r\n
\r\n {app.translator.translate('Geen data!')} \r\n {app.translator.translate('Voor deze peilbuis konden geen gegevens worden gevonden!')}\r\n
\r\n ) : undefined}\r\n ;\r\n break;\r\n case 'validation':\r\n displayNode = <>\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n {this.state.validationSet && this.state.activeData ? (\r\n this.setState({ loading: s })} />\r\n ) : !this.state.loading ? (\r\n
\r\n {app.translator.translate('Geen data!')} \r\n {app.translator.translate('Voor deze peilbuis konden geen gegevens worden gevonden!')}\r\n
\r\n ) : undefined}\r\n ;\r\n break;\r\n case 'assessment':\r\n displayNode =\r\n ;\r\n break;\r\n case 'annotation':\r\n displayNode =\r\n ;\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {!this.state.selection?.length || !this.state.active ? (\r\n

{app.translator.translate('Selecteer een peilbuis op de kaart...')}

\r\n ) : displayNode}\r\n\r\n {this.state.loading ? : undefined}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default GroundwaterGraphs;\r\n","export enum MateBeoordeling { Geen = 'Niet beoordeeld', Volledig = 'Volledig beoordeeld', Voorlopig = 'Voorlopig beoordeeld' }\r\nexport const DATE_FORMAT = 'DD-MM-YYYY';\r\nexport const DATETIME_FORMAT = 'DD-MM-YYYY HH:mm';\r\n\r\nexport const COLORS = [\r\n '#3079f0',\r\n '#f0c330',\r\n '#c12cf2',\r\n '#13cf5b',\r\n '#f78c00',\r\n '#6e4510',\r\n '#a60058',\r\n '#88a600',\r\n '#6bdfe3'\r\n];","import { WidgetProps, Widget, PanelLoader } from '@tauw/viewer-base';\r\nimport { faCircleDot, faScrewdriverWrench } from '@fortawesome/pro-light-svg-icons';\r\nimport './index.scss';\r\nimport { Feature } from 'ol';\r\nimport { isEqual, sortBy } from 'lodash';\r\nimport { GwmApi } from 'general/api';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport MaintenanceCollection from 'models/MaintenanceCollection';\r\nimport moment from 'moment';\r\n\r\ninterface MaintenanceState {\r\n selection: Feature[];\r\n active?: Feature;\r\n data?: MaintenanceCollection;\r\n loading: boolean;\r\n mapNode?: HTMLDivElement;\r\n}\r\n\r\nclass Maintenance extends Widget {\r\n static defaultProps = {\r\n title: (): string => app.translator.translate('Tauw Grondwater Onderhoud'),\r\n //description: (): string => app.translator.translate('Lorem ipsum dolor sit amet, consectetur adipiscing elit.'),\r\n actionLabel: (): string => app.translator.translate('Tauw Grondwater Onderhoud'),\r\n icon: faScrewdriverWrench\r\n };\r\n\r\n constructor(props: WidgetProps) {\r\n super(props);\r\n\r\n this.state = {\r\n selection: [],\r\n loading: false\r\n };\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n }\r\n\r\n componentDidMount(): void {\r\n super.componentDidMount?.();\r\n\r\n app.onSelectionChanged = this.onSelectionChanged;\r\n\r\n if (app.selection.length) {\r\n this.setState({\r\n selection: sortBy([...app.selection].filter(f => f.getProperties()['BORINGNR']), f => f.getProperties()['BORINGNR'])\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly): void {\r\n if (!isEqual(prevState.selection, this.state.selection)) {\r\n if (this.state.selection.length > 0 && \r\n !(this.state.active && this.state.selection.includes(this.state.active))) {\r\n\r\n if (!this.state.active) {\r\n this.resize?.([860, 480]);\r\n }\r\n\r\n this.setState({\r\n active: this.state.selection[0],\r\n data: undefined,\r\n mapNode: undefined\r\n });\r\n }\r\n }\r\n if (prevState.active != this.state.active) {\r\n this.initialize();\r\n }\r\n }\r\n\r\n componentWillUnmount(): void {\r\n super.componentWillUnmount?.();\r\n\r\n app.unregister(this.onSelectionChanged);\r\n }\r\n\r\n onSelectionChanged(features?: Feature[]): void {\r\n this.setState({\r\n selection: sortBy([...features ?? []].filter(f => f.getProperties()['BORINGNR']), f => f.getProperties()['BORINGNR'])\r\n });\r\n }\r\n\r\n onAction(feature: Feature): void {\r\n this.setState({\r\n active: feature\r\n });\r\n }\r\n\r\n async initialize(): Promise {\r\n const siteid = this.state.active?.getProperties()['SITEID'] as number | undefined;\r\n const measurepoint = this.state.active?.getProperties()['BORINGNR'] as number | undefined;\r\n if (!siteid || !measurepoint) return;\r\n\r\n this.setState({ loading: true });\r\n\r\n const response = await GwmApi.getMaintenance({\r\n siteid: siteid,\r\n boringnr: measurepoint,\r\n filternr: 1 // TODO: not handling multiple filters, so possible incorrect representation of the data\r\n });\r\n\r\n this.setState({\r\n data: response.data,\r\n loading: false\r\n });\r\n }\r\n\r\n render(): JSX.Element {\r\n return (\r\n
\r\n\r\n\r\n {!this.state.selection?.length || !this.state.active ? (\r\n

Selecteer een peilbuis op de kaart...

\r\n ) : (<>\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n \r\n \r\n {this.state.active.getProperties()['BORINGCODE'] ?? this.state.active.getProperties()['BORINGNR'] ?? 'unknown'}\r\n \r\n \r\n\r\n \r\n {this.state.selection.map(v => {\r\n const borehole = v.getProperties()['BORINGNR'] as number;\r\n return (\r\n this.setState({ active: v, data: undefined, mapNode: undefined })}>\r\n {v.getProperties()['BORINGCODE'] ?? borehole}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n
\r\n\r\n {this.state.data ? (
\r\n

Dataloggers

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.data.dataLoggers.map(x => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
SerienrStartEind
{x.serial}{moment(x.start).format('L LT')}{x.end ? moment(x.end).format('L LT') : 'actief'}
\r\n\r\n

Onderhoud Peilbuis

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.data.maintenance.map(x => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
DatumOmschrijving
{moment(x.date).format('L LT')}{x.description}
\r\n
) : !this.state.loading ? (\r\n
\r\n Geen data! \r\n Voor deze peilbuis konden geen gegevens worden gevonden!\r\n
\r\n ) : undefined}\r\n )}\r\n\r\n {this.state.loading ? : undefined}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Maintenance;","import { WidgetProps, Widget, PanelLoader } from '@tauw/viewer-base';\r\nimport { faBars, faBook, faCircleDot, faFilePdf } from '@fortawesome/pro-light-svg-icons';\r\nimport './index.scss';\r\nimport { Feature } from 'ol';\r\nimport { isEqual, sortBy } from 'lodash';\r\nimport { GwmApi, GwmPublicApi } from 'general/api';\r\nimport PiezometerData from 'models/PiezometerData';\r\nimport moment from 'moment';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { Dropdown } from 'react-bootstrap';\r\n\r\nconst TITLE_OPTIONS: [string, string][] = [\r\n ['boreholeCode', 'Alias'], \r\n ['_', 'TAUW id'], \r\n ['broId', 'BRO id'], \r\n ['serialNo', 'Serienummer Logger']\r\n];\r\n\r\ninterface PiezometerFactsheetProps extends WidgetProps {\r\n lite: boolean;\r\n}\r\n\r\ninterface PiezometerFactsheetState {\r\n selection: Feature[];\r\n active?: Feature;\r\n titleField: string;\r\n data?: PiezometerData;\r\n loading: boolean;\r\n mapNode?: HTMLDivElement;\r\n}\r\n\r\nclass PiezometerFactsheet extends Widget {\r\n static defaultProps = {\r\n title: (): string => app.translator.translate('Tauw Grondwater Factsheet'),\r\n //description: (): string => app.translator.translate('Lorem ipsum dolor sit amet, consectetur adipiscing elit.'),\r\n actionLabel: (): string => app.translator.translate('Tauw Grondwater Factsheet'),\r\n icon: faBook,\r\n lite: false\r\n };\r\n\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n selection: [],\r\n loading: false,\r\n titleField: 'boreholeCode'\r\n };\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onTitleFieldChanged = this.onTitleFieldChanged.bind(this);\r\n }\r\n\r\n componentDidMount(): void {\r\n super.componentDidMount?.();\r\n\r\n app.onSelectionChanged = this.onSelectionChanged;\r\n\r\n if (app.selection.length) {\r\n this.setState({\r\n selection: sortBy([...app.selection].filter(f => f.getProperties()['BORINGNR']), f => f.getProperties()['BORINGNR'])\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly): void {\r\n if (!isEqual(prevState.selection, this.state.selection)) {\r\n if (this.state.selection.length > 0 && \r\n !(this.state.active && this.state.selection.includes(this.state.active))) {\r\n\r\n if (!this.state.active) {\r\n this.resize?.([860, 480]);\r\n }\r\n\r\n this.setState({\r\n active: this.state.selection[0],\r\n data: undefined,\r\n mapNode: undefined\r\n });\r\n }\r\n }\r\n if (prevState.active != this.state.active) {\r\n this.initialize();\r\n }\r\n }\r\n\r\n componentWillUnmount(): void {\r\n super.componentWillUnmount?.();\r\n\r\n app.unregister(this.onSelectionChanged);\r\n }\r\n\r\n onSelectionChanged(features?: Feature[]): void {\r\n this.setState({\r\n selection: sortBy([...features ?? []].filter(f => f.getProperties()['BORINGNR']), f => f.getProperties()['BORINGNR'])\r\n });\r\n }\r\n\r\n onTitleFieldChanged(field: string): void {\r\n this.setState({ titleField: field });\r\n }\r\n\r\n onAction(feature: Feature): void {\r\n this.setState({\r\n active: feature\r\n });\r\n }\r\n\r\n async export(...features: Feature[]): Promise {\r\n const siteid = features[0]?.getProperties()['SITEID'] as number | undefined;\r\n if (!siteid) return;\r\n\r\n this.setState({ loading: true });\r\n\r\n const measurepoints = features\r\n .flatMap(feature => feature?.getProperties()['BORINGNR'] as number | string | undefined)\r\n .filter(v => typeof v == 'number' || typeof v == 'string') as number[] | string[];\r\n\r\n await (!this.props.lite ? GwmApi.exportPiezometerData({\r\n siteid: siteid,\r\n boringnrs: measurepoints as number[],\r\n filename: `${siteid}_${measurepoints.join('-')}`,\r\n title: this.state.titleField\r\n }): GwmPublicApi.exportPiezometerData({\r\n siteid: siteid,\r\n piezometer: measurepoints as string[],\r\n filename: `${siteid}_${measurepoints.join('-')}`,\r\n title: this.state.titleField\r\n }));\r\n\r\n this.setState({ loading: false });\r\n }\r\n\r\n async initialize(): Promise {\r\n const siteid = this.state.active?.getProperties()['SITEID'] as number | undefined;\r\n const measurepoint = this.state.active?.getProperties()['BORINGNR'] as number | string | undefined;\r\n if (!siteid || !measurepoint) return;\r\n\r\n this.setState({ loading: true });\r\n\r\n const response = await (!this.props.lite ? GwmApi.getPiezometerData({\r\n siteid: siteid,\r\n boringnr: measurepoint as number,\r\n filternr: 1 // TODO: not handling multiple filters, so possible incorrect representation of the data\r\n }) : GwmPublicApi.getPiezometerData({\r\n siteid: siteid,\r\n piezometer: measurepoint as string\r\n }));\r\n\r\n this.setState({\r\n data: response.data,\r\n loading: false\r\n });\r\n }\r\n\r\n renderTable(): JSX.Element | undefined {\r\n if (!this.state.data) return;\r\n\r\n const data = this.state.data;\r\n\r\n const boringDatum = data.boreholeDate ? moment(data.boreholeDate, 'YYYY-MM-DDTHH:mm:ss') : undefined;\r\n const installatieDatum = data.installationDate ? moment(data.installationDate, 'YYYY-MM-DDTHH:mm:ss') : undefined;\r\n\r\n return
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Locatie peilbuis
Adres{data.street ?? '-'}
Situatie{data.surroundings ?? '-'}
X-coordinaat{data.coordinateX ?? '-'}
Y-coordinaat{data.coordinateY ?? '-'}
NAP maaiveld (m){data.nap ?? '-'}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Plaatsing peilbuis
Datum installatie{boringDatum?.format('DD-MM-YYYY') ?? '-'}
GWS na plaatsing (cm){data.gwsPlacement ?? '-'}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Gegevens datalogger
Serienummer{data.serialNo ?? '-'}
Installatiedatum Logger{installatieDatum?.format('DD-MM-YYYY') ?? '-'}
Tijdstip{installatieDatum?.format('h:mm:ss') ?? '-'}
GWS bij installatie (NAP/cm){data.gwsAtInstallation ?? '-'}
Lengte meetbuis (cm)*{data.tubeLength ?? '-'}
Afstand ok sensor tot bk pb (cm){data.okSensorBkPb ?? '-'}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Dimensionering en materiaal
BK pb (m t.o.v. NAP){data.piezometerNapTop ?? '-'}
OK pb (m t.o.v. NAP){data.piezometerNapBottom ?? '-'}
Diepte pb (cm){data.filterEnd ?? '-'}
Filterlengte (m){data.filterLength ?? '-'}
Materiaal peilbuis{data.description ?? '-'}
Afwerking peilbuis{data.finish ?? '-'}
Materiaal afwerking{data.finishMaterial ?? '-'}
Diameter buiten (mm){data.diameterOutside ?? '-'}
Diameter binnen (mm){data.diameterInside ?? '-'}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Opmerkingen
{data.comments ?? '-'}
\r\n
\r\n
\r\n
\r\n {data.photos.map((v, i) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Foto {i+1}
\r\n {this.renderImage(v)}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Boorbeschrijving
\r\n {data.boreReport ? this.renderImage(data.boreReport) : undefined}\r\n
\r\n
\r\n
\r\n
;\r\n }\r\n\r\n renderImage(url: string): JSX.Element {\r\n return url.toLowerCase().includes('roundme.com/embed') ? (\r\n