{"version":3,"file":"assets/js/453.7da05339.js","mappings":"6JAAA,ICGIA,EDHEC,EAA+B,qBAAXC,QAA0BA,OAAOD,YAAcC,OAAOD,WAAWE,KAAKD,QAChG,GACED,WAAAA,GCEIG,G,4RAAQ,IAAIC,WAAW,KACd,SAASC,IAEtB,IAAKN,IAEHA,EAAoC,qBAAXE,QAA0BA,OAAOF,iBAAmBE,OAAOF,gBAAgBG,KAAKD,SAEpGF,GACH,MAAM,IAAIO,MAAM,4GAIpB,OAAOP,EAAgBI,EACzB,C,uBCTA,I,IAFMI,EAAY,GAETC,EAAI,EAAGA,EAAI,MAAOA,EACzBD,EAAUE,MAAMD,EAAI,KAAOE,SAAS,IAAIC,MAAM,IAGzC,SAASC,EAAgBC,GAAiB,IAAZC,EAAMC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAG5C,OAAOR,EAAUM,EAAIC,EAAS,IAAMP,EAAUM,EAAIC,EAAS,IAAMP,EAAUM,EAAIC,EAAS,IAAMP,EAAUM,EAAIC,EAAS,IAAM,IAAMP,EAAUM,EAAIC,EAAS,IAAMP,EAAUM,EAAIC,EAAS,IAAM,IAAMP,EAAUM,EAAIC,EAAS,IAAMP,EAAUM,EAAIC,EAAS,IAAM,IAAMP,EAAUM,EAAIC,EAAS,IAAMP,EAAUM,EAAIC,EAAS,IAAM,IAAMP,EAAUM,EAAIC,EAAS,KAAOP,EAAUM,EAAIC,EAAS,KAAOP,EAAUM,EAAIC,EAAS,KAAOP,EAAUM,EAAIC,EAAS,KAAOP,EAAUM,EAAIC,EAAS,KAAOP,EAAUM,EAAIC,EAAS,IAChf,CCZA,SAASI,EAAGC,EAASC,EAAKN,GACxB,GAAIO,EAAOrB,aAAeoB,IAAQD,EAChC,OAAOE,EAAOrB,aAGhBmB,EAAUA,GAAW,CAAC,EACtB,IAAMG,EAAOH,EAAQI,SAAWJ,EAAQd,KAAOA,KAK/C,GAHAiB,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBF,EAAK,CACPN,EAASA,GAAU,EAEnB,IAAK,IAAIN,EAAI,EAAGA,EAAI,KAAMA,EACxBY,EAAIN,EAASN,GAAKc,EAAKd,GAGzB,OAAOY,CACT,CAEA,OAAOR,EAAgBU,EACzB,CAEA,O,mBCWA,SAASE,EAAcC,EAAQC,GAC7B,IAAK,IAAIC,KAAQD,EACfD,EAAOG,aAAaD,EAAMD,EAAMC,GAEpC,CAEA,SAASE,EAAUJ,EAAQK,GACzBL,EAAOM,OAAS,WACdC,KAAKC,QAAUD,KAAKD,OAAS,KAC7BD,EAAG,KAAML,EACX,EACAA,EAAOQ,QAAU,WAGfD,KAAKC,QAAUD,KAAKD,OAAS,KAC7BD,EAAG,IAAIxB,MAAM,kBAAoB0B,KAAKE,KAAMT,EAC9C,CACF,CAEA,SAASU,EAASV,EAAQK,GACxBL,EAAOW,mBAAqB,WACH,YAAnBJ,KAAKK,YAA+C,UAAnBL,KAAKK,aAC1CL,KAAKI,mBAAqB,KAC1BN,EAAG,KAAML,GACX,CACF,CA/DAa,EAAOC,QAAU,SAAeL,EAAKM,EAAMV,GACzC,IAAIW,EAAOC,SAASD,MAAQC,SAASC,qBAAqB,QAAQ,GAC9DlB,EAASiB,SAASE,cAAc,UAEhB,oBAATJ,IACTV,EAAKU,EACLA,EAAO,CAAC,GAGVA,EAAOA,GAAQ,CAAC,EAChBV,EAAKA,GAAM,WAAY,EAEvBL,EAAOoB,KAAOL,EAAKK,MAAQ,kBAC3BpB,EAAOqB,QAAUN,EAAKM,SAAW,OACjCrB,EAAOsB,QAAQ,UAAWP,MAASA,EAAKO,MACxCtB,EAAOS,IAAMA,EAETM,EAAKd,OACPF,EAAcC,EAAQe,EAAKd,OAGzBc,EAAKQ,OACPvB,EAAOuB,KAAO,GAAKR,EAAKQ,MAG1B,IAAIC,EAAQ,WAAYxB,EAASI,EAAWM,EAC5Cc,EAAMxB,EAAQK,GAKTL,EAAOM,QACVF,EAASJ,EAAQK,GAGnBW,EAAKS,YAAYzB,EACnB,C,mBCpCA,IAOI0B,EACAC,EARAC,EAAUf,EAAOC,QAAU,CAAC,EAUhC,SAASe,IACL,MAAM,IAAIhD,MAAM,kCACpB,CACA,SAASiD,IACL,MAAM,IAAIjD,MAAM,oCACpB,CAqBA,SAASkD,EAAWC,GAChB,GAAIN,IAAqBO,WAErB,OAAOA,WAAWD,EAAK,GAG3B,IAAKN,IAAqBG,IAAqBH,IAAqBO,WAEhE,OADAP,EAAmBO,WACZA,WAAWD,EAAK,GAE3B,IAEI,OAAON,EAAiBM,EAAK,EACjC,CAAE,MAAME,GACJ,IAEI,OAAOR,EAAiBS,KAAK,KAAMH,EAAK,EAC5C,CAAE,MAAME,GAEJ,OAAOR,EAAiBS,KAAK5B,KAAMyB,EAAK,EAC5C,CACJ,CAGJ,CACA,SAASI,EAAgBC,GACrB,GAAIV,IAAuBW,aAEvB,OAAOA,aAAaD,GAGxB,IAAKV,IAAuBG,IAAwBH,IAAuBW,aAEvE,OADAX,EAAqBW,aACdA,aAAaD,GAExB,IAEI,OAAOV,EAAmBU,EAC9B,CAAE,MAAOH,GACL,IAEI,OAAOP,EAAmBQ,KAAK,KAAME,EACzC,CAAE,MAAOH,GAGL,OAAOP,EAAmBQ,KAAK5B,KAAM8B,EACzC,CACJ,CAIJ,EAvEC,WACG,IAEQX,EADsB,oBAAfO,WACYA,WAEAJ,CAE3B,CAAE,MAAOK,GACLR,EAAmBG,CACvB,CACA,IAEQF,EADwB,oBAAjBW,aACcA,aAEAR,CAE7B,CAAE,MAAOI,GACLP,EAAqBG,CACzB,CACJ,EAnBA,GAwEA,IAEIS,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaF,IAGlBE,GAAW,EACPF,EAAahD,OACbiD,EAAQD,EAAaK,OAAOJ,GAE5BE,GAAc,EAEdF,EAAMjD,QACNsD,IAER,CAEA,SAASA,IACL,IAAIJ,EAAJ,CAGA,IAAIK,EAAUf,EAAWY,GACzBF,GAAW,EAEX,IAAIM,EAAMP,EAAMjD,OAChB,MAAMwD,EAAK,CACPR,EAAeC,EACfA,EAAQ,GACR,QAASE,EAAaK,EACdR,GACAA,EAAaG,GAAYM,MAGjCN,GAAc,EACdK,EAAMP,EAAMjD,MAChB,CACAgD,EAAe,KACfE,GAAW,EACXL,EAAgBU,EAlBhB,CAmBJ,CAgBA,SAASG,EAAKjB,EAAKkB,GACf3C,KAAKyB,IAAMA,EACXzB,KAAK2C,MAAQA,CACjB,CAWA,SAASC,IAAQ,CA5BjBvB,EAAQwB,SAAW,SAAUpB,GACzB,IAAIqB,EAAO,IAAIC,MAAMhE,UAAUC,OAAS,GACxC,GAAID,UAAUC,OAAS,EACnB,IAAK,IAAIR,EAAI,EAAGA,EAAIO,UAAUC,OAAQR,IAClCsE,EAAKtE,EAAI,GAAKO,UAAUP,GAGhCyD,EAAMxD,KAAK,IAAIiE,EAAKjB,EAAKqB,IACJ,IAAjBb,EAAMjD,QAAiBkD,GACvBV,EAAWc,EAEnB,EAOAI,EAAKM,UAAUP,IAAM,WACjBzC,KAAKyB,IAAIwB,MAAM,KAAMjD,KAAK2C,MAC9B,EACAtB,EAAQ6B,MAAQ,UAChB7B,EAAQ8B,SAAU,EAClB9B,EAAQ+B,IAAM,CAAC,EACf/B,EAAQgC,KAAO,GACfhC,EAAQiC,QAAU,GAClBjC,EAAQkC,SAAW,CAAC,EAIpBlC,EAAQmC,GAAKZ,EACbvB,EAAQoC,YAAcb,EACtBvB,EAAQqC,KAAOd,EACfvB,EAAQsC,IAAMf,EACdvB,EAAQuC,eAAiBhB,EACzBvB,EAAQwC,mBAAqBjB,EAC7BvB,EAAQyC,KAAOlB,EACfvB,EAAQ0C,gBAAkBnB,EAC1BvB,EAAQ2C,oBAAsBpB,EAE9BvB,EAAQ4C,UAAY,SAAUC,GAAQ,MAAO,EAAG,EAEhD7C,EAAQ8C,QAAU,SAAUD,GACxB,MAAM,IAAI5F,MAAM,mCACpB,EAEA+C,EAAQ+C,IAAM,WAAc,MAAO,GAAI,EACvC/C,EAAQgD,MAAQ,SAAUC,GACtB,MAAM,IAAIhG,MAAM,iCACpB,EACA+C,EAAQkD,MAAQ,WAAa,OAAO,CAAG,C,oCCjLxB,SAASC,EACtBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAoBIC,EApBA9F,EACuB,oBAAlBsF,EAA+BA,EAActF,QAAUsF,EAuDhE,GApDIC,IACFvF,EAAQuF,OAASA,EACjBvF,EAAQwF,gBAAkBA,EAC1BxF,EAAQ+F,WAAY,GAIlBN,IACFzF,EAAQgG,YAAa,GAInBL,IACF3F,EAAQiG,SAAW,UAAYN,GAI7BC,GAEFE,EAAO,SAAUI,GAEfA,EACEA,GACCrF,KAAKsF,QAAUtF,KAAKsF,OAAOC,YAC3BvF,KAAKwF,QAAUxF,KAAKwF,OAAOF,QAAUtF,KAAKwF,OAAOF,OAAOC,WAEtDF,GAA0C,qBAAxBI,sBACrBJ,EAAUI,qBAGRZ,GACFA,EAAajD,KAAK5B,KAAMqF,GAGtBA,GAAWA,EAAQK,uBACrBL,EAAQK,sBAAsBC,IAAIZ,EAEtC,EAGA5F,EAAQyG,aAAeX,GACdJ,IACTI,EAAOD,EACH,WACEH,EAAajD,KACX5B,MACCb,EAAQgG,WAAanF,KAAKwF,OAASxF,MAAM6F,MAAMC,SAASC,WAE7D,EACAlB,GAGFI,EACF,GAAI9F,EAAQgG,WAAY,CAGtBhG,EAAQ6G,cAAgBf,EAExB,IAAIgB,EAAiB9G,EAAQuF,OAC7BvF,EAAQuF,OAAS,SAAkCwB,EAAGb,GAEpD,OADAJ,EAAKrD,KAAKyD,GACHY,EAAeC,EAAGb,EAC3B,CACF,KAAO,CAEL,IAAIc,EAAWhH,EAAQiH,aACvBjH,EAAQiH,aAAeD,EAAW,GAAG9D,OAAO8D,EAAUlB,GAAQ,CAACA,EACjE,CAGF,MAAO,CACL1E,QAASkE,EACTtF,QAASA,EAEb,C;;;;;IClFA,SAASkH,EAAMC,EAAWC,GACpB,CAGN,CAEA,SAASC,EAASC,GAChB,OAAOC,OAAO1D,UAAUtE,SAASkD,KAAK6E,GAAKE,QAAQ,UAAY,CACjE,CAEA,SAASC,EAAQC,EAAGC,GAClB,IAAK,IAAIC,KAAOD,EACdD,EAAEE,GAAOD,EAAEC,GAEb,OAAOF,CACT,CAEA,IAAIG,EAAO,CACT9C,KAAM,aACNiB,YAAY,EACZ8B,MAAO,CACL/C,KAAM,CACJrD,KAAMqG,OACNC,QAAS,YAGbzC,OAAQ,SAAiB0C,EAAGC,GAC1B,IAAIJ,EAAQI,EAAIJ,MACZK,EAAWD,EAAIC,SACf9B,EAAS6B,EAAI7B,OACb+B,EAAOF,EAAIE,KAGfA,EAAKC,YAAa,EAIlB,IAAItB,EAAIV,EAAOiC,eACXvD,EAAO+C,EAAM/C,KACbwD,EAAQlC,EAAOmC,OACfC,EAAQpC,EAAOqC,mBAAqBrC,EAAOqC,iBAAmB,CAAC,GAI/DC,EAAQ,EACRC,GAAW,EACf,MAAOvC,GAAUA,EAAOwC,cAAgBxC,EAClCA,EAAOF,QAAUE,EAAOF,OAAOiC,KAAKC,YACtCM,IAEEtC,EAAOyC,YACTF,GAAW,GAEbvC,EAASA,EAAO0C,QAKlB,GAHAX,EAAKY,gBAAkBL,EAGnBC,EACF,OAAO7B,EAAE0B,EAAM1D,GAAOqD,EAAMD,GAG9B,IAAIc,EAAUV,EAAMU,QAAQN,GAE5B,IAAKM,EAEH,OADAR,EAAM1D,GAAQ,KACPgC,IAGT,IAAImC,EAAYT,EAAM1D,GAAQkE,EAAQE,WAAWpE,GAIjDqD,EAAKgB,sBAAwB,SAAUC,EAAIC,GAEzC,IAAIC,EAAUN,EAAQO,UAAUzE,IAE7BuE,GAAOC,IAAYF,IAClBC,GAAOC,IAAYF,KAErBJ,EAAQO,UAAUzE,GAAQuE,EAE9B,GAIElB,EAAKtC,OAASsC,EAAKtC,KAAO,CAAC,IAAI2D,SAAW,SAAUxB,EAAGyB,GACvDT,EAAQO,UAAUzE,GAAQ2E,EAAMC,iBAClC,EAGA,IAAIC,EAAcxB,EAAKN,MAAQ+B,EAAatB,EAAOU,EAAQnB,OAASmB,EAAQnB,MAAM/C,IAClF,GAAI6E,EAAa,CAEfA,EAAcxB,EAAKN,MAAQL,EAAO,CAAC,EAAGmC,GAEtC,IAAIrJ,EAAQ6H,EAAK7H,MAAQ6H,EAAK7H,OAAS,CAAC,EACxC,IAAK,IAAIqH,KAAOgC,EACTV,EAAUpB,OAAWF,KAAOsB,EAAUpB,QACzCvH,EAAMqH,GAAOgC,EAAYhC,UAClBgC,EAAYhC,GAGzB,CAEA,OAAOb,EAAEmC,EAAWd,EAAMD,EAC5B,GAGF,SAAS0B,EAActB,EAAOuB,GAC5B,cAAeA,GACb,IAAK,YACH,OACF,IAAK,SACH,OAAOA,EACT,IAAK,WACH,OAAOA,EAAOvB,GAChB,IAAK,UACH,OAAOuB,EAASvB,EAAMwB,YAASjK,EACjC,QACM,EAQV,CAIA,IAAIkK,EAAkB,WAClBC,EAAwB,SAAUC,GAAK,MAAO,IAAMA,EAAEC,WAAW,GAAG5K,SAAS,GAAK,EAClF6K,EAAU,OAKVC,EAAS,SAAUC,GAAO,OAAOC,mBAAmBD,GACrDE,QAAQR,EAAiBC,GACzBO,QAAQJ,EAAS,IAAM,EAEtBK,EAASC,mBAEb,SAASC,EACPC,EACAC,EACAC,QAEoB,IAAfD,IAAwBA,EAAa,CAAC,GAE3C,IACIE,EADAC,EAAQF,GAAeG,EAE3B,IACEF,EAAcC,EAAMJ,GAAS,GAC/B,CAAE,MAAOpI,GAEPuI,EAAc,CAAC,CACjB,CACA,IAAK,IAAInD,KAAOiD,EACdE,EAAYnD,GAAOiD,EAAWjD,GAEhC,OAAOmD,CACT,CAEA,SAASE,EAAYL,GACnB,IAAIM,EAAM,CAAC,EAIX,OAFAN,EAAQA,EAAMO,OAAOX,QAAQ,YAAa,IAErCI,GAILA,EAAMQ,MAAM,KAAKC,SAAQ,SAAUC,GACjC,IAAIC,EAAQD,EAAMd,QAAQ,MAAO,KAAKY,MAAM,KACxCxD,EAAM6C,EAAOc,EAAMC,SACnBlC,EAAMiC,EAAM1L,OAAS,EACrB4K,EAAOc,EAAME,KAAK,MAClB,UAEa3L,IAAboL,EAAItD,GACNsD,EAAItD,GAAO0B,EACF1F,MAAM8H,QAAQR,EAAItD,IAC3BsD,EAAItD,GAAKtI,KAAKgK,GAEd4B,EAAItD,GAAO,CAACsD,EAAItD,GAAM0B,EAE1B,IAEO4B,GAnBEA,CAoBX,CAEA,SAASS,EAAgBC,GACvB,IAAIV,EAAMU,EAAMrE,OAAOsE,KAAKD,GAAKE,KAAI,SAAUlE,GAC7C,IAAI0B,EAAMsC,EAAIhE,GAEd,QAAY9H,IAARwJ,EACF,MAAO,GAGT,GAAY,OAARA,EACF,OAAOe,EAAOzC,GAGhB,GAAIhE,MAAM8H,QAAQpC,GAAM,CACtB,IAAIyC,EAAS,GAWb,OAVAzC,EAAI+B,SAAQ,SAAUW,QACPlM,IAATkM,IAGS,OAATA,EACFD,EAAOzM,KAAK+K,EAAOzC,IAEnBmE,EAAOzM,KAAK+K,EAAOzC,GAAO,IAAMyC,EAAO2B,IAE3C,IACOD,EAAON,KAAK,IACrB,CAEA,OAAOpB,EAAOzC,GAAO,IAAMyC,EAAOf,EACpC,IAAG2C,QAAO,SAAUC,GAAK,OAAOA,EAAErM,OAAS,CAAG,IAAG4L,KAAK,KAAO,KAC7D,OAAOP,EAAO,IAAMA,EAAO,EAC7B,CAIA,IAAIiB,EAAkB,OAEtB,SAASC,EACPC,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAoBD,GAAUA,EAAOxM,QAAQ2L,eAE7Cf,EAAQ0B,EAAS1B,OAAS,CAAC,EAC/B,IACEA,EAAQ8B,EAAM9B,EAChB,CAAE,MAAOpI,GAAI,CAEb,IAAI+F,EAAQ,CACVxD,KAAMuH,EAASvH,MAASsH,GAAUA,EAAOtH,KACzC4H,KAAON,GAAUA,EAAOM,MAAS,CAAC,EAClCC,KAAMN,EAASM,MAAQ,IACvBC,KAAMP,EAASO,MAAQ,GACvBjC,MAAOA,EACPb,OAAQuC,EAASvC,QAAU,CAAC,EAC5B+C,SAAUC,EAAYT,EAAUG,GAChCxD,QAASoD,EAASW,EAAYX,GAAU,IAK1C,OAHIE,IACFhE,EAAMgE,eAAiBQ,EAAYR,EAAgBE,IAE9ClF,OAAO0F,OAAO1E,EACvB,CAEA,SAASmE,EAAOQ,GACd,GAAItJ,MAAM8H,QAAQwB,GAChB,OAAOA,EAAMpB,IAAIY,GACZ,GAAIQ,GAA0B,kBAAVA,EAAoB,CAC7C,IAAIhC,EAAM,CAAC,EACX,IAAK,IAAItD,KAAOsF,EACdhC,EAAItD,GAAO8E,EAAMQ,EAAMtF,IAEzB,OAAOsD,CACT,CACE,OAAOgC,CAEX,CAGA,IAAIC,EAAQf,EAAY,KAAM,CAC5BQ,KAAM,MAGR,SAASI,EAAaX,GACpB,IAAInB,EAAM,GACV,MAAOmB,EACLnB,EAAIkC,QAAQf,GACZA,EAASA,EAAOhG,OAElB,OAAO6E,CACT,CAEA,SAAS6B,EACP7E,EACAmF,GAEA,IAAIT,EAAO1E,EAAI0E,KACXhC,EAAQ1C,EAAI0C,WAAsB,IAAVA,IAAmBA,EAAQ,CAAC,GACxD,IAAIiC,EAAO3E,EAAI2E,UAAoB,IAATA,IAAkBA,EAAO,IAEnD,IAAIS,EAAYD,GAAmB1B,EACnC,OAAQiB,GAAQ,KAAOU,EAAU1C,GAASiC,CAC5C,CAEA,SAASU,EAAa7F,EAAGC,GACvB,OAAIA,IAAMwF,EACDzF,IAAMC,IACHA,IAEDD,EAAEkF,MAAQjF,EAAEiF,KAEnBlF,EAAEkF,KAAKpC,QAAQ2B,EAAiB,MAAQxE,EAAEiF,KAAKpC,QAAQ2B,EAAiB,KACxEzE,EAAEmF,OAASlF,EAAEkF,MACbW,EAAc9F,EAAEkD,MAAOjD,EAAEiD,UAElBlD,EAAE3C,OAAQ4C,EAAE5C,QAEnB2C,EAAE3C,OAAS4C,EAAE5C,MACb2C,EAAEmF,OAASlF,EAAEkF,MACbW,EAAc9F,EAAEkD,MAAOjD,EAAEiD,QACzB4C,EAAc9F,EAAEqC,OAAQpC,EAAEoC,SAKhC,CAEA,SAASyD,EAAe9F,EAAGC,GAKzB,QAJW,IAAND,IAAeA,EAAI,CAAC,QACd,IAANC,IAAeA,EAAI,CAAC,IAGpBD,IAAMC,EAAK,OAAOD,IAAMC,EAC7B,IAAI8F,EAAQlG,OAAOsE,KAAKnE,GACpBgG,EAAQnG,OAAOsE,KAAKlE,GACxB,OAAI8F,EAAM5N,SAAW6N,EAAM7N,QAGpB4N,EAAME,OAAM,SAAU/F,GAC3B,IAAIgG,EAAOlG,EAAEE,GACTiG,EAAOlG,EAAEC,GAEb,MAAoB,kBAATgG,GAAqC,kBAATC,EAC9BL,EAAcI,EAAMC,GAEtB9F,OAAO6F,KAAU7F,OAAO8F,EACjC,GACF,CAEA,SAASC,EAAiBvE,EAASwE,GACjC,OAGQ,IAFNxE,EAAQqD,KAAKpC,QAAQ2B,EAAiB,KAAK3E,QACzCuG,EAAOnB,KAAKpC,QAAQ2B,EAAiB,SAErC4B,EAAOlB,MAAQtD,EAAQsD,OAASkB,EAAOlB,OACzCmB,EAAczE,EAAQqB,MAAOmD,EAAOnD,MAExC,CAEA,SAASoD,EAAezE,EAASwE,GAC/B,IAAK,IAAInG,KAAOmG,EACd,KAAMnG,KAAO2B,GACX,OAAO,EAGX,OAAO,CACT,CAKA,IAyII0E,EAzIAC,EAAU,CAACnG,OAAQR,QACnB4G,EAAa,CAACpG,OAAQnE,OAEtBwK,EAAO,CACTrJ,KAAM,aACN+C,MAAO,CACLuG,GAAI,CACF3M,KAAMwM,EACNI,UAAU,GAEZC,IAAK,CACH7M,KAAMqG,OACNC,QAAS,KAEXwG,MAAOC,QACPC,OAAQD,QACRjE,QAASiE,QACTE,YAAa5G,OACb6G,iBAAkB7G,OAClB8G,MAAO,CACLnN,KAAMyM,EACNnG,QAAS,UAGbzC,OAAQ,SAAiBwB,GACvB,IAAI+H,EAASjO,KAET2L,EAAS3L,KAAKkO,QACdxF,EAAU1I,KAAK2H,OACfN,EAAMsE,EAAOwC,QAAQnO,KAAKwN,GAAI9E,EAAS1I,KAAK6N,QAC5CpC,EAAWpE,EAAIoE,SACf/D,EAAQL,EAAIK,MACZ0G,EAAO/G,EAAI+G,KAEXC,EAAU,CAAC,EACXC,EAAoB3C,EAAOxM,QAAQoP,gBACnCC,EAAyB7C,EAAOxM,QAAQsP,qBAExCC,EAA2C,MAArBJ,EACtB,qBACAA,EACAK,EAAqD,MAA1BH,EAC3B,2BACAA,EACAV,EAAkC,MAApB9N,KAAK8N,YACnBY,EACA1O,KAAK8N,YACLC,EAA4C,MAAzB/N,KAAK+N,iBACxBY,EACA3O,KAAK+N,iBACLa,EAAgBnD,EAASM,KACzBR,EAAY,KAAME,EAAU,KAAME,GAClCjE,EAEJ2G,EAAQN,GAAoBrB,EAAYhE,EAASkG,GACjDP,EAAQP,GAAe9N,KAAK2N,MACxBU,EAAQN,GACRd,EAAgBvE,EAASkG,GAE7B,IAAIC,EAAU,SAAUlN,GAClBmN,EAAWnN,KACTsM,EAAOtE,QACTgC,EAAOhC,QAAQ8B,GAEfE,EAAOlN,KAAKgN,GAGlB,EAEIjI,EAAK,CAAEuL,MAAOD,GACd/L,MAAM8H,QAAQ7K,KAAKgO,OACrBhO,KAAKgO,MAAMxD,SAAQ,SAAU7I,GAAK6B,EAAG7B,GAAKkN,CAAS,IAEnDrL,EAAGxD,KAAKgO,OAASa,EAGnB,IAAItH,EAAO,CACTyH,MAAOX,GAGT,GAAiB,MAAbrO,KAAK0N,IACPnG,EAAK/D,GAAKA,EACV+D,EAAK7H,MAAQ,CAAE0O,KAAMA,OAChB,CAEL,IAAIvH,EAAIoI,EAAWjP,KAAKkP,OAAO/H,SAC/B,GAAIN,EAAG,CAELA,EAAEsI,UAAW,EACb,IAAIC,EAAQvI,EAAEU,KAAOX,EAAO,CAAC,EAAGC,EAAEU,MAClC6H,EAAM5L,GAAKA,EACX,IAAI6L,EAASxI,EAAEU,KAAK7H,MAAQkH,EAAO,CAAC,EAAGC,EAAEU,KAAK7H,OAC9C2P,EAAOjB,KAAOA,CAChB,MAEE7G,EAAK/D,GAAKA,CAEd,CAEA,OAAO0C,EAAElG,KAAK0N,IAAKnG,EAAMvH,KAAKkP,OAAO/H,QACvC,GAGF,SAAS2H,EAAYnN,GAEnB,KAAIA,EAAE2N,SAAW3N,EAAE4N,QAAU5N,EAAE6N,SAAW7N,EAAE8N,YAExC9N,EAAE+N,wBAEWzQ,IAAb0C,EAAEgO,QAAqC,IAAbhO,EAAEgO,QAAhC,CAEA,GAAIhO,EAAEiO,eAAiBjO,EAAEiO,cAAcC,aAAc,CACnD,IAAI3C,EAASvL,EAAEiO,cAAcC,aAAa,UAC1C,GAAI,cAAcC,KAAK5C,GAAW,MACpC,CAKA,OAHIvL,EAAEoO,gBACJpO,EAAEoO,kBAEG,CAVgD,CAWzD,CAEA,SAASd,EAAY3H,GACnB,GAAIA,EAEF,IADA,IAAI0I,EACKxR,EAAI,EAAGA,EAAI8I,EAAStI,OAAQR,IAAK,CAExC,GADAwR,EAAQ1I,EAAS9I,GACC,MAAdwR,EAAMtC,IACR,OAAOsC,EAET,GAAIA,EAAM1I,WAAa0I,EAAQf,EAAWe,EAAM1I,WAC9C,OAAO0I,CAEX,CAEJ,CAIA,SAASC,EAASC,GAChB,IAAID,EAAQE,WAAa/C,IAAS8C,EAAlC,CACAD,EAAQE,WAAY,EAEpB/C,EAAO8C,EAEP,IAAIE,EAAQ,SAAUC,GAAK,YAAapR,IAANoR,CAAiB,EAE/CC,EAAmB,SAAU9H,EAAI+H,GACnC,IAAI/R,EAAIgK,EAAG1C,SAAS0K,aAChBJ,EAAM5R,IAAM4R,EAAM5R,EAAIA,EAAE+I,OAAS6I,EAAM5R,EAAIA,EAAE+J,wBAC/C/J,EAAEgK,EAAI+H,EAEV,EAEAL,EAAIO,MAAM,CACRrK,aAAc,WACRgK,EAAMpQ,KAAK8F,SAAS6F,SACtB3L,KAAKgI,YAAchI,KACnBA,KAAK0Q,QAAU1Q,KAAK8F,SAAS6F,OAC7B3L,KAAK0Q,QAAQC,KAAK3Q,MAClBkQ,EAAIU,KAAKC,eAAe7Q,KAAM,SAAUA,KAAK0Q,QAAQI,QAAQpI,UAE7D1I,KAAKgI,YAAehI,KAAKkI,SAAWlI,KAAKkI,QAAQF,aAAgBhI,KAEnEsQ,EAAiBtQ,KAAMA,KACzB,EACA+Q,UAAW,WACTT,EAAiBtQ,KACnB,IAGF0G,OAAOsK,eAAed,EAAIlN,UAAW,UAAW,CAC9CiO,IAAK,WAAkB,OAAOjR,KAAKgI,YAAY0I,OAAQ,IAGzDhK,OAAOsK,eAAed,EAAIlN,UAAW,SAAU,CAC7CiO,IAAK,WAAkB,OAAOjR,KAAKgI,YAAYkJ,MAAO,IAGxDhB,EAAI7H,UAAU,aAAcrB,GAC5BkJ,EAAI7H,UAAU,aAAckF,GAE5B,IAAI4D,EAASjB,EAAIjH,OAAOmI,sBAExBD,EAAOE,iBAAmBF,EAAOG,iBAAmBH,EAAOI,kBAAoBJ,EAAOK,OA5CtC,CA6ClD,CAIA,IAAIC,EAA8B,qBAAXC,OAIvB,SAASC,EACPC,EACAC,EACAhE,GAEA,IAAIiE,EAAYF,EAASG,OAAO,GAChC,GAAkB,MAAdD,EACF,OAAOF,EAGT,GAAkB,MAAdE,GAAmC,MAAdA,EACvB,OAAOD,EAAOD,EAGhB,IAAII,EAAQH,EAAKtH,MAAM,KAKlBsD,GAAWmE,EAAMA,EAAMhT,OAAS,IACnCgT,EAAMC,MAKR,IADA,IAAIC,EAAWN,EAASjI,QAAQ,MAAO,IAAIY,MAAM,KACxC/L,EAAI,EAAGA,EAAI0T,EAASlT,OAAQR,IAAK,CACxC,IAAI2T,EAAUD,EAAS1T,GACP,OAAZ2T,EACFH,EAAMC,MACe,MAAZE,GACTH,EAAMvT,KAAK0T,EAEf,CAOA,MAJiB,KAAbH,EAAM,IACRA,EAAMzF,QAAQ,IAGTyF,EAAMpH,KAAK,IACpB,CAEA,SAASwH,EAAWrG,GAClB,IAAIC,EAAO,GACPjC,EAAQ,GAERsI,EAAYtG,EAAKpF,QAAQ,KACzB0L,GAAa,IACfrG,EAAOD,EAAKpN,MAAM0T,GAClBtG,EAAOA,EAAKpN,MAAM,EAAG0T,IAGvB,IAAIC,EAAavG,EAAKpF,QAAQ,KAM9B,OALI2L,GAAc,IAChBvI,EAAQgC,EAAKpN,MAAM2T,EAAa,GAChCvG,EAAOA,EAAKpN,MAAM,EAAG2T,IAGhB,CACLvG,KAAMA,EACNhC,MAAOA,EACPiC,KAAMA,EAEV,CAEA,SAASuG,EAAWxG,GAClB,OAAOA,EAAKpC,QAAQ,QAAS,IAC/B,CAEA,IAAI6I,EAAUzP,MAAM8H,SAAW,SAAUhM,GACvC,MAA8C,kBAAvC6H,OAAO1D,UAAUtE,SAASkD,KAAK/C,EACxC,EAKI4T,EAAiBC,GACjBC,EAAUxI,EACVyI,EAAYC,EACZC,EAAqBC,EACrBC,EAAmBC,GAOnBC,EAAc,IAAIC,OAAO,CAG3B,UAOA,0GACAvI,KAAK,KAAM,KASb,SAAST,EAAOV,EAAKtK,GACnB,IAKIkL,EALA+I,EAAS,GACTrM,EAAM,EACNsM,EAAQ,EACRtH,EAAO,GACPuH,EAAmBnU,GAAWA,EAAQoU,WAAa,IAGvD,MAAwC,OAAhClJ,EAAM6I,EAAYM,KAAK/J,IAAe,CAC5C,IAAIgK,EAAIpJ,EAAI,GACRqJ,EAAUrJ,EAAI,GACdvL,EAASuL,EAAIgJ,MAKjB,GAJAtH,GAAQtC,EAAI9K,MAAM0U,EAAOvU,GACzBuU,EAAQvU,EAAS2U,EAAEzU,OAGf0U,EACF3H,GAAQ2H,EAAQ,OADlB,CAKA,IAAIC,EAAOlK,EAAI4J,GACXO,EAASvJ,EAAI,GACbnG,EAAOmG,EAAI,GACXwJ,EAAUxJ,EAAI,GACdyJ,EAAQzJ,EAAI,GACZ0J,EAAW1J,EAAI,GACf2J,EAAW3J,EAAI,GAGf0B,IACFqH,EAAO3U,KAAKsN,GACZA,EAAO,IAGT,IAAIkI,EAAoB,MAAVL,GAA0B,MAARD,GAAgBA,IAASC,EACrDM,EAAsB,MAAbH,GAAiC,MAAbA,EAC7BI,EAAwB,MAAbJ,GAAiC,MAAbA,EAC/BR,EAAYlJ,EAAI,IAAMiJ,EACtBc,EAAUP,GAAWC,EAEzBV,EAAO3U,KAAK,CACVyF,KAAMA,GAAQ6C,IACd6M,OAAQA,GAAU,GAClBL,UAAWA,EACXY,SAAUA,EACVD,OAAQA,EACRD,QAASA,EACTD,WAAYA,EACZI,QAASA,EAAUC,EAAYD,GAAYJ,EAAW,KAAO,KAAOM,EAAaf,GAAa,OA9BhG,CAgCF,CAYA,OATIF,EAAQ5J,EAAIzK,SACd+M,GAAQtC,EAAI8K,OAAOlB,IAIjBtH,GACFqH,EAAO3U,KAAKsN,GAGPqH,CACT,CASA,SAASP,EAASpJ,EAAKtK,GACrB,OAAO4T,EAAiB5I,EAAMV,EAAKtK,GACrC,CAQA,SAASqV,EAA0B/K,GACjC,OAAOgL,UAAUhL,GAAKE,QAAQ,WAAW,SAAUN,GACjD,MAAO,IAAMA,EAAEC,WAAW,GAAG5K,SAAS,IAAIgW,aAC5C,GACF,CAQA,SAASC,EAAgBlL,GACvB,OAAOgL,UAAUhL,GAAKE,QAAQ,SAAS,SAAUN,GAC/C,MAAO,IAAMA,EAAEC,WAAW,GAAG5K,SAAS,IAAIgW,aAC5C,GACF,CAKA,SAAS3B,EAAkBK,GAKzB,IAHA,IAAIwB,EAAU,IAAI7R,MAAMqQ,EAAOpU,QAGtBR,EAAI,EAAGA,EAAI4U,EAAOpU,OAAQR,IACR,kBAAd4U,EAAO5U,KAChBoW,EAAQpW,GAAK,IAAI2U,OAAO,OAASC,EAAO5U,GAAG4V,QAAU,OAIzD,OAAO,SAAUrJ,EAAKvK,GAMpB,IALA,IAAIuL,EAAO,GACPxE,EAAOwD,GAAO,CAAC,EACf5L,EAAUqB,GAAQ,CAAC,EACnBgJ,EAASrK,EAAQ0V,OAASL,EAA2B9K,mBAEhDlL,EAAI,EAAGA,EAAI4U,EAAOpU,OAAQR,IAAK,CACtC,IAAIsW,EAAQ1B,EAAO5U,GAEnB,GAAqB,kBAAVsW,EAAX,CAMA,IACI3C,EADA9F,EAAQ9E,EAAKuN,EAAM5Q,MAGvB,GAAa,MAATmI,EAAe,CACjB,GAAIyI,EAAMX,SAAU,CAEdW,EAAMb,UACRlI,GAAQ+I,EAAMlB,QAGhB,QACF,CACE,MAAM,IAAImB,UAAU,aAAeD,EAAM5Q,KAAO,kBAEpD,CAEA,GAAIsO,EAAQnG,GAAZ,CACE,IAAKyI,EAAMZ,OACT,MAAM,IAAIa,UAAU,aAAeD,EAAM5Q,KAAO,kCAAoC8Q,KAAKvI,UAAUJ,GAAS,KAG9G,GAAqB,IAAjBA,EAAMrN,OAAc,CACtB,GAAI8V,EAAMX,SACR,SAEA,MAAM,IAAIY,UAAU,aAAeD,EAAM5Q,KAAO,oBAEpD,CAEA,IAAK,IAAI+Q,EAAI,EAAGA,EAAI5I,EAAMrN,OAAQiW,IAAK,CAGrC,GAFA9C,EAAU3I,EAAO6C,EAAM4I,KAElBL,EAAQpW,GAAGsR,KAAKqC,GACnB,MAAM,IAAI4C,UAAU,iBAAmBD,EAAM5Q,KAAO,eAAiB4Q,EAAMV,QAAU,oBAAsBY,KAAKvI,UAAU0F,GAAW,KAGvIpG,IAAe,IAANkJ,EAAUH,EAAMlB,OAASkB,EAAMvB,WAAapB,CACvD,CAGF,KAxBA,CA4BA,GAFAA,EAAU2C,EAAMd,SAAWW,EAAetI,GAAS7C,EAAO6C,IAErDuI,EAAQpW,GAAGsR,KAAKqC,GACnB,MAAM,IAAI4C,UAAU,aAAeD,EAAM5Q,KAAO,eAAiB4Q,EAAMV,QAAU,oBAAsBjC,EAAU,KAGnHpG,GAAQ+I,EAAMlB,OAASzB,CARvB,CA1CA,MAHEpG,GAAQ+I,CAsDZ,CAEA,OAAO/I,CACT,CACF,CAQA,SAASuI,EAAc7K,GACrB,OAAOA,EAAIE,QAAQ,6BAA8B,OACnD,CAQA,SAAS0K,EAAaP,GACpB,OAAOA,EAAMnK,QAAQ,gBAAiB,OACxC,CASA,SAASuL,EAAYC,EAAInK,GAEvB,OADAmK,EAAGnK,KAAOA,EACHmK,CACT,CAQA,SAASC,EAAOjW,GACd,OAAOA,EAAQkW,UAAY,GAAK,GAClC,CASA,SAASC,EAAgBvJ,EAAMf,GAE7B,IAAIuK,EAASxJ,EAAKyJ,OAAOC,MAAM,aAE/B,GAAIF,EACF,IAAK,IAAI/W,EAAI,EAAGA,EAAI+W,EAAOvW,OAAQR,IACjCwM,EAAKvM,KAAK,CACRyF,KAAM1F,EACNoV,OAAQ,KACRL,UAAW,KACXY,UAAU,EACVD,QAAQ,EACRD,SAAS,EACTD,UAAU,EACVI,QAAS,OAKf,OAAOc,EAAWnJ,EAAMf,EAC1B,CAUA,SAAS0K,EAAe3J,EAAMf,EAAM7L,GAGlC,IAFA,IAAIuL,EAAQ,GAEHlM,EAAI,EAAGA,EAAIuN,EAAK/M,OAAQR,IAC/BkM,EAAMjM,KAAKiU,GAAa3G,EAAKvN,GAAIwM,EAAM7L,GAASqW,QAGlD,IAAIG,EAAS,IAAIxC,OAAO,MAAQzI,EAAME,KAAK,KAAO,IAAKwK,EAAMjW,IAE7D,OAAO+V,EAAWS,EAAQ3K,EAC5B,CAUA,SAAS4K,GAAgB7J,EAAMf,EAAM7L,GACnC,OAAO8T,GAAe9I,EAAM4B,EAAM5M,GAAU6L,EAAM7L,EACpD,CAUA,SAAS8T,GAAgBG,EAAQpI,EAAM7L,GAChCqT,EAAQxH,KACX7L,EAAkC6L,GAAQ7L,EAC1C6L,EAAO,IAGT7L,EAAUA,GAAW,CAAC,EAOtB,IALA,IAAI0W,EAAS1W,EAAQ0W,OACjBC,GAAsB,IAAhB3W,EAAQ2W,IACdpO,EAAQ,GAGHlJ,EAAI,EAAGA,EAAI4U,EAAOpU,OAAQR,IAAK,CACtC,IAAIsW,EAAQ1B,EAAO5U,GAEnB,GAAqB,kBAAVsW,EACTpN,GAAS4M,EAAaQ,OACjB,CACL,IAAIlB,EAASU,EAAaQ,EAAMlB,QAC5BC,EAAU,MAAQiB,EAAMV,QAAU,IAEtCpJ,EAAKvM,KAAKqW,GAENA,EAAMZ,SACRL,GAAW,MAAQD,EAASC,EAAU,MAOpCA,EAJAiB,EAAMX,SACHW,EAAMb,QAGCL,EAAS,IAAMC,EAAU,KAFzB,MAAQD,EAAS,IAAMC,EAAU,MAKnCD,EAAS,IAAMC,EAAU,IAGrCnM,GAASmM,CACX,CACF,CAEA,IAAIN,EAAYe,EAAanV,EAAQoU,WAAa,KAC9CwC,EAAoBrO,EAAM/I,OAAO4U,EAAUvU,UAAYuU,EAkB3D,OAZKsC,IACHnO,GAASqO,EAAoBrO,EAAM/I,MAAM,GAAI4U,EAAUvU,QAAU0I,GAAS,MAAQ6L,EAAY,WAI9F7L,GADEoO,EACO,IAIAD,GAAUE,EAAoB,GAAK,MAAQxC,EAAY,MAG3D2B,EAAW,IAAI/B,OAAO,IAAMzL,EAAO0N,EAAMjW,IAAW6L,EAC7D,CAcA,SAAS0H,GAAc3G,EAAMf,EAAM7L,GAQjC,OAPKqT,EAAQxH,KACX7L,EAAkC6L,GAAQ7L,EAC1C6L,EAAO,IAGT7L,EAAUA,GAAW,CAAC,EAElB4M,aAAgBoH,OACXmC,EAAevJ,EAA4B,GAGhDyG,EAAQzG,GACH2J,EAAoC,EAA8B,EAAQvW,GAG5EyW,GAAqC,EAA8B,EAAQzW,EACpF,CACAsT,EAAetI,MAAQwI,EACvBF,EAAeI,QAAUD,EACzBH,EAAeM,iBAAmBD,EAClCL,EAAeQ,eAAiBD,EAKhC,IAAIgD,GAAqBtP,OAAOuP,OAAO,MAEvC,SAASC,GACPnK,EACA7C,EACAiN,GAEAjN,EAASA,GAAU,CAAC,EACpB,IACE,IAAIkN,EACFJ,GAAmBjK,KAClBiK,GAAmBjK,GAAQ0G,EAAeI,QAAQ9G,IAKrD,OAFI7C,EAAOmN,YAAanN,EAAO,GAAKA,EAAOmN,WAEpCD,EAAOlN,EAAQ,CAAE2L,QAAQ,GAClC,CAAE,MAAOlT,GAIP,MAAO,EACT,CAAE,eAEOuH,EAAO,EAChB,CACF,CAIA,SAASoN,GACPC,EACAC,EACAC,EACAC,GAGA,IAAIC,EAAWH,GAAe,GAE1BI,EAAUH,GAAc/P,OAAOuP,OAAO,MAEtCY,EAAUH,GAAchQ,OAAOuP,OAAO,MAE1CM,EAAO/L,SAAQ,SAAU9C,GACvBoP,GAAeH,EAAUC,EAASC,EAASnP,EAC7C,IAGA,IAAK,IAAIlJ,EAAI,EAAGuY,EAAIJ,EAAS3X,OAAQR,EAAIuY,EAAGvY,IACtB,MAAhBmY,EAASnY,KACXmY,EAASlY,KAAKkY,EAASK,OAAOxY,EAAG,GAAG,IACpCuY,IACAvY,KAIJ,MAAO,CACLmY,SAAUA,EACVC,QAASA,EACTC,QAASA,EAEb,CAEA,SAASC,GACPH,EACAC,EACAC,EACAnP,EACAlC,EACAyR,GAEA,IAAIlL,EAAOrE,EAAMqE,KACb7H,EAAOwD,EAAMxD,KAUjB,IAAIgT,EAAsBxP,EAAMwP,qBAAuB,CAAC,EACpDC,EAAiBC,GACnBrL,EACAvG,EACA0R,EAAoBrB,QAGa,mBAAxBnO,EAAM2P,gBACfH,EAAoB7B,UAAY3N,EAAM2P,eAGxC,IAAI7L,EAAS,CACXO,KAAMoL,EACNG,MAAOC,GAAkBJ,EAAgBD,GACzC5O,WAAYZ,EAAMY,YAAc,CAAEnB,QAASO,EAAMW,WACjDM,UAAW,CAAC,EACZzE,KAAMA,EACNsB,OAAQA,EACRyR,QAASA,EACTO,SAAU9P,EAAM8P,SAChBC,YAAa/P,EAAM+P,YACnB3L,KAAMpE,EAAMoE,MAAQ,CAAC,EACrB7E,MAAsB,MAAfS,EAAMT,MACT,CAAC,EACDS,EAAMY,WACJZ,EAAMT,MACN,CAAEE,QAASO,EAAMT,QA2BzB,GAxBIS,EAAMJ,UAgBRI,EAAMJ,SAASkD,SAAQ,SAAUwF,GAC/B,IAAI0H,EAAeT,EACf1E,EAAW0E,EAAU,IAAOjH,EAAU,WACtC/Q,EACJ6X,GAAeH,EAAUC,EAASC,EAAS7G,EAAOxE,EAAQkM,EAC5D,SAGkBzY,IAAhByI,EAAMiQ,MAAqB,CAC7B,IAAIC,EAAU7U,MAAM8H,QAAQnD,EAAMiQ,OAC9BjQ,EAAMiQ,MACN,CAACjQ,EAAMiQ,OAEXC,EAAQpN,SAAQ,SAAUmN,GACxB,IAAIE,EAAa,CACf9L,KAAM4L,EACNrQ,SAAUI,EAAMJ,UAElBwP,GACEH,EACAC,EACAC,EACAgB,EACArS,EACAgG,EAAOO,MAAQ,IAEnB,GACF,CAEK6K,EAAQpL,EAAOO,QAClB4K,EAASlY,KAAK+M,EAAOO,MACrB6K,EAAQpL,EAAOO,MAAQP,GAGrBtH,IACG2S,EAAQ3S,KACX2S,EAAQ3S,GAAQsH,GAStB,CAEA,SAAS+L,GAAmBxL,EAAMmL,GAChC,IAAII,EAAQ7E,EAAe1G,EAAM,GAAImL,GAQrC,OAAOI,CACT,CAEA,SAASF,GAAerL,EAAMvG,EAAQqQ,GAEpC,OADKA,IAAU9J,EAAOA,EAAKpC,QAAQ,MAAO,KAC1B,MAAZoC,EAAK,IACK,MAAVvG,EAD0BuG,EAEvBwG,EAAY/M,EAAW,KAAI,IAAMuG,EAC1C,CAIA,SAAS+L,GACPC,EACArP,EACAmF,EACAlC,GAEA,IAAIgI,EAAsB,kBAARoE,EAAmB,CAAEhM,KAAMgM,GAAQA,EAErD,GAAIpE,EAAKqE,YACP,OAAOrE,EACF,GAAIA,EAAKzP,KACd,OAAO0C,EAAO,CAAC,EAAGmR,GAIpB,IAAKpE,EAAK5H,MAAQ4H,EAAKzK,QAAUR,EAAS,CACxCiL,EAAO/M,EAAO,CAAC,EAAG+M,GAClBA,EAAKqE,aAAc,EACnB,IAAI9O,EAAStC,EAAOA,EAAO,CAAC,EAAG8B,EAAQQ,QAASyK,EAAKzK,QACrD,GAAIR,EAAQxE,KACVyP,EAAKzP,KAAOwE,EAAQxE,KACpByP,EAAKzK,OAASA,OACT,GAAIR,EAAQN,QAAQpJ,OAAQ,CACjC,IAAIiZ,EAAUvP,EAAQN,QAAQM,EAAQN,QAAQpJ,OAAS,GAAG+M,KAC1D4H,EAAK5H,KAAOmK,GAAW+B,EAAS/O,EAAS,QAAWR,EAAY,KAClE,MAAW,EAGX,OAAOiL,CACT,CAEA,IAAIuE,EAAa9F,EAAUuB,EAAK5H,MAAQ,IACpCoM,EAAYzP,GAAWA,EAAQqD,MAAS,IACxCA,EAAOmM,EAAWnM,KAClB4F,EAAYuG,EAAWnM,KAAMoM,EAAUtK,GAAU8F,EAAK9F,QACtDsK,EAEApO,EAAQD,EACVoO,EAAWnO,MACX4J,EAAK5J,MACL4B,GAAUA,EAAOxM,QAAQiL,YAGvB4B,EAAO2H,EAAK3H,MAAQkM,EAAWlM,KAKnC,OAJIA,GAA2B,MAAnBA,EAAK+F,OAAO,KACtB/F,EAAO,IAAMA,GAGR,CACLgM,aAAa,EACbjM,KAAMA,EACNhC,MAAOA,EACPiC,KAAMA,EAEV,CAMA,SAASoM,GACP7B,EACA5K,GAEA,IAAItE,EAAMiP,GAAeC,GACrBI,EAAWtP,EAAIsP,SACfC,EAAUvP,EAAIuP,QACdC,EAAUxP,EAAIwP,QAElB,SAASwB,EAAW9B,GAClBD,GAAeC,EAAQI,EAAUC,EAASC,EAC5C,CAEA,SAASpB,EACPsC,EACAO,EACA5M,GAEA,IAAID,EAAWqM,GAAkBC,EAAKO,GAAc,EAAO3M,GACvDzH,EAAOuH,EAASvH,KAEpB,GAAIA,EAAM,CACR,IAAIsH,EAASqL,EAAQ3S,GAIrB,IAAKsH,EAAU,OAAO+M,EAAa,KAAM9M,GACzC,IAAI+M,EAAahN,EAAO8L,MAAMtM,KAC3BI,QAAO,SAAUrE,GAAO,OAAQA,EAAIoN,QAAU,IAC9ClJ,KAAI,SAAUlE,GAAO,OAAOA,EAAI7C,IAAM,IAMzC,GAJ+B,kBAApBuH,EAASvC,SAClBuC,EAASvC,OAAS,CAAC,GAGjBoP,GAA+C,kBAAxBA,EAAapP,OACtC,IAAK,IAAInC,KAAOuR,EAAapP,SACrBnC,KAAO0E,EAASvC,SAAWsP,EAAW7R,QAAQI,IAAQ,IAC1D0E,EAASvC,OAAOnC,GAAOuR,EAAapP,OAAOnC,IAKjD,GAAIyE,EAEF,OADAC,EAASM,KAAOmK,GAAW1K,EAAOO,KAAMN,EAASvC,OAAS,gBAAmBhF,EAAO,KAC7EqU,EAAa/M,EAAQC,EAAUC,EAE1C,MAAO,GAAID,EAASM,KAAM,CACxBN,EAASvC,OAAS,CAAC,EACnB,IAAK,IAAI1K,EAAI,EAAGA,EAAImY,EAAS3X,OAAQR,IAAK,CACxC,IAAIuN,EAAO4K,EAASnY,GAChBia,EAAW7B,EAAQ7K,GACvB,GAAI2M,GAAWD,EAASnB,MAAO7L,EAASM,KAAMN,EAASvC,QACrD,OAAOqP,EAAaE,EAAUhN,EAAUC,EAE5C,CACF,CAEA,OAAO6M,EAAa,KAAM9M,EAC5B,CAEA,SAAS+L,EACPhM,EACAC,GAEA,IAAIkN,EAAmBnN,EAAOgM,SAC1BA,EAAuC,oBAArBmB,EAClBA,EAAiBpN,EAAYC,EAAQC,EAAU,KAAME,IACrDgN,EAMJ,GAJwB,kBAAbnB,IACTA,EAAW,CAAEzL,KAAMyL,KAGhBA,GAAgC,kBAAbA,EAMtB,OAAOe,EAAa,KAAM9M,GAG5B,IAAI0J,EAAKqC,EACLtT,EAAOiR,EAAGjR,KACV6H,EAAOoJ,EAAGpJ,KACVhC,EAAQ0B,EAAS1B,MACjBiC,EAAOP,EAASO,KAChB9C,EAASuC,EAASvC,OAKtB,GAJAa,EAAQoL,EAAGyD,eAAe,SAAWzD,EAAGpL,MAAQA,EAChDiC,EAAOmJ,EAAGyD,eAAe,QAAUzD,EAAGnJ,KAAOA,EAC7C9C,EAASiM,EAAGyD,eAAe,UAAYzD,EAAGjM,OAASA,EAE/ChF,EAAM,CAEW2S,EAAQ3S,GAI3B,OAAOuR,EAAM,CACXuC,aAAa,EACb9T,KAAMA,EACN6F,MAAOA,EACPiC,KAAMA,EACN9C,OAAQA,QACPjK,EAAWwM,EAChB,CAAO,GAAIM,EAAM,CAEf,IAAIkM,EAAUY,GAAkB9M,EAAMP,GAElCsN,EAAe5C,GAAW+B,EAAS/O,EAAS,6BAAgC+O,EAAU,KAE1F,OAAOxC,EAAM,CACXuC,aAAa,EACbjM,KAAM+M,EACN/O,MAAOA,EACPiC,KAAMA,QACL/M,EAAWwM,EAChB,CAIE,OAAO8M,EAAa,KAAM9M,EAE9B,CAEA,SAASkM,EACPnM,EACAC,EACAwL,GAEA,IAAI8B,EAAc7C,GAAWe,EAASxL,EAASvC,OAAS,4BAA+B+N,EAAU,KAC7F+B,EAAevD,EAAM,CACvBuC,aAAa,EACbjM,KAAMgN,IAER,GAAIC,EAAc,CAChB,IAAI5Q,EAAU4Q,EAAa5Q,QACvB6Q,EAAgB7Q,EAAQA,EAAQpJ,OAAS,GAE7C,OADAyM,EAASvC,OAAS8P,EAAa9P,OACxBqP,EAAaU,EAAexN,EACrC,CACA,OAAO8M,EAAa,KAAM9M,EAC5B,CAEA,SAAS8M,EACP/M,EACAC,EACAC,GAEA,OAAIF,GAAUA,EAAOgM,SACZA,EAAShM,EAAQE,GAAkBD,GAExCD,GAAUA,EAAOyL,QACZU,EAAMnM,EAAQC,EAAUD,EAAOyL,SAEjC1L,EAAYC,EAAQC,EAAUC,EAAgBC,EACvD,CAEA,MAAO,CACL8J,MAAOA,EACP4C,UAAWA,EAEf,CAEA,SAASK,GACPpB,EACAvL,EACA7C,GAEA,IAAIuK,EAAI1H,EAAK0J,MAAM6B,GAEnB,IAAK7D,EACH,OAAO,EACF,IAAKvK,EACV,OAAO,EAGT,IAAK,IAAI1K,EAAI,EAAGgE,EAAMiR,EAAEzU,OAAQR,EAAIgE,IAAOhE,EAAG,CAC5C,IAAIuI,EAAMuQ,EAAMtM,KAAKxM,EAAI,GACrBiK,EAAsB,kBAATgL,EAAEjV,GAAkBqL,mBAAmB4J,EAAEjV,IAAMiV,EAAEjV,GAC9DuI,IAEFmC,EAAOnC,EAAI7C,MAAQ,aAAeuE,EAEtC,CAEA,OAAO,CACT,CAEA,SAASoQ,GAAmB9M,EAAMP,GAChC,OAAOmG,EAAY5F,EAAMP,EAAOhG,OAASgG,EAAOhG,OAAOuG,KAAO,KAAK,EACrE,CAIA,IAAImN,GAAgBxS,OAAOuP,OAAO,MAElC,SAASkD,KAGPzH,OAAOZ,QAAQsI,aAAa,CAAErS,IAAKsS,MAAiB,GAAI3H,OAAOjG,SAAS2C,KAAKzE,QAAQ+H,OAAOjG,SAAS6N,OAAQ,KAC7G5H,OAAO6H,iBAAiB,YAAY,SAAU5X,GAC5C6X,KACI7X,EAAE8X,OAAS9X,EAAE8X,MAAM1S,KACrB2S,GAAY/X,EAAE8X,MAAM1S,IAExB,GACF,CAEA,SAAS4S,GACPhO,EACA6B,EACAoM,EACAC,GAEA,GAAKlO,EAAOmO,IAAZ,CAIA,IAAIC,EAAWpO,EAAOxM,QAAQ6a,eACzBD,GASLpO,EAAOmO,IAAIG,WAAU,WACnB,IAAIC,EAAWC,KACXC,EAAeL,EAASnY,KAAK+J,EAAQ6B,EAAIoM,EAAMC,EAAQK,EAAW,MAEjEE,IAI4B,oBAAtBA,EAAaC,KACtBD,EAAaC,MAAK,SAAUD,GAC1BE,GAAiB,EAAgBJ,EACnC,IAAGK,OAAM,SAAU9T,GACb,CAGN,IAEA6T,GAAiBF,EAAcF,GAEnC,GA/BA,CAgCF,CAEA,SAASV,KACP,IAAIzS,EAAMsS,KACNtS,IACFmS,GAAcnS,GAAO,CACnBsE,EAAGqG,OAAO8I,YACVC,EAAG/I,OAAOgJ,aAGhB,CAEA,SAASP,KACP,IAAIpT,EAAMsS,KACV,GAAItS,EACF,OAAOmS,GAAcnS,EAEzB,CAEA,SAAS4T,GAAoBC,EAAI9b,GAC/B,IAAI+b,EAAQna,SAASoa,gBACjBC,EAAUF,EAAMG,wBAChBC,EAASL,EAAGI,wBAChB,MAAO,CACL3P,EAAG4P,EAAOC,KAAOH,EAAQG,KAAOpc,EAAOuM,EACvCoP,EAAGQ,EAAOE,IAAMJ,EAAQI,IAAMrc,EAAO2b,EAEzC,CAEA,SAASW,GAAiBrQ,GACxB,OAAOsQ,GAAStQ,EAAIM,IAAMgQ,GAAStQ,EAAI0P,EACzC,CAEA,SAASa,GAAmBvQ,GAC1B,MAAO,CACLM,EAAGgQ,GAAStQ,EAAIM,GAAKN,EAAIM,EAAIqG,OAAO8I,YACpCC,EAAGY,GAAStQ,EAAI0P,GAAK1P,EAAI0P,EAAI/I,OAAOgJ,YAExC,CAEA,SAASa,GAAiBxQ,GACxB,MAAO,CACLM,EAAGgQ,GAAStQ,EAAIM,GAAKN,EAAIM,EAAI,EAC7BoP,EAAGY,GAAStQ,EAAI0P,GAAK1P,EAAI0P,EAAI,EAEjC,CAEA,SAASY,GAAUhL,GACjB,MAAoB,kBAANA,CAChB,CAEA,SAASiK,GAAkBF,EAAcF,GACvC,IAAIsB,EAAmC,kBAAjBpB,EACtB,GAAIoB,GAA6C,kBAA1BpB,EAAaqB,SAAuB,CACzD,IAAIb,EAAKla,SAASgb,cAActB,EAAaqB,UAC7C,GAAIb,EAAI,CACN,IAAI9b,EAASsb,EAAatb,QAAyC,kBAAxBsb,EAAatb,OAAsBsb,EAAatb,OAAS,CAAC,EACrGA,EAASyc,GAAgBzc,GACzBob,EAAWS,GAAmBC,EAAI9b,EACpC,MAAWsc,GAAgBhB,KACzBF,EAAWoB,GAAkBlB,GAEjC,MAAWoB,GAAYJ,GAAgBhB,KACrCF,EAAWoB,GAAkBlB,IAG3BF,GACFxI,OAAOiK,SAASzB,EAAS7O,EAAG6O,EAASO,EAEzC,CAIA,IAAImB,GAAoBnK,GAAa,WACnC,IAAIoK,EAAKnK,OAAOoK,UAAUC,UAE1B,QACiC,IAA9BF,EAAGlV,QAAQ,gBAAuD,IAA/BkV,EAAGlV,QAAQ,iBACd,IAAjCkV,EAAGlV,QAAQ,mBACe,IAA1BkV,EAAGlV,QAAQ,YACsB,IAAjCkV,EAAGlV,QAAQ,oBAKN+K,OAAOZ,SAAW,cAAeY,OAAOZ,QAChD,CAboC,GAgBjCkL,GAAOvK,GAAaC,OAAOuK,aAAevK,OAAOuK,YAAYC,IAC7DxK,OAAOuK,YACPE,KAEAC,GAAOC,KAEX,SAASA,KACP,OAAOL,GAAKE,MAAMI,QAAQ,EAC5B,CAEA,SAASjD,KACP,OAAO+C,EACT,CAEA,SAAS1C,GAAa3S,GACpBqV,GAAOrV,CACT,CAEA,SAASwV,GAAWC,EAAK7S,GACvB6P,KAGA,IAAI1I,EAAUY,OAAOZ,QACrB,IACMnH,EACFmH,EAAQsI,aAAa,CAAErS,IAAKqV,IAAQ,GAAII,IAExCJ,GAAOC,KACPvL,EAAQyL,UAAU,CAAExV,IAAKqV,IAAQ,GAAII,GAEzC,CAAE,MAAO7a,GACP+P,OAAOjG,SAAS9B,EAAU,UAAY,UAAU6S,EAClD,CACF,CAEA,SAASpD,GAAcoD,GACrBD,GAAUC,GAAK,EACjB,CAIA,SAASC,GAAUxa,EAAOya,EAAI5c,GAC5B,IAAI6c,EAAO,SAAUtJ,GACfA,GAASpR,EAAMjD,OACjBc,IAEImC,EAAMoR,GACRqJ,EAAGza,EAAMoR,IAAQ,WACfsJ,EAAKtJ,EAAQ,EACf,IAEAsJ,EAAKtJ,EAAQ,EAGnB,EACAsJ,EAAK,EACP,CAIA,SAASC,GAAwBxU,GAC/B,OAAO,SAAUoF,EAAIoM,EAAMjG,GACzB,IAAIkJ,GAAW,EACXC,EAAU,EACVC,EAAQ,KAEZC,GAAkB5U,GAAS,SAAU6U,EAAK7V,EAAGqO,EAAO1O,GAMlD,GAAmB,oBAARkW,QAAkChe,IAAZge,EAAIC,IAAmB,CACtDL,GAAW,EACXC,IAEA,IA0BIzS,EA1BA8D,EAAUzK,IAAK,SAAUyZ,GACvBC,GAAWD,KACbA,EAAcA,EAAYhW,SAG5B8V,EAAII,SAAkC,oBAAhBF,EAClBA,EACA/P,EAAKxG,OAAOuW,GAChB1H,EAAMnN,WAAWvB,GAAOoW,EACxBL,IACIA,GAAW,GACbnJ,GAEJ,IAEI2J,EAAS5Z,IAAK,SAAU6Z,GAC1B,IAAIC,EAAM,qCAAuCzW,EAAM,KAAOwW,EAEzDR,IACHA,EAAQvW,EAAQ+W,GACZA,EACA,IAAIjf,MAAMkf,GACd7J,EAAKoJ,GAET,IAGA,IACE1S,EAAM4S,EAAI9O,EAASmP,EACrB,CAAE,MAAO3b,GACP2b,EAAO3b,EACT,CACA,GAAI0I,EACF,GAAwB,oBAAbA,EAAIgQ,KACbhQ,EAAIgQ,KAAKlM,EAASmP,OACb,CAEL,IAAIG,EAAOpT,EAAIhC,UACXoV,GAA6B,oBAAdA,EAAKpD,MACtBoD,EAAKpD,KAAKlM,EAASmP,EAEvB,CAEJ,CACF,IAEKT,GAAYlJ,GACnB,CACF,CAEA,SAASqJ,GACP5U,EACAsU,GAEA,OAAOgB,GAAQtV,EAAQ6C,KAAI,SAAUwI,GACnC,OAAO/M,OAAOsE,KAAKyI,EAAEnL,YAAY2C,KAAI,SAAUlE,GAAO,OAAO2V,EAC3DjJ,EAAEnL,WAAWvB,GACb0M,EAAE9K,UAAU5B,GACZ0M,EAAG1M,EACF,GACL,IACF,CAEA,SAAS2W,GAAS7e,GAChB,OAAOkE,MAAMC,UAAUX,OAAOY,MAAM,GAAIpE,EAC1C,CAEA,IAAI8e,GACgB,oBAAXC,QACuB,kBAAvBA,OAAOC,YAEhB,SAAST,GAAYrS,GACnB,OAAOA,EAAI+S,YAAeH,IAAyC,WAA5B5S,EAAI6S,OAAOC,YACpD,CAMA,SAASna,GAAMgZ,GACb,IAAIqB,GAAS,EACb,OAAO,WACL,IAAIjb,EAAO,GAAIN,EAAMzD,UAAUC,OAC/B,MAAQwD,IAAQM,EAAMN,GAAQzD,UAAWyD,GAEzC,IAAIub,EAEJ,OADAA,GAAS,EACFrB,EAAGzZ,MAAMjD,KAAM8C,EACxB,CACF,CAIA,IAAIkb,GAAU,SAAkBrS,EAAQkG,GACtC7R,KAAK2L,OAASA,EACd3L,KAAK6R,KAAOoM,GAAcpM,GAE1B7R,KAAK0I,QAAU4D,EACftM,KAAK8c,QAAU,KACf9c,KAAKke,OAAQ,EACble,KAAKme,SAAW,GAChBne,KAAKoe,cAAgB,GACrBpe,KAAKqe,SAAW,EAClB,EA0JA,SAASJ,GAAepM,GACtB,IAAKA,EACH,GAAIJ,EAAW,CAEb,IAAI6M,EAAS5d,SAASgb,cAAc,QACpC7J,EAAQyM,GAAUA,EAAOzO,aAAa,SAAY,IAElDgC,EAAOA,EAAKlI,QAAQ,qBAAsB,GAC5C,MACEkI,EAAO,IAQX,MAJuB,MAAnBA,EAAKE,OAAO,KACdF,EAAO,IAAMA,GAGRA,EAAKlI,QAAQ,MAAO,GAC7B,CAEA,SAAS4U,GACP7V,EACAiL,GAEA,IAAInV,EACAggB,EAAMC,KAAKD,IAAI9V,EAAQ1J,OAAQ2U,EAAK3U,QACxC,IAAKR,EAAI,EAAGA,EAAIggB,EAAKhgB,IACnB,GAAIkK,EAAQlK,KAAOmV,EAAKnV,GACtB,MAGJ,MAAO,CACLkgB,QAAS/K,EAAKhV,MAAM,EAAGH,GACvBmgB,UAAWhL,EAAKhV,MAAMH,GACtBogB,YAAalW,EAAQ/J,MAAMH,GAE/B,CAEA,SAASqgB,GACPC,EACA5a,EACAhG,EACA6gB,GAEA,IAAIC,EAAShC,GAAkB8B,GAAS,SAAU7B,EAAKgC,EAAUxJ,EAAO1O,GACtE,IAAImY,EAAQC,GAAalC,EAAK/Y,GAC9B,GAAIgb,EACF,OAAOnc,MAAM8H,QAAQqU,GACjBA,EAAMjU,KAAI,SAAUiU,GAAS,OAAOhhB,EAAKghB,EAAOD,EAAUxJ,EAAO1O,EAAM,IACvE7I,EAAKghB,EAAOD,EAAUxJ,EAAO1O,EAErC,IACA,OAAO2W,GAAQqB,EAAUC,EAAOD,UAAYC,EAC9C,CAEA,SAASG,GACPlC,EACAlW,GAMA,MAJmB,oBAARkW,IAETA,EAAM7P,EAAKxG,OAAOqW,IAEbA,EAAI9d,QAAQ4H,EACrB,CAEA,SAASqY,GAAoBR,GAC3B,OAAOC,GAAcD,EAAa,mBAAoBS,IAAW,EACnE,CAEA,SAASC,GAAoBZ,GAC3B,OAAOG,GAAcH,EAAS,oBAAqBW,GACrD,CAEA,SAASA,GAAWH,EAAOD,GACzB,GAAIA,EACF,OAAO,WACL,OAAOC,EAAMjc,MAAMgc,EAAUlgB,UAC/B,CAEJ,CAEA,SAASwgB,GACPZ,EACAa,EACAC,GAEA,OAAOZ,GAAcF,EAAW,oBAAoB,SAAUO,EAAO9X,EAAGqO,EAAO1O,GAC7E,OAAO2Y,GAAeR,EAAOzJ,EAAO1O,EAAKyY,EAAKC,EAChD,GACF,CAEA,SAASC,GACPR,EACAzJ,EACA1O,EACAyY,EACAC,GAEA,OAAO,SAA0BjS,EAAIoM,EAAMjG,GACzC,OAAOuL,EAAM1R,EAAIoM,GAAM,SAAU9Z,GAC/B6T,EAAK7T,GACa,oBAAPA,GACT0f,EAAI/gB,MAAK,WAMPkhB,GAAK7f,EAAI2V,EAAM9M,UAAW5B,EAAK0Y,EACjC,GAEJ,GACF,CACF,CAEA,SAASE,GACP7f,EACA6I,EACA5B,EACA0Y,GAGE9W,EAAU5B,KACT4B,EAAU5B,GAAK6Y,kBAEhB9f,EAAG6I,EAAU5B,IACJ0Y,KACT/d,YAAW,WACTie,GAAK7f,EAAI6I,EAAW5B,EAAK0Y,EAC3B,GAAG,GAEP,CA5RAzB,GAAQhb,UAAU6c,OAAS,SAAiB/f,GAC1CE,KAAKF,GAAKA,CACZ,EAEAke,GAAQhb,UAAU8c,QAAU,SAAkBhgB,EAAIigB,GAC5C/f,KAAKke,MACPpe,KAEAE,KAAKme,SAAS1f,KAAKqB,GACfigB,GACF/f,KAAKoe,cAAc3f,KAAKshB,GAG9B,EAEA/B,GAAQhb,UAAUgd,QAAU,SAAkBD,GAC5C/f,KAAKqe,SAAS5f,KAAKshB,EACrB,EAEA/B,GAAQhb,UAAUid,aAAe,SAAuBxU,EAAUyU,EAAYC,GAC1E,IAAIlS,EAASjO,KAEX0H,EAAQ1H,KAAK2L,OAAO8J,MAAMhK,EAAUzL,KAAK0I,SAC7C1I,KAAKogB,kBAAkB1Y,GAAO,WAC5BuG,EAAOoS,YAAY3Y,GACnBwY,GAAcA,EAAWxY,GACzBuG,EAAOqS,YAGFrS,EAAOiQ,QACVjQ,EAAOiQ,OAAQ,EACfjQ,EAAOkQ,SAAS3T,SAAQ,SAAU1K,GAAMA,EAAG4H,EAAQ,IAEvD,IAAG,SAAUjB,GACP0Z,GACFA,EAAQ1Z,GAENA,IAAQwH,EAAOiQ,QACjBjQ,EAAOiQ,OAAQ,EACfjQ,EAAOmQ,cAAc5T,SAAQ,SAAU1K,GAAMA,EAAG2G,EAAM,IAE1D,GACF,EAEAuX,GAAQhb,UAAUod,kBAAoB,SAA4B1Y,EAAOwY,EAAYC,GACjF,IAAIlS,EAASjO,KAEX0I,EAAU1I,KAAK0I,QACf6X,EAAQ,SAAU9Z,GAChBD,EAAQC,KACNwH,EAAOoQ,SAASrf,OAClBiP,EAAOoQ,SAAS7T,SAAQ,SAAU1K,GAAMA,EAAG2G,EAAM,KAEjDJ,GAAK,EAAO,2CACZma,QAAQzD,MAAMtW,KAGlB0Z,GAAWA,EAAQ1Z,EACrB,EACA,GACEiG,EAAYhF,EAAOgB,IAEnBhB,EAAMU,QAAQpJ,SAAW0J,EAAQN,QAAQpJ,OAGzC,OADAgB,KAAKsgB,YACEC,IAGT,IAAIlZ,EAAMkX,GAAave,KAAK0I,QAAQN,QAASV,EAAMU,SAC7CsW,EAAUrX,EAAIqX,QACdE,EAAcvX,EAAIuX,YAClBD,EAAYtX,EAAIsX,UAElB1c,EAAQ,GAAGI,OAEb+c,GAAmBR,GAEnB5e,KAAK2L,OAAO8U,YAEZnB,GAAmBZ,GAEnBC,EAAU1T,KAAI,SAAUwI,GAAK,OAAOA,EAAEgE,WAAa,IAEnDmF,GAAuB+B,IAGzB3e,KAAK8c,QAAUpV,EACf,IAAIgZ,EAAW,SAAUzb,EAAM0O,GAC7B,GAAI1F,EAAO6O,UAAYpV,EACrB,OAAO6Y,IAET,IACEtb,EAAKyC,EAAOgB,GAAS,SAAU8E,IAClB,IAAPA,GAAgBhH,EAAQgH,IAE1BS,EAAOqS,WAAU,GACjBC,EAAM/S,IAEQ,kBAAPA,GACQ,kBAAPA,IACa,kBAAZA,EAAGzB,MACS,kBAAZyB,EAAGtJ,OAIZqc,IACkB,kBAAP/S,GAAmBA,EAAG7D,QAC/BsE,EAAOtE,QAAQ6D,GAEfS,EAAOxP,KAAK+O,IAIdmG,EAAKnG,EAET,GACF,CAAE,MAAO7L,GACP4e,EAAM5e,EACR,CACF,EAEA8a,GAASxa,EAAOye,GAAU,WACxB,IAAIC,EAAe,GACflB,EAAU,WAAc,OAAOxR,EAAOvF,UAAYhB,CAAO,EAGzDkZ,EAAcrB,GAAmBZ,EAAWgC,EAAclB,GAC1Dxd,EAAQ2e,EAAYve,OAAO4L,EAAOtC,OAAOkV,cAC7CpE,GAASxa,EAAOye,GAAU,WACxB,GAAIzS,EAAO6O,UAAYpV,EACrB,OAAO6Y,IAETtS,EAAO6O,QAAU,KACjBoD,EAAWxY,GACPuG,EAAOtC,OAAOmO,KAChB7L,EAAOtC,OAAOmO,IAAIG,WAAU,WAC1B0G,EAAanW,SAAQ,SAAU1K,GAAMA,GAAM,GAC7C,GAEJ,GACF,GACF,EAEAke,GAAQhb,UAAUqd,YAAc,SAAsB3Y,GACpD,IAAIoZ,EAAO9gB,KAAK0I,QAChB1I,KAAK0I,QAAUhB,EACf1H,KAAKF,IAAME,KAAKF,GAAG4H,GACnB1H,KAAK2L,OAAOoV,WAAWvW,SAAQ,SAAUvF,GACvCA,GAAQA,EAAKyC,EAAOoZ,EACtB,GACF,EA0IA,IAAIE,GAA6B,SAAUC,GACzC,SAASD,EAAcrV,EAAQkG,GAC7B,IAAI5D,EAASjO,KAEbihB,EAAWrf,KAAK5B,KAAM2L,EAAQkG,GAE9B,IAAIqP,EAAevV,EAAOxM,QAAQ6a,eAC9BmH,EAAiBvF,IAAqBsF,EAEtCC,GACFhI,KAGF,IAAIiI,EAAeC,GAAYrhB,KAAK6R,MACpCH,OAAO6H,iBAAiB,YAAY,SAAU5X,GAC5C,IAAI+G,EAAUuF,EAAOvF,QAIjB+C,EAAW4V,GAAYpT,EAAO4D,MAC9B5D,EAAOvF,UAAY4D,GAASb,IAAa2V,GAI7CnT,EAAOgS,aAAaxU,GAAU,SAAU/D,GAClCyZ,GACFxH,GAAahO,EAAQjE,EAAOgB,GAAS,EAEzC,GACF,GACF,CA6CA,OA3CKuY,IAAaD,EAAaM,UAAYL,GAC3CD,EAAahe,UAAY0D,OAAOuP,OAAQgL,GAAcA,EAAWje,WACjEge,EAAahe,UAAUue,YAAcP,EAErCA,EAAahe,UAAUwe,GAAK,SAAaC,GACvC/P,OAAOZ,QAAQ0Q,GAAGC,EACpB,EAEAT,EAAahe,UAAUvE,KAAO,SAAegN,EAAUyU,EAAYC,GACjE,IAAIlS,EAASjO,KAETqH,EAAMrH,KACN0hB,EAAYra,EAAIqB,QACpB1I,KAAKigB,aAAaxU,GAAU,SAAU/D,GACpC6U,GAAUhK,EAAUtE,EAAO4D,KAAOnK,EAAMuE,WACxC0N,GAAa1L,EAAOtC,OAAQjE,EAAOga,GAAW,GAC9CxB,GAAcA,EAAWxY,EAC3B,GAAGyY,EACL,EAEAa,EAAahe,UAAU2G,QAAU,SAAkB8B,EAAUyU,EAAYC,GACvE,IAAIlS,EAASjO,KAETqH,EAAMrH,KACN0hB,EAAYra,EAAIqB,QACpB1I,KAAKigB,aAAaxU,GAAU,SAAU/D,GACpC0R,GAAa7G,EAAUtE,EAAO4D,KAAOnK,EAAMuE,WAC3C0N,GAAa1L,EAAOtC,OAAQjE,EAAOga,GAAW,GAC9CxB,GAAcA,EAAWxY,EAC3B,GAAGyY,EACL,EAEAa,EAAahe,UAAUsd,UAAY,SAAoB7hB,GACrD,GAAI4iB,GAAYrhB,KAAK6R,QAAU7R,KAAK0I,QAAQuD,SAAU,CACpD,IAAIvD,EAAU6J,EAAUvS,KAAK6R,KAAO7R,KAAK0I,QAAQuD,UACjDxN,EAAO8d,GAAU7T,GAAW0Q,GAAa1Q,EAC3C,CACF,EAEAsY,EAAahe,UAAU2e,mBAAqB,WAC1C,OAAON,GAAYrhB,KAAK6R,KAC1B,EAEOmP,CACT,CA5EgC,CA4E9BhD,IAEF,SAASqD,GAAaxP,GACpB,IAAI9F,EAAO6V,UAAUlQ,OAAOjG,SAASoW,UAIrC,OAHIhQ,GAA+B,IAAvB9F,EAAKpF,QAAQkL,KACvB9F,EAAOA,EAAKpN,MAAMkT,EAAK7S,UAEjB+M,GAAQ,KAAO2F,OAAOjG,SAASqW,OAASpQ,OAAOjG,SAASO,IAClE,CAIA,IAAI+V,GAA4B,SAAUd,GACxC,SAASc,EAAapW,EAAQkG,EAAMmQ,GAClCf,EAAWrf,KAAK5B,KAAM2L,EAAQkG,GAE1BmQ,GAAYC,GAAcjiB,KAAK6R,OAGnCqQ,IACF,CA0EA,OAxEKjB,IAAac,EAAYT,UAAYL,GAC1Cc,EAAY/e,UAAY0D,OAAOuP,OAAQgL,GAAcA,EAAWje,WAChE+e,EAAY/e,UAAUue,YAAcQ,EAIpCA,EAAY/e,UAAUmf,eAAiB,WACrC,IAAIlU,EAASjO,KAET2L,EAAS3L,KAAK2L,OACduV,EAAevV,EAAOxM,QAAQ6a,eAC9BmH,EAAiBvF,IAAqBsF,EAEtCC,GACFhI,KAGFzH,OAAO6H,iBAAiBqC,GAAoB,WAAa,cAAc,WACrE,IAAIlT,EAAUuF,EAAOvF,QAChBwZ,MAGLjU,EAAOgS,aAAamC,MAAW,SAAU1a,GACnCyZ,GACFxH,GAAa1L,EAAOtC,OAAQjE,EAAOgB,GAAS,GAEzCkT,IACHyG,GAAY3a,EAAMuE,SAEtB,GACF,GACF,EAEA8V,EAAY/e,UAAUvE,KAAO,SAAegN,EAAUyU,EAAYC,GAChE,IAAIlS,EAASjO,KAETqH,EAAMrH,KACN0hB,EAAYra,EAAIqB,QACpB1I,KAAKigB,aAAaxU,GAAU,SAAU/D,GACpC4a,GAAS5a,EAAMuE,UACf0N,GAAa1L,EAAOtC,OAAQjE,EAAOga,GAAW,GAC9CxB,GAAcA,EAAWxY,EAC3B,GAAGyY,EACL,EAEA4B,EAAY/e,UAAU2G,QAAU,SAAkB8B,EAAUyU,EAAYC,GACtE,IAAIlS,EAASjO,KAETqH,EAAMrH,KACN0hB,EAAYra,EAAIqB,QACpB1I,KAAKigB,aAAaxU,GAAU,SAAU/D,GACpC2a,GAAY3a,EAAMuE,UAClB0N,GAAa1L,EAAOtC,OAAQjE,EAAOga,GAAW,GAC9CxB,GAAcA,EAAWxY,EAC3B,GAAGyY,EACL,EAEA4B,EAAY/e,UAAUwe,GAAK,SAAaC,GACtC/P,OAAOZ,QAAQ0Q,GAAGC,EACpB,EAEAM,EAAY/e,UAAUsd,UAAY,SAAoB7hB,GACpD,IAAIiK,EAAU1I,KAAK0I,QAAQuD,SACvBmW,OAAc1Z,IAChBjK,EAAO6jB,GAAS5Z,GAAW2Z,GAAY3Z,GAE3C,EAEAqZ,EAAY/e,UAAU2e,mBAAqB,WACzC,OAAOS,IACT,EAEOL,CACT,CAnF+B,CAmF7B/D,IAEF,SAASiE,GAAepQ,GACtB,IAAIpG,EAAW4V,GAAYxP,GAC3B,IAAK,OAAO/B,KAAKrE,GAIf,OAHAiG,OAAOjG,SAAS9B,QACd4I,EAAUV,EAAO,KAAOpG,KAEnB,CAEX,CAEA,SAASyW,KACP,IAAInW,EAAOqW,KACX,MAAuB,MAAnBrW,EAAKgG,OAAO,KAGhBsQ,GAAY,IAAMtW,IACX,EACT,CAEA,SAASqW,KAGP,IAAIhU,EAAOsD,OAAOjG,SAAS2C,KACvBiF,EAAQjF,EAAKzH,QAAQ,KACzB,OAAkB,IAAX0M,EAAe,GAAKuO,UAAUxT,EAAKzP,MAAM0U,EAAQ,GAC1D,CAEA,SAASkP,GAAQxW,GACf,IAAIqC,EAAOsD,OAAOjG,SAAS2C,KACvB5P,EAAI4P,EAAKzH,QAAQ,KACjBkL,EAAOrT,GAAK,EAAI4P,EAAKzP,MAAM,EAAGH,GAAK4P,EACvC,OAAQyD,EAAO,IAAM9F,CACvB,CAEA,SAASuW,GAAUvW,GACb6P,GACFW,GAAUgG,GAAOxW,IAEjB2F,OAAOjG,SAASO,KAAOD,CAE3B,CAEA,SAASsW,GAAatW,GAChB6P,GACFxC,GAAamJ,GAAOxW,IAEpB2F,OAAOjG,SAAS9B,QAAQ4Y,GAAOxW,GAEnC,CAIA,IAAIyW,GAAgC,SAAUvB,GAC5C,SAASuB,EAAiB7W,EAAQkG,GAChCoP,EAAWrf,KAAK5B,KAAM2L,EAAQkG,GAC9B7R,KAAKgS,MAAQ,GACbhS,KAAKqT,OAAS,CAChB,CAgDA,OA9CK4N,IAAauB,EAAgBlB,UAAYL,GAC9CuB,EAAgBxf,UAAY0D,OAAOuP,OAAQgL,GAAcA,EAAWje,WACpEwf,EAAgBxf,UAAUue,YAAciB,EAExCA,EAAgBxf,UAAUvE,KAAO,SAAegN,EAAUyU,EAAYC,GACpE,IAAIlS,EAASjO,KAEbA,KAAKigB,aAAaxU,GAAU,SAAU/D,GACpCuG,EAAO+D,MAAQ/D,EAAO+D,MAAMrT,MAAM,EAAGsP,EAAOoF,MAAQ,GAAGhR,OAAOqF,GAC9DuG,EAAOoF,QACP6M,GAAcA,EAAWxY,EAC3B,GAAGyY,EACL,EAEAqC,EAAgBxf,UAAU2G,QAAU,SAAkB8B,EAAUyU,EAAYC,GAC1E,IAAIlS,EAASjO,KAEbA,KAAKigB,aAAaxU,GAAU,SAAU/D,GACpCuG,EAAO+D,MAAQ/D,EAAO+D,MAAMrT,MAAM,EAAGsP,EAAOoF,OAAOhR,OAAOqF,GAC1DwY,GAAcA,EAAWxY,EAC3B,GAAGyY,EACL,EAEAqC,EAAgBxf,UAAUwe,GAAK,SAAaC,GAC1C,IAAIxT,EAASjO,KAETyiB,EAAcziB,KAAKqT,MAAQoO,EAC/B,KAAIgB,EAAc,GAAKA,GAAeziB,KAAKgS,MAAMhT,QAAjD,CAGA,IAAI0I,EAAQ1H,KAAKgS,MAAMyQ,GACvBziB,KAAKogB,kBAAkB1Y,GAAO,WAC5BuG,EAAOoF,MAAQoP,EACfxU,EAAOoS,YAAY3Y,EACrB,GALA,CAMF,EAEA8a,EAAgBxf,UAAU2e,mBAAqB,WAC7C,IAAIjZ,EAAU1I,KAAKgS,MAAMhS,KAAKgS,MAAMhT,OAAS,GAC7C,OAAO0J,EAAUA,EAAQuD,SAAW,GACtC,EAEAuW,EAAgBxf,UAAUsd,UAAY,WAEtC,EAEOkC,CACT,CAtDmC,CAsDjCxE,IAME0E,GAAY,SAAoBvjB,QACjB,IAAZA,IAAqBA,EAAU,CAAC,GAErCa,KAAK8Z,IAAM,KACX9Z,KAAK2iB,KAAO,GACZ3iB,KAAKb,QAAUA,EACfa,KAAKygB,YAAc,GACnBzgB,KAAK6gB,aAAe,GACpB7gB,KAAK+gB,WAAa,GAClB/gB,KAAK4iB,QAAUxK,GAAcjZ,EAAQoX,QAAU,GAAIvW,MAEnD,IAAI6iB,EAAO1jB,EAAQ0jB,MAAQ,OAU3B,OATA7iB,KAAKgiB,SAAoB,YAATa,IAAuBjH,KAA0C,IAArBzc,EAAQ6iB,SAChEhiB,KAAKgiB,WACPa,EAAO,QAEJpR,IACHoR,EAAO,YAET7iB,KAAK6iB,KAAOA,EAEJA,GACN,IAAK,UACH7iB,KAAK8Q,QAAU,IAAIkQ,GAAahhB,KAAMb,EAAQ0S,MAC9C,MACF,IAAK,OACH7R,KAAK8Q,QAAU,IAAIiR,GAAY/hB,KAAMb,EAAQ0S,KAAM7R,KAAKgiB,UACxD,MACF,IAAK,WACHhiB,KAAK8Q,QAAU,IAAI0R,GAAgBxiB,KAAMb,EAAQ0S,MACjD,MACF,QACM,EAIV,EAEIiR,GAAqB,CAAExK,aAAc,CAAEyK,cAAc,IAiJzD,SAASC,GAAcC,EAAMvG,GAE3B,OADAuG,EAAKxkB,KAAKie,GACH,WACL,IAAIle,EAAIykB,EAAKtc,QAAQ+V,GACjBle,GAAK,GAAKykB,EAAKjM,OAAOxY,EAAG,EAC/B,CACF,CAEA,SAAS0kB,GAAYrR,EAAM5F,EAAU4W,GACnC,IAAI9W,EAAgB,SAAT8W,EAAkB,IAAM5W,EAAWA,EAC9C,OAAO4F,EAAOU,EAAUV,EAAO,IAAM9F,GAAQA,CAC/C,CA1JA2W,GAAU1f,UAAUyS,MAAQ,SAC1BsC,EACArP,EACAgD,GAEA,OAAO1L,KAAK4iB,QAAQnN,MAAMsC,EAAKrP,EAASgD,EAC1C,EAEAoX,GAAmBxK,aAAarH,IAAM,WACpC,OAAOjR,KAAK8Q,SAAW9Q,KAAK8Q,QAAQpI,OACtC,EAEAga,GAAU1f,UAAU2N,KAAO,SAAemJ,GACtC,IAAI7L,EAASjO,KAWf,GAHAA,KAAK2iB,KAAKlkB,KAAKqb,IAGX9Z,KAAK8Z,IAAT,CAIA9Z,KAAK8Z,IAAMA,EAEX,IAAIhJ,EAAU9Q,KAAK8Q,QAEnB,GAAIA,aAAmBkQ,GACrBlQ,EAAQmP,aAAanP,EAAQ6Q,2BACxB,GAAI7Q,aAAmBiR,GAAa,CACzC,IAAIoB,EAAoB,WACtBrS,EAAQqR,gBACV,EACArR,EAAQmP,aACNnP,EAAQ6Q,qBACRwB,EACAA,EAEJ,CAEArS,EAAQ+O,QAAO,SAAUnY,GACvBuG,EAAO0U,KAAKnY,SAAQ,SAAUsP,GAC5BA,EAAI5I,OAASxJ,CACf,GACF,GAvBA,CAwBF,EAEAgb,GAAU1f,UAAUogB,WAAa,SAAqB1G,GACpD,OAAOsG,GAAahjB,KAAKygB,YAAa/D,EACxC,EAEAgG,GAAU1f,UAAUqgB,cAAgB,SAAwB3G,GAC1D,OAAOsG,GAAahjB,KAAK6gB,aAAcnE,EACzC,EAEAgG,GAAU1f,UAAUsgB,UAAY,SAAoB5G,GAClD,OAAOsG,GAAahjB,KAAK+gB,WAAYrE,EACvC,EAEAgG,GAAU1f,UAAU8c,QAAU,SAAkBhgB,EAAIigB,GAClD/f,KAAK8Q,QAAQgP,QAAQhgB,EAAIigB,EAC3B,EAEA2C,GAAU1f,UAAUgd,QAAU,SAAkBD,GAC9C/f,KAAK8Q,QAAQkP,QAAQD,EACvB,EAEA2C,GAAU1f,UAAUvE,KAAO,SAAegN,EAAUyU,EAAYC,GAC9DngB,KAAK8Q,QAAQrS,KAAKgN,EAAUyU,EAAYC,EAC1C,EAEAuC,GAAU1f,UAAU2G,QAAU,SAAkB8B,EAAUyU,EAAYC,GACpEngB,KAAK8Q,QAAQnH,QAAQ8B,EAAUyU,EAAYC,EAC7C,EAEAuC,GAAU1f,UAAUwe,GAAK,SAAaC,GACpCzhB,KAAK8Q,QAAQ0Q,GAAGC,EAClB,EAEAiB,GAAU1f,UAAUugB,KAAO,WACzBvjB,KAAKwhB,IAAI,EACX,EAEAkB,GAAU1f,UAAUwgB,QAAU,WAC5BxjB,KAAKwhB,GAAG,EACV,EAEAkB,GAAU1f,UAAUygB,qBAAuB,SAA+BjW,GACxE,IAAI9F,EAAQ8F,EACRA,EAAGpF,QACDoF,EACAxN,KAAKmO,QAAQX,GAAI9F,MACnB1H,KAAKsY,aACT,OAAK5Q,EAGE,GAAGrF,OAAOY,MAAM,GAAIyE,EAAMU,QAAQ6C,KAAI,SAAUwI,GACrD,OAAO/M,OAAOsE,KAAKyI,EAAEnL,YAAY2C,KAAI,SAAUlE,GAC7C,OAAO0M,EAAEnL,WAAWvB,EACtB,GACF,KANS,EAOX,EAEA2b,GAAU1f,UAAUmL,QAAU,SAC5BX,EACA9E,EACAmF,GAEAnF,EAAUA,GAAW1I,KAAK8Q,QAAQpI,QAClC,IAAI+C,EAAWqM,GACbtK,EACA9E,EACAmF,EACA7N,MAEE0H,EAAQ1H,KAAKyV,MAAMhK,EAAU/C,GAC7BuD,EAAWvE,EAAMgE,gBAAkBhE,EAAMuE,SACzC4F,EAAO7R,KAAK8Q,QAAQe,KACpBzD,EAAO8U,GAAWrR,EAAM5F,EAAUjM,KAAK6iB,MAC3C,MAAO,CACLpX,SAAUA,EACV/D,MAAOA,EACP0G,KAAMA,EAENsV,aAAcjY,EACd4R,SAAU3V,EAEd,EAEAgb,GAAU1f,UAAUqV,UAAY,SAAoB9B,GAClDvW,KAAK4iB,QAAQvK,UAAU9B,GACnBvW,KAAK8Q,QAAQpI,UAAY4D,GAC3BtM,KAAK8Q,QAAQmP,aAAajgB,KAAK8Q,QAAQ6Q,qBAE3C,EAEAjb,OAAOid,iBAAkBjB,GAAU1f,UAAW8f,IAe9CJ,GAAUzS,QAAUA,EACpByS,GAAUpf,QAAU,QAEhBmO,GAAaC,OAAOxB,KACtBwB,OAAOxB,IAAI0T,IAAIlB,IAGjB,M","sources":["../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js","../../../node_modules/.pnpm/load-script@2.0.0/node_modules/load-script/index.js","../../../node_modules/.pnpm/process@0.11.10/node_modules/process/browser.js","../../../node_modules/.pnpm/vue-loader@15.11.1_s555ekni5erklctw7waekrv6tq/node_modules/vue-loader/lib/runtime/componentNormalizer.js","../../../node_modules/.pnpm/vue-router@3.0.3_vue@2.7.16/node_modules/vue-router/dist/vue-router.esm.js"],"sourcesContent":["const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","\nmodule.exports = function load (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0]\n var script = document.createElement('script')\n\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n opts = opts || {}\n cb = cb || function() {}\n\n script.type = opts.type || 'text/javascript'\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true\n script.src = src\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs)\n }\n\n if (opts.text) {\n script.text = '' + opts.text\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n onend(script, cb)\n\n // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd (script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null\n cb(null, script)\n }\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + this.src), script)\n }\n}\n\nfunction ieOnEnd (script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return\n this.onreadystatechange = null\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*!\n * vue-router v3.0.3\n * (c) 2019 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n if (parent.$vnode && parent.$vnode.data.routerView) {\n depth++;\n }\n if (parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n return h(cache[name], data, children)\n }\n\n var matched = route.matched[depth];\n // render empty node if no matched route\n if (!matched) {\n cache[name] = null;\n return h()\n }\n\n var component = cache[name] = matched.components[name];\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // resolve props\n var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n\n return h(component, data, children)\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0\n ? decode(parts.join('='))\n : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj ? Object.keys(obj).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery$$1 = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery$$1),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery$$1);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(this.to, current, this.append);\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback = globalActiveClass == null\n ? 'router-link-active'\n : globalActiveClass;\n var exactActiveClassFallback = globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass = this.activeClass == null\n ? activeClassFallback\n : this.activeClass;\n var exactActiveClass = this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n var compareTarget = location.path\n ? createRoute(null, location, null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location);\n } else {\n router.push(location);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) { on[e] = handler; });\n } else {\n on[this.event] = handler;\n }\n\n var data = {\n class: classes\n };\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = a.data = extend({}, a.data);\n aData.on = on;\n var aAttrs = a.data.attrs = extend({}, a.data.attrs);\n aAttrs.href = href;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n}\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n if (params.pathMatch) { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(path || name)) + \" cannot be a \" +\n \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions = route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(\n path,\n parent,\n pathToRegexpOptions.strict\n );\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props: route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (route.name && !route.redirect && route.children.some(function (child) { return /^\\/?$/.test(child.path); })) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias)\n ? route.alias\n : [route.alias];\n\n aliases.forEach(function (alias) {\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (path, pathToRegexpOptions) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(!keys[key.name], (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\"));\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (path, parent, strict) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n return extend({}, raw)\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n if (record) {\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n }\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n window.history.replaceState({ key: getStateKey() }, '', window.location.href.replace(window.location.origin, ''));\n window.addEventListener('popstate', function (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n });\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(router, to, from, isPop ? position : null);\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll.then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n }).catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n var el = document.querySelector(shouldScroll.selector);\n if (el) {\n var offset = shouldScroll.offset && typeof shouldScroll.offset === 'object' ? shouldScroll.offset : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState = inBrowser && (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && 'pushState' in window.history\n})();\n\n// use User Timing api (if present) for more accurate key precision\nvar Time = inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nvar _key = genKey();\n\nfunction genKey () {\n return Time.now().toFixed(3)\n}\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n _key = key;\n}\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n history.replaceState({ key: _key }, '', url);\n } else {\n _key = genKey();\n history.pushState({ key: _key }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (location, onComplete, onAbort) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(route, function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) { cb(route); });\n }\n }, function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) { cb(err); });\n }\n });\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n if (isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) { cb(err); });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n route.matched.length === current.matched.length\n ) {\n this.ensureURL();\n return abort()\n }\n\n var ref = resolveQueue(this.current.matched, route.matched);\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort()\n }\n try {\n hook(route, current, function (to) {\n if (to === false || isError(to)) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' && (\n typeof to.path === 'string' ||\n typeof to.name === 'string'\n ))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort();\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort()\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) { cb(); });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n var prev = this.current;\n this.current = route;\n this.cb && this.cb(route);\n this.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(activated, 'beforeRouteEnter', function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n })\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n next(cb);\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (\n instances[key] &&\n !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n ) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History$$1) {\n function HTML5History (router, base) {\n var this$1 = this;\n\n History$$1.call(this, router, base);\n\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n var initLocation = getLocation(this.base);\n window.addEventListener('popstate', function (e) {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === initLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n });\n }\n\n if ( History$$1 ) HTML5History.__proto__ = History$$1;\n HTML5History.prototype = Object.create( History$$1 && History$$1.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = decodeURI(window.location.pathname);\n if (base && path.indexOf(base) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History$$1) {\n function HashHistory (router, base, fallback) {\n History$$1.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History$$1 ) HashHistory.__proto__ = History$$1;\n HashHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n window.addEventListener(supportsPushState ? 'popstate' : 'hashchange', function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(\n cleanPath(base + '/#' + location)\n );\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n return index === -1 ? '' : decodeURI(href.slice(index + 1))\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History$$1) {\n function AbstractHistory (router, base) {\n History$$1.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History$$1 ) AbstractHistory.__proto__ = History$$1;\n AbstractHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(route, function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n });\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // main app already initialized.\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History) {\n history.transitionTo(history.getCurrentLocation());\n } else if (history instanceof HashHistory) {\n var setupHashListener = function () {\n history.setupListeners();\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupHashListener,\n setupHashListener\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n this.history.push(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n this.history.replace(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(\n to,\n current,\n append,\n this\n );\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.0.3';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n"],"names":["getRandomValues","randomUUID","crypto","bind","rnds8","Uint8Array","rng","Error","byteToHex","i","push","toString","slice","unsafeStringify","arr","offset","arguments","length","undefined","v4","options","buf","native","rnds","random","setAttributes","script","attrs","attr","setAttribute","stdOnEnd","cb","onload","this","onerror","src","ieOnEnd","onreadystatechange","readyState","module","exports","opts","head","document","getElementsByTagName","createElement","type","charset","async","text","onend","appendChild","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","e","call","runClearTimeout","marker","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","Item","array","noop","nextTick","args","Array","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","warn","condition","message","isError","err","Object","indexOf","extend","a","b","key","View","props","String","default","_","ref","children","data","routerView","$createElement","route","$route","cache","_routerViewCache","depth","inactive","_routerRoot","_inactive","$parent","routerViewDepth","matched","component","components","registerRouteInstance","vm","val","current","instances","prepatch","vnode","componentInstance","propsToPass","resolveProps","config","params","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parse","parseQuery","res","trim","split","forEach","param","parts","shift","join","isArray","stringifyQuery","obj","keys","map","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","stringifyQuery$$1","clone","meta","path","hash","fullPath","getFullPath","formatMatch","freeze","value","START","unshift","_stringifyQuery","stringify","isSameRoute","isObjectEqual","aKeys","bKeys","every","aVal","bVal","isIncludedRoute","target","queryIncludes","_Vue","toTypes","eventTypes","Link","to","required","tag","exact","Boolean","append","activeClass","exactActiveClass","event","this$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","click","class","findAnchor","$slots","isStatic","aData","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","test","preventDefault","child","install","Vue","installed","isDef","v","registerInstance","callVal","_parentVnode","mixin","_router","init","util","defineReactive","history","destroyed","defineProperty","get","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","window","resolvePath","relative","base","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","pretty","token","TypeError","JSON","j","attachKeys","re","flags","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","beforeEnter","childMatchAs","alias","aliases","aliasRoute","normalizeLocation","raw","_normalized","rawPath","parsedPath","basePath","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","positionStore","setupScroll","replaceState","getStateKey","origin","addEventListener","saveScrollPosition","state","setStateKey","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","isObject","selector","querySelector","scrollTo","supportsPushState","ua","navigator","userAgent","Time","performance","now","Date","_key","genKey","toFixed","pushState","url","runQueue","fn","step","resolveAsyncComponents","hasAsync","pending","error","flatMapComponents","def","cid","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","hasSymbol","Symbol","toStringTag","__esModule","called","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","max","Math","updated","activated","deactivated","extractGuards","records","reverse","guards","instance","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","cbs","isValid","bindEnterGuard","poll","_isBeingDestroyed","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","abort","console","beforeHooks","iterator","postEnterCbs","enterGuards","resolveHooks","prev","afterHooks","HTML5History","History$$1","expectScroll","supportsScroll","initLocation","getLocation","__proto__","constructor","go","n","fromRoute","getCurrentLocation","decodeURI","pathname","search","HashHistory","fallback","checkFallback","ensureSlash","setupListeners","getHash","replaceHash","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","configurable","registerHook","list","createHref","setupHashListener","beforeEach","beforeResolve","afterEach","back","forward","getMatchedComponents","normalizedTo","defineProperties","use"],"sourceRoot":""}