{"version":3,"file":"index.mjs","sources":["../../expo/hooks/useExpoNotifications.ts"],"sourcesContent":["import { useState, useEffect, useCallback } from \"react\";\nimport * as Device from \"expo-device\";\nimport * as Notifications from \"expo-notifications\";\nimport { Platform } from \"react-native\";\n\ntype NotificationPermissionStatus = \"granted\" | \"denied\" | \"undetermined\";\n\nexport interface UseNotificationsReturn {\n  expoPushToken: string;\n  permissionStatus: NotificationPermissionStatus | null;\n  initializeNotifications: (id: string) => Promise<void>;\n  sendLocalNotification: (\n    title: string,\n    body: string,\n    data?: Record<string, unknown>,\n  ) => Promise<void>;\n}\n\nNotifications.setNotificationHandler({\n  handleNotification: async () => ({\n    shouldShowBanner: true,\n    shouldShowList: true,\n    shouldPlaySound: true,\n    shouldSetBadge: true,\n  }),\n});\n\ninterface Props {\n  updateToken: (token: string) => Promise<void>;\n  setNotification: (notification: Notifications.Notification) => void;\n}\n\nexport const useExpoNotifications = ({\n  updateToken,\n  setNotification,\n}: Props): UseNotificationsReturn => {\n  const [expoPushToken, setExpoPushToken] = useState<string>(\"\");\n  const [permissionStatus, setPermissionStatus] =\n    useState<NotificationPermissionStatus | null>(null);\n\n  const resolvePermissionStatus = useCallback(\n    (\n      permissions: Notifications.NotificationPermissionsStatus,\n    ): NotificationPermissionStatus => {\n      const { granted, canAskAgain } = permissions as unknown as {\n        granted: boolean;\n        canAskAgain: boolean;\n      };\n\n      if (granted) {\n        return \"granted\";\n      }\n\n      return canAskAgain ? \"undetermined\" : \"denied\";\n    },\n    [],\n  );\n\n  const registerForPushNotificationsAsync = useCallback(async (): Promise<\n    string | undefined\n  > => {\n    if (Platform.OS === \"android\") {\n      await Notifications.setNotificationChannelAsync(\"default\", {\n        name: \"default\",\n        importance: Notifications.AndroidImportance.MAX,\n        vibrationPattern: [0, 250, 250, 250],\n        lightColor: \"#FF231F7C\",\n      });\n    }\n\n    if (!Device.isDevice) {\n      setPermissionStatus(\"undetermined\");\n      return undefined;\n    }\n\n    const existingPermissions = await Notifications.getPermissionsAsync();\n    const existingStatus = resolvePermissionStatus(existingPermissions);\n    const permissions =\n      existingStatus === \"granted\"\n        ? existingPermissions\n        : await Notifications.requestPermissionsAsync();\n\n    const normalizedStatus = resolvePermissionStatus(permissions);\n    setPermissionStatus(normalizedStatus);\n\n    if (normalizedStatus !== \"granted\") {\n      return undefined;\n    }\n\n    const { data: token } = await Notifications.getExpoPushTokenAsync({\n      projectId: process.env.EXPO_PUBLIC_EAS_PROJECT_ID,\n    });\n\n    return token;\n  }, [resolvePermissionStatus]);\n\n  const saveTokenToFirestore = useCallback(\n    async (token: string): Promise<void> => {\n      try {\n        await updateToken(token);\n      } catch (error) {\n        throw new Error(\"Failed to save token to Firestore \" + error);\n      }\n    },\n    [updateToken],\n  );\n\n  const initializeNotifications = useCallback(async (): Promise<void> => {\n    if (Platform.OS === \"web\") return;\n    try {\n      const token = await registerForPushNotificationsAsync();\n      if (token) {\n        setExpoPushToken(token);\n        await saveTokenToFirestore(token);\n      }\n    } catch (error) {\n      throw new Error(\"Failed to initialize notifications: \" + error);\n    }\n  }, [registerForPushNotificationsAsync, saveTokenToFirestore]);\n\n  const sendLocalNotification = useCallback(\n    async (\n      title: string,\n      body: string,\n      data: Record<string, unknown> = {},\n    ): Promise<void> => {\n      try {\n        await Notifications.scheduleNotificationAsync({\n          content: { title, body, data },\n          trigger: null,\n        });\n      } catch (error) {\n        throw new Error(\"Error sending local notification: \" + error);\n      }\n    },\n    [],\n  );\n\n  useEffect(() => {\n    const notificationListener =\n      Notifications.addNotificationReceivedListener(setNotification);\n\n    const responseListener =\n      Notifications.addNotificationResponseReceivedListener(\n        (_: Notifications.NotificationResponse) => {\n          //\n        },\n      );\n\n    return () => {\n      notificationListener.remove();\n      responseListener.remove();\n    };\n  }, [setNotification]);\n\n  return {\n    expoPushToken,\n    permissionStatus,\n    initializeNotifications,\n    sendLocalNotification,\n  };\n};\n"],"names":["Notifications","setNotificationHandler","handleNotification","_handleNotification","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","shouldShowBanner","shouldShowList","shouldPlaySound","shouldSetBadge","apply","arguments","useExpoNotifications","t0","$","_c","updateToken","setNotification","_useState","useState","_useState2","_slicedToArray","expoPushToken","setExpoPushToken","_useState3","_useState4","permissionStatus","setPermissionStatus","resolvePermissionStatus","_temp","t1","Symbol","_ref","_callee2","existingPermissions","existingStatus","permissions_0","normalizedStatus","_yield$Notifications$","token","_t","_context2","Platform","OS","setNotificationChannelAsync","name","importance","AndroidImportance","MAX","vibrationPattern","lightColor","Device","isDevice","getPermissionsAsync","v","requestPermissionsAsync","permissions","getExpoPushTokenAsync","projectId","process","env","EXPO_PUBLIC_EAS_PROJECT_ID","data","registerForPushNotificationsAsync","t2","_ref2","_callee3","token_0","error","_t2","_context3","p","Error","_x","saveTokenToFirestore","t3","_ref3","_callee4","token_1","error_0","_t3","_context4","initializeNotifications","sendLocalNotification","_temp2","t4","t5","notificationListener","addNotificationReceivedListener","responseListener","addNotificationResponseReceivedListener","_temp3","remove","useEffect","t6","granted","canAskAgain","_x2","_x3","_x4","_temp4","_callee5","title","body","error_1","_t4","_context5","undefined","scheduleNotificationAsync","content","trigger","_"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBAA,aAAa,CAACC,sBAAsB,CAAC;EACnCC,kBAAkB,EAAA,YAAA;IAAA,IAAAC,mBAAA,GAAAC,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAAE,SAAAC,OAAAA,GAAA;AAAA,MAAA,OAAAF,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAC,QAAA,EAAA;QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAAA,OAAAD,QAAA,CAAAE,CAAA,CAAA,CAAA,EAAa;AAC/BC,cAAAA,gBAAgB,EAAE,IAAI;AACtBC,cAAAA,cAAc,EAAE,IAAI;AACpBC,cAAAA,eAAe,EAAE,IAAI;AACrBC,cAAAA,cAAc,EAAE;aACjB,CAAA;AAAA;AAAA,MAAA,CAAA,EAAAR,OAAA,CAAA;IAAA,CAAC,CAAA,CAAA;AAAA,IAAA,SALFL,kBAAkBA,GAAA;AAAA,MAAA,OAAAC,mBAAA,CAAAa,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,IAAA;AAAA,IAAA,OAAlBf,kBAAkB;AAAA,EAAA,CAAA;AAMnB,CAAA,CAAC;IAOWgB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,EAAA,EAAA;EAAA,IAAAC,CAAA,GAAAC,CAAA,CAAA,EAAA,CAAA;AAAI,EAAA,IAAAC,WAAA,GAAAH,EAG7B,CAAAG,WAAA;IAAAC,eAAA,GAH6BJ,EAG7B,CAAAI,eAAA;AACN,EAAA,IAAAC,SAAA,GAA0CC,QAAQ,CAAS,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAAI,IAAAA,aAAA,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,gBAAA,GAAAH,UAAA,CAAA,CAAA,CAAA;AAC9D,EAAA,IAAAI,UAAA,GACEL,QAAQ,CAAsC,IAAI,CAAC;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAAE,IAAAA,gBAAA,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAAE,IAAAA,mBAAA,GAAAF,UAAA,CAAA,CAAA,CAAA;EAErD,IAAAG,uBAAA,GAAgCC,KAgB/B;AAAC,EAAA,IAAAC,EAAA;EAAA,IAAAhB,CAAA,QAAAiB,MAAA,CAAA,KAAA,CAAA,CAAA,2BAAA,CAAA,EAAA;IAEoDD,EAAA,gBAAA,YAAA;MAAA,IAAAE,IAAA,GAAAlC,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAAiC,QAAAA,GAAA;AAAA,QAAA,IAAAC,mBAAA,EAAAC,cAAA,EAAAC,aAAA,EAAAC,gBAAA,EAAAC,qBAAA,EAAAC,KAAA,EAAAC,EAAA;AAAA,QAAA,OAAAzC,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuC,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAArC,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EAGhDsC,QAAQ,CAAAC,EAAG,KAAK,SAAS,CAAA,EAAA;AAAAF,gBAAAA,SAAA,CAAArC,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAAqC,cAAAA,SAAA,CAAArC,CAAA,GAAA,CAAA;AAAA,cAAA,OACrBV,aAAa,CAAAkD,2BAA4B,CAAC,SAAS,EAAE;AAAAC,gBAAAA,IAAA,EACnD,SAAS;AAAAC,gBAAAA,UAAA,EACHpD,aAAa,CAAAqD,iBAAkB,CAAAC,GAAI;gBAAAC,gBAAA,EAC7B,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAAAC,gBAAAA,UAAA,EACxB;AACb,eAAA,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA,IAGCC,MAAM,CAAAC,QAAS,EAAA;AAAAX,gBAAAA,SAAA,CAAArC,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAClBuB,mBAAmB,CAAC,cAAc,CAAC;cAAA,OAAAc,SAAA,CAAApC,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAoC,cAAAA,SAAA,CAAArC,CAAA,GAAA,CAAA;AAAA,cAAA,OAIHV,aAAa,CAAA2D,mBAAoB,EAAE;AAAA,YAAA,KAAA,CAAA;cAAAnB,mBAAA,GAAAO,SAAA,CAAAa,CAAA;AAAAnB,cAAAA,cAAA,GAC9CP,uBAAuB,CAACM,mBAAmB,CAAC;cAAA,IAAA,EAEjEC,cAAc,KAAK,SAE8B,CAAA,EAAA;AAAAM,gBAAAA,SAAA,CAAArC,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAAoC,cAAAA,EAAA,GAFjDN,mBAEiD;AAAAO,cAAAA,SAAA,CAAArC,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAAqC,cAAAA,SAAA,CAAArC,CAAA,GAAA,CAAA;AAAA,cAAA,OAAvCV,aAAa,CAAA6D,uBAAwB,EAAE;AAAA,YAAA,KAAA,CAAA;cAAAf,EAAA,GAAAC,SAAA,CAAAa,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAlB,cAAAA,aAAA,GAAAI,EAAA;AAAAH,cAAAA,gBAAA,GAE1BT,uBAAuB,CAAC4B,aAAW,CAAC;cAC7D7B,mBAAmB,CAACU,gBAAgB,CAAC;cAAA,IAAA,EAEjCA,gBAAgB,KAAK,SAAS,CAAA,EAAA;AAAAI,gBAAAA,SAAA,CAAArC,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAAA,OAAAqC,SAAA,CAAApC,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAoC,cAAAA,SAAA,CAAArC,CAAA,GAAA,CAAA;cAAA,OAIJV,aAAa,CAAA+D,qBAAsB,CAAC;AAAAC,gBAAAA,SAAA,EACrDC,OAAO,CAAAC,GAAI,CAAAC;AACvB,eAAA,CAAC;AAAA,YAAA,KAAA,CAAA;cAAAvB,qBAAA,GAAAG,SAAA,CAAAa,CAAA;cAAAf,KAAA,GAAAD,qBAAA,CAAAwB,IAAA;AAAA,cAAA,OAAArB,SAAA,CAAApC,CAAA,CAAA,CAAA,EAEKkC,KAAK,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAN,QAAA,CAAA;MAAA,CACb,CAAA,CAAA;AAAA,MAAA,OAAA,SAAAH,EAAAA,GAAA;AAAA,QAAA,OAAAE,IAAA,CAAAtB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,MAAA,CAAA;AAAA,IAAA,CAAA,EAAA;AAAAG,IAAAA,CAAA,MAAAgB,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAhB,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;EApCD,IAAAiD,iCAAA,GAA0CjC,EAoCb;AAAC,EAAA,IAAAkC,EAAA;EAAA,IAAAlD,CAAA,QAAAE,WAAA,EAAA;IAG5BgD,EAAA,gBAAA,YAAA;MAAA,IAAAC,KAAA,GAAAnE,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAAA,SAAAkE,QAAAA,CAAAC,OAAA,EAAA;QAAA,IAAAC,KAAA,EAAAC,GAAA;AAAA,QAAA,OAAAtE,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoE,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAC,CAAA,GAAAD,SAAA,CAAAlE,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAkE,cAAAA,SAAA,CAAAC,CAAA,GAAA,CAAA;AAAAD,cAAAA,SAAA,CAAAlE,CAAA,GAAA,CAAA;cAAA,OAEUY,WAAW,CAACuB,OAAK,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA+B,cAAAA,SAAA,CAAAlE,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAAkE,cAAAA,SAAA,CAAAC,CAAA,GAAA,CAAA;cAAAF,GAAA,GAAAC,SAAA,CAAAhB,CAAA;AAAAc,cAAAA,KAAA,GAAAC,GAAA;AAAA,cAAA,MAElB,IAAIG,KAAK,CAAC,oCAAoC,GAAGJ,KAAK,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAE,SAAA,CAAAjE,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA6D,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAAA,CAEhE,CAAA,CAAA;AAAA,MAAA,OAAA,SAAAF,GAAAS,EAAA,EAAA;AAAA,QAAA,OAAAR,KAAA,CAAAvD,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,MAAA,CAAA;AAAA,IAAA,CAAA,EAAA;AAAAG,IAAAA,CAAA,MAAAE,WAAA;AAAAF,IAAAA,CAAA,MAAAkD,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAlD,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;EAPH,IAAA4D,oBAAA,GAA6BV,EAS5B;AAAC,EAAA,IAAAW,EAAA;EAAA,IAAA7D,CAAA,QAAA4D,oBAAA,EAAA;IAE0CC,EAAA,gBAAA,YAAA;MAAA,IAAAC,KAAA,GAAA9E,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAA6E,QAAAA,GAAA;AAAA,QAAA,IAAAC,OAAA,EAAAC,OAAA,EAAAC,GAAA;AAAA,QAAA,OAAAjF,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA+E,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAV,CAAA,GAAAU,SAAA,CAAA7E,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EACtCsC,QAAQ,CAAAC,EAAG,KAAK,KAAK,CAAA,EAAA;AAAAsC,gBAAAA,SAAA,CAAA7E,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAAA,OAAA6E,SAAA,CAAA5E,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA4E,cAAAA,SAAA,CAAAV,CAAA,GAAA,CAAA;AAAAU,cAAAA,SAAA,CAAA7E,CAAA,GAAA,CAAA;cAAA,OAEH2D,iCAAiC,EAAE;AAAA,YAAA,KAAA,CAAA;cAAAe,OAAA,GAAAG,SAAA,CAAA3B,CAAA;AAAA,cAAA,IAAA,CACnDf,OAAK,EAAA;AAAA0C,gBAAAA,SAAA,CAAA7E,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cACPmB,gBAAgB,CAACgB,OAAK,CAAC;AAAA0C,cAAAA,SAAA,CAAA7E,CAAA,GAAA,CAAA;cAAA,OACjBsE,oBAAoB,CAACnC,OAAK,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA0C,cAAAA,SAAA,CAAA7E,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAA6E,cAAAA,SAAA,CAAAV,CAAA,GAAA,CAAA;cAAAS,GAAA,GAAAC,SAAA,CAAA3B,CAAA;AAAAyB,cAAAA,OAAA,GAAAC,GAAA;AAAA,cAAA,MAG7B,IAAIR,KAAK,CAAC,sCAAsC,GAAGJ,OAAK,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAa,SAAA,CAAA5E,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAwE,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAAA,CAElE,CAAA,CAAA;AAAA,MAAA,OAAA,SAAAF,EAAAA,GAAA;AAAA,QAAA,OAAAC,KAAA,CAAAlE,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,MAAA,CAAA;AAAA,IAAA,CAAA,EAAA;AAAAG,IAAAA,CAAA,MAAA4D,oBAAA;AAAA5D,IAAAA,CAAA,MAAA6D,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAA7D,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;EAXD,IAAAoE,uBAAA,GAAgCP,EAW6B;EAE7D,IAAAQ,qBAAA,GAA8BC,MAgB7B;AAAC,EAAA,IAAAC,EAAA;AAAA,EAAA,IAAAC,EAAA;EAAA,IAAAxE,CAAA,QAAAG,eAAA,EAAA;AAEQoE,IAAAA,EAAA,YAAAA,EAAAA,GAAA;AACR,MAAA,IAAAE,oBAAA,GACE7F,aAAa,CAAA8F,+BAAgC,CAACvE,eAAe,CAAC;AAEhE,MAAA,IAAAwE,gBAAA,GACE/F,aAAa,CAAAgG,uCAAwC,CACnDC,MAEC,CACF;MAAC,OAEG,YAAA;QACLJ,oBAAoB,CAAAK,MAAO,EAAE;QAC7BH,gBAAgB,CAAAG,MAAO,EAAE;MAAA,CAC1B;IAAA,CACF;IAAEN,EAAA,GAAA,CAACrE,eAAe,CAAC;AAAAH,IAAAA,CAAA,MAAAG,eAAA;AAAAH,IAAAA,CAAA,MAAAuE,EAAA;AAAAvE,IAAAA,CAAA,MAAAwE,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAD,IAAAA,EAAA,GAAAvE,CAAA,CAAA,CAAA,CAAA;AAAAwE,IAAAA,EAAA,GAAAxE,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAfpB+E,EAAAA,SAAS,CAACR,EAeT,EAAEC,EAAiB,CAAC;AAAA,EAAA,IAAAQ,EAAA;EAAA,IAAAhF,CAAA,CAAA,CAAA,CAAA,KAAAQ,aAAA,IAAAR,CAAA,QAAAoE,uBAAA,IAAApE,CAAA,CAAA,EAAA,CAAA,KAAAY,gBAAA,EAAA;IAEdoE,EAAA,GAAA;AAAAxE,MAAAA,aAAA,EACLA,aAAa;AAAAI,MAAAA,gBAAA,EACbA,gBAAgB;AAAAwD,MAAAA,uBAAA,EAChBA,uBAAuB;AAAAC,MAAAA,qBAAA,EACvBA;KACD;AAAArE,IAAAA,CAAA,MAAAQ,aAAA;AAAAR,IAAAA,CAAA,MAAAoE,uBAAA;AAAApE,IAAAA,CAAA,OAAAY,gBAAA;AAAAZ,IAAAA,CAAA,OAAAgF,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAhF,CAAA,CAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OALMgF,EAKN;AAAA;AAhIiC,SAAAjE,MAAA2B,WAAA,EAAA;AAY9B,EAAA,IAAAuC,OAAA,GAAiCvC,WAGhC,CAAAuC,OAAA;IAAAC,WAAA,GAHgCxC,WAGhC,CAAAwC,WAAA;AAED,EAAA,IAAID,OAAO,EAAA;AAAA,IAAA,OACF,SAAS;AAAA,EAAA;AACjB,EAAA,OAEMC,WAAW,GAAX,cAAuC,GAAvC,QAAuC;AAAA;AA4GnD,SAAAZ,MAAAA,CAAAa,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,EAAA,OAAAC,MAAA,CAAA1F,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA;AAAA,SAAAyF,MAAAA,GAAA;AAAAA,EAAAA,MAAA,GAAAtG,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAjImC,SAAAqG,QAAAA,CAAAC,KAAA,EAAAC,IAAA,EAAA1F,EAAA,EAAA;AAAA,IAAA,IAAAiD,IAAA,EAAA0C,OAAA,EAAAC,GAAA;AAAA,IAAA,OAAA1G,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAwG,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnC,CAAA,GAAAmC,SAAA,CAAAtG,CAAA;AAAA,QAAA,KAAA,CAAA;UAAA0D,IAAA,GA4F9BjD,EAAkC,KAAlC8F,SAAkC,GAAlC,EAAkC,GAAlC9F,EAAkC;AAAA6F,UAAAA,SAAA,CAAAnC,CAAA,GAAA,CAAA;AAAAmC,UAAAA,SAAA,CAAAtG,CAAA,GAAA,CAAA;UAAA,OAG1BV,aAAa,CAAAkH,yBAA0B,CAAC;AAAAC,YAAAA,OAAA,EACnC;AAAAP,cAAAA,KAAA,EAAEA,KAAK;AAAAC,cAAAA,IAAA,EAAEA,IAAI;AAAAzC,cAAAA,IAAA,EAAEA;aAAM;AAAAgD,YAAAA,OAAA,EACrB;AACV,WAAA,CAAC;AAAA,QAAA,KAAA,CAAA;AAAAJ,UAAAA,SAAA,CAAAtG,CAAA,GAAA,CAAA;AAAA,UAAA;AAAA,QAAA,KAAA,CAAA;AAAAsG,UAAAA,SAAA,CAAAnC,CAAA,GAAA,CAAA;UAAAkC,GAAA,GAAAC,SAAA,CAAApD,CAAA;AAAAkD,UAAAA,OAAA,GAAAC,GAAA;AAAA,UAAA,MAEI,IAAIjC,KAAK,CAAC,oCAAoC,GAAGJ,OAAK,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA,OAAAsC,SAAA,CAAArG,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAgG,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;EAAA,CA6BpE,CAAA,CAAA;AAAA,EAAA,OAAAD,MAAA,CAAA1F,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA;AAjImC,SAAAgF,OAAAoB,CAAA,EAAA,CAAA"}