{"version":3,"file":"static/js/134.ff54b0d0.chunk.js","mappings":"uKACe,SAASA,EAAyBC,EAAQC,GACvD,GAAc,MAAVD,EAAgB,MAAO,CAAC,EAC5B,IACIE,EAAKC,EADLC,GAAS,OAA6BJ,EAAQC,GAElD,GAAII,OAAOC,sBAAuB,CAChC,IAAIC,EAAmBF,OAAOC,sBAAsBN,GACpD,IAAKG,EAAI,EAAGA,EAAII,EAAiBC,OAAQL,IACvCD,EAAMK,EAAiBJ,GACnBF,EAASQ,QAAQP,IAAQ,GACxBG,OAAOK,UAAUC,qBAAqBC,KAAKZ,EAAQE,KACxDE,EAAOF,GAAOF,EAAOE,GAEzB,CACA,OAAOE,CACT,C,uBCfe,SAASS,EAA8Bb,EAAQC,GAC5D,GAAc,MAAVD,EAAgB,MAAO,CAAC,EAC5B,IAEIE,EAAKC,EAFLC,EAAS,CAAC,EACVU,EAAaT,OAAOU,KAAKf,GAE7B,IAAKG,EAAI,EAAGA,EAAIW,EAAWN,OAAQL,IACjCD,EAAMY,EAAWX,GACbF,EAASQ,QAAQP,IAAQ,IAC7BE,EAAOF,GAAOF,EAAOE,IAEvB,OAAOE,CACT,C,2OCTAY,EAAe,SAACC,GAAqB,MAClB,aAAjBA,EAAQC,IAAmB,ECH7BC,EAAe,SAACC,GAAc,OAAoBA,aAAiBC,IAAI,ECAvEC,EAAe,SAACF,GAAc,OAAyC,MAATA,CAAa,ECG9DG,EAAe,SAACH,GAAc,MAAsB,kBAAVA,CAAkB,EAEzEI,EAAe,SAAmBJ,GAAc,OAC7CE,EAAkBF,KAClBK,MAAMC,QAAQN,IACfG,EAAaH,KACZD,EAAaC,EAAM,ECJtBO,EAAe,SAACC,GAAc,OAC5BJ,EAASI,IAAWA,EAAgBxB,OAChCY,EAAiBY,EAAgBxB,QAC9BwB,EAAgBxB,OAAOyB,QACvBD,EAAgBxB,OAAOgB,MAC1BQ,CAAK,ECNXE,EAAe,SAACC,EAA+BC,GAAuB,OACpED,EAAME,ICLO,SAACD,GAAY,OAC1BA,EAAKE,UAAU,EAAGF,EAAKG,OAAO,iBAAmBH,CAAI,CDI3CI,CAAkBJ,GAAM,EEHpCK,EAAe,SAACC,GACd,IAAMC,EACJD,EAAWE,aAAeF,EAAWE,YAAY9B,UAEnD,OACEc,EAASe,IAAkBA,EAAcE,eAAe,gBAE5D,ECTAC,EAAiC,qBAAXC,QACU,qBAAvBA,OAAOC,aACM,qBAAbC,SCEe,SAAAC,EAAeC,GACrC,IAAIC,EACEtB,EAAUD,MAAMC,QAAQqB,GAE9B,GAAIA,aAAgB1B,KAClB2B,EAAO,IAAI3B,KAAK0B,QACX,GAAIA,aAAgBE,IACzBD,EAAO,IAAIC,IAAIF,OACV,IACHL,IAAUK,aAAgBG,MAAQH,aAAgBI,YACnDzB,IAAWF,EAASuB,GAcrB,OAAOA,EAVP,GAFAC,EAAOtB,EAAU,GAAK,CAAC,EAElBA,GAAYW,EAAcU,GAG7B,IAAK,IAAM7C,KAAO6C,EACZA,EAAKN,eAAevC,KACtB8C,EAAK9C,GAAO4C,EAAYC,EAAK7C,UAJjC8C,EAAOD,CAUV,CAED,OAAOC,CACT,CChCA,IAAAI,EAAe,SAAShC,GAAe,OACrCK,MAAMC,QAAQN,GAASA,EAAMiC,OAAOC,SAAW,EAAE,ECDnDC,EAAe,SAACC,GAAY,YAA+BC,IAARD,CAAiB,ECKpEE,EAAe,SAAIC,EAAQC,EAAeC,GACxC,IAAKD,IAASpC,EAASmC,GACrB,OAAOE,EAGT,IAAMC,EAASV,EAAQQ,EAAKG,MAAM,cAAcC,QAC9C,SAACF,EAAQ5D,GAAG,OACVoB,EAAkBwC,GAAUA,EAASA,EAAO5D,EAAgB,GAC9DyD,GAGF,OAAOJ,EAAYO,IAAWA,IAAWH,EACrCJ,EAAYI,EAAIC,IACdC,EACAF,EAAIC,GACNE,CACN,ECnBaG,EAAS,CACpBC,KAAM,OACNC,UAAW,WACXC,OAAQ,UAGGC,EAAkC,CAC7CC,OAAQ,SACRC,SAAU,WACVC,SAAU,WACVC,UAAW,YACXC,IAAK,OAGMC,EACN,MADMA,EAEN,MAFMA,EAGA,YAHAA,EAIA,YAJAA,EAKF,UALEA,EAMD,WANCA,EAOD,WCnBNC,EAAkBC,EAAAA,cAA0C,MAgCrDC,EAAiB,WAAH,OAKzBD,EAAAA,WAAiBD,EAAe,ECtClCG,EAAe,SACbC,EACAC,EACAC,GAEE,IADFC,IAAMC,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,KAAAA,UAAA,GAEAtB,EAAS,CACbuB,cAAeJ,EAAQK,gBACHC,EAAA,SAAArF,GAGpBG,OAAOmF,eAAe1B,EAAQ5D,EAAK,CACjCwD,IAAK,WACH,IAAM+B,EAAOvF,EAOb,OALI+E,EAAQS,gBAAgBD,KAAUpB,EAAgBK,MACpDO,EAAQS,gBAAgBD,IAASN,GAAUd,EAAgBK,KAG7DQ,IAAwBA,EAAoBO,IAAQ,GAC7CT,EAAUS,E,GAGtB,EAbD,IAAK,IAAMvF,KAAO8E,EAASO,EAAArF,GAe3B,OAAO4D,CACT,ECzBA6B,EAAe,SAACvE,GAAc,OAC5BI,EAASJ,KAAWf,OAAOU,KAAKK,GAAOZ,MAAM,ECK/CoF,EAAe,SACbC,EACAH,EACAI,EACAX,GAEAW,EAAgBD,GACeA,EAAvB7D,KAAR,IAAiBgD,GAASjF,EAAAA,EAAAA,GAAK8F,EAAaE,GAE5C,OACEJ,EAAcX,IACd3E,OAAOU,KAAKiE,GAAWxE,QAAUH,OAAOU,KAAK2E,GAAiBlF,QAC9DH,OAAOU,KAAKiE,GAAWgB,MACrB,SAAC9F,GAAG,OACFwF,EAAgBxF,OACdiF,GAAUd,EAAgBK,IAAI,GAGxC,EC5BAuB,EAAe,SAAI7E,GAAQ,OAAMK,MAAMC,QAAQN,GAASA,EAAQ,CAACA,EAAM,ECEvE8E,EAAe,SACblE,EACAmE,EACAC,GAAe,OAEfA,GAASD,EACLnE,IAASmE,GACRnE,IACAmE,GACDnE,IAASmE,GACTF,EAAsBjE,GAAMqE,MAC1B,SAACC,GAAW,OACVA,IACCA,EAAYC,WAAWJ,IACtBA,EAAWI,WAAWD,GAAa,GACxC,ECPD,SAAUE,EAAgBC,GAC9B,IAAMC,EAAS7B,EAAAA,OAAa4B,GAC5BC,EAAOC,QAAUF,EAEjB5B,EAAAA,WAAgB,WACd,IAAM+B,GACHH,EAAMI,UACPH,EAAOC,QAAQG,SACfJ,EAAOC,QAAQG,QAAQC,UAAU,CAC/BC,KAAMN,EAAOC,QAAQK,OAGzB,OAAO,WACLJ,GAAgBA,EAAaK,aAC/B,CACF,GAAG,CAACR,EAAMI,UACZ,CC1BA,IAAAK,EAAe,SAAC9F,GAAc,MAAuC,kBAAVA,CAAkB,ECI7E+F,EAAe,SACbpF,EACAqF,EACAC,EACAC,EACAzD,GAEA,OAAIqD,EAASnF,IACXuF,GAAYF,EAAOG,MAAMC,IAAIzF,GACtB2B,EAAI2D,EAAYtF,EAAO8B,IAG5BpC,MAAMC,QAAQK,GACTA,EAAM0F,KACX,SAACC,GAAS,OACRJ,GAAYF,EAAOG,MAAMC,IAAIE,GAAYhE,EAAI2D,EAAYK,EAAU,KAKzEJ,IAAaF,EAAOO,UAAW,GAExBN,EACT,EC3BA,IAAAO,EAAe,SAACxG,GAAa,MAAK,QAAQyG,KAAKzG,EAAM,ECErD0G,EAAe,SAACC,GAAa,OAC3B3E,EAAQ2E,EAAMC,QAAQ,YAAa,IAAIjE,MAAM,SAAS,ECGhC,SAAAkE,EACtBC,EACAtE,EACAxC,GAOA,IALA,IAAI+G,GAAS,EACPC,EAAWR,EAAMhE,GAAQ,CAACA,GAAQkE,EAAalE,GAC/CpD,EAAS4H,EAAS5H,OAClB6H,EAAY7H,EAAS,IAElB2H,EAAQ3H,GAAQ,CACvB,IAAMN,EAAMkI,EAASD,GACjBG,EAAWlH,EAEf,GAAI+G,IAAUE,EAAW,CACvB,IAAME,EAAWL,EAAOhI,GACxBoI,EACE9G,EAAS+G,IAAa9G,MAAMC,QAAQ6G,GAChCA,EACCC,OAAOJ,EAASD,EAAQ,IAEzB,CAAC,EADD,EAEP,CACDD,EAAOhI,GAAOoI,EACdJ,EAASA,EAAOhI,EACjB,CACD,OAAOgI,CACT,CCcM,SAAUO,EAIdhC,GAEA,IAAMiC,EAAU5D,IACR9C,EAAsDyE,EAAtDzE,KAAI2G,EAAkDlC,EAAhDxB,QAAAA,OAAO,IAAA0D,EAAGD,EAAQzD,QAAO0D,EAAEC,EAAqBnC,EAArBmC,iBACnCC,EAAe/G,EAAmBmD,EAAQmC,OAAO0B,MAAO9G,GACxDZ,ECsFF,SACJqF,GAEA,IAAMiC,EAAU5D,IAChBiE,EAMItC,GAAS,CAAC,EAACuC,EAAAD,EALb9D,QAAAA,OAAO,IAAA+D,EAAGN,EAAQzD,QAAO+D,EACzBhH,EAAI+G,EAAJ/G,KACA6B,EAAYkF,EAAZlF,aACAgD,EAAQkC,EAARlC,SACAT,EAAK2C,EAAL3C,MAEI6C,EAAQpE,EAAAA,OAAa7C,GAE3BiH,EAAMtC,QAAU3E,EAEhBwE,EAAa,CACXK,SAAAA,EACAC,QAAS7B,EAAQiE,UAAUC,OAC3BnC,KAAM,SAAChC,GAEHkB,EACE+C,EAAMtC,QACN3B,EAAUhD,KACVoE,IAGFgD,EACEtG,EACEqE,EACE8B,EAAMtC,QACN1B,EAAQmC,OACRpC,EAAUmE,QAAUlE,EAAQoE,aAC5B,EACAxF,I,IAQZ,IAAAyF,EAA6BzE,EAAAA,SAC3BI,EAAQsE,UACNvH,EACA6B,IAEH2F,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GALMlI,EAAKoI,EAAA,GAAEJ,EAAWI,EAAA,GASzB,OAFA3E,EAAAA,WAAgB,kBAAMI,EAAQyE,kBAAkB,IAEzCtI,CACT,CDzIgBuI,CAAS,CACrB1E,QAAAA,EACAjD,KAAAA,EACA6B,aAAcH,EACZuB,EAAQoE,YACRrH,EACA0B,EAAIuB,EAAQK,eAAgBtD,EAAMyE,EAAM5C,eAE1CuC,OAAO,IAEHpB,EErBR,SACEyB,GAEA,IAAMiC,EAAU5D,IAChB8E,EAA6DnD,GAAS,CAAC,EAACoD,EAAAD,EAAhE3E,QAAAA,OAAO,IAAA4E,EAAGnB,EAAQzD,QAAO4E,EAAEhD,EAAQ+C,EAAR/C,SAAU7E,EAAI4H,EAAJ5H,KAAMoE,EAAKwD,EAALxD,MACnD0D,EAAqCjF,EAAAA,SAAeI,EAAQ8E,YAAWC,GAAAP,EAAAA,EAAAA,GAAAK,EAAA,GAAhE9E,EAASgF,EAAA,GAAElE,EAAekE,EAAA,GAC3BC,EAAWpF,EAAAA,QAAa,GACxBqF,EAAuBrF,EAAAA,OAAa,CACxCsF,SAAS,EACTC,WAAW,EACXC,aAAa,EACbC,eAAe,EACfC,cAAc,EACdC,SAAS,EACTC,QAAQ,IAEJxB,EAAQpE,EAAAA,OAAa7C,GAoC3B,OAlCAiH,EAAMtC,QAAU3E,EAEhBwE,EAAa,CACXK,SAAAA,EACAG,KAAM,SACJ5F,GAAsE,OAEtE6I,EAAStD,SACTT,EACE+C,EAAMtC,QACNvF,EAAMY,KACNoE,IAEFR,EACExE,EACA8I,EAAqBvD,QACrB1B,EAAQyF,mBAEV5E,GAAe6E,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACZ1F,EAAQ8E,YACR3I,GACH,EACJ0F,QAAS7B,EAAQiE,UAAU0B,QAG7B/F,EAAAA,WAAgB,WAId,OAHAoF,EAAStD,SAAU,EACnBuD,EAAqBvD,QAAQ6D,SAAWvF,EAAQ4F,cAAa,GAEtD,WACLZ,EAAStD,SAAU,CACrB,CACF,GAAG,CAAC1B,IAEGF,EACLC,EACAC,EACAiF,EAAqBvD,SACrB,EAEJ,CFrCoBmE,CAAa,CAC7B7F,QAAAA,EACAjD,KAAAA,IAGI+I,EAAiBlG,EAAAA,OACrBI,EAAQ+F,SAAShJ,GAAI2I,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAChBlE,EAAMwE,OAAK,IACd7J,MAAAA,MAuCJ,OAnCA2J,EAAepE,QAAU1B,EAAQ+F,SAAShJ,EAAMyE,EAAMwE,OAEtDpG,EAAAA,WAAgB,WACd,IAAMqG,EACJjG,EAAQkG,SAASvC,kBAAoBA,EAEjCwC,EAAgB,SAACpJ,EAAyBZ,GAC9C,IAAMiK,EAAe3H,EAAIuB,EAAQqG,QAAStJ,GAEtCqJ,IACFA,EAAME,GAAGC,MAAQpK,EAErB,EAIA,GAFAgK,EAAcpJ,GAAM,GAEhBkJ,EAAwB,CAC1B,IAAM9J,EAAQ0B,EAAYY,EAAIuB,EAAQkG,SAAS9F,cAAerD,IAC9DiG,EAAIhD,EAAQK,eAAgBtD,EAAMZ,GAC9BmC,EAAYG,EAAIuB,EAAQoE,YAAarH,KACvCiG,EAAIhD,EAAQoE,YAAarH,EAAMZ,EAElC,CAED,OAAO,YAEHyH,EACIqC,IAA2BjG,EAAQwG,OAAOC,OAC1CR,GAEFjG,EAAQ0G,WAAW3J,GACnBoJ,EAAcpJ,GAAM,EAC1B,C,GACC,CAACA,EAAMiD,EAAS4D,EAAcD,IAE1B,CACLyC,MAAO,CACLrJ,KAAAA,EACAZ,MAAAA,EACAmD,SAAUM,EAAAA,aACR,SAACjD,GAAK,OACJmJ,EAAepE,QAAQpC,SAAS,CAC9BnE,OAAQ,CACNgB,MAAOO,EAAcC,GACrBI,KAAMA,GAERd,KAAM+C,EAAOG,QACb,GACJ,CAACpC,IAEHsC,OAAQO,EAAAA,aACN,kBACEkG,EAAepE,QAAQrC,OAAO,CAC5BlE,OAAQ,CACNgB,MAAOsC,EAAIuB,EAAQoE,YAAarH,GAChCA,KAAMA,GAERd,KAAM+C,EAAOC,MACb,GACJ,CAAClC,EAAMiD,IAET2G,IAAK,SAACC,GACJ,IAAMR,EAAQ3H,EAAIuB,EAAQqG,QAAStJ,GAE/BqJ,GAASQ,IACXR,EAAME,GAAGK,IAAM,CACbE,MAAO,kBAAMD,EAAIC,OAAO,EACxBC,OAAQ,kBAAMF,EAAIE,QAAQ,EAC1BC,kBAAmB,SAACC,GAAe,OACjCJ,EAAIG,kBAAkBC,EAAQ,EAChCC,eAAgB,kBAAML,EAAIK,gBAAgB,G,GAKlDlH,UAAAA,EACAmH,WAAY9L,OAAO+L,iBACjB,CAAC,EACD,CACEC,QAAS,CACPC,YAAY,EACZ5I,IAAK,mBAAQA,EAAIsB,EAAUyF,OAAQzI,EAAK,GAE1CmI,QAAS,CACPmC,YAAY,EACZ5I,IAAK,mBAAQA,EAAIsB,EAAUqF,YAAarI,EAAK,GAE/CuK,UAAW,CACTD,YAAY,EACZ5I,IAAK,mBAAQA,EAAIsB,EAAUsF,cAAetI,EAAK,GAEjDwK,MAAO,CACLF,YAAY,EACZ5I,IAAK,kBAAMA,EAAIsB,EAAUyF,OAAQzI,EAAK,KAKhD,CGnIA,IAAMyK,EAAa,SAIjBhG,GAA2C,OACxCA,EAAMiG,OAAOjE,EAAmChC,GAAM,EC5C3D,IAAAkG,EAAe,SACb3K,EACA4K,EACAnC,EACAvJ,EACA+K,GAAuB,OAEvBW,GAAwBjC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAEfF,EAAOzI,IAAK,IACf6K,OAAKlC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCF,EAAOzI,IAASyI,EAAOzI,GAAO6K,MAAQpC,EAAOzI,GAAO6K,MAAQ,CAAC,GAAC,IAAAC,EAAAA,EAAAA,GAAA,GACjE5L,EAAO+K,IAAW,MAGvB,CAAC,CAAC,ECjBFc,EAAe,SAAfA,EACJC,EACAC,EACAC,GACE,IACkDC,EADlDC,GAAAC,EAAAA,EAAAA,GACgBH,GAAe7M,OAAOU,KAAKiM,IAAO,IAApD,IAAAI,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAsD,KAA3CtN,EAAGiN,EAAA/L,MACNiK,EAAQ3H,EAAIsJ,EAAQ9M,GAE1B,GAAImL,EAAO,CACT,IAAQE,EAAwBF,EAAxBE,GAAOkC,GAAY1N,EAAAA,EAAAA,GAAKsL,EAAKqC,GAErC,GAAInC,GAAM0B,EAAS1B,EAAGvJ,MAAO,CAC3B,GAAIuJ,EAAGK,IAAIE,MAAO,CAChBP,EAAGK,IAAIE,QACP,KACD,CAAM,GAAIP,EAAGoC,MAAQpC,EAAGoC,KAAK,GAAG7B,MAAO,CACtCP,EAAGoC,KAAK,GAAG7B,QACX,KACD,CACF,MAAUtK,EAASiM,IAClBV,EAAaU,EAAcR,EAE9B,CACF,QAAAW,GAAAR,EAAAS,EAAAD,EAAA,SAAAR,EAAAU,GAAA,CACH,ECzBAC,GAAe,SACbC,GAAW,MAOP,CACJC,YAAaD,GAAQA,IAAS3J,EAAgBG,SAC9C0J,SAAUF,IAAS3J,EAAgBC,OACnC6J,WAAYH,IAAS3J,EAAgBE,SACrC6J,QAASJ,IAAS3J,EAAgBK,IAClC2J,UAAWL,IAAS3J,EAAgBI,UACrC,ECfD6J,GAAe,SACbtM,EACAoF,EACAmH,GAAqB,OAEpBA,IACAnH,EAAOO,UACNP,EAAOG,MAAMtF,IAAID,KACjBwM,EAAAA,EAAAA,GAAIpH,EAAOG,OAAOlB,MAChB,SAACoI,GAAS,OACRzM,EAAKuE,WAAWkI,IAChB,SAAS5G,KAAK7F,EAAK0M,MAAMD,EAAUjO,QAAQ,IAC7C,ECJNmO,GAAe,SACblE,EACA+B,EACAxK,GAEA,IAAM4M,EAAmBxL,EAAQM,EAAI+G,EAAQzI,IAG7C,OAFAiG,EAAI2G,EAAkB,OAAQpC,EAAMxK,IACpCiG,EAAIwC,EAAQzI,EAAM4M,GACXnE,CACT,ECnBAoE,GAAe,SAACzN,GAAc,MAAwC,mBAAVA,CAAmB,ECE/E0N,GAAe,SAAC7N,GAAqB,MAClB,SAAjBA,EAAQC,IAAe,ECHzB6N,GAAe,SAAC3N,GAAc,MACX,oBAAVA,CAAoB,ECC7B4N,GAAe,SAAC5N,GACd,IAAKsB,EACH,OAAO,EAGT,IAAMuM,EAAQ7N,EAAUA,EAAsB8N,cAA6B,EAC3E,OACE9N,aACC6N,GAASA,EAAME,YAAcF,EAAME,YAAYvM,YAAcA,YAElE,ECTAwM,GAAe,SAAChO,GAAc,OAAuB8F,EAAS9F,EAAM,ECDpEiO,GAAe,SAACpO,GAAqB,MAClB,UAAjBA,EAAQC,IAAgB,ECH1BoO,GAAe,SAAClO,GAAc,OAAsBA,aAAiBmO,MAAM,ECOrEC,GAAqC,CACzCpO,OAAO,EACPoJ,SAAS,GAGLiF,GAAc,CAAErO,OAAO,EAAMoJ,SAAS,GAE5CkF,GAAe,SAACC,GACd,GAAIlO,MAAMC,QAAQiO,GAAU,CAC1B,GAAIA,EAAQnP,OAAS,EAAG,CACtB,IAAM2I,EAASwG,EACZtM,QAAO,SAACuM,GAAM,OAAKA,GAAUA,EAAO/N,UAAY+N,EAAO/I,QAAQ,IAC/DY,KAAI,SAACmI,GAAM,OAAKA,EAAOxO,KAAK,IAC/B,MAAO,CAAEA,MAAO+H,EAAQqB,UAAWrB,EAAO3I,OAC3C,CAED,OAAOmP,EAAQ,GAAG9N,UAAY8N,EAAQ,GAAG9I,SAErC8I,EAAQ,GAAGE,aAAetM,EAAYoM,EAAQ,GAAGE,WAAWzO,OAC1DmC,EAAYoM,EAAQ,GAAGvO,QAA+B,KAArBuO,EAAQ,GAAGvO,MAC1CqO,GACA,CAAErO,MAAOuO,EAAQ,GAAGvO,MAAOoJ,SAAS,GACtCiF,GACFD,EACL,CAED,OAAOA,EACT,EC7BMM,GAAkC,CACtCtF,SAAS,EACTpJ,MAAO,MAGT2O,GAAe,SAACJ,GAA4B,OAC1ClO,MAAMC,QAAQiO,GACVA,EAAQ3L,QACN,SAACgM,EAAUJ,GAAM,OACfA,GAAUA,EAAO/N,UAAY+N,EAAO/I,SAChC,CACE2D,SAAS,EACTpJ,MAAOwO,EAAOxO,OAEhB4O,CAAQ,GACdF,IAEFA,EAAa,EClBL,SAAUG,GACtBnM,EACA8H,GACiB,IAAjB1K,EAAIkE,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAG,WAEP,GACEgK,GAAUtL,IACTrC,MAAMC,QAAQoC,IAAWA,EAAOoM,MAAMd,KACtCP,GAAU/K,KAAYA,EAEvB,MAAO,CACL5C,KAAAA,EACA+K,QAASmD,GAAUtL,GAAUA,EAAS,GACtC8H,IAAAA,EAGN,CChBA,IAAAuE,GAAe,SAACC,GAA+B,OAC7C5O,EAAS4O,KAAoBd,GAAQc,GACjCA,EACA,CACEhP,MAAOgP,EACPnE,QAAS,GACV,ECoBPoE,GAAA,eAAAC,GAAAC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAe,SAAAC,EACbrF,EACAhE,EACAuF,EACA+D,EACAC,GAAsB,IAAAC,EAAAjF,EAAA+B,EAAAmD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAApP,EAAAqP,EAAA7F,EAAA3E,EAAAyK,EAAAC,EAAAvF,EAAAQ,EAAAgF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA1Q,EAAA6K,EAAA8F,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAhP,GAAAiP,GAAAC,GAAA9S,GAAA+S,GAAA,OAAAzC,EAAAA,EAAAA,KAAA0C,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAnM,MAAA,OAiBoC,GAjBpC6J,EAgBlBxF,EAAME,GAbRK,EAAGiF,EAAHjF,IACA+B,EAAIkD,EAAJlD,KACAmD,EAAQD,EAARC,SACAC,EAASF,EAATE,UACAC,EAASH,EAATG,UACAC,EAAGJ,EAAHI,IACAC,EAAGL,EAAHK,IACAC,EAAON,EAAPM,QACAC,EAAQP,EAARO,SACApP,EAAI6O,EAAJ7O,KACAqP,EAAaR,EAAbQ,cACA7F,EAAKqF,EAALrF,MACA3E,EAAQgK,EAARhK,SAEIyK,EAA+B5N,EAAI2D,EAAYrF,GAChDwJ,IAAS3E,EAAQ,CAAAsM,EAAAnM,KAAA,eAAAmM,EAAAE,OAAA,SACb,CAAC,GAAC,OAwCV,GAtCK9B,EAA6B5D,EAAOA,EAAK,GAAM/B,EAC/CI,EAAoB,SAACC,GACrB0E,GAA6BY,EAASrF,iBACxCqF,EAASvF,kBAAkB6C,GAAU5C,GAAW,GAAKA,GAAW,IAChEsF,EAASrF,iBAEb,EACMM,EAA6B,CAAC,EAC9BgF,EAAUnC,GAAazD,GACvB6F,EAAazQ,EAAgB4K,GAC7B8F,EAAoBF,GAAWC,EAC/BE,GACFN,GAAiBvC,GAAYlD,KAC7BrI,EAAYqI,EAAIxK,QAChBmC,EAAY+N,IACbtC,GAAcpD,IAAsB,KAAdA,EAAIxK,OACZ,KAAfkQ,GACC7P,MAAMC,QAAQ4P,KAAgBA,EAAW9Q,OACtCoR,EAAoBjF,EAAa2G,KACrC,KACAtR,EACA4K,EACAJ,GAEIqF,EAAmB,SACvBE,EACAwB,EACAC,GAGE,IAFFC,EAAOrO,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAGT,EACV+O,EAAOtO,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAGT,EAEJsH,EAAU8F,EAAYwB,EAAmBC,EAC/ChH,EAAMxK,IAAK2I,EAAAA,EAAAA,GAAA,CACTzJ,KAAM6Q,EAAY0B,EAAUC,EAC5BzH,QAAAA,EACAL,IAAAA,GACGgG,EAAkBG,EAAY0B,EAAUC,EAASzH,GAExD,IAGE2E,GACKnP,MAAMC,QAAQ4P,KAAgBA,EAAW9Q,OAC1CsQ,KACGY,IAAsBC,GAAWrQ,EAAkBgQ,KACnDzC,GAAUyC,KAAgBA,GAC1BG,IAAe/B,GAAiB/B,GAAMnD,SACtCgH,IAAYzB,GAAcpC,GAAMnD,UAAS,CAAA2I,EAAAnM,KAAA,SAE1B,GAF0B8K,EAErB1C,GAAU0B,GACjC,CAAE1P,QAAS0P,EAAU7E,QAAS6E,GAC9BX,GAAmBW,GAFf1P,EAAK0Q,EAAL1Q,MAAO6K,EAAO6F,EAAP7F,SAIX7K,EAAO,CAAF+R,EAAAnM,KAAA,SAML,GALFwF,EAAMxK,IAAK2I,EAAAA,EAAAA,GAAA,CACTzJ,KAAMyD,EACNsH,QAAAA,EACAL,IAAK2F,GACFK,EAAkBjN,EAAiCsH,IAEnDW,EAA0B,CAAFuG,EAAAnM,KAAA,SACA,OAA3BgF,EAAkBC,GAASkH,EAAAE,OAAA,SACpB7G,GAAK,WAKbmF,GAAarQ,EAAkB2P,IAAS3P,EAAkB4P,GAAK,CAAAiC,EAAAnM,KAAA,SAuCjE,GApCKiL,EAAY9B,GAAmBe,GAC/BgB,EAAY/B,GAAmBc,GAEhC3P,EAAkBgQ,IAAgB9I,MAAM8I,IAWrCc,GACHxG,EAAyB+H,aAAe,IAAItS,KAAKiQ,GAC9Ce,GAAoB,SAACuB,GAAa,OACtC,IAAIvS,MAAK,IAAIA,MAAOwS,eAAiB,IAAMD,EAAK,EAC5CtB,GAAqB,QAAZ1G,EAAI1K,KACbqR,GAAqB,QAAZ3G,EAAI1K,KAEfgG,EAAS+K,EAAU7Q,QAAUkQ,IAC/BS,EAAYO,GACRD,GAAkBf,GAAce,GAAkBJ,EAAU7Q,OAC5DmR,GACAjB,EAAaW,EAAU7Q,MACvBgR,GAAY,IAAI/Q,KAAK4Q,EAAU7Q,QAGjC8F,EAASgL,EAAU9Q,QAAUkQ,IAC/BU,EAAYM,GACRD,GAAkBf,GAAce,GAAkBH,EAAU9Q,OAC5DmR,GACAjB,EAAaY,EAAU9Q,MACvBgR,GAAY,IAAI/Q,KAAK6Q,EAAU9Q,UA9B/B+Q,GACHvG,EAAyByF,gBACzBC,GAAcA,EAAaA,GACzBhQ,EAAkB2Q,EAAU7Q,SAC/B2Q,EAAYI,GAAcF,EAAU7Q,OAEjCE,EAAkB4Q,EAAU9Q,SAC/B4Q,EAAYG,GAAcD,EAAU9Q,SA2BpC2Q,IAAaC,EAAS,CAAAmB,EAAAnM,KAAA,SAOtB,GANF6K,IACIE,EACFE,EAAUhG,QACViG,EAAUjG,QACVtH,EACAA,GAEGiI,EAA0B,CAAFuG,EAAAnM,KAAA,SACa,OAAxCgF,EAAkBQ,EAAMxK,GAAOiK,SAASkH,EAAAE,OAAA,SACjC7G,GAAK,YAMfuE,IAAaC,GACbW,KACAzK,EAASoK,IAAgBV,GAAgBnP,MAAMC,QAAQ4P,IAAa,CAAA6B,EAAAnM,KAAA,SASzB,GAPtCwL,GAAkBrC,GAAmBY,GACrC0B,GAAkBtC,GAAmBa,GACrCe,IACHzQ,EAAkBkR,GAAgBpR,QACnCkQ,EAAW9Q,QAAUgS,GAAgBpR,MACjC4Q,IACH1Q,EAAkBmR,GAAgBrR,QACnCkQ,EAAW9Q,QAAUiS,GAAgBrR,OAEnC2Q,KAAaC,GAAS,CAAAmB,EAAAnM,KAAA,SAKtB,GAJF6K,EACEE,GACAS,GAAgBvG,QAChBwG,GAAgBxG,SAEbW,EAA0B,CAAFuG,EAAAnM,KAAA,SACa,OAAxCgF,EAAkBQ,EAAMxK,GAAOiK,SAASkH,EAAAE,OAAA,SACjC7G,GAAK,YAKd2E,GAAYQ,IAAWzK,EAASoK,GAAW,CAAA6B,EAAAnM,KAAA,SACT,GADS4L,GACJzC,GAAmBgB,GAA7C0B,GAAYD,GAAnBxR,MAAqB6K,GAAO2G,GAAP3G,SAEzBqD,GAAQuD,KAAkBvB,EAAWwC,MAAMjB,IAAa,CAAAM,EAAAnM,KAAA,SAMxD,GALFwF,EAAMxK,IAAK2I,EAAAA,EAAAA,GAAA,CACTzJ,KAAMyD,EACNsH,QAAAA,GACAL,IAAAA,GACGgG,EAAkBjN,EAAgCsH,KAElDW,EAA0B,CAAFuG,EAAAnM,KAAA,SACA,OAA3BgF,EAAkBC,IAASkH,EAAAE,OAAA,SACpB7G,GAAK,YAKd4E,EAAU,CAAF+B,EAAAnM,KAAA,aACN+H,GAAWqC,GAAW,CAAF+B,EAAAnM,KAAA,gBAAAmM,EAAAnM,KAAA,GACDoK,EAASE,EAAYjK,GAAW,QACG,GADlDvD,GAAMqP,EAAAY,OACNhB,GAAgB9C,GAAiBnM,GAAQyN,IAE5B,CAAF4B,EAAAnM,KAAA,SAOb,GANFwF,EAAMxK,IAAK2I,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACNoI,IACAnB,EACDjN,EACAoO,GAAc9G,UAGbW,EAA0B,CAAFuG,EAAAnM,KAAA,SACc,OAAzCgF,EAAkB+G,GAAc9G,SAASkH,EAAAE,OAAA,SAClC7G,GAAK,QAAA2G,EAAAnM,KAAA,qBAGPxF,EAAS4P,GAAW,CAAF+B,EAAAnM,KAAA,SACvBgM,GAAmB,CAAC,EAAeG,EAAAa,IAAAxD,EAAAA,EAAAA,KAAAzP,KAErBqQ,GAAQ,YAAA+B,EAAAc,GAAAd,EAAAa,MAAAxG,KAAE,CAAF2F,EAAAnM,KAAA,SAAZ,GAAH9G,GAAGiT,EAAAc,GAAA7S,MACPuE,EAAcqN,KAAsBpG,EAAwB,CAAAuG,EAAAnM,KAAA,gBAAAmM,EAAAE,OAAA,oBAI3B,OAJ2BF,EAAAe,GAI3CjE,GAAgBkD,EAAAnM,KAAA,GAC9BoK,EAASlR,IAAKoR,EAAYjK,GAAW,QAAA8L,EAAAgB,GAAAhB,EAAAY,KAAAZ,EAAAiB,GAC3C7C,EAAQ4B,EAAAkB,GACRnU,IAHI6S,IAAgB,EAAHI,EAAAe,IAAAf,EAAAgB,GAAAhB,EAAAiB,GAAAjB,EAAAkB,OAOjBrB,IAAgBrI,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACXoI,IACAnB,EAAkB1R,GAAK6S,GAAc9G,UAG1CD,EAAkB+G,GAAc9G,SAE5BW,IACFJ,EAAMxK,GAAQgR,KAEjBG,EAAAnM,KAAA,oBAGErB,EAAcqN,IAAmB,CAAFG,EAAAnM,KAAA,SAIhC,GAHFwF,EAAMxK,IAAK2I,EAAAA,EAAAA,GAAA,CACTiB,IAAK2F,GACFyB,IAEApG,EAA0B,CAAFuG,EAAAnM,KAAA,gBAAAmM,EAAAE,OAAA,SACpB7G,GAAK,QAMI,OAAxBR,GAAkB,GAAMmH,EAAAE,OAAA,SACjB7G,GAAK,yBAAA2G,EAAAmB,OAAA,GAAA5D,EAAA,KACb,gBA7PD6D,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,OAAArE,EAAAsE,MAAA,KAAAxP,UAAA,KCJc,SAAUyP,GAAM3M,EAAatE,GACzC,IAAMkR,EAAQrT,MAAMC,QAAQkC,GACxBA,EACAgE,EAAMhE,GACN,CAACA,GACDkE,EAAalE,GAEXmR,EAA+B,IAAjBD,EAAMtU,OAAe0H,EA3B3C,SAAiBA,EAAa8M,GAI5B,IAHA,IAAMxU,EAASwU,EAAWtG,MAAM,GAAI,GAAGlO,OACnC2H,EAAQ,EAELA,EAAQ3H,GACb0H,EAAS3E,EAAY2E,GAAUC,IAAUD,EAAO8M,EAAW7M,MAG7D,OAAOD,CACT,CAkBoD+M,CAAQ/M,EAAQ4M,GAE5D3M,EAAQ2M,EAAMtU,OAAS,EACvBN,EAAM4U,EAAM3M,GAclB,OAZI4M,UACKA,EAAY7U,GAIT,IAAViI,IACE3G,EAASuT,IAAgBpP,EAAcoP,IACtCtT,MAAMC,QAAQqT,IA5BrB,SAAsBpR,GACpB,IAAK,IAAMzD,KAAOyD,EAChB,GAAIA,EAAIlB,eAAevC,KAASqD,EAAYI,EAAIzD,IAC9C,OAAO,EAGX,OAAO,CACT,CAqBqCgV,CAAaH,KAE9CF,GAAM3M,EAAQ4M,EAAMpG,MAAM,GAAI,IAGzBxG,CACT,CCnCc,SAAUiN,KACtB,IAAIC,EAA4B,GAqBhC,MAAO,CACL,aAAIC,GACF,OAAOD,C,EAETpO,KAvBW,SAAC5F,GAAY,IACSkU,EADTC,GAAAlI,EAAAA,EAAAA,GACD+H,GAAU,IAAjC,IAAAG,EAAAjI,MAAAgI,EAAAC,EAAAhI,KAAAC,MAAmC,KAAxBgI,EAAQF,EAAAlU,MACjBoU,EAASxO,MAAQwO,EAASxO,KAAK5F,EAChC,QAAAwM,GAAA2H,EAAA1H,EAAAD,EAAA,SAAA2H,EAAAzH,GAAA,CACH,EAoBE/G,UAlBgB,SAACyO,GAEjB,OADAJ,EAAWK,KAAKD,GACT,CACLvO,YAAa,WACXmO,EAAaA,EAAW/R,QAAO,SAACqS,GAAC,OAAKA,IAAMF,CAAQ,G,EAG1D,EAYEvO,YAVkB,WAClBmO,EAAa,EACf,EAUF,CCzCA,IAAAO,GAAe,SAACvU,GAAc,OAC5BE,EAAkBF,KAAWG,EAAaH,EAAM,ECDpC,SAAUwU,GAAUC,EAAcC,GAC9C,GAAIH,GAAYE,IAAYF,GAAYG,GACtC,OAAOD,IAAYC,EAGrB,GAAI3U,EAAa0U,IAAY1U,EAAa2U,GACxC,OAAOD,EAAQE,YAAcD,EAAQC,UAGvC,IAAMC,EAAQ3V,OAAOU,KAAK8U,GACpBI,EAAQ5V,OAAOU,KAAK+U,GAE1B,GAAIE,EAAMxV,SAAWyV,EAAMzV,OACzB,OAAO,EAGT,IAAK,IAAL0V,EAAA,EAAAC,EAAkBH,EAAKE,EAAAC,EAAA3V,OAAA0V,IAAE,CAApB,IAAMhW,EAAGiW,EAAAD,GACNE,EAAOP,EAAQ3V,GAErB,IAAK+V,EAAMI,SAASnW,GAClB,OAAO,EAGT,GAAY,QAARA,EAAe,CACjB,IAAMoW,EAAOR,EAAQ5V,GAErB,GACGiB,EAAaiV,IAASjV,EAAamV,IACnC9U,EAAS4U,IAAS5U,EAAS8U,IAC3B7U,MAAMC,QAAQ0U,IAAS3U,MAAMC,QAAQ4U,IACjCV,GAAUQ,EAAME,GACjBF,IAASE,EAEb,OAAO,CAEV,CACF,CAED,OAAO,CACT,CC1CA,IAAAC,GAAe,SAACtV,GAAqB,MAClB,oBAAjBA,EAAQC,IAA0B,ECEpCwQ,GAAe,SAAC9F,GAAiB,OAC/ByD,GAAazD,IAAQ5K,EAAgB4K,EAAI,ECF3C4K,GAAe,SAAC5K,GAAQ,OAAKoD,GAAcpD,IAAQA,EAAI6K,WAAW,ECFlEC,GAAe,SAAI3T,GACjB,IAAK,IAAM7C,KAAO6C,EAChB,GAAIgM,GAAWhM,EAAK7C,IAClB,OAAO,EAGX,OAAO,CACT,ECFA,SAASyW,GAAmB5T,GAAyC,IAAhCiK,EAAA5H,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAA8B,CAAC,EAC5DwR,EAAoBnV,MAAMC,QAAQqB,GAExC,GAAIvB,EAASuB,IAAS6T,EACpB,IAAK,IAAM1W,KAAO6C,EAEdtB,MAAMC,QAAQqB,EAAK7C,KAClBsB,EAASuB,EAAK7C,MAAUwW,GAAkB3T,EAAK7C,KAEhD8M,EAAO9M,GAAOuB,MAAMC,QAAQqB,EAAK7C,IAAQ,GAAK,CAAC,EAC/CyW,GAAgB5T,EAAK7C,GAAM8M,EAAO9M,KACxBoB,EAAkByB,EAAK7C,MACjC8M,EAAO9M,IAAO,GAKpB,OAAO8M,CACT,CAEA,SAAS6J,GACP9T,EACAsE,EACAyP,GAEA,IAAMF,EAAoBnV,MAAMC,QAAQqB,GAExC,GAAIvB,EAASuB,IAAS6T,EACpB,IAAK,IAAM1W,KAAO6C,EAEdtB,MAAMC,QAAQqB,EAAK7C,KAClBsB,EAASuB,EAAK7C,MAAUwW,GAAkB3T,EAAK7C,IAG9CqD,EAAY8D,IACZsO,GAAYmB,EAAsB5W,IAElC4W,EAAsB5W,GAAOuB,MAAMC,QAAQqB,EAAK7C,IAC5CyW,GAAgB5T,EAAK7C,GAAM,KAAGyK,EAAAA,EAAAA,GAAA,GACzBgM,GAAgB5T,EAAK7C,KAE9B2W,GACE9T,EAAK7C,GACLoB,EAAkB+F,GAAc,CAAC,EAAIA,EAAWnH,GAChD4W,EAAsB5W,IAI1B4W,EAAsB5W,IAAQ0V,GAAU7S,EAAK7C,GAAMmH,EAAWnH,IAKpE,OAAO4W,CACT,CAEA,IAAAC,GAAe,SAAI1R,EAAkBgC,GAAa,OAChDwP,GACExR,EACAgC,EACAsP,GAAgBtP,GACjB,EChEH2P,GAAe,SACb5V,EAAQ6V,GAAA,IACN5F,EAAa4F,EAAb5F,cAAesC,EAAWsD,EAAXtD,YAAauD,EAAUD,EAAVC,WAAU,OAExC3T,EAAYnC,GACRA,EACAiQ,EACU,KAAVjQ,EACE+V,IACA/V,GACCA,EACDA,EACFuS,GAAezM,EAAS9F,GACxB,IAAIC,KAAKD,GACT8V,EACAA,EAAW9V,GACXA,CAAK,ECTa,SAAAgW,GAAc7L,GACpC,IAAMK,EAAML,EAAGK,IAEf,KAAIL,EAAGoC,KAAOpC,EAAGoC,KAAKuC,OAAM,SAACtE,GAAG,OAAKA,EAAI/E,QAAQ,IAAI+E,EAAI/E,UAIzD,OAAIiI,GAAYlD,GACPA,EAAIyL,MAGThI,GAAazD,GACRmE,GAAcxE,EAAGoC,MAAMvM,MAG5BmV,GAAiB3K,IACZ4C,EAAAA,EAAAA,GAAI5C,EAAI0L,iBAAiB7P,KAAI,SAAA8P,GAAQ,OAAAA,EAALnW,KAAiB,IAGtDJ,EAAW4K,GACN8D,GAAiBnE,EAAGoC,MAAMvM,MAG5B4V,GAAgBzT,EAAYqI,EAAIxK,OAASmK,EAAGK,IAAIxK,MAAQwK,EAAIxK,MAAOmK,EAC5E,CCxBA,IAAAiM,GAAe,SACbtK,EACA5B,EACAmM,EACA9G,GAEA,IAE8B+G,EAFxB1K,EAAiD,CAAC,EAAE2K,GAAAtK,EAAAA,EAAAA,GAEvCH,GAAW,IAA9B,IAAAyK,EAAArK,MAAAoK,EAAAC,EAAApK,KAAAC,MAAgC,KAArBxL,EAAI0V,EAAAtW,MACPiK,EAAe3H,EAAI4H,EAAStJ,GAElCqJ,GAASpD,EAAI+E,EAAQhL,EAAMqJ,EAAME,GAClC,QAAAqC,GAAA+J,EAAA9J,EAAAD,EAAA,SAAA+J,EAAA7J,GAAA,CAED,MAAO,CACL2J,aAAAA,EACA1V,OAAKyM,EAAAA,EAAAA,GAAMtB,GACXF,OAAAA,EACA2D,0BAAAA,EAEJ,ECtBAiH,GAAe,SACbC,GAAoD,OAEpDtU,EAAYsU,GACRA,EACAvI,GAAQuI,GACRA,EAAK7X,OACLwB,EAASqW,GACTvI,GAAQuI,EAAKzW,OACXyW,EAAKzW,MAAMpB,OACX6X,EAAKzW,MACPyW,CAAI,EClBVC,GAAe,SAACnI,GAAoB,OAClCA,EAAQnE,QACPmE,EAAQmB,UACPnB,EAAQsB,KACRtB,EAAQuB,KACRvB,EAAQoB,WACRpB,EAAQqB,WACRrB,EAAQwB,SACRxB,EAAQyB,SAAS,ECNG,SAAA2G,GACtBtN,EACAa,EACAtJ,GAKA,IAAMwK,EAAQ9I,EAAI+G,EAAQzI,GAE1B,GAAIwK,GAAS5E,EAAM5F,GACjB,MAAO,CACLwK,MAAAA,EACAxK,KAAAA,GAMJ,IAFA,IAAMD,EAAQC,EAAK+B,MAAM,KAElBhC,EAAMvB,QAAQ,CACnB,IAAMkH,EAAY3F,EAAMiW,KAAK,KACvB3M,EAAQ3H,EAAI4H,EAAS5D,GACrBuQ,EAAavU,EAAI+G,EAAQ/C,GAE/B,GAAI2D,IAAU5J,MAAMC,QAAQ2J,IAAUrJ,IAAS0F,EAC7C,MAAO,CAAE1F,KAAAA,GAGX,GAAIiW,GAAcA,EAAW/W,KAC3B,MAAO,CACLc,KAAM0F,EACN8E,MAAOyL,GAIXlW,EAAMmW,KACP,CAED,MAAO,CACLlW,KAAAA,EAEJ,CC7CA,IAAAmW,GAAe,SACb5J,EACAhC,EACA6L,EACAC,EAIArK,GAQA,OAAIA,EAAKI,WAEGgK,GAAepK,EAAKK,YACrB9B,GAAagC,IACb6J,EAAcC,EAAenK,SAAWF,EAAKE,WAC9CK,IACC6J,EAAcC,EAAelK,WAAaH,EAAKG,aACjDI,EAGX,ECtBA+J,GAAe,SAAI1M,EAAQ5J,GAAY,OACpCoB,EAAQM,EAAIkI,EAAK5J,IAAOxB,QAAUqU,GAAMjJ,EAAK5J,EAAK,EC+E/CuW,GAAiB,CACrBvK,KAAM3J,EAAgBG,SACtB6T,eAAgBhU,EAAgBE,SAChCiU,kBAAkB,G,SAGJC,KAKa,IAsCvBC,EAvCJjS,EAA8CrB,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,MAC9CuT,EAA2BvT,UAAA5E,OAAA,EAAA4E,UAAA,QAAA3B,EAEvB0H,GAAQR,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACP4N,IACA9R,GAEDsD,EAAsC,CACxC6O,YAAa,EACbzO,SAAS,EACTC,UAAW2E,GAAW5D,EAAS9F,eAC/BkF,cAAc,EACd6N,aAAa,EACbS,cAAc,EACdC,oBAAoB,EACpBtO,SAAS,EACTF,cAAe,CAAC,EAChBD,YAAa,CAAC,EACdI,OAAQ,CAAC,GAEPa,EAAU,CAAC,EACXhG,GACF9D,EAAS2J,EAAS9F,gBAAkB7D,EAAS2J,EAAShC,UAClDrG,EAAYqI,EAAS9F,eAAiB8F,EAAShC,SAC/C,CAAC,EACHE,EAAc8B,EAASvC,iBACvB,CAAC,EACD9F,EAAYwC,GACZmG,EAAS,CACXC,QAAQ,EACRF,OAAO,EACPjE,OAAO,GAELH,EAAgB,CAClBoE,MAAO,IAAIvI,IACX8V,QAAS,IAAI9V,IACb6F,MAAO,IAAI7F,IACXsE,MAAO,IAAItE,KAGT+V,EAAQ,EACNtT,EAAkB,CACtByE,SAAS,EACTE,aAAa,EACbC,eAAe,EACfC,cAAc,EACdC,SAAS,EACTC,QAAQ,GAEJvB,EAAoC,CACxCC,OAAQgM,KACRrM,MAAOqM,KACPvK,MAAOuK,MAEH8D,EACJxS,EAAMyS,cAAgBzS,EAAMyS,aAAaC,gBACrCC,EAA6BrL,GAAmB5C,EAAS6C,MACzDqL,EAA4BtL,GAAmB5C,EAASkN,gBACxDiB,EACJnO,EAASsM,eAAiBpT,EAAgBK,IAStCmG,EAAY,eAAA0O,GAAAhJ,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAA+I,EAAOC,GAA2B,IAAAjP,EAAA,OAAAgG,EAAAA,EAAAA,KAAA0C,MAAA,SAAAwG,GAAA,cAAAA,EAAAtG,KAAAsG,EAAA1S,MAAA,WACjDtB,EAAgB8E,UAAWiP,EAAiB,CAAAC,EAAA1S,KAAA,aAC9BmE,EAASwO,SAAQ,CAAAD,EAAA1S,KAAA,QAChB,OADgB0S,EAAAzF,GAC7BtO,EAAa+T,EAAA1S,KAAA,EAAQ4S,IAAgB,OAAAF,EAAAxF,GAAAwF,EAAA3F,KAAEtJ,OAAMiP,EAAA1F,IAAA,EAAA0F,EAAAzF,IAAAyF,EAAAxF,IAAAwF,EAAA1S,KAAA,uBAAA0S,EAAA1S,KAAA,GACvC6S,EAAyBvO,GAAS,GAAK,QAAAoO,EAAA1F,GAAA0F,EAAA3F,KAAA,SAF3CvJ,EAAOkP,EAAA1F,MAIGjK,EAAWS,SACzBtB,EAAU0B,MAAM5D,KAAK,CACnBwD,QAAAA,IAEH,yBAAAkP,EAAApF,OAAA,GAAAkF,EAAA,KAEJ,gBAZiBM,GAAA,OAAAP,EAAA3E,MAAA,KAAAxP,UAAA,KAcZ2U,EAAsB,SAAC3Y,GAAc,OACzCsE,EAAgB6E,cAChBrB,EAAU0B,MAAM5D,KAAK,CACnBuD,aAAcnJ,GACd,EAkEE4Y,EAAsB,SAC1BhY,EACAiY,EACA7Y,EACAwK,GAEA,IAAMP,EAAe3H,EAAI4H,EAAStJ,GAElC,GAAIqJ,EAAO,CACT,IAAMxH,EAAeH,EACnB2F,EACArH,EACAuB,EAAYnC,GAASsC,EAAI4B,EAAgBtD,GAAQZ,GAGnDmC,EAAYM,IACX+H,GAAQA,EAAyBsO,gBAClCD,EACIhS,EACEoB,EACArH,EACAiY,EAAuBpW,EAAeuT,GAAc/L,EAAME,KAE5D4O,GAAcnY,EAAM6B,GAExB4H,EAAOD,OAASX,GACjB,CACH,EAEMuP,EAAsB,SAC1BpY,EACAqY,EACA9L,EACA+L,EACAC,GAIA,IAAIC,GAAoB,EACpBC,GAAkB,EAChBC,EAA8D,CAClE1Y,KAAAA,GAGF,IAAKuM,GAAe+L,EAAa,CAC3B5U,EAAgByE,UAClBsQ,EAAkB1Q,EAAWI,QAC7BJ,EAAWI,QAAUuQ,EAAOvQ,QAAUwQ,IACtCH,EAAoBC,IAAoBC,EAAOvQ,SAGjD,IAAMyQ,EAAyBhF,GAC7BlS,EAAI4B,EAAgBtD,GACpBqY,GAGFI,EAAkB/W,EAAIqG,EAAWM,YAAarI,GAC9C4Y,EACI/F,GAAM9K,EAAWM,YAAarI,GAC9BiG,EAAI8B,EAAWM,YAAarI,GAAM,GACtC0Y,EAAOrQ,YAAcN,EAAWM,YAChCmQ,EACEA,GACC9U,EAAgB2E,aACfoQ,KAAqBG,CAC1B,CAED,GAAIrM,EAAa,CACf,IAAMsM,EAAyBnX,EAAIqG,EAAWO,cAAetI,GAExD6Y,IACH5S,EAAI8B,EAAWO,cAAetI,EAAMuM,GACpCmM,EAAOpQ,cAAgBP,EAAWO,cAClCkQ,EACEA,GACC9U,EAAgB4E,eACfuQ,IAA2BtM,EAElC,CAID,OAFAiM,GAAqBD,GAAgBrR,EAAU0B,MAAM5D,KAAK0T,GAEnDF,EAAoBE,EAAS,CAAC,CACvC,EAEMI,EAAsB,SAC1B9Y,EACAwI,EACAgC,EACAL,GAMA,IAzLqBc,EAyLf8N,EAAqBrX,EAAIqG,EAAWU,OAAQzI,GAC5CyX,EACJ/T,EAAgB8E,SAChBqE,GAAUrE,IACVT,EAAWS,UAAYA,EAazB,GAXI/D,EAAMuU,YAAcxO,GA/LHS,EAgMW,kBA7Gb,SAACjL,EAAyBwK,GAC7CvE,EAAI8B,EAAWU,OAAQzI,EAAMwK,GAC7BtD,EAAU0B,MAAM5D,KAAK,CACnByD,OAAQV,EAAWU,QAEvB,CAwGwCwQ,CAAajZ,EAAMwK,EAAM,GAA7DkM,EA/LF,SAACwC,GACCC,aAAanC,GACbA,EAAQoC,WAAWnO,EAAUiO,EAC/B,GA6LqBzU,EAAMuU,cAEzBG,aAAanC,GACbN,EAAqB,KACrBlM,EACIvE,EAAI8B,EAAWU,OAAQzI,EAAMwK,GAC7BqI,GAAM9K,EAAWU,OAAQzI,KAI5BwK,GAASoJ,GAAUmF,EAAoBvO,GAASuO,KAChDpV,EAAcwG,IACfsN,EACA,CACA,IAAM4B,GAAgB1Q,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjBwB,GACCsN,GAAqB5K,GAAUrE,GAAW,CAAEA,QAAAA,GAAY,CAAC,GAAC,IAC9DC,OAAQV,EAAWU,OACnBzI,KAAAA,IAGF+H,GAAUY,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACLZ,GACAsR,GAGLnS,EAAU0B,MAAM5D,KAAKqU,EACtB,CAEDtB,GAAoB,EACtB,EAEMH,EAAc,eAAA0B,GAAA/K,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAA8K,EAAOvZ,GAA0B,OAAAwO,EAAAA,EAAAA,KAAA0C,MAAA,SAAAsI,GAAA,cAAAA,EAAApI,KAAAoI,EAAAxU,MAAA,cAAAwU,EAAAnI,OAAA,SACtDlI,EAASwO,SACPtQ,EACA8B,EAASsQ,QACTjE,GACExV,GAAQoF,EAAOoE,MACfF,EACAH,EAASsM,aACTtM,EAASwF,6BAEZ,wBAAA6K,EAAAlH,OAAA,GAAAiH,EAAA,qBAViBG,GAAA,OAAAJ,EAAA1G,MAAA,KAAAxP,UAAA,KAYduW,EAA2B,eAAAC,GAAArL,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAoL,EAAO9Z,GAA2B,IAAA+Z,EAAArR,EAAAsR,EAAAC,EAAAC,EAAAC,EAAA,OAAA1L,EAAAA,EAAAA,KAAA0C,MAAA,SAAAiJ,GAAA,cAAAA,EAAA/I,KAAA+I,EAAAnV,MAAA,cAAAmV,EAAAnV,KAAA,EAC3C4S,IAAgB,OAEzC,GAFyCkC,EAAAK,EAAApI,KAAjCtJ,EAAMqR,EAANrR,OAEJ1I,EAAO,CAAAga,GAAA1O,EAAAA,EAAAA,GACUtL,GAAK,IAAxB,IAAAga,EAAAzO,MAAA0O,EAAAD,EAAAxO,KAAAC,MAAWxL,EAAIga,EAAA5a,OACPoL,EAAQ9I,EAAI+G,EAAQzI,IAEtBiG,EAAI8B,EAAWU,OAAQzI,EAAMwK,GAC7BqI,GAAM9K,EAAWU,OAAQzI,EAC9B,OAAA4L,GAAAmO,EAAAlO,EAAAD,EAAA,SAAAmO,EAAAjO,GAAA,CACF,MACC/D,EAAWU,OAASA,EACrB,OAAA0R,EAAA9I,OAAA,SAEM5I,GAAM,wBAAA0R,EAAA7H,OAAA,GAAAuH,EAAA,KACd,gBAfgCO,GAAA,OAAAR,EAAAhH,MAAA,KAAAxP,UAAA,KAiB3ByU,EAAwB,eAAAwC,GAAA9L,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAA6L,EAC/BtP,EACAuP,GAA8B,IAAAd,EAAAe,EAAAnR,EAAAE,EAAA8O,EAAAoC,EAAAC,EAAAC,EAAAvX,UAAA,OAAAoL,EAAAA,EAAAA,KAAA0C,MAAA,SAAA0J,GAAA,cAAAA,EAAAxJ,KAAAwJ,EAAA5V,MAAA,OAC9ByU,EAEIkB,EAAAnc,OAAA,QAAAiD,IAAAkZ,EAAA,GAAAA,EAAA,IACFE,OAAO,GACRD,EAAA5I,IAAAxD,EAAAA,EAAAA,KAAAzP,KAEkBiM,GAAM,WAAA4P,EAAA3I,GAAA2I,EAAA5I,MAAAxG,KAAE,CAAFoP,EAAA5V,KAAA,SACG,GADjBhF,EAAI4a,EAAA3I,GAAA7S,QACPiK,EAAQ2B,EAAOhL,IAEV,CAAF4a,EAAA5V,KAAA,SAC4B,GAA3BuE,EAAsBF,EAAtBE,GAAO8O,GAAUta,EAAAA,EAAAA,GAAKsL,EAAKyR,IAE/BvR,EAAI,CAAFqR,EAAA5V,KAAA,SAC8C,OAA5CyV,EAAmBrV,EAAO0B,MAAM7G,IAAIsJ,EAAGvJ,MAAK4a,EAAA5V,KAAA,GACzBqJ,GACvBhF,EACAhC,EACAiQ,EACAnO,EAASwF,4BAA8B4L,EACvCE,GACD,QANe,KAAVC,EAAUE,EAAA7I,MAQDxI,EAAGvJ,MAAO,CAAF4a,EAAA5V,KAAA,SACC,GAAtByU,EAAQoB,OAAQ,GACZN,EAAsB,CAAFK,EAAA5V,KAAA,gBAAA4V,EAAAvJ,OAAA,qBAKzBkJ,IACE7Y,EAAIgZ,EAAYnR,EAAGvJ,MAChBya,EACE9N,GACE5E,EAAWU,OACXiS,EACAnR,EAAGvJ,MAELiG,EAAI8B,EAAWU,OAAQc,EAAGvJ,KAAM0a,EAAWnR,EAAGvJ,OAChD6S,GAAM9K,EAAWU,OAAQc,EAAGvJ,OAAO,QAGjC,GAHiC4a,EAAA1I,GAG3CmG,GAAUuC,EAAA1I,GAAA,CAAA0I,EAAA5V,KAAA,gBAAA4V,EAAA5V,KAAA,GACD6S,EACLQ,EACAkC,EACAd,GACD,QAAAmB,EAAA5V,KAAA,uBAAA4V,EAAAvJ,OAAA,SAIAoI,EAAQoB,OAAK,yBAAAD,EAAAtI,OAAA,GAAAgI,EAAA,KACrB,gBAtD6BS,EAAAC,GAAA,OAAAX,EAAAzH,MAAA,KAAAxP,UAAA,KAsExBuV,EAAwB,SAAC3Y,EAAMe,GAAI,OACvCf,GAAQe,GAAQkF,EAAIoB,EAAarH,EAAMe,IACtC6S,GAAUqH,KAAa3X,EAAe,EAGnCiE,EAAyC,SAC7CxH,EACA8B,EACAyD,GAAQ,OAERH,EACEpF,EACAqF,GAAMuD,EAAAA,EAAAA,GAAA,GAEAc,EAAOD,MACPnC,EACA9F,EAAYM,GACZyB,EACA4B,EAASnF,IAAM+K,EAAAA,EAAAA,GAAA,GACZ/K,EAAQ8B,GACXA,GAENyD,EACAzD,EACD,EAaGsW,GAAgB,SACpBnY,EACAZ,GAEE,IADFuO,EAAAvK,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAA0B,CAAC,EAErBiG,EAAe3H,EAAI4H,EAAStJ,GAC9BqY,EAAsBjZ,EAE1B,GAAIiK,EAAO,CACT,IAAM6R,EAAiB7R,EAAME,GAEzB2R,KACDA,EAAerW,UACdoB,EAAIoB,EAAarH,EAAMgV,GAAgB5V,EAAO8b,IAEhD7C,EACErL,GAAckO,EAAetR,MAAQtK,EAAkBF,GACnD,GACAA,EAEFmV,GAAiB2G,EAAetR,MAClC4C,EAAAA,EAAAA,GAAI0O,EAAetR,IAAI+D,SAASwN,SAC9B,SAACC,GAAS,OACPA,EAAUC,SACThD,EACAhE,SAAS+G,EAAUhc,MAAM,IAEtB8b,EAAevP,KACpB3M,EAAgBkc,EAAetR,KACjCsR,EAAevP,KAAKnN,OAAS,EACzB0c,EAAevP,KAAKwP,SAClB,SAACG,GAAW,QACRA,EAAYpD,iBAAmBoD,EAAYzW,YAC5CyW,EAAYzb,QAAUJ,MAAMC,QAAQ2Y,KAC9BA,EAAkBrU,MACnB,SAACjD,GAAY,OAAKA,IAASua,EAAYlc,KAAK,IAE9CiZ,IAAeiD,EAAYlc,MAAM,IAEzC8b,EAAevP,KAAK,KACnBuP,EAAevP,KAAK,GAAG9L,UAAYwY,GAExC6C,EAAevP,KAAKwP,SAClB,SAACI,GAA0B,OACxBA,EAAS1b,QAAU0b,EAASnc,QAAUiZ,CAAU,IAG9CvL,GAAYoO,EAAetR,KACpCsR,EAAetR,IAAIxK,MAAQ,IAE3B8b,EAAetR,IAAIxK,MAAQiZ,EAEtB6C,EAAetR,IAAI1K,MACtBgI,EAAUC,OAAOnC,KAAK,CACpBhF,KAAAA,EACAmH,QAAMwB,EAAAA,EAAAA,GAAA,GAAOtB,MAKtB,EAEAsG,EAAQ2K,aAAe3K,EAAQ6N,cAC9BpD,EACEpY,EACAqY,EACA1K,EAAQ6N,YACR7N,EAAQ2K,aACR,GAGJ3K,EAAQ8N,gBAAkBC,GAAQ1b,EACpC,EAEM2b,GAAY,SAAZA,EAKJ3b,EACAZ,EACAuO,GAEA,IAAK,IAAMiO,KAAYxc,EAAO,CAC5B,IAAMiZ,EAAajZ,EAAMwc,GACnBlW,EAAY,GAAHmW,OAAM7b,EAAI,KAAA6b,OAAID,GACvBvS,EAAQ3H,EAAI4H,EAAS5D,IAE1BN,EAAO0B,MAAM7G,IAAID,IACf2T,GAAY0E,MACZhP,GAAUA,EAAME,KAClBpK,EAAakZ,GAEVF,GAAczS,EAAW2S,EAAY1K,GADrCgO,EAAUjW,EAAW2S,EAAY1K,EAEtC,CACH,EAEMmO,GAA0C,SAC9C9b,EACAZ,GAEE,IADFuO,EAAOvK,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAELiG,EAAQ3H,EAAI4H,EAAStJ,GACrB4O,EAAexJ,EAAO0B,MAAM7G,IAAID,GAChC+b,EAAajb,EAAY1B,GAE/B6G,EAAIoB,EAAarH,EAAM+b,GAEnBnN,GACF1H,EAAUJ,MAAM9B,KAAK,CACnBhF,KAAAA,EACAmH,QAAMwB,EAAAA,EAAAA,GAAA,GAAOtB,MAIZ3D,EAAgByE,SAAWzE,EAAgB2E,cAC5CsF,EAAQ2K,aAERpR,EAAU0B,MAAM5D,KAAK,CACnBhF,KAAAA,EACAqI,YAAa0M,GAAezR,EAAgB+D,GAC5Cc,QAASwQ,EAAU3Y,EAAM+b,OAI7B1S,GAAUA,EAAME,IAAOjK,EAAkByc,GAErC5D,GAAcnY,EAAM+b,EAAYpO,GADhCgO,GAAU3b,EAAM+b,EAAYpO,GAIlCrB,GAAUtM,EAAMoF,IAAW8B,EAAU0B,MAAM5D,MAAI2D,EAAAA,EAAAA,GAAC,CAAC,EAAIZ,IACrDb,EAAUC,OAAOnC,KAAK,CACpBhF,KAAAA,EACAmH,QAAMwB,EAAAA,EAAAA,GAAA,GAAOtB,MAEdoC,EAAOD,OAASmN,GACnB,EAEMpU,GAAQ,eAAAyZ,GAAAzN,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAkB,SAAAwN,EAAOrc,GAAK,IAAAxB,EAAA4B,EAAAkc,EAAA7S,EAAA8S,EAAAC,EAAA5T,EAAA6P,EAAA9L,EAAA8P,EAAAC,EAAAnS,EAAAoO,EAAAgE,EAAA9T,EAAA+T,EAAAC,EAAA,OAAAjO,EAAAA,EAAAA,KAAA0C,MAAA,SAAAwL,GAAA,cAAAA,EAAAtL,KAAAsL,EAAA1X,MAAA,OAMoB,GALxD5G,EAASwB,EAAMxB,OACjB4B,EAAO5B,EAAO4B,KACdkc,GAAsB,EACpB7S,EAAe3H,EAAI4H,EAAStJ,GAC5Bmc,EAAuB,WAAH,OACxB/d,EAAOc,KAAOkW,GAAc/L,EAAME,IAAM5J,EAAcC,EAAM,GAE1DyJ,EAAO,CAAFqT,EAAA1X,KAAA,SA2CF,GAxCCqT,EAAa8D,IACb5P,EACJ3M,EAAMV,OAAS+C,EAAOC,MAAQtC,EAAMV,OAAS+C,EAAOE,UAChDka,GACFvG,GAAczM,EAAME,MACnBJ,EAASwO,WACTjW,EAAIqG,EAAWU,OAAQzI,KACvBqJ,EAAME,GAAGoT,MACZxG,GACE5J,EACA7K,EAAIqG,EAAWO,cAAetI,GAC9B+H,EAAWqO,YACXiB,EACAD,GAEEkF,EAAUhQ,GAAUtM,EAAMoF,EAAQmH,GAExCtG,EAAIoB,EAAarH,EAAMqY,GAEnB9L,GACFlD,EAAME,GAAGjH,QAAU+G,EAAME,GAAGjH,OAAO1C,GACnC8W,GAAsBA,EAAmB,IAChCrN,EAAME,GAAGhH,UAClB8G,EAAME,GAAGhH,SAAS3C,GAGduK,EAAaiO,EACjBpY,EACAqY,EACA9L,GACA,GAGIgM,GAAgB5U,EAAcwG,IAAemS,GAElD/P,GACCrF,EAAUC,OAAOnC,KAAK,CACpBhF,KAAAA,EACAd,KAAMU,EAAMV,KACZiI,QAAMwB,EAAAA,EAAAA,GAAA,GAAOtB,MAGbgV,EAAsB,CAAFK,EAAA1X,KAAA,SACoB,OAA1CtB,EAAgB8E,SAAWK,IAAe6T,EAAArL,OAAA,SAGxCkH,GACArR,EAAU0B,MAAM5D,MAAI2D,EAAAA,EAAAA,GAAC,CAAE3I,KAAAA,GAAUsc,EAAU,CAAC,EAAInS,KAAc,QAMxC,IAFzBoC,GAAe+P,GAAWpV,EAAU0B,MAAM5D,MAAI2D,EAAAA,EAAAA,GAAC,CAAC,EAAIZ,IAErDgQ,GAAoB,IAEhB5O,EAASwO,SAAU,CAAF+E,EAAA1X,KAAA,gBAAA0X,EAAA1X,KAAA,GACM4S,EAAe,CAAC5X,IAAM,QAAAuc,EAAAG,EAAA3K,KAAvCtJ,EAAM8T,EAAN9T,OACF+T,EAA4BzG,GAChChO,EAAWU,OACXa,EACAtJ,GAEIyc,EAAoB1G,GACxBtN,EACAa,EACAkT,EAA0Bxc,MAAQA,GAGpCwK,EAAQiS,EAAkBjS,MAC1BxK,EAAOyc,EAAkBzc,KAEzBwI,EAAU7E,EAAc8E,GAAQiU,EAAA1X,KAAA,wBAAA0X,EAAA1X,KAAA,GAGxBqJ,GACJhF,EACAhC,EACAiQ,EACAnO,EAASwF,2BACV,QAKiD,GALjD+N,EAAA1K,GACDhS,EAPFwK,EAAKkS,EAAA3K,KAAA2K,EAAA1K,MASLkK,EACE1V,MAAM6R,IACNA,IAAe3W,EAAI2F,EAAarH,EAAMqY,IAEf,CAAFqE,EAAA1X,KAAA,aACjBwF,EAAO,CAAFkS,EAAA1X,KAAA,SACPwD,GAAU,EAAMkU,EAAA1X,KAAA,qBACPtB,EAAgB8E,QAAS,CAAFkU,EAAA1X,KAAA,gBAAA0X,EAAA1X,KAAA,GAChB6S,EAAyBvO,GAAS,GAAK,QAAvDd,EAAOkU,EAAA3K,KAAA,QAKTmK,IACF7S,EAAME,GAAGoT,MACPjB,GACErS,EAAME,GAAGoT,MAIb7D,EAAoB9Y,EAAMwI,EAASgC,EAAOL,IAC3C,yBAAAuS,EAAApK,OAAA,GAAA2J,EAAA,KAEJ,gBApHaW,GAAA,OAAAZ,EAAApJ,MAAA,KAAAxP,UAAA,KAsHRsY,GAAO,eAAAmB,GAAAtO,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAiC,SAAAqO,EAAO9c,GAAI,IAAA2N,EAAAnF,EAAAwI,EAAA+L,EAAAtU,EAAAuU,EAAA5Z,UAAA,OAAAoL,EAAAA,EAAAA,KAAA0C,MAAA,SAAA+L,GAAA,cAAAA,EAAA7L,KAAA6L,EAAAjY,MAAA,OAK7B,GAL+B2I,EAAOqP,EAAAxe,OAAA,QAAAiD,IAAAub,EAAA,GAAAA,EAAA,GAAG,CAAC,EAG9DD,EAAa9Y,EAAsBjE,GAEzC+X,GAAoB,IAEhB5O,EAASwO,SAAU,CAAFsF,EAAAjY,KAAA,gBAAAiY,EAAAjY,KAAA,EACE2U,EACnBpY,EAAYvB,GAAQA,EAAO+c,GAC5B,OAFKtU,EAAMwU,EAAAlL,KAIZvJ,EAAU7E,EAAc8E,GACxBuI,EAAmBhR,GACd+c,EAAW1Y,MAAK,SAACrE,GAAI,OAAK0B,EAAI+G,EAAQzI,EAAK,IAC5CwI,EAAQyU,EAAAjY,KAAA,qBACHhF,EAAM,CAAFid,EAAAjY,KAAA,gBAAAiY,EAAAjY,KAAA,GAELkY,QAAQxa,IACZqa,EAAWtX,IAAG,eAAA0X,GAAA5O,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAC,SAAA2O,EAAO1X,GAAS,IAAA2D,EAAA,OAAAmF,EAAAA,EAAAA,KAAA0C,MAAA,SAAAmM,GAAA,cAAAA,EAAAjM,KAAAiM,EAAArY,MAAA,OACQ,OAA/BqE,EAAQ3H,EAAI4H,EAAS5D,GAAU2X,EAAArY,KAAA,EACxB6S,EACXxO,GAASA,EAAME,IAAEuB,EAAAA,EAAAA,GAAA,GAAMpF,EAAY2D,GAAUA,GAC9C,cAAAgU,EAAAhM,OAAA,SAAAgM,EAAAtL,MAAA,wBAAAsL,EAAA/K,OAAA,GAAA8K,EAAA,KACF,gBAAAE,GAAA,OAAAH,EAAAvK,MAAA,KAAAxP,UAAA,EALa,KAMf,UARH4N,EAAgBiM,EAAAlL,KASd7D,MAAM5M,WACgByG,EAAWS,UAAYK,IAAeoU,EAAAjY,KAAA,wBAAAiY,EAAAjY,KAAA,GAE3B6S,EAAyBvO,GAAQ,QAApE0H,EAAmBxI,EAAOyU,EAAAlL,KAAA,QAmBxB,OAhBJ7K,EAAU0B,MAAM5D,MAAI2D,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,GACfzD,EAASlF,IACb0D,EAAgB8E,SAAWA,IAAYT,EAAWS,QAC/C,CAAC,EACD,CAAExI,KAAAA,IACFmJ,EAASwO,WAAa3X,EAAO,CAAEwI,QAAAA,GAAY,CAAC,GAAC,IACjDC,OAAQV,EAAWU,OACnBF,cAAc,KAGhBoF,EAAQ4P,cACLvM,GACDjG,EACEzB,GACA,SAACpL,GAAG,OAAKA,GAAOwD,EAAIqG,EAAWU,OAAQvK,EAAI,GAC3C8B,EAAO+c,EAAa3X,EAAOoE,OAC3ByT,EAAA5L,OAAA,SAEGL,GAAgB,yBAAAiM,EAAA3K,OAAA,GAAAwK,EAAA,KACxB,gBAnDYU,GAAA,OAAAX,EAAAjK,MAAA,KAAAxP,UAAA,KAqDP6X,GAA4C,SAChD8B,GAIA,IAAM5V,GAAMwB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPrF,GACCmG,EAAOD,MAAQnC,EAAc,CAAC,GAGpC,OAAO9F,EAAYwb,GACf5V,EACAjC,EAAS6X,GACTrb,EAAIyF,EAAQ4V,GACZA,EAAWtX,KAAI,SAACzF,GAAI,OAAK0B,EAAIyF,EAAQnH,EAAK,GAChD,EAEMyd,GAAoD,SACxDzd,EACAgD,GAAS,MACL,CACJqH,UAAW3I,GAAKsB,GAAa+E,GAAYU,OAAQzI,GACjDmI,UAAWzG,GAAKsB,GAAa+E,GAAYM,YAAarI,GACtDuK,YAAa7I,GAAKsB,GAAa+E,GAAYO,cAAetI,GAC1DwK,MAAO9I,GAAKsB,GAAa+E,GAAYU,OAAQzI,GAC9C,EAaK0d,GAA0C,SAAC1d,EAAMwK,EAAOmD,GAC5D,IAAM/D,GAAOlI,EAAI4H,EAAStJ,EAAM,CAAEuJ,GAAI,CAAC,IAAKA,IAAM,CAAC,GAAGK,IAEtD3D,EAAI8B,EAAWU,OAAQzI,GAAI2I,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACtB6B,GAAK,IACRZ,IAAAA,KAGF1C,EAAU0B,MAAM5D,KAAK,CACnBhF,KAAAA,EACAyI,OAAQV,EAAWU,OACnBD,SAAS,IAGXmF,GAAWA,EAAQ4P,aAAe3T,GAAOA,EAAIE,OAASF,EAAIE,OAC5D,EA2BMH,GAA8C,SAAC3J,GAAsB,IACA2d,EADhBhQ,EAAOvK,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAACwa,GAAAvS,EAAAA,EAAAA,GAC7CrL,EAAOiE,EAAsBjE,GAAQoF,EAAOoE,OAAK,IAAzE,IAAAoU,EAAAtS,MAAAqS,EAAAC,EAAArS,KAAAC,MAA2E,KAAhE9F,EAASiY,EAAAve,MAClBgG,EAAOoE,MAAMqU,OAAOnY,GACpBN,EAAO0B,MAAM+W,OAAOnY,GAEfiI,EAAQmQ,YACXjL,GAAMvJ,EAAS5D,GACfmN,GAAMxL,EAAa3B,KAGpBiI,EAAQoQ,WAAalL,GAAM9K,EAAWU,OAAQ/C,IAC9CiI,EAAQqQ,WAAanL,GAAM9K,EAAWM,YAAa3C,IACnDiI,EAAQsQ,aAAepL,GAAM9K,EAAWO,cAAe5C,IACvDyD,EAASvC,mBACP+G,EAAQuQ,kBACTrL,GAAMvP,EAAgBoC,EACzB,QAAAkG,GAAAgS,EAAA/R,EAAAD,EAAA,SAAAgS,EAAA9R,GAAA,CAED5E,EAAUC,OAAOnC,KAAK,CACpBmC,QAAMwB,EAAAA,EAAAA,GAAA,GAAOtB,KAGfH,EAAU0B,MAAM5D,MAAI2D,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACjBZ,GACE4F,EAAQqQ,UAAiB,CAAE7V,QAASwQ,KAAhB,CAAC,KAG3BhL,EAAQwQ,aAAetV,GAC1B,EAEMG,GAA0C,SAA1CA,EAA2ChJ,GAAsB,IAAhB2N,EAAOvK,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC5DiG,EAAQ3H,EAAI4H,EAAStJ,GACnBoe,EAAoBvR,GAAUc,EAAQ9I,UA4B5C,OA1BAoB,EAAIqD,EAAStJ,GAAI2I,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACXU,GAAS,CAAC,GAAC,IACfE,IAAEZ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACIU,GAASA,EAAME,GAAKF,EAAME,GAAK,CAAEK,IAAK,CAAE5J,KAAAA,KAAQ,IACpDA,KAAAA,EACAwJ,OAAO,GACJmE,MAGPvI,EAAOoE,MAAMhE,IAAIxF,GAEZuB,EAAYoM,EAAQvO,QACvB6G,EAAIoB,EAAarH,EAAM2N,EAAQvO,OAGjCiK,EACI+U,GACAnY,EACEoB,EACArH,EACA2N,EAAQ9I,cACJpD,EACAC,EAAI2F,EAAarH,EAAMoV,GAAc/L,EAAME,MAEjDyO,EAAoBhY,GAAM,EAAM2N,EAAQvO,QAE5CuJ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACMyV,EAAoB,CAAEvZ,SAAU8I,EAAQ9I,UAAa,CAAC,GACtDsE,EAASkV,YACT,CACEvP,WAAYnB,EAAQmB,SACpBG,IAAK2G,GAAajI,EAAQsB,KAC1BC,IAAK0G,GAAajI,EAAQuB,KAC1BF,UAAW4G,GAAqBjI,EAAQqB,WACxCD,UAAW6G,GAAajI,EAAQoB,WAChCI,QAASyG,GAAajI,EAAQwB,UAEhC,CAAC,GAAC,IACNnP,KAAAA,EACAuC,SAAAA,GACAD,OAAQC,GACRqH,IAAK,SAAF0U,GAAA,SAAA1U,EAAA2U,GAAA,OAAAD,EAAA1L,MAAA,KAAAxP,UAAA,QAAAwG,EAAA4U,SAAA,kBAAAF,EAAAE,UAAA,EAAA5U,CAAA,CAAE,WAACA,GACJ,GAAIA,EAAK,CACPZ,EAAShJ,EAAM2N,GACftE,EAAQ3H,EAAI4H,EAAStJ,GAErB,IAAMye,EAAWld,EAAYqI,EAAIxK,QAC7BwK,EAAI8U,kBACD9U,EAAI8U,iBAAiB,yBAAyB,IAEjD9U,EACE+U,EAAkBjP,GAAkB+O,GACpC9S,EAAOtC,EAAME,GAAGoC,MAAQ,GAE9B,GACEgT,EACIhT,EAAK3H,MAAK,SAAC4J,GAAW,OAAKA,IAAW6Q,CAAQ,IAC9CA,IAAapV,EAAME,GAAGK,IAE1B,OAGF3D,EAAIqD,EAAStJ,EAAM,CACjBuJ,IAAEZ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACGU,EAAME,IACLoV,EACA,CACEhT,KAAM,GAAFkQ,QAAArP,EAAAA,EAAAA,GACCb,EAAKtK,OAAOmT,KAAK,CACpBiK,IAAQjS,EAAAA,EAAAA,GACJ/M,MAAMC,QAAQgC,EAAI4B,EAAgBtD,IAAS,CAAC,CAAC,GAAK,KAExD4J,IAAK,CAAE1K,KAAMuf,EAASvf,KAAMc,KAAAA,IAE9B,CAAE4J,IAAK6U,MAIfzG,EAAoBhY,GAAM,OAAOyB,EAAWgd,EAC7C,MACCpV,EAAQ3H,EAAI4H,EAAStJ,EAAM,CAAC,IAElBuJ,KACRF,EAAME,GAAGC,OAAQ,IAGlBL,EAASvC,kBAAoB+G,EAAQ/G,qBAClC9G,EAAmBsF,EAAO0B,MAAO9G,KAASyJ,EAAOC,SACnDtE,EAAO2R,QAAQvR,IAAIxF,E,KAI7B,EAEM4e,GAAc,WAAH,OACfzV,EAASqN,kBACTzL,EACEzB,GACA,SAACpL,GAAG,OAAKA,GAAOwD,EAAIqG,EAAWU,OAAQvK,EAAI,GAC3CkH,EAAOoE,MACR,EAEGqV,GACJ,SAACC,EAASC,GAAS,sBAAAC,GAAAzQ,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAK,SAAAwQ,EAAOpT,GAAC,IAAAqT,EAAAC,EAAA1W,EAAAtB,EAAA,OAAAqH,EAAAA,EAAAA,KAAA0C,MAAA,SAAAkO,GAAA,cAAAA,EAAAhO,KAAAgO,EAAApa,MAAA,OAS3B,GARC6G,IACFA,EAAEwT,gBAAkBxT,EAAEwT,iBACtBxT,EAAEyT,SAAWzT,EAAEyT,WAEbJ,EAAcpe,EAAYuG,GAE9BH,EAAU0B,MAAM5D,KAAK,CACnB6R,cAAc,KAGZ1N,EAASwO,SAAU,CAAFyH,EAAApa,KAAA,gBAAAoa,EAAApa,KAAA,EACc4S,IAAgB,OAAAuH,EAAAC,EAAArN,KAAzCtJ,EAAM0W,EAAN1W,OAAQtB,EAAMgY,EAANhY,OAChBY,EAAWU,OAASA,EACpByW,EAAc/X,EAAOiY,EAAApa,KAAA,wBAAAoa,EAAApa,KAAA,GAEf6S,EAAyBvO,GAAQ,QAGR,GAAjCuJ,GAAM9K,EAAWU,OAAQ,SAErB9E,EAAcoE,EAAWU,QAAS,CAAF2W,EAAApa,KAAA,SAG/B,OAFHkC,EAAU0B,MAAM5D,KAAK,CACnByD,OAAQ,CAAC,IACR2W,EAAApa,KAAA,GACG8Z,EAAQI,EAA6BrT,GAAE,QAAAuT,EAAApa,KAAA,qBAEzC+Z,EAAW,CAAFK,EAAApa,KAAA,gBAAAoa,EAAApa,KAAA,GACL+Z,GAASpW,EAAAA,EAAAA,GAAC,CAAC,EAAIZ,EAAWU,QAAUoD,GAAE,QAE9C+S,KACAxF,WAAWwF,IAAa,QAG1B1X,EAAU0B,MAAM5D,KAAK,CACnBoR,aAAa,EACbS,cAAc,EACdC,mBAAoBnT,EAAcoE,EAAWU,QAC7CmO,YAAa7O,EAAW6O,YAAc,EACtCnO,OAAQV,EAAWU,SAClB,yBAAA2W,EAAA9M,OAAA,GAAA2M,EAAA,KACJ,gBAAAM,GAAA,OAAAP,EAAApM,MAAA,KAAAxP,UAAA,EAzCkB,EAyClB,EAqCGoc,GAAqC,SACzCna,GAEE,IADFoa,EAAgBrc,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEdsc,EAAgBra,GAAc/B,EAC9Bqc,EAAqB7e,EAAY4e,GACjCvY,EACJ9B,IAAe1B,EAAc0B,GACzBsa,EACArc,EAMN,GAJKmc,EAAiBG,oBACpBtc,EAAiBoc,IAGdD,EAAiBI,WAAY,CAChC,GAAIJ,EAAiBtI,iBAAmBF,EAA0B,KAC5B6I,EAD4BC,GAAA1U,EAAAA,EAAAA,GACxCjG,EAAOoE,OAAK,IAApC,IAAAuW,EAAAzU,MAAAwU,EAAAC,EAAAxU,KAAAC,MAAsC,KAA3B9F,EAASoa,EAAA1gB,MAClBsC,EAAIqG,EAAWM,YAAa3C,GACxBO,EAAIkB,EAAQzB,EAAWhE,EAAI2F,EAAa3B,IACxCoW,GACEpW,EACAhE,EAAIyF,EAAQzB,GAEnB,QAAAkG,GAAAmU,EAAAlU,EAAAD,EAAA,SAAAmU,EAAAjU,GAAA,CACF,KAAM,CACL,GAAIpL,GAASa,EAAY8D,GAAa,KACL2a,EADKC,GAAA5U,EAAAA,EAAAA,GACjBjG,EAAOoE,OAAK,IAA/B,IAAAyW,EAAA3U,MAAA0U,EAAAC,EAAA1U,KAAAC,MAAiC,KAAtBxL,EAAIggB,EAAA5gB,MACPiK,EAAQ3H,EAAI4H,EAAStJ,GAC3B,GAAIqJ,GAASA,EAAME,GAAI,CACrB,IAAM2R,EAAiBzb,MAAMC,QAAQ2J,EAAME,GAAGoC,MAC1CtC,EAAME,GAAGoC,KAAK,GACdtC,EAAME,GAAGK,IAEb,GAAIoD,GAAckO,GAAiB,CACjC,IAAMgF,EAAOhF,EAAeiF,QAAQ,QACpC,GAAID,EAAM,CACRA,EAAKE,QACL,KACD,CACF,CACF,CACF,QAAAxU,GAAAqU,EAAApU,EAAAD,EAAA,SAAAqU,EAAAnU,GAAA,CACF,CAEDxC,EAAU,CAAC,CACZ,CAEDjC,EAAc5C,EAAMmC,iBAChB6Y,EAAiBG,kBACf9e,EAAYwC,GACZ,CAAC,EACHxC,EAAYqG,GAEhBD,EAAUJ,MAAM9B,KAAK,CACnBmC,QAAMwB,EAAAA,EAAAA,GAAA,GAAOxB,KAGfD,EAAUC,OAAOnC,KAAK,CACpBmC,QAAMwB,EAAAA,EAAAA,GAAA,GAAOxB,IAEhB,CAED/B,EAAS,CACPoE,MAAO,IAAIvI,IACX8V,QAAS,IAAI9V,IACb6F,MAAO,IAAI7F,IACXsE,MAAO,IAAItE,IACX0E,UAAU,EACVmE,MAAO,KAGRL,EAAOD,OAASmN,IAEjBlN,EAAOD,OAAS9F,EAAgB8E,WAAaiX,EAAiBtB,YAE9D1U,EAAOlE,QAAUd,EAAMmC,iBAEvBM,EAAU0B,MAAM5D,KAAK,CACnB4R,YAAa6I,EAAiBY,gBAC1BtY,EAAW6O,YACX,EACJzO,QAASsX,EAAiBzB,UACtBjW,EAAWI,WAETsX,EAAiBG,mBAChBhM,GAAUvO,EAAY/B,IAE7B8S,cAAaqJ,EAAiBa,iBAC1BvY,EAAWqO,YAEf/N,YAAaoX,EAAiBtI,gBAC1BpP,EAAWM,YACXoX,EAAiBG,mBAAqBva,EACtC0P,GAAezR,EAAgB+B,GAC/B,CAAC,EACLiD,cAAemX,EAAiBxB,YAC5BlW,EAAWO,cACX,CAAC,EACLG,OAAQgX,EAAiBc,WAAaxY,EAAWU,OAAS,CAAC,EAC3DoO,cAAc,EACdC,oBAAoB,GAExB,EAEMsJ,GAAoC,SAAC/a,EAAYoa,GAAgB,OACrED,GACEzS,GAAW1H,GACPA,EAAWgC,GACXhC,EACJoa,EACD,EAoCH,MAAO,CACLxc,QAAS,CACP+F,SAAAA,GACAW,WAAAA,GACA8T,cAAAA,GACAoB,aAAAA,GACAnB,SAAAA,GACA9F,eAAAA,EACArQ,UAAAA,EACAoR,UAAAA,EACA9P,aAAAA,EACAnB,iBA7yBqB,WAAK,IACK8Y,EADLC,GAAApV,EAAAA,EAAAA,GACTjG,EAAO2R,SAAO,IAAjC,IAAA0J,EAAAnV,MAAAkV,EAAAC,EAAAlV,KAAAC,MAAmC,KAAxBxL,EAAIwgB,EAAAphB,MACPiK,EAAe3H,EAAI4H,EAAStJ,GAElCqJ,IACGA,EAAME,GAAGoC,KACNtC,EAAME,GAAGoC,KAAKuC,OAAM,SAACtE,GAAG,OAAM4K,GAAK5K,EAAI,KACtC4K,GAAKnL,EAAME,GAAGK,OACnBD,GAAW3J,EACd,QAAA4L,GAAA6U,EAAA5U,EAAAD,EAAA,SAAA6U,EAAA3U,GAAA,CAED1G,EAAO2R,QAAU,IAAI9V,GACvB,EAkyBIyf,kBA1kC6C,SAC/C1gB,GAME,IALFmH,EAAM/D,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAG,GACTud,EAAMvd,UAAA5E,OAAA,EAAA4E,UAAA,QAAA3B,EACNmf,EAAIxd,UAAA5E,OAAA,EAAA4E,UAAA,QAAA3B,EACJof,IAAezd,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,KAAAA,UAAA,GACf0d,IAA0B1d,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,KAAAA,UAAA,GAE1B,GAAIwd,GAAQD,EAAQ,CAElB,GADAlX,EAAOC,QAAS,EACZoX,GAA8BrhB,MAAMC,QAAQgC,EAAI4H,EAAStJ,IAAQ,CACnE,IAAMkf,EAAcyB,EAAOjf,EAAI4H,EAAStJ,GAAO4gB,EAAKG,KAAMH,EAAKI,MAC/DH,GAAmB5a,EAAIqD,EAAStJ,EAAMkf,EACvC,CAED,GACE4B,GACArhB,MAAMC,QAAQgC,EAAIqG,EAAWU,OAAQzI,IACrC,CACA,IAAMyI,EAASkY,EACbjf,EAAIqG,EAAWU,OAAQzI,GACvB4gB,EAAKG,KACLH,EAAKI,MAEPH,GAAmB5a,EAAI8B,EAAWU,OAAQzI,EAAMyI,GAChD6N,GAAgBvO,EAAWU,OAAQzI,EACpC,CAED,GACE0D,EAAgB4E,eAChBwY,GACArhB,MAAMC,QAAQgC,EAAIqG,EAAWO,cAAetI,IAC5C,CACA,IAAMsI,EAAgBqY,EACpBjf,EAAIqG,EAAWO,cAAetI,GAC9B4gB,EAAKG,KACLH,EAAKI,MAEPH,GAAmB5a,EAAI8B,EAAWO,cAAetI,EAAMsI,EACxD,CAEG5E,EAAgB2E,cAClBN,EAAWM,YAAc0M,GAAezR,EAAgB+D,IAG1DH,EAAU0B,MAAM5D,KAAK,CACnBhF,KAAAA,EACAmI,QAASwQ,EAAU3Y,EAAMmH,GACzBkB,YAAaN,EAAWM,YACxBI,OAAQV,EAAWU,OACnBD,QAAST,EAAWS,SAEvB,MACCvC,EAAIoB,EAAarH,EAAMmH,EAE3B,EAohCI8Z,eAvwBmB,SACrBjhB,GAAuB,OAEvBoB,EACEM,EACE+H,EAAOD,MAAQnC,EAAc/D,EAC7BtD,EACAyE,EAAMmC,iBAAmBlF,EAAI4B,EAAgBtD,EAAM,IAAM,IAE5D,EA+vBCwf,OAAAA,GACA0B,oBAxBwB,WAAH,OACvBnU,GAAW5D,EAAS9F,gBACpB8F,EAAS9F,gBAAgB8d,MAAK,SAACha,GAC7BiZ,GAAMjZ,EAAQgC,EAAS+N,cACvBhQ,EAAU0B,MAAM5D,KAAK,CACnBoD,WAAW,GAEf,GAAE,EAkBAM,iBAlCqB,SACvB2Q,GAEAtR,GAAUY,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACLZ,GACAsR,EAEP,EA4BInS,UAAAA,EACAxD,gBAAAA,EACA,WAAI4F,GACF,OAAOA,C,EAET,eAAIjC,GACF,OAAOA,C,EAET,UAAIoC,GACF,OAAOA,C,EAET,UAAIA,CAAOrK,GACTqK,EAASrK,C,EAEX,kBAAIkE,GACF,OAAOA,C,EAET,UAAI8B,GACF,OAAOA,C,EAET,UAAIA,CAAOhG,GACTgG,EAAShG,C,EAEX,cAAI2I,GACF,OAAOA,C,EAET,cAAIA,CAAW3I,GACb2I,EAAa3I,C,EAEf,YAAI+J,GACF,OAAOA,C,EAET,YAAIA,CAAS/J,GACX+J,GAAQR,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACHQ,GACA/J,E,GAITsc,QAAAA,GACA1S,SAAAA,GACA6V,aAAAA,GACAtZ,MA9bwC,SACxCvF,EAIA6B,GAAwC,OAExCkL,GAAW/M,GACPkH,EAAUC,OAAOpC,UAAU,CACzBC,KAAM,SAACoc,GAAO,OACZphB,EACEuH,OAAU9F,EAAWI,GACrBuf,EAKD,IAEL7Z,EACEvH,EACA6B,GACA,EACD,EAwaLia,SAAAA,GACAb,UAAAA,GACAmF,MAAAA,GACAiB,WArPkD,SAACrhB,GAAsB,IAAhB2N,EAAOvK,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAChE1B,EAAI4H,EAAStJ,KACXuB,EAAYoM,EAAQ9L,cACtBia,GAAS9b,EAAM0B,EAAI4B,EAAgBtD,KAEnC8b,GACE9b,EACA2N,EAAQ9L,cAKVoE,EAAI3C,EAAgBtD,EAAM2N,EAAQ9L,eAG/B8L,EAAQsQ,aACXpL,GAAM9K,EAAWO,cAAetI,GAG7B2N,EAAQqQ,YACXnL,GAAM9K,EAAWM,YAAarI,GAC9B+H,EAAWI,QAAUwF,EAAQ9L,aACzB8W,EAAU3Y,EAAM0B,EAAI4B,EAAgBtD,IACpC2Y,KAGDhL,EAAQoQ,YACXlL,GAAM9K,EAAWU,OAAQzI,GACzB0D,EAAgB8E,SAAWK,KAG7B3B,EAAU0B,MAAM5D,MAAI2D,EAAAA,EAAAA,GAAC,CAAC,EAAIZ,IAE9B,EAqNEuZ,YA/doD,SAACthB,GACrDA,GACEiE,EAAsBjE,GAAMmb,SAAQ,SAACoG,GAAS,OAC5C1O,GAAM9K,EAAWU,OAAQ8Y,EAAU,IAGvCra,EAAU0B,MAAM5D,KAAK,CACnByD,OAAQzI,EAAO+H,EAAWU,OAAS,CAAC,GAExC,EAudEkB,WAAAA,GACA+T,SAAAA,GACA8D,SArG8C,SAACxhB,GAAsB,IAAhB2N,EAAOvK,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC1DiG,EAAQ3H,EAAI4H,EAAStJ,GACrBkb,EAAiB7R,GAASA,EAAME,GAEtC,GAAI2R,EAAgB,CAClB,IAAMuD,EAAWvD,EAAevP,KAC5BuP,EAAevP,KAAK,GACpBuP,EAAetR,IAEf6U,EAAS3U,QACX2U,EAAS3U,QACT6D,EAAQ8T,cAAgBhD,EAAS1U,SAEpC,CACH,EAwFE0T,cAAAA,GAEJ,CC7wCgB,SAAAiE,KAKkC,IAAhDjd,EAAArB,UAAA5E,OAAA,QAAAiD,IAAA2B,UAAA,GAAAA,UAAA,GAA8C,CAAC,EAEzCue,EAAe9e,EAAAA,SAGf+e,EAAU/e,EAAAA,SAChBgf,EAAqChf,EAAAA,SAAwC,CAC3EsF,SAAS,EACTI,cAAc,EACdH,UAAW2E,GAAWtI,EAAMpB,eAC5B+S,aAAa,EACbS,cAAc,EACdC,oBAAoB,EACpBtO,SAAS,EACToO,YAAa,EACbvO,YAAa,CAAC,EACdC,cAAe,CAAC,EAChBG,OAAQ,CAAC,EACTpF,cAAe0J,GAAWtI,EAAMpB,oBAC5B5B,EACAgD,EAAMpB,gBACVye,GAAAra,EAAAA,EAAAA,GAAAoa,EAAA,GAfK7e,EAAS8e,EAAA,GAAEhe,EAAege,EAAA,GAiB5BH,EAAahd,UAChBgd,EAAahd,SAAOgE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACf8N,GAAkBhS,GAAO,kBAC1BX,GAAgB,SAACd,GAAS,OAAA2F,EAAAA,EAAAA,GAAA,GAAW3F,EAAS,GAAI,KACnD,IACDA,UAAAA,KAIJ,IAAMC,EAAU0e,EAAahd,QAAQ1B,QA8CrC,OA7CAA,EAAQkG,SAAW1E,EAEnBD,EAAa,CACXM,QAAS7B,EAAQiE,UAAU0B,MAC3B5D,KAAM,SACJ5F,GAGEwE,EACExE,EACA6D,EAAQS,gBACRT,EAAQyF,kBACR,IAGF5E,GAAe6E,EAAAA,EAAAA,GAAC,CAAC,EAAI1F,EAAQ8E,Y,IAKnClF,EAAAA,WAAgB,WACV4B,EAAM0C,SAAWyM,GAAUnP,EAAM0C,OAAQya,EAAQjd,UACnD1B,EAAQuc,OAAO/a,EAAM0C,OAAQlE,EAAQkG,SAAS+N,cAC9C0K,EAAQjd,QAAUF,EAAM0C,QAExBlE,EAAQie,qB,GAET,CAACzc,EAAM0C,OAAQlE,IAElBJ,EAAAA,WAAgB,WACTI,EAAQwG,OAAOD,QAClBvG,EAAQ4F,eACR5F,EAAQwG,OAAOD,OAAQ,GAGrBvG,EAAQwG,OAAOlE,QACjBtC,EAAQwG,OAAOlE,OAAQ,EACvBtC,EAAQiE,UAAU0B,MAAM5D,MAAI2D,EAAAA,EAAAA,GAAC,CAAC,EAAI1F,EAAQ8E,cAG5C9E,EAAQyE,kBACV,IAEAia,EAAahd,QAAQ3B,UAAYD,EAAkBC,EAAWC,GAEvD0e,EAAahd,OACtB,C","sources":["../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/useController.ts","../node_modules/react-hook-form/src/useWatch.ts","../node_modules/react-hook-form/src/useFormState.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/focusFieldBy.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/useForm.ts"],"sourcesContent":["import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown) => typeof value === 'object';\n\nexport default (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","export default (value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (obj: T, path?: string, defaultValue?: unknown): any => {\n if (!path || !isObject(obj)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n obj,\n );\n\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path as keyof T])\n ? defaultValue\n : obj[path as keyof T]\n : result;\n};\n","import { ValidationMode } from './types';\n\nexport const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\n\nexport const VALIDATION_MODE: ValidationMode = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n","import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TransformedValues extends FieldValues | undefined = undefined,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TransformedValues\n >;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useFrom methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: FormProviderProps,\n) => {\n const { children, ...data } = props;\n return (\n \n {children}\n \n );\n};\n","import { VALIDATION_MODE } from '../constants';\nimport { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default (\n formState: FormState,\n control: Control,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport {\n Control,\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default (\n formStateData: Partial> & { name?: InternalFieldName },\n _proxyFormState: K,\n updateFormState: Control['_updateFormState'],\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default (value: T) => (Array.isArray(value) ? value : [value]);\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default (\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n exact && signalName\n ? name === signalName\n : !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n next: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default function set(\n object: FieldValues,\n path: string,\n value?: unknown,\n) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n","import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport cloneObject from './utils/cloneObject';\nimport get from './utils/get';\nimport isUndefined from './utils/isUndefined';\nimport { EVENTS } from './constants';\nimport {\n ControllerFieldState,\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\nimport { set } from './utils';\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
\n * \n *

{fieldState.isTouched && \"Touched\"}

\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *
\n * );\n * }\n * ```\n */\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: UseControllerProps,\n): UseControllerReturn {\n const methods = useFormContext();\n const { name, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(\n control._formValues,\n name,\n get(control._defaultValues, name, props.defaultValue),\n ),\n exact: true,\n }) as FieldPathValue;\n const formState = useFormState({\n control,\n name,\n });\n\n const _registerProps = React.useRef(\n control.register(name, {\n ...props.rules,\n value,\n }),\n );\n\n _registerProps.current = control.register(name, props.rules);\n\n React.useEffect(() => {\n const _shouldUnregisterField =\n control._options.shouldUnregister || shouldUnregister;\n\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n\n if (field) {\n field._f.mount = value;\n }\n };\n\n updateMounted(name, true);\n\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n\n return () => {\n (\n isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField\n )\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n\n return {\n field: {\n name,\n value,\n onChange: React.useCallback(\n (event) =>\n _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n }),\n [name],\n ),\n onBlur: React.useCallback(\n () =>\n _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n }),\n [name, control],\n ),\n ref: (elm) => {\n const field = get(control._fields, name);\n\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message: string) =>\n elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n },\n formState,\n fieldState: Object.defineProperties(\n {},\n {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n },\n ) as ControllerFieldState,\n };\n}\n","import React from 'react';\n\nimport generateWatchOutput from './logic/generateWatchOutput';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport cloneObject from './utils/cloneObject';\nimport {\n Control,\n DeepPartialSkipArrayKey,\n FieldPath,\n FieldPathValue,\n FieldPathValues,\n FieldValues,\n InternalFieldName,\n UseWatchProps,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Subscribe to the entire form values change and re-render at the hook level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * control,\n * defaultValue: {\n * name: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(props: {\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * control,\n * name: \"fieldA\",\n * defaultValue: \"default value\",\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath = FieldPath,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValue;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * control,\n * name: [\"fieldA\", \"fieldB\"],\n * defaultValue: {\n * fieldA: \"data\",\n * fieldB: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends readonly FieldPath[] = readonly FieldPath[],\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValues;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * // can skip passing down the control into useWatch if the form is wrapped with the FormProvider\n * const values = useWatch()\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nexport function useWatch(\n props?: UseWatchProps,\n) {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n defaultValue,\n disabled,\n exact,\n } = props || {};\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState: { name?: InternalFieldName; values?: FieldValues }) => {\n if (\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n formState.name,\n exact,\n )\n ) {\n updateValue(\n cloneObject(\n generateWatchOutput(\n _name.current as InternalFieldName | InternalFieldName[],\n control._names,\n formState.values || control._formValues,\n false,\n defaultValue,\n ),\n ),\n );\n }\n },\n });\n\n const [value, updateValue] = React.useState(\n control._getWatch(\n name as InternalFieldName,\n defaultValue as DeepPartialSkipArrayKey,\n ),\n );\n\n React.useEffect(() => control._removeUnmounted());\n\n return value;\n}\n","import React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n *
\n * \n * {dirtyFields.firstName &&

Field is dirty.

}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useFormState(\n props?: UseFormStateProps,\n): UseFormStateReturn {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) =>\n _mounted.current &&\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n value.name,\n exact,\n ) &&\n shouldRenderFormState(\n value,\n _localProxyFormState.current,\n control._updateFormState,\n ) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n\n return getProxyFormState(\n formState,\n control,\n _localProxyFormState.current,\n false,\n );\n}\n\nexport { useFormState };\n","import { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
\n * (\n * <>\n * \n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: ControllerProps,\n) => props.render(useController(props));\n\nexport { Controller };\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","import { FieldRefs, InternalFieldName } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst focusFieldBy = (\n fields: FieldRefs,\n callback: (name?: string) => boolean,\n fieldsNames?: Set | InternalFieldName[],\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f && callback(_f.name)) {\n if (_f.ref.focus) {\n _f.ref.focus();\n break;\n } else if (_f.refs && _f.refs[0].focus) {\n _f.refs[0].focus();\n break;\n }\n } else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\n};\n\nexport default focusFieldBy;\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode } from '../types';\n\nexport default (\n mode?: Mode,\n): {\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnAll: boolean;\n isOnTouch: boolean;\n} => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport compact from '../utils/compact';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default (\n errors: FieldErrors,\n error: Partial>,\n name: InternalFieldName,\n): FieldErrors => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message => isString(value);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n Message,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType = INPUT_VALIDATION_RULES.maxLength,\n minType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default function createSubject(): Subject {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n}\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: U, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: any,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","export default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial<{\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnTouch: boolean;\n isOnAll: boolean;\n }>,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n PathValue,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport focusFieldBy from './focusFieldBy';\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n flushRootRender: () => void,\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: {},\n };\n let _fields = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const shouldCaptureDirtyFields =\n props.resetOptions && props.resetOptions.keepDirtyValues;\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _updateValid = async (shouldUpdateValid?: boolean) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (value: boolean) =>\n _proxyFormState.isValidating &&\n _subjects.state.next({\n isValidating: value,\n });\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine = deepEqual(\n get(_defaultValues, name),\n fieldValue,\n );\n\n isPreviousDirty = get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n\n _updateIsValidating(false);\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) =>\n _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema();\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n fieldValue &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) => (\n name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues)\n );\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n props.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n !_state.mount && flushRootRender();\n };\n\n const onChange: ChangeHandler = async (event) => {\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const getCurrentFieldValue = () =>\n target.type ? getFieldValue(field._f) : getEventValue(event);\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n } else {\n error = (\n await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n\n isFieldValueUpdated =\n isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(\n field._f.deps as\n | FieldPath\n | FieldPath[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n\n options.shouldFocus &&\n !validationResult &&\n focusFieldBy(\n _fields,\n (key) => key && get(_formState.errors, key),\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {}),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: DeepPartial,\n ) =>\n isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.values.next({\n values: { ..._formValues },\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (!isUndefined(options.value)) {\n set(_formValues, name, options.value);\n }\n\n field\n ? disabledIsDefined &&\n set(\n _formValues,\n name,\n options.disabled\n ? undefined\n : get(_formValues, name, getFieldValue(field._f)),\n )\n : updateValidAndValue(name, true, options.value);\n\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n focusFieldBy(\n _fields,\n (key) => key && get(_formState.errors, key),\n _names.mount,\n );\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n await onValid(fieldValues as TFieldValues, e);\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors),\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n } else {\n setValue(\n name,\n options.defaultValue as PathValue<\n TFieldValues,\n FieldPath\n >,\n );\n set(_defaultValues, name, options.defaultValue);\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, get(_defaultValues, name))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues || _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values =\n formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.values.next({\n values: { ...values },\n });\n }\n\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n !_state.mount && flushRootRender();\n\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n\n _state.watch = !!props.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n\n const reset: UseFormReset = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? formValues(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n\n const _updateFormState = (\n updatedFormState: Partial>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props, () =>\n updateFormState((formState) => ({ ...formState })),\n ),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) => {\n if (\n shouldRenderFormState(\n value,\n control._proxyFormState,\n control._updateFormState,\n true,\n )\n ) {\n updateFormState({ ...control._formState });\n }\n },\n });\n\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n\n control._removeUnmounted();\n });\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n"],"names":["_objectWithoutProperties","source","excluded","key","i","target","Object","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","prototype","propertyIsEnumerable","call","_objectWithoutPropertiesLoose","sourceKeys","keys","isCheckBoxInput","element","type","isDateObject","value","Date","isNullOrUndefined","isObjectType","isObject","Array","isArray","getEventValue","event","checked","isNameInFieldArray","names","name","has","substring","search","getNodeParentName","isPlainObject","tempObject","prototypeCopy","constructor","hasOwnProperty","isWeb","window","HTMLElement","document","cloneObject","data","copy","Set","Blob","FileList","compact","filter","Boolean","isUndefined","val","undefined","get","obj","path","defaultValue","result","split","reduce","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onBlur","onChange","onSubmit","onTouched","all","INPUT_VALIDATION_RULES","HookFormContext","React","useFormContext","getProxyFormState","formState","control","localProxyFormState","isRoot","arguments","defaultValues","_defaultValues","_loop","defineProperty","_key","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","_excluded2","find","convertToArrayPayload","shouldSubscribeByName","signalName","exact","some","currentName","startsWith","useSubscribe","props","_props","current","subscription","disabled","subject","subscribe","next","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","watch","add","map","fieldName","watchAll","isKey","test","stringToPath","input","replace","set","object","index","tempPath","lastIndex","newValue","objValue","isNaN","useController","methods","_props$control","shouldUnregister","isArrayField","array","_ref2","_ref2$control","_name","_subjects","values","updateValue","_formValues","_React$useState3","_getWatch","_React$useState4","_slicedToArray","_removeUnmounted","useWatch","_ref","_ref$control","_React$useState","_formState","_React$useState2","_mounted","_localProxyFormState","isDirty","isLoading","dirtyFields","touchedFields","isValidating","isValid","errors","_updateFormState","_objectSpread","state","_updateValid","useFormState","_registerProps","register","rules","_shouldUnregisterField","_options","updateMounted","field","_fields","_f","mount","_state","action","unregister","ref","elm","focus","select","setCustomValidity","message","reportValidity","fieldState","defineProperties","invalid","enumerable","isTouched","error","Controller","render","appendErrors","validateAllFieldCriteria","types","_defineProperty","focusFieldBy","fields","callback","fieldsNames","_step2","_iterator2","_createForOfIteratorHelper","s","n","done","currentField","_excluded4","refs","err","e","f","getValidationModes","mode","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","_toConsumableArray","watchName","slice","updateFieldArrayRootError","fieldArrayErrors","isBoolean","isFileInput","isFunction","isHTMLElement","owner","ownerDocument","defaultView","isMessage","isRadioInput","isRegex","RegExp","defaultResult","validResult","getCheckboxValue","options","option","attributes","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","_ref5","_asyncToGenerator","_regeneratorRuntime","mark","_callee3","shouldUseNativeValidation","isFieldArray","_field$_f","required","maxLength","minLength","min","max","pattern","validate","valueAsNumber","inputValue","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","_ref6","exceedMax","exceedMin","maxOutput","minOutput","valueNumber","valueDate","convertTimeToDate","isTime","isWeek","maxLengthOutput","minLengthOutput","_exceedMax","_exceedMin","_getValueAndMessage","patternValue","_message","validateError","validationResult","_validateError","wrap","_context3","prev","abrupt","bind","maxLengthMessage","minLengthMessage","maxType","minType","valueAsDate","time","toDateString","match","sent","t0","t1","t2","t3","t4","t5","stop","_x3","_x4","_x5","_x6","_x7","apply","unset","paths","childObject","updatePath","baseGet","isEmptyArray","createSubject","_observers","observers","_step4","_iterator4","observer","push","o","isPrimitive","deepEqual","object1","object2","getTime","keys1","keys2","_i","_keys","val1","includes","val2","isMultipleSelect","live","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","_ref8","setValueAs","NaN","getFieldValue","files","selectedOptions","_ref9","getResolverOptions","criteriaMode","_step5","_iterator5","getRuleValue","rule","hasValidation","schemaErrorLookup","join","foundError","pop","skipValidation","isSubmitted","reValidateMode","unsetEmptyArray","defaultOptions","shouldFocusError","createFormControl","delayErrorCallback","flushRootRender","submitCount","isSubmitting","isSubmitSuccessful","unMount","timer","shouldCaptureDirtyFields","resetOptions","keepDirtyValues","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","_ref10","_callee4","shouldUpdateValid","_context4","resolver","_executeSchema","executeBuiltInValidation","_x8","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","delayError","updateErrors","wait","clearTimeout","setTimeout","updatedFormState","_ref11","_callee5","_context5","context","_x9","executeSchemaAndUpdateState","_ref12","_callee6","_yield$_executeSchema","_iterator6","_step6","_name3","_error","_context6","_x10","_ref13","_callee7","shouldOnlyCheckValid","_name4","isFieldArrayRoot","fieldError","_args7","_context7","valid","_excluded5","_x11","_x12","getValues","fieldReference","forEach","optionRef","selected","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","concat","setValue","cloneValue","_ref15","_callee8","isFieldValueUpdated","getCurrentFieldValue","_error2","shouldSkipValidation","watched","_yield$_executeSchema2","previousErrorLookupResult","errorLookupResult","_context8","deps","_x13","_ref16","_callee10","fieldNames","_args10","_context10","Promise","_ref17","_callee9","_context9","_x15","shouldFocus","_x14","getFieldState","setError","_step8","_iterator8","delete","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","disabledIsDefined","progressive","_ref19","_x16","toString","fieldRef","querySelectorAll","radioOrCheckbox","_focusError","handleSubmit","onValid","onInvalid","_ref20","_callee11","fieldValues","_yield$_executeSchema3","_context11","preventDefault","persist","_x17","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","_step9","_iterator9","_step10","_iterator10","form","closest","reset","keepSubmitCount","keepIsSubmitted","keepErrors","_step7","_iterator7","_updateFieldArray","method","args","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","_getFieldArray","_resetDefaultValues","then","payload","resetField","clearErrors","inputName","setFocus","shouldSelect","useForm","_formControl","_values","_React$useState9","_React$useState10"],"sourceRoot":""}