{"version":3,"file":"6fd9a294f5ab300c783e6e8def65f3f1111ffdc3-43709bf3e6c108d892b6.js","mappings":"qIAAA,IAAe,IAA0B,qD,mCCAzC,IAAe,IAA0B,qD,sBCAzC,IAAIA,EAAQ,EAAQ,MAEpB,SAASC,EAAYC,GACjB,OAAOF,EAAMG,cAAc,MAAMD,EAAM,CAACF,EAAMG,cAAc,OAAO,CAAC,EAAI,k1CAAk1C,KAAO,UAAU,IAAM,IAAIH,EAAMG,cAAc,OAAO,CAAC,EAAI,+xBAA+xB,KAAO,UAAU,IAAM,IAAIH,EAAMG,cAAc,OAAO,CAAC,EAAI,45BAA45B,KAAO,UAAU,IAAM,IAAIH,EAAMG,cAAc,OAAO,CAAC,EAAI,w3BAAw3B,KAAO,UAAU,IAAM,KACzpI,CAEAF,EAAWG,aAAe,CAAC,MAAQ,MAAM,OAAS,KAAK,QAAU,aAAa,KAAO,QAErFC,EAAOC,QAAUL,EAEjBA,EAAWM,QAAUN,C,8oBComBIO,MAAAA,EC/lBe,uEAERC,UA2L5BC,SAAAA,EAgBFC,EACAC,EACAC,EACAC,EACAC,GA4BA,YA5BAA,IAAAA,IAAAA,EAAuB,CAAC,GAajBA,EAAAA,CAAAA,EAKFF,EAAAA,CACHC,QAAAA,EACAE,WAAYL,EACZ,kBAAkB,GAClBI,MAAAA,EAAAA,CAAAA,EACKA,EAAAA,CACHE,QAASL,EAAW,EAAI,iBAa5BM,EACAN,EACAO,EACAC,EACAZ,EACAa,EACAC,EACAC,GAEA,MAAM,EAA8B,CAAC,EAEjCF,IACFG,EAAaH,gBAAkBA,EAAAA,UAE3BF,GACFK,EAAaJ,MAAQA,EACrBI,EAAahB,OAASA,EACtBgB,EAAaH,gBAAkBA,EAC/BG,EAAaC,SAAAA,aAAAA,gBACJN,GAAAA,cAMAA,KALTK,EAAaC,SAAAA,WACbD,EAAaE,IAAM,EACnBF,EAAaG,KAAO,EACpBH,EAAaI,OAAS,EACtBJ,EAAaK,MAAQ,IAUrBP,IACFE,EAAaF,UAAYA,GAGvBC,IACFC,EAAaD,eAAiBA,GAEhC,MAAM,EAAN,KACKL,EAAAA,CACH,eAAc,EACd,yBAAyB,GACzBH,MAAAA,EAAAA,CACEE,QAASL,EAAW,EAAI,EACxBkB,WAAAA,wBACGN,KAeP,OAJIJ,CAAAA,CAgF8CW,MAAAA,EAAAA,CAAAA,YAAAA,EC9UE,YAGpDvB,IAHmEW,OACnEA,EADmEA,MAEnEC,EAFmED,OAGnEX,GAAAA,EAEA,oBAAIW,EAAAA,EAAAA,cAAAA,MAAAA,CAAAA,eAAAA,EAEiBJ,MAAO,CAAEiB,WAAgBxB,EAASY,EAAS,2BAI5DD,EAAAA,EAAAA,cAAAA,MAAAA,CAEKJ,MAAO,CAAEkB,SAAUb,EAAOc,QAAAA,UAC7BlC,EAAAA,cAAAA,MAAAA,CACEmC,IAAI,GACJC,KAAK,6BACO,OACZC,IAAAA,mDAAwD7B,aAAkBY,mEAC1EL,MAAO,CACLkB,SAAAA,OACAC,QAAAA,QACAT,SAAAA,aAAAA,IAAAA,EAAAA,EAWV,gBAAuBa,SAAEA,GAAAA,EAAapC,EAAAA,EAAAA,EAAAA,GACpC,uBACGqC,EAAAA,SAAAA,KACCvC,EAAAA,cAACwC,EAAAA,EAAAA,CAAAA,EAAUtC,IACVoC,EAEmC,+FCtEC,gBAAeD,IAC1DA,EAD0DA,OAE1DI,EAF0DJ,QAG1DvB,EAH0DuB,IAI1DF,EAAAA,GAJ0DE,WAK1DrB,GAAAA,EACGd,EAAAA,EAAAA,EAAAA,GAEH,kCAEQA,EAAAA,CACJwC,SAAS,QACT5B,QAASA,EACTuB,IAAKrB,EAAaqB,OAAAA,EAAMM,WACb3B,OAAAA,EAAaqB,EACxBI,OAAQzB,EAAayB,OAAAA,EAASE,cAChB3B,OAAAA,EAAayB,EAC3BN,IAAKA,IAAAA,EAAAA,EAKoC,gBAAiBS,SAC9DA,EAD8DA,QAE9Db,EAAU,GAFoDa,WAG9D5B,GAAAA,GAAa6B,EACV3C,EAAAA,EAAAA,EAAAA,GAEH,MAAM4C,EAAQ5C,EAAM6C,QAAAA,MAASH,OAAAA,EAAAA,EAAUG,OAAAA,EAErC/C,EAAAA,cAACgD,EAAAA,EAAAA,CAAAA,EAAU9C,EAAW0C,EAAAA,CAAUG,MAAOA,EAAO/B,WAAYA,KAG5D,OAAKe,EAAQkB,OAAAA,EAAAA,cAAAA,UAAAA,KAMRlB,EAAQmB,KAAI,QAAGC,MAAAA,EAAOV,OAAAA,EAAQW,KAAAA,GAAAA,EAAAA,OAC7BpD,EAAAA,cAAAA,SAAAA,CACEqD,IAAAA,GAAQF,KAASC,KAAQX,IACzBW,KAAMA,EACND,MAAOA,EACPV,OAAQzB,EAAayB,OAAAA,EAASE,cAChB3B,OAAAA,EAAayB,EAC3BM,MAAOA,GAAAA,IAGVO,GAAAA,CAAAA,EAAAA,IAAAA,EAKPN,EAAMO,UAAY,CAChBlB,IAAKmB,EAAAA,OAAiBC,WACtBtB,IAAKqB,EAAAA,OAAiBC,WACtBV,MAAOS,EAAAA,OACPf,OAAQe,EAAAA,OACRxC,WAAYwC,EAAAA,MAGdE,EAAQC,YAAAA,UACRD,EAAQH,UAAY,CAClBpB,IAAKqB,EAAAA,OAAiBC,WACtBzC,WAAYwC,EAAAA,KACZZ,SAAUY,EAAAA,MAAgB,CACxBnB,IAAKmB,EAAAA,OAAiBC,WACtBhB,OAAQe,EAAAA,OACRT,MAAOS,EAAAA,SAETzB,QAASyB,EAAAA,QACPA,EAAAA,UAAoB,CAClBA,EAAAA,MAAgB,CACdL,MAAOK,EAAAA,OAAiBC,WACxBL,KAAMI,EAAAA,OACNT,MAAOS,EAAAA,OACPf,OAAQe,EAAAA,OAAiBC,aAE3BD,EAAAA,MAAgB,CACdL,MAAOK,EAAAA,OACPJ,KAAMI,EAAAA,OAAiBC,WACvBV,MAAOS,EAAAA,OACPf,OAAQe,EAAAA,OAAiBC,iBAAAA,MAAAA,EAAAA,CAAAA,YAAAA,EC5G/B,gBAAqBb,SAAEA,GAAAA,EAAa1C,EAAAA,EAAAA,EAAAA,GAClC,OAAI0C,EAAAA,EAAAA,cAECc,EAAAA,EAAAA,CAAAA,EACKxD,EAAAA,CACJ0C,SAAU,CACRP,IAAKO,GAAAA,eAAAA,EAGPT,IAAI,iCAIQjC,GAAAA,EAItB0D,EAAYD,YAAAA,cACZC,EAAYL,UAAY,CACtBX,SAAUY,EAAAA,OACVzB,QAAAA,OAAAA,EAAS2B,EAAQH,gBAAAA,EAARG,EAAmB3B,QAC5BI,IAAK,SAAUjC,EAAO2D,EAAUC,GAC9B,OAAK5D,EAAM2D,GAAAA,IAAAA,MAAAA,kBAKSA,qBAA4BC,2BAAAA,IAAAA,GChCvCC,MAAAA,EAAoC,SAAmB7D,GAClE,uCAEIF,EAAAA,cAAC0D,EAAAA,EAAAA,CAAAA,EAAYxD,IACbF,EAAAA,cAAAA,WAAAA,KACEA,EAAAA,cAAC0D,EAAAA,EAAAA,CAAAA,EAAYxD,EAAAA,CAAOc,YAAAA,MAAY,EAMxC+C,EAAUJ,YAAAA,YACVI,EAAUR,UAAYG,EAAQH,UAAAA,MAAAA,EC2G2B,SACvDrD,EACA2D,EACAC,GAAAA,IAAAA,IAAAA,EAAAA,UAAAA,OACGE,EAAAA,IAAAA,MAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,GAAAA,OAEE9D,EAAMiC,KAAAA,KAAOjC,EAAMiC,IAAAA,IAAAA,OAMP8B,MANO9B,IAAAA,CAMAjC,EAAO2D,EAAUC,GAAAA,OAAkBE,IAAAA,IAAAA,MAAAA,iCAJtBF,2JAAAA,EAAAA,EAOd,CACvBI,MAAOV,IAAAA,OAAiBC,WACxBtB,IAAKgC,GAAAA,EAAAA,CAAAA,KAAAA,QAAAA,QAAAA,kBAAAA,YAAAA,QAAAA,cAAAA,SAAAA,WAAAA,EAAAA,CAAAA,QAAAA,aAAAA,ECjHY,IAAIC,IACvB,IAAI,EAAJ,EAiCA,MAAM,EAA4C,gBAA6BC,GAC7EA,EAAAA,MAD6EA,MAE7EH,EAF6EG,MAG7EtD,EAH6EsD,gBAI7EhD,EAJ6EgD,UAK7EC,EACAC,MAAOC,EANsEH,YAO7EI,EAP6EJ,OAQ7EK,EAR6EL,QAS7EM,GAAAA,EACGzE,EAAAA,EAAAA,EAAAA,GAEH,MAAMkB,MAAEA,EAAFA,OAASZ,EAATY,OAAiBD,GAAW+C,EAAAA,EAAAA,SNOlC9C,EACAZ,EACAW,GAIA,MAAM,EAA8B,CAAC,EAErC,IAAI,EAAJ,uBAmBA,MAdeyD,UAGXzD,GACFK,EAAaJ,MAAQA,EACrBI,EAAahB,OAASA,GAAAA,gBACbW,IAKTmD,EAAAA,yDAGK,CACLA,UAAAA,EACA,4BAA4B,GAC5BvD,MAAOS,EAAAA,CMrCyB0C,CAKd9C,EAAOZ,EAAQW,IAHjCJ,MAAO8D,EACPP,UAAWQ,GAAAA,EACRC,EAAAA,EAAAA,EAAAA,GAAAA,GAEQC,EAAAA,EAAAA,UAAAA,GACIC,EAAAA,EAAAA,UAAQ,IAAMC,KAAKC,UAAUjB,EAAMrD,SAAS,CAACqD,EAAMrD,SAGhE2D,IACFF,EAAYE,GAGd,MAAM,EAAN,SLxCArD,EACAC,EACAZ,GAEA,IAAI,EAAJ,GAWA,MAAM,cAVFW,IACFiE,EAAAA,+CACG5E,EAASY,EAAS,iCAInBD,IACFiE,EAAAA,0BAAkChE,iIAAqIZ,aAAkBY,uIAAAA,CAAAA,CK4B3L,CAAuBD,EAAQC,EAAOZ,GA+HtC,OA7HA6E,EAAAA,EAAAA,YAAU,KACHC,IACHA,EAA6BC,QAAAA,IAAAA,CAAAA,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,QAAAA,KAAAA,EAAAA,KAAAA,EAAAA,OAAyBC,MACpD,QAAGC,oBAAAA,EAAqBC,qBAAAA,GAAAA,EAAAA,OACtBC,EAAcF,EAEP,CACLA,oBAAAA,EACAC,qBAAAA,EAAAA,KAQR,MAAM,EAAWE,EAAKC,QAAQC,cAAAA,2BAG9B,GAAIC,GAAYC,IAkCd,OAjCID,EAASE,UAAAA,MAEXxB,GAAAA,EAAc,CACZyB,WAAAA,IAAW,MAEbxB,GAAAA,EAAS,CACPwB,WAAAA,IAIFC,YAAW,KACTJ,EAASK,gBAAAA,wBAAAA,GACR,WAEH3B,GAAAA,EAAc,CACZyB,WAAAA,IAGFH,EAASM,iBAAAA,QAAyB,SAAS,IACzCN,EAASO,oBAAAA,OAA4BC,GAAAA,MAErC7B,GAAAA,EAAS,CACPwB,WAAAA,IAGFC,YAAW,KACTJ,EAASK,gBAAAA,wBAAAA,GACR,YAIPI,EAAWC,IAAIC,GAKjB,GAAIf,GAAea,EAAWG,IAAID,GAChC,OAGF,IAAI,EAAJ,EAkCA,OAhCApB,EAA2BE,MACzB,IAAwBE,IAArBD,oBAAAA,EAAqBC,qBAAAA,GAAAA,EACjBE,EAAKC,UAIVD,EAAKC,QAAQe,UAAYnB,EAAAA,EAAAA,CACvB9E,WAAAA,EACAC,SAAU4F,EAAWG,IAAID,GACzBxC,MAAAA,GACGhE,IAGAsG,EAAWG,IAAID,KAClBG,EAAiBC,uBAAsB,KACjClB,EAAKC,UACPkB,EAAkBrB,EAChBE,EAAKC,QACLa,EACAF,EACAzF,EACA0D,EACAC,EACAC,GAAAA,KAAAA,IASL,KACDkC,GACFG,qBAAqBH,GAEnBE,GACFA,GAAAA,CAAAA,GAGH,CAAC7C,KAGJ+C,EAAAA,EAAAA,kBAAgB,KACVT,EAAWG,IAAID,IAAaf,IAC9BC,EAAKC,QAAQe,UAAYjB,EAAAA,EAAAA,CACvBhF,UAAW6F,EAAWG,IAAID,GAC1B9F,SAAU4F,EAAWG,IAAID,GACzBxC,MAAAA,GACGhE,IAAAA,MAILuE,GAAAA,EAAc,CACZyB,WAAAA,IAAW,MAEbxB,GAAAA,EAAS,CACPwB,WAAAA,IAAW,GAGd,CAAChC,KAAAA,EAAAA,EAAAA,eAGiBG,EAAAA,EAAAA,CAAAA,EAChBU,EAAAA,CACHhE,MAAAA,EAAAA,CAAAA,EACK8D,EACA9D,EAAAA,CACHM,gBAAAA,IAEFiD,UAAAA,GAAcQ,IAASR,EAAAA,IAAgBA,IAAAA,KACvC4C,IAAKtB,EACLuB,wBAAyB,CACvBC,OAAQhC,GAEViC,0BAAAA,IAA0B,KAIkCC,EAAAA,EAAAA,OAC9D,SAAqBpH,GACnB,OAAKA,EAAMgE,OASDqD,EAAAA,EAAAA,eAKWC,EAAqBtH,GAZ9BqH,IAAAA,IAgBhBE,EAAYlE,UAAYA,EACxBkE,EAAY9D,YAAAA,cAAAA,MAAAA,EAAAA,CAAAA,MAAAA,cAAAA,UAAAA,QAAAA,SAAAA,cAAAA,mBAAAA,cAAAA,UAAAA,UAAAA,mBAAAA,aAAAA,aAAAA,cAAAA,cAAAA,iBAAAA,cAAAA,wBAAAA,ECxL6C,SACvDzD,EACA2D,GAAAA,IAAAA,IAAAA,EAAAA,UAAAA,OACGG,EAAAA,IAAAA,MAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,GAAAA,MAAAA,cAGD9D,EAAMiB,QAAAA,UACL0C,GAAAA,WAAwBA,IACzB3D,EAAM2D,GAAAA,IAAAA,OAMS6D,MANT7D,IAAAA,CAMgB3D,EAAO2D,GAAAA,OAAaG,IAAAA,IAAAA,MAAAA,IAHpCH,MAAa3D,EAAM2D,iDAAAA,EAAAA,EAMR,IAAIO,IAAI,CAAC,QAAD,8BAEJ,CACvB/B,IAAKmB,IAAAA,OAAiBC,WACtBtB,IAAKgC,EACL/C,MAAOuG,EACPnH,OAAQmH,EACR5E,MAAOS,IAAAA,OACPrC,OAASjB,IACP,YAAIA,EAAMiB,SAGNyG,EAAajB,IAAIzG,EAAMiB,QAI3B,OAAO,IAAI0G,MAAM,iBACE3H,EAAMiB,2HAAAA,GAAAA,GAhF3BsG,ECLgBK,EDOT,SAAP,OAA4BzF,IAC1BA,EACA0F,YAAaC,EAFa3F,QAG1B4F,GAAAA,EAmBG/H,EAAAA,EAAAA,EAAAA,GAMH,OAJI+H,GACFC,QAAQX,KAAKU,GAGXD,EAAAA,EAAAA,cACMP,EAAAA,EAAAA,CAAYvD,MAAO8D,GAAe9H,KAE5CgI,QAAQX,KAAAA,mBAAyBlF,GAEvBkF,KAAAA,GA6CepG,IAhF3BsG,ECHFU,EAAYxE,YAAAA,cACZwE,EAAY5E,UAAYA,C,oCCpBxB,IAAe,IAA0B,sD,mBCCzClD,EAAOC,QAAU,I,oCCDjB,IAAe,IAA0B,0D,oCCEzC,IAAI8H,EAAQ,EAAQ,MAIhBC,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5BhI,EAAOC,QAAU,SAAsBgI,GACrC,IACIjF,EACAkF,EACAC,EAHAC,EAAS,CAAC,EAKd,OAAKH,GAELF,EAAMM,QAAQJ,EAAQK,MAAM,OAAO,SAAgBC,GAKjD,GAJAJ,EAAII,EAAKC,QAAQ,KACjBxF,EAAM+E,EAAMU,KAAKF,EAAKG,OAAO,EAAGP,IAAIQ,cACpCT,EAAMH,EAAMU,KAAKF,EAAKG,OAAOP,EAAI,IAE7BnF,EAAK,CACP,GAAIoF,EAAOpF,IAAQgF,EAAkBQ,QAAQxF,IAAQ,EACnD,OAGAoF,EAAOpF,GADG,eAARA,GACaoF,EAAOpF,GAAOoF,EAAOpF,GAAO,IAAI4F,OAAO,CAACV,IAEzCE,EAAOpF,GAAOoF,EAAOpF,GAAO,KAAOkF,EAAMA,CAE3D,CACF,IAEOE,GAnBgBA,CAoBzB,C,uBCpDApI,EAAOC,QAAU,EAAjB,K,gCCEA,MA6BM4I,EAAY,CAACC,EAAOC,KACzB,GAAuB,iBAAVD,IAAsBE,MAAMC,QAAQH,GAChD,MAAM,IAAII,UAAU,gDAGrBH,EAAUI,OAAOC,OAAO,CACvBC,YAAY,GACVN,GAYH,GAPCD,EADGE,MAAMC,QAAQH,GACTA,EAAMjG,KAAIyG,GAAKA,EAAEb,SACvBc,QAAOD,GAAKA,EAAE1G,SACd4G,KAAK,KAECV,EAAML,OAGM,IAAjBK,EAAMlG,OACT,MAAO,GAGR,GAAqB,IAAjBkG,EAAMlG,OACT,OAAOmG,EAAQM,WAAaP,EAAMW,cAAgBX,EAAMH,cAezD,OAZqBG,IAAUA,EAAMH,gBAGpCG,EA3DwBlF,KACzB,IAAI8F,GAAkB,EAClBC,GAAkB,EAClBC,GAAsB,EAE1B,IAAK,IAAIzB,EAAI,EAAGA,EAAIvE,EAAOhB,OAAQuF,IAAK,CACvC,MAAM0B,EAAYjG,EAAOuE,GAErBuB,GAAmB,WAAWI,KAAKD,IAAcA,EAAUJ,gBAAkBI,GAChFjG,EAASA,EAAOmG,MAAM,EAAG5B,GAAK,IAAMvE,EAAOmG,MAAM5B,GACjDuB,GAAkB,EAClBE,EAAsBD,EACtBA,GAAkB,EAClBxB,KACUwB,GAAmBC,GAAuB,WAAWE,KAAKD,IAAcA,EAAUlB,gBAAkBkB,GAC9GjG,EAASA,EAAOmG,MAAM,EAAG5B,EAAI,GAAK,IAAMvE,EAAOmG,MAAM5B,EAAI,GACzDyB,EAAsBD,EACtBA,GAAkB,EAClBD,GAAkB,IAElBA,EAAkBG,EAAUlB,gBAAkBkB,GAAaA,EAAUJ,gBAAkBI,EACvFD,EAAsBD,EACtBA,EAAkBE,EAAUJ,gBAAkBI,GAAaA,EAAUlB,gBAAkBkB,EAEzF,CAEA,OAAOjG,CAAM,EAiCJoG,CAAkBlB,IAG3BA,EAAQA,EACNmB,QAAQ,YAAa,IACrBtB,cACAsB,QAAQ,mBAAmB,CAACC,EAAGC,IAAOA,EAAGV,gBACzCQ,QAAQ,cAAcG,GAAKA,EAAEX,gBA5BXH,EA8BDR,EA9BMC,EAAQM,WAAaC,EAAEe,OAAO,GAAGZ,cAAgBH,EAAES,MAAM,GAAKT,EAAnEA,KA8BK,EAG1BtJ,EAAOC,QAAU4I,EAEjB7I,EAAOC,QAAP,QAAyB4I,C,oCCzEzB,IAAId,EAAQ,EAAQ,MAChBuC,EAAW,EAAQ,MAUvBtK,EAAOC,QAAU,SAAuBsK,EAAMtC,EAASuC,GACrD,IAAIC,EAAUC,MAAQJ,EAMtB,OAJAvC,EAAMM,QAAQmC,GAAK,SAAmBG,GACpCJ,EAAOI,EAAGC,KAAKH,EAASF,EAAMtC,EAChC,IAEOsC,CACT,C,oCCnBA,IAAIM,EAAgB,EAAQ,MAQ5B,SAASC,EAAYC,GACnB,GAAwB,mBAAbA,EACT,MAAM,IAAI7B,UAAU,gCAGtB,IAAI8B,EAEJN,KAAKO,QAAU,IAAIC,SAAQ,SAAyBC,GAClDH,EAAiBG,CACnB,IAEA,IAAIC,EAAQV,KAGZA,KAAKO,QAAQ9F,MAAK,SAASkG,GACzB,GAAKD,EAAME,WAAX,CAEA,IAAInD,EACAoD,EAAIH,EAAME,WAAW1I,OAEzB,IAAKuF,EAAI,EAAGA,EAAIoD,EAAGpD,IACjBiD,EAAME,WAAWnD,GAAGkD,GAEtBD,EAAME,WAAa,IARU,CAS/B,IAGAZ,KAAKO,QAAQ9F,KAAO,SAASqG,GAC3B,IAAIC,EAEAR,EAAU,IAAIC,SAAQ,SAASC,GACjCC,EAAMM,UAAUP,GAChBM,EAAWN,CACb,IAAGhG,KAAKqG,GAMR,OAJAP,EAAQI,OAAS,WACfD,EAAMO,YAAYF,EACpB,EAEOR,CACT,EAEAF,GAAS,SAAgBa,GACnBR,EAAMS,SAKVT,EAAMS,OAAS,IAAIhB,EAAce,GACjCZ,EAAeI,EAAMS,QACvB,GACF,CAKAf,EAAY1K,UAAU0L,iBAAmB,WACvC,GAAIpB,KAAKmB,OACP,MAAMnB,KAAKmB,MAEf,EAMAf,EAAY1K,UAAUsL,UAAY,SAAmBK,GAC/CrB,KAAKmB,OACPE,EAASrB,KAAKmB,QAIZnB,KAAKY,WACPZ,KAAKY,WAAWU,KAAKD,GAErBrB,KAAKY,WAAa,CAACS,EAEvB,EAMAjB,EAAY1K,UAAUuL,YAAc,SAAqBI,GACvD,GAAKrB,KAAKY,WAAV,CAGA,IAAIW,EAAQvB,KAAKY,WAAW9C,QAAQuD,IACrB,IAAXE,GACFvB,KAAKY,WAAWY,OAAOD,EAAO,EAHhC,CAKF,EAMAnB,EAAYqB,OAAS,WACnB,IAAId,EAIJ,MAAO,CACLD,MAJU,IAAIN,GAAY,SAAkBsB,GAC5Cf,EAASe,CACX,IAGEf,OAAQA,EAEZ,EAEArL,EAAOC,QAAU6K,C,oCCpHjB,IAAI/C,EAAQ,EAAQ,MAEpB,SAASsE,IACP3B,KAAK4B,SAAW,EAClB,CAUAD,EAAmBjM,UAAUmM,IAAM,SAAaC,EAAWC,EAAU1D,GAOnE,OANA2B,KAAK4B,SAASN,KAAK,CACjBQ,UAAWA,EACXC,SAAUA,EACVC,cAAa3D,GAAUA,EAAQ2D,YAC/BC,QAAS5D,EAAUA,EAAQ4D,QAAU,OAEhCjC,KAAK4B,SAAS1J,OAAS,CAChC,EAOAyJ,EAAmBjM,UAAUwM,MAAQ,SAAeC,GAC9CnC,KAAK4B,SAASO,KAChBnC,KAAK4B,SAASO,GAAM,KAExB,EAUAR,EAAmBjM,UAAUiI,QAAU,SAAiBsC,GACtD5C,EAAMM,QAAQqC,KAAK4B,UAAU,SAAwBQ,GACzC,OAANA,GACFnC,EAAGmC,EAEP,GACF,EAEA9M,EAAOC,QAAUoM,C,gCCnDjBrM,EAAOC,QAAU,SAAkB8M,GACjC,SAAUA,IAASA,EAAMC,WAC3B,C,oCCFA,IAAIjF,EAAQ,EAAQ,MAEpB/H,EAAOC,QACL8H,EAAMkF,uBAIK,CACLC,MAAO,SAAeC,EAAMJ,EAAOK,EAASC,EAAMC,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAOxB,KAAKmB,EAAO,IAAMM,mBAAmBV,IAExChF,EAAM2F,SAASN,IACjBI,EAAOxB,KAAK,WAAa,IAAI2B,KAAKP,GAASQ,eAGzC7F,EAAM8F,SAASR,IACjBG,EAAOxB,KAAK,QAAUqB,GAGpBtF,EAAM8F,SAASP,IACjBE,EAAOxB,KAAK,UAAYsB,IAGX,IAAXC,GACFC,EAAOxB,KAAK,UAGd8B,SAASN,OAASA,EAAOhE,KAAK,KAChC,EAEAuE,KAAM,SAAcZ,GAClB,IAAIa,EAAQF,SAASN,OAAOQ,MAAM,IAAIC,OAAO,aAAed,EAAO,cACnE,OAAQa,EAAQE,mBAAmBF,EAAM,IAAM,IACjD,EAEAG,OAAQ,SAAgBhB,GACtBzC,KAAKwC,MAAMC,EAAM,GAAIQ,KAAKS,MAAQ,MACpC,GAMK,CACLlB,MAAO,WAAkB,EACzBa,KAAM,WAAkB,OAAO,IAAM,EACrCI,OAAQ,WAAmB,E,oCC/CnC,IAAIpG,EAAQ,EAAQ,MAEpB/H,EAAOC,QACL8H,EAAMkF,uBAIJ,WACE,IAEIoB,EAFAC,EAAO,kBAAkBxE,KAAKyE,UAAUC,WACxCC,EAAiBX,SAAShO,cAAc,KAS5C,SAAS4O,EAAWC,GAClB,IAAIC,EAAOD,EAWX,OATIL,IAEFG,EAAeI,aAAa,OAAQD,GACpCA,EAAOH,EAAeG,MAGxBH,EAAeI,aAAa,OAAQD,GAG7B,CACLA,KAAMH,EAAeG,KACrBE,SAAUL,EAAeK,SAAWL,EAAeK,SAAS7E,QAAQ,KAAM,IAAM,GAChF8E,KAAMN,EAAeM,KACrBC,OAAQP,EAAeO,OAASP,EAAeO,OAAO/E,QAAQ,MAAO,IAAM,GAC3EgF,KAAMR,EAAeQ,KAAOR,EAAeQ,KAAKhF,QAAQ,KAAM,IAAM,GACpEiF,SAAUT,EAAeS,SACzBC,KAAMV,EAAeU,KACrBC,SAAiD,MAAtCX,EAAeW,SAAS/E,OAAO,GACxCoE,EAAeW,SACf,IAAMX,EAAeW,SAE3B,CAUA,OARAf,EAAYK,EAAWW,OAAOC,SAASV,MAQhC,SAAyBW,GAC9B,IAAInH,EAAUL,EAAM8F,SAAS0B,GAAeb,EAAWa,GAAcA,EACrE,OAAQnH,EAAO0G,WAAaT,EAAUS,UAClC1G,EAAO2G,OAASV,EAAUU,IAChC,CACD,CAlDD,GAsDS,WACL,OAAO,CACT,C,oCC/DN,IAAIhH,EAAQ,EAAQ,MAChByH,EAAgB,EAAQ,MACxBC,EAAW,EAAQ,MACnBnF,EAAW,EAAQ,MACnBO,EAAgB,EAAQ,MAK5B,SAAS6E,EAA6BC,GAKpC,GAJIA,EAAOC,aACTD,EAAOC,YAAY9D,mBAGjB6D,EAAOE,QAAUF,EAAOE,OAAOC,QACjC,MAAM,IAAIjF,CAEd,CAQA7K,EAAOC,QAAU,SAAyB0P,GA8BxC,OA7BAD,EAA6BC,GAG7BA,EAAO1H,QAAU0H,EAAO1H,SAAW,CAAC,EAGpC0H,EAAOpF,KAAOiF,EAAc5E,KAC1B+E,EACAA,EAAOpF,KACPoF,EAAO1H,QACP0H,EAAOI,kBAITJ,EAAO1H,QAAUF,EAAMiI,MACrBL,EAAO1H,QAAQgI,QAAU,CAAC,EAC1BN,EAAO1H,QAAQ0H,EAAOO,SAAW,CAAC,EAClCP,EAAO1H,SAGTF,EAAMM,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2B6H,UAClBP,EAAO1H,QAAQiI,EACxB,KAGYP,EAAOQ,SAAW7F,EAAS6F,SAE1BR,GAAQxK,MAAK,SAA6BiL,GAWvD,OAVAV,EAA6BC,GAG7BS,EAAS7F,KAAOiF,EAAc5E,KAC5B+E,EACAS,EAAS7F,KACT6F,EAASnI,QACT0H,EAAOU,mBAGFD,CACT,IAAG,SAA4BvE,GAe7B,OAdK4D,EAAS5D,KACZ6D,EAA6BC,GAGzB9D,GAAUA,EAAOuE,WACnBvE,EAAOuE,SAAS7F,KAAOiF,EAAc5E,KACnC+E,EACA9D,EAAOuE,SAAS7F,KAChBsB,EAAOuE,SAASnI,QAChB0H,EAAOU,qBAKNnF,QAAQoF,OAAOzE,EACxB,GACF,C,gCC7EA7L,EAAOC,QAAU,SAAqBsQ,EAASC,GAC7C,OAAOA,EACHD,EAAQtG,QAAQ,OAAQ,IAAM,IAAMuG,EAAYvG,QAAQ,OAAQ,IAChEsG,CACN,C,oCCXA,IAAIE,EAAU,gBACVC,EAAa,EAAQ,MAErBC,EAAa,CAAC,EAGlB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUtI,SAAQ,SAAStF,EAAMoF,GACrFwI,EAAW5N,GAAQ,SAAmB6N,GACpC,cAAcA,IAAU7N,GAAQ,KAAOoF,EAAI,EAAI,KAAO,KAAOpF,CAC/D,CACF,IAEA,IAAI8N,EAAqB,CAAC,EAS1BF,EAAWG,aAAe,SAAsBC,EAAWC,EAASpF,GAClE,SAASqF,EAAcC,EAAKC,GAC1B,MAAO,WAAaV,EAAU,0BAA6BS,EAAM,IAAOC,GAAQvF,EAAU,KAAOA,EAAU,GAC7G,CAGA,OAAO,SAASmB,EAAOmE,EAAKE,GAC1B,IAAkB,IAAdL,EACF,MAAM,IAAIL,EACRO,EAAcC,EAAK,qBAAuBF,EAAU,OAASA,EAAU,KACvEN,EAAWW,gBAef,OAXIL,IAAYH,EAAmBK,KACjCL,EAAmBK,IAAO,EAE1BrJ,QAAQX,KACN+J,EACEC,EACA,+BAAiCF,EAAU,8CAK1CD,GAAYA,EAAUhE,EAAOmE,EAAKE,EAC3C,CACF,EAgCApR,EAAOC,QAAU,CACfqR,cAxBF,SAAuBvI,EAASwI,EAAQC,GACtC,GAAuB,iBAAZzI,EACT,MAAM,IAAI2H,EAAW,4BAA6BA,EAAWe,sBAI/D,IAFA,IAAIC,EAAOvI,OAAOuI,KAAK3I,GACnBZ,EAAIuJ,EAAK9O,OACNuF,KAAM,GAAG,CACd,IAAI+I,EAAMQ,EAAKvJ,GACX4I,EAAYQ,EAAOL,GACvB,GAAIH,EAAJ,CACE,IAAIhE,EAAQhE,EAAQmI,GAChBS,OAAmBrP,IAAVyK,GAAuBgE,EAAUhE,EAAOmE,EAAKnI,GAC1D,IAAe,IAAX4I,EACF,MAAM,IAAIjB,EAAW,UAAYQ,EAAM,YAAcS,EAAQjB,EAAWe,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAId,EAAW,kBAAoBQ,EAAKR,EAAWkB,eAE7D,CACF,EAIEjB,WAAYA,E,gCClFd3Q,EAAOC,QAAU,CACf4R,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,E,oCCHvB,IAAIhK,EAAQ,EAAQ,MAQpB/H,EAAOC,QAAU,SAAsB+R,GACrC,OAAOjK,EAAMkK,SAASD,KAAsC,IAAzBA,EAAQE,YAC7C,C,oCCVA,IAAInK,EAAQ,EAAQ,MAChBoK,EAAW,EAAQ,MACnB9F,EAAqB,EAAQ,MAC7B+F,EAAkB,EAAQ,MAC1BC,EAAc,EAAQ,MACtBC,EAAgB,EAAQ,MACxBvB,EAAY,EAAQ,MAEpBJ,EAAaI,EAAUJ,WAM3B,SAAS4B,EAAMC,GACb9H,KAAKJ,SAAWkI,EAChB9H,KAAK+H,aAAe,CAClBC,QAAS,IAAIrG,EACb+D,SAAU,IAAI/D,EAElB,CAOAkG,EAAMnS,UAAUsS,QAAU,SAAiBC,EAAahD,GAG3B,iBAAhBgD,GACThD,EAASA,GAAU,CAAC,GACbhB,IAAMgE,EAEbhD,EAASgD,GAAe,CAAC,GAG3BhD,EAAS0C,EAAY3H,KAAKJ,SAAUqF,IAGzBO,OACTP,EAAOO,OAASP,EAAOO,OAAOvH,cACrB+B,KAAKJ,SAAS4F,OACvBP,EAAOO,OAASxF,KAAKJ,SAAS4F,OAAOvH,cAErCgH,EAAOO,OAAS,MAGlB,IAAIY,EAAenB,EAAOmB,kBAELxO,IAAjBwO,GACFC,EAAUO,cAAcR,EAAc,CACpCe,kBAAmBlB,EAAWG,aAAaH,EAAWiC,SACtDd,kBAAmBnB,EAAWG,aAAaH,EAAWiC,SACtDb,oBAAqBpB,EAAWG,aAAaH,EAAWiC,WACvD,GAIL,IAAIC,EAA0B,GAC1BC,GAAiC,EACrCpI,KAAK+H,aAAaC,QAAQrK,SAAQ,SAAoC0K,GACjC,mBAAxBA,EAAYpG,UAA0D,IAAhCoG,EAAYpG,QAAQgD,KAIrEmD,EAAiCA,GAAkCC,EAAYrG,YAE/EmG,EAAwBG,QAAQD,EAAYvG,UAAWuG,EAAYtG,UACrE,IAEA,IAKIxB,EALAgI,EAA2B,GAO/B,GANAvI,KAAK+H,aAAarC,SAAS/H,SAAQ,SAAkC0K,GACnEE,EAAyBjH,KAAK+G,EAAYvG,UAAWuG,EAAYtG,SACnE,KAIKqG,EAAgC,CACnC,IAAII,EAAQ,CAACd,OAAiB9P,GAM9B,IAJA0G,MAAM5I,UAAU4S,QAAQG,MAAMD,EAAOL,GACrCK,EAAQA,EAAMtK,OAAOqK,GAErBhI,EAAUC,QAAQC,QAAQwE,GACnBuD,EAAMtQ,QACXqI,EAAUA,EAAQ9F,KAAK+N,EAAME,QAASF,EAAME,SAG9C,OAAOnI,CACT,CAIA,IADA,IAAIoI,EAAY1D,EACTkD,EAAwBjQ,QAAQ,CACrC,IAAI0Q,EAAcT,EAAwBO,QACtCG,EAAaV,EAAwBO,QACzC,IACEC,EAAYC,EAAYD,EAC1B,CAAE,MAAOG,GACPD,EAAWC,GACX,KACF,CACF,CAEA,IACEvI,EAAUmH,EAAgBiB,EAC5B,CAAE,MAAOG,GACP,OAAOtI,QAAQoF,OAAOkD,EACxB,CAEA,KAAOP,EAAyBrQ,QAC9BqI,EAAUA,EAAQ9F,KAAK8N,EAAyBG,QAASH,EAAyBG,SAGpF,OAAOnI,CACT,EAEAsH,EAAMnS,UAAUqT,OAAS,SAAgB9D,GACvCA,EAAS0C,EAAY3H,KAAKJ,SAAUqF,GACpC,IAAI+D,EAAWpB,EAAc3C,EAAOY,QAASZ,EAAOhB,KACpD,OAAOwD,EAASuB,EAAU/D,EAAOgE,OAAQhE,EAAOiE,iBAClD,EAGA7L,EAAMM,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6B6H,GAE/EqC,EAAMnS,UAAU8P,GAAU,SAASvB,EAAKgB,GACtC,OAAOjF,KAAKgI,QAAQL,EAAY1C,GAAU,CAAC,EAAG,CAC5CO,OAAQA,EACRvB,IAAKA,EACLpE,MAAOoF,GAAU,CAAC,GAAGpF,OAEzB,CACF,IAEAxC,EAAMM,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B6H,GAGrE,SAAS2D,EAAmBC,GAC1B,OAAO,SAAoBnF,EAAKpE,EAAMoF,GACpC,OAAOjF,KAAKgI,QAAQL,EAAY1C,GAAU,CAAC,EAAG,CAC5CO,OAAQA,EACRjI,QAAS6L,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLnF,IAAKA,EACLpE,KAAMA,IAEV,CACF,CAEAgI,EAAMnS,UAAU8P,GAAU2D,IAE1BtB,EAAMnS,UAAU8P,EAAS,QAAU2D,GAAmB,EACxD,IAEA7T,EAAOC,QAAUsS,C,oCC7JjB,IAAIxK,EAAQ,EAAQ,MAUpB/H,EAAOC,QAAU,SAAqB8T,EAASC,GAE7CA,EAAUA,GAAW,CAAC,EACtB,IAAIrE,EAAS,CAAC,EAEd,SAASsE,EAAeC,EAAQ/H,GAC9B,OAAIpE,EAAMoM,cAAcD,IAAWnM,EAAMoM,cAAchI,GAC9CpE,EAAMiI,MAAMkE,EAAQ/H,GAClBpE,EAAMoM,cAAchI,GACtBpE,EAAMiI,MAAM,CAAC,EAAG7D,GACdpE,EAAMkB,QAAQkD,GAChBA,EAAOpC,QAEToC,CACT,CAGA,SAASiI,EAAoBC,GAC3B,OAAKtM,EAAMuM,YAAYN,EAAQK,IAEnBtM,EAAMuM,YAAYP,EAAQM,SAA/B,EACEJ,OAAe3R,EAAWyR,EAAQM,IAFlCJ,EAAeF,EAAQM,GAAOL,EAAQK,GAIjD,CAGA,SAASE,EAAiBF,GACxB,IAAKtM,EAAMuM,YAAYN,EAAQK,IAC7B,OAAOJ,OAAe3R,EAAW0R,EAAQK,GAE7C,CAGA,SAASG,EAAiBH,GACxB,OAAKtM,EAAMuM,YAAYN,EAAQK,IAEnBtM,EAAMuM,YAAYP,EAAQM,SAA/B,EACEJ,OAAe3R,EAAWyR,EAAQM,IAFlCJ,OAAe3R,EAAW0R,EAAQK,GAI7C,CAGA,SAASI,EAAgBJ,GACvB,OAAIA,KAAQL,EACHC,EAAeF,EAAQM,GAAOL,EAAQK,IACpCA,KAAQN,EACVE,OAAe3R,EAAWyR,EAAQM,SADpC,CAGT,CAEA,IAAIK,EAAW,CACb,IAAOH,EACP,OAAUA,EACV,KAAQA,EACR,QAAWC,EACX,iBAAoBA,EACpB,kBAAqBA,EACrB,iBAAoBA,EACpB,QAAWA,EACX,eAAkBA,EAClB,gBAAmBA,EACnB,QAAWA,EACX,aAAgBA,EAChB,eAAkBA,EAClB,eAAkBA,EAClB,iBAAoBA,EACpB,mBAAsBA,EACtB,WAAcA,EACd,iBAAoBA,EACpB,cAAiBA,EACjB,eAAkBA,EAClB,UAAaA,EACb,UAAaA,EACb,WAAcA,EACd,YAAeA,EACf,WAAcA,EACd,iBAAoBA,EACpB,eAAkBC,GASpB,OANA1M,EAAMM,QAAQc,OAAOuI,KAAKqC,GAASnL,OAAOO,OAAOuI,KAAKsC,KAAW,SAA4BK,GAC3F,IAAIrE,EAAQ0E,EAASL,IAASD,EAC1BO,EAAc3E,EAAMqE,GACvBtM,EAAMuM,YAAYK,IAAgB3E,IAAUyE,IAAqB9E,EAAO0E,GAAQM,EACnF,IAEOhF,CACT,C,uBCnGA,IAAIhQ,EAAQ,EAAQ,MAEpB,SAASiV,EAAY/U,GACjB,OAAOF,EAAMG,cAAc,MAAMD,EAAM,CAACF,EAAMG,cAAc,OAAO,CAAC,EAAI,g2CAAg2C,KAAO,UAAU,IAAM,IAAIH,EAAMG,cAAc,OAAO,CAAC,EAAI,ozBAAozB,KAAO,UAAU,IAAM,IAAIH,EAAMG,cAAc,OAAO,CAAC,EAAI,u5BAAu5B,KAAO,UAAU,IAAM,IAAIH,EAAMG,cAAc,OAAO,CAAC,EAAI,23BAA23B,KAAO,UAAU,IAAM,KAC1rI,CAEA8U,EAAW7U,aAAe,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAEnFC,EAAOC,QAAU2U,EAEjBA,EAAW1U,QAAU0U,C,oCCRrB,IAAI7M,EAAQ,EAAQ,MAChB8M,EAAS,EAAQ,MACjBC,EAAU,EAAQ,MAClB3C,EAAW,EAAQ,MACnBG,EAAgB,EAAQ,MACxByC,EAAe,EAAQ,MACvBC,EAAkB,EAAQ,MAC1BC,EAAuB,EAAQ,MAC/BvE,EAAa,EAAQ,MACrB7F,EAAgB,EAAQ,MACxBqK,EAAgB,EAAQ,MAE5BlV,EAAOC,QAAU,SAAoB0P,GACnC,OAAO,IAAIzE,SAAQ,SAA4BC,EAASmF,GACtD,IAGI6E,EAHAC,EAAczF,EAAOpF,KACrB8K,EAAiB1F,EAAO1H,QACxBqN,EAAe3F,EAAO2F,aAE1B,SAASC,IACH5F,EAAOC,aACTD,EAAOC,YAAYjE,YAAYwJ,GAG7BxF,EAAOE,QACTF,EAAOE,OAAO5J,oBAAoB,QAASkP,EAE/C,CAEIpN,EAAMyN,WAAWJ,IAAgBrN,EAAMkF,+BAClCoI,EAAe,gBAGxB,IAAI3C,EAAU,IAAI+C,eAGlB,GAAI9F,EAAO+F,KAAM,CACf,IAAIC,EAAWhG,EAAO+F,KAAKC,UAAY,GACnCC,EAAWjG,EAAO+F,KAAKE,SAAWC,SAASpI,mBAAmBkC,EAAO+F,KAAKE,WAAa,GAC3FP,EAAeS,cAAgB,SAAWC,KAAKJ,EAAW,IAAMC,EAClE,CAEA,IAAIlC,EAAWpB,EAAc3C,EAAOY,QAASZ,EAAOhB,KAOpD,SAASqH,IACP,GAAKtD,EAAL,CAIA,IAAIuD,EAAkB,0BAA2BvD,EAAUqC,EAAarC,EAAQwD,yBAA2B,KAGvG9F,EAAW,CACb7F,KAHkB+K,GAAiC,SAAjBA,GAA6C,SAAjBA,EACvC5C,EAAQtC,SAA/BsC,EAAQyD,aAGRC,OAAQ1D,EAAQ0D,OAChBC,WAAY3D,EAAQ2D,WACpBpO,QAASgO,EACTtG,OAAQA,EACR+C,QAASA,GAGXmC,GAAO,SAAkB9H,GACvB5B,EAAQ4B,GACRwI,GACF,IAAG,SAAiBe,GAClBhG,EAAOgG,GACPf,GACF,GAAGnF,GAGHsC,EAAU,IAvBV,CAwBF,CAmEA,GAnGAA,EAAQ6D,KAAK5G,EAAOO,OAAOzG,cAAe0I,EAASuB,EAAU/D,EAAOgE,OAAQhE,EAAOiE,mBAAmB,GAGtGlB,EAAQ8D,QAAU7G,EAAO6G,QA+BrB,cAAe9D,EAEjBA,EAAQsD,UAAYA,EAGpBtD,EAAQ+D,mBAAqB,WACtB/D,GAAkC,IAAvBA,EAAQgE,aAQD,IAAnBhE,EAAQ0D,QAAkB1D,EAAQiE,aAAwD,IAAzCjE,EAAQiE,YAAYnO,QAAQ,WAKjF1C,WAAWkQ,EACb,EAIFtD,EAAQkE,QAAU,WACXlE,IAILpC,EAAO,IAAII,EAAW,kBAAmBA,EAAWmG,aAAclH,EAAQ+C,IAG1EA,EAAU,KACZ,EAGAA,EAAQoE,QAAU,WAGhBxG,EAAO,IAAII,EAAW,gBAAiBA,EAAWqG,YAAapH,EAAQ+C,EAASA,IAGhFA,EAAU,IACZ,EAGAA,EAAQsE,UAAY,WAClB,IAAIC,EAAsBtH,EAAO6G,QAAU,cAAgB7G,EAAO6G,QAAU,cAAgB,mBACxF1F,EAAenB,EAAOmB,cAAgBmE,EACtCtF,EAAOsH,sBACTA,EAAsBtH,EAAOsH,qBAE/B3G,EAAO,IAAII,EACTuG,EACAnG,EAAaiB,oBAAsBrB,EAAWwG,UAAYxG,EAAWmG,aACrElH,EACA+C,IAGFA,EAAU,IACZ,EAKI3K,EAAMkF,uBAAwB,CAEhC,IAAIkK,GAAaxH,EAAOyH,iBAAmBpC,EAAgBtB,KAAc/D,EAAO0H,eAC9EvC,EAAQ/G,KAAK4B,EAAO0H,qBACpB/U,EAEE6U,IACF9B,EAAe1F,EAAO2H,gBAAkBH,EAE5C,CAGI,qBAAsBzE,GACxB3K,EAAMM,QAAQgN,GAAgB,SAA0BnN,EAAKlF,QAChC,IAAhBoS,GAAqD,iBAAtBpS,EAAI2F,qBAErC0M,EAAerS,GAGtB0P,EAAQ6E,iBAAiBvU,EAAKkF,EAElC,IAIGH,EAAMuM,YAAY3E,EAAOyH,mBAC5B1E,EAAQ0E,kBAAoBzH,EAAOyH,iBAIjC9B,GAAiC,SAAjBA,IAClB5C,EAAQ4C,aAAe3F,EAAO2F,cAIS,mBAA9B3F,EAAO6H,oBAChB9E,EAAQ1M,iBAAiB,WAAY2J,EAAO6H,oBAIP,mBAA5B7H,EAAO8H,kBAAmC/E,EAAQgF,QAC3DhF,EAAQgF,OAAO1R,iBAAiB,WAAY2J,EAAO8H,mBAGjD9H,EAAOC,aAAeD,EAAOE,UAG/BsF,EAAa,SAAS9J,GACfqH,IAGLpC,GAAQjF,GAAWA,GAAUA,EAAOtI,KAAQ,IAAI8H,EAAkBQ,GAClEqH,EAAQiF,QACRjF,EAAU,KACZ,EAEA/C,EAAOC,aAAeD,EAAOC,YAAYlE,UAAUyJ,GAC/CxF,EAAOE,SACTF,EAAOE,OAAOC,QAAUqF,IAAexF,EAAOE,OAAO7J,iBAAiB,QAASmP,KAI9EC,IACHA,EAAc,MAGhB,IAAItG,EAAWoG,EAAcxB,GAEzB5E,IAA+D,IAAnD,CAAE,OAAQ,QAAS,QAAStG,QAAQsG,GAClDwB,EAAO,IAAII,EAAW,wBAA0B5B,EAAW,IAAK4B,EAAWkH,gBAAiBjI,IAM9F+C,EAAQmF,KAAKzC,EACf,GACF,C,gCC3NApV,EAAOC,QAAU,SAAuB0O,GACtC,IAAIX,EAAQ,4BAA4B8J,KAAKnJ,GAC7C,OAAOX,GAASA,EAAM,IAAM,EAC9B,C,oCCHA,IAAIjG,EAAQ,EAAQ,MAYpB,SAAS2I,EAAW9E,EAASmM,EAAMpI,EAAQ+C,EAAStC,GAClD5I,MAAMoD,KAAKF,MACXA,KAAKkB,QAAUA,EACflB,KAAKyC,KAAO,aACZ4K,IAASrN,KAAKqN,KAAOA,GACrBpI,IAAWjF,KAAKiF,OAASA,GACzB+C,IAAYhI,KAAKgI,QAAUA,GAC3BtC,IAAa1F,KAAK0F,SAAWA,EAC/B,CAEArI,EAAMiQ,SAAStH,EAAYlJ,MAAO,CAChCyQ,OAAQ,WACN,MAAO,CAELrM,QAASlB,KAAKkB,QACduB,KAAMzC,KAAKyC,KAEX+K,YAAaxN,KAAKwN,YAClB7Q,OAAQqD,KAAKrD,OAEb8Q,SAAUzN,KAAKyN,SACfC,WAAY1N,KAAK0N,WACjBC,aAAc3N,KAAK2N,aACnBC,MAAO5N,KAAK4N,MAEZ3I,OAAQjF,KAAKiF,OACboI,KAAMrN,KAAKqN,KACX3B,OAAQ1L,KAAK0F,UAAY1F,KAAK0F,SAASgG,OAAS1L,KAAK0F,SAASgG,OAAS,KAE3E,IAGF,IAAIhW,EAAYsQ,EAAWtQ,UACvBmY,EAAc,CAAC,EAEnB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,gBAEAlQ,SAAQ,SAAS0P,GACjBQ,EAAYR,GAAQ,CAAChL,MAAOgL,EAC9B,IAEA5O,OAAOqP,iBAAiB9H,EAAY6H,GACpCpP,OAAOsP,eAAerY,EAAW,eAAgB,CAAC2M,OAAO,IAGzD2D,EAAWgI,KAAO,SAASlF,EAAOuE,EAAMpI,EAAQ+C,EAAStC,EAAUuI,GACjE,IAAIC,EAAazP,OAAO0P,OAAOzY,GAY/B,OAVA2H,EAAM+Q,aAAatF,EAAOoF,GAAY,SAAgBG,GACpD,OAAOA,IAAQvR,MAAMpH,SACvB,IAEAsQ,EAAW9F,KAAKgO,EAAYpF,EAAM5H,QAASmM,EAAMpI,EAAQ+C,EAAStC,GAElEwI,EAAWzL,KAAOqG,EAAMrG,KAExBwL,GAAexP,OAAOC,OAAOwP,EAAYD,GAElCC,CACT,EAEA5Y,EAAOC,QAAUyQ,C,oCCnFjB,IAAI3I,EAAQ,EAAQ,MAqEpB/H,EAAOC,QA5DP,SAAoB8Y,EAAKC,GAEvBA,EAAWA,GAAY,IAAIC,SAE3B,IAAIX,EAAQ,GAEZ,SAASY,EAAanM,GACpB,OAAc,OAAVA,EAAuB,GAEvBhF,EAAMoR,OAAOpM,GACRA,EAAMqM,cAGXrR,EAAMsR,cAActM,IAAUhF,EAAMuR,aAAavM,GAC5B,mBAATwM,KAAsB,IAAIA,KAAK,CAACxM,IAAUyM,OAAOd,KAAK3L,GAG/DA,CACT,CAuCA,OArCA,SAAS0M,EAAMlP,EAAMmP,GACnB,GAAI3R,EAAMoM,cAAc5J,IAASxC,EAAMkB,QAAQsB,GAAO,CACpD,IAA6B,IAAzB+N,EAAM9P,QAAQ+B,GAChB,MAAM/C,MAAM,kCAAoCkS,GAGlDpB,EAAMtM,KAAKzB,GAEXxC,EAAMM,QAAQkC,GAAM,SAAcwC,EAAO/J,GACvC,IAAI+E,EAAMuM,YAAYvH,GAAtB,CACA,IACI4M,EADAC,EAAUF,EAAYA,EAAY,IAAM1W,EAAMA,EAGlD,GAAI+J,IAAU2M,GAA8B,iBAAV3M,EAChC,GAAIhF,EAAM8R,SAAS7W,EAAK,MAEtB+J,EAAQlI,KAAKC,UAAUiI,QAClB,GAAIhF,EAAM8R,SAAS7W,EAAK,QAAU2W,EAAM5R,EAAM+R,QAAQ/M,IAK3D,YAHA4M,EAAItR,SAAQ,SAAS0R,IAClBhS,EAAMuM,YAAYyF,IAAOf,EAASgB,OAAOJ,EAASV,EAAaa,GAClE,IAKJN,EAAM1M,EAAO6M,EAjBuB,CAkBtC,IAEAtB,EAAM2B,KACR,MACEjB,EAASgB,OAAON,EAAWR,EAAa3O,GAE5C,CAEAkP,CAAMV,GAECC,CACT,C,oCCrEA,IAAe,IAA0B,sD,oCCAzC,IAAe,IAA0B,yD,oCCEzC,IAAIjR,EAAQ,EAAQ,MAEpB/H,EAAOC,QAAU,SAA6BgI,EAASiS,GACrDnS,EAAMM,QAAQJ,GAAS,SAAuB8E,EAAOI,GAC/CA,IAAS+M,GAAkB/M,EAAK1D,gBAAkByQ,EAAezQ,gBACnExB,EAAQiS,GAAkBnN,SACnB9E,EAAQkF,GAEnB,GACF,C,4FCRagN,EAAe,SAAHC,GAA4C,IAAtCnW,EAASmW,EAATnW,UAAWoW,EAAID,EAAJC,KAAMC,EAAIF,EAAJE,KAAMC,EAAOH,EAAPG,QACpD,OACE5a,EAAAA,cAAAA,EAAAA,SAAA,KACG2a,GACC3a,EAAAA,cAAA,KAAGiP,KAAM0L,EAAMrW,UAAS,GAAA2E,OAAK3E,EAAS,+BACnCoW,GAGJE,GACC5a,EAAAA,cAAC6a,EAAAA,KAAI,CAACC,GAAIF,EAAStW,UAAS,GAAA2E,OAAK3E,EAAS,+BACvCoW,GAKX,C,oCClBA,IAAe,IAA0B,qD,qECElC,IAAMK,EAAW,mCAEXC,EAAmB,CAC9BC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,YAGC,SAASC,EAAWC,GAAwB,IAAXvM,EAAGwM,UAAAvY,OAAA,QAAAN,IAAA6Y,UAAA,GAAAA,UAAA,GAAG,GACtCC,EAAST,EAAiBO,GAEhC,MAAM,GAANtS,OAAU8R,GAAQ9R,OAAGwS,GAAMxS,OAGtB,SAA2B+F,GAChC,IAAKA,EACH,MAAO,GAGT,IAAMgF,ECvBD,SAAsBhF,GAC3B,IAAM0M,EAAY,IAAIC,IAAI3M,GACpB4M,EAAe,IAAIC,gBAAgBH,EAAUrM,QAEnD,OAAO7F,OAAOsS,YAAYF,EAC5B,CDkBiBG,CAAa/M,GAGtBgN,EAFY,CAAC,aAAc,aAAc,eAAgB,YAG5DpS,QAAO,SAAAqS,GAAK,OAAIjI,EAAOiI,EAAM,IAC7B/Y,KAAI,SAAA+Y,GAAK,SAAAhT,OAAOgT,EAAK,KAAAhT,OAAI+K,EAAOiI,GAAM,IACtCpS,KAAK,KAER,OAAOmS,EAAW,IAAA/S,OAAO+S,GAAgB,EAC3C,CAjBgCE,CAAkBlN,GAClD,C,oCEdA,IAAI5G,EAAQ,EAAQ,MAChB+T,EAAsB,EAAQ,MAC9BpL,EAAa,EAAQ,MACrBuE,EAAuB,EAAQ,MAC/B8G,EAAa,EAAQ,MAErBC,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBhU,EAAS8E,IACjChF,EAAMuM,YAAYrM,IAAYF,EAAMuM,YAAYrM,EAAQ,mBAC3DA,EAAQ,gBAAkB8E,EAE9B,CA6BA,IA1BMoD,EA0BF7F,EAAW,CAEbwG,aAAcmE,EAEd9E,UA7B8B,oBAAnBsF,gBAGmB,oBAAZyG,SAAuE,qBAA5C/S,OAAO/I,UAAU+b,SAASvR,KAAKsR,YAD1E/L,EAAU,EAAQ,OAKbA,GAwBPJ,iBAAkB,CAAC,SAA0BxF,EAAMtC,GAIjD,GAHA6T,EAAoB7T,EAAS,UAC7B6T,EAAoB7T,EAAS,gBAEzBF,EAAMyN,WAAWjL,IACnBxC,EAAMsR,cAAc9O,IACpBxC,EAAMqU,SAAS7R,IACfxC,EAAMsU,SAAS9R,IACfxC,EAAMuU,OAAO/R,IACbxC,EAAMwU,OAAOhS,GAEb,OAAOA,EAET,GAAIxC,EAAMyU,kBAAkBjS,GAC1B,OAAOA,EAAKkS,OAEd,GAAI1U,EAAM2U,kBAAkBnS,GAE1B,OADA0R,EAAsBhU,EAAS,mDACxBsC,EAAK4R,WAGd,IAGIQ,EAHAC,EAAkB7U,EAAMkK,SAAS1H,GACjCsS,EAAc5U,GAAWA,EAAQ,gBAIrC,IAAK0U,EAAa5U,EAAM4U,WAAWpS,KAAWqS,GAAmC,wBAAhBC,EAAwC,CACvG,IAAIC,EAAYpS,KAAKqS,KAAOrS,KAAKqS,IAAI9D,SACrC,OAAO8C,EAAWY,EAAa,CAAC,UAAWpS,GAAQA,EAAMuS,GAAa,IAAIA,EAC5E,CAAO,OAAIF,GAAmC,qBAAhBC,GAC5BZ,EAAsBhU,EAAS,oBAnDrC,SAAyB+U,EAAUC,EAAQC,GACzC,GAAInV,EAAM8F,SAASmP,GACjB,IAEE,OADCC,GAAUpY,KAAKsY,OAAOH,GAChBjV,EAAMU,KAAKuU,EACpB,CAAE,MAAOI,GACP,GAAe,gBAAXA,EAAEjQ,KACJ,MAAMiQ,CAEV,CAGF,OAAQF,GAAWrY,KAAKC,WAAWkY,EACrC,CAuCaK,CAAgB9S,IAGlBA,CACT,GAEA8F,kBAAmB,CAAC,SAA2B9F,GAC7C,IAAIuG,EAAepG,KAAKoG,cAAgBxG,EAASwG,aAC7Ce,EAAoBf,GAAgBA,EAAae,kBACjDC,EAAoBhB,GAAgBA,EAAagB,kBACjDwL,GAAqBzL,GAA2C,SAAtBnH,KAAK4K,aAEnD,GAAIgI,GAAsBxL,GAAqB/J,EAAM8F,SAAStD,IAASA,EAAK3H,OAC1E,IACE,OAAOiC,KAAKsY,MAAM5S,EACpB,CAAE,MAAO6S,GACP,GAAIE,EAAmB,CACrB,GAAe,gBAAXF,EAAEjQ,KACJ,MAAMuD,EAAWgI,KAAK0E,EAAG1M,EAAW6M,iBAAkB7S,KAAM,KAAMA,KAAK0F,UAEzE,MAAMgN,CACR,CACF,CAGF,OAAO7S,CACT,GAMAiM,QAAS,EAETa,eAAgB,aAChBC,eAAgB,eAEhBkG,kBAAmB,EACnBC,eAAgB,EAEhBV,IAAK,CACH9D,SAAU,EAAQ,OAGpByE,eAAgB,SAAwBtH,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAnO,QAAS,CACPgI,OAAQ,CACN,OAAU,uCAKhBlI,EAAMM,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6B6H,GACpE5F,EAASrC,QAAQiI,GAAU,CAAC,CAC9B,IAEAnI,EAAMM,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B6H,GACrE5F,EAASrC,QAAQiI,GAAUnI,EAAMiI,MAAMgM,EACzC,IAEAhc,EAAOC,QAAUqK,C,oCC/IjB,IAAIoG,EAAa,EAAQ,MASzB1Q,EAAOC,QAAU,SAAgBkL,EAASmF,EAAQF,GAChD,IAAIsN,EAAiBtN,EAAST,OAAO+N,eAChCtN,EAASgG,QAAWsH,IAAkBA,EAAetN,EAASgG,QAGjE9F,EAAO,IAAII,EACT,mCAAqCN,EAASgG,OAC9C,CAAC1F,EAAWkH,gBAAiBlH,EAAW6M,kBAAkBI,KAAKC,MAAMxN,EAASgG,OAAS,KAAO,GAC9FhG,EAAST,OACTS,EAASsC,QACTtC,IAPFjF,EAAQiF,EAUZ,C,gCCFApQ,EAAOC,QAAU,SAAgB4d,GAC/B,OAAO,SAAclE,GACnB,OAAOkE,EAAS1K,MAAM,KAAMwG,EAC9B,CACF,C,oCCxBA,IAAI5R,EAAQ,EAAQ,MAChB+V,EAAO,EAAQ,MACfvL,EAAQ,EAAQ,MAChBF,EAAc,EAAQ,MA4B1B,IAAI0L,EAnBJ,SAASC,EAAeC,GACtB,IAAIxT,EAAU,IAAI8H,EAAM0L,GACpBC,EAAWJ,EAAKvL,EAAMnS,UAAUsS,QAASjI,GAa7C,OAVA1C,EAAMoW,OAAOD,EAAU3L,EAAMnS,UAAWqK,GAGxC1C,EAAMoW,OAAOD,EAAUzT,GAGvByT,EAASrF,OAAS,SAAgBrG,GAChC,OAAOwL,EAAe3L,EAAY4L,EAAezL,GACnD,EAEO0L,CACT,CAGYF,CA3BG,EAAQ,OA8BvBD,EAAMxL,MAAQA,EAGdwL,EAAMlT,cAAgB,EAAQ,MAC9BkT,EAAMjT,YAAc,EAAQ,MAC5BiT,EAAMtO,SAAW,EAAQ,MACzBsO,EAAMtN,QAAU,gBAChBsN,EAAMhC,WAAa,EAAQ,MAG3BgC,EAAMrN,WAAa,EAAQ,MAG3BqN,EAAMK,OAASL,EAAMlT,cAGrBkT,EAAMM,IAAM,SAAaC,GACvB,OAAOpT,QAAQmT,IAAIC,EACrB,EACAP,EAAMQ,OAAS,EAAQ,MAGvBR,EAAM7L,aAAe,EAAQ,MAE7BlS,EAAOC,QAAU8d,EAGjB/d,EAAOC,QAAP,QAAyB8d,C,kHC/DzB,EAAe,IAA0B,0DCAzC,EAAe,IAA0B,4D,8BCAzC,EAAe,IAA0B,2DCAzC,EAAe,IAA0B,8DCAzC,EAAe,IAA0B,gE,UCAzC,EAAe,IAA0B,wDCAzC,EAAe,IAA0B,+D,SCAzC,EAAe,IAA0B,6DCAzC,EAAe,IAA0B,4DCAzC,EAAe,IAA0B,0DCAzC,EAAe,IAA0B,0DCAzC,EAAe,IAA0B,yDCAzC,EAAe,IAA0B,2DCAzC,EAAe,IAA0B,gECAzC,EAAe,IAA0B,8DCAzC,EAAe,IAA0B,4D,UCyB5BS,EAAa,CACxBC,WAAY,SAAAC,GAUV,MATe,CACb,QACE,iHACFC,GAAI,6FACJC,GAAI,8EACJC,GAAI,kFACJC,GAAI,wFACJC,GAAI,8FAEQL,EAChB,EACAM,aAAc,SAAAN,GASZ,MARe,CACbE,GAAI,mBACJC,GAAI,oBACJ,QAAS,oBACTF,GAAI,gBACJG,GAAI,kBACJC,GAAI,sBAEQL,EAChB,EACAO,QAAS,SAAAP,GASP,MARkB,CAChBE,GAAI,YACJC,GAAI,SACJ,QAAS,SACTF,GAAI,cACJG,GAAI,cACJC,GAAI,MAEWL,EACnB,EACAQ,QAAS,SAAAR,GAMP,MALgB,CACdE,GAAI,iBACJC,GAAI,+BAGSH,EACjB,EACAS,eAAgB,SAAAT,GAMd,MALuB,CACrBE,GAAI,sCACJC,GAAI,mCACJF,GAAI,IAEgBD,EACxB,EACAU,MAAO,SAAAV,GASL,MARc,CACZE,GAAI,kBACJC,GAAI,2BACJ,QAAS,2BACTF,GAAI,+BACJG,GAAI,8BACJC,GAAI,oBAEOL,EACf,EACAW,QAAS,SAAAX,GAMP,MALgB,CACdE,GAAI,6CACJC,GAAI,4DACJF,GAAI,iIAESD,EACjB,EACAY,mBAAoB,SAAAZ,GASlB,MARkB,CAChBE,GAAI,aACJC,GAAI,WACJ,QAAS,WACTF,GAAI,WACJG,GAAI,cACJC,GAAI,MAEWL,EACnB,EACAa,aAAc,SAAAb,GASZ,MARiB,CACfE,GAAI,6CACJC,GAAI,0DACJ,QAAS,0DACTF,GAAI,2EACJG,GAAI,6DACJC,GAAI,2DAEUL,EAClB,EACAc,cAAe,SAAAd,GASb,MARkB,CAChBE,GAAI,kDACJC,GAAI,qDACJ,QAAS,qDACTF,GAAI,GACJG,GAAI,iDACJC,GAAI,kDAEWL,EACnB,EACAe,gBAAiB,SAAAf,GASf,MARe,CACbE,GAAI,kDACJC,GAAI,kDACJ,QAAS,kDACTF,GAAI,GACJG,GAAI,kDACJC,GAAI,oDAEQL,EAChB,EACAgB,QAAS,SAAAhB,GACP,IAAMgB,EAAU,CACdd,GAAI,CACF,CACEe,OAAQ,mBACRC,IAAKC,EAAAA,EACLxF,KAAK,0KACLyF,QAAS,gBAEX,CACEH,OAAQ,mBACRC,IAAKG,EAAAA,EACL1F,KAAK,iMACLyF,QAAS,gBAEX,CACEH,OAAQ,oBACRC,IAAKI,EACL3F,KAAK,+NACLyF,QAAS,0BAEX,CACEH,OAAQ,sBACRC,IAAKK,EAAAA,EACL5F,KAAK,mOACLyF,QAAS,gBAEX,CACEH,OAAQ,mBACRC,IAAKM,EAAAA,EACL7F,KAAM,iLACNyF,QAAS,oBAEX,CACEH,OAAQ,iBACRC,IAAKO,EACL9F,KAAK,gMACLyF,QAAS,yBAEX,CACEH,OAAQ,aACRC,IAAKQ,EAAAA,EACL/F,KAAK,+RACLyF,QAAS,gBAEX,CACEH,OAAQ,cACRC,IAAKS,EACLhG,KAAK,6QACLyF,QAAS,gDAEX,CACEH,OAAQ,kBACRC,IAAKU,EAAAA,EACLjG,KAAM,iPACNyF,QAAS,mCAEX,CACEH,OAAQ,gBACRC,IAAKW,EACLlG,KAAK,gRACLyF,QAAS,oCAGbjB,GAAI,CACF,CACEc,OAAQ,iBACRC,IAAKY,EACLnG,KAAK,0RACLyF,QAAS,SAEX,CACEH,OAAQ,oBACRC,IAAKI,EACL3F,KAAK,+NACLyF,QAAS,0BAEX,CACEH,OAAQ,iBACRC,IAAKO,EACL9F,KAAK,gMACLyF,QAAS,yBAEX,CACEH,OAAQ,mBACRC,IAAKa,EACLpG,KAAM,uQACNyF,QAAS,MAEX,CACEH,OAAQ,oBACRC,IAAKc,EACLrG,KAAM,kdACNyF,QAAS,MAEX,CACEH,OAAQ,mBACRC,IAAKe,EACLtG,KAAM,2VACNyF,QAAS,OAGb,QAAS,CACP,CACEH,OAAQ,iBACRC,IAAKY,EACLnG,KAAK,0RACLyF,QAAS,SAEX,CACEH,OAAQ,oBACRC,IAAKI,EACL3F,KAAK,wSACLyF,QAAS,2BAEX,CACEH,OAAQ,iBACRC,IAAKO,EACL9F,KAAK,qNACLyF,QAAS,2BAEX,CACEH,OAAQ,mBACRC,IAAKa,EACLpG,KAAM,+RACNyF,QAAS,MAEX,CACEH,OAAQ,oBACRC,IAAKc,EACLrG,KAAM,4jBACNyF,QAAS,MAEX,CACEH,OAAQ,mBACRC,IAAKe,EACLtG,KAAM,wZACNyF,QAAS,OAGbnB,GAAI,CACF,CACEgB,OAAQ,kBACRC,IAAKgB,EACLvG,KAAK,qQACLyF,QAAS,MAEX,CACEH,OAAQ,mBACRC,IAAKC,EAAAA,EACLxF,KAAK,0KACLyF,QAAS,gBAEX,CACEH,OAAQ,mBACRC,IAAKG,EAAAA,EACL1F,KAAK,iMACLyF,QAAS,gBAEX,CACEH,OAAQ,sBACRC,IAAKK,EAAAA,EACL5F,KAAK,qOACLyF,QAAS,gBAEX,CACEH,OAAQ,mBACRC,IAAKM,EAAAA,EACL7F,KAAM,iLACNyF,QAAS,oBAEX,CACEH,OAAQ,oBACRC,IAAKI,EACL3F,KAAK,+NACLyF,QAAS,0BAEX,CACEH,OAAQ,iBACRC,IAAKO,EACL9F,KAAK,gMACLyF,QAAS,yBAEX,CACEH,OAAQ,aACRC,IAAKQ,EAAAA,EACL/F,KAAK,+RACLyF,QAAS,iBAGbhB,GAAI,CACF,CACEa,OAAQ,oBACRC,IAAKiB,EACLxG,KAAK,kZACLyF,QAAS,MAEX,CACEH,OAAQ,mBACRC,IAAKC,EAAAA,EACLxF,KAAK,0KACLyF,QAAS,gBAEX,CACEH,OAAQ,mBACRC,IAAKG,EAAAA,EACL1F,KAAK,iMACLyF,QAAS,gBAEX,CACEH,OAAQ,oBACRC,IAAKI,EACL3F,KAAK,+NACLyF,QAAS,0BAEX,CACEH,OAAQ,sBACRC,IAAKK,EAAAA,EACL5F,KAAK,qOACLyF,QAAS,gBAEX,CACEH,OAAQ,mBACRC,IAAKM,EAAAA,EACL7F,KAAM,iLACNyF,QAAS,oBAEX,CACEH,OAAQ,iBACRC,IAAKO,EACL9F,KAAK,gMACLyF,QAAS,yBAEX,CACEH,OAAQ,aACRC,IAAKQ,EAAAA,EACL/F,KAAK,+RACLyF,QAAS,gBAEX,CACEH,OAAQ,cACRC,IAAKS,EACLhG,KAAK,6QACLyF,QAAS,gDAEX,CACEH,OAAQ,kBACRC,IAAKU,EAAAA,EACLjG,KAAM,iPACNyF,QAAS,mCAEX,CACEH,OAAQ,gBACRC,IAAKW,EACLlG,KAAK,gRACLyF,QAAS,oCAGbf,GAAI,CACF,CACEY,OAAQ,mBACRC,IAAKkB,EAAAA,EACLzG,KAAK,wKACLyF,QAAS,gBAEX,CACEH,OAAQ,kBACRC,IAAKU,EAAAA,EACLjG,KAAM,iPACNyF,QAAS,mCAEX,CACEH,OAAQ,gBACRC,IAAKW,EACLlG,KAAK,gRACLyF,QAAS,qCAIf,OAAOJ,EAAQhB,EACjB,EACAqC,oBAAqB,SAAArC,GACnB,IAAMqC,EAAsB,CAC1BpC,IAAI1D,EAAAA,EAAAA,IAAW,OAEjB,OAAO8F,EAAoBrC,EAC7B,EACAsC,cAAe,SAAAtC,GAgCb,MA/BgB,CACdE,GAAI,CACFqC,cAAe,+BACfC,gBAAiB,eACjBC,cAAe,MACfC,WAAY,OACZC,eAAgB,MAElBxC,GAAI,CACFoC,cAAe,sBACfC,gBAAiB,WACjBC,cAAe,mBACfC,WAAY,UACZC,eAAgB,MAElBvC,GAAI,CACFmC,cAAe,2BACfC,gBAAiB,aACjBC,cAAe,GACfC,WAAY,OACZC,eAAgB,MAElBtC,GAAI,CACFkC,cACE,2DACFC,gBAAiB,UACjBC,cAAe,GACfC,WAAY,WACZC,eAAgB,OAGL3C,EACjB,GAGWgB,EAAU,CACrB,CACEC,OAAQ,mBACRC,IAAKM,EAAAA,EACL7F,KAAM,kOACNyF,QAAS,oBAEX,CACEH,OAAQ,mBACRC,IAAKkB,EAAAA,EACLzG,KAAK,wKACLyF,QAAS,gBAEX,CACEH,OAAQ,oBACRC,IAAKiB,EACLxG,KAAK,kZACLyF,QAAS,MAEX,CACEH,OAAQ,iBACRC,IAAKY,EACLnG,KAAK,0RACLyF,QAAS,SAEX,CACEH,OAAQ,mBACRC,IAAKC,EAAAA,EACLxF,KAAK,0KACLyF,QAAS,gBAEX,CACEH,OAAQ,mBACRC,IAAKG,EAAAA,EACL1F,KAAK,iMACLyF,QAAS,gBAEX,CACEH,OAAQ,sBACRC,IAAKK,EAAAA,EACL5F,KAAK,mOACLyF,QAAS,gBAEX,CACEH,OAAQ,mBACRC,IAAKa,EACLpG,KAAM,uQACNyF,QAAS,MAEX,CACEH,OAAQ,mBACRC,IAAKe,EACLtG,KAAM,2VACNyF,QAAS,MAEX,CACEH,OAAQ,oBACRC,IAAKI,EACL3F,KAAK,+NACLyF,QAAS,0BAEX,CACEH,OAAQ,iBACRC,IAAKO,EACL9F,KAAK,gMACLyF,QAAS,yBAEX,CACEH,OAAQ,aACRC,IAAKQ,EAAAA,EACL/F,KAAK,+RACLyF,QAAS,gBAEX,CACEH,OAAQ,kBACRC,IAAKU,EAAAA,EACLjG,KAAM,iPACNyF,QAAS,mCAEX,CACEH,OAAQ,gBACRC,IAAKW,EACLlG,KAAK,gRACLyF,QAAS,mCAEX,CACEH,OAAQ,uBACRC,IAAK0B,EACLjH,KAAK,ogBACLyF,QAAS,kBAEX,CACEH,OAAQ,cACRC,IAAKS,EACLhG,KAAK,6QACLyF,QAAS,gDAEX,CACEH,OAAQ,cACRC,IAAK2B,EACLlH,KAAK,+KACLyF,QAAS,0BAEX,CACEH,OAAQ,aACRC,IAAK4B,EACLnH,KAAK,0SACLyF,QAAS,0BAEX,CACEH,OAAQ,cACRC,IAAK6B,EACLpH,KAAK,2ZACLyF,QAAS,0BAEX,CACEH,OAAQ,eACRC,IAAK8B,EACLrH,KAAK,8SACLyF,QAAS,0BAEX,CACEH,OAAQ,sBACRC,IAAK+B,EACLtH,KAAK,6gBACLyF,QAAS,I,oCCzkBb,IAAIpP,EAAa,EAAQ,MASzB,SAAS7F,EAAce,GAErB8E,EAAW9F,KAAKF,KAAiB,MAAXkB,EAAkB,WAAaA,EAAS8E,EAAWkR,cACzElX,KAAKyC,KAAO,eACd,CAZY,EAAQ,MAcd6K,SAASnN,EAAe6F,EAAY,CACxC1D,YAAY,IAGdhN,EAAOC,QAAU4K,C,uBCrBjB,IAAIlL,EAAQ,EAAQ,MAEpB,SAASkiB,EAAwBhiB,GAC7B,OAAOF,EAAMG,cAAc,MAAMD,EAAMF,EAAMG,cAAc,OAAO,CAAC,SAAW,UAAU,SAAW,UAAU,EAAI,4VACrH,CAEA+hB,EAAuB9hB,aAAe,CAAC,MAAQ,IAAI,OAAS,KAAK,QAAU,WAAW,KAAO,WAE7FC,EAAOC,QAAU4hB,EAEjBA,EAAuB3hB,QAAU2hB,C,gCCRjC7hB,EAAOC,QAAU,SAAc0K,EAAImX,GACjC,OAAO,WAEL,IADA,IAAIC,EAAO,IAAI/Y,MAAMmS,UAAUvY,QACtBuF,EAAI,EAAGA,EAAI4Z,EAAKnf,OAAQuF,IAC/B4Z,EAAK5Z,GAAKgT,UAAUhT,GAEtB,OAAOwC,EAAGwI,MAAM2O,EAASC,EAC3B,CACF,C,oCCRA,IAAIha,EAAQ,EAAQ,MAEpB,SAASia,EAAO9Z,GACd,OAAOuF,mBAAmBvF,GACxB+B,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CASAjK,EAAOC,QAAU,SAAkB0O,EAAKgF,EAAQC,GAE9C,IAAKD,EACH,OAAOhF,EAGT,IAAIsT,EACJ,GAAIrO,EACFqO,EAAmBrO,EAAiBD,QAC/B,GAAI5L,EAAM2U,kBAAkB/I,GACjCsO,EAAmBtO,EAAOwI,eACrB,CACL,IAAI+F,EAAQ,GAEZna,EAAMM,QAAQsL,GAAQ,SAAmBzL,EAAKlF,GACxCkF,UAIAH,EAAMkB,QAAQf,GAChBlF,GAAY,KAEZkF,EAAM,CAACA,GAGTH,EAAMM,QAAQH,GAAK,SAAoBia,GACjCpa,EAAMoR,OAAOgJ,GACfA,EAAIA,EAAE/I,cACGrR,EAAMkK,SAASkQ,KACxBA,EAAItd,KAAKC,UAAUqd,IAErBD,EAAMlW,KAAKgW,EAAOhf,GAAO,IAAMgf,EAAOG,GACxC,IACF,IAEAF,EAAmBC,EAAM1Y,KAAK,IAChC,CAEA,GAAIyY,EAAkB,CACpB,IAAIG,EAAgBzT,EAAInG,QAAQ,MACT,IAAnB4Z,IACFzT,EAAMA,EAAI5E,MAAM,EAAGqY,IAGrBzT,KAA8B,IAAtBA,EAAInG,QAAQ,KAAc,IAAM,KAAOyZ,CACjD,CAEA,OAAOtT,CACT,C,gCC7DA3O,EAAOC,QAAU,SAAuB0O,GAItC,MAAO,8BAA8B7E,KAAK6E,EAC5C,C,oCCXA,IAOuB0T,EAPnBvE,EAAO,EAAQ,MAIf3B,EAAWhT,OAAO/I,UAAU+b,SAG5BmG,GAAmBD,EAMpBlZ,OAAO0P,OAAO,MAJR,SAASjI,GACd,IAAI2R,EAAMpG,EAASvR,KAAKgG,GACxB,OAAOyR,EAAME,KAASF,EAAME,GAAOA,EAAIxY,MAAM,GAAI,GAAGpB,cACtD,GAGF,SAAS6Z,EAAWzf,GAElB,OADAA,EAAOA,EAAK4F,cACL,SAAkBiI,GACvB,OAAO0R,EAAO1R,KAAW7N,CAC3B,CACF,CAQA,SAASkG,EAAQf,GACf,OAAOc,MAAMC,QAAQf,EACvB,CAQA,SAASoM,EAAYpM,GACnB,YAAsB,IAARA,CAChB,CAoBA,IAAImR,EAAgBmJ,EAAW,eA6C/B,SAASvQ,EAAS/J,GAChB,OAAe,OAARA,GAA+B,iBAARA,CAChC,CAQA,SAASiM,EAAcjM,GACrB,GAAoB,WAAhBoa,EAAOpa,GACT,OAAO,EAGT,IAAI9H,EAAY+I,OAAOsZ,eAAeva,GACtC,OAAqB,OAAd9H,GAAsBA,IAAc+I,OAAO/I,SACpD,CASA,IAAI+Y,EAASqJ,EAAW,QASpBlG,EAASkG,EAAW,QASpBjG,EAASiG,EAAW,QASpB7F,EAAa6F,EAAW,YAQ5B,SAASE,EAAWxa,GAClB,MAA8B,sBAAvBiU,EAASvR,KAAK1C,EACvB,CAiCA,IAAIwU,EAAoB8F,EAAW,mBAmDnC,SAASna,EAAQ0Q,EAAKpO,GAEpB,GAAIoO,QAUJ,GALmB,iBAARA,IAETA,EAAM,CAACA,IAGL9P,EAAQ8P,GAEV,IAAK,IAAI5Q,EAAI,EAAGoD,EAAIwN,EAAInW,OAAQuF,EAAIoD,EAAGpD,IACrCwC,EAAGC,KAAK,KAAMmO,EAAI5Q,GAAIA,EAAG4Q,QAI3B,IAAK,IAAI/V,KAAO+V,EACV5P,OAAO/I,UAAUuiB,eAAe/X,KAAKmO,EAAK/V,IAC5C2H,EAAGC,KAAK,KAAMmO,EAAI/V,GAAMA,EAAK+V,EAIrC,CAwJA,IAA6B6J,EAAzBtJ,GAAyBsJ,EAKJ,oBAAfC,YAA8B1Z,OAAOsZ,eAAeI,YAHrD,SAASjS,GACd,OAAOgS,GAAchS,aAAiBgS,CACxC,GAGF5iB,EAAOC,QAAU,CACfgJ,QAASA,EACToQ,cAAeA,EACf+C,SAvYF,SAAkBlU,GAChB,OAAe,OAARA,IAAiBoM,EAAYpM,IAA4B,OAApBA,EAAI4a,cAAyBxO,EAAYpM,EAAI4a,cAChD,mBAA7B5a,EAAI4a,YAAY1G,UAA2BlU,EAAI4a,YAAY1G,SAASlU,EAClF,EAqYEsN,WA9PF,SAAoB5E,GAClB,IAAImS,EAAU,oBACd,OAAOnS,IACgB,mBAAbqI,UAA2BrI,aAAiBqI,UACpDkD,EAASvR,KAAKgG,KAAWmS,GACxBL,EAAW9R,EAAMuL,WAAavL,EAAMuL,aAAe4G,EAExD,EAwPEvG,kBApXF,SAA2BtU,GAOzB,MAL4B,oBAAhB8a,aAAiCA,YAAkB,OACpDA,YAAYC,OAAO/a,GAEnB,GAAUA,EAAU,QAAMmR,EAAcnR,EAAIuU,OAGzD,EA6WE5O,SArWF,SAAkB3F,GAChB,MAAsB,iBAARA,CAChB,EAoWEwF,SA5VF,SAAkBxF,GAChB,MAAsB,iBAARA,CAChB,EA2VE+J,SAAUA,EACVkC,cAAeA,EACfG,YAAaA,EACb6E,OAAQA,EACRmD,OAAQA,EACRC,OAAQA,EACRmG,WAAYA,EACZrG,SAnRF,SAAkBnU,GAChB,OAAO+J,EAAS/J,IAAQwa,EAAWxa,EAAIgb,KACzC,EAkRExG,kBAAmBA,EACnBzP,qBAjOF,WACE,OAAyB,oBAAdsB,WAAoD,gBAAtBA,UAAU4U,SACY,iBAAtB5U,UAAU4U,SACY,OAAtB5U,UAAU4U,WAI/B,oBAAX9T,QACa,oBAAbvB,SAEX,EAwNEzF,QAASA,EACT2H,MA/JF,SAASA,IACP,IAAI2B,EAAS,CAAC,EACd,SAASyR,EAAYlb,EAAKlF,GACpBmR,EAAcxC,EAAO3O,KAASmR,EAAcjM,GAC9CyJ,EAAO3O,GAAOgN,EAAM2B,EAAO3O,GAAMkF,GACxBiM,EAAcjM,GACvByJ,EAAO3O,GAAOgN,EAAM,CAAC,EAAG9H,GACfe,EAAQf,GACjByJ,EAAO3O,GAAOkF,EAAI6B,QAElB4H,EAAO3O,GAAOkF,CAElB,CAEA,IAAK,IAAIC,EAAI,EAAGoD,EAAI4P,UAAUvY,OAAQuF,EAAIoD,EAAGpD,IAC3CE,EAAQ8S,UAAUhT,GAAIib,GAExB,OAAOzR,CACT,EA8IEwM,OApIF,SAAgBkF,EAAGC,EAAGxB,GAQpB,OAPAzZ,EAAQib,GAAG,SAAqBpb,EAAKlF,GAEjCqgB,EAAErgB,GADA8e,GAA0B,mBAAR5Z,EACX4V,EAAK5V,EAAK4Z,GAEV5Z,CAEb,IACOmb,CACT,EA4HE5a,KAxPF,SAAc8Z,GACZ,OAAOA,EAAI9Z,KAAO8Z,EAAI9Z,OAAS8Z,EAAItY,QAAQ,aAAc,GAC3D,EAuPEsZ,SArHF,SAAkBC,GAIhB,OAH8B,QAA1BA,EAAQC,WAAW,KACrBD,EAAUA,EAAQzZ,MAAM,IAEnByZ,CACT,EAiHExL,SAvGF,SAAkB8K,EAAaY,EAAkB7jB,EAAO0Y,GACtDuK,EAAY1iB,UAAY+I,OAAO0P,OAAO6K,EAAiBtjB,UAAWmY,GAClEuK,EAAY1iB,UAAU0iB,YAAcA,EACpCjjB,GAASsJ,OAAOC,OAAO0Z,EAAY1iB,UAAWP,EAChD,EAoGEiZ,aA1FF,SAAsB6K,EAAWC,EAASra,GACxC,IAAI1J,EACAsI,EACAkM,EACAwP,EAAS,CAAC,EAEdD,EAAUA,GAAW,CAAC,EAEtB,EAAG,CAGD,IADAzb,GADAtI,EAAQsJ,OAAO2a,oBAAoBH,IACzB/gB,OACHuF,KAAM,GAEN0b,EADLxP,EAAOxU,EAAMsI,MAEXyb,EAAQvP,GAAQsP,EAAUtP,GAC1BwP,EAAOxP,IAAQ,GAGnBsP,EAAYxa,OAAOsZ,eAAekB,EACpC,OAASA,KAAepa,GAAUA,EAAOoa,EAAWC,KAAaD,IAAcxa,OAAO/I,WAEtF,OAAOwjB,CACT,EAqEEtB,OAAQA,EACRE,WAAYA,EACZ3I,SA9DF,SAAkB0I,EAAKwB,EAAc3iB,GACnCmhB,EAAMyB,OAAOzB,SACIjgB,IAAblB,GAA0BA,EAAWmhB,EAAI3f,UAC3CxB,EAAWmhB,EAAI3f,QAEjBxB,GAAY2iB,EAAanhB,OACzB,IAAIqhB,EAAY1B,EAAI/Z,QAAQub,EAAc3iB,GAC1C,OAAsB,IAAf6iB,GAAoBA,IAAc7iB,CAC3C,EAuDE0Y,QA/CF,SAAiBlJ,GACf,IAAKA,EAAO,OAAO,KACnB,IAAIzI,EAAIyI,EAAMhO,OACd,GAAI0R,EAAYnM,GAAI,OAAO,KAE3B,IADA,IAAIwR,EAAM,IAAI3Q,MAAMb,GACbA,KAAM,GACXwR,EAAIxR,GAAKyI,EAAMzI,GAEjB,OAAOwR,CACT,EAuCEL,aAAcA,EACdqD,WAAYA,E,oCCldd,IAAIuH,EAAgB,EAAQ,MACxBC,EAAc,EAAQ,MAW1BnkB,EAAOC,QAAU,SAAuBsQ,EAAS6T,GAC/C,OAAI7T,IAAY2T,EAAcE,GACrBD,EAAY5T,EAAS6T,GAEvBA,CACT,C,mBCnBApkB,EAAOC,QAAU,CACf,QAAW,S","sources":["webpack://gatsby-starter-default/./src/images/experts/DrFred.webp","webpack://gatsby-starter-default/./src/images/experts/DrLara.webp","webpack://gatsby-starter-default/./src/assets/footer/footerLogo.svg","webpack://gatsby-starter-default/../src/image-utils.ts","webpack://gatsby-starter-default/../src/components/hooks.ts","webpack://gatsby-starter-default/../src/components/layout-wrapper.tsx","webpack://gatsby-starter-default/../src/components/picture.tsx","webpack://gatsby-starter-default/../src/components/placeholder.tsx","webpack://gatsby-starter-default/../src/components/main-image.tsx","webpack://gatsby-starter-default/../src/components/gatsby-image.server.tsx","webpack://gatsby-starter-default/../src/components/gatsby-image.browser.tsx","webpack://gatsby-starter-default/../src/components/static-image.server.tsx","webpack://gatsby-starter-default/../src/components/static-image.tsx","webpack://gatsby-starter-default/./src/images/experts/DrStock.webp","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/null.js","webpack://gatsby-starter-default/./src/images/experts/DrAayuMehmi.webp","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://gatsby-starter-default/./node_modules/axios/index.js","webpack://gatsby-starter-default/./node_modules/camelcase/index.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/transformData.js","webpack://gatsby-starter-default/./node_modules/axios/lib/cancel/CancelToken.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/InterceptorManager.js","webpack://gatsby-starter-default/./node_modules/axios/lib/cancel/isCancel.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/cookies.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/dispatchRequest.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/combineURLs.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/validator.js","webpack://gatsby-starter-default/./node_modules/axios/lib/defaults/transitional.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/Axios.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/mergeConfig.js","webpack://gatsby-starter-default/./src/assets/header/headerLogo.svg","webpack://gatsby-starter-default/./node_modules/axios/lib/adapters/xhr.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/AxiosError.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/toFormData.js","webpack://gatsby-starter-default/./src/images/experts/DrSuren.webp","webpack://gatsby-starter-default/./src/images/experts/DrJonathan.webp","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://gatsby-starter-default/./src/components/common/CustomButton.js","webpack://gatsby-starter-default/./src/images/experts/DrNick.webp","webpack://gatsby-starter-default/./src/helpers/typeform.js","webpack://gatsby-starter-default/./src/helpers/urlParams.js","webpack://gatsby-starter-default/./node_modules/axios/lib/defaults/index.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/settle.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/spread.js","webpack://gatsby-starter-default/./node_modules/axios/lib/axios.js","webpack://gatsby-starter-default/./src/images/experts/DrMeredith.webp","webpack://gatsby-starter-default/./src/images/experts/DrMacfarlane.webp","webpack://gatsby-starter-default/./src/images/experts/DrAsemKaber.webp","webpack://gatsby-starter-default/./src/images/experts/DrMarcusKramer.webp","webpack://gatsby-starter-default/./src/images/experts/DrMarieEveBernat.webp","webpack://gatsby-starter-default/./src/images/experts/DrNicole.webp","webpack://gatsby-starter-default/./src/images/experts/KristenAnderson.webp","webpack://gatsby-starter-default/./src/images/experts/DrSabaAteeque.webp","webpack://gatsby-starter-default/./src/images/experts/DrAndieFlynn.webp","webpack://gatsby-starter-default/./src/images/experts/BelleWoods.webp","webpack://gatsby-starter-default/./src/images/experts/JohnDavies.webp","webpack://gatsby-starter-default/./src/images/experts/MarcEllis.webp","webpack://gatsby-starter-default/./src/images/experts/PaulineHall.webp","webpack://gatsby-starter-default/./src/images/experts/DrParisaKakroodi.webp","webpack://gatsby-starter-default/./src/images/experts/DrAnnaSchwartz.webp","webpack://gatsby-starter-default/./src/images/experts/DrJohnBatara.webp","webpack://gatsby-starter-default/./src/helpers/countryTextCopies.js","webpack://gatsby-starter-default/./node_modules/axios/lib/cancel/CanceledError.js","webpack://gatsby-starter-default/./src/assets/common/sliderOrangeArrowRight.svg","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/bind.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/buildURL.js","webpack://gatsby-starter-default/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://gatsby-starter-default/./node_modules/axios/lib/utils.js","webpack://gatsby-starter-default/./node_modules/axios/lib/core/buildFullPath.js","webpack://gatsby-starter-default/./node_modules/axios/lib/env/data.js"],"sourcesContent":["export default __webpack_public_path__ + \"static/DrFred-81bd228d2b45131ddcdbdd1d50d36f32.webp\";","export default __webpack_public_path__ + \"static/DrLara-e1f5bd618f03113edb3c66f78e2d5146.webp\";","var React = require('react');\n\nfunction FooterLogo (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"d\":\"M0.000227015 4.88038C-0.00471702 4.23809 0.11514 3.60121 0.35282 3.00682C0.590499 2.41244 0.94125 1.87243 1.38465 1.41825C1.82805 0.964064 2.35523 0.604781 2.9355 0.36132C3.51576 0.117859 4.13752 -0.00491378 4.76456 0.000150523H5.81643C7.85828 0.000150523 9.2814 1.0776 10.1476 2.53533L21.6563 21.7464L33.2268 2.479C34.2168 0.831128 35.578 0.00719273 37.4893 0.00719273H38.5411C39.1682 0.00120091 39.7901 0.123054 40.3707 0.365658C40.9513 0.608261 41.479 0.966765 41.9231 1.42029C42.3671 1.87382 42.7186 2.41331 42.9571 3.00734C43.1956 3.60137 43.3164 4.23808 43.3124 4.88038V40.1194C43.3173 40.7617 43.1974 41.3986 42.9598 41.993C42.7221 42.5874 42.3713 43.1274 41.9279 43.5816C41.4845 44.0358 40.9573 44.395 40.3771 44.6385C39.7968 44.882 39.1751 45.0047 38.548 44.9997C35.9493 44.9997 33.8456 42.7814 33.8456 40.1194V18.007L25.4925 31.1829C24.5025 32.704 23.265 33.6547 21.5325 33.6547C19.8001 33.6547 18.5626 32.704 17.5726 31.1829L9.35015 18.1901V40.2462C9.34928 40.8755 9.2266 41.4984 8.98921 42.0789C8.75181 42.6594 8.40441 43.1858 7.96711 43.6279C7.5298 44.0699 7.01126 44.4188 6.4415 44.6543C5.87173 44.8897 5.26203 45.0071 4.64769 44.9997C4.03602 45.0068 3.4291 44.8888 2.86254 44.6525C2.29598 44.4163 1.78118 44.0665 1.34831 43.6238C0.915446 43.181 0.573236 42.6542 0.341746 42.0742C0.110256 41.4943 -0.00585311 40.8728 0.000227015 40.2462V4.88038Z\",\"fill\":\"#F5F5F5\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M54.5635 4.86581C54.5635 3.57532 55.0645 2.33768 55.9564 1.42516C56.8482 0.512647 58.0578 0 59.3191 0C60.5803 0 61.7899 0.512647 62.6818 1.42516C63.5736 2.33768 64.0747 3.57532 64.0747 4.86581V17.8834H81.6148V4.86581C81.6148 3.57532 82.1158 2.33768 83.0077 1.42516C83.8995 0.512647 85.1091 0 86.3704 0C87.6316 0 88.8412 0.512647 89.7331 1.42516C90.6249 2.33768 91.126 3.57532 91.126 4.86581V40.1272C91.126 41.4177 90.6249 42.6553 89.7331 43.5678C88.8412 44.4803 87.6316 44.993 86.3704 44.993C85.1091 44.993 83.8995 44.4803 83.0077 43.5678C82.1158 42.6553 81.6148 41.4177 81.6148 40.1272V26.8638H64.0747V40.1342C64.0747 41.4247 63.5736 42.6623 62.6818 43.5748C61.7899 44.4874 60.5803 45 59.3191 45C58.0578 45 56.8482 44.4874 55.9564 43.5748C55.0645 42.6623 54.5635 41.4247 54.5635 40.1342V4.86581Z\",\"fill\":\"#F5F5F5\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M101.812 22.5021V22.3784C101.812 10.0765 111.085 0 124.375 0C130.866 0 135.255 1.73093 138.841 4.39601C139.418 4.84079 139.885 5.41205 140.206 6.06582C140.528 6.71958 140.695 7.43841 140.695 8.16696C140.694 8.7808 140.572 9.38837 140.335 9.95454C140.097 10.5207 139.75 11.0342 139.313 11.4654C138.876 11.8966 138.358 12.2368 137.789 12.4665C137.22 12.6961 136.611 12.8106 135.997 12.8034C134.699 12.8034 133.833 12.3088 133.153 11.8761C130.495 9.89789 127.713 8.78515 124.313 8.78515C117.019 8.78515 111.765 14.8434 111.765 22.2617V22.3853C111.765 29.8036 116.896 35.9855 124.313 35.9855C128.331 35.9855 130.99 34.7491 133.71 32.5854C134.505 31.9132 135.512 31.5414 136.553 31.5345C138.964 31.5345 141.004 33.5127 141.004 35.9236C140.999 36.573 140.852 37.2134 140.575 37.8005C140.297 38.3876 139.895 38.9073 139.397 39.3237C135.502 42.7237 130.928 44.7637 124.011 44.7637C111.271 44.7569 101.812 34.9277 101.812 22.5021Z\",\"fill\":\"#F5F5F5\",\"key\":2}),React.createElement(\"path\",{\"d\":\"M141.633 35.6446C141.633 34.6522 141.326 33.6839 140.753 32.8736C140.18 32.0633 139.37 31.4508 138.434 31.1208C137.498 30.7907 136.482 30.7594 135.528 31.0311C134.573 31.3028 133.726 31.8641 133.104 32.6375C132.603 33.1307 130.015 35.385 124.587 35.385C118.558 35.385 115.784 32.415 115.669 32.2886C115.713 32.338 115.733 32.3641 115.733 32.3641C114.899 31.4495 113.744 30.892 112.509 30.8076C111.274 30.7232 110.054 31.1184 109.103 31.9109C108.152 32.7035 107.543 33.8323 107.404 35.0624C107.264 36.2924 107.604 37.5289 108.354 38.5144C108.373 38.5378 108.4 38.5707 108.433 38.6078C108.634 38.8638 108.859 39.0989 109.106 39.3098C110.191 40.3425 111.399 41.2384 112.701 41.9777C116.136 43.9517 120.242 44.9999 124.594 44.9999C128.946 44.9999 132.99 44.0012 136.318 42.115C138.964 40.6121 140.337 39.0076 140.586 38.7026L140.557 38.6779C141.256 37.8218 141.636 36.7498 141.633 35.6446Z\",\"fill\":\"#FF5733\",\"key\":3})]);\n}\n\nFooterLogo.defaultProps = {\"width\":\"142\",\"height\":\"45\",\"viewBox\":\"0 0 142 45\",\"fill\":\"none\"};\n\nmodule.exports = FooterLogo;\n\nFooterLogo.default = FooterLogo;\n","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent =\n function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n }\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","export default __webpack_public_path__ + \"static/DrStock-8c68587b65032a913e637877ea29772a.webp\";","// eslint-disable-next-line strict\nmodule.exports = null;\n","export default __webpack_public_path__ + \"static/DrAayuMehmi-e3cb74ea956d291601b4ecaf8cbf866c.webp\";","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","module.exports = require('./lib/axios');","'use strict';\n\nconst preserveCamelCase = string => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = Object.assign({\n\t\tpascalCase: false\n\t}, options);\n\n\tconst postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n\t}\n\n\tconst hasUpperCase = input !== input.toLowerCase();\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input);\n\t}\n\n\tinput = input\n\t\t.replace(/^[_.\\- ]+/, '')\n\t\t.toLowerCase()\n\t\t.replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase())\n\t\t.replace(/\\d+(\\w|$)/g, m => m.toUpperCase());\n\n\treturn postProcess(input);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","var React = require('react');\n\nfunction HeaderLogo (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"d\":\"M0.00014409 3.09765C-0.00299397 2.68998 0.0730814 2.28574 0.22394 1.90848C0.374799 1.53121 0.597426 1.18846 0.878857 0.900183C1.16029 0.611906 1.4949 0.383864 1.8632 0.229335C2.23151 0.0748071 2.62615 -0.00311885 3.02414 9.55393e-05H3.69177C4.98777 9.55393e-05 5.89104 0.683972 6.44086 1.60922L13.7456 13.8028L21.0896 1.57346C21.7179 0.527529 22.5819 0.00456533 23.795 0.00456533H24.4626C24.8606 0.000762238 25.2554 0.0781045 25.6239 0.232088C25.9924 0.386072 26.3274 0.61362 26.6092 0.901481C26.891 1.18934 27.1141 1.53176 27.2655 1.90881C27.4169 2.28585 27.4936 2.68997 27.491 3.09765V25.4644C27.4941 25.8721 27.4181 26.2763 27.2672 26.6536C27.1164 27.0309 26.8937 27.3736 26.6123 27.6619C26.3309 27.9502 25.9963 28.1782 25.6279 28.3327C25.2596 28.4873 24.865 28.5652 24.467 28.562C22.8176 28.562 21.4823 27.154 21.4823 25.4644V11.4293L16.1805 19.7923C15.5521 20.7577 14.7667 21.3612 13.667 21.3612C12.5674 21.3612 11.7819 20.7577 11.1536 19.7923L5.93468 11.5455V25.5449C5.93413 25.9443 5.85626 26.3397 5.70559 26.7081C5.55491 27.0765 5.33441 27.4107 5.05684 27.6913C4.77928 27.9719 4.45016 28.1933 4.08851 28.3427C3.72687 28.4922 3.33989 28.5667 2.94996 28.562C2.56172 28.5665 2.1765 28.4916 1.8169 28.3416C1.4573 28.1917 1.13054 27.9697 0.855794 27.6887C0.581048 27.4077 0.363841 27.0733 0.216911 26.7052C0.0699811 26.337 -0.00371506 25.9426 0.00014409 25.5449V3.09765Z\",\"fill\":\"#030654\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M34.6309 3.08841C34.6309 2.26931 34.9489 1.48376 35.5149 0.904573C36.081 0.325385 36.8488 0 37.6493 0C38.4498 0 39.2176 0.325385 39.7837 0.904573C40.3497 1.48376 40.6678 2.26931 40.6678 3.08841V11.3509H51.8007V3.08841C51.8007 2.26931 52.1187 1.48376 52.6848 0.904573C53.2509 0.325385 54.0186 0 54.8192 0C55.6197 0 56.3875 0.325385 56.9536 0.904573C57.5196 1.48376 57.8376 2.26931 57.8376 3.08841V25.4693C57.8376 26.2884 57.5196 27.074 56.9536 27.6532C56.3875 28.2323 55.6197 28.5577 54.8192 28.5577C54.0186 28.5577 53.2509 28.2323 52.6848 27.6532C52.1187 27.074 51.8007 26.2884 51.8007 25.4693V17.0509H40.6678V25.4738C40.6678 26.2929 40.3497 27.0784 39.7837 27.6576C39.2176 28.2368 38.4498 28.5622 37.6493 28.5622C36.8488 28.5622 36.081 28.2368 35.5149 27.6576C34.9489 27.0784 34.6309 26.2929 34.6309 25.4738V3.08841Z\",\"fill\":\"#030654\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M64.6211 14.2824V14.2039C64.6211 6.39569 70.5067 0 78.9419 0C83.0618 0 85.8476 1.09865 88.1234 2.79021C88.4897 3.07252 88.7862 3.43511 88.9903 3.85007C89.1944 4.26502 89.3005 4.72127 89.3005 5.18369C89.3 5.57331 89.2222 5.95894 89.0716 6.3183C88.9211 6.67765 88.7008 7.00359 88.4235 7.27725C88.1462 7.55092 87.8173 7.76689 87.456 7.91265C87.0947 8.05842 86.7081 8.13111 86.3185 8.1265C85.4945 8.1265 84.9452 7.8126 84.5136 7.53793C82.8264 6.28234 81.0607 5.57607 78.9026 5.57607C74.2726 5.57607 70.9383 9.42133 70.9383 14.1298V14.2083C70.9383 18.9168 74.195 22.8405 78.9026 22.8405C81.4531 22.8405 83.1403 22.0558 84.8667 20.6825C85.3718 20.2558 86.0105 20.0198 86.6716 20.0154C88.2019 20.0154 89.4967 21.271 89.4967 22.8013C89.4932 23.2134 89.4002 23.6199 89.2241 23.9925C89.0479 24.3652 88.7928 24.6951 88.4765 24.9593C86.0046 27.1174 83.101 28.4122 78.7108 28.4122C70.6244 28.4079 64.6211 22.1691 64.6211 14.2824Z\",\"fill\":\"#030654\",\"key\":2}),React.createElement(\"path\",{\"d\":\"M89.8975 22.6241C89.898 21.9942 89.7029 21.3796 89.3392 20.8653C88.9754 20.351 88.461 19.9622 87.8669 19.7528C87.2729 19.5433 86.6284 19.5234 86.0225 19.6958C85.4166 19.8683 84.8792 20.2245 84.4845 20.7155C84.1662 21.0285 82.5235 22.4593 79.0784 22.4593C75.2515 22.4593 73.491 20.5742 73.4178 20.494C73.4457 20.5254 73.4588 20.5419 73.4588 20.5419C72.9292 19.9614 72.1962 19.6076 71.4123 19.554C70.6283 19.5004 69.854 19.7512 69.2503 20.2543C68.6467 20.7573 68.2604 21.4738 68.1718 22.2546C68.0832 23.0353 68.2992 23.8201 68.7747 24.4456C68.7869 24.4604 68.8043 24.4814 68.8253 24.5049C68.9524 24.6674 69.0956 24.8166 69.2525 24.9505C69.9412 25.6059 70.7075 26.1746 71.5344 26.6438C73.7142 27.8968 76.3205 28.5621 79.0828 28.5621C81.8451 28.5621 84.4121 27.9282 86.5239 26.731C88.2033 25.7771 89.0752 24.7587 89.2331 24.5651L89.2148 24.5494C89.6583 24.006 89.8996 23.3256 89.8975 22.6241Z\",\"fill\":\"#FF5733\",\"key\":3})]);\n}\n\nHeaderLogo.defaultProps = {\"width\":\"90\",\"height\":\"29\",\"viewBox\":\"0 0 90 29\",\"fill\":\"none\"};\n\nmodule.exports = HeaderLogo;\n\nHeaderLogo.default = HeaderLogo;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","export default __webpack_public_path__ + \"static/DrSuren-bdfc013a019821262fa725660d7a8954.webp\";","export default __webpack_public_path__ + \"static/DrJonathan-91044df926a36d0e46c222b77c833d93.webp\";","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","import React from \"react\"\nimport { Link } from \"gatsby\"\n\nexport const CustomButton = ({ className, text, link, navLink }) => {\n return (\n <>\n {link && (\n \n {text}\n \n )}\n {navLink && (\n \n {text}\n \n )}\n \n )\n}\n","export default __webpack_public_path__ + \"static/DrNick-d76acbe0134499033bc1ec0f0f24794c.webp\";","import { getUrlParams } from \"./urlParams\"\n\nexport const BASE_URL = \"https://mhcquiz.typeform.com/to/\"\n\nexport const TYPEFORM_QUIZ_ID = {\n AU: \"Y409seB9\",\n PH: \"Oqgo0Gyb\",\n NZ: \"QQkeR0Jm\",\n UK: \"Vke0BkzI\",\n CA: \"UsxkM3U9\",\n}\n\nexport function getQuizUrl(countryCode, url = \"\") {\n const quizId = TYPEFORM_QUIZ_ID[countryCode]\n\n return `${BASE_URL}${quizId}${getUtmParamString(url)}`\n}\n\nexport function getUtmParamString(url) {\n if (!url) {\n return \"\"\n }\n\n const params = getUrlParams(url)\n const utmParams = [\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_term\"]\n\n const paramString = utmParams\n .filter(param => params[param])\n .map(param => `${param}=${params[param]}`)\n .join(\"&\")\n\n return paramString ? `?${paramString}` : \"\"\n}\n","export function getUrlParams(url) {\n const urlObject = new URL(url)\n const searchParams = new URLSearchParams(urlObject.search)\n \n return Object.fromEntries(searchParams)\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","export default __webpack_public_path__ + \"static/DrMeredith-e9938bbbdeafc957ca65b2cfa41ae4c6.webp\";","export default __webpack_public_path__ + \"static/DrMacfarlane-962d3fe80ddab1a5a840450a56d5dfbc.webp\";","export default __webpack_public_path__ + \"static/DrAsemKaber-ea743812aa43e97f0c8eba3384738cdf.webp\";","export default __webpack_public_path__ + \"static/DrMarcusKramer-bcb33ae3334fa86af0a15d0fb071a90f.webp\";","export default __webpack_public_path__ + \"static/DrMarieEveBernat-6b89719768cc7d0eb537f95897217f5c.webp\";","export default __webpack_public_path__ + \"static/DrNicole-1ff84caf0dde4372d03724cb2de8b483.webp\";","export default __webpack_public_path__ + \"static/KristenAnderson-fc634295b3bcf2efc11d7a3a997942cf.webp\";","export default __webpack_public_path__ + \"static/DrSabaAteeque-69420baac1cba3bbc8d2f01b78ccef63.webp\";","export default __webpack_public_path__ + \"static/DrAndieFlynn-ffa950e9ad99ab4ecb4defd3e359dbbe.webp\";","export default __webpack_public_path__ + \"static/BelleWoods-b32a9ac8039009a36115eb0983b54030.webp\";","export default __webpack_public_path__ + \"static/JohnDavies-a529fc0758a01a6db8261d7f290e0779.webp\";","export default __webpack_public_path__ + \"static/MarcEllis-575a028080aac9548f44273a0d6d6e2d.webp\";","export default __webpack_public_path__ + \"static/PaulineHall-f6ebeec9e77e7daf27aa19426c683661.webp\";","export default __webpack_public_path__ + \"static/DrParisaKakroodi-13a1e8262ab41fe0bbde81a250a7a5f4.webp\";","export default __webpack_public_path__ + \"static/DrAnnaSchwartz-1d82b832358ebb7863342cac7130be6b.webp\";","export default __webpack_public_path__ + \"static/DrJohnBatara-6a16d996a788859f2fcdb788e94e8186.webp\";","import DrFred from \"../images/experts/DrFred.webp\"\nimport DrNick from \"../images/experts/DrNick.webp\"\nimport DrMeredith from \"../images/experts/DrMeredith.webp\"\nimport DrMacfarlane from \"../images/experts/DrMacfarlane.webp\"\nimport DrJonathan from \"../images/experts/DrJonathan.webp\"\nimport DrStock from \"../images/experts/DrStock.webp\"\nimport DrAayuMehmi from \"../images/experts/DrAayuMehmi.webp\"\nimport DrAsemKaber from \"../images/experts/DrAsemKaber.webp\"\nimport DrMarcusKramer from \"../images/experts/DrMarcusKramer.webp\"\nimport DrMarieEveBernat from \"../images/experts/DrMarieEveBernat.webp\"\nimport DrSuren from \"../images/experts/DrSuren.webp\"\nimport DrNicole from \"../images/experts/DrNicole.webp\"\nimport KristenAnderson from \"../images/experts/KristenAnderson.webp\"\nimport DrLara from \"../images/experts/DrLara.webp\"\nimport DrSabaAteeque from \"../images/experts/DrSabaAteeque.webp\"\nimport DrAndieFlynn from \"../images/experts/DrAndieFlynn.webp\"\nimport BelleWoods from \"../images/experts/BelleWoods.webp\"\nimport JohnDavies from \"../images/experts/JohnDavies.webp\"\nimport MarcEllis from \"../images/experts/MarcEllis.webp\"\nimport PaulineHall from \"../images/experts/PaulineHall.webp\"\nimport DrParisaKakroodi from \"../images/experts/DrParisaKakroodi.webp\"\nimport DrAnnaSchwartz from \"../images/experts/DrAnnaSchwartz.webp\"\nimport DrJohnBatara from \"../images/experts/DrJohnBatara.webp\"\nimport { getQuizUrl } from \"./typeform\"\n\nexport const TextCopies = {\n acuityLink: prefix => {\n const acuity = {\n \"fr-ca\":\n \"https://app.acuityscheduling.com/schedule/b2bc76e9/appointment/74080496/calendar/11511497?calendarIds=11511497\",\n ph: \"https://app.squarespacescheduling.com/schedule.php?owner=25718233&appointmentType=31947035\",\n au: \"https://menshealthclinic.as.me/email?utm_source=website&utm_medium=book_now\",\n ca: \"https://app.acuityscheduling.com/schedule.php?owner=24056947&calendarID=6108046\",\n nz: \"https://app.acuityscheduling.com/schedule.php?owner=21987254&appointmentType=31987889\",\n uk: \"https://app.squarespacescheduling.com/schedule.php?owner=26169664&appointmenttype=33136276\",\n }\n return acuity[prefix]\n },\n countryPhone: prefix => {\n const phones = {\n au: \"+61 1300 959 733\",\n ca: \"+1 (800) 422 8149\",\n \"fr-ca\": \"+1 (800) 422 8149\",\n ph: \"0905 334 4352\",\n nz: \"+64 800 807 744\",\n uk: \"+44 (800) 058 4295\",\n }\n return phones[prefix]\n },\n country: prefix => {\n const countries = {\n au: \"Australia\",\n ca: \"Canada\",\n \"fr-ca\": \"Canada\",\n ph: \"Philippines\",\n nz: \"New Zealand\",\n uk: \"UK\",\n }\n return countries[prefix]\n },\n website: prefix => {\n const website = {\n au: \"www.mhc.com.au\",\n ca: \"www.menshealthclinic.com/ca\",\n // ph: \"www.menshealthclinic.com/ph\",\n }\n return website[prefix]\n },\n businessNumber: prefix => {\n const businessNumber = {\n au: \"(AUST) PTY LTD (ABN 99 608 500 107)\",\n ca: \"Men's Health Clinic (BC 1317300)\",\n ph: \"\",\n }\n return businessNumber[prefix]\n },\n email: prefix => {\n const email = {\n au: \"info@mhc.com.au\",\n ca: \"info@menshealthclinic.ca\",\n \"fr-ca\": \"info@menshealthclinic.ca\",\n ph: \"info.ph@menshealthclinic.com\",\n nz: \"info@menshealthclinic.co.nz\",\n uk: \"info@ukmhc.co.uk\",\n }\n return email[prefix]\n },\n address: prefix => {\n const address = {\n au: \"Head Office - 203 – 531 Yates St. Victoria\",\n ca: \"Canada Head Office: 203 – 531 Yates St, BC V8W 1K7 Canada\",\n ph: \"Centuria Medical Makati - Unit 1721 Century City Gen. Luna St, cor - Salamanca, St. Brgy Poblacion, Makati, Metro Manila 1210\",\n }\n return address[prefix]\n },\n countryAsAdjective: prefix => {\n const countries = {\n au: \"Australian\",\n ca: \"Canadian\",\n \"fr-ca\": \"Canadian\",\n ph: \"Filipino\",\n nz: \"New Zealand\",\n uk: \"UK\",\n }\n return countries[prefix]\n },\n facebookLink: prefix => {\n const facebook = {\n au: \"https://www.facebook.com/menshealthclinic1\",\n ca: \"https://www.facebook.com/profile.php?id=100083198143963\",\n \"fr-ca\": \"https://www.facebook.com/profile.php?id=100083198143963\",\n ph: \"https://www.facebook.com/Mens-Health-Clinic-Philippines-101460218614240/\",\n nz: \"https://www.facebook.com/share/1CYxXb87Fz/?mibextid=wwXIfr\",\n uk: \"https://www.facebook.com/profile.php?id=100066745363231\",\n }\n return facebook[prefix]\n },\n instagramLink: prefix => {\n const countries = {\n au: \"https://www.instagram.com/menshealthclinic.aus/\",\n ca: \"https://www.instagram.com/menshealthclinic.canada/\",\n \"fr-ca\": \"https://www.instagram.com/menshealthclinic.canada/\",\n ph: \"\",\n nz: \"https://www.instagram.com/menshealthclinic.nz/\",\n uk: \"https://www.instagram.com/menshealthclinic.uk/\",\n }\n return countries[prefix]\n },\n whatsappApiLink: prefix => {\n const wpLink = {\n au: \"https://api.whatsapp.com/send?phone=61437138011\",\n ca: \"https://api.whatsapp.com/send?phone=18335365854\",\n \"fr-ca\": \"https://api.whatsapp.com/send?phone=18335365854\",\n ph: \"\",\n nz: \"https://api.whatsapp.com/send?phone=61437138011\",\n uk: \"https://api.whatsapp.com/send?phone=447908663317\",\n }\n return wpLink[prefix]\n },\n experts: prefix => {\n const experts = {\n au: [\n {\n doctor: \"Dr. Fred Edwards\",\n img: DrFred,\n text: `Dr. Fred Edwards is a qualified GP and has over 30+ years’ experience. He aims to widen the scope of treatment within MHC to include general health issues to help men.`,\n imgText: \"MBBS, FRACGP\",\n },\n {\n doctor: \"Dr. Nick Travers\",\n img: DrNick,\n text: `Dr. Nick Travers is a GP who completed industry leading training in the United Kingdom. Dr. Travers has a special interest in male Sexual Health with a focus on improving male mental health.`,\n imgText: \"MBBS, FRACGP\",\n },\n {\n doctor: \"Meredith Amundsen\",\n img: DrMeredith,\n text: `Accredited in Nutritional Science, Meredith inspires patients to become, happier and healthier versions of themselves. Meredith works closely with MHC patients to provide a one-of-a-kind approach to restoring confidence.`,\n imgText: \"Nutritional Counsellor\",\n },\n {\n doctor: \"Dr. Jonathan Herald\",\n img: DrJonathan,\n text: `Voted as Australia’s Best Doctor in orthopaedics on the internationally doctor-rated Best Doctor website; Dr Herald has 20 years’ surgical experience and has a passion for helping patients with their Chronic Pain management.`,\n imgText: \"MBBS, MSpMed\",\n },\n {\n doctor: \"Dr. Thomas Stock\",\n img: DrStock,\n text: \"Dr. Stock is a qualified GP who recognises the effect ED and PE can have on the male psyche. He brings both his knowledge and expertise to MHC providing patient centred care.\",\n imgText: \"MBChB (Hon) MSc.\",\n },\n {\n doctor: \"Jan Macfarlane\",\n img: DrMacfarlane,\n text: `Jan Macfarlane is an Accredited Clinical Nutritionist specialising in functional testing. Jan firmly believes that a healthy lifestyle is the first step to a more energetic and fuller life.`,\n imgText: \"Clinical Nutritionist\",\n },\n {\n doctor: \"Aayu Mehmi\",\n img: DrAayuMehmi,\n text: `Aayu Mehmi is a qualified Psychologist, having completed her Bachelor’s Degree in Psychology with a further Master’s Degree in Counseling at Monash University. Aayu is a licensed Mental Health Counselor with PACFA and is passionate in helping treat patients suffering in Chronic Pain.`,\n imgText: \"Psychologist\",\n },\n {\n doctor: \"Andie Flynn\",\n img: DrAndieFlynn,\n text: `Andie is a licensed Nutritionist and Clinical Dietitian with years of practicing experience. She is passionate in getting to know the patients' and their dietary and lifestyle choices. Andie is dedicated in providing each patient an individualised treatment program.`,\n imgText: \"Licensed Nutritionist and Clinical Dietitian\",\n },\n {\n doctor: \"Lara Abu-Zarour\",\n img: DrLara,\n text: \"Accredited Practising Dietitian and a member of Dietitians Australia, Lara has a passion for helping individuals; educating patients on how powerful nutrition and living a healthy lifestyle is when preventing acute and chronic conditions.\",\n imgText: \"Accredited Practising Dietitian\",\n },\n {\n doctor: \"Nicole Brewer\",\n img: DrNicole,\n text: `A passionate sex and relationship counsellor with a goal of making her patients reach their potential inside and outside of the bedroom. Nic creates a supportive, non-judgmental space, her clients gain deeper understanding and empowerment to have the results they want.`,\n imgText: \"Sex and Relationship Counsellor\",\n },\n ],\n ca: [\n {\n doctor: \"Dr. Asem Kaber\",\n img: DrAsemKaber,\n text: `Dr. Asem Said Kaber is a family physician based in Edmonton, Alberta. He received his Bachelor of Medicine, and Bachelor of Surgery degree from Libya in 2005. He is the medical director of Eastwood Medical Clinic. He is committed to helping you get better and live a better life.`,\n imgText: \"MBBCh\",\n },\n {\n doctor: \"Meredith Amundsen\",\n img: DrMeredith,\n text: `Accredited in Nutritional Science, Meredith inspires patients to become, happier and healthier versions of themselves. Meredith works closely with MHC patients to provide a one-of-a-kind approach to restoring confidence.`,\n imgText: \"Nutritional Counsellor\",\n },\n {\n doctor: \"Jan Macfarlane\",\n img: DrMacfarlane,\n text: `Jan Macfarlane is an Accredited Clinical Nutritionist specialising in functional testing. Jan firmly believes that a healthy lifestyle is the first step to a more energetic and fuller life.`,\n imgText: \"Clinical Nutritionist\",\n },\n {\n doctor: \"Marie-Eve Bernat\",\n img: DrMarieEveBernat,\n text: \"Marie-Eve Bernat, MD graduated from the University of Montreal in Family Medicine in 2003. She has since practiced in different provinces across Canada, before settling in Saskatchewan. Dr. Bernat is dedicated to provide compassionate and quality patient care.\",\n imgText: \"MD\",\n },\n {\n doctor: \"Dr. Anna Schwartz\",\n img: DrAnnaSchwartz,\n text: \"With her expertise as a family doctor and emergency physician in Northern and rural Manitoba, Dr. Anna Schwartz can fearlessly deal with different men's health issues. The University of Manitoba became her nurturing ground, completing her undergraduate and medical degrees and her residency in Family Medicine, all in the same institution. Whether it's handling emergencies, conducting screenings, or promoting overall well-being, Dr. Anna has your needs covered.\",\n imgText: \"MD\",\n },\n {\n doctor: \"Dr. Saba Ateeque\",\n img: DrSabaAteeque,\n text: \"A highly skilled internal medicine doctor, Dr. Saba Ateeque is an expert in addressing a wide variety of men’s health issues. She’s known for providing effective diagnoses and treatments. Dr. Saba has established herself as a trusted ally in the men's health field, as she promotes compassionate patient care and customised healthcare services.\",\n imgText: \"MD\",\n },\n ],\n \"fr-ca\": [\n {\n doctor: \"Dr. Asem Kaber\",\n img: DrAsemKaber,\n text: `Le Dr Asem Said Kaber est un médecin de famille basé à Edmonton, en Alberta. Il a obtenu son diplôme de médecine et de chirurgie de la Libye en 2005. Il est le directeur médical de la Eastwood Medical Clinic. Il s'engage à vous aider à vous rétablir et à vivre une vie meilleure.`,\n imgText: \"MBBCh\",\n },\n {\n doctor: \"Meredith Amundsen\",\n img: DrMeredith,\n text: `Accréditée en sciences de la nutrition, Meredith inspire les patients à devenir des versions plus heureuses et plus saines d'eux-mêmes. Meredith travaille en étroite collaboration avec les patients de Clinique de Santé Masculine pour offrir une approche unique visant à restaurer la confiance.`,\n imgText: \"Conseiller en nutrition\",\n },\n {\n doctor: \"Jan Macfarlane\",\n img: DrMacfarlane,\n text: `Jan Macfarlane est une nutritionniste clinique agréée spécialisée dans les tests fonctionnels. Jan croit fermement qu'un mode de vie sain est la première étape vers une vie plus énergique et plus épanouissante.`,\n imgText: \"Nutritionniste clinique\",\n },\n {\n doctor: \"Marie-Eve Bernat\",\n img: DrMarieEveBernat,\n text: \"Marie-Eve Bernat, MD, a obtenu son diplôme en médecine familiale de l'Université de Montréal en 2003. Elle a depuis exercé dans différentes provinces du Canada avant de s'installer en Saskatchewan. La Dre Bernat est dévouée à fournir des soins attentionnés et de qualité aux patients.\",\n imgText: \"MD\",\n },\n {\n doctor: \"Dr. Anna Schwartz\",\n img: DrAnnaSchwartz,\n text: \"Avec son expertise en tant que médecin de famille et médecin d'urgence dans le nord et les régions rurales du Manitoba, la Dre Anna Schwartz peut traiter sans crainte différentes problématiques de santé masculine. L'Université du Manitoba est devenue son terreau fertile, où elle a obtenu son diplôme universitaire, son diplôme de médecine et a effectué sa résidence en médecine familiale, le tout dans la même institution. Que ce soit pour gérer des urgences, effectuer des dépistages ou promouvoir le bien-être général, la Dre Anna est là pour répondre à vos besoins.\",\n imgText: \"MD\",\n },\n {\n doctor: \"Dr. Saba Ateeque\",\n img: DrSabaAteeque,\n text: \"En tant que médecin interniste hautement qualifiée, le Dr Saba Ateeque est une experte dans le traitement d'une grande variété de problèmes de santé masculine. Elle est reconnue pour fournir des diagnostics et des traitements efficaces. Le Dr Saba s'est imposée comme une alliée de confiance dans le domaine de la santé masculine, promouvant des soins compatissants et des services de santé personnalisés.\",\n imgText: \"MD\",\n },\n ],\n ph: [\n {\n doctor: \"Dr. John Batara\",\n img: DrJohnBatara,\n text: `Dr. John Batara, 53 years old, practiced as a Physician for 26 years in Bacoor Cavite. Graduated Doctor of Medicine at FEU-NRMF. Completed training at Polymedic hospital in 1996. Had a clinical attachment in the University of Heath hospital in Cardiff Wales.`,\n imgText: \"MD\",\n },\n {\n doctor: \"Dr. Fred Edwards\",\n img: DrFred,\n text: `Dr. Fred Edwards is a qualified GP and has over 30+ years’ experience. He aims to widen the scope of treatment within MHC to include general health issues to help men.`,\n imgText: \"MBBS, FRACGP\",\n },\n {\n doctor: \"Dr. Nick Travers\",\n img: DrNick,\n text: `Dr. Nick Travers is a GP who completed industry leading training in the United Kingdom. Dr. Travers has a special interest in male Sexual Health with a focus on improving male mental health.`,\n imgText: \"MBBS, FRACGP\",\n },\n {\n doctor: \"Dr. Jonathan Herald\",\n img: DrJonathan,\n text: `Voted as Philippines’s Best Doctor in orthopaedics on the internationally doctor-rated Best Doctor website; Dr Herald has 20 years’ surgical experience and has a passion for helping patients with their Chronic Pain management.`,\n imgText: \"MBBS, MSpMed\",\n },\n {\n doctor: \"Dr. Thomas Stock\",\n img: DrStock,\n text: \"Dr. Stock is a qualified GP who recognises the effect ED and PE can have on the male psyche. He brings both his knowledge and expertise to MHC providing patient centred care.\",\n imgText: \"MBChB (Hon) MSc.\",\n },\n {\n doctor: \"Meredith Amundsen\",\n img: DrMeredith,\n text: `Accredited in Nutritional Science, Meredith inspires patients to become, happier and healthier versions of themselves. Meredith works closely with MHC patients to provide a one-of-a-kind approach to restoring confidence.`,\n imgText: \"Nutritional Counsellor\",\n },\n {\n doctor: \"Jan Macfarlane\",\n img: DrMacfarlane,\n text: `Jan Macfarlane is an Accredited Clinical Nutritionist specialising in functional testing. Jan firmly believes that a healthy lifestyle is the first step to a more energetic and fuller life.`,\n imgText: \"Clinical Nutritionist\",\n },\n {\n doctor: \"Aayu Mehmi\",\n img: DrAayuMehmi,\n text: `Aayu Mehmi is a qualified Psychologist, having completed her Bachelor’s Degree in Psychology with a further Master’s Degree in Counseling at Monash University. Aayu is a licensed Mental Health Counselor with PACFA and is passionate in helping treat patients suffering in Chronic Pain.`,\n imgText: \"Psychologist\",\n },\n ],\n nz: [\n {\n doctor: \"Dr. Marcus Kramer\",\n img: DrMarcusKramer,\n text: `Dr Marcus Kramer graduated from Auckland University in 1995 and has worked as a physician for the last 27 years mainly focused as a Senior Medical Officer in Emergency Medicine in New Zealand (2002-2008, 2020-2021) and as a Hospitalist in Qatar (2008-2019). Since 2021 he has been working as a Medical Contractor for Men's Health Clinic New Zealand with an interest in Men’s Health and Telemedicine.`,\n imgText: \"MD\",\n },\n {\n doctor: \"Dr. Fred Edwards\",\n img: DrFred,\n text: `Dr. Fred Edwards is a qualified GP and has over 30+ years’ experience. He aims to widen the scope of treatment within MHC to include general health issues to help men.`,\n imgText: \"MBBS, FRACGP\",\n },\n {\n doctor: \"Dr. Nick Travers\",\n img: DrNick,\n text: `Dr. Nick Travers is a GP who completed industry leading training in the United Kingdom. Dr. Travers has a special interest in male Sexual Health with a focus on improving male mental health.`,\n imgText: \"MBBS, FRACGP\",\n },\n {\n doctor: \"Meredith Amundsen\",\n img: DrMeredith,\n text: `Accredited in Nutritional Science, Meredith inspires patients to become, happier and healthier versions of themselves. Meredith works closely with MHC patients to provide a one-of-a-kind approach to restoring confidence.`,\n imgText: \"Nutritional Counsellor\",\n },\n {\n doctor: \"Dr. Jonathan Herald\",\n img: DrJonathan,\n text: `Voted as New Zealand’s Best Doctor in orthopaedics on the internationally doctor-rated Best Doctor website; Dr Herald has 20 years’ surgical experience and has a passion for helping patients with their Chronic Pain management.`,\n imgText: \"MBBS, MSpMed\",\n },\n {\n doctor: \"Dr. Thomas Stock\",\n img: DrStock,\n text: \"Dr. Stock is a qualified GP who recognises the effect ED and PE can have on the male psyche. He brings both his knowledge and expertise to MHC providing patient centred care.\",\n imgText: \"MBChB (Hon) MSc.\",\n },\n {\n doctor: \"Jan Macfarlane\",\n img: DrMacfarlane,\n text: `Jan Macfarlane is an Accredited Clinical Nutritionist specialising in functional testing. Jan firmly believes that a healthy lifestyle is the first step to a more energetic and fuller life.`,\n imgText: \"Clinical Nutritionist\",\n },\n {\n doctor: \"Aayu Mehmi\",\n img: DrAayuMehmi,\n text: `Aayu Mehmi is a qualified Psychologist, having completed her Bachelor’s Degree in Psychology with a further Master’s Degree in Counseling at Monash University. Aayu is a licensed Mental Health Counselor with PACFA and is passionate in helping treat patients suffering in Chronic Pain.`,\n imgText: \"Psychologist\",\n },\n {\n doctor: \"Andie Flynn\",\n img: DrAndieFlynn,\n text: `Andie is a licensed Nutritionist and Clinical Dietitian with years of practicing experience. She is passionate in getting to know the patients' and their dietary and lifestyle choices. Andie is dedicated in providing each patient an individualised treatment program.`,\n imgText: \"Licensed Nutritionist and Clinical Dietitian\",\n },\n {\n doctor: \"Lara Abu-Zarour\",\n img: DrLara,\n text: \"Accredited Practising Dietitian and a member of Dietitians Australia, Lara has a passion for helping individuals; educating patients on how powerful nutrition and living a healthy lifestyle is when preventing acute and chronic conditions.\",\n imgText: \"Accredited Practising Dietitian\",\n },\n {\n doctor: \"Nicole Brewer\",\n img: DrNicole,\n text: `A passionate sex and relationship counsellor with a goal of making her patients reach their potential inside and outside of the bedroom. Nic creates a supportive, non-judgmental space, her clients gain deeper understanding and empowerment to have the results they want.`,\n imgText: \"Sex and Relationship Counsellor\",\n },\n ],\n uk: [\n {\n doctor: \"Dr. Suren Naidoo\",\n img: DrSuren,\n text: `As a private GP and Aesthetic Practitioner, Dr. Suren practices medicine with a holistic approach by listening and dedicating the best possible care to his patients.`,\n imgText: \"MRCGP, MBBCh\",\n },\n {\n doctor: \"Lara Abu-Zarour\",\n img: DrLara,\n text: \"Accredited Practising Dietitian and a member of Dietitians Australia, Lara has a passion for helping individuals; educating patients on how powerful nutrition and living a healthy lifestyle is when preventing acute and chronic conditions.\",\n imgText: \"Accredited Practising Dietitian\",\n },\n {\n doctor: \"Nicole Brewer\",\n img: DrNicole,\n text: `A passionate sex and relationship counsellor with a goal of making her patients reach their potential inside and outside of the bedroom. Nic creates a supportive, non-judgmental space, her clients gain deeper understanding and empowerment to have the results they want.`,\n imgText: \"Sex and Relationship Counsellor\",\n },\n ],\n }\n return experts[prefix]\n },\n assessmentQuizLinks: prefix => {\n const assessmentQuizLinks = {\n ph: getQuizUrl(\"PH\"),\n }\n return assessmentQuizLinks[prefix]\n },\n schemaAddress: prefix => {\n const address = {\n au: {\n streetAddress: \"Level 13 – 213 Miller Street\",\n addressLocality: \"North Sydney\",\n addressRegion: \"NSW\",\n postalCode: \"2060\",\n addressCountry: \"AU\",\n },\n ca: {\n streetAddress: \"203 – 531 Yates St.\",\n addressLocality: \"Victoria\",\n addressRegion: \"British Columbia\",\n postalCode: \"V8W 1K7\",\n addressCountry: \"CA\",\n },\n nz: {\n streetAddress: \"Level 6, 1 Willis Street\",\n addressLocality: \"Wellington\",\n addressRegion: \"\",\n postalCode: \"6011\",\n addressCountry: \"NZ\",\n },\n uk: {\n streetAddress:\n \"Unit 16, Building 6, Croxley Business Park, Hatters Lane\",\n addressLocality: \"Watford\",\n addressRegion: \"\",\n postalCode: \"WD18 8YH\",\n addressCountry: \"UK\",\n },\n }\n return address[prefix]\n },\n}\n\nexport const experts = [\n {\n doctor: \"Dr. Thomas Stock\",\n img: DrStock,\n text: \"Dr. Stock has gained extensive experience in Men's Health through his career. He recognises the effect ED and PE can have on the male psyche, bringing both his knowledge and expertise to MHC providing patient centered care.\",\n imgText: \"MBChB (Hon) MSc.\",\n },\n {\n doctor: \"Dr. Suren Naidoo\",\n img: DrSuren,\n text: `As a private GP and Aesthetic Practitioner, Dr. Suren practices medicine with a holistic approach by listening and dedicating the best possible care to his patients.`,\n imgText: \"MRCGP, MBBCh\",\n },\n {\n doctor: \"Dr. Marcus Kramer\",\n img: DrMarcusKramer,\n text: `Dr Marcus Kramer graduated from Auckland University in 1995 and has worked as a physician for the last 27 years mainly focused as a Senior Medical Officer in Emergency Medicine in New Zealand (2002-2008, 2020-2021) and as a Hospitalist in Qatar (2008-2019). Since 2021 he has been working as a Medical Contractor for Men's Health Clinic New Zealand with an interest in Men’s Health and Telemedicine.`,\n imgText: \"MD\",\n },\n {\n doctor: \"Dr. Asem Kaber\",\n img: DrAsemKaber,\n text: `Dr. Asem Said Kaber is a family physician based in Edmonton, Alberta. He received his Bachelor of Medicine, and Bachelor of Surgery degree from Libya in 2005. He is the medical director of Eastwood Medical Clinic. He is committed to helping you get better and live a better life.`,\n imgText: \"MBBCh\",\n },\n {\n doctor: \"Dr. Fred Edwards\",\n img: DrFred,\n text: `Dr. Fred Edwards is a qualified GP and has over 30+ years’ experience. He aims to widen the scope of treatment within MHC to include general health issues to help men.`,\n imgText: \"MBBS, FRACGP\",\n },\n {\n doctor: \"Dr. Nick Travers\",\n img: DrNick,\n text: `Dr. Nick Travers is a GP who completed industry leading training in the United Kingdom. Dr. Travers has a special interest in male Sexual Health with a focus on improving male mental health.`,\n imgText: \"MBBS, FRACGP\",\n },\n {\n doctor: \"Dr. Jonathan Herald\",\n img: DrJonathan,\n text: `Voted as Australia’s Best Doctor in orthopaedics on the internationally doctor-rated Best Doctor website; Dr Herald has 20 years’ surgical experience and has a passion for helping patients with their Chronic Pain management.`,\n imgText: \"MBBS, MSpMed\",\n },\n {\n doctor: \"Marie-Eve Bernat\",\n img: DrMarieEveBernat,\n text: \"Marie-Eve Bernat, MD graduated from the University of Montreal in Family Medicine in 2003. She has since practiced in different provinces across Canada, before settling in Saskatchewan. Dr. Bernat is dedicated to provide compassionate and quality patient care.\",\n imgText: \"MD\",\n },\n {\n doctor: \"Dr. Saba Ateeque\",\n img: DrSabaAteeque,\n text: \"A highly skilled internal medicine doctor, Dr. Saba Ateeque is an expert in addressing a wide variety of men’s health issues. She’s known for providing effective diagnoses and treatments. Dr. Saba has established herself as a trusted ally in the men's health field, as she promotes compassionate patient care and customised healthcare services.\",\n imgText: \"MD\",\n },\n {\n doctor: \"Meredith Amundsen\",\n img: DrMeredith,\n text: `Accredited in Nutritional Science, Meredith inspires patients to become, happier and healthier versions of themselves. Meredith works closely with MHC patients to provide a one-of-a-kind approach to restoring confidence.`,\n imgText: \"Nutritional Counsellor\",\n },\n {\n doctor: \"Jan Macfarlane\",\n img: DrMacfarlane,\n text: `Jan Macfarlane is an Accredited Clinical Nutritionist specialising in functional testing. Jan firmly believes that a healthy lifestyle is the first step to a more energetic and fuller life.`,\n imgText: \"Clinical Nutritionist\",\n },\n {\n doctor: \"Aayu Mehmi\",\n img: DrAayuMehmi,\n text: `Aayu Mehmi is a qualified Psychologist, having completed her Bachelor’s Degree in Psychology with a further Master’s Degree in Counseling at Monash University. Aayu is a licensed Mental Health Counselor with PACFA and is passionate in helping treat patients suffering in Chronic Pain.`,\n imgText: \"Psychologist\",\n },\n {\n doctor: \"Lara Abu-Zarour\",\n img: DrLara,\n text: \"Accredited Practising Dietitian and a member of Dietitians Australia, Lara has a passion for helping individuals; educating patients on how powerful nutrition and living a healthy lifestyle is when preventing acute and chronic conditions.\",\n imgText: \"Accredited Practising Dietitian\",\n },\n {\n doctor: \"Nicole Brewer\",\n img: DrNicole,\n text: `A passionate sex and relationship counsellor with a goal of making her patients reach their potential inside and outside of the bedroom. Nic creates a supportive, non-judgmental space, her clients gain deeper understanding and empowerment to have the results they want.`,\n imgText: \"Sex and Relationship Counsellor\",\n },\n {\n doctor: \"Kristen Anderson, MA\",\n img: KristenAnderson,\n text: `Kristen is a therapeutic coach who empowers men to live long and healthier lives through connection, vitality, and virility. She is also a certified sex educator and intimacy coach who strives to create a safe and welcoming space for her clients to connect more deeply with themselves and their relationships. Kristen has a rich background in sports and mindfulness that she blends into her work with her clients. When she's not working, she enjoys running, cycling, golfing and spending time with her three boys.`,\n imgText: \"Intimacy Coach\",\n },\n {\n doctor: \"Andie Flynn\",\n img: DrAndieFlynn,\n text: `Andie is a licensed Nutritionist and Clinical Dietitian with years of practicing experience. She is passionate in getting to know the patients' and their dietary and lifestyle choices. Andie is dedicated in providing each patient an individualised treatment program.`,\n imgText: \"Licensed Nutritionist and Clinical Dietitian\",\n },\n {\n doctor: \"Belle Woods\",\n img: BelleWoods,\n text: `Belle is an experienced clinical dietitian with nearly two decades of expertise in diverse areas, including metabolic disorders, lung diseases, and chronic pain management.`,\n imgText: \"Nutritionist Dietitian\",\n },\n {\n doctor: \"Marc Ellis\",\n img: MarcEllis,\n text: `Marc is a passionate and dedicated Registered Nutritionist-Dietitian with expertise in creating personalized nutrition plans to optimized health and well-being. As a trusted nutrition professional, he is dedicated to helping individuals make informed choices about their nutrition and lifestyle.`,\n imgText: \"Nutritionist Dietitian\",\n },\n {\n doctor: \"John Davies\",\n img: JohnDavies,\n text: `John Davies, an experienced Licensed Nutritionist and Clinical Dietitian, specializes in nutrition therapy, counseling, and personalized diet plans. With seven years of experience and advanced degrees in Nutrition and Clinical Nutrition, John also delivers lectures on medical nutrition therapy. His approach blends scientific knowledge with empathy to provide evidence-based recommendations for his clients.`,\n imgText: \"Nutritionist Dietitian\",\n },\n {\n doctor: \"Pauline Hall\",\n img: PaulineHall,\n text: `As a licensed Nutritionist Dietitian for 6 years, Pauline specializes in weight management and lifestyle diseases such as diabetes and hypertension. My expertise lies in providing tailored nutritional guidance to help individuals achieve their health goals and manage chronic conditions effectively.`,\n imgText: \"Nutritionist Dietitian\",\n },\n {\n doctor: \"Dr. Parisa Kakroodi\",\n img: DrParisaKakroodi,\n text: `Dr. Parisa Ghassemi is a dedicated and compassionate family physician who began her medical journey in Iran before moving to Canada in 2010. She furthered her education by earning a master's degree in biomedical sciences from the University of Montreal and completing her residency in family medicine at the University of Sherbrooke. Since 2016, Dr. Ghassemi has been practicing in Quebec and New Brunswick, where she has gained extensive experience in family medicine, with a particular focus on women's and men's health.`,\n imgText: \"\",\n },\n]\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","var React = require('react');\n\nfunction SliderOrangeArrowRight (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M0.292894 9.70711C-0.0976307 9.31658 -0.0976307 8.68342 0.292894 8.29289L3.58579 5L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292894C0.683417 -0.0976312 1.31658 -0.0976312 1.70711 0.292894L5.70711 4.29289C6.09763 4.68342 6.09763 5.31658 5.70711 5.70711L1.70711 9.70711C1.31658 10.0976 0.683418 10.0976 0.292894 9.70711Z\"}));\n}\n\nSliderOrangeArrowRight.defaultProps = {\"width\":\"6\",\"height\":\"10\",\"viewBox\":\"0 0 6 10\",\"fill\":\"#4F4F4F\"};\n\nmodule.exports = SliderOrangeArrowRight;\n\nSliderOrangeArrowRight.default = SliderOrangeArrowRight;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};"],"names":["React","FooterLogo","props","createElement","defaultProps","module","exports","default","height","prototype","format","isLoading","isLoaded","images","loading","style","shouldLoad","opacity","placeholder","layout","width","backgroundColor","objectFit","objectPosition","wrapperStyle","position","top","left","bottom","right","transition","sources","paddingTop","maxWidth","display","alt","role","src","children","Fragment","Sizer","srcSet","decoding","undefined","fallback","t","s","sizes","Image","length","map","media","type","key","fallbackImage","propTypes","PropTypes","isRequired","Picture","displayName","Placeholder","propName","componentName","MainImage","rest","string","image","altValidator","Set","as","className","class","preactClass","onStartLoad","onLoad","onError","overflow","wStyle","wClass","wrapperProps","useRef","useMemo","JSON","stringify","sizer","useEffect","renderImageToStringPromise","import","then","renderImageToString","swapPlaceholderImage","renderImage","root","current","querySelector","ssrImage","hasNativeLazyLoadSupport","complete","wasCached","setTimeout","removeAttribute","addEventListener","removeEventListener","onLoadListener","imageCache","add","cacheKey","has","innerHTML","animationFrame","requestAnimationFrame","cleanupCallback","cancelAnimationFrame","useLayoutEffect","ref","dangerouslySetInnerHTML","__html","suppressHydrationWarning","memo","warn","GatsbyImageHydrator","GatsbyImage","number","checkDimensionProps","validLayouts","Error","GatsbyImageBrowser","__imageData","imageData","__error","console","StaticImage","utils","ignoreDuplicateOf","headers","val","i","parsed","forEach","split","line","indexOf","trim","substr","toLowerCase","concat","camelCase","input","options","Array","isArray","TypeError","Object","assign","pascalCase","x","filter","join","toUpperCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","test","slice","preserveCamelCase","replace","_","p1","m","charAt","defaults","data","fns","context","this","fn","call","CanceledError","CancelToken","executor","resolvePromise","promise","Promise","resolve","token","cancel","_listeners","l","onfulfilled","_resolve","subscribe","unsubscribe","message","reason","throwIfRequested","listener","push","index","splice","source","c","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","h","value","__CANCEL__","isStandardBrowserEnv","write","name","expires","path","domain","secure","cookie","encodeURIComponent","isNumber","Date","toGMTString","isString","document","read","match","RegExp","decodeURIComponent","remove","now","originURL","msie","navigator","userAgent","urlParsingNode","resolveURL","url","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","window","location","requestURL","transformData","isCancel","throwIfCancellationRequested","config","cancelToken","signal","aborted","transformRequest","merge","common","method","adapter","response","transformResponse","reject","baseURL","relativeURL","VERSION","AxiosError","validators","thing","deprecatedWarnings","transitional","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","keys","result","ERR_BAD_OPTION","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","payload","isObject","isAxiosError","buildURL","dispatchRequest","mergeConfig","buildFullPath","Axios","instanceConfig","interceptors","request","configOrUrl","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","chain","apply","shift","newConfig","onFulfilled","onRejected","error","getUri","fullPath","params","paramsSerializer","generateHTTPMethod","isForm","config1","config2","getMergedValue","target","isPlainObject","mergeDeepProperties","prop","isUndefined","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","HeaderLogo","settle","cookies","parseHeaders","isURLSameOrigin","transitionalDefaults","parseProtocol","onCanceled","requestData","requestHeaders","responseType","done","isFormData","XMLHttpRequest","auth","username","password","unescape","Authorization","btoa","onloadend","responseHeaders","getAllResponseHeaders","responseText","status","statusText","err","open","timeout","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","xsrfCookieName","xsrfHeaderName","setRequestHeader","onDownloadProgress","onUploadProgress","upload","abort","ERR_BAD_REQUEST","send","exec","code","inherits","toJSON","description","fileName","lineNumber","columnNumber","stack","descriptors","defineProperties","defineProperty","from","customProps","axiosError","create","toFlatObject","obj","formData","FormData","convertValue","isDate","toISOString","isArrayBuffer","isTypedArray","Blob","Buffer","build","parentKey","arr","fullKey","endsWith","toArray","el","append","pop","normalizedName","CustomButton","_ref","text","link","navLink","Link","to","BASE_URL","TYPEFORM_QUIZ_ID","AU","PH","NZ","UK","CA","getQuizUrl","countryCode","arguments","quizId","urlObject","URL","searchParams","URLSearchParams","fromEntries","getUrlParams","paramString","param","getUtmParamString","normalizeHeaderName","toFormData","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","toString","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isFileList","isObjectPayload","contentType","_FormData","env","rawValue","parser","encoder","parse","e","stringifySafely","strictJSONParsing","ERR_BAD_RESPONSE","maxContentLength","maxBodyLength","validateStatus","Math","floor","callback","bind","axios","createInstance","defaultConfig","instance","extend","Cancel","all","promises","spread","TextCopies","acuityLink","prefix","ph","au","ca","nz","uk","countryPhone","country","website","businessNumber","email","address","countryAsAdjective","facebookLink","instagramLink","whatsappApiLink","experts","doctor","img","DrFred","imgText","DrNick","DrMeredith","DrJonathan","DrStock","DrMacfarlane","DrAayuMehmi","DrAndieFlynn","DrLara","DrNicole","DrAsemKaber","DrMarieEveBernat","DrAnnaSchwartz","DrSabaAteeque","DrJohnBatara","DrMarcusKramer","DrSuren","assessmentQuizLinks","schemaAddress","streetAddress","addressLocality","addressRegion","postalCode","addressCountry","KristenAnderson","BelleWoods","MarcEllis","JohnDavies","PaulineHall","DrParisaKakroodi","ERR_CANCELED","SliderOrangeArrowRight","thisArg","args","encode","serializedParams","parts","v","hashmarkIndex","cache","kindOf","str","kindOfTest","getPrototypeOf","isFunction","hasOwnProperty","TypedArray","Uint8Array","constructor","pattern","ArrayBuffer","isView","pipe","product","assignValue","a","b","stripBOM","content","charCodeAt","superConstructor","sourceObj","destObj","merged","getOwnPropertyNames","searchString","String","lastIndex","isAbsoluteURL","combineURLs","requestedURL"],"sourceRoot":""}