{"version":3,"sources":["Rest.tsx","components/Database.tsx","components/Funciones.tsx","components/Storage.tsx","components/Authentication.tsx","images/icon_alarmas.svg","images/icon_alimentos.svg","images/icon_detalle.svg","images/icon_plan.svg","images/icon_registro.svg","images/icon_videos.svg","images/logo.svg","components/AcrofitHeader.tsx","images/icon_alarma.svg","pages/AlarmasPage.tsx","images/banners/fondo_ingredientes.jpg","images/banners/fondo_light.jpg","images/banners/fondo_normal.jpg","images/banners/fondo_tipica.jpg","images/banners/fondo_bebidas.jpg","images/banners/fondo_snacks.jpg","images/alimento_gen.svg","components/BuscadorProductos.tsx","components/AddAlimento.tsx","pages/AlimentosPage.tsx","components/Alerts.tsx","images/obesidad.svg","images/sobrepeso.svg","images/normal.svg","images/delgado.svg","images/obesidad_trans.svg","images/sobrepeso_trans.svg","images/delgado_trans.svg","images/normal_trans.svg","components/ResumenIMC.tsx","images/icon_peso.svg","pages/HomePage.tsx","images/logo_acromax.svg","images/logo_salud.svg","pages/LoginPage.tsx","components/TablaCalorias.tsx","pages/PlanPage.tsx","pages/RegistroPage.tsx","pages/SigninPage.tsx","pages/SplashPage.tsx","pages/VideoPage.tsx","App.tsx","serviceWorkerRegistration.ts","reportWebVitals.ts","index.tsx","../node_modules/@ionic/core/dist/esm-es5 lazy /^/.//.*/.entry/.js$/ groupOptions: {} namespace object","../node_modules/ionicons/dist/esm-es5 lazy /^/.//.*/.entry/.js$/ groupOptions: {} namespace object"],"names":["HOST","window","location","protocol","concat","host","get","path","options","a","server","axios","setCommonConfigs","then","p","data","error","catch","cathError","post","console","log","response","status","localStorage","clear","href","_options","headers","db","usuarios","cat_actividades_fisicas","datos_iniciales","calorias_dia","params","alarmas","alimentos","pesos_semanales","version","stores","table","Dexie","LOCAL_CONFIG","months","split","monthsShort","monthsParseExact","weekdays","weekdaysShort","weekdaysMin","sync_calorias_dia","id","navigator","onLine","filter","f","toArray","items","items_del","response_items","length","bulkPut","clearAlarms","LocalNotifications","getPending","notifications","cancel","updateAlarma","requestPermissions","checkPermissions","display","alarma","c","moment","fecha","isSameOrAfter","startOf","parseInt","activo","setAlarmas","dias_alarma","formatMensajeCalorias","json_alarma","cont","cod","isAfter","push","title","horarios_comida","find","h","name","body","sound","smallIcon","schedule","at","toDate","every","add","forEach","cal","horario","horario_comida","detalle","cantidad","syncAlimentos","user","productos","soloNumeros","e","tecla","document","all","keyCode","which","tecla_final","String","fromCharCode","test","preventDefault","soloTexto","getItem","key","isPlatform","sessionStorage","Authentication","loginData","JSON","parse","undefined","login","login_obj","login_res","clearSession","put","value","setItem","logout","delete","open","AcrofitHeader","className","mode","style","textAlign","width","paddingTop","src","logo","alt","this","props","children","React","Component","AlarmasPage","state","onChange","target","detail","checked","last_update","format","setState","reduce","local_data","server_data","isBefore","color","icon","icon_alarma","slot","cancelText","onIonChange","desayuno","pickerFormat","displayFormat","media_manana","almuerzo","media_tarde","cena","withIonLifeCycle","BuscadorProductos","timeout","busqueda","selected","show","buscarChange","clearTimeout","setTimeout","buscar","estado","items_tmp","matchSorter","keys","onClick","onAdd","foto","alimento_gen","porcion","nombre","equivalencia","calorias","readonly","placeholder","isOpen","onDidDismiss","arrowBack","map","alimento","i","button","lines","sad","arrowUp","AgregarAlimentos","cur_item","tipo","verifyHorario","getHorarioComida","plus","parseFloat","toFixed","minus","sync","save","onSave","fecha_registro","datos_iniciales_id","setCurItem","cur_date","onAddAlimento","onDeleteAlimento","onChangeTipo","onClose","onWillPresent","onSubmit","rows","required","disabled","remove","type","step","max","min","expand","AlimentosPage","categoria","setCategoria","selectItem","onSaveAlimento","fondo_tipica","fondo_light","fondo_normal","fondo_ingredientes","fondo_bebidas","fondo_snacks","loader","ShowToast","message","header","callback","toast","createElement","position","duration","buttons","text","role","handler","appendChild","present","ShowLoader","HideLoader","dismiss","tabla_imc","M","variant","pos","img","delgado","img_trans","delgado_trans","normal","normal_trans","sobrepeso","sobrepeso_trans","obesidad","obesidad_trans","F","PanelResumen","imc","genero","valor_imc","heartHalf","marginBottom","height","buffer","tab","float","size","HomePage","graficosPesos","graficosCalorias","usuario","dias","peso_semanal","peso","mounted","init","pesos_semanales_sort","sort","b","diff","altura","refresh","clipboardOutline","peso_objetivo","onComplete","barChartOutline","ref","updateChart","fill","GraficoCalorias","pre_items","chartType","chartArea","legend","maxLines","vAxis","minValue","seriesType","series","legendToggle","GraficoPesos","ActualizarPeso","event","onSavePeso","respuesta","ReiniciarPlan","newData","plan","tmb","peso_ideal","onChangeIniciales","reiniciar","di","kilos_semanales","Math","abs","onChangePlan","actividad_fisica","fecha_nacimiento","valor","ac","edad","tasa_edad","tasa_altura","icon_peso","af","LoginPage","submit","replace","fullscreen","person","correo","password","routerLink","logo_acx","logo_ss","TablaCalorias","where","obs","ob","alimentoObj","deleteItem","item","confirm","total","total_variant","k","trash","codigo","PlanPage","tablas","semanas","total_semanas","semana","tabla","update","nextWeek","lastWeek","thisWeek","arrowBackSharp","arrowForwardSharp","dia","dayOfYear","RegistroPage","SigninPage","actividades_fisicas","steep","handleDatosPersonales","handleDatosIniciales","handleAlarmas","handleActivarAlarma","handleChangePlan","kilos","registrar","json","onNext","onChangePersonales","onBack","onChangeActivo","FormGenerales","routerDirection","onKeyPress","maxlength","justifyContent","logo_acromax","logo_salud","FormIniciales","monthShortNames","manOutline","womanOutline","barbell","FormAlarmas","FormSeleccionarPlan","tasa_peso","tasa_base","valor_ideal","SplashPage","API_KEY","VideoPage","active","pageToken","api","YoutubeDataAPI","searchPlaylistItems","order","nextPageToken","fetchData","videoId","snippet","resourceId","opts","video","thumbnails","high","url","onIonInfinite","loadingText","App","notification","initNotifications","PushNotifications","receive","addListener","token","FCM","getToken","r","err","subscribeTo","topic","register","exact","component","to","icon_detalle","icon_registro","icon_plan","icon_alimentos","icon_videos","image","link","Boolean","hostname","match","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","startApp","ReactDOM","render","StrictMode","getElementById","locale","addEventListener","serviceWorker","ready","registration","unregister","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","Error","code","ids","Object","module","exports"],"mappings":"qXAOMA,GALWC,OAAOC,SAASC,SACRC,OAAO,MAECA,OAAOH,OAAOC,SAASG,MAEyF,0EAGpIC,EAAG,uCAAG,WAAOC,EAAaC,GAApB,2BAAAC,EAAA,6DAAiDC,EAAjD,+BAAiEV,EAAjE,SACFW,IAAML,IAAII,EAAOH,EAAKK,EAAiBJ,IAC3CK,MAAM,SAAAC,GAAC,OAAIA,EAAEC,MAAQ,CAAEC,MAAO,gBAC9BC,MAAMC,GAHA,mFAAH,wDAOHC,EAAI,uCAAG,WAAOZ,EAAYQ,EAAUP,GAA7B,2BAAAC,EAAA,6DAA0DC,EAA1D,+BAA0EV,EAA1E,SACHW,IAAMQ,KAAKT,EAAOH,EAAKQ,EAAKH,EAAiBJ,IACjDK,MAAM,SAAAC,GAAC,OAAIA,EAAEC,MAAQ,CAAEC,MAAO,gBAC9BC,MAAMC,GAHC,mFAAH,0DAqBjB,SAASA,EAAUF,GAEf,OADAI,QAAQC,IAAIL,GACTA,GAASA,EAAMM,UACe,MAA1BN,EAAMM,SAASC,SACdtB,OAAOuB,aAAaC,QACpBxB,OAAOC,SAASwB,KAAO,UAEpBV,EAAMM,SAASP,MAAQ,CAAEC,MAAQ,mBAEjC,CAAEA,MAAQ,kBAazB,SAASJ,EAAiBJ,GACtB,IAAImB,EAAW,GAKf,OAJGnB,IACCmB,EAAQ,eAAOnB,IAEnBmB,EAASC,QAAT,eAAuBD,EAASC,SACzBD,E,ICfIE,EADJ,I,kDA9BP,aAAe,IAAD,8BACV,cAAM,0BAVHC,cASO,IARPC,6BAQO,IAPPC,qBAOO,IANPC,kBAMO,IALPC,YAKO,IAJPC,aAIO,IAHPC,eAGO,IAFPC,qBAEO,EAOV,EAAKC,QAAQ,GAAGC,OAAO,CACnBT,SAAU,yEACVC,wBAAyB,kBACzBC,gBAAiB,0FACjBC,aAAa,+FACbC,OAAO,cACPC,QAAQ,gFACRC,UAAU,yFACVC,gBAAgB,wCAIpB,EAAKP,SAAW,EAAKU,MAAM,YAC3B,EAAKT,wBAA0B,EAAKS,MAAM,2BAC1C,EAAKR,gBAAkB,EAAKQ,MAAM,mBAClC,EAAKP,aAAe,EAAKO,MAAM,gBAC/B,EAAKN,OAAS,EAAKM,MAAM,UACzB,EAAKL,QAAU,EAAKK,MAAM,WAC1B,EAAKJ,UAAY,EAAKI,MAAM,aAC5B,EAAKH,gBAAkB,EAAKG,MAAM,mBA1BxB,E,gBAVYC,I,yBCHjBC,EAAe,CAC1BC,OAAS,2FAA2FC,MAAM,KAC1GC,YAAc,kDAAkDD,MAAM,KACtEE,kBAAmB,EACnBC,SAAW,qEAA+DH,MAAM,KAChFI,cAAgB,8BAA8BJ,MAAM,KACpDK,YAAc,uBAAuBL,MAAM,MAGtC,SAAeM,EAAtB,kC,4CAAO,WAAiClB,GAAjC,mBAAAvB,EAAA,2DACAuB,GAAmBA,EAAgBmB,IAAMlD,OAAOmD,UAAUC,QAD1D,iCAEmBxB,EAAGI,aAAaqB,QAAO,SAAAC,GAAC,OAAKA,EAAEJ,MAAIK,UAFtD,cAEKC,EAFL,gBAGuB5B,EAAGI,aAAaqB,QAAO,SAAAC,GAAC,MAAU,MAANA,EAAEJ,MAAUK,UAH/D,cAGKE,EAHL,gBAI4BvC,EAAK,qBAAqBa,EAAgBmB,GAAG,CAACM,QAAMC,cAJhF,cAIKC,EAJL,iBAKK9B,EAAGI,aAAaR,QALrB,YAMEkC,IAAkBA,EAAeC,OANnC,kCAOO/B,EAAGI,aAAa4B,QAAQF,GAP/B,6C,sBAYA,SAAeG,IAAtB,+B,4CAAO,4BAAArD,EAAA,sEACiBsD,IAAmBC,aADpC,aACC7B,EADD,QAEM8B,cAAcL,OAAS,GAF7B,gCAGGG,IAAmBG,OAAO/B,GAH7B,4C,sBAOA,SAAegC,IAAtB,+B,4CAAO,gCAAA1D,EAAA,sEACCsD,IAAmBK,qBADpB,uBAEoBL,IAAmBM,mBAFvC,UAGqB,WAHrB,OAGSC,QAHT,iCAIkBzC,EAAGM,QAAQqB,UAJ7B,cAIGe,EAJH,iBAK2B1C,EAAGG,gBAAgBwB,UAL9C,eAKGxB,EALH,iBAMwBH,EAAGI,aAAaqB,QAAO,SAAAkB,GAAC,OAAIC,IAAOD,EAAEE,OAAOC,cAAcF,MAASG,QAAQ,SAASC,SAASL,EAAErB,IAAI,KAAGK,UAN9H,eAMGvB,EANH,iBAOG6B,IAPH,QAQES,EAAOX,OAAS,GAAK5B,EAAgB4B,OAAS,GAAKiB,SAASN,EAAO,GAAGO,QAAQ,GAE/EC,EAAWR,EAAO,GAAGvC,EAAgB,GAAGC,GAVzC,6C,+BAgBQ8C,E,kFAAf,WAA0BR,EAAWvC,EAAgCC,GAArE,yBAAAxB,EAAA,sDAKE,IAAQiE,KAHFM,EAAcC,EAAsBhD,GACpCiD,EAAc,GAChBC,EAAO,EACMH,EACf,IAAQI,KADoB,EAAD,SACnBA,GAC8C,IAAD,EAAhDX,IAAOC,EAAM,IAAIH,EAAOa,IAAMC,QAAQZ,QACvCS,EAAYI,KAAK,CACfnC,GAAGgC,IACHI,MAAO,0BAAeC,EAAgBC,MAAK,SAAAC,GAAC,OAAIA,EAAEN,MAAQA,YAAnD,aAAe,EAA0CO,MAChEC,KAAMZ,EAAYN,GAAOU,GACzBS,MAAO,qBACPC,UAAU,eACVC,SAAU,CACRC,GAAIvB,IAAOC,EAAM,IAAIH,EAAOa,IAAMa,aAT3BjB,EAAYN,GAAQ,EAA3BU,GANZ,OAqBEF,EAAYI,KAAK,CACfnC,GAAGgC,EACHI,MAAM,mBACNK,KAAK,6DACLE,UAAU,8BACVC,SAAU,CACRG,MAAO,OACPF,GAAIvB,MAASG,QAAQ,WAAWuB,IAAI,EAAG,QAAQvB,QAAQ,OAAOuB,IAAI,GAAG,SAASF,YA5BpF,SA+BQlC,IAAmBgC,SAAS,CAChC9B,cAAciB,IAhClB,4C,sBAoCO,SAASD,EAAsBhD,GACpC,IAAM+C,EAAc,GAapB,OAZA/C,EAAamE,SAAQ,SAAAC,GACnB,IAAMC,EAAUd,EAAgBC,MAAK,SAAAC,GAAC,OAAIA,EAAEC,MAAQU,EAAIE,kBACrDD,IACGtB,EAAYqB,EAAI3B,SAClBM,EAAYqB,EAAI3B,OAAS,IAEvBM,EAAYqB,EAAI3B,OAAO4B,EAAQlB,OACjCJ,EAAYqB,EAAI3B,OAAO4B,EAAQlB,KAAO,IAExCJ,EAAYqB,EAAI3B,OAAO4B,EAAQlB,MAAMiB,EAAIG,QAAQ,MAAMH,EAAII,UAAU,GAAG,SAGrEzB,EAGF,IAAMQ,EAAkB,CAC7B,CAACG,KAAK,WAAWP,IAAI,YACrB,CAACO,KAAK,kBAAeP,IAAI,gBACzB,CAACO,KAAK,WAAWP,IAAI,YACrB,CAACO,KAAK,cAAcP,IAAI,eACxB,CAACO,KAAK,OAAOP,IAAI,SAQNsB,EAAa,uCAAG,8BAAAjG,EAAA,0DACxB2C,UAAUC,OADc,gCAEJxB,EAAGC,SAAS0B,UAFR,cAEjBmD,EAFiB,gBAGCrG,EAAI,sBAAsBqG,EAAK,GAAGxD,IAHnC,cAGjByD,EAHiB,gBAIjB/E,EAAGO,UAAUyB,QAAQ+C,GAJJ,2CAAH,qDAQnB,SAASC,EAAYC,GAC1B,IAAIC,EAASC,SAASC,IAAOH,EAAEI,QAAUJ,EAAEK,MAG3C,GAAa,GAATJ,GAAuB,GAATA,GAAuB,IAATA,GAAwB,IAATA,GAAwB,IAATA,GAAwB,IAATA,GAAwB,IAATA,EACxF,OAAO,EAIX,IACIK,EAAcC,OAAOC,aAAaP,GACtC,QAFa,QAEFQ,KAAKH,KACdN,EAAEU,kBACK,GAKJ,SAASC,EAAUX,GACtB,IAAIC,EAASC,SAASC,IAAOH,EAAEI,QAAUJ,EAAEK,MAG3C,GAAa,GAATJ,GAAuB,GAATA,GAAuB,IAATA,GAAwB,IAATA,GAAwB,IAATA,GAAwB,IAATA,GAAwB,IAATA,EACxF,OAAO,EAIX,IACIK,EAAcC,OAAOC,aAAaP,GACtC,QAFa,2DAEFQ,KAAKH,KACdN,EAAEU,kBACK,GC1IN,SAASE,EAAQC,GACpB,OAAGC,aAAW,WACH3H,OAAO4H,eAAeH,QAAQC,GAE9B1H,OAAOuB,aAAakG,QAAQC,GCbpC,IAAMG,EAAiB,CAC5BC,UAAWL,EAAQ,iBAAmBM,KAAKC,MAAMP,EAAQ,kBAAkB,WAAQQ,EACnFC,MAAM,WAAD,4BAAE,WAAOC,GAAP,eAAA3H,EAAA,sEACmBU,EAAK,QAAQiH,GADhC,UACCC,EADD,OAELjH,QAAQC,IAAIgH,GACRA,EAAUrH,MAHT,iCAIKsH,IAJL,uBAKKzG,EAAGC,SAASyG,IAAIF,EAAUvG,UAL/B,wBAMKD,EAAGG,gBAAgBuG,IAAIF,EAAUrG,iBANtC,yBAOKH,EAAGM,QAAQoG,IAAIF,EAAUlG,SAP9B,yBAQKN,EAAGQ,gBAAgBwB,QAAQwE,EAAUhG,iBAR1C,yBASK8B,IATL,eDTewD,ECmBR,gBDnBmBa,ECmBH,ODlBzBZ,aAAW,WACV3H,OAAO4H,eAAeY,QAAQd,EAAIa,GAElCvI,OAAOuB,aAAaiH,QAAQd,EAAIa,GCK/B,kBAWM,CAAClH,UAAS,IAXhB,iCAaI,CAACA,UAAS,EAAMN,MAAMqH,EAAUrH,QAbpC,kCDTF,IAAiB2G,EAAWa,ICS1B,OAAF,mDAAC,GAgBNE,OAAO,WAAD,4BAAE,sBAAAjI,EAAA,sEACA6H,IADA,OAENR,EAAeC,eAAYG,EAC3BjI,OAAOC,SAASwB,KAAO,SAHjB,2CAAF,kDAAC,I,SAUM4G,I,2EAAf,sBAAA7H,EAAA,6DACER,OAAO4H,eAAepG,QACtBxB,OAAOuB,aAAaC,QAFtB,SAGQI,EAAG8G,SAHX,uBAIQ9G,EAAG+G,OAJX,uBAMQ9E,IANR,4C,sBCrCe,UAA0B,yCCA1B,MAA0B,2CCA1B,MAA0B,yCCA1B,MAA0B,sCCA1B,OAA0B,0CCA1B,OAA0B,wCCA1B,OAA0B,iC,QCIpB+E,G,4JAEjB,WACI,OACI,gBAAC,IAAD,CAAWC,UAAU,uBAAuBC,KAAK,KAAjD,UACI,eAAC,IAAD,UACI,sBAAKC,MAAO,CAACC,UAAU,SAAS3E,QAAQ,QAAQ4E,MAAM,OAAOC,WAAW,IAAxE,SACI,sBAAKC,IAAKC,GAAMC,IAAI,UAAUJ,MAAO,UAIzCK,KAAKC,MAAMC,gB,GAXYC,IAAMC,WCJlC,OAA0B,wCCUnCC,G,4MAEFC,MAAQ,CACJtF,OAAO,I,EAoBXuF,S,uCAAY,WAAOhD,GAAP,iBAAArG,EAAA,2DACO,EAAKoJ,MAAftF,EADG,EACHA,OACc,WAAlBuC,EAAEiD,OAAOpE,KACVpB,EAAOuC,EAAEiD,OAAOpE,MAAQmB,EAAEkD,OAAOC,QAAQ,IAAI,IAE7C1F,EAAOuC,EAAEiD,OAAOpE,MAAQmB,EAAEkD,OAAOxB,MAEnCjE,EAAO2F,YAAczF,MAAS0F,OAAO,wBAClC/G,UAAUC,OARH,gCASFlC,EAAK,UAAUoD,GATb,uBAWJ1C,EAAGM,QAAQoG,IAAIhE,GAXX,wBAYJ,EAAK6F,SAAS,CAAC7F,WAZX,yBAaJJ,IAbI,4C,kJAjBZ,oCAAA1D,EAAA,0DACO2C,UAAUC,OADjB,iCAEkCxB,EAAGC,SAAS0B,UAF9C,8BAEyD6G,QAAO,SAAA9G,GAAC,OAAIA,KAFrE,uBAEeJ,EAFf,EAEeA,GAFf,SAGwCtB,EAAGM,QAAQqB,UAHnD,+BAG8D6G,QAAO,SAAA5J,GAAC,OAAIA,KAH1E,eAGc6J,EAHd,iBAIkChK,EAAI,WAAW6C,GAJjD,WAIcoH,EAJd,OAKYD,EAAWJ,cAAezF,IAAO6F,EAAWJ,aAAaM,SAAS/F,IAAO8F,EAAYL,cALjG,kCAMgBrI,EAAGM,QAAQoG,IAAIgC,GAN/B,oCAQgB9F,IAAO8F,EAAYL,aAAaM,SAAS/F,IAAO6F,EAAWJ,cAR3E,kCASgB/I,EAAK,UAAUmJ,GAT/B,yBAYkCzI,EAAGM,QAAQqB,UAZ7C,gCAYwD6G,QAAO,SAAA5J,GAAC,OAAIA,KAZpE,eAYY8D,EAZZ,iBAaYgF,KAAKa,SAAS,CAAC7F,WAb3B,yBAcYJ,IAdZ,iD,0EAiCA,WACI,IAAOI,EAAUgF,KAAKM,MAAftF,OACP,OACI,gBAAC,IAAD,WACI,eAAC,GAAD,IACA,gBAAC,IAAD,CAAYuE,UAAU,QAAtB,UACI,eAAC,IAAD,CAAS2B,MAAM,UAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,uBACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAavB,KAAKO,SAAUtB,MAAOjE,EAAOwG,SAAUpF,KAAK,WAAWqF,aAAa,QAAQC,cAAc,iBAI1J,eAAC,IAAD,CAASR,MAAM,YAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,8BACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAavB,KAAKO,SAAUtB,MAAOjE,EAAO2G,aAAcvF,KAAK,eAAeqF,aAAa,QAAQC,cAAc,iBAIlK,eAAC,IAAD,CAASR,MAAM,WAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,uBACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAavB,KAAKO,SAAUtB,MAAOjE,EAAO4G,SAAUxF,KAAK,WAAWqF,aAAa,QAAQC,cAAc,iBAI1J,eAAC,IAAD,CAASR,MAAM,UAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,0BACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAavB,KAAKO,SAAUtB,MAAOjE,EAAO6G,YAAazF,KAAK,cAAcqF,aAAa,QAAQC,cAAc,iBAIhK,eAAC,IAAD,CAASR,MAAM,UAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,mBACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAavB,KAAKO,SAAUtB,MAAOjE,EAAO8G,KAAM1F,KAAK,OAAOqF,aAAa,QAAQC,cAAc,iBAIlJ,eAAC,IAAD,CAASR,MAAM,SAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAAaG,KAAK,QAAQH,MAAM,SAAS9E,KAAK,SAASsE,QAA2B,MAAlB1F,EAAOO,OAAgBgG,YAAavB,KAAKO,WACzG,eAAC,IAAD,8C,GA9FVJ,IAAMC,WAwGjB2B,gBAAiB1B,IClHjB,OAA0B,+CCA1B,OAA0B,wCCA1B,OAA0B,yCCA1B,OAA0B,yCCA1B,OAA0B,0CCA1B,OAA0B,yCCA1B,OAA0B,yC,kBCWpB2B,G,4MAEjBC,QAAU,G,EAEV3B,MAAQ,CACJpG,MAAO,GACPgI,SAAU,GACVC,SAAU,GACVvJ,QAAS,GACTwJ,MAAK,G,EAGTC,a,uCAAe,WAAO9E,GAAP,SAAArG,EAAA,sEACL,EAAK2J,SAAS,CAACqB,SAAS3E,EAAEiD,OAAOvB,QAD5B,OAEXqD,aAAa,EAAKL,SAClB,EAAKA,QAAUM,YAAW,kBAAM,EAAKC,WAAS,KAHnC,2C,wDAMfA,O,sBAAS,gCAAAtL,EAAA,6DACEgL,EAAY,EAAK5B,MAAjB4B,SADF,SAEmB5J,EAAGO,UAAUkB,QAAO,SAAAxC,GAAC,MAAgB,KAAZA,EAAEkL,UAAexI,UAF7D,cAECyI,EAFD,OAGCxI,EAAQyI,aAAYD,EAAUR,EAAS,CAACU,KAAK,CAAC,YAH/C,SAIC,EAAK/B,SAAS,CAAC3G,UAJhB,2C,EAOT2I,QAAU,SAACV,IAEPW,EADgB,EAAK7C,MAAd6C,OACDX,GACN,EAAKtB,SAAS,CAACsB,WAASC,MAAK,K,4CAGjC,WAAS,IAAD,OACJ,EAAuCpC,KAAKM,MAArCpG,EAAP,EAAOA,MAAMiI,EAAb,EAAaA,SAASC,EAAtB,EAAsBA,KAAKF,EAA3B,EAA2BA,SAC3B,OACA,uCAEYC,EAASvI,GACR,gBAAC,IAAD,WACI,eAAC,IAAD,CAAWyH,KAAK,QAASwB,QAAS,kBAAM,EAAKhC,SAAS,CAACuB,MAAK,KAA5D,SACG,sBAAKvC,IAAKsC,EAASY,MAAMC,OAE7B,gBAAC,IAAD,CAAWH,QAAS,kBAAM,EAAKhC,SAAS,CAACuB,MAAK,KAA9C,UACI,iCAAO,6BAAID,EAASc,YACpB,gCAAKd,EAASe,OAAd,OACCf,EAASgB,aACN,6BAAIhB,EAASgB,eAChB,QAEL,gBAAC,IAAD,CAAU9B,KAAK,MAAOwB,QAAS,kBAAM,EAAKhC,SAAS,CAACuB,MAAK,KAAzD,UAAkED,EAASiB,SAA3E,aAGJ,eAAC,IAAD,CAASP,QAAS,kBAAM,EAAKhC,SAAS,CAACuB,MAAK,KAA5C,SACI,eAAC,IAAD,CAAUiB,UAAQ,EAACC,YAAY,wBAI3C,gBAAC,IAAD,CAAUC,OAAQnB,EAAMoB,aAAc,kBAAM,EAAK3C,SAAS,CAACuB,MAAK,KAAhE,UACI,gBAAC,IAAD,CAAW5C,KAAK,KAAhB,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAY6B,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS,kBAAM,EAAKhC,SAAS,CAACuB,MAAK,KAA9C,SACI,eAAC,IAAD,CAASjB,KAAMsC,UAGvB,eAAC,IAAD,uCAEJ,eAAC,IAAD,UACI,eAAC,IAAD,CAAcH,YAAY,qBAAqB/B,YAAavB,KAAKqC,oBAGzE,eAAC,IAAD,UACI,eAAC,IAAD,UAEQH,EACAhI,EAAMG,OAAO,EACTH,EAAMwJ,KAAI,SAACC,EAASC,GAAV,OACN,gBAAC,IAAD,CAAiBC,QAAM,EAAChB,QAAS,kBAAM,EAAKA,QAAQc,IAApD,UACI,eAAC,IAAD,CAAWtC,KAAK,QAAhB,SACI,sBAAKxB,IAAK8D,EAASZ,MAAMC,OAE7B,gBAAC,IAAD,WACI,iCAAO,6BAAIW,EAASV,YACpB,gCAAKU,EAAST,OAAd,OACCS,EAASR,aACN,6BAAIQ,EAASR,eAChB,QAEL,gBAAC,IAAD,CAAU9B,KAAK,MAAf,UAAsBsC,EAASP,SAA/B,YAXUQ,MAcrB,eAAC,IAAD,CAASE,MAAM,OAAf,SAAsB,wBAAMrE,MAAO,CAACC,UAAU,UAAxB,UAAmC,eAAC,IAAD,CAASyB,KAAM4C,MAAlD,6CACtB,eAAC,IAAD,CAASD,MAAM,OAAf,SAAsB,wBAAMrE,MAAO,CAACC,UAAU,UAAxB,UAAmC,eAAC,IAAD,CAASyB,KAAM6C,MAAlD,6D,GA3FJ7D,IAAMC,WCEhC6D,G,4MAEjB3D,MAAQ,CACJ4D,SAAS,CACPhH,SAAS,KAEXzE,gBAAgB,GAChBG,QAAQ,GACR+K,cAAShF,EACTwF,KAAK,K,EASTC,cAAgB,WACZ,IAEsB,EAFfF,EAAY,EAAK5D,MAAjB4D,SACAP,EAAY,EAAK1D,MAAjB0D,SACJ,EAAK1D,MAAMlD,QACVmH,EAASlH,eAAT,UAA0B,EAAKiD,MAAMlD,eAArC,aAA0B,EAAoBX,KAE9C8H,EAASlH,eAAiB,EAAKqH,mBAEhCV,IACCO,EAASjH,QAAU0G,EAAST,OAC5BgB,EAASd,SAAWO,EAASP,SAC7Bc,EAAShH,SAAW,IACpBgH,EAASP,SAAWA,EAAS/J,IAEjC,EAAKiH,SAAS,CAACqD,WAASP,c,EAG5BW,KAAO,WACH,IAAOJ,EAAY,EAAK5D,MAAjB4D,SACDP,EAAW,EAAK1D,MAAM0D,SAAS,EAAK1D,MAAM0D,SAAS,EAAKrD,MAAMqD,SACpEO,EAAShH,UAAYqH,WAAWL,EAAShH,UAAU,IAAK,IAAKqH,WAAWL,EAAShH,UAAU,GAAGsH,QAAQ,GACnGb,IACCO,EAASd,UAAYmB,WAAWZ,EAASP,UAAUmB,WAAWL,EAAShH,WAAWsH,QAAQ,IAE9F,EAAK3D,SAAS,CAACqD,c,EAGnBO,MAAQ,WACJ,IAAOP,EAAY,EAAK5D,MAAjB4D,SACDP,EAAW,EAAK1D,MAAM0D,SAAS,EAAK1D,MAAM0D,SAAS,EAAKrD,MAAMqD,SACpEO,EAAShH,UAAYqH,WAAWL,EAAShH,WAAW,EAAE,EAAEqH,WAAWL,EAAShH,UAAU,GAAGsH,QAAQ,GAC9Fb,IACCO,EAASd,UAAYmB,WAAWZ,EAASP,UAAUmB,WAAWL,EAAShH,WAAWsH,QAAQ,IAE9F,EAAK3D,SAAS,CAACqD,c,EAGnBQ,K,sBAAO,kCAAAxN,EAAA,4DACIuB,EAAmB,EAAK6H,MAAxB7H,kBACeA,EAAgBmB,IAAMC,UAAUC,QAFnD,iCAGqBxB,EAAGI,aAAaqB,QAAO,SAAAC,GAAC,OAAKA,EAAEJ,MAAIK,UAHxD,cAGOC,EAHP,gBAIyB5B,EAAGI,aAAaqB,QAAO,SAAAC,GAAC,OAAqB,GAAjBsB,SAAStB,EAAEJ,OAASK,UAJzE,cAIOE,EAJP,iBAK8BvC,EAAK,qBAAqBa,EAAgBmB,GAAG,CAACM,QAAMC,cALlF,eAKOC,EALP,iBAMO9B,EAAGI,aAAaR,QANvB,yBAOOI,EAAGI,aAAa4B,QAAQF,GAP/B,4C,EAWPuK,K,uCAAO,WAAOpH,GAAP,2BAAArG,EAAA,6DACHqG,EAAEU,iBADC,EAEgC,EAAKqC,MAAjC4D,EAFJ,EAEIA,SAASzL,EAFb,EAEaA,gBAFb,EAGoB,EAAKwH,MAArB2E,EAHJ,EAGIA,OAAOzJ,EAHX,EAGWA,MACRwI,EAAW,EAAK1D,MAAM0D,SAAS,EAAK1D,MAAM0D,SAAS,EAAKrD,MAAMqD,SAChEO,EAASlH,iBACTkH,EAASlH,eAAiB,EAAKqH,oBAEnCH,EAAS/I,MAAQD,IAAOC,GAAOyF,OAAO,cACtCsD,EAASW,eAAiB3J,MAAS0F,OAAO,uBAC1CsD,EAASY,mBAAqBrM,EAAgBmB,GAC3C+J,GAAYA,EAAS/J,KACxBsK,EAASd,UAAYmB,WAAWZ,EAASP,UAAUmB,WAAWL,EAAShH,WAAWsH,QAAQ,GAC1FN,EAASP,SAAWA,EAAS/J,GAC7BsK,EAASjH,QAAU0G,EAASV,QAAQ,OAAOU,EAAST,QAdjD,UAgBG5K,EAAGI,aAAasG,IAAIkF,GAhBvB,yBAiBG,EAAKrD,SAAS,CAACqD,SAAS,CAAChH,SAAS,KAAKyG,SAAS,KAjBnD,yBAkBG,EAAKe,OAlBR,yBAmBG9J,IAnBH,QAoBHgK,EAAOV,GApBJ,4C,wDAuBPa,WAAa,SAACxH,GACV,IAAK2G,EAAY,EAAK5D,MAAjB4D,SACCP,EAAW,EAAK1D,MAAM0D,SAAS,EAAK1D,MAAM0D,SAAS,EAAKrD,MAAMqD,SACpEO,EAAQ,2BAAOA,GAAP,mBAAiB3G,EAAEiD,OAAOpE,KAAMmB,EAAEkD,OAAOxB,QAC9C0E,IACCO,EAASd,UAAYmB,WAAWZ,EAASP,UAAUmB,WAAWL,EAAShH,WAAWsH,QAAQ,IAE9F,EAAK3D,SAAS,CAACqD,c,EAGnBG,iBAAmB,WACf,IAAOzL,EAAW,EAAK0H,MAAhB1H,QACAmE,EAAW,EAAKkD,MAAhBlD,QACP,GAAGA,GAAWA,EAAQX,KAClB,OAAOW,EAAQX,KAEnB,IAAIY,EAAiB,OACfgI,EAAW9J,MAajB,OAZG8J,EAAS/D,SAAS/F,IAAO8J,EAASpE,OAAO,cAAc,IAAIhI,EAAQ+I,eAClE3E,EAAiB,WAEbgI,EAAS/D,SAAS/F,IAAO8J,EAASpE,OAAO,cAAc,IAAIhI,EAAQgJ,WACvE5E,EAAiB,kBAEbgI,EAAS/D,SAAS/F,IAAO8J,EAASpE,OAAO,cAAc,IAAIhI,EAAQiJ,cACvE7E,EAAiB,WAEbgI,EAAS/D,SAAS/F,IAAO8J,EAASpE,OAAO,cAAc,IAAIhI,EAAQkJ,SACvE9E,EAAiB,eAEdA,G,EAGXiI,c,uCAAgB,WAAOtB,GAAP,eAAAzM,EAAA,6DACLgN,EAAY,EAAK5D,MAAjB4D,UACEP,SAAWA,EAAS/J,GAC7BsK,EAASd,SAAWO,EAASP,SAC7Bc,EAASjH,QAAU0G,EAASV,QAAQ,OAAOU,EAAST,OACpDgB,EAAShH,SAAW,IALR,SAMN,EAAK2D,SAAS,CAACqD,WAASP,aANlB,2C,wDAShBuB,iB,sBAAmB,sBAAAhO,EAAA,sEACT,EAAK2J,SAAS,CAACqD,SAAS,CAACd,SAAS,EAAElG,SAAS,GAAGyG,SAAS,OADhD,2C,EAInBwB,aAAe,SAAC5H,GACZ,IAAO2G,EAAY,EAAK5D,MAAjB4D,SACe,MAAnB3G,EAAEkD,OAAOxB,OACRiF,EAASP,SAAW,GACpB,EAAK9C,SAAS,CAACsD,KAAK5G,EAAEkD,OAAOxB,MAAM0E,cAAShF,MAE5CuF,EAASjH,QAAU,GACnB,EAAK4D,SAAS,CAACsD,KAAK5G,EAAEkD,OAAOxB,MAAMiF,e,8FAlI3C,8BAAAhN,EAAA,sEACkCoB,EAAGG,gBAAgBwB,UADrD,cACUxB,EADV,gBAE0BH,EAAGM,QAAQqB,UAFrC,cAEUrB,EAFV,gBAGUoH,KAAKa,SAAS,CAACpI,gBAAgBA,EAAgB,GAAGG,QAAQA,EAAQ,KAH5E,gD,0EAsIA,WACI,MAAwBoH,KAAKM,MAAtB4D,EAAP,EAAOA,SAASC,EAAhB,EAAgBA,KAChB,EAAkCnE,KAAKC,MAAhC0D,EAAP,EAAOA,SAASJ,EAAhB,EAAgBA,OAAO6B,EAAvB,EAAuBA,QACvB,OACI,gBAAC,IAAD,CAAU7B,OAAQA,EAAQC,aAAc4B,EAASC,cAAerF,KAAKoE,cAArE,UACI,eAAC,IAAD,CAAW5E,KAAK,KAAhB,SACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAY6B,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWwB,QAASuC,EAApB,SAA6B,eAAC,IAAD,CAASjE,KAAMsC,UAEhD,eAAC,IAAD,oCAKR,eAAC,IAAD,UACI,uBAAM6B,SAAUtF,KAAK2E,KAArB,SACI,gBAAC,IAAD,WACI,eAAC,IAAD,yBAEKhB,GACG,eAAC,IAAD,CAASG,MAAM,OAAf,SACI,gBAAC,IAAD,CAAYtE,KAAK,MAAMP,MAAOkF,EAAM5C,YAAavB,KAAKmF,aAAtD,UACI,eAAC,IAAD,CAAkBlG,MAAM,IAAxB,oBACA,eAAC,IAAD,CAAkBA,MAAM,IAAxB,+BAMZ0E,EACI,eAAC,IAAD,UACI,gCAAI,iCAAQA,EAASV,UAAgB,wBAAMU,EAAST,YAG/C,MAATiB,EACA,eAAC,GAAD,CAAmBrB,MAAO9C,KAAKiF,gBAE/B,eAAC,IAAD,UACI,eAAC,IAAD,CAAahG,MAAOiF,EAASjH,QAASsI,KAAM,EAAGjC,YAAY,uBAAuBlH,KAAK,UAAUmF,YAAavB,KAAK+E,WAAYS,UAAQ,MAKnJ,eAAC,IAAD,IACA,gBAAC,IAAD,WACI,eAAC,IAAD,CAAYnE,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS7C,KAAKyE,MAAOgB,SAAUlB,WAAWL,EAAShH,WAAW,EAAzE,SAA4E,eAAC,IAAD,CAASiE,KAAMuE,UAE/F,eAAC,IAAD,CAAYrE,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS7C,KAAKsE,KAAMmB,SAAUlB,WAAWL,EAAShH,WAAW,IAAxE,SAA6E,eAAC,IAAD,CAASiE,KAAMvE,UAEhG,eAAC,IAAD,wBACA,eAAC,IAAD,CAAU2C,UAAU,kBAAkBoG,KAAK,SAASC,KAAK,MAAMC,IAAI,MAAMC,IAAI,IAAI7G,MAAOiF,EAAShH,SAAUd,KAAK,WAAWmF,YAAavB,KAAK+E,WAAYzB,YAAY,WAAWkC,UAAQ,OAE5L,gBAAC,IAAD,WACI,eAAC,IAAD,2BACA,eAAC,IAAD,CAAUjG,UAAU,iBAAiBoG,KAAK,SAASC,KAAK,IAAIC,IAAI,QAAQC,IAAI,IAAI7G,MAAOiF,EAASd,SAAUhH,KAAK,WAAWmF,YAAavB,KAAK+E,WAAYzB,YAAY,cAAWkC,UAAQ,OAE3L,gBAAC,IAAD,WACI,eAAC,IAAD,uBACA,eAAC,IAAD,CAAWvG,MAAOiF,EAASlH,eAAgBZ,KAAK,iBAAiBmF,YAAavB,KAAK+E,WAAYzB,YAAY,wBAA3G,SAEQrH,EAAgByH,KAAI,SAAC3G,EAAQ6G,GAAT,OAChB,eAAC,IAAD,UAA0B7G,EAAQX,MAAZwH,WAKtC,eAAC,IAAD,CAAWmC,OAAO,QAAQJ,KAAK,SAA/B,mC,GAvNkBxF,IAAMC,WCM9C4F,G,4MAEF/D,QAAU,K,EAEV3B,MAAQ,CACJpG,MAAM,GACN+L,UAAU,KACVtC,cAAShF,EACTuD,SAAS,GACTqB,QAAO,G,EAOXlB,a,uCAAe,WAAO9E,GAAP,SAAArG,EAAA,sEACP,EAAK2J,SAAS,CAACqB,SAAS3E,EAAEiD,OAAOvB,QAD1B,OAEbqD,aAAa,EAAKL,SAClB,EAAKA,QAAUM,YAAW,kBAAM,EAAKC,WAAS,KAHjC,2C,wDAMfA,O,sBAAS,oCAAAtL,EAAA,+DACsB,EAAKoJ,MAA3B4B,EADA,EACAA,SAAS+D,EADT,EACSA,UADT,SAEiB3N,EAAGO,UAAUkB,QAAO,SAAAxC,GAAC,MAAgB,KAAZA,EAAEkL,QAAiBlL,EAAE0O,WAAaA,KAAWhM,UAFvF,cAEDyI,EAFC,OAGDxI,EAAQyI,aAAYD,EAAUR,EAAS,CAACU,KAAK,CAAC,YAH7C,SAID,EAAK/B,SAAS,CAAC3G,UAJd,2C,EAOTgM,a,uCAAe,WAAOD,GAAP,SAAA/O,EAAA,sEACL,EAAK2J,SAAS,CAACoF,YAAU/D,SAAS,KAD7B,uBAEL,EAAKM,SAFA,2C,wDAKf2D,WAAa,SAACxC,GACV,EAAK9C,SAAS,CAAC8C,WAASJ,QAAO,K,EAGnC6C,eAAiB,WACb1P,OAAOC,SAASwB,KAAO,a,4FA3B3B,sBAAAjB,EAAA,sEACUiG,IADV,2C,0EA8BA,WAAS,IAAD,OACJ,EAAmD6C,KAAKM,MAAjD2F,EAAP,EAAOA,UAAU/L,EAAjB,EAAiBA,MAAMgI,EAAvB,EAAuBA,SAASqB,EAAhC,EAAgCA,OAAOI,EAAvC,EAAuCA,SACvC,OACI,gBAAC,IAAD,WACI,eAAC,GAAD,UAEQsC,GACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAY5E,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS,SAAAtF,GAAC,OAAI,EAAKsD,SAAS,CAACoF,UAAU,KAAK/D,SAAS,QAAhE,SAAwE,eAAC,IAAD,CAASf,KAAMsC,UAE3F,eAAC,IAAD,CAAcH,YAAY,SAASrE,MAAOiD,EAAUX,YAAavB,KAAKqC,oBAKtF,eAAC,IAAD,CAAY9C,UAAU,QAAtB,SAEQ0G,EACI,eAAC,IAAD,CAAS1G,UAAU,QAAnB,SAEQrF,EAAMG,OAAO,EACbH,EAAMwJ,KAAI,SAACC,EAASC,GAAV,OAEV,gBAAC,IAAD,CAAiBC,QAAM,EAAChB,QAAS,kBAAM,EAAKsD,WAAWxC,IAAWpE,UAAU,cAA5E,UACI,eAAC,IAAD,CAAW8B,KAAK,QAAhB,SACI,sBAAKxB,IAAK8D,EAASZ,MAAMC,OAE7B,gBAAC,IAAD,WACI,iCAAO,6BAAIW,EAASV,YACpB,gCAAKU,EAAST,OAAd,OACCS,EAASR,aACN,6BAAIQ,EAASR,eAChB,QAEL,gBAAC,IAAD,CAAU9B,KAAK,MAAf,UAAsBsC,EAASP,SAA/B,YAXUQ,MAcb,eAAC,IAAD,CAASE,MAAM,OAAf,SAAsB,wBAAMrE,MAAO,CAACC,UAAU,UAAxB,UAAmC,eAAC,IAAD,CAASyB,KAAM4C,MAAlD,+CAI/B,gBAAC,IAAD,CAASD,MAAM,OAAOvE,UAAU,QAAhC,UACI,eAAC,IAAD,CAASsE,QAAM,EAAChB,QAAS,SAAAtF,GAAC,OAAI,EAAK2I,aAAa,MAAhD,SACI,sBAAKrG,IAAKwG,OAEd,eAAC,IAAD,CAASxD,QAAS,SAAAtF,GAAC,OAAI,EAAK2I,aAAa,MAAMrC,QAAM,EAArD,SACI,sBAAKhE,IAAKyG,OAEd,eAAC,IAAD,CAASzC,QAAM,EAAChB,QAAS,SAAAtF,GAAC,OAAI,EAAK2I,aAAa,MAAhD,SACI,sBAAKrG,IAAK0G,OAEd,eAAC,IAAD,CAAS1C,QAAM,EAAChB,QAAS,SAAAtF,GAAC,OAAI,EAAK2I,aAAa,MAAhD,SACI,sBAAKrG,IAAK2G,OAEd,eAAC,IAAD,CAAU3C,QAAM,EAAChB,QAAS,SAAAtF,GAAC,OAAI,EAAK2I,aAAa,MAAjD,SACI,sBAAKrG,IAAK4G,OAEd,eAAC,IAAD,CAAS5C,QAAM,EAAChB,QAAS,SAAAtF,GAAC,OAAI,EAAK2I,aAAa,MAAhD,SACI,sBAAKrG,IAAK6G,YAM9B,eAAC,GAAD,CAAkBnD,OAAQA,EAAQI,SAAUA,EAAUxI,MAAOD,MAAS0F,SAAUgE,OAAQ5E,KAAKoG,eAAgBhB,QAAS,kBAAM,EAAKvE,SAAS,CAAC0C,QAAO,c,GA3GtIpD,IAAMC,WAiHnB2B,gBAAiBiE,I,SClI5BW,GAAS,KAEAC,GAAS,uCAAG,WAAOC,EAAeC,EAAe5F,EAAe6F,GAApD,eAAA7P,EAAA,6DACX8P,EAAQvJ,SAASwJ,cAAc,cAC/BH,OAASA,EACfE,EAAMH,QAAUA,EAChBG,EAAM9F,MAAQA,EACd8F,EAAME,SAAW,MACjBF,EAAMG,SAAW,IACjBH,EAAMxH,KAAO,KACbwH,EAAMI,QAAU,CAAC,CACXC,KAAM,KACNC,KAAM,SACNC,QAASR,IAIftJ,SAASpB,KAAKmL,YAAYR,GAfT,kBAgBVA,EAAMS,WAhBI,4CAAH,4DAmBRC,GAAU,uCAAG,WAAOb,EAAgBM,GAAvB,SAAAjQ,EAAA,6DACnByP,GAASlJ,SAASwJ,cAAc,gBACzBJ,QAAUA,GAAgB,YACnB,OAAXM,IACCR,GAAOQ,SAAWA,GAAU,KAGhC1J,SAASpB,KAAKmL,YAAYb,IAPP,SAQbA,GAAOc,UARM,2CAAH,wDAkBXE,GAAU,uCAAG,sBAAAzQ,EAAA,0DACfyP,GADe,gCAERA,GAAOiB,UAFC,2CAAH,qDCzCR,OAA0B,qCCA1B,OAA0B,sCCA1B,OAA0B,mCCA1B,OAA0B,oCCA1B,OAA0B,2CCA1B,OAA0B,4CCA1B,OAA0B,0CCA1B,OAA0B,yCCsB5BC,GAAY,CACrBC,EAAG,CACD,CAAChC,IAAI,EAAED,IAAI,OAAO3C,OAAO,YAAY6E,QAAQ,YAAYC,IAAI,GAAGC,IAAIC,GAAQC,UAAUC,IACtF,CAACtC,IAAI,GAAGD,IAAI,OAAO3C,OAAO,cAAc6E,QAAQ,UAAUC,IAAI,EAAEC,IAAII,GAAOF,UAAUG,IACrF,CAACxC,IAAI,GAAGD,IAAI,OAAO3C,OAAO,YAAY6E,QAAQ,UAAUC,IAAI,EAAEC,IAAIM,GAAUJ,UAAUK,IACtF,CAAC1C,IAAI,GAAGD,IAAI,IAAM3C,OAAO,WAAW6E,QAAQ,SAASC,IAAI,GAAGC,IAAIQ,GAASN,UAAUO,KAErFC,EAAE,CACA,CAAC7C,IAAI,EAAED,IAAI,OAAO3C,OAAO,YAAY6E,QAAQ,YAAYC,IAAI,GAAGC,IAAIC,GAAQC,UAAUC,IACtF,CAACtC,IAAI,GAAGD,IAAI,OAAO3C,OAAO,cAAc6E,QAAQ,UAAUC,IAAI,EAAEC,IAAII,GAAOF,UAAUG,IACrF,CAACxC,IAAI,GAAGD,IAAI,OAAO3C,OAAO,YAAY6E,QAAQ,UAAUC,IAAI,EAAEC,IAAIM,GAAUJ,UAAUK,IACtF,CAAC1C,IAAI,GAAGD,IAAI,IAAM3C,OAAO,WAAW6E,QAAQ,SAASC,IAAI,GAAGC,IAAIQ,GAASN,UAAUO,MAI1EE,GAA4F,SAAC3I,GACxG,IAAO4I,EAAwB5I,EAAxB4I,IAAIC,EAAoB7I,EAApB6I,OAAOC,EAAa9I,EAAb8I,UAClB,OACI,gBAAC,IAAD,CAASxJ,UAAWU,EAAMV,UAA1B,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAcA,UAAU,kBAAxB,SAA0C,gCAAI,eAAC,IAAD,CAAS4B,KAAM6H,MAAnB,gBAA6C,6BAAIH,EAAIrE,QAAQ,UACvG,eAAC,IAAD,CAAiBjF,UAAU,kBAA3B,oEAEJ,gBAAC,IAAD,WACI,eAAC,IAAD,CAAgB2B,MAAM,UAAUjC,MAAO,IAAMQ,MAAO,CAACwJ,aAAa,EAAEC,OAAO,IAAKC,OAAyB,GAAfN,EAAI,GAAG,GAAGA,GAAQ,MAC5G,sBAAKpJ,MAAO,CAACE,MAAM,OAAOuJ,OAAO,IAAjC,SAEIrB,GAAUiB,GAAQ,KAAKpF,KAAI,SAAC0F,EAAIxF,GAAL,OACvB,sBAAKnE,MAAO,CAACE,MAAe,EAARyJ,EAAIpB,IAAO,IAAIjN,QAAQ,eAAesO,MAAM,QAAhE,SACI,eAAC,IAAD,CAAgBnI,MAAOkI,EAAIrB,QAAS9I,MAAe,EAARmK,EAAIpB,IAAOvI,MAAO,CAACyJ,OAAO,OADKtF,QAMtF,eAAC,IAAD,UACI,eAAC,IAAD,UAEQiE,GAAUiB,GAAQ,KAAKpF,KAAI,SAAC0F,EAAIxF,GAAL,OACvB,eAAC,IAAD,CAAQ0F,KAAK,IAAb,UACc,OAATP,QAAS,IAATA,OAAA,EAAAA,EAAWhB,UAASqB,EAAIrB,QAAQ,sBAAKlI,IAAKuJ,EAAInB,IAAKxI,MAAO,CAAC1F,OAAO,+BAAgCwF,UAAU,YAAYI,MAAO,KAAO,sBAAKE,IAAKuJ,EAAIjB,UAAW5I,UAAU,YAAYI,MAAO,MAD3KiE,UAQlCiE,GAAUiB,GAAQ,KAAKpF,KAAI,SAAC0F,EAAIxF,GAAL,OACd,OAATmF,QAAS,IAATA,OAAA,EAAAA,EAAWhB,UAASqB,EAAIrB,QAAQ,qBAAGtI,MAAO,CAACC,UAAU,UAArB,qBAAgD,6BAAG,eAAC,IAAD,CAASwB,MAAO6H,EAAUhB,QAA1B,SAAoCqB,EAAIlG,aAAtDU,GAAgF,eCrE9J,OAA0B,sCCmBnC2F,G,4MAEFC,cAAgB,K,EAChBC,iBAAmB,K,EAEnBnJ,MAAQ,CACJ7H,gBAAgB,GAChBiR,QAAQ,GACRb,IAAI,EACJE,UAAU,GACVY,KAAK,EACLC,aAAa,GACbC,KAAK,EACLC,SAAQ,G,EAOZC,K,sBAAO,4CAAA7S,EAAA,0DACAR,OAAOmD,UAAUC,OADjB,gCAEuC/C,EAAI,uBAF3C,cAEOyB,EAFP,gBAGOF,EAAGE,wBAAwB8B,QAAQ9B,GAH1C,uBAK2BF,EAAGG,gBAAgBwB,UAL9C,cAKGxB,EALH,iBAMoBH,EAAGC,SAAS0B,UANhC,eAMG1B,EANH,iBAOGoB,EAAkBlB,EAAgB,IAPrC,aAQAF,EAAS8B,OAAS,GARlB,wBASKqP,EAAUnR,EAAS,GATxB,UAU6BD,EAAGQ,gBAAgBmB,UAVhD,eAUKnB,EAVL,OAWKkR,EAAuBlR,EAAgBmR,MAAK,SAAC/S,EAAEgT,GAAH,OAAUhP,IAAOhE,EAAE2N,gBAAgBsF,KAAKD,EAAErF,eAAe,UACrGgE,EAA+C,IAAzCtE,WAAWyF,EAAqB,GAAGH,OAAatF,WAAWmF,EAAQU,QAAQ7F,WAAWmF,EAAQU,SACpGrB,EAAYlB,GAAU6B,EAAQZ,QAAQ5M,MAAK,SAAAjB,GAAC,OAAIA,EAAE6K,KAAK+C,GAAO5N,EAAE4K,IAAIgD,KACpEc,EAAOzO,MAASiP,KAAKjP,IAAOzC,EAAgB,GAAGoM,gBAAgBxJ,QAAQ,OAAO,QAdnF,UAeK,EAAKwF,SAAS,CAACpI,gBAAgBA,EAAgB,GAAGiR,UAAQb,MAAIE,YAAUY,OAAKC,aAAaI,EAAqB,GAAGH,KAAKG,EAAqB,GAAGH,KAAKC,SAAQ,IAfjK,iDAiBKvL,EAAeY,SAjBpB,4C,EAqBPkL,Q,sBAAU,8BAAAnT,EAAA,sEACwBoB,EAAGQ,gBAAgBmB,UAD3C,cACAnB,EADA,gBAEqBR,EAAGI,aAAauB,UAFrC,OAEAvB,EAFA,OAGN,EAAKmI,SAAS,CAAC/H,kBAAgBJ,iBAHzB,2C,qDAzBV,WACIsH,KAAK+J,S,oBA8BT,WAAS,IAAD,WACJ,EAA0E/J,KAAKM,MAAxEoJ,EAAP,EAAOA,QAAQb,EAAf,EAAeA,IAAIE,EAAnB,EAAmBA,UAAUa,EAA7B,EAA6BA,aAAanR,EAA1C,EAA0CA,gBAAgBkR,EAA1D,EAA0DA,KAAKG,EAA/D,EAA+DA,QAC/D,OACI,gBAAC,IAAD,WACI,eAAC,GAAD,IAEIA,GACI,gBAAC,IAAD,CAAYvK,UAAU,QAAtB,UACI,eAAC,GAAD,CAAcuJ,OAAQY,EAAQZ,OAAQD,IAAKA,EAAKE,UAAWA,EAAWxJ,UAAU,UAChF,gBAAC,IAAD,CAASA,UAAU,cAAnB,UACI,gBAAC,IAAD,WACI,gBAAC,IAAD,CAAcA,UAAU,kBAAxB,UAA0C,eAAC,IAAD,CAAS4B,KAAMmJ,MAAzD,WACA,eAAC,IAAD,CAAiB/K,UAAU,kBAA3B,iEAEJ,gBAAC,IAAD,WACI,eAAC,IAAD,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAQ+J,KAAK,IAAb,SACI,eAAC,IAAD,CAASxF,MAAM,OAAO5C,MAAM,UAA5B,SACI,uBAAKzB,MAAO,CAACC,UAAU,SAASC,MAAM,QAAtC,UACI,iCAAO,2CAAsB,wBAC7B,6BAAIlH,EAAgBoR,KAAK,cAIrC,eAAC,IAAD,CAAQP,KAAK,IAAb,SACI,eAAC,IAAD,CAASxF,MAAM,OAAO5C,MAAO6H,EAAUhB,QAAvC,SACI,uBAAKtI,MAAO,CAACC,UAAU,SAASC,MAAM,QAAtC,UACI,iCAAO,0CAAqB,wBAChC,6BAAIiK,EAAaA,EAAaC,KAAK,KAAK,YAIhD,eAAC,IAAD,CAAQP,KAAK,IAAb,SACI,eAAC,IAAD,CAASxF,MAAM,OAAO5C,MAAM,UAA5B,SACI,uBAAKzB,MAAO,CAACC,UAAU,SAASC,MAAM,QAAtC,UACI,iCAAO,wCAAmB,wBAC9B,6BAAIlH,EAAgB8R,cAAc,mBAMlD,gBAAC,IAAD,CAAiBhL,UAAU,kBAA3B,wBACe,6BAAIoK,EAAK,IADxB,UACmCA,EAAK,EAAE,IAAI,GAD9C,4CAGA,eAAC,GAAD,CAAgBa,WAAYxK,KAAK+J,KAAMtR,gBAAiBA,EAAiBmR,aAAcA,UAG/F,gBAAC,IAAD,CAASrK,UAAU,cAAnB,UACI,gBAAC,IAAD,WACI,gBAAC,IAAD,CAAcA,UAAU,kBAAxB,UAA0C,eAAC,IAAD,CAAS4B,KAAMsJ,MAAzD,kBACA,eAAC,IAAD,CAAiBlL,UAAU,kBAA3B,qFAEJ,gBAAC,IAAD,WACI,eAAC,GAAD,CAAiBmL,IAAK,SAAAzP,GAAO,EAAKwO,iBAAmBxO,GAAIxC,gBAAiBA,IAC1E,eAAC,IAAD,CAAWoK,QAAO,UAAE7C,KAAKyJ,wBAAP,aAAE,EAAuBkB,YAAaC,KAAK,QAAQ7E,OAAO,OAA5E,8BAGR,gBAAC,IAAD,CAASxG,UAAU,cAAnB,UACI,gBAAC,IAAD,WACI,gBAAC,IAAD,CAAcA,UAAU,kBAAxB,UAA0C,eAAC,IAAD,CAAS4B,KAAMsJ,MAAzD,YACA,eAAC,IAAD,CAAiBlL,UAAU,kBAA3B,iFAEJ,gBAAC,IAAD,WACI,eAAC,GAAD,CAAcmL,IAAK,SAAAzP,GAAO,EAAKuO,cAAgBvO,GAAIxC,gBAAiBA,IACpE,eAAC,IAAD,CAAWoK,QAAO,UAAE7C,KAAKwJ,qBAAP,aAAE,EAAoBmB,YAAaC,KAAK,QAAQ7E,OAAO,OAAzE,8BAGR,eAAC,GAAD,CAAetN,gBAAiBA,EAAiBiR,QAASA,EAASE,aAAcA,EAAcS,QAASrK,KAAK+J,iB,GApHlH5J,IAAMC,WA6Hd2B,gBAAiBwH,IAE1BsB,G,4MAEFvK,MAAQ,CACJpG,MAAM,I,EAGVyQ,Y,sBAAc,wCAAAzT,EAAA,sEACiBoB,EAAGI,aAAauB,UADjC,OAKV,IAJMvB,EADI,OAEHD,EAAmB,EAAKwH,MAAxBxH,gBACDyB,EAAQ,CAAC,CAAC,QAAQ,sBAAsB,cACxC4Q,EAAY,GACVlH,EAAI,EAAGA,EAAElL,EAAa2B,OAAQuJ,IAC/BkH,EAAUpS,EAAakL,GAAGzI,OACzB2P,EAAUpS,EAAakL,GAAGzI,QAAUG,SAAS5C,EAAakL,GAAGR,UAE7D0H,EAAUpS,EAAakL,GAAGzI,OAASG,SAAS5C,EAAakL,GAAGR,UAGhExH,EAAO,EAZD,OAAA1E,EAAA,KAaG4T,GAbH,iDAaFlH,EAbE,aAcHhI,EAAO,GAdJ,qDAiBN1B,EAAM6B,KAAK,CAAC6H,EAAEkH,EAAUlH,GAAGtI,SAAS7C,EAAgBC,gBACpDkD,IAlBM,wCAoBJ,EAAKiF,SAAS,CAAC3G,QAAMkI,MAAK,IApBtB,4C,uDAuBd,WACIpC,KAAK2K,gB,oBAGT,WACI,IAAOzQ,EAAS8F,KAAKM,MAAdpG,MACP,OACQA,EAAMG,OAAS,EAEX,eAAC,KAAD,CACIsF,MAAM,OACNuJ,OAAQ,IACR6B,UAAU,aACVpE,OAAQ,qDACRnP,KAAM0C,EACNjD,QAAS,CACT+E,MAAO,GACPgP,UAAW,CAAErL,MAAO,MAAOuJ,OAAQ,OACnC+B,OAAQ,CAAE/D,SAAU,SAAUgE,SAAU,GACxCC,MAAO,CACHnP,MAAO,yBACPoP,SAAU,GAEdC,WAAY,OACZC,OAAQ,CAAC,CAAE3F,KAAM,OAAQ,CAAEA,KAAM,UAEjC4F,cAAY,IAEhB,eAAC,IAAD,mD,GAzDUpL,IAAMC,WA+D9BoL,G,4MAEFlL,MAAQ,CACJpG,MAAM,I,EAOVyQ,Y,sBAAc,sCAAAzT,EAAA,sEACoBoB,EAAGQ,gBAAgBmB,UADvC,OACJnB,EADI,OAEHL,EAAmB,EAAKwH,MAAxBxH,gBACDyB,EAAQ,CAAC,CAAC,QAAQ,OAAO,aACzB4Q,EAAY,GAClBhS,EAAgB+D,SAAQ,SAACC,EAAI8G,GACxBkH,EAAUhO,EAAI+H,gBACfiG,EAAUhO,EAAI+H,iBAAmBN,WAAWzH,EAAI+M,MAEhDiB,EAAUhO,EAAI+H,gBAAkBN,WAAWzH,EAAI+M,SAG/CjO,EAAO,EAZD,OAAA1E,EAAA,KAaG4T,GAbH,iDAaFlH,EAbE,aAcHhI,EAAO,GAdJ,qDAiBN1B,EAAM6B,KAAK,CAAC6H,EAAEkH,EAAUlH,GAAGtI,SAAS7C,EAAgB8R,iBACpD3O,IAlBM,wCAoBJ,EAAKiF,SAAS,CAAC3G,UApBX,4C,uDAJd,WACG8F,KAAK2K,gB,oBA0BR,WACI,IAAOzQ,EAAS8F,KAAKM,MAAdpG,MACP,OACQA,EAAMG,OAAS,EAEX,eAAC,KAAD,CACIsF,MAAM,OACNuJ,OAAQ,IACR6B,UAAU,aACVpE,OAAQ,qDACRnP,KAAM0C,EACNjD,QAAS,CACT+E,MAAO,GACPgP,UAAW,CAAErL,MAAO,MAAOuJ,OAAQ,OACnC+B,OAAQ,CAAE/D,SAAU,SAAUgE,SAAU,GACxCC,MAAO,CACHnP,MAAO,yBACPoP,SAAU,GAEdC,WAAY,OACZC,OAAQ,CAAC,CAAE3F,KAAM,OAAQ,CAAEA,KAAM,UAEjC4F,cAAY,IAEhB,eAAC,IAAD,mD,GAzDOpL,IAAMC,WA+D3BqL,G,4MAEFnL,MAAQ,CACJ8B,MAAK,EACLsJ,MAAM,KACN7B,KAAK,G,EAQTtJ,SAAW,SAAChD,GACR,EAAKsD,SAAS,CAACgJ,KAAKtM,EAAEkD,OAAOxB,S,EAGjC0M,W,uCAAa,WAAOpO,GAAP,qBAAArG,EAAA,6DACXqG,EAAEU,iBADS,EAE0B,EAAKgC,MAAnCxH,EAFI,EAEJA,gBAAgB+R,EAFZ,EAEYA,WACjBhT,EAAO,CACXqS,KAAM,EAAKvJ,MAAMuJ,KAAK,GACtBpR,gBAAgBA,EAAgBmB,GAChCiL,eAAe3J,MAAS0F,OAAO,eANtB,SAQYhJ,EAAK,eAAeJ,GARhC,kBASCoU,UATD,iCAUHtT,EAAGQ,gBAAgBkG,IAAIxH,GAVpB,wBAWH,EAAKqJ,SAAS,CAAC+I,aAAapS,IAXzB,QAYToP,GAAU,8BAA8B,iBAAiB,WACzD4D,IAbS,wBAeT5D,GAAU,gDAA6C,iBAAiB,UAf/D,4C,6GATb,WACI,IAAOgD,EAAgB5J,KAAKC,MAArB2J,aACP5J,KAAKa,SAAS,CAACgJ,KAAKD,EAAaC,S,oBA0BrC,WAAS,IAAD,OACJ,EAA0B7J,KAAKM,MAAxB8B,EAAP,EAAOA,KAAKsJ,EAAZ,EAAYA,MAAM7B,EAAlB,EAAkBA,KAClB,OACI,uCACI,eAAC,IAAD,CAAWhH,QAAS,SAACtF,GAAD,OAAO,EAAKsD,SAAS,CAACuB,MAAK,EAAKsJ,MAAMnO,KAAK2D,MAAM,WAAW6E,OAAO,QAAvF,6BACA,eAAC,IAAD,CAAYxC,OAAQnB,EAAMsJ,MAAOA,EAAOlI,aAAc,kBAAM,EAAK3C,SAAS,CAACuB,MAAK,KAAhF,SACI,gBAAC,IAAD,WACI,gBAAC,IAAD,WACI,eAAC,IAAD,yBACA,eAAC,IAAD,CAAU7C,UAAU,iBAAiBoG,KAAK,SAASC,KAAK,MAAMC,IAAI,MAAMzJ,KAAK,OAAO6C,MAAO4K,EAAMtI,YAAavB,KAAKO,SAAUiF,UAAQ,OAEzI,eAAC,IAAD,CAAW3C,QAAS7C,KAAK2L,WAAzB,oC,GA/CKxL,IAAMC,WAuD7ByL,G,4MAEFvL,MAAM,CACF8B,MAAK,EACL0J,QAAQ,GACRtT,wBAAwB,GACxBuT,UAAKpN,EACLqN,SAAIrN,EACJsN,gBAAWtN,G,EAGfuN,kBAAoB,SAAC3O,GACjB,EAAKsD,SAAS,CAACiL,QAAQ,2BAAI,EAAKxL,MAAMwL,SAAhB,mBAAyBvO,EAAEiD,OAAOpE,KAAMmB,EAAEkD,OAAOxB,W,EAS3EkN,U,sBAAY,4CAAAjV,EAAA,2DAC8B,EAAKoJ,MAApCwL,EADC,EACDA,QAAQC,EADP,EACOA,KAAKC,EADZ,EACYA,IAAIC,EADhB,EACgBA,WAClBG,EAAK,EAAKnM,MAAMxH,qBAEZkG,IAAPoN,QAA0BpN,IAANqN,QAAgCrN,IAAbsN,EAJlC,wBAKJH,EAAQpT,cAAgBsT,EAAID,GAAMvH,QAAQ,GAC1CsH,EAAQvB,cAAyB,IAATwB,EAAaK,EAAGvC,KAAOoC,EAAWzH,QAAQ,GAClEsH,EAAQO,gBAAkBC,KAAKC,IAAIR,EAAK,KAAMvH,QAAQ,GACtDsH,EAAQlS,GAAK,GACbkS,EAAQjH,eAAiB3J,MAAS0F,SAT9B,UAWE8G,KAXF,yBAY4C9P,EAAK,iBAAiBkU,GAZlE,oBAYGrT,EAZH,EAYGA,gBAAgBK,EAZnB,EAYmBA,gBACvB6O,MACGlP,EAdC,kCAeMH,EAAGG,gBAAgBP,QAfzB,yBAgBMI,EAAGQ,gBAAgBZ,QAhBzB,yBAiBMI,EAAGI,aAAaR,QAjBtB,yBAkBMI,EAAGG,gBAAgBuG,IAAIvG,GAlB7B,yBAmBMH,EAAGQ,gBAAgBkG,IAAIlG,GAnB7B,eAoBA8N,GAAU,gCAAgC,mBAAmB,WApB7D,UAqBM,EAAK3G,MAAMoK,UArBjB,yBAsBM,EAAKxJ,SAAS,CAACuB,MAAK,IAtB1B,gCAwBAwE,GAAU,4CAA4C,mBAAmB,UAxBzE,gCA2BJA,GAAU,0CAA0C,mBAAmB,WA3BnE,4C,EA+BZ4F,aAAe,SAACT,EAAYC,EAAWC,GACnC,EAAKpL,SAAS,CAACkL,OAAKC,MAAIC,gB,8FAtC5B,kCAAA/U,EAAA,+DAC2C8I,KAAKC,MAArCxH,EADX,EACWA,gBAAgBmR,EAD3B,EAC2BA,aAD3B,SAE0CtR,EAAGE,wBAAwByB,UAFrE,OAEUzB,EAFV,OAGIwH,KAAKa,SAAS,CAACrI,0BAAwBsT,QAAQ,2BAAIrT,GAAL,IAAqBoR,KAAKD,EAAaC,SAHzF,gD,0EAyCA,WAAS,IAAD,SACJ,EAA+C7J,KAAKC,MAA7CxH,EAAP,EAAOA,gBAAgBiR,EAAvB,EAAuBA,QAAQE,EAA/B,EAA+BA,aAC/B,EAAoD5J,KAAKM,MAAlD8B,EAAP,EAAOA,KAAK0J,EAAZ,EAAYA,QAAQC,EAApB,EAAoBA,KAAKvT,EAAzB,EAAyBA,wBAClBiU,GAAoBX,EAAQW,iBAAiBX,EAAQrT,GAArDgU,iBACA3D,EAAkCY,EAAlCZ,OAAOsB,EAA2BV,EAA3BU,OAAOsC,EAAoBhD,EAApBgD,iBACd7C,GAAQiC,EAAQjC,KAAKiC,EAAQlC,GAA7BC,KACD8C,EAAQpI,YAAW,UAAA/L,EAAwB0D,MAAK,SAAA0Q,GAAE,OAAIA,EAAGhT,KAAO6S,YAA7C,eAAgEE,QAAS,KAC5FE,GAAQ3R,IAAOwR,GAAkBvC,KAAKjP,MAAS,SAG/C4R,EAAqB,MAAThE,EAAa,KAAK,IAC9BiE,EAAuB,MAATjE,EAAa,EAAE,IAE7BkD,IADqB,MAATlD,EAAa,GAAG,MAHP,MAATA,EAAa,KAAK,KAIAvE,WAAWsF,GAAUiD,EAAUD,EAASE,EAAYxI,WAAW6F,IAAUuC,EAIvGV,GAHM1H,WAAWsF,GAAatF,WAAW6F,GAAQ7F,WAAW6F,GAG/C7F,WAAW6F,GAAU,KAAQ7F,WAAW6F,GAAQ,MAAe,MAATtB,EAAa,EAAE,MAExF,OACI,uCACI,eAAC,IAAD,CAAWjG,QAAS,kBAAM,EAAKhC,SAAS,CAACuB,MAAK,KAAQlB,MAAM,SAAS6E,OAAO,QAA5E,4BACA,gBAAC,IAAD,CAAUxC,OAAQnB,EAAMoB,aAAc,kBAAM,EAAK3C,SAAS,CAACuB,MAAK,KAAhE,UACI,eAAC,IAAD,CAAW5C,KAAK,KAAhB,SACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAY6B,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS,kBAAM,EAAKhC,SAAS,CAACuB,MAAK,KAA9C,SAAwD,eAAC,IAAD,CAASjB,KAAMsC,UAE3E,gBAAC,IAAD,WACI,eAAC,IAAD,CAAStC,KAAM6L,KADnB,0BAKR,eAAC,IAAD,UACI,gBAAC,IAAD,WACI,gBAAC,IAAD,WACI,eAAC,IAAD,yBACA,eAAC,IAAD,CAAUzN,UAAU,iBAAiBoG,KAAK,SAASC,KAAK,MAAMC,IAAI,MAAMzJ,KAAK,OAAO6C,MAAO6M,EAAQjC,KAAMtI,YAAavB,KAAKkM,kBAAmB1G,UAAQ,OAE1J,gBAAC,IAAD,WACI,eAAC,IAAD,2BACA,eAAC,IAAD,CAAUjG,UAAU,iBAAiBN,MAAOmL,EAAQ3E,UAAQ,OAEhE,gBAAC,IAAD,WACI,eAAC,IAAD,mCACA,eAAC,IAAD,CAAWrJ,KAAK,mBAAmB6C,MAAO6M,EAAQW,iBAAkBlL,YAAavB,KAAKkM,kBAAmB5K,WAAW,WAApH,SAEI9I,EAAwBkL,KAAI,SAACuJ,EAAGrJ,GAAJ,OACxB,eAAC,IAAD,CAAiB3E,MAAOgO,EAAGrT,GAA3B,SAAwCqT,EAAG/J,QAAPU,WAKhD,eAAC,IAAD,IACA,eAAC,IAAD,oBACA,gBAAC,IAAD,CAAe3E,MAAO8M,EAAMxK,YAAc,SAAAhE,GAAC,OAAI,EAAKiP,aAAajP,EAAEkD,OAAOxB,MAAM+M,EAAIC,IAApF,UACA,gBAAC,IAAD,CAASnI,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,OAAQ,MAC/B,eAAC,IAAD,mCAEJ,gBAAC,IAAD,CAAS6E,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,OAAQ,MAC/B,eAAC,IAAD,qCAEJ,gBAAC,IAAD,CAAS6E,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,MAAO,IAC9B,eAAC,IAAD,+BAEJ,gBAAC,IAAD,CAAS6E,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,MAAO,MAC9B,eAAC,IAAD,qCAEJ,gBAAC,IAAD,CAAS6E,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,MAAO,MAC9B,eAAC,IAAD,sCAGJ,eAAC,IAAD,CAAS6E,MAAM,OAAf,SACI,eAAC,IAAD,CAAS5C,MAAM,SAASzB,MAAO,CAACC,UAAU,UAA1C,+GAEJ,eAAC,IAAD,CAAWmD,QAAS7C,KAAKmM,UAAWjL,MAAM,SAAS6E,OAAO,QAA1D,iCACA,eAAC,IAAD,CAAWlD,QAAStE,EAAeY,OAAQ+B,MAAM,SAAS0J,KAAK,QAAQ7E,OAAO,OAA9E,6C,GAzIA5F,IAAMC,WCvUnB,OAA0B,yCCA1B,OAA0B,uCCSnC8M,G,4MAEFC,O,uCAAS,WAAO5P,GAAP,mBAAArG,EAAA,6DACLqG,EAAEU,iBADG,SAE0BM,EAAeK,MAAM,EAAK0B,OAFpD,mBAEEvI,EAFF,EAEEA,SAASN,EAFX,EAEWA,OACbM,EAHE,iBAIDrB,OAAOC,SAASyW,QAAQ,SAJvB,yCAMKxG,GAAUnP,GAAS,uBAAuB,6BAA0B,UANzE,4C,kGAUT,WAAS,IAAD,OACJ,OACI,eAAC,IAAD,UACI,eAAC,IAAD,CAAY4V,YAAU,EAAC9N,UAAU,sBAAjC,SACI,uBAAMA,UAAU,eAAe+F,SAAUtF,KAAKmN,OAA9C,SACI,gBAAC,IAAD,CAASrJ,MAAM,OAAOvE,UAAU,QAAQC,KAAK,KAA7C,UACI,eAAC,IAAD,CAASsE,MAAM,OAAOvE,UAAU,QAAhC,SACI,sBAAKE,MAAO,CAACC,UAAU,SAAS3E,QAAQ,QAAQ4E,MAAM,QAAtD,SACI,sBAAKE,IAAKC,GAAMC,IAAI,UAAUJ,MAAO,UAG7C,eAAC,IAAD,CAAemE,MAAM,OAArB,SACI,qBAAIrE,MAAO,CAACC,UAAU,SAASC,MAAM,QAArC,wBAEJ,gBAAC,IAAD,CAASmE,MAAM,OAAOrE,MAAO,CAACwJ,aAAa,GAA3C,UACI,eAAC,IAAD,CAAS9H,KAAMmM,IAAQjM,KAAK,UAC5B,eAAC,IAAD,CAAUsE,KAAK,QAAQrC,YAAY,wBAAqB/B,YAAa,SAAAhE,GAAC,OAAI,EAAKsD,SAAS,CAAC0M,OAAOhQ,EAAEkD,OAAOxB,SAASuG,UAAQ,OAE9H,gBAAC,IAAD,CAAS1B,MAAM,OAAOrE,MAAO,CAACwJ,aAAa,GAA3C,UACI,eAAC,IAAD,CAAS9H,KAAM/C,IAAKiD,KAAK,UACzB,eAAC,IAAD,CAAUsE,KAAK,WAAWrC,YAAY,gBAAa/B,YAAa,SAAAhE,GAAC,OAAI,EAAKsD,SAAS,CAAC2M,SAASjQ,EAAEkD,OAAOxB,SAASuG,UAAQ,OAE3H,eAAC,IAAD,CAAWG,KAAK,SAASI,OAAO,QAAhC,sBACA,eAAC,IAAD,CAASjC,MAAM,OAAOvE,UAAU,QAAhC,4DAGA,eAAC,IAAD,CAAW2B,MAAM,UAAUuM,WAAW,YAAY1H,OAAO,QAAzD,yBACA,eAAC,IAAD,CAASjC,MAAM,OAAOvE,UAAU,QAAhC,SACI,sBAAKE,MAAO,CAACC,UAAU,SAAS3E,QAAQ,QAAQ4E,MAAM,QAAtD,SACI,sBAAKE,IAAK6N,GAAU3N,IAAI,UAAUJ,MAAO,SAGjD,eAAC,IAAD,CAASmE,MAAM,OAAOvE,UAAU,QAAhC,SACI,sBAAKE,MAAO,CAACC,UAAU,SAAS3E,QAAQ,QAAQ4E,MAAM,QAAtD,SACI,sBAAKE,IAAK8N,GAAS5N,IAAI,UAAUJ,MAAO,uB,GA9CpDQ,IAAMC,WAyDf2B,gBAAiBmL,ICvDXU,G,4MAEjBtN,MAAQ,CACJkB,SAAS,GACTG,aAAa,GACbC,SAAS,GACTC,YAAY,GACZC,KAAK,GACLrJ,gBAAgB,GAChB8K,QAAO,EACPxG,QAAQ,I,EAaZsN,Q,sBAAU,sCAAAnT,EAAA,6DACCiE,EAAS,EAAK8E,MAAd9E,MACDmF,EAAQ,GAFR,SAGkBhI,EAAGO,UAAUoB,UAH/B,OAGApB,EAHA,cAAA3B,EAAA,KAIO+E,GAJP,qDAIE2H,EAJF,qBAKgBtL,EAAGI,aAAamV,MAAM,CAAC1S,MAAMD,IAAOC,GAAOyF,OAAO,cAAc5D,eAAef,EAAgB2H,GAAGxH,OAAOnC,UALzH,QAKEC,EALF,QAMI4T,EAAM5T,EAAMH,QAAO,SAAAwD,GAAC,OAAKA,EAAE3D,IAAI0B,SAASiC,EAAE3D,IAAI,MAChD8J,KAAI,SAAAqK,GACJA,EAAGC,YAAcnV,EAAUqD,MAAK,SAAAqB,GAAC,OAAIA,EAAE3D,IAAMmU,EAAGpK,eAEpDrD,EAAMrE,EAAgB2H,GAAG/H,KAAOiS,EAV9B,uBAYN,EAAKjN,SAAL,2BAAkBP,GAAlB,IAAwBiD,QAAO,KAZzB,4C,EAeV0K,W,uCAAa,WAAOC,GAAP,eAAAhX,EAAA,0DACNR,OAAOyX,QAAQ,mCADT,wBAEE1V,EAAmB,EAAK6H,MAAxB7H,gBACPyV,EAAKtU,GAAK,KAHL,SAICtB,EAAGI,aAAasG,IAAIkP,GAJrB,uBAKCvU,EAAkBlB,GALnB,uBAMCmC,IAND,wBAOC,EAAKyP,UAPN,4C,oJAzBb,4BAAAnT,EAAA,sEACkCoB,EAAGG,gBAAgBwB,UADrD,cACUxB,EADV,gBAEUuH,KAAKa,SAAS,CAACpI,gBAAgBA,EAAgB,KAFzD,uBAGUuH,KAAKqK,UAHf,gD,0EAMA,WACIrK,KAAKqK,Y,oBA6BT,WAAS,IAAD,OACJ,EAA4BrK,KAAKC,MAA1B9E,EAAP,EAAOA,MAAMa,EAAb,EAAaA,MAAMkF,EAAnB,EAAmBA,MACnB,EAAyFlB,KAAKM,MAAvF7H,EAAP,EAAOA,gBAAgB+I,EAAvB,EAAuBA,SAASK,EAAhC,EAAgCA,YAAYF,EAA5C,EAA4CA,aAAaC,EAAzD,EAAyDA,SAASE,EAAlE,EAAkEA,KAAKyB,EAAvE,EAAuEA,OAAOxG,EAA9E,EAA8EA,QAC1EqR,EAAQ,EACZ5M,EAASkC,KAAI,SAAAwK,GACTE,GAAO9S,SAAS4S,EAAK9K,aAEzBzB,EAAa+B,KAAI,SAAAwK,GACbE,GAAO9S,SAAS4S,EAAK9K,aAEzBxB,EAAS8B,KAAI,SAAAwK,GACTE,GAAO9S,SAAS4S,EAAK9K,aAEzBvB,EAAY6B,KAAI,SAAAwK,GACZE,GAAO9S,SAAS4S,EAAK9K,aAEzBtB,EAAK4B,KAAI,SAAAwK,GACLE,GAAO9S,SAAS4S,EAAK9K,aAEzB,IACMiL,KADkB5V,GAAiB2V,EAAM9S,SAAS7C,EAAgBC,eAClC,UAAU,SAChD,OACI,gBAAC,IAAD,CAASwI,MAAOA,EAAO3B,UAAU,cAAjC,UACI,eAAC,IAAD,UACI,eAAC,IAAD,UAAevD,GAASd,IAAOC,GAAOyF,OAAO,mBAEjD,eAAC,IAAD,UACI,gBAAC,IAAD,CAASrB,UAAU,QAAQC,KAAK,KAAhC,UAEI,gBAAC,IAAD,CAAY0B,MAAOA,EAAnB,UACI,eAAC,IAAD,CAAYG,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS,kBAAM,EAAKhC,SAAS,CAAC0C,QAAO,EAAKxG,QAAQd,EAAgB,MAA7E,SAAmF,eAAC,IAAD,CAASkF,KAAMvE,UAEtG,6CAGA4E,EAASkC,KAAI,SAACwK,EAAKI,GAAN,aACT,gBAAC,IAAD,WACI,gBAAC,IAAD,CAASpN,MAAOA,EAAhB,UACI,eAAC,IAAD,CAAWG,KAAK,QAAhB,SACI,sBAAKxB,KAAK,UAAAqO,EAAKF,mBAAL,eAAkBjL,OAAMC,OAEtC,gBAAC,IAAD,WACI,+BAAG,mCAAKkL,EAAKhR,YAAb,IAA4BgR,EAAKjR,WACjC,gCAAKiR,EAAK9K,SAAV,gBAGR,eAAC,IAAD,CAAgB/B,KAAK,MAArB,SACI,eAAC,IAAD,CAAeH,MAAM,SAAS2B,QAAS,SAAAtF,GAAC,OAAI,EAAK0Q,WAAWC,IAA5D,SAAmE,eAAC,IAAD,CAAS/M,KAAMoN,YAXrED,MAiB7B,gBAAC,IAAD,CAAYpN,MAAOA,EAAnB,UACI,eAAC,IAAD,CAAYG,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS,kBAAM,EAAKhC,SAAS,CAAC0C,QAAO,EAAKxG,QAAQd,EAAgB,MAA7E,SAAmF,eAAC,IAAD,CAASkF,KAAMvE,UAEtG,oDAGA+E,EAAa+B,KAAI,SAACwK,EAAKI,GAAN,aACb,gBAAC,IAAD,WACI,gBAAC,IAAD,CAASpN,MAAOA,EAAhB,UACI,eAAC,IAAD,CAAWG,KAAK,QAAhB,SACI,sBAAKxB,KAAK,UAAAqO,EAAKF,mBAAL,eAAkBjL,OAAMC,OAEtC,gBAAC,IAAD,WACI,+BAAG,mCAAKkL,EAAKhR,YAAb,IAA4BgR,EAAKjR,WACjC,gCAAKiR,EAAK9K,SAAV,gBAGR,eAAC,IAAD,CAAgB/B,KAAK,MAArB,SACI,eAAC,IAAD,CAAeH,MAAM,SAAS2B,QAAS,SAAAtF,GAAC,OAAI,EAAK0Q,WAAWC,IAA5D,SAAmE,eAAC,IAAD,CAAS/M,KAAMoN,YAXrED,MAiB7B,gBAAC,IAAD,CAAYpN,MAAOA,EAAnB,UACI,eAAC,IAAD,CAAYG,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS,kBAAM,EAAKhC,SAAS,CAAC0C,QAAO,EAAKxG,QAAQd,EAAgB,MAA7E,SAAmF,eAAC,IAAD,CAASkF,KAAMvE,UAEtG,6CAGAgF,EAAS8B,KAAI,SAACwK,EAAKI,GAAN,aACT,gBAAC,IAAD,WACI,gBAAC,IAAD,CAASpN,MAAOA,EAAhB,UACI,eAAC,IAAD,CAAWG,KAAK,QAAhB,SACI,sBAAKxB,KAAK,UAAAqO,EAAKF,mBAAL,eAAkBjL,OAAMC,OAEtC,gBAAC,IAAD,WACI,+BAAG,mCAAKkL,EAAKhR,YAAb,IAA4BgR,EAAKjR,WACjC,gCAAKiR,EAAK9K,SAAV,gBAGR,eAAC,IAAD,CAAgB/B,KAAK,MAArB,SACI,eAAC,IAAD,CAAeH,MAAM,SAAS2B,QAAS,SAAAtF,GAAC,OAAI,EAAK0Q,WAAWC,IAA5D,SAAmE,eAAC,IAAD,CAAS/M,KAAMoN,YAXrED,MAiB7B,gBAAC,IAAD,CAAYpN,MAAOA,EAAnB,UACI,eAAC,IAAD,CAAYG,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS,kBAAM,EAAKhC,SAAS,CAAC0C,QAAO,EAAKxG,QAAQd,EAAgB,MAA7E,SAAmF,eAAC,IAAD,CAASkF,KAAMvE,UAEtG,gDAGAiF,EAAY6B,KAAI,SAACwK,EAAKI,GAAN,aACZ,gBAAC,IAAD,WACI,gBAAC,IAAD,CAASpN,MAAOA,EAAhB,UACI,eAAC,IAAD,CAAWG,KAAK,QAAhB,SACI,sBAAKxB,KAAK,UAAAqO,EAAKF,mBAAL,eAAkBjL,OAAMC,OAEtC,gBAAC,IAAD,WACI,+BAAG,mCAAKkL,EAAKhR,YAAb,IAA4BgR,EAAKjR,WACjC,gCAAKiR,EAAK9K,SAAV,gBAGR,eAAC,IAAD,CAAgB/B,KAAK,MAArB,SACI,eAAC,IAAD,CAAeH,MAAM,SAAS2B,QAAS,SAAAtF,GAAC,OAAI,EAAK0Q,WAAWC,IAA5D,SAAmE,eAAC,IAAD,CAAS/M,KAAMoN,YAXrED,MAiB7B,gBAAC,IAAD,CAAYpN,MAAOA,EAAnB,UACI,eAAC,IAAD,CAAYG,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWwB,QAAS,kBAAM,EAAKhC,SAAS,CAAC0C,QAAO,EAAKxG,QAAQd,EAAgB,MAA7E,SAAmF,eAAC,IAAD,CAASkF,KAAMvE,UAEtG,yCAGAkF,EAAK4B,KAAI,SAACwK,EAAKI,GAAN,aACL,gBAAC,IAAD,WACI,gBAAC,IAAD,CAASpN,MAAOA,EAAhB,UACI,eAAC,IAAD,CAAWG,KAAK,QAAhB,SACI,sBAAKxB,KAAK,UAAAqO,EAAKF,mBAAL,eAAkBjL,OAAMC,OAEtC,gBAAC,IAAD,WACI,+BAAG,mCAAKkL,EAAKhR,YAAb,IAA4BgR,EAAKjR,WACjC,gCAAKiR,EAAK9K,SAAV,gBAGR,eAAC,IAAD,CAAgB/B,KAAK,MAArB,SACI,eAAC,IAAD,CAAeH,MAAM,SAAS2B,QAAS,SAAAtF,GAAC,OAAI,EAAK0Q,WAAWC,IAA5D,SAAmE,eAAC,IAAD,CAAS/M,KAAMoN,YAXrED,MAiB7B,gBAAC,IAAD,CAASxK,MAAM,OAAO5C,MAAOA,EAA7B,UACI,6BACI,0CAEJ,gBAAC,IAAD,CAAUG,KAAK,MAAMH,MAAOmN,EAA5B,UACKD,EADL,UAGA,gBAAC,IAAD,CAAU/M,KAAK,MAAMH,MAAM,UAA3B,UACKzI,EAAgBC,aADrB,kBAMZ,eAAC,GAAD,CAAkByC,MAAOA,EAAOoI,OAAQA,EAAQ6B,QAAS,kBAAM,EAAKvE,SAAS,CAAC0C,QAAO,KAASqB,OAAQ5E,KAAKqK,QAAStN,QAASA,W,GAxNlGoD,IAAMC,WCD3CuJ,GAAO,CACT,CAACzG,OAAO,UAAUsL,OAAO,KACzB,CAACtL,OAAO,QAAQsL,OAAO,KACvB,CAACtL,OAAO,SAASsL,OAAO,KACxB,CAACtL,OAAO,YAAYsL,OAAO,KAC3B,CAACtL,OAAO,SAASsL,OAAO,KACxB,CAACtL,OAAO,UAAUsL,OAAO,KACzB,CAACtL,OAAO,YAASsL,OAAO,MAGtBC,G,4MAEFC,OAAS,G,EAETpO,MAAQ,CACJqO,QAAQ,EACRC,cAAc,EACdC,OAAO,EACPpW,gBAAgB,I,EAQpBsR,K,sBAAO,gCAAA7S,EAAA,sEAC2BoB,EAAGG,gBAAgBwB,UAD9C,cACGxB,EADH,OAEGkW,EAAUzT,MAASiP,KAAKjP,IAAOzC,EAAgB,GAAGoM,gBAAgBxJ,QAAQ,QAAQ,SAClFuT,EAAgBtC,KAAKC,IAAIhI,WAAW9L,EAAgB,GAAGoR,MAAMtF,WAAW9L,EAAgB,GAAG8R,gBAAgBhG,WAAW9L,EAAgB,GAAG4T,iBAH5I,SAIG,EAAKxL,SAAS,CAACgO,OAAOF,EAAQC,EAAcA,EAAcD,EAAQA,UAAQC,gBAAcnW,gBAAgBA,EAAgB,KAJ3H,OAKH,EAAKiW,OAAO7R,SAAQ,SAAAiS,GACX,OAALA,QAAK,IAALA,KAAOC,YANR,2C,EAUPC,SAAW,WACT,MAA+B,EAAK1O,MAA7BuO,EAAP,EAAOA,OACJA,EADH,EAAcD,eAEZ,EAAK/N,SAAS,CAACgO,OAAOA,EAAO,K,EAIjCI,SAAW,WACT,IAAOJ,EAAU,EAAKvO,MAAfuO,OACJA,EAAO,GACR,EAAKhO,SAAS,CAACgO,OAAOA,EAAO,K,EAIjCK,SAAW,WACT,EAAKnF,Q,4FA9BP,sBAAA7S,EAAA,sDACI8I,KAAK+J,OACL5M,IAFJ,gD,0EAiCA,WAAS,IAAD,OACJ,EAAuD6C,KAAKM,MAArDuO,EAAP,EAAOA,OAAOF,EAAd,EAAcA,QAAQC,EAAtB,EAAsBA,cAAcnW,EAApC,EAAoCA,gBACpC,OACI,gBAAC,IAAD,WACI,eAAC,GAAD,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAY4I,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWoE,SAAUoJ,GAAQ,EAAGjE,KAAK,QAAQ1J,MAAO2N,GAAQF,EAAQ,WAAW,SAAU9L,QAAS7C,KAAKiP,SAAvG,SAAiH,eAAC,IAAD,CAAS9N,KAAMgO,UAEpI,eAAC,IAAD,CAAY9N,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWoE,SAAUoJ,GAAQD,EAAehE,KAAK,QAAQ1J,MAAO2N,GAAQF,EAAQ,WAAW,SAAU9L,QAAS7C,KAAKgP,SAAnH,SAA6H,eAAC,IAAD,CAAS7N,KAAMiO,UAEhJ,gBAAC,IAAD,CAAWrJ,OAAO,OAAOtG,MAAO,CAACC,UAAU,UAAWwB,MAAO2N,GAAQF,EAAQ,WAAW,SAAU9L,QAAS7C,KAAKkP,SAAhH,oBAAkIL,EAAO,EAAzI,IAA6ID,EAAc,UAGnK,eAAC,IAAD,CAAYrP,UAAU,QAAtB,SAEIoK,GAAKjG,KAAI,SAAC2L,EAAIf,GAAL,OACLpT,MAASG,QAAQ,QAAQuB,IAAIiS,EAAOF,EAAQ,SAAS/R,IAAI0R,EAAE,QAAQlT,cAAcF,IAAOzC,EAAgBoM,gBAAgBjE,OAAO,gBAC3H,eAAC,GAAD,CACI8J,IAAK,SAAAzP,GAAC,OAAI,EAAKyT,OAAO3S,KAAKd,IAC3BiG,MAAOhG,MAASG,QAAQ,QAAQuB,IAAIiS,EAAOF,EAAQ,SAAS/R,IAAI0R,EAAE,QAAQgB,cAAgBpU,MAASoU,YAAc,gBAAa3Q,EAE9H3C,MAAOqT,EAAInM,OAAO,IAAIhI,MAASG,QAAQ,QAAQuB,IAAIiS,EAAOF,EAAQ,SAAS/R,IAAI0R,EAAE,QAAQ1N,OAAO,UAChGzF,MAAOD,MAASG,QAAQ,QAAQuB,IAAIiS,EAAOF,EAAQ,SAAS/R,IAAI0R,EAAE,QAAQ1N,UAFrEiO,EAAO,IAAIP,e,GAlEzBnO,IAAMC,WA8Ed2B,gBAAiB0M,IC3F1Bc,G,4MAEFb,OAAS,G,qDAET,WACIvR,IACA6C,KAAK0O,OAAO7R,SAAQ,SAAAiS,GACX,OAALA,QAAK,IAALA,KAAOC,c,oBAIf,WAAS,IAAD,OACJ,OACI,gBAAC,IAAD,WACI,eAAC,GAAD,IACA,eAAC,IAAD,CAAYxP,UAAU,QAAtB,SACI,eAAC,GAAD,CAAemL,IAAK,SAAAzP,GAAC,OAAI,EAAKyT,OAAO3S,KAAKd,IAAIE,MAAOD,MAAS0F,SAAU5E,MAAM,wC,GAhBvEmE,IAAMC,WAuBlB2B,gBAAiBwN,ICX1BC,G,4MAEFlP,MAAQ,CACJ/H,SAAU,CACNmU,iBAAkBxR,MAAS0B,KAAK,GAAG,SAASgE,SAC5CkI,OAAO,KAEXrQ,gBAAiB,CACbgU,iBAAiB,IACjBJ,gBAAgB,SAEpBoD,oBAAqB,GACrB7W,QAAS,CACP4I,SAAS,QACTG,aAAa,QACbC,SAAS,QACTC,YAAY,QACZC,KAAK,QACLvG,OAAO,KAETmU,MAAO,EACP3D,UAAKpN,G,EASTgR,sB,uCAAwB,WAAOpS,GAAP,SAAArG,EAAA,sEAChB,EAAK2J,SAAS,CAACtI,SAAS,2BAAI,EAAK+H,MAAM/H,UAAhB,mBAA0BgF,EAAEiD,OAAOpE,KAAMmB,EAAEkD,OAAOxB,UADzD,2C,wDAIxB2Q,qB,uCAAuB,WAAOrS,GAAP,SAAArG,EAAA,sEACf,EAAK2J,SAAS,CAACpI,gBAAgB,2BAAI,EAAK6H,MAAM7H,iBAAhB,mBAAiC8E,EAAEiD,OAAOpE,KAAMmB,EAAEkD,OAAOxB,UADxE,2C,wDAIvB4Q,c,uCAAgB,WAAOtS,GAAP,SAAArG,EAAA,sEACR,EAAK2J,SAAS,CAACjI,QAAQ,2BAAI,EAAK0H,MAAM1H,SAAhB,mBAAyB2E,EAAEiD,OAAOpE,KAAMmB,EAAEkD,OAAOxB,UAD/D,2C,wDAIhB6Q,oB,uCAAsB,WAAOvS,GAAP,SAAArG,EAAA,sEACd,EAAK2J,SAAS,CAACjI,QAAQ,2BAAI,EAAK0H,MAAM1H,SAAhB,IAAwB2C,OAAOgC,EAAEkD,OAAOC,QAAQ,IAAI,QAD5D,2C,wDAItBqP,iB,uCAAmB,WAAOC,EAAahE,EAAWC,GAA/B,qBAAA/U,EAAA,6DACRuB,EAAmB,EAAK6H,MAAxB7H,gBACDC,GAAgBsT,EAAIgE,GAAOxL,QAAQ,GACnC+F,EAA0B,IAAVyF,EAAcvX,EAAgBoR,KAAOoC,EACrDI,EAAkBC,KAAKC,IAAIyD,EAAM,KAAMxL,QAAQ,GAJtC,SAKT,EAAK3D,SAAS,CAACkL,KAAKiE,EAAMvX,gBAAgB,2BAAI,EAAK6H,MAAM7H,iBAAhB,IAAgCC,eAAa6R,gBAAc8B,sBAL3F,2C,4DA+CnB4D,U,sBAAY,oCAAA/Y,EAAA,+DACiC,EAAKoJ,MAAzC/H,EADG,EACHA,SAASE,EADN,EACMA,gBAAgBG,EADtB,EACsBA,QADtB,SAEJ8O,KAFI,uBAGS9P,EAAK,WAAW,CAACW,WAASE,kBAAgBG,YAHnD,OAGJsX,EAHI,OAIVvI,KACGuI,EAAKzY,MACNmP,GAAUsJ,EAAKzY,OAAO,uBAAuB,WAAW,UAExDf,OAAOC,SAASwB,KAAO,SARf,2C,4FArEZ,4BAAAjB,EAAA,sEACsCH,EAAI,2BAD1C,cACU0Y,EADV,gBAEUnX,EAAGE,wBAAwB8B,QAAQmV,GAF7C,uBAGUzP,KAAKa,SAAS,CAAC4O,wBAHzB,gD,0EA8BA,WAAS,IAAD,OACJ,EAA0EzP,KAAKM,MAAxE/H,EAAP,EAAOA,SAASK,EAAhB,EAAgBA,QAAQH,EAAxB,EAAwBA,gBAAgBgX,EAAxC,EAAwCA,oBAAoBC,EAA5D,EAA4DA,MAAM3D,EAAlE,EAAkEA,KAClE,OAAO2D,GACH,KAAK,EACH,OAAO,eAAC,GAAD,CACCnP,SAAUP,KAAK2P,sBACfnY,KAAMe,EACN4X,OAAQ,kBAAM,EAAKtP,SAAS,CAAC6O,MAAM,OAC7C,KAAK,EACH,OAAO,eAAC,GAAD,CACCU,mBAAoBpQ,KAAK2P,sBACzBnY,KAAMe,EACN2T,kBAAmBlM,KAAK4P,qBACxBnX,gBAAiBA,EACjB4X,OAAQ,kBAAM,EAAKxP,SAAS,CAAC6O,MAAM,KACnCS,OAAQ,kBAAM,EAAKtP,SAAS,CAAC6O,MAAM,KACnCD,oBAAqBA,IAC/B,KAAK,EACH,OAAO,eAAC,GAAD,CACClP,SAAUP,KAAK6P,cACfS,eAAgBtQ,KAAK8P,oBACrBtY,KAAMoB,EACNyX,OAAQ,kBAAM,EAAKxP,SAAS,CAAC6O,MAAM,KACnCS,OAAQ,kBAAM,EAAKtP,SAAS,CAAC6O,MAAM,OAC7C,KAAK,EACH,OAAO,eAAC,GAAD,CACCnP,SAAUP,KAAK4P,qBACfnX,gBAAiBA,EACjBsT,KAAMA,EACNS,aAAcxM,KAAK+P,iBACnBrG,QAASnR,EACTkX,oBAAqBA,EACrBY,OAAQ,kBAAM,EAAKxP,SAAS,CAAC6O,MAAM,KACnCS,OAAQnQ,KAAKiQ,YACvB,QACE,OAAO,8B,GAzFI9P,IAAMC,WA0GhB2B,gBAAiByN,IAE1Be,GAAkE,SAACtQ,GACrE,OACI,gBAAC,IAAD,WACI,eAAC,GAAD,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAYoB,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWmP,gBAAgB,OAAO/C,WAAW,SAA7C,SAAuD,eAAC,IAAD,CAAStM,KAAMsC,UAE1E,eAAC,IAAD,mCAGR,gBAAC,IAAD,CAAYlE,UAAU,QAAtB,UACI,wBAAM+F,SAAU,SAAA/H,GAA0C,OAApCA,EAAEU,iBAAkBgC,EAAMkQ,UAAiB,GAAjE,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,sBACA,eAAC,IAAD,CAAU5Q,UAAU,iBAAiBoG,KAAK,OAAO8K,WAAYvS,EAAW9B,KAAK,UAAUsU,UAAW,IAAKnP,YAAatB,EAAMM,SAAUiF,UAAQ,OAEhJ,gBAAC,IAAD,WACI,eAAC,IAAD,yBACA,eAAC,IAAD,CAAUjG,UAAU,iBAAiBoG,KAAK,OAAO8K,WAAYvS,EAAW9B,KAAK,YAAYsU,UAAW,IAAKnP,YAAatB,EAAMM,SAAUiF,UAAQ,OAElJ,gBAAC,IAAD,WACI,eAAC,IAAD,qBACA,eAAC,IAAD,CAAUjG,UAAU,iBAAiBoG,KAAK,QAAQvJ,KAAK,SAASsU,UAAW,IAAKnP,YAAatB,EAAMM,SAAUiF,UAAQ,OAEzH,gBAAC,IAAD,WACI,eAAC,IAAD,6BACA,eAAC,IAAD,CAAUjG,UAAU,iBAAiBoG,KAAK,WAAWvJ,KAAK,WAAWmF,YAAatB,EAAMM,SAAUiF,UAAQ,OAE9G,eAAC,IAAD,UACI,eAAC,IAAD,CAAYnE,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWuJ,KAAK,QAAQ1J,MAAM,UAAUyE,KAAK,SAA7C,2BAGR,eAAC,IAAD,CAAS7B,MAAM,OAAOvE,UAAU,QAAhC,SACI,sBAAKE,MAAO,CAAC1E,QAAQ,OAAO4V,eAAe,SAAShR,MAAM,QAA1D,SACI,sBAAKE,IAAK+Q,GAAc7Q,IAAI,UAAUR,UAAU,iBAAiBI,MAAO,SAGhF,eAAC,IAAD,CAASmE,MAAM,OAAOvE,UAAU,QAAhC,SACI,sBAAKE,MAAO,CAAC1E,QAAQ,OAAO4V,eAAe,SAAShR,MAAM,QAA1D,SACI,sBAAKE,IAAKgR,GAAY9Q,IAAI,mBAAmBR,UAAU,YAAYI,MAAO,aA9B1F,cAuCNmR,GAAyL,SAAC7Q,GAC5L,OACI,gBAAC,IAAD,WACI,eAAC,GAAD,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAYoB,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWmP,gBAAgB,OAAO/C,WAAW,SAA7C,SAAuD,eAAC,IAAD,CAAStM,KAAMsC,UAE1E,eAAC,IAAD,6CAGR,gBAAC,IAAD,CAAYlE,UAAU,QAAtB,UACI,wBAAM+F,SAAU,SAAA/H,GAA0C,OAApCA,EAAEU,iBAAkBgC,EAAMkQ,UAAiB,GAAjE,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,gCACA,eAAC,IAAD,CAAa1O,aAAa,cAAcC,cAAc,cAAcqP,gBAAiB5X,EAAaG,YAAa2F,MAAOgB,EAAMzI,KAAKkV,iBAAkB7G,IAAK3K,MAAS0B,KAAK,GAAG,SAASgE,OAAO,cAAekF,IAAK5K,MAAS0B,KAAK,IAAI,SAASgE,OAAO,cAAexE,KAAK,mBAAmBmF,YAAatB,EAAMmQ,wBAE7S,eAAC,IAAD,CAAStM,MAAM,OAAf,SACI,eAAC,IAAD,0GAEJ,gBAAC,IAAD,WACI,eAAC,IAAD,sBACA,gBAAC,IAAD,CAAWvC,YAAatB,EAAMmQ,mBAAoBnR,MAAOgB,EAAMzI,KAAKsR,OAApE,UACI,eAAC,IAAD,CAAiB7J,MAAM,IAAvB,uBACA,eAAC,IAAD,CAAiBA,MAAM,IAAvB,4BAGR,gBAAC,IAAD,WACI,eAAC,IAAD,2BACA,eAAC,IAAD,CAAUM,UAAU,iBAAiBoG,KAAK,SAAUC,KAAK,IAAIE,IAAI,MAAMD,IAAI,MAAMzJ,KAAK,SAASqU,WAAYnT,EAAaiE,YAAatB,EAAMmQ,mBAAoB5K,UAAQ,OAE3K,gBAAC,IAAD,WACI,eAAC,IAAD,yBACA,eAAC,IAAD,CAAUjG,UAAU,iBAAiBoG,KAAK,SAAUC,KAAK,IAAIE,IAAI,IAAID,IAAI,MAAMzJ,KAAK,OAAOqU,WAAYnT,EAAaiE,YAAatB,EAAMiM,kBAAmB1G,UAAQ,OAEtK,eAAC,IAAD,kCACA,eAAC,IAAD,UACI,eAAC,IAAD,CAAWjE,YAAatB,EAAMiM,kBAAmBjN,MAAOgB,EAAMxH,gBAAgBgU,iBAA9E,SAEIxM,EAAMwP,oBAAoB/L,KAAI,SAACuJ,EAAGrJ,GAAJ,OAC1B,eAAC,IAAD,CAAiB3E,MAAOgO,EAAGrT,GAA3B,SAAwCqT,EAAG/J,QAAPU,UAKhD,gBAAC,IAAD,CAAS1C,MAAM,WAAf,UACI,eAAC,IAAD,wDACA,gBAAC,IAAD,WACI,gBAAC,IAAD,CAASA,MAAM,WAAf,UACI,eAAC,IAAD,CAASC,KAAM6P,IAAY3P,KAAK,UAChC,6BAAI,+DAER,gBAAC,IAAD,CAASH,MAAM,WAAf,UACI,eAAC,IAAD,CAASC,KAAM8P,IAAc5P,KAAK,UAClC,6BAAI,gEAER,gBAAC,IAAD,CAASH,MAAM,WAAf,UACI,eAAC,IAAD,CAASC,KAAM+P,IAAS7P,KAAK,UAC7B,6BAAI,qDAIhB,gBAAC,IAAD,WACI,eAAC,IAAD,CAAYA,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWuJ,KAAK,QAAQ1J,MAAM,UAAUyE,KAAK,SAA7C,yBAEJ,eAAC,IAAD,CAAYtE,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWuJ,KAAK,QAAQ1J,MAAM,YAAYsP,gBAAgB,OAAO3N,QAAS5C,EAAMoQ,OAAhF,8BAxDhB,cAiENc,GAA6F,SAAClR,GAChG,OACI,gBAAC,IAAD,WACI,eAAC,GAAD,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAYoB,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWmP,gBAAgB,OAAO/C,WAAW,SAA7C,SAAuD,eAAC,IAAD,CAAStM,KAAMsC,UAE1E,eAAC,IAAD,mCAGR,gBAAC,IAAD,CAAYlE,UAAU,QAAtB,UACI,wBAAM+F,SAAU,SAAA/H,GAA0C,OAApCA,EAAEU,iBAAkBgC,EAAMkQ,UAAiB,GAAjE,UACA,eAAC,IAAD,CAASjP,MAAM,UAAf,SACQ,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,uBACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAatB,EAAMM,SAAUtB,MAAOgB,EAAMzI,KAAKgK,SAAUpF,KAAK,WAAWqF,aAAa,QAAQC,cAAc,iBAI/J,eAAC,IAAD,CAASR,MAAM,YAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,8BACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAatB,EAAMM,SAAUtB,MAAOgB,EAAMzI,KAAKmK,aAAcvF,KAAK,eAAeqF,aAAa,QAAQC,cAAc,iBAIvK,eAAC,IAAD,CAASR,MAAM,WAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,uBACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAatB,EAAMM,SAAUtB,MAAOgB,EAAMzI,KAAKoK,SAAUxF,KAAK,WAAWqF,aAAa,QAAQC,cAAc,iBAI/J,eAAC,IAAD,CAASR,MAAM,UAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,0BACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAatB,EAAMM,SAAUtB,MAAOgB,EAAMzI,KAAKqK,YAAazF,KAAK,cAAcqF,aAAa,QAAQC,cAAc,iBAIrK,eAAC,IAAD,CAASR,MAAM,UAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAASC,KAAMC,GAAaC,KAAK,UACjC,eAAC,IAAD,mBACA,eAAC,IAAD,CAAaC,WAAW,WAAWC,YAAatB,EAAMM,SAAUtB,MAAOgB,EAAMzI,KAAKsK,KAAM1F,KAAK,OAAOqF,aAAa,QAAQC,cAAc,iBAIvJ,eAAC,IAAD,CAASR,MAAM,SAAf,SACI,eAAC,IAAD,UACQ,gBAAC,IAAD,WACI,eAAC,IAAD,CAAaG,KAAK,QAAQH,MAAM,SAAS9E,KAAK,SAASsE,QAA+B,MAAtBT,EAAMzI,KAAK+D,OAAgBgG,YAAatB,EAAMqQ,iBAC9G,eAAC,IAAD,oCAIhB,gBAAC,IAAD,WACI,eAAC,IAAD,CAAYjP,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWuJ,KAAK,QAAQ1J,MAAM,UAAWyE,KAAK,SAA9C,yBAEJ,eAAC,IAAD,CAAYtE,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWuJ,KAAK,QAAQ1J,MAAM,YAAYsP,gBAAgB,OAAO3N,QAAS5C,EAAMoQ,OAAhF,8BA5DhB,cAqENe,GAAyM,SAACnR,GAAW,IAAD,EACtN,EAAgCA,EAAMxH,gBAA/BoR,EAAP,EAAOA,KAAK4C,EAAZ,EAAYA,iBACZ,EAAyCxM,EAAMyJ,QAAxCZ,EAAP,EAAOA,OAAOsB,EAAd,EAAcA,OAAOsC,EAArB,EAAqBA,iBACfC,EAAQpI,YAAW,UAAAtE,EAAMwP,oBAAoBvT,MAAK,SAAA0Q,GAAE,OAAIA,EAAGhT,KAAO6S,YAA/C,eAAkEE,QAAO,KAC5FE,GAAQ3R,IAAOwR,GAAkBvC,KAAKjP,MAAS,SAE/CmW,EAAqB,MAATvI,EAAa,KAAK,IAC9BgE,EAAqB,MAAThE,EAAa,KAAK,IAC9BiE,EAAuB,MAATjE,EAAa,EAAE,IAC7BwI,EAAqB,MAATxI,EAAa,GAAG,IAC5BkD,GAAOsF,EAAaD,EAAU/V,SAASuO,GAAUiD,EAAUD,EAASE,EAAYzR,SAAS8O,IAAUuC,EACzG9U,QAAQC,IAAI2U,EAAiB6E,EAAWD,EAAU/V,SAASuO,GAAQiD,EAAUD,EAAOE,EAAYzR,SAAS8O,GAASuC,GAClH,IAAM9D,EAAuB,IAAjBtE,WAAWsF,IAAatF,WAAW6F,GAAQ7F,WAAW6F,IAC5DrB,EAAYlB,GAAUiB,GAAQ5M,MAAK,SAAAjB,GAAC,OAAIA,EAAE6K,KAAK+C,GAAO5N,EAAE4K,IAAIgD,KAC5D0I,EAAc1J,GAAUiB,GAAQ5M,MAAK,SAAAjB,GAAC,MAAkB,YAAdA,EAAE8M,WAG5CkE,GAF0B,OAAXsF,QAAW,IAAXA,KAAa1L,IAAoB,OAAX0L,QAAW,IAAXA,KAAazL,IAErCvB,WAAW6F,GAAU,KAAQ7F,WAAW6F,GAAQ,MAAe,MAATtB,EAAa,EAAE,MAExF,OADAjR,QAAQC,IAAI,OAAOkU,GAEf,gBAAC,IAAD,WACI,eAAC,GAAD,UACI,gBAAC,IAAD,WACI,eAAC,IAAD,CAAY3K,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWmP,gBAAgB,OAAO/C,WAAW,SAA7C,SAAuD,eAAC,IAAD,CAAStM,KAAMsC,UAE1E,eAAC,IAAD,6CAGR,gBAAC,IAAD,CAAYlE,UAAU,QAAtB,UACI,wBAAM+F,SAAU,SAAA/H,GAA0C,OAApCA,EAAEU,iBAAkBgC,EAAMkQ,UAAiB,GAAjE,UACI,eAAC,GAAD,CAAcrH,OAAQ7I,EAAMyJ,QAAQZ,OAAQD,IAAKA,EAAKE,UAAWA,IACjE,gBAAC,IAAD,WACI,eAAC,IAAD,2BACA,eAAC,IAAD,CAAUxJ,UAAU,iBAAiBN,MAAO4K,EAAK,KAAMxG,UAAQ,OAEnE,gBAAC,IAAD,WACI,eAAC,IAAD,0BACA,eAAC,IAAD,CAAU9D,UAAU,iBAAiBN,MAAOgN,EAAWzH,QAAQ,GAAG,KAAMnB,UAAQ,OAEpF,eAAC,IAAD,oBACA,gBAAC,IAAD,CAAepE,MAAOgB,EAAM8L,KAAMxK,YAAa,SAAAhE,GAAC,OAAI0C,EAAMuM,aAAajP,EAAEkD,OAAOxB,MAAM+M,EAAIC,IAA1F,UACA,gBAAC,IAAD,CAASnI,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,OAAQ,MAC/B,eAAC,IAAD,mCAEJ,gBAAC,IAAD,CAAS6E,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,OAAQ,MAC/B,eAAC,IAAD,qCAEJ,gBAAC,IAAD,CAAS6E,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,MAAO,IAC9B,eAAC,IAAD,+BAEJ,gBAAC,IAAD,CAAS6E,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,MAAO,MAC9B,eAAC,IAAD,qCAEJ,gBAAC,IAAD,CAAS6E,MAAM,OAAf,UACI,eAAC,IAAD,CAAUzC,KAAK,QAAQpC,MAAO,MAC9B,eAAC,IAAD,sCAGJ,gBAAC,IAAD,gBAEuBN,IAAfsB,EAAM8L,MACF,eAAC,IAAD,CAAY1K,KAAK,MAAjB,SACI,eAAC,IAAD,CAAWuJ,KAAK,QAAQ1J,MAAM,UAAUyE,KAAK,SAA7C,yBAIZ,eAAC,IAAD,CAAYtE,KAAK,QAAjB,SACI,eAAC,IAAD,CAAWuJ,KAAK,QAAQ1J,MAAM,YAAYsP,gBAAgB,OAAO3N,QAAS5C,EAAMoQ,OAAhF,8BA3ChB,cCnWNmB,G,4MAEFrE,O,uCAAS,WAAO5P,GAAP,SAAArG,EAAA,0F,kGAIT,WACI,OACI,eAAC,IAAD,UACI,eAAC,IAAD,CAAYmW,YAAU,EAAC9N,UAAU,sBAAjC,SACI,uBAAMA,UAAU,eAAe+F,SAAUtF,KAAKmN,OAA9C,SACI,gBAAC,IAAD,CAASrJ,MAAM,OAAOvE,UAAU,QAAQC,KAAK,KAA7C,UACI,eAAC,IAAD,CAASsE,MAAM,OAAOvE,UAAU,QAAhC,SACI,sBAAKE,MAAO,CAACC,UAAU,SAAS3E,QAAQ,QAAQ4E,MAAM,QAAtD,SACI,sBAAKE,IAAKC,GAAMC,IAAI,UAAUJ,MAAO,UAG7C,eAAC,IAAD,CAASmE,MAAM,OAAOvE,UAAU,QAAhC,SACI,qBAAGE,MAAO,CAACC,UAAU,SAAS3E,QAAQ,QAAQ4E,MAAM,KAApD,0GACoF,wBAAK,wBADzF,uJAKJ,eAAC,IAAD,CAAWuB,MAAM,WAAWuM,WAAW,SAAS1H,OAAO,QAAQ6E,KAAK,QAApE,SAA6E,oBAC7E,eAAC,IAAD,CAAS9G,MAAM,OAAOvE,UAAU,QAAhC,SACI,sBAAKE,MAAO,CAACC,UAAU,SAAS3E,QAAQ,QAAQ4E,MAAM,QAAtD,SACI,sBAAKE,IAAK6N,GAAU3N,IAAI,UAAUJ,MAAO,SAGjD,eAAC,IAAD,CAASmE,MAAM,OAAOvE,UAAU,QAAhC,SACI,sBAAKE,MAAO,CAACC,UAAU,SAAS3E,QAAQ,QAAQ4E,MAAM,QAAtD,SACI,sBAAKE,IAAK8N,GAAS5N,IAAI,UAAUJ,MAAO,uB,GA/BnDQ,IAAMC,WA0ChB2B,gBAAiByP,I,kBC1C1BC,GAAU,0CAEVC,G,4MAEFpR,MAAQ,CACJpG,MAAO,GACPyX,YAAOhT,EACPiT,UAAU,I,EAOdvH,Q,sBAAU,kCAAAnT,EAAA,6DACA2a,EAAM,IAAIC,kBAAeL,IADzB,SAE8BI,EAAIE,oBAAoB,qCAAqC,GAAG,CAACC,MAAM,SAFrG,gBAEC9X,EAFD,EAECA,MAAM+X,EAFP,EAEOA,cACV/X,GAASA,EAAMG,OAAS,GACvB,EAAKwG,SAAS,CAAC3G,QAAM0X,UAAUK,EAAcN,OAAOzX,EAAM,KAJxD,2C,EAQVgY,U,sBAAY,kCAAAhb,EAAA,6DACF2a,EAAM,IAAIC,kBAAeL,IADvB,SAEeI,EAAIE,oBAAoB,qCAAqC,GAAG,CAACC,MAAM,OAAOJ,UAAU,EAAKtR,MAAMsR,YAFlH,OAEF7Z,EAFE,OAGDmC,EAAuBnC,EAAvBmC,MAAM+X,EAAiBla,EAAjBka,cACb,EAAKpR,SAAS,CAAC+Q,UAAUK,EAAc/X,MAAM,EAAKoG,MAAMpG,MAAMrD,OAAOqD,KAJ7D,2C,4FAZZ,sBAAAhD,EAAA,sEACU8I,KAAKqK,UADf,gD,0EAmBA,WAAS,IAAD,OACJ,EAAiCrK,KAAKM,MAA/BsR,EAAP,EAAOA,UAAU1X,EAAjB,EAAiBA,MAAMyX,EAAvB,EAAuBA,OACvB,OACI,gBAAC,IAAD,WACI,eAAC,GAAD,UAEQA,GACI,eAAC,IAAD,UACI,eAAC,KAAD,CAASQ,QAASR,EAAOS,QAAQC,WAAWF,QAASG,KAAM,CAAC3S,MAAM,OAAOuJ,OAAO,eAKhG,gBAAC,IAAD,CAAY3J,UAAU,cAAtB,UACI,eAAC,IAAD,CAASA,UAAU,QAAnB,SAEIrF,EAAMwJ,KAAI,SAAC6O,EAAMjE,GAAP,qBACD,OAALiE,QAAK,IAALA,GAAA,UAAAA,EAAOH,eAAP,mBAAgBI,kBAAhB,eAA4BC,OACxB,gBAAC,IAAD,CAAiB5O,QAAM,EAAChB,QAAS,kBAAM,EAAKhC,SAAS,CAAC8Q,OAAOY,KAAShT,UAAU,QAAhF,UACI,sBAAKM,IAAG,OAAE0S,QAAF,IAAEA,GAAF,UAAEA,EAAOH,eAAT,iBAAE,EAAgBI,kBAAlB,iBAAE,EAA4BC,YAA9B,aAAE,EAAkCC,IAAK3S,IAAI,GAAGN,MAAO,CAACE,MAAM,KAAM0B,KAAK,UACjF,iCAAQkR,EAAMH,QAAQpW,UAFZsS,QAQ1B,eAAC,IAAD,CAAmB7I,UAAWmM,EAC1Be,cAAe3S,KAAKkS,UADxB,SAEI,eAAC,IAAD,CAA0BU,YAAY,uC,GAvDtCzS,IAAMC,WA+Df2B,gBAAiB2P,IC4GjBmB,I,mNA9HbvS,MAAQ,CACNwS,aAAa,GACb1Q,MAAK,G,EASP2Q,kB,sBAAoB,sBAAA7b,EAAA,sEACO8b,IAAkBlY,mBADzB,OAEQ,WAFR,OAEJmY,UACZD,IAAkBE,YAAY,mCAAkC,SAAA3V,GAC9D,EAAKsD,SAAS,CAACiS,aAAavV,EAAEuV,aAAa1Q,MAAK,OAElD4Q,IAAkBE,YAAY,qBAAoB,SAACzb,GACjDI,QAAQJ,MAAMA,MAEhBub,IAAkBE,YAAY,gBAAe,SAACC,GAC5CC,IAAIC,WACD/b,MAAK,SAACgc,GAAD,OAAQzb,QAAQC,IAAI,cAAcwb,EAAEH,UACzCzb,OAAM,SAAC6b,GAAD,OAAS1b,QAAQJ,MAAM8b,MAChCH,IAAII,YAAY,CAAEC,MAAO,WAE3BT,IAAkBU,YAfF,2C,uDANpB,WACQrV,aAAW,YACb2B,KAAK+S,sB,oBAuBX,WAAS,IAAD,mBACN,EAA4B/S,KAAKM,MAA1BwS,EAAP,EAAOA,aAAa1Q,EAApB,EAAoBA,KACpB,OACE,gBAAC,IAAD,WACE,eAAC,IAAD,UAEI7D,EAAeC,UACb,gBAAC,IAAD,WACE,gBAAC,IAAD,WACE,eAAC,IAAD,CAAOmV,OAAK,EAAC3c,KAAK,QAAQ4c,UAAWrK,KACrC,eAAC,IAAD,CAAOoK,OAAK,EAAC3c,KAAK,YAAY4c,UAAWrE,KACzC,eAAC,IAAD,CAAOoE,OAAK,EAAC3c,KAAK,QAAQ4c,UAAWnF,KACrC,eAAC,IAAD,CAAOkF,OAAK,EAAC3c,KAAK,aAAa4c,UAAW5N,KAC1C,eAAC,IAAD,CAAO2N,OAAK,EAAC3c,KAAK,WAAW4c,UAAWvT,KACxC,eAAC,IAAD,CAAOsT,OAAK,EAAC3c,KAAK,UAAU4c,UAAWlC,KACvC,eAAC,IAAD,CAAOiC,OAAK,EAAC3c,KAAK,IAAlB,SACE,eAAC,IAAD,CAAU6c,GAAG,eAGjB,gBAAC,IAAD,CAAWxS,KAAK,SAAhB,UACE,eAAC,IAAD,CAAc+H,IAAI,OAAOjR,KAAK,QAA9B,SACE,eAAC,IAAD,CAASgJ,KAAM2S,MAEjB,eAAC,IAAD,CAAc1K,IAAI,WAAWjR,KAAK,YAAlC,SACE,eAAC,IAAD,CAASgJ,KAAM4S,OAEjB,eAAC,IAAD,CAAc3K,IAAI,OAAOjR,KAAK,QAA9B,SACE,eAAC,IAAD,CAASgJ,KAAM6S,MAEjB,eAAC,IAAD,CAAc5K,IAAI,YAAYjR,KAAK,aAAnC,SACE,eAAC,IAAD,CAASgJ,KAAM8S,MAEjB,eAAC,IAAD,CAAc7K,IAAI,UAAUjR,KAAK,WAAjC,SACE,eAAC,IAAD,CAASgJ,KAAMC,MAEjB,eAAC,IAAD,CAAcgI,IAAI,SAASjR,KAAK,UAAhC,SACE,eAAC,IAAD,CAASgJ,KAAM+S,aAKrB,gBAAC,IAAD,WACE,eAAC,IAAD,CAAOld,KAAK,IAAI2c,OAAK,EAACC,UAAWpC,KACjC,eAAC,IAAD,CAAOxa,KAAK,SAAS2c,OAAK,EAACC,UAAW1G,KACtC,eAAC,IAAD,CAAOlW,KAAK,YAAY2c,OAAK,EAACC,UAAWpE,UAKjD,gBAAC,IAAD,CAAUjM,OAAQnB,EAAMoB,aAAc,kBAAM,EAAK3C,SAAS,CAACuB,MAAK,KAAhE,UACE,eAAC,IAAD,UACE,gBAAC,IAAD,WACE,eAAC,IAAD,CAAYf,KAAK,QAAjB,SACE,eAAC,IAAD,CAAWwB,QAAS,kBAAM,EAAKhC,SAAS,CAACuB,MAAK,KAA9C,SAAuD,eAAC,IAAD,CAASjB,KAAMsC,UAExE,eAAC,IAAD,WAAW,UAAAqP,EAAatb,YAAb,eAAmBwE,QAAS8W,EAAa9W,aAGxD,gBAAC,IAAD,YAEK8W,EAAatb,MACZ,eAAC,IAAD,CAASsM,MAAM,OAAf,SACEgP,EAAazW,OAKjByW,EAAatb,MACX,eAAC,IAAD,CAASsM,MAAM,OAAf,UACE,UAAAgP,EAAatb,YAAb,eAAmB2c,QAAU,sBAAKtU,IAAG,UAAEiT,EAAatb,YAAf,aAAE,EAAmB2c,MAAO5U,UAAU,YAAYQ,IAAI,OAK/F+S,EAAatb,MACX,eAAC,IAAD,CAASsM,MAAM,OAAf,mBACIgP,EAAatb,YADjB,aACI,EAAmB6E,QAKzB,UAAAyW,EAAatb,YAAb,eAAmB4c,OACjB,eAAC,IAAD,CAAWjc,KAAI,UAAE2a,EAAatb,YAAf,aAAE,EAAmB4c,KAAM5T,OAAO,SAAjD,2BAIDsS,EAAatb,MACZ,eAAC,IAAD,CAAWW,KAAM2a,EAAasB,KAAM5T,OAAO,SAA3C,uC,GAvHEL,IAAMC,YCxCJiU,QACW,cAA7B3d,OAAOC,SAAS2d,UAEe,UAA7B5d,OAAOC,SAAS2d,UAEhB5d,OAAOC,SAAS2d,SAASC,MAAM,2DCfnC,IAYeC,GAZS,SAACC,GACnBA,GAAeA,aAAuBC,UACxC,+BAAqBpd,MAAK,YAAkD,IAA/Cqd,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,OCEd,SAASO,KACPC,IAASC,OACP,eAAC,IAAMC,WAAP,UACE,eAAC,GAAD,MAEF1X,SAAS2X,eAAe,SAP5Bla,IAAOma,OAAO,KAAKlc,GAWfkF,aAAW,WAGb2W,KAFAvX,SAAS6X,iBAAiB,cAAeN,IAAU,GF+G/C,kBAAmBnb,WACrBA,UAAU0b,cAAcC,MACrBle,MAAK,SAACme,GACLA,EAAaC,gBAEdhe,OAAM,SAACD,GACNI,QAAQJ,MAAMA,EAAMoP,YExG5B2N,M,mBClCA,IAAI9Q,EAAM,CACT,8BAA+B,CAC9B,IACA,GAED,uBAAwB,CACvB,IACA,GAED,uBAAwB,CACvB,IACA,GAED,0BAA2B,CAC1B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,sBAAuB,CACtB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,mCAAoC,CACnC,IACA,IAED,uBAAwB,CACvB,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,uBAAwB,CACvB,IACA,GAED,uBAAwB,CACvB,IACA,IAED,yBAA0B,CACzB,IACA,GAED,8BAA+B,CAC9B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,gCAAiC,CAChC,IACA,KAGF,SAASiS,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEpS,EAAKkS,GAC9B,OAAOG,QAAQC,UAAU1e,MAAK,WAC7B,IAAIiG,EAAI,IAAI0Y,MAAM,uBAAyBL,EAAM,KAEjD,MADArY,EAAE2Y,KAAO,mBACH3Y,KAIR,IAAI4Y,EAAMzS,EAAIkS,GAAMhc,EAAKuc,EAAI,GAC7B,OAAON,EAAoBtY,EAAE4Y,EAAI,IAAI7e,MAAK,WACzC,OAAOue,EAAoBjc,MAG7B+b,EAAoB/S,KAAO,WAC1B,OAAOwT,OAAOxT,KAAKc,IAEpBiS,EAAoB/b,GAAK,GACzByc,EAAOC,QAAUX,G,mBChMjB,IAAIjS,EAAM,CACT,sBAAuB,CACtB,IACA,KAGF,SAASiS,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEpS,EAAKkS,GAC9B,OAAOG,QAAQC,UAAU1e,MAAK,WAC7B,IAAIiG,EAAI,IAAI0Y,MAAM,uBAAyBL,EAAM,KAEjD,MADArY,EAAE2Y,KAAO,mBACH3Y,KAIR,IAAI4Y,EAAMzS,EAAIkS,GAAMhc,EAAKuc,EAAI,GAC7B,OAAON,EAAoBtY,EAAE4Y,EAAI,IAAI7e,MAAK,WACzC,OAAOue,EAAoBjc,MAG7B+b,EAAoB/S,KAAO,WAC1B,OAAOwT,OAAOxT,KAAKc,IAEpBiS,EAAoB/b,GAAK,GACzByc,EAAOC,QAAUX,I","file":"static/js/main.1c9f7868.chunk.js","sourcesContent":["import axios, { AxiosRequestConfig } from \"axios\"\n\nconst protocol = window.location.protocol\nconst slashes = protocol.concat(\"//\")\n\nexport const BASE_PATH = slashes.concat(window.location.host)\n\nconst HOST = !process.env.NODE_ENV || process.env.NODE_ENV === 'development' ? \"http://localhost/servicios/index.php/rest/contador_calorias/\" : \"https://www.acromax.com.ec/servicios/index.php/rest/contador_calorias/\"\n\n//Get\nexport const get = async (path:string, options?:AxiosRequestConfig, server:string = HOST) => {\n return await axios.get(server+path,setCommonConfigs(options))\n .then( p => p.data || { error: \"Sin datos\"} as Array | iRespuesta)\n .catch(cathError)\n}\n\n//Post\nexport const post = async (path:string,data?:any,options?:AxiosRequestConfig, server:string = HOST) => {\n return await axios.post(server+path,data,setCommonConfigs(options))\n .then( p => p.data || { error: \"Sin datos\"} as Array | iRespuesta)\n .catch(cathError)\n}\n\n//Put\nexport const put = async (path:string,data?:any,options?:AxiosRequestConfig, server:string = HOST) => {\n return await axios.put(server+path,data,setCommonConfigs(options))\n .then( p => p.data || { error: \"Sin datos\"} as Array | iRespuesta)\n .catch(cathError)\n}\n\n//Delete\nexport const del = async (path:string,options?:AxiosRequestConfig, server:string = HOST) => {\n return await axios.delete(server+path,setCommonConfigs(options))\n .then( p => p.data || { error: \"Sin datos\"} as Array | iRespuesta)\n .catch(cathError)\n}\n\n//Captura el error\nfunction cathError(error:any){\n console.log(error)\n if(error && error.response){\n if(error.response.status === 401){\n window.localStorage.clear()\n window.location.href = \"/login\";\n }\n return error.response.data || { error : \"error_servicio\" } as iRespuesta\n }else{\n return { error : \"error_servicio\" } as iRespuesta\n }\n}\n\n//Interfaz respuesta\nexport interface iRespuesta{\n response?: boolean,\n error?: string\n data?: any,\n total?: number\n}\n\n//Cabeceras en comun\nfunction setCommonConfigs(options?:AxiosRequestConfig){\n var _options = {} as AxiosRequestConfig\n if(options){\n _options = {...options}\n }\n _options.headers = {..._options.headers}\n return _options\n}","import Dexie from \"dexie\";\nimport IActividadFisica from \"../interfaces/IActividadFisica\";\nimport IAlarma from \"../interfaces/IAlarma\";\nimport IAlimento from \"../interfaces/IAlimento\";\nimport ICaloriasDia from \"../interfaces/ICaloriasDia\";\nimport IDatosIniciales from \"../interfaces/IDatosIniciales\";\nimport IParam from \"../interfaces/IParam\";\nimport IPesoSemanal from \"../interfaces/IPesoSemanal\";\nimport IUsuario from \"../interfaces/IUsuario\";\n\nclass AcrofitDatabase extends Dexie{\n public usuarios:Dexie.Table;\n public cat_actividades_fisicas:Dexie.Table;\n public datos_iniciales:Dexie.Table;\n public calorias_dia:Dexie.Table;\n public params:Dexie.Table;\n public alarmas:Dexie.Table;\n public alimentos:Dexie.Table;\n public pesos_semanales:Dexie.Table;\n\n constructor() { \n super(\"bdd_contador_calorias\");\n \n //\n // Define tables and indexes\n // (Here's where the implicit table props are dynamically created)\n //\n this.version(1).stores({\n usuarios: \"id,correo,nombres,apellidos,altura,genero,fecha_nacimiento,last_update\",\n cat_actividades_fisicas: \"id,valor,nombre\",\n datos_iniciales: \"id,edad,peso,actividad_fisica,fecha_registro,calorias_dia,peso_objetivo,kilos_semanales\",\n calorias_dia:\"fecha_registro,datos_iniciales_id,fecha,detalle,calorias,id,horario_comida,alimento,cantidad\",\n params:\"param,value\",\n alarmas:\"usuario_id,desayuno,media_manana,almuerzo,media_tarde,cena,activo,last_update\",\n alimentos:\"id,nombre,porcion,equivalencia,calorias,estado,categoria,foto,usuario_id,personalizado\",\n pesos_semanales:\"fecha_registro,datos_iniciales,peso\"\n });\n \n // The following lines are needed for it to work across typescipt using babel-preset-typescript:\n this.usuarios = this.table(\"usuarios\");\n this.cat_actividades_fisicas = this.table(\"cat_actividades_fisicas\");\n this.datos_iniciales = this.table(\"datos_iniciales\");\n this.calorias_dia = this.table(\"calorias_dia\");\n this.params = this.table(\"params\");\n this.alarmas = this.table(\"alarmas\");\n this.alimentos = this.table(\"alimentos\");\n this.pesos_semanales = this.table(\"pesos_semanales\");\n }\n}\n\nconst db = new AcrofitDatabase();\nexport default db;","import { LocalNotifications, LocalNotificationSchema } from \"@capacitor/local-notifications\"\nimport moment from \"moment\"\nimport ICaloriasDia from \"../interfaces/ICaloriasDia\"\nimport IDatosIniciales from \"../interfaces/IDatosIniciales\"\nimport { get, post } from \"../Rest\"\nimport db from \"./Database\"\n\nexport const LOCAL_CONFIG = {\n months : 'enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre'.split(','),\n monthsShort : 'ene,feb,mar,abr,may,jun,jul,ago,sep,oct,nov,dic'.split(','),\n monthsParseExact : true,\n weekdays : 'domingo,lunes,martes,miércoles,jueves,viernes,sábado,domingo'.split(','),\n weekdaysShort : 'dom,lun,mar,mie,jue,vie,sab'.split(','),\n weekdaysMin : 'Do,Lu,Ma,Mi,Ju,Vi,Sa'.split(',')\n}\n\nexport async function sync_calorias_dia(datos_iniciales?:IDatosIniciales){\n if(datos_iniciales && datos_iniciales.id && window.navigator.onLine){\n const items = await db.calorias_dia.filter(f => !f.id).toArray()\n const items_del = await db.calorias_dia.filter(f => f.id==\"-1\").toArray()\n const response_items = await post(\"sync_calorias_dia/\"+datos_iniciales.id,{items,items_del})\n await db.calorias_dia.clear()\n if(response_items && response_items.length){\n await db.calorias_dia.bulkPut(response_items)\n }\n }\n}\n\nexport async function clearAlarms(){\n const alarmas = await LocalNotifications.getPending()\n if(alarmas.notifications.length > 0){\n await LocalNotifications.cancel(alarmas)\n }\n}\n\nexport async function updateAlarma(){\n await LocalNotifications.requestPermissions()\n const permisions = await LocalNotifications.checkPermissions()\n if(permisions.display !== \"denied\"){\n const alarma = await db.alarmas.toArray()\n const datos_iniciales = await db.datos_iniciales.toArray()\n const calorias_dia = await db.calorias_dia.filter(c => moment(c.fecha).isSameOrAfter(moment().startOf('day'))&&parseInt(c.id)>0).toArray()\n await clearAlarms()\n if(alarma.length > 0 && datos_iniciales.length > 0 && parseInt(alarma[0].activo)>0){\n //Establece las alarmas\n setAlarmas(alarma[0],datos_iniciales[0],calorias_dia)\n }\n }\n}\n\n//Setea cada alarma\nasync function setAlarmas(alarma:any,datos_iniciales:IDatosIniciales,calorias_dia:Array){\n //Set alarmas\n const dias_alarma = formatMensajeCalorias(calorias_dia)\n const json_alarma = [] as Array\n let cont = 1\n for(let fecha in dias_alarma){\n for(let cod in dias_alarma[fecha]){\n if(moment(fecha+\" \"+alarma[cod]).isAfter(moment())){\n json_alarma.push({\n id:cont++,\n title: \"Recuerda tu \"+horarios_comida.find(h => h.cod === cod)?.name,\n body: dias_alarma[fecha][cod],\n sound: \"sonido_acromax.wav\",\n smallIcon:\"ic_stat_name\",\n schedule: {\n at: moment(fecha+\" \"+alarma[cod]).toDate()\n }\n })\n }\n }\n }\n json_alarma.push({\n id:cont,\n title:\"Registra tu PESO\",\n body:\"Ya ha pasado una semana, te recomendamos registrar tu peso\",\n smallIcon:'res://drawable/ic_stat_name',\n schedule: {\n every: 'week',\n at: moment().startOf('isoWeek').add(1, 'week').startOf(\"day\").add(10,\"hours\").toDate()\n }\n })\n await LocalNotifications.schedule({\n notifications:json_alarma\n })\n}\n\nexport function formatMensajeCalorias(calorias_dia:Array){\n const dias_alarma = {} as any\n calorias_dia.forEach(cal => {\n const horario = horarios_comida.find(h => h.name == cal.horario_comida)\n if(horario){\n if(!dias_alarma[cal.fecha]){\n dias_alarma[cal.fecha] = {}\n }\n if(!dias_alarma[cal.fecha][horario.cod]){\n dias_alarma[cal.fecha][horario.cod] = \"\"\n }\n dias_alarma[cal.fecha][horario.cod]+=cal.detalle+\" x\"+(cal.cantidad||1)+\"\\n\"\n }\n })\n return dias_alarma\n}\n\nexport const horarios_comida = [\n {name:\"Desayuno\",cod:\"desayuno\"},\n {name:\"Media mañana\",cod:\"media_manana\"},\n {name:\"Almuerzo\",cod:\"almuerzo\"},\n {name:\"Media tarde\",cod:\"media_tarde\"},\n {name:\"Cena\",cod:\"cena\"}\n] as Array\n\nexport interface IHorarioComida{\n name:string,\n cod:string\n}\n\nexport const syncAlimentos = async () => {\n if(navigator.onLine){ //Actualiza catálogo si existe internet\n const user = await db.usuarios.toArray()\n const productos = await get(\"cat/alimentos?user=\"+user[0].id)\n await db.alimentos.bulkPut(productos)\n }\n}\n\nexport function soloNumeros(e:any){\n var tecla = (document.all) ? e.keyCode : e.which;\n\n //Tecla de retroceso para borrar, siempre la permite\n if (tecla == 8 || tecla == 9 || tecla == 13 || tecla == 16 || tecla == 17 || tecla == 18 || tecla == 32) {\n return true;\n }\n\n // Patron de entrada, en este caso solo acepta numeros y letras\n var patron = /[0-9]/;\n var tecla_final = String.fromCharCode(tecla);\n if(!patron.test(tecla_final)){\n e.preventDefault();\n return false;\n }\n return true;\n}\n\nexport function soloTexto(e:any){\n var tecla = (document.all) ? e.keyCode : e.which;\n\n //Tecla de retroceso para borrar, siempre la permite\n if (tecla == 8 || tecla == 9 || tecla == 13 || tecla == 16 || tecla == 17 || tecla == 18 || tecla == 32) {\n return true;\n }\n\n // Patron de entrada, en este caso solo acepta numeros y letras\n var patron = /[A-Za-záéíóúÁÉÍÓÚñÑ]/;\n var tecla_final = String.fromCharCode(tecla);\n if(!patron.test(tecla_final)){\n e.preventDefault();\n return false;\n }\n return true;\n}\n\nexport function soloNumerosLetras(e:any){\n var tecla = (document.all) ? e.keyCode : e.which;\n\n //Tecla de retroceso para borrar, siempre la permite\n if (tecla == 8 || tecla == 9 || tecla == 13 || tecla == 16 || tecla == 17 || tecla == 18 || tecla == 32) {\n return true;\n }\n\n // Patron de entrada, en este caso solo acepta numeros y letras\n var patron = /[A-Za-z0-9\\-_.]/;\n var tecla_final = String.fromCharCode(tecla);\n if(!patron.test(tecla_final)){\n e.preventDefault();\n return false;\n }\n return true;\n}","import { isPlatform } from \"@ionic/react\";\n\nexport function setItem(key:string,value:string){\n if(isPlatform(\"desktop\")){\n window.sessionStorage.setItem(key,value);\n }else{\n window.localStorage.setItem(key,value)\n }\n}\n\nexport function removeItem(key:string){\n if(isPlatform(\"desktop\")){\n window.sessionStorage.removeItem(key);\n }else{\n window.localStorage.setItremoveItemem(key)\n }\n}\n\nexport function getItem(key:string){\n if(isPlatform(\"desktop\")){\n return window.sessionStorage.getItem(key);\n }else{\n return window.localStorage.getItem(key)\n }\n}","import { LocalNotifications } from \"@capacitor/local-notifications\"\nimport { post } from \"../Rest\"\nimport db from \"./Database\"\nimport { clearAlarms, updateAlarma } from \"./Funciones\"\nimport { getItem, setItem } from \"./Storage\"\n\n/**\n * Metodos de autenticacion y cierrre de sesión\n */\nexport const Authentication = {\n loginData: getItem(\"contcal_login\") ? JSON.parse(getItem(\"contcal_login\")||\"{}\") : undefined,\n login: async (login_obj:any) => {\n const login_res = await post(\"login\",login_obj)\n console.log(login_res)\n if(!login_res.error){\n await clearSession()\n await db.usuarios.put(login_res.usuarios)\n await db.datos_iniciales.put(login_res.datos_iniciales)\n await db.alarmas.put(login_res.alarmas)\n await db.pesos_semanales.bulkPut(login_res.pesos_semanales)\n await updateAlarma()\n setItem(\"contcal_login\",\"true\")\n return {response:true}\n }else{\n return {response:false,error:login_res.error}\n }\n },\n logout: async () => {\n await clearSession()\n Authentication.loginData = undefined\n window.location.href = \"/login\"\n }\n}\n\n/**\n * Elimina los datos de sesión\n */\nasync function clearSession(){\n window.sessionStorage.clear()\n window.localStorage.clear()\n await db.delete()\n await db.open()\n //Limpiar notificaciones locales\n await clearAlarms()\n}","export default __webpack_public_path__ + \"static/media/icon_alarmas.828f44bc.svg\";","export default __webpack_public_path__ + \"static/media/icon_alimentos.8f4c1ae2.svg\";","export default __webpack_public_path__ + \"static/media/icon_detalle.4a7a199d.svg\";","export default __webpack_public_path__ + \"static/media/icon_plan.05eaf8f9.svg\";","export default __webpack_public_path__ + \"static/media/icon_registro.a6cf12d7.svg\";","export default __webpack_public_path__ + \"static/media/icon_videos.baa935bd.svg\";","export default __webpack_public_path__ + \"static/media/logo.4e1fe047.svg\";","import { IonHeader, IonToolbar } from \"@ionic/react\";\nimport React from \"react\";\nimport logo from \"../images/logo.svg\";\n\nexport default class AcrofitHeader extends React.Component{\n\n render (){\n return (\n \n \n
\n \"Acrofit\"\n
\n
\n {\n this.props.children\n }\n
\n )\n }\n}","export default __webpack_public_path__ + \"static/media/icon_alarma.b2c5be49.svg\";","import { IonCard, IonCardContent, IonCheckbox, IonContent, IonDatetime, IonIcon, IonItem, IonLabel, IonList, IonPage, withIonLifeCycle } from \"@ionic/react\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport AcrofitHeader from \"../components/AcrofitHeader\";\nimport db from \"../components/Database\";\nimport { updateAlarma } from \"../components/Funciones\";\nimport { get, post } from \"../Rest\";\nimport IAlarma from \"../interfaces/IAlarma\";\nimport icon_alarma from \"../images/icon_alarma.svg\"\n\nclass AlarmasPage extends React.Component{\n\n state = {\n alarma:{} as IAlarma\n }\n\n async ionViewDidEnter(){\n if(navigator.onLine){\n const {id} = await (await db.usuarios.toArray()).reduce(f => f)\n const local_data = await (await db.alarmas.toArray()).reduce(a => a)\n const server_data = await get(\"alarmas/\"+id)\n if(!local_data.last_update || moment(local_data.last_update).isBefore(moment(server_data.last_update))){\n await db.alarmas.put(server_data)\n }\n else if(moment(server_data.last_update).isBefore(moment(local_data.last_update))){\n await post(\"alarmas\",local_data)\n }\n }\n const alarma = await (await db.alarmas.toArray()).reduce(a => a)\n await this.setState({alarma})\n await updateAlarma()\n }\n\n onChange = async (e:any) => {\n const {alarma} = this.state as any\n if(e.target.name === \"activo\"){\n alarma[e.target.name] = e.detail.checked?\"1\":\"0\"\n }else{\n alarma[e.target.name] = e.detail.value\n }\n alarma.last_update = moment().format(\"YYYY-MM-DD HH:mm:ss\")\n if(navigator.onLine){\n await post(\"alarmas\",alarma)\n }\n await db.alarmas.put(alarma)\n await this.setState({alarma})\n await updateAlarma()\n }\n\n render(){\n const {alarma} = this.state\n return (\n \n \n \n \n \n \n \n Desayuno\n \n \n \n \n \n \n \n \n Media mañana\n \n \n \n \n \n \n \n \n Almuerzo\n \n \n \n \n \n \n \n \n Media tarde\n \n \n \n \n \n \n \n \n Cena\n \n \n \n \n \n \n \n \n Activar alarma\n \n \n \n \n \n )\n }\n}\n\nexport default withIonLifeCycle(AlarmasPage)","export default __webpack_public_path__ + \"static/media/fondo_ingredientes.e97ceb59.jpg\";","export default __webpack_public_path__ + \"static/media/fondo_light.0d05598b.jpg\";","export default __webpack_public_path__ + \"static/media/fondo_normal.5ec54ca8.jpg\";","export default __webpack_public_path__ + \"static/media/fondo_tipica.1e65c10e.jpg\";","export default __webpack_public_path__ + \"static/media/fondo_bebidas.915e9189.jpg\";","export default __webpack_public_path__ + \"static/media/fondo_snacks.7431570d.jpg\";","export default __webpack_public_path__ + \"static/media/alimento_gen.daee617e.svg\";","import React from \"react\"\nimport {matchSorter} from 'match-sorter'\nimport alimento_gen from \"../images/alimento_gen.svg\"\nimport IAlimento from \"../interfaces/IAlimento\"\nimport IAlarma from \"../interfaces/IAlarma\"\nimport db from \"./Database\"\nimport { get } from \"../Rest\"\nimport { IonAvatar, IonBadge, IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonInput, IonItem, IonLabel, IonList, IonModal, IonSearchbar, IonText, IonTitle, IonToolbar } from \"@ionic/react\"\nimport { arrowBack, arrowUp, sad, search, trash } from \"ionicons/icons\"\n//https://historiaybiografias.com/calorias/\n\nexport default class BuscadorProductos extends React.Component<{onAdd:any}>{\n\n timeout = {} as any\n\n state = {\n items: [] as Array,\n busqueda: \"\" as string,\n selected: {} as IAlimento,\n alarmas: {} as IAlarma,\n show:false\n }\n\n buscarChange = async (e:any) => {\n await this.setState({busqueda:e.target.value})\n clearTimeout(this.timeout)\n this.timeout = setTimeout(() => this.buscar(),300)\n }\n\n buscar = async () => {\n const {busqueda} = this.state\n const items_tmp = await db.alimentos.filter(p => p.estado == \"A\").toArray()\n const items = matchSorter(items_tmp,busqueda,{keys:[\"nombre\"]})\n await this.setState({items})\n }\n\n onClick = (selected:IAlimento) => {\n const {onAdd} = this.props\n onAdd(selected)\n this.setState({selected,show:false})\n }\n\n render(){\n const {items,selected,show,busqueda} = this.state\n return (\n <>\n {\n selected.id ? (\n \n this.setState({show:true})}>\n \n \n this.setState({show:true})}>\n {selected.porcion}\n

{selected.nombre}

\n {selected.equivalencia?\n

{selected.equivalencia}

\n :null}\n
\n this.setState({show:true})}>{selected.calorias} cal\n
\n ):(\n this.setState({show:true})} >\n \n \n )\n }\n this.setState({show:false})}>\n \n \n \n this.setState({show:false})}>\n \n \n \n Buscador de alimentos\n \n \n \n \n \n \n \n {\n busqueda ?\n items.length>0?\n items.map((alimento,i) => (\n this.onClick(alimento)}>\n \n \n \n \n {alimento.porcion}\n

{alimento.nombre}

\n {alimento.equivalencia?\n

{alimento.equivalencia}

\n :null}\n
\n {alimento.calorias} cal\n
\n ))\n : No existen datos para su búsqueda\n : Busca un alimento en la parte superior\n }\n
\n
\n
\n \n )\n }\n}\n","import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonInput, IonItem, IonItemDivider, IonLabel, IonList, IonListHeader, IonModal, IonSegment, IonSegmentButton, IonSelect, IonSelectOption, IonTextarea, IonTitle, IonToolbar } from \"@ionic/react\"\nimport { add, arrowBack, remove } from \"ionicons/icons\"\nimport moment from \"moment\"\nimport React, { FormEvent } from \"react\"\nimport IAlarma from \"../interfaces/IAlarma\"\nimport IAlimento from \"../interfaces/IAlimento\"\nimport ICaloriasDia from \"../interfaces/ICaloriasDia\"\nimport IDatosIniciales from \"../interfaces/IDatosIniciales\"\nimport { post } from \"../Rest\"\nimport BuscadorProductos from \"./BuscadorProductos\"\nimport db from \"./Database\"\nimport { horarios_comida, IHorarioComida, updateAlarma } from \"./Funciones\"\n\nexport default class AgregarAlimentos extends React.Component<{isOpen:boolean,fecha:string,horario?:IHorarioComida,onSave:any,onClose:any,alimento?:IAlimento}>{\n\n state = {\n cur_item:{\n cantidad:\"1\",\n } as ICaloriasDia,\n datos_iniciales:{} as IDatosIniciales,\n alarmas:{} as IAlarma,\n alimento:undefined as IAlimento | undefined,\n tipo:\"B\"\n }\n\n async componentDidMount(){\n const datos_iniciales = await db.datos_iniciales.toArray()\n const alarmas = await db.alarmas.toArray()\n await this.setState({datos_iniciales:datos_iniciales[0],alarmas:alarmas[0]})\n }\n\n verifyHorario = () => {\n const {cur_item} = this.state\n const {alimento} = this.props\n if(this.props.horario){\n cur_item.horario_comida = this.props.horario?.name\n }else{\n cur_item.horario_comida = this.getHorarioComida()\n }\n if(alimento){\n cur_item.detalle = alimento.nombre\n cur_item.calorias = alimento.calorias\n cur_item.cantidad = \"1\"\n cur_item.alimento = alimento.id\n }\n this.setState({cur_item,alimento})\n }\n\n plus = () => {\n const {cur_item} = this.state\n const alimento = this.props.alimento?this.props.alimento:this.state.alimento\n cur_item.cantidad = (parseFloat(cur_item.cantidad)>1000?1000:parseFloat(cur_item.cantidad)+1).toFixed(0)\n if(alimento){\n cur_item.calorias = (parseFloat(alimento.calorias)*parseFloat(cur_item.cantidad)).toFixed(0)\n }\n this.setState({cur_item})\n }\n\n minus = () =>{\n const {cur_item} = this.state\n const alimento = this.props.alimento?this.props.alimento:this.state.alimento\n cur_item.cantidad = (parseFloat(cur_item.cantidad)<=0?1:parseFloat(cur_item.cantidad)-1).toFixed(0)\n if(alimento){\n cur_item.calorias = (parseFloat(alimento.calorias)*parseFloat(cur_item.cantidad)).toFixed(0)\n }\n this.setState({cur_item})\n }\n\n sync = async () => {\n const {datos_iniciales} = this.state\n if(datos_iniciales && datos_iniciales.id && navigator.onLine){\n const items = await db.calorias_dia.filter(f => !f.id).toArray()\n const items_del = await db.calorias_dia.filter(f => parseInt(f.id)==-1).toArray()\n const response_items = await post(\"sync_calorias_dia/\"+datos_iniciales.id,{items,items_del})\n await db.calorias_dia.clear()\n await db.calorias_dia.bulkPut(response_items)\n }\n }\n\n save = async (e:FormEvent)=> {\n e.preventDefault()\n const {cur_item,datos_iniciales} = this.state\n const {onSave,fecha} = this.props\n const alimento = this.props.alimento?this.props.alimento:this.state.alimento\n if(!cur_item.horario_comida){\n cur_item.horario_comida = this.getHorarioComida()\n }\n cur_item.fecha = moment(fecha).format(\"YYYY-MM-DD\")\n cur_item.fecha_registro = moment().format(\"YYYY-MM-DD HH:mm:ss\")\n cur_item.datos_iniciales_id = datos_iniciales.id\n if(alimento && alimento.id){\n cur_item.calorias = (parseFloat(alimento.calorias)*parseFloat(cur_item.cantidad)).toFixed(0)\n cur_item.alimento = alimento.id\n cur_item.detalle = alimento.porcion+\" de \"+alimento.nombre\n }\n await db.calorias_dia.put(cur_item)\n await this.setState({cur_item:{cantidad:\"1\"},alimento:{}})\n await this.sync()\n await updateAlarma()\n onSave(cur_item)\n }\n\n setCurItem = (e:any) => {\n var {cur_item} = this.state\n const alimento = this.props.alimento?this.props.alimento:this.state.alimento\n cur_item = {...cur_item,[e.target.name]:e.detail.value} \n if(alimento){\n cur_item.calorias = (parseFloat(alimento.calorias)*parseFloat(cur_item.cantidad)).toFixed(0)\n }\n this.setState({cur_item})\n }\n\n getHorarioComida = () => {\n const {alarmas} = this.state\n const {horario} = this.props\n if(horario && horario.name){\n return horario.name\n }\n var horario_comida = \"Cena\"\n const cur_date = moment()\n if(cur_date.isBefore(moment(cur_date.format(\"YYYY-MM-DD\")+\" \"+alarmas.media_manana))){\n horario_comida = \"Desayuno\"\n }\n else if(cur_date.isBefore(moment(cur_date.format(\"YYYY-MM-DD\")+\" \"+alarmas.almuerzo))){\n horario_comida = \"Media mañana\"\n }\n else if(cur_date.isBefore(moment(cur_date.format(\"YYYY-MM-DD\")+\" \"+alarmas.media_tarde))){\n horario_comida = \"Almuerzo\"\n }\n else if(cur_date.isBefore(moment(cur_date.format(\"YYYY-MM-DD\")+\" \"+alarmas.cena))){\n horario_comida = \"Media tarde\"\n }\n return horario_comida\n }\n\n onAddAlimento = async (alimento:IAlimento) => {\n const {cur_item} = this.state\n cur_item.alimento = alimento.id\n cur_item.calorias = alimento.calorias\n cur_item.detalle = alimento.porcion+\" de \"+alimento.nombre\n cur_item.cantidad = \"1\"\n await this.setState({cur_item,alimento})\n }\n\n onDeleteAlimento = async () => {\n await this.setState({cur_item:{calorias:0,cantidad:1},alimento:null})\n }\n\n onChangeTipo = (e:any) => {\n const {cur_item} = this.state\n if(e.detail.value === \"P\"){\n cur_item.alimento = \"\"\n this.setState({tipo:e.detail.value,alimento:undefined})\n }else{\n cur_item.detalle = \"\"\n this.setState({tipo:e.detail.value,cur_item})\n }\n }\n\n render(){\n const {cur_item,tipo} = this.state\n const {alimento,isOpen,onClose} = this.props\n return (\n \n \n \n \n \n \n \n Agregar alimento\n \n \n \n \n
\n \n Alimento:\n {\n !alimento && (\n \n \n Buscar\n Personalizar\n \n \n )\n }\n {\n alimento ? (\n \n

{alimento.porcion}
{alimento.nombre}

\n
\n ):(\n tipo === \"B\" ?\n \n :\n \n \n \n\n )\n }\n \n \n \n \n \n \n =100}>\n \n Cantidad:\n \n \n \n Calorías:\n \n \n \n Horario:\n \n {\n horarios_comida.map((horario,i) =>(\n {horario.name}\n ))\n }\n \n \n Agregar\n
\n
\n
\n
\n )\n }\n}\n","import { IonAvatar, IonBadge, IonButton, IonButtons, IonCard, IonContent, IonIcon, IonItem, IonLabel, IonList, IonPage, IonSearchbar, IonToolbar, withIonLifeCycle } from \"@ionic/react\";\nimport React from \"react\";\nimport AcrofitHeader from \"../components/AcrofitHeader\";\nimport IAlimento from \"../interfaces/IAlimento\";\n\nimport fondo_ingredientes from \"../images/banners/fondo_ingredientes.jpg\"\nimport fondo_light from \"../images/banners/fondo_light.jpg\"\nimport fondo_normal from \"../images/banners/fondo_normal.jpg\"\nimport fondo_tipica from \"../images/banners/fondo_tipica.jpg\"\nimport fondo_bebidas from \"../images/banners/fondo_bebidas.jpg\"\nimport fondo_snacks from \"../images/banners/fondo_snacks.jpg\"\nimport alimento_gen from \"../images/alimento_gen.svg\"\nimport { syncAlimentos } from \"../components/Funciones\";\nimport db from \"../components/Database\";\nimport { matchSorter } from \"match-sorter\";\nimport { arrowBack, sad } from \"ionicons/icons\";\nimport AgregarAlimentos from \"../components/AddAlimento\";\nimport moment from \"moment\";\n\nclass AlimentosPage extends React.Component{\n\n timeout = null as any\n\n state = {\n items:[] as Array,\n categoria:null as string|null,\n alimento:undefined as IAlimento|undefined,\n busqueda:\"\",\n isOpen:false\n }\n\n async ionViewDidEnter(){\n await syncAlimentos()\n }\n\n buscarChange = async (e:any) => {\n await this.setState({busqueda:e.target.value})\n clearTimeout(this.timeout)\n this.timeout = setTimeout(() => this.buscar(),300)\n }\n \n buscar = async () => {\n const {busqueda,categoria} = this.state\n const items_tmp = await db.alimentos.filter(p => p.estado == \"A\" && p.categoria == categoria).toArray()\n const items = matchSorter(items_tmp,busqueda,{keys:[\"nombre\"]})\n await this.setState({items})\n }\n\n setCategoria = async (categoria:string) => {\n await this.setState({categoria,busqueda:\"\"})\n await this.buscar()\n }\n\n selectItem = (alimento:IAlimento) => {\n this.setState({alimento,isOpen:true})\n }\n\n onSaveAlimento = () => {\n window.location.href = \"/registro\"\n }\n\n render(){\n const {categoria,items,busqueda,isOpen,alimento} = this.state\n return (\n \n \n {\n categoria && (\n \n \n this.setState({categoria:null,busqueda:null})}>\n \n \n \n )\n }\n \n \n {\n categoria?(\n \n {\n items.length>0?\n items.map((alimento,i) => (\n\n this.selectItem(alimento)} className=\"transparent\">\n \n \n \n \n {alimento.porcion}\n

{alimento.nombre}

\n {alimento.equivalencia?\n

{alimento.equivalencia}

\n :null}\n
\n {alimento.calorias} cal\n
\n ))\n : No existen datos para su búsqueda\n }\n
\n ):(\n \n this.setCategoria(\"T\")} >\n \n \n this.setCategoria(\"L\")} button>\n \n \n this.setCategoria(\"N\")}>\n \n \n this.setCategoria(\"I\")}>\n \n \n this.setCategoria(\"B\")}>\n \n \n this.setCategoria(\"S\")}>\n \n \n \n )\n }\n
\n this.setState({isOpen:false})} />\n
\n )\n }\n}\n\nexport default withIonLifeCycle(AlimentosPage)","type IColors = \"danger\" | \"success\" | \"warning\" | \"dark\" | \"tertiary\" | \"light\" | \"medium\" | \"info\"\n\nvar loader = null as any\n\nexport const ShowToast = async (message:string,header?:string,color?:IColors,callback?:any) => {\n const toast = document.createElement('ion-toast')\n toast.header = header\n toast.message = message\n toast.color = color\n toast.position = 'top'\n toast.duration = 5000\n toast.mode = \"md\"\n toast.buttons = [{\n text: 'Ok',\n role: 'cancel',\n handler: callback\n }\n ];\n \n document.body.appendChild(toast);\n return toast.present();\n }\n\nexport const ShowLoader = async (message?:string,duration?:number|null) => {\n loader = document.createElement('ion-loading');\n loader.message = message?message:\"Espere...\";\n if(duration!==null){\n loader.duration = duration||3000\n }\n \n document.body.appendChild(loader);\n await loader.present();\n }\n\nexport const UpdateLoader = async (message?:string) => {\n if(loader){\n loader.message = message?message:\"Espere...\";\n await loader.present();\n }\n }\n\nexport const HideLoader = async () => {\n if(loader){\n await loader.dismiss()\n }\n }","export default __webpack_public_path__ + \"static/media/obesidad.441c9570.svg\";","export default __webpack_public_path__ + \"static/media/sobrepeso.bb5a7dbc.svg\";","export default __webpack_public_path__ + \"static/media/normal.1e991c62.svg\";","export default __webpack_public_path__ + \"static/media/delgado.5a4086b4.svg\";","export default __webpack_public_path__ + \"static/media/obesidad_trans.f7d112c2.svg\";","export default __webpack_public_path__ + \"static/media/sobrepeso_trans.9b20e493.svg\";","export default __webpack_public_path__ + \"static/media/delgado_trans.6085c2e7.svg\";","export default __webpack_public_path__ + \"static/media/normal_trans.8c98fa7a.svg\";","\nimport obesidad from \"../images/obesidad.svg\"\nimport sobrepeso from \"../images/sobrepeso.svg\"\nimport normal from \"../images/normal.svg\"\nimport delgado from \"../images/delgado.svg\"\nimport obesidad_trans from \"../images/obesidad_trans.svg\"\nimport sobrepeso_trans from \"../images/sobrepeso_trans.svg\"\nimport delgado_trans from \"../images/delgado_trans.svg\"\nimport normal_trans from \"../images/normal_trans.svg\"\nimport { IonCard, IonCardHeader, IonCardTitle, IonProgressBar, IonCardContent, IonRow, IonCol, IonGrid, IonCardSubtitle, IonText, IonIcon } from \"@ionic/react\";\nimport { heartHalf } from \"ionicons/icons\"\n\nexport interface IValorImc{\n min:number,\n max:number,\n nombre:string,\n variant:string,\n pos:number,\n img:string,\n img_trans:string\n}\n\nexport const tabla_imc = {\n M: [\n {min:0,max:19.999,nombre:\"Bajo peso\",variant:\"secondary\",pos:20,img:delgado,img_trans:delgado_trans},\n {min:20,max:24.999,nombre:\"Peso normal\",variant:\"success\",pos:5,img:normal,img_trans:normal_trans},\n {min:25,max:29.999,nombre:\"Sobrepeso\",variant:\"warning\",pos:5,img:sobrepeso,img_trans:sobrepeso_trans},\n {min:30,max:10000,nombre:\"Obesidad\",variant:\"danger\",pos:20,img:obesidad,img_trans:obesidad_trans}\n ] as Array,\n F:[\n {min:0,max:19.999,nombre:\"Bajo peso\",variant:\"secondary\",pos:20,img:delgado,img_trans:delgado_trans},\n {min:20,max:23.999,nombre:\"Peso normal\",variant:\"success\",pos:4,img:normal,img_trans:normal_trans},\n {min:24,max:28.999,nombre:\"Sobrepeso\",variant:\"warning\",pos:5,img:sobrepeso,img_trans:sobrepeso_trans},\n {min:29,max:10000,nombre:\"Obesidad\",variant:\"danger\",pos:21,img:obesidad,img_trans:obesidad_trans}\n ] as Array\n }\n \n export const PanelResumen:React.FC<{imc:number,genero:\"M\"|\"F\",valor_imc?:IValorImc,className?:string}> = (props) => {\n const {imc,genero,valor_imc} = props\n return (\n \n \n

Imc Actual: {imc.toFixed(2)}

\n Estos valores se calculan con tus datos registrados\n
\n \n 50?50:imc)*2)/100} />\n
\n {\n tabla_imc[genero||\"M\"].map((tab,i) => (\n
\n \n
\n ))\n }\n
\n \n \n {\n tabla_imc[genero||\"M\"].map((tab,i:number) => (\n \n {valor_imc?.variant==tab.variant?:}\n \n ))\n }\n \n \n {\n tabla_imc[genero||\"M\"].map((tab,i) => (\n valor_imc?.variant==tab.variant?

Tienes: {tab.nombre}

:null\n ))\n }\n
\n
\n )\n }\n ","export default __webpack_public_path__ + \"static/media/icon_peso.b15f8935.svg\";","import { IonBadge, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCol, IonContent, IonGrid, IonHeader, IonIcon, IonInput, IonItem, IonItemDivider, IonLabel, IonList, IonListHeader, IonModal, IonPage, IonPopover, IonRadio, IonRadioGroup, IonRow, IonSelect, IonSelectOption, IonText, IonTitle, IonToolbar, withIonLifeCycle } from \"@ionic/react\";\nimport { arrowBack, barChartOutline, clipboardOutline } from \"ionicons/icons\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { Chart } from \"react-google-charts\";\nimport AcrofitHeader from \"../components/AcrofitHeader\";\nimport { HideLoader, ShowLoader, ShowToast } from \"../components/Alerts\";\nimport { Authentication } from \"../components/Authentication\";\nimport db from \"../components/Database\";\nimport { sync_calorias_dia } from \"../components/Funciones\";\nimport { IValorImc, PanelResumen, tabla_imc } from \"../components/ResumenIMC\";\nimport icon_peso from \"../images/icon_peso.svg\";\nimport IActividadFisica from \"../interfaces/IActividadFisica\";\nimport ICaloriasDia from \"../interfaces/ICaloriasDia\";\nimport IDatosIniciales from \"../interfaces/IDatosIniciales\";\nimport IPesoSemanal from \"../interfaces/IPesoSemanal\";\nimport IUsuario from \"../interfaces/IUsuario\";\nimport { get, post } from \"../Rest\";\n\nclass HomePage extends React.Component{\n\n graficosPesos = null as GraficoPesos | null\n graficosCalorias = null as GraficoCalorias | null\n\n state = {\n datos_iniciales:{} as IDatosIniciales,\n usuario:{} as IUsuario,\n imc:0 as number,\n valor_imc:{} as IValorImc,\n dias:0 as number,\n peso_semanal:{} as IPesoSemanal,\n peso:0 as number,\n mounted:false\n }\n\n ionViewDidEnter(){\n this.init()\n }\n\n init = async () => {\n if(window.navigator.onLine){\n const cat_actividades_fisicas = await get(\"actividades_fisicas\")\n await db.cat_actividades_fisicas.bulkPut(cat_actividades_fisicas)\n }\n const datos_iniciales = await db.datos_iniciales.toArray()\n const usuarios = await db.usuarios.toArray()\n await sync_calorias_dia(datos_iniciales[0])\n if(usuarios.length > 0){\n const usuario = usuarios[0]\n const pesos_semanales = await db.pesos_semanales.toArray()\n const pesos_semanales_sort = pesos_semanales.sort((a,b) => -moment(a.fecha_registro).diff(b.fecha_registro,\"day\"))\n const imc = parseFloat(pesos_semanales_sort[0].peso)*10000/(parseFloat(usuario.altura)*parseFloat(usuario.altura))\n const valor_imc = tabla_imc[usuario.genero].find(c => c.min<=imc && c.max>imc)\n const dias = moment().diff(moment(datos_iniciales[0].fecha_registro).startOf('day'),\"days\")\n await this.setState({datos_iniciales:datos_iniciales[0],usuario,imc,valor_imc,dias,peso_semanal:pesos_semanales_sort[0],peso:pesos_semanales_sort[0].peso,mounted:true})\n }else{\n await Authentication.logout()\n }\n }\n\n refresh = async () => {\n const pesos_semanales = await db.pesos_semanales.toArray()\n const calorias_dia = await db.calorias_dia.toArray()\n this.setState({pesos_semanales,calorias_dia})\n }\n\n render(){\n const {usuario,imc,valor_imc,peso_semanal,datos_iniciales,dias,mounted} = this.state\n return (\n \n \n {\n mounted && (\n \n \n \n \n Peso\n Datos registrados desde tu última medición\n \n \n \n \n \n \n
\n Inicial
\n {datos_iniciales.peso+\"kg\"}\n
\n
\n
\n \n \n
\n Actual
\n {peso_semanal?peso_semanal.peso+\"kg\":\"\"}\n
\n
\n
\n \n \n
\n Meta
\n {datos_iniciales.peso_objetivo+\"kg\"}\n
\n
\n
\n
\n
\n \n Han pasado {dias+1} día{dias>1?\"s\":\"\"} desde que iniciaste tu último plan\n \n \n
\n
\n \n \n Calorías\n Presenta la información de las calorías consumidas diariamente\n \n \n { this.graficosCalorias = c}} datos_iniciales={datos_iniciales} />\n Actualizar\n \n \n \n \n Pesos\n Presenta la información de los pesos registrados semanalmente\n \n \n { this.graficosPesos = c}} datos_iniciales={datos_iniciales} />\n Actualizar\n \n \n \n
\n )\n }\n
\n )\n }\n}\n\nexport default withIonLifeCycle(HomePage);\n\nclass GraficoCalorias extends React.Component<{datos_iniciales:IDatosIniciales}> {\n\n state = {\n items:[] as Array\n }\n\n updateChart = async () => {\n const calorias_dia = await db.calorias_dia.toArray()\n const {datos_iniciales} = this.props\n const items = [[\"Fecha\",\"Calorias consumidas\",\"Límite\"]]\n const pre_items = {} as any\n for(let i = 0; i 7){\n break;\n }\n items.push([i,pre_items[i],parseInt(datos_iniciales.calorias_dia)])\n cont++;\n }\n await this.setState({items,show:true})\n }\n\n componentDidMount(){\n this.updateChart() \n }\n\n render(){\n const {items} = this.state\n return (\n items.length > 1 ? \n (\n Cargando datos...}\n data={items}\n options={{\n title: '',\n chartArea: { width: '80%', height: '80%' },\n legend: { position: 'bottom', maxLines: 2 },\n vAxis: {\n title: 'Calorías consumidas',\n minValue: 0,\n },\n seriesType: 'bars',\n series: [{ type: 'bar' },{ type: 'area' }]\n }}\n legendToggle />\n ):(\n No existen registros suficientes\n )\n )\n }\n}\n\nclass GraficoPesos extends React.Component<{datos_iniciales:IDatosIniciales}> {\n\n state = {\n items:[] as Array\n }\n\n componentDidMount(){\n this.updateChart()\n }\n\n updateChart = async () => {\n const pesos_semanales = await db.pesos_semanales.toArray()\n const {datos_iniciales} = this.props\n const items = [[\"Fecha\",\"Peso\",\"Objetivo\"]]\n const pre_items = {} as any\n pesos_semanales.forEach((cal,i) => {\n if(pre_items[cal.fecha_registro]){\n pre_items[cal.fecha_registro] += parseFloat(cal.peso)\n }else{\n pre_items[cal.fecha_registro] = parseFloat(cal.peso)\n }\n })\n let cont = 0;\n for(let i in pre_items){\n if(cont > 7){\n break;\n }\n items.push([i,pre_items[i],parseInt(datos_iniciales.peso_objetivo)])\n cont++;\n }\n await this.setState({items})\n }\n\n render(){\n const {items} = this.state\n return (\n items.length > 1 ? \n (\n Cargando datos...}\n data={items}\n options={{\n title: '',\n chartArea: { width: '80%', height: '80%' },\n legend: { position: 'bottom', maxLines: 2 },\n vAxis: {\n title: 'Calorías consumidas',\n minValue: 0,\n },\n seriesType: 'bars',\n series: [{ type: 'bar' },{ type: 'area' }]\n }}\n legendToggle />\n ):(\n No existen registros suficientes\n )\n )\n }\n}\n\nclass ActualizarPeso extends React.Component<{datos_iniciales:IDatosIniciales,onComplete:any,peso_semanal:IPesoSemanal}>{\n\n state = {\n show:false,\n event:null as any,\n peso:0\n }\n\n componentDidMount(){\n const {peso_semanal} = this.props\n this.setState({peso:peso_semanal.peso})\n }\n\n onChange = (e:any) => {\n this.setState({peso:e.detail.value})\n }\n\n onSavePeso = async (e:any) => {\n e.preventDefault()\n const {datos_iniciales,onComplete} = this.props\n const data = {\n peso: this.state.peso+\"\",\n datos_iniciales:datos_iniciales.id,\n fecha_registro:moment().format(\"YYYY-MM-DD\")\n } as IPesoSemanal\n const response = await post(\"peso_semanal\",data)\n if(response.respuesta){\n await db.pesos_semanales.put(data)\n await this.setState({peso_semanal:data})\n ShowToast(\"Peso agregado correctamente\",\"Cambio de peso\",\"success\")\n onComplete()\n }else{\n ShowToast(\"Ya existe un peso registrado el día de hoy\",\"Cambio de peso\",\"danger\")\n }\n }\n\n render(){\n const {show,event,peso} = this.state\n return (\n <>\n this.setState({show:true,event:e})} color=\"tertiary\" expand=\"block\">Actualizar Peso\n this.setState({show:false})}>\n \n \n Peso (kg):\n \n \n Actualizar\n \n \n \n )\n }\n}\n\nclass ReiniciarPlan extends React.Component<{datos_iniciales:IDatosIniciales,usuario:IUsuario,peso_semanal:IPesoSemanal,refresh:any}>{\n \n state={\n show:false,\n newData:{} as IDatosIniciales,\n cat_actividades_fisicas:[] as Array,\n plan:undefined as number|undefined,\n tmb:undefined as number|undefined,\n peso_ideal:undefined as number|undefined\n }\n\n onChangeIniciales = (e:any) =>{\n this.setState({newData:{...this.state.newData,[e.target.name]:e.detail.value}})\n }\n\n async componentDidMount(){\n const {datos_iniciales,peso_semanal} = this.props\n const cat_actividades_fisicas = await db.cat_actividades_fisicas.toArray()\n this.setState({cat_actividades_fisicas,newData:{...datos_iniciales,peso:peso_semanal.peso}})\n }\n\n reiniciar = async () => {\n const {newData,plan,tmb,peso_ideal} = this.state\n const di = this.props.datos_iniciales\n\n if(plan!==undefined && tmb!==undefined && peso_ideal!==undefined){\n newData.calorias_dia = (tmb+plan).toFixed(0)\n newData.peso_objetivo = plan === 0 ? di.peso : peso_ideal.toFixed(0)\n newData.kilos_semanales = Math.abs(plan/1000).toFixed(1)\n newData.id = \"\"\n newData.fecha_registro = moment().format()\n\n await ShowLoader()\n const {datos_iniciales,pesos_semanales} = await post(\"reiniciar_plan\",newData)\n HideLoader()\n if(datos_iniciales){\n await db.datos_iniciales.clear()\n await db.pesos_semanales.clear()\n await db.calorias_dia.clear()\n await db.datos_iniciales.put(datos_iniciales)\n await db.pesos_semanales.put(pesos_semanales)\n ShowToast(\"Plan reiniciado correctamente\",\"Reinicio de plan\",\"success\")\n await this.props.refresh()\n await this.setState({show:false})\n }else{\n ShowToast(\"Ha ocurrido un error al reiniciar su plan\",\"Reinicio de plan\",\"danger\")\n }\n }else{\n ShowToast(\"Debe seleccionar un plan para continuar\",\"Reinicio de plan\",\"warning\")\n }\n }\n\n onChangePlan = (plan:number,tmb:number,peso_ideal:number) => {\n this.setState({plan,tmb,peso_ideal})\n }\n\n render(){\n const {datos_iniciales,usuario,peso_semanal} = this.props\n const {show,newData,plan,cat_actividades_fisicas} = this.state\n const {actividad_fisica} = newData.actividad_fisica?newData:datos_iniciales\n const {genero,altura,fecha_nacimiento} = usuario\n const {peso} = newData.peso?newData:peso_semanal\n const valor = parseFloat(cat_actividades_fisicas.find(ac => ac.id === actividad_fisica)?.valor || \"0\")\n const edad = -moment(fecha_nacimiento).diff(moment(),\"years\")\n\n const tasa_peso = genero===\"M\"?13.5:9.6\n const tasa_edad = genero===\"M\"?6.75:4.7\n const tasa_altura = genero===\"M\"?5:1.8\n const tasa_base = genero===\"M\"?66:655\n const tmb = (tasa_base + (tasa_peso*parseFloat(peso)) - (tasa_edad*edad) + (tasa_altura*parseFloat(altura)))*valor\n const imc = parseFloat(peso)*10000/(parseFloat(altura)*parseFloat(altura))\n\n //Formula de Lorentz\n const peso_ideal = parseFloat(altura) - 100 - ((parseFloat(altura)-150)/(genero===\"M\"?4:2.5))\n\n return (\n <>\n this.setState({show:true})} color=\"danger\" expand=\"block\">Reiniciar plan\n this.setState({show:false})}>\n \n \n \n this.setState({show:false})} >\n \n \n Reiniciar Plan\n \n \n \n \n \n \n Peso (kg):\n \n \n \n Altura (cm):\n \n \n \n Actividad Física:\n \n {\n cat_actividades_fisicas.map((af,i) => (\n {af.nombre}\n ))\n }\n \n \n \n Plan:\n this.onChangePlan(e.detail.value,tmb,peso_ideal)}>\n \n \n Bajar 1kg semanal\n \n \n \n Bajar 1/2kg semanal\n \n \n \n Mantener peso\n \n \n \n Subir 1/2kg semanal\n \n \n \n Subir 1kg semanal\n \n \n \n Una vez reiniciado el plan, se eliminará los datos actuales y reiniciará todo lo avanzado\n \n Aceptar y reiniciar\n Cerrar sesión\n \n \n \n \n )\n }\n}","export default __webpack_public_path__ + \"static/media/logo_acromax.4ee9c261.svg\";","export default __webpack_public_path__ + \"static/media/logo_salud.2b2ab019.svg\";","import { IonButton, IonContent, IonIcon, IonInput, IonItem, IonList, IonListHeader, IonPage, withIonLifeCycle } from \"@ionic/react\";\nimport { key, person } from \"ionicons/icons\";\nimport React, { FormEvent } from \"react\";\nimport { ShowToast } from \"../components/Alerts\";\nimport { Authentication } from \"../components/Authentication\";\nimport logo from \"../images/logo.svg\";\nimport logo_acx from \"../images/logo_acromax.svg\";\nimport logo_ss from \"../images/logo_salud.svg\";\n\nclass LoginPage extends React.Component{\n\n submit = async (e:FormEvent) => {\n e.preventDefault()\n const {response,error} = await Authentication.login(this.state)\n if(response){\n window.location.replace(\"/home\")\n }else{\n await ShowToast(error || \"Error en el servicio\",\"Error al iniciar sesión\",\"danger\")\n }\n }\n\n render(){\n return (\n \n \n
\n \n \n
\n \"Acrofit\"\n
\n
\n \n

Ingresar

\n
\n \n \n this.setState({correo:e.detail.value})} required />\n \n \n \n this.setState({password:e.detail.value})} required />\n \n Ingresar\n \n Si no estás registrado, registrate aquí:\n \n Registrarme\n \n
\n \"Acrofit\"\n
\n
\n \n
\n \"Acrofit\"\n
\n
\n
\n
\n
\n
\n )\n }\n}\n\nexport default withIonLifeCycle(LoginPage);","import { IonAvatar, IonBadge, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonIcon, IonItem, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonText, IonToolbar } from \"@ionic/react\";\nimport { add, trash } from \"ionicons/icons\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport alimento_gen from \"../images/alimento_gen.svg\";\nimport ICaloriasDia from \"../interfaces/ICaloriasDia\";\nimport IDatosIniciales from \"../interfaces/IDatosIniciales\";\nimport AgregarAlimentos from \"./AddAlimento\";\nimport db from \"./Database\";\nimport { horarios_comida, IHorarioComida, sync_calorias_dia, updateAlarma } from \"./Funciones\";\n\nexport default class TablaCalorias extends React.Component<{fecha:string,title?:string,color?:string}>{\n\n state = {\n desayuno:[] as Array,\n media_manana:[] as Array,\n almuerzo:[] as Array,\n media_tarde:[] as Array,\n cena:[] as Array,\n datos_iniciales:{} as IDatosIniciales,\n isOpen:false,\n horario:{} as IHorarioComida\n }\n \n async componentDidMount(){\n const datos_iniciales = await db.datos_iniciales.toArray()\n await this.setState({datos_iniciales:datos_iniciales[0]})\n await this.refresh()\n }\n \n update(){\n this.refresh()\n }\n \n refresh = async () => {\n const {fecha} = this.props\n const state = {} as any\n const alimentos = await db.alimentos.toArray()\n for(let i in horarios_comida){\n let items = await db.calorias_dia.where({fecha:moment(fecha).format(\"YYYY-MM-DD\"),horario_comida:horarios_comida[i].name}).toArray()\n const obs = items.filter(e => !e.id||parseInt(e.id)>0)\n obs.map(ob => {\n ob.alimentoObj = alimentos.find(e => e.id == ob.alimento)\n })\n state[horarios_comida[i].cod] = obs\n }\n this.setState({...state,isOpen:false})\n }\n \n deleteItem = async (item:ICaloriasDia) => {\n if(window.confirm(\"¿Desea eliminar el registro?\")){\n const {datos_iniciales} = this.state\n item.id = \"-1\"\n await db.calorias_dia.put(item)\n await sync_calorias_dia(datos_iniciales)\n await updateAlarma()\n await this.refresh()\n }\n }\n\n render(){\n const {fecha,title,color} = this.props\n const {datos_iniciales,desayuno,media_tarde,media_manana,almuerzo,cena,isOpen,horario} = this.state\n var total = 0\n desayuno.map(item => {\n total+=parseInt(item.calorias)\n })\n media_manana.map(item => {\n total+=parseInt(item.calorias)\n })\n almuerzo.map(item => {\n total+=parseInt(item.calorias)\n })\n media_tarde.map(item => {\n total+=parseInt(item.calorias)\n })\n cena.map(item => {\n total+=parseInt(item.calorias)\n })\n const estado_calorias = datos_iniciales&&total\n \n {title || moment(fecha).format(\"DD/MMM/YYYY\")}\n \n \n \n \n \n \n this.setState({isOpen:true,horario:horarios_comida[0]})}>\n \n Desayuno\n \n {\n desayuno.map((item,k) => (\n \n \n \n \n \n \n

x{item.cantidad} {item.detalle}

\n

{item.calorias} cal

\n
\n
\n \n this.deleteItem(item)}>\n \n
\n ))\n }\n\n \n \n this.setState({isOpen:true,horario:horarios_comida[1]})}>\n \n Media mañana\n \n {\n media_manana.map((item,k) => (\n \n \n \n \n \n \n

x{item.cantidad} {item.detalle}

\n

{item.calorias} cal

\n
\n
\n \n this.deleteItem(item)}>\n \n
\n ))\n }\n\n \n \n this.setState({isOpen:true,horario:horarios_comida[2]})}>\n \n Almuerzo\n \n {\n almuerzo.map((item,k) => (\n \n \n \n \n \n \n

x{item.cantidad} {item.detalle}

\n

{item.calorias} cal

\n
\n
\n \n this.deleteItem(item)}>\n \n
\n ))\n }\n\n \n \n this.setState({isOpen:true,horario:horarios_comida[3]})}>\n \n Media tarde\n \n {\n media_tarde.map((item,k) => (\n \n \n \n \n \n \n

x{item.cantidad} {item.detalle}

\n

{item.calorias} cal

\n
\n
\n \n this.deleteItem(item)}>\n \n
\n ))\n }\n\n \n \n this.setState({isOpen:true,horario:horarios_comida[4]})}>\n \n Cena\n \n {\n cena.map((item,k) => (\n \n \n \n \n \n \n

x{item.cantidad} {item.detalle}

\n

{item.calorias} cal

\n
\n
\n \n this.deleteItem(item)}>\n \n
\n ))\n }\n\n \n

\n Total:\n

\n \n {total} cal\n \n \n {datos_iniciales.calorias_dia} cal\n \n
\n
\n
\n this.setState({isOpen:false})} onSave={this.refresh} horario={horario} />\n \n )\n }\n}","import { IonButton, IonButtons, IonContent, IonIcon, IonPage, IonToolbar, withIonLifeCycle } from \"@ionic/react\";\nimport { arrowBackSharp, arrowForwardSharp } from \"ionicons/icons\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport AcrofitHeader from \"../components/AcrofitHeader\";\nimport db from \"../components/Database\";\nimport { syncAlimentos } from \"../components/Funciones\";\nimport TablaCalorias from \"../components/TablaCalorias\";\nimport IDatosIniciales from \"../interfaces/IDatosIniciales\";\n\nconst dias = [\n {nombre:\"Domingo\",codigo:\"D\"},\n {nombre:\"Lunes\",codigo:\"L\"},\n {nombre:\"Martes\",codigo:\"M\"},\n {nombre:\"Miercoles\",codigo:\"X\"},\n {nombre:\"Jueves\",codigo:\"J\"},\n {nombre:\"Viernes\",codigo:\"V\"},\n {nombre:\"Sábado\",codigo:\"S\"}\n]\n\nclass PlanPage extends React.Component{\n\n tablas = [] as Array\n\n state = {\n semanas:0 as number,\n total_semanas:0 as number,\n semana:0 as number,\n datos_iniciales:{} as IDatosIniciales\n }\n\n async ionViewDidEnter(){\n this.init()\n syncAlimentos()\n }\n\n init = async () => {\n const datos_iniciales = await db.datos_iniciales.toArray()\n const semanas = moment().diff(moment(datos_iniciales[0].fecha_registro).startOf('week'),\"weeks\")\n const total_semanas = Math.abs(parseFloat(datos_iniciales[0].peso)-parseFloat(datos_iniciales[0].peso_objetivo))/parseFloat(datos_iniciales[0].kilos_semanales)\n await this.setState({semana:semanas>total_semanas?total_semanas:semanas,semanas,total_semanas,datos_iniciales:datos_iniciales[0]})\n this.tablas.forEach(tabla => {\n tabla?.update()\n })\n }\n \n nextWeek = () =>{\n const {semana,total_semanas} = this.state\n if(semana{\n const {semana} = this.state\n if(semana>0){\n this.setState({semana:semana-1})\n }\n }\n \n thisWeek = () =>{\n this.init()\n }\n\n render(){\n const {semana,semanas,total_semanas,datos_iniciales} = this.state\n return (\n \n \n \n \n \n \n \n =total_semanas} fill=\"solid\" color={semana==semanas?\"tertiary\":\"medium\"} onClick={this.nextWeek}>\n \n Semana {semana+1}/{total_semanas+1}\n \n \n \n {\n dias.map((dia,k) => (\n moment().startOf('week').add(semana-semanas,\"weeks\").add(k,'days').isSameOrAfter(moment(datos_iniciales.fecha_registro).format(\"YYYY-MM-DD\")) && (\n this.tablas.push(c)} \n color={moment().startOf('week').add(semana-semanas,\"weeks\").add(k,'days').dayOfYear() === moment().dayOfYear() ? \"tertiary\" : undefined} \n key={semana+\"-\"+k} \n title={dia.nombre+\" \"+moment().startOf('week').add(semana-semanas,\"weeks\").add(k,'days').format(\"DD/MMM\")} \n fecha={moment().startOf('week').add(semana-semanas,\"weeks\").add(k,'days').format()} />\n )\n ))\n }\n \n \n )\n }\n}\n\nexport default withIonLifeCycle(PlanPage)","import { IonContent, IonPage, withIonLifeCycle } from \"@ionic/react\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport AcrofitHeader from \"../components/AcrofitHeader\";\nimport { syncAlimentos } from \"../components/Funciones\";\nimport TablaCalorias from \"../components/TablaCalorias\";\n\nclass RegistroPage extends React.Component{\n\n tablas = [] as Array\n\n ionViewDidEnter(){\n syncAlimentos()\n this.tablas.forEach(tabla => {\n tabla?.update()\n })\n }\n\n render(){\n return (\n \n \n \n this.tablas.push(c)} fecha={moment().format()} title=\"Calorías consumidas hoy\" />\n \n \n )\n }\n}\n\nexport default withIonLifeCycle(RegistroPage)","import { IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCheckbox, IonContent, IonDatetime, IonIcon, IonInput, IonItem, IonLabel, IonNote, IonPage, IonSelect, IonSelectOption, IonTitle, IonToolbar, withIonLifeCycle, IonRadioGroup, IonRadio, IonItemDivider } from \"@ionic/react\";\nimport { arrowBack, barbell, manOutline, womanOutline } from \"ionicons/icons\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport AcrofitHeader from \"../components/AcrofitHeader\";\nimport { HideLoader, ShowLoader, ShowToast } from \"../components/Alerts\";\nimport db from \"../components/Database\";\nimport { LOCAL_CONFIG, soloNumeros, soloTexto } from \"../components/Funciones\";\nimport { tabla_imc } from \"../components/ResumenIMC\";\nimport icon_alarma from \"../images/icon_alarma.svg\";\nimport logo_acromax from \"../images/logo_acromax.svg\";\nimport logo_salud from \"../images/logo_salud.svg\";\nimport IActividadFisica from \"../interfaces/IActividadFisica\";\nimport IAlarma from \"../interfaces/IAlarma\";\nimport IDatosIniciales from \"../interfaces/IDatosIniciales\";\nimport IUsuario from \"../interfaces/IUsuario\";\nimport { get, post } from \"../Rest\";\nimport { PanelResumen } from \"../components/ResumenIMC\";\n\nclass SigninPage extends React.Component{\n\n state = {\n usuarios: {\n fecha_nacimiento: moment().add(-18,\"years\").format(),\n genero:\"M\"\n } as IUsuario,\n datos_iniciales: {\n actividad_fisica:\"1\",\n kilos_semanales:\"-1000\"\n } as IDatosIniciales,\n actividades_fisicas: [] as Array,\n alarmas: {\n desayuno:\"07:00\",\n media_manana:\"10:00\",\n almuerzo:\"13:00\",\n media_tarde:\"16:00\",\n cena:\"19:00\",\n activo:\"0\"\n } as IAlarma,\n steep: 0,\n plan:undefined as number|undefined\n }\n\n async ionViewDidEnter(){\n const actividades_fisicas = await get(\"cat/actividades_fisicas\")\n await db.cat_actividades_fisicas.bulkPut(actividades_fisicas)\n await this.setState({actividades_fisicas})\n }\n\n handleDatosPersonales = async (e:any) => {\n await this.setState({usuarios:{...this.state.usuarios,[e.target.name]:e.detail.value}})\n }\n \n handleDatosIniciales = async (e:any) => {\n await this.setState({datos_iniciales:{...this.state.datos_iniciales,[e.target.name]:e.detail.value}})\n }\n \n handleAlarmas = async (e:any) => {\n await this.setState({alarmas:{...this.state.alarmas,[e.target.name]:e.detail.value}})\n }\n \n handleActivarAlarma = async (e:any) => {\n await this.setState({alarmas:{...this.state.alarmas,activo:e.detail.checked?\"1\":\"0\"}})\n }\n \n handleChangePlan = async (kilos:number,tmb:number,peso_ideal:number) => {\n const {datos_iniciales} = this.state\n const calorias_dia = (tmb+kilos).toFixed(0)\n const peso_objetivo = kilos === 0 ? datos_iniciales.peso : peso_ideal\n const kilos_semanales = Math.abs(kilos/1000).toFixed(1)\n await this.setState({plan:kilos,datos_iniciales:{...this.state.datos_iniciales,calorias_dia,peso_objetivo,kilos_semanales}})\n }\n\n render(){\n const {usuarios,alarmas,datos_iniciales,actividades_fisicas,steep,plan} = this.state\n switch(steep){\n case 0:\n return this.setState({steep:1})} />\n case 1:\n return this.setState({steep:0})}\n onNext={() => this.setState({steep:2})}\n actividades_fisicas={actividades_fisicas} />\n case 2:\n return this.setState({steep:1})}\n onNext={() => this.setState({steep:3})}/>\n case 3:\n return this.setState({steep:1})}\n onNext={this.registrar}/>\n default:\n return
\n }\n }\n\n registrar = async () => {\n const {usuarios,datos_iniciales,alarmas} = this.state\n await ShowLoader()\n const json = await post(\"registro\",{usuarios,datos_iniciales,alarmas})\n HideLoader()\n if(json.error){\n ShowToast(json.error||\"Error en el servicio\",\"Registro\",\"danger\")\n }else{\n window.location.href = \"/login\"\n }\n }\n}\n\nexport default withIonLifeCycle(SigninPage)\n\nconst FormGenerales:React.FC<{onChange:any,data:IUsuario,onNext:any}> = (props) => {\n return (\n \n \n \n \n \n \n Datos Generales\n \n \n \n
{e.preventDefault(); props.onNext(); return false;}}>\n \n Nombre:\n \n \n \n Apellidos:\n \n \n \n Email:\n \n \n \n Contraseña:\n \n \n \n \n Siguiente\n \n \n \n
\n \"Acromax\"\n
\n
\n \n
\n \"#SuSaludNosMueve\"\n
\n
\n
 \n
\n
\n )\n}\n\nconst FormIniciales:React.FC<{onChangePersonales:any,onChangeIniciales:any,data:IUsuario,datos_iniciales:IDatosIniciales,actividades_fisicas:Array,onNext:any,onBack:any}> = (props) => {\n return (\n \n \n \n \n \n \n Cálculo de calorías\n \n \n \n
{e.preventDefault(); props.onNext(); return false;}}>\n \n Fecha nacimiento:\n \n \n \n La fecha de nacimiento es requerida para calcular el IMC, no puede ser menor a 18 años\n \n \n Genero:\n \n Masculino\n Femenino\n \n \n \n Altura (cm):\n \n \n \n Peso (kg):\n \n \n Actividad Física\n \n \n {\n props.actividades_fisicas.map((af,i) => (\n {af.nombre}\n ))\n }\n \n \n \n Formula de cálculo de Harris Benedict:\n \n \n \n

{\"TMB = 66 + (13,7 x peso) + (5 x altura) - (6,75 x edad)\"}

\n
\n \n \n

{\"TMB = 655 + (9,6 x peso) + (1.8 x altura) - (4,7 x edad)\"}

\n
\n \n \n

{\"CALORÍAS = TMB * ACTIVIDAD FÍSICA\"}

\n
\n
\n
\n \n \n Siguiente\n \n \n Regresar\n \n \n
 \n
\n
\n )\n}\n\nconst FormAlarmas:React.FC<{onChange:any,onChangeActivo:any,data:IAlarma,onNext:any,onBack:any}> = (props) => {\n return (\n \n \n \n \n \n \n Datos Generales\n \n \n \n
{e.preventDefault(); props.onNext(); return false;}}>\n \n \n \n \n Desayuno\n \n \n \n \n \n \n \n \n Media mañana\n \n \n \n \n \n \n \n \n Almuerzo\n \n \n \n \n \n \n \n \n Media tarde\n \n \n \n \n \n \n \n \n Cena\n \n \n \n \n \n \n \n \n Activar alarma\n \n \n \n \n \n Siguiente\n \n \n Regresar\n \n \n
 \n
\n
\n )\n}\n\nconst FormSeleccionarPlan:React.FC<{onChange:any,usuario:IUsuario,datos_iniciales:IDatosIniciales,actividades_fisicas:Array,onNext:any,onBack:any,plan:number|undefined,onChangePlan:any}> = (props) => {\n const {peso,actividad_fisica} = props.datos_iniciales\n const {genero,altura,fecha_nacimiento} = props.usuario\n const valor = parseFloat(props.actividades_fisicas.find(ac => ac.id === actividad_fisica)?.valor||\"0\")\n const edad = -moment(fecha_nacimiento).diff(moment(),\"years\")\n\n const tasa_peso = genero===\"M\"?13.5:9.6\n const tasa_edad = genero===\"M\"?6.75:4.7\n const tasa_altura = genero===\"M\"?5:1.8\n const tasa_base = genero===\"M\"?66:655\n const tmb = (tasa_base + (tasa_peso*parseInt(peso)) - (tasa_edad*edad) + (tasa_altura*parseInt(altura)))*valor\n console.log(actividad_fisica,tasa_base,(tasa_peso*parseInt(peso)),(tasa_edad*edad),(tasa_altura*parseInt(altura)),valor)\n const imc = parseFloat(peso)*10000/(parseFloat(altura)*parseFloat(altura))\n const valor_imc = tabla_imc[genero].find(c => c.min<=imc && c.max>imc)\n const valor_ideal = tabla_imc[genero].find(c => c.variant === \"success\")\n const tmb_ideal = (((valor_ideal?.max||0)+(valor_ideal?.min||0))/2)*tmb/imc\n //Formula de Lorentz\n const peso_ideal = parseFloat(altura) - 100 - ((parseFloat(altura)-150)/(genero===\"M\"?4:2.5))\n console.log(\"TMB:\"+tmb)\n return (\n \n \n \n \n \n \n Cálculo de calorías\n \n \n \n
{e.preventDefault(); props.onNext(); return false;}}>\n \n \n Peso actual:\n \n \n \n Peso ideal:\n \n \n Plan:\n props.onChangePlan(e.detail.value,tmb,peso_ideal)}>\n \n \n Bajar 1kg semanal\n \n \n \n Bajar 1/2kg semanal\n \n \n \n Mantener peso\n \n \n \n Subir 1/2kg semanal\n \n \n \n Subir 1kg semanal\n \n \n \n {\n props.plan !== undefined && (\n \n Finalizar\n \n )\n }\n \n Regresar\n \n \n  \n
\n
\n )\n}","import { IonButton, IonContent, IonIcon, IonInput, IonItem, IonItemDivider, IonList, IonListHeader, IonPage, withIonLifeCycle } from \"@ionic/react\"\nimport { key, person } from \"ionicons/icons\";\nimport React, { FormEvent } from \"react\";\nimport logo from \"../images/logo.svg\"\nimport logo_acx from \"../images/logo_acromax.svg\"\nimport logo_ss from \"../images/logo_salud.svg\"\n\nclass SplashPage extends React.Component{\n\n submit = async (e:FormEvent) => {\n\n }\n\n render(){\n return (\n \n \n
\n \n \n
\n \"Acrofit\"\n
\n
\n \n

\n Esta app está diseñada para ayudarte a llevar un control de tu peso y alimentación.

\nPodrás llevar un recuento de cuántas calorías consumes a lo largo del día y si estás por buen camino hasta llegar a tu objetivo.\n

\n
\n {\"<< Continuar >>\"}\n \n
\n \"Acrofit\"\n
\n
\n \n
\n \"Acrofit\"\n
\n
\n
\n
\n
\n
\n )\n }\n}\n\nexport default withIonLifeCycle(SplashPage);","import { IonContent, IonIcon, IonInfiniteScroll, IonInfiniteScrollContent, IonItem, IonList, IonPage, IonToolbar, withIonLifeCycle } from \"@ionic/react\";\nimport { play } from \"ionicons/icons\";\nimport React from \"react\";\nimport YouTube from \"react-youtube\";\nimport { YoutubeDataAPI } from \"youtube-v3-api\";\nimport AcrofitHeader from \"../components/AcrofitHeader\";\n\nconst API_KEY = 'AIzaSyDanLSukjYxFrFQsa1mSen42yiuqOcI5ZM';\n\nclass VideoPage extends React.Component{\n\n state = { \n items: [] as Array,\n active:undefined as any,\n pageToken:\"\" as string\n }\n\n async ionViewDidEnter(){\n await this.refresh()\n }\n\n refresh = async () => {\n const api = new YoutubeDataAPI(API_KEY);\n const {items,nextPageToken} = await api.searchPlaylistItems(\"PLFMTKxJ7RbD1J2WRoSqnRaUqMv52GRRO5\",15,{order:\"date\"}) as any\n if(items && items.length > 0){\n this.setState({items,pageToken:nextPageToken,active:items[0]})\n }\n }\n\n fetchData = async () => {\n const api = new YoutubeDataAPI(API_KEY);\n const response = await api.searchPlaylistItems(\"PLFMTKxJ7RbD1J2WRoSqnRaUqMv52GRRO5\",15,{order:\"date\",pageToken:this.state.pageToken}) as any\n const {items,nextPageToken} = response\n this.setState({pageToken:nextPageToken,items:this.state.items.concat(items)})\n }\n\n render(){\n const {pageToken,items,active} = this.state\n return (\n \n \n {\n active && (\n \n \n \n )\n }\n \n \n \n {\n items.map((video,k) => (\n video?.snippet?.thumbnails?.high && (\n this.setState({active:video})} className=\"no-bg\">\n \"\"\n {video.snippet.title}\n \n )\n ))\n }\n \n \n \n \n \n \n )\n }\n}\n\nexport default withIonLifeCycle(VideoPage)","import { PushNotifications, PushNotificationSchema } from '@capacitor/push-notifications';\nimport { FCM } from '@capacitor-community/fcm'\nimport {\n IonApp,\n IonButton,\n IonButtons,\n IonContent,\n IonHeader,\n IonIcon, IonItem, IonModal, IonRouterOutlet,\n IonTabBar,\n IonTabButton,\n IonTabs,\n IonTitle,\n IonToolbar,\n isPlatform\n} from '@ionic/react';\nimport { IonReactRouter } from '@ionic/react-router';\n/* Core CSS required for Ionic components to work properly */\nimport '@ionic/react/css/core.css';\nimport '@ionic/react/css/display.css';\nimport '@ionic/react/css/flex-utils.css';\nimport '@ionic/react/css/float-elements.css';\n/* Basic CSS for apps built with Ionic */\nimport '@ionic/react/css/normalize.css';\n/* Optional CSS utils that can be commented out */\nimport '@ionic/react/css/padding.css';\nimport '@ionic/react/css/structure.css';\nimport '@ionic/react/css/text-alignment.css';\nimport '@ionic/react/css/text-transformation.css';\nimport '@ionic/react/css/typography.css';\nimport { arrowBack } from 'ionicons/icons';\nimport React from 'react';\nimport { Redirect, Route } from 'react-router-dom';\nimport { Authentication } from './components/Authentication';\nimport icon_alarma from \"./images/icon_alarmas.svg\";\nimport icon_alimentos from \"./images/icon_alimentos.svg\";\nimport icon_detalle from \"./images/icon_detalle.svg\";\nimport icon_plan from \"./images/icon_plan.svg\";\nimport icon_registro from \"./images/icon_registro.svg\";\nimport icon_videos from \"./images/icon_videos.svg\";\nimport AlarmasPage from './pages/AlarmasPage';\nimport AlimentosPage from './pages/AlimentosPage';\nimport HomePage from './pages/HomePage';\nimport LoginPage from './pages/LoginPage';\nimport PlanPage from './pages/PlanPage';\nimport RegistroPage from './pages/RegistroPage';\nimport SigninPage from './pages/SigninPage';\nimport SplashPage from './pages/SplashPage';\nimport VideoPage from './pages/VideoPage';\n/* Theme variables */\nimport './theme/variables.css';\n\nclass App extends React.Component{\n\n state = {\n notification:{} as PushNotificationSchema,\n show:false\n }\n\n componentDidMount(){\n if(!isPlatform(\"desktop\")){\n this.initNotifications()\n }\n }\n\n initNotifications = async () => {\n const permisions = await PushNotifications.checkPermissions()\n if(permisions.receive !== \"denied\"){\n PushNotifications.addListener(\"pushNotificationActionPerformed\",e => {\n this.setState({notification:e.notification,show:true})\n })\n PushNotifications.addListener(\"registrationError\",(error) => {\n console.error(error)\n })\n PushNotifications.addListener(\"registration\",(token) => {\n FCM.getToken()\n .then((r) => console.log(\"FCM TOKEN: \"+r.token))\n .catch((err) => console.error(err))\n FCM.subscribeTo({ topic: 'all' })\n })\n PushNotifications.register()\n }\n }\n\n render(){\n const {notification,show} = this.state\n return (\n \n \n {\n Authentication.loginData ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ):(\n \n \n \n \n \n )\n }\n \n this.setState({show:false})}>\n \n \n \n this.setState({show:false})}>\n \n {notification.data?.title || notification.title}\n \n \n \n {\n !notification.data && (\n \n { notification.body }\n \n )\n }\n {\n notification.data && (\n \n { notification.data?.image && (\"\")}\n \n )\n }\n {\n notification.data && (\n \n { notification.data?.body }\n \n )\n }\n {\n notification.data?.link && (\n Ver más..\n )\n }\n {\n !notification.data && (\n Ver más..\n )\n }\n \n \n \n )\n }\n}\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\nimport reportWebVitals from './reportWebVitals';\nimport moment from 'moment';\nimport { LOCAL_CONFIG } from './components/Funciones';\nimport { isPlatform } from '@ionic/react';\n\nmoment.locale(\"es\",LOCAL_CONFIG);\n\nfunction startApp(){\n ReactDOM.render(\n \n \n ,\n document.getElementById('root')\n )\n}\n\nif(!isPlatform(\"desktop\")){\n document.addEventListener(\"deviceready\", startApp, false)\n}else{\n startApp()\n}\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.unregister();\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","var map = {\n\t\"./ion-action-sheet.entry.js\": [\n\t\t169,\n\t\t5\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t170,\n\t\t6\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t171,\n\t\t7\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t172,\n\t\t17\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t173,\n\t\t18\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t174,\n\t\t45\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t175,\n\t\t19\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t176,\n\t\t20\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t177,\n\t\t21\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t178,\n\t\t22\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t179,\n\t\t46\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t180,\n\t\t10\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t181,\n\t\t23\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t182,\n\t\t47\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t183,\n\t\t48\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t184,\n\t\t24\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t185,\n\t\t25\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t186,\n\t\t26\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t187,\n\t\t27\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t188,\n\t\t28\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t189,\n\t\t8\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t190,\n\t\t14\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t191,\n\t\t9\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t192,\n\t\t29\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t193,\n\t\t30\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t194,\n\t\t31\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t195,\n\t\t11\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t196,\n\t\t16\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t197,\n\t\t49\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t198,\n\t\t32\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t199,\n\t\t33\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t200,\n\t\t34\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t201,\n\t\t35\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t202,\n\t\t50\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t203,\n\t\t13\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t204,\n\t\t51\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t205,\n\t\t36\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t206,\n\t\t15\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t207,\n\t\t37\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t208,\n\t\t38\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t209,\n\t\t39\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t210,\n\t\t12\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t211,\n\t\t52\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 93;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ion-icon.entry.js\": [\n\t\t212,\n\t\t59\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 95;\nmodule.exports = webpackAsyncContext;"],"sourceRoot":""}