diff --git a/frontend-dist/Inter-Black.woff.a3efb88f6f.efe3f25b.woff b/frontend-dist/Inter-Black.woff.a3efb88f6f.efe3f25b.woff new file mode 100644 index 0000000000..8fd1bd5311 Binary files /dev/null and b/frontend-dist/Inter-Black.woff.a3efb88f6f.efe3f25b.woff differ diff --git a/frontend-dist/Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2 b/frontend-dist/Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2 new file mode 100644 index 0000000000..c354e63907 Binary files /dev/null and b/frontend-dist/Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2 differ diff --git a/frontend-dist/Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff b/frontend-dist/Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff new file mode 100644 index 0000000000..be6a45bcf1 Binary files /dev/null and b/frontend-dist/Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff differ diff --git a/frontend-dist/Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2 b/frontend-dist/Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2 new file mode 100644 index 0000000000..8b2efe9526 Binary files /dev/null and b/frontend-dist/Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2 differ diff --git a/frontend-dist/Inter-Bold.woff.a3efb88f6f.d92ed350.woff b/frontend-dist/Inter-Bold.woff.a3efb88f6f.d92ed350.woff new file mode 100644 index 0000000000..b5221b0e8a Binary files /dev/null and b/frontend-dist/Inter-Bold.woff.a3efb88f6f.d92ed350.woff differ diff --git a/frontend-dist/Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2 b/frontend-dist/Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2 new file mode 100644 index 0000000000..619c3a7410 Binary files /dev/null and b/frontend-dist/Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2 differ diff --git a/frontend-dist/Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff b/frontend-dist/Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff new file mode 100644 index 0000000000..da912559ef Binary files /dev/null and b/frontend-dist/Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff differ diff --git a/frontend-dist/Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2 b/frontend-dist/Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2 new file mode 100644 index 0000000000..4022cc8d9a Binary files /dev/null and b/frontend-dist/Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2 differ diff --git a/frontend-dist/Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff b/frontend-dist/Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff new file mode 100644 index 0000000000..7221d72ef0 Binary files /dev/null and b/frontend-dist/Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff differ diff --git a/frontend-dist/Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2 b/frontend-dist/Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2 new file mode 100644 index 0000000000..d3d23b43e5 Binary files /dev/null and b/frontend-dist/Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2 differ diff --git a/frontend-dist/Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff b/frontend-dist/Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff new file mode 100644 index 0000000000..8520a31855 Binary files /dev/null and b/frontend-dist/Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff differ diff --git a/frontend-dist/Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2 b/frontend-dist/Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2 new file mode 100644 index 0000000000..863748b2e3 Binary files /dev/null and b/frontend-dist/Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2 differ diff --git a/frontend-dist/Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff b/frontend-dist/Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff new file mode 100644 index 0000000000..5590441093 Binary files /dev/null and b/frontend-dist/Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff differ diff --git a/frontend-dist/Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2 b/frontend-dist/Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2 new file mode 100644 index 0000000000..7cb6e49fb6 Binary files /dev/null and b/frontend-dist/Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2 differ diff --git a/frontend-dist/Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff b/frontend-dist/Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff new file mode 100644 index 0000000000..0a9f00de8e Binary files /dev/null and b/frontend-dist/Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff differ diff --git a/frontend-dist/Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2 b/frontend-dist/Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2 new file mode 100644 index 0000000000..e636442002 Binary files /dev/null and b/frontend-dist/Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2 differ diff --git a/frontend-dist/Inter-Italic.woff.a3efb88f6f.d9effa31.woff b/frontend-dist/Inter-Italic.woff.a3efb88f6f.d9effa31.woff new file mode 100644 index 0000000000..f2c424804c Binary files /dev/null and b/frontend-dist/Inter-Italic.woff.a3efb88f6f.d9effa31.woff differ diff --git a/frontend-dist/Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2 b/frontend-dist/Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2 new file mode 100644 index 0000000000..b749909b0a Binary files /dev/null and b/frontend-dist/Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2 differ diff --git a/frontend-dist/Inter-Light.woff.a3efb88f6f.0cf765a1.woff b/frontend-dist/Inter-Light.woff.a3efb88f6f.0cf765a1.woff new file mode 100644 index 0000000000..15672799ed Binary files /dev/null and b/frontend-dist/Inter-Light.woff.a3efb88f6f.0cf765a1.woff differ diff --git a/frontend-dist/Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2 b/frontend-dist/Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2 new file mode 100644 index 0000000000..ac2e1275ef Binary files /dev/null and b/frontend-dist/Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2 differ diff --git a/frontend-dist/Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff b/frontend-dist/Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff new file mode 100644 index 0000000000..ebbb05b38e Binary files /dev/null and b/frontend-dist/Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff differ diff --git a/frontend-dist/Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2 b/frontend-dist/Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2 new file mode 100644 index 0000000000..d51474ca18 Binary files /dev/null and b/frontend-dist/Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2 differ diff --git a/frontend-dist/Inter-Medium.woff.a3efb88f6f.cb391d89.woff b/frontend-dist/Inter-Medium.woff.a3efb88f6f.cb391d89.woff new file mode 100644 index 0000000000..dac813a74e Binary files /dev/null and b/frontend-dist/Inter-Medium.woff.a3efb88f6f.cb391d89.woff differ diff --git a/frontend-dist/Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2 b/frontend-dist/Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2 new file mode 100644 index 0000000000..ab9850258e Binary files /dev/null and b/frontend-dist/Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2 differ diff --git a/frontend-dist/Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff b/frontend-dist/Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff new file mode 100644 index 0000000000..ae6e45fe3b Binary files /dev/null and b/frontend-dist/Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff differ diff --git a/frontend-dist/Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2 b/frontend-dist/Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2 new file mode 100644 index 0000000000..ceb866e424 Binary files /dev/null and b/frontend-dist/Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2 differ diff --git a/frontend-dist/Inter-Regular.woff.a3efb88f6f.d9325c13.woff b/frontend-dist/Inter-Regular.woff.a3efb88f6f.d9325c13.woff new file mode 100644 index 0000000000..e3200e0b97 Binary files /dev/null and b/frontend-dist/Inter-Regular.woff.a3efb88f6f.d9325c13.woff differ diff --git a/frontend-dist/Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2 b/frontend-dist/Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2 new file mode 100644 index 0000000000..28ae0b6abb Binary files /dev/null and b/frontend-dist/Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2 differ diff --git a/frontend-dist/Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff b/frontend-dist/Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff new file mode 100644 index 0000000000..295fbdfa95 Binary files /dev/null and b/frontend-dist/Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff differ diff --git a/frontend-dist/Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2 b/frontend-dist/Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2 new file mode 100644 index 0000000000..41ebbbb022 Binary files /dev/null and b/frontend-dist/Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2 differ diff --git a/frontend-dist/Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff b/frontend-dist/Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff new file mode 100644 index 0000000000..34d759f726 Binary files /dev/null and b/frontend-dist/Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff differ diff --git a/frontend-dist/Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2 b/frontend-dist/Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2 new file mode 100644 index 0000000000..4dd025adf2 Binary files /dev/null and b/frontend-dist/Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2 differ diff --git a/frontend-dist/Inter-Thin.woff.a3efb88f6f.832f7e9d.woff b/frontend-dist/Inter-Thin.woff.a3efb88f6f.832f7e9d.woff new file mode 100644 index 0000000000..07ea92efba Binary files /dev/null and b/frontend-dist/Inter-Thin.woff.a3efb88f6f.832f7e9d.woff differ diff --git a/frontend-dist/Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2 b/frontend-dist/Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2 new file mode 100644 index 0000000000..72707dcd31 Binary files /dev/null and b/frontend-dist/Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2 differ diff --git a/frontend-dist/Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff b/frontend-dist/Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff new file mode 100644 index 0000000000..d35d6173ce Binary files /dev/null and b/frontend-dist/Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff differ diff --git a/frontend-dist/Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2 b/frontend-dist/Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2 new file mode 100644 index 0000000000..884fe458c0 Binary files /dev/null and b/frontend-dist/Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2 differ diff --git a/frontend-dist/Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2 b/frontend-dist/Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2 new file mode 100644 index 0000000000..b1d4bdc363 Binary files /dev/null and b/frontend-dist/Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2 differ diff --git a/frontend-dist/Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2 b/frontend-dist/Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2 new file mode 100644 index 0000000000..f56c09796f Binary files /dev/null and b/frontend-dist/Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2 differ diff --git a/frontend-dist/Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2 b/frontend-dist/Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2 new file mode 100644 index 0000000000..0c41431927 Binary files /dev/null and b/frontend-dist/Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2 differ diff --git a/frontend-dist/JuliaMono-Bold.24b57d33.woff2 b/frontend-dist/JuliaMono-Bold.24b57d33.woff2 new file mode 100644 index 0000000000..212ccec354 Binary files /dev/null and b/frontend-dist/JuliaMono-Bold.24b57d33.woff2 differ diff --git a/frontend-dist/JuliaMono-BoldLatin.7ec5c608.woff2 b/frontend-dist/JuliaMono-BoldLatin.7ec5c608.woff2 new file mode 100644 index 0000000000..1f8dde89e5 Binary files /dev/null and b/frontend-dist/JuliaMono-BoldLatin.7ec5c608.woff2 differ diff --git a/frontend-dist/JuliaMono-Regular.e0106c6f.woff2 b/frontend-dist/JuliaMono-Regular.e0106c6f.woff2 new file mode 100644 index 0000000000..c2db127372 Binary files /dev/null and b/frontend-dist/JuliaMono-Regular.e0106c6f.woff2 differ diff --git a/frontend-dist/JuliaMono-RegularItalic.3159f647.woff2 b/frontend-dist/JuliaMono-RegularItalic.3159f647.woff2 new file mode 100644 index 0000000000..987502fedb Binary files /dev/null and b/frontend-dist/JuliaMono-RegularItalic.3159f647.woff2 differ diff --git a/frontend-dist/JuliaMono-RegularLatin.26c56b70.woff2 b/frontend-dist/JuliaMono-RegularLatin.26c56b70.woff2 new file mode 100644 index 0000000000..f159a92853 Binary files /dev/null and b/frontend-dist/JuliaMono-RegularLatin.26c56b70.woff2 differ diff --git a/frontend-dist/Vollkorn-Black.0ebdfbf5.woff2 b/frontend-dist/Vollkorn-Black.0ebdfbf5.woff2 new file mode 100644 index 0000000000..b51a37a406 Binary files /dev/null and b/frontend-dist/Vollkorn-Black.0ebdfbf5.woff2 differ diff --git a/frontend-dist/Vollkorn-BlackItalic.4095acfe.woff2 b/frontend-dist/Vollkorn-BlackItalic.4095acfe.woff2 new file mode 100644 index 0000000000..bb2e060ce4 Binary files /dev/null and b/frontend-dist/Vollkorn-BlackItalic.4095acfe.woff2 differ diff --git a/frontend-dist/Vollkorn-Bold.6e1feb70.woff2 b/frontend-dist/Vollkorn-Bold.6e1feb70.woff2 new file mode 100644 index 0000000000..cfb12e1520 Binary files /dev/null and b/frontend-dist/Vollkorn-Bold.6e1feb70.woff2 differ diff --git a/frontend-dist/Vollkorn-BoldItalic.a48ab300.woff2 b/frontend-dist/Vollkorn-BoldItalic.a48ab300.woff2 new file mode 100644 index 0000000000..23d7a6c844 Binary files /dev/null and b/frontend-dist/Vollkorn-BoldItalic.a48ab300.woff2 differ diff --git a/frontend-dist/Vollkorn-SemiBold.8072eb6c.woff2 b/frontend-dist/Vollkorn-SemiBold.8072eb6c.woff2 new file mode 100644 index 0000000000..78b781055b Binary files /dev/null and b/frontend-dist/Vollkorn-SemiBold.8072eb6c.woff2 differ diff --git a/frontend-dist/Vollkorn-SemiBoldItalic.5c3cd265.woff2 b/frontend-dist/Vollkorn-SemiBoldItalic.5c3cd265.woff2 new file mode 100644 index 0000000000..2162ab8ef4 Binary files /dev/null and b/frontend-dist/Vollkorn-SemiBoldItalic.5c3cd265.woff2 differ diff --git a/frontend-dist/add-outline.e3c93c35.svg b/frontend-dist/add-outline.e3c93c35.svg new file mode 100644 index 0000000000..7c7fb14877 --- /dev/null +++ b/frontend-dist/add-outline.e3c93c35.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/arrow-back-outline.9ae1bed8.svg b/frontend-dist/arrow-back-outline.9ae1bed8.svg new file mode 100644 index 0000000000..8fc34ff6ec --- /dev/null +++ b/frontend-dist/arrow-back-outline.9ae1bed8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/arrow-forward-outline.f5f68f5c.svg b/frontend-dist/arrow-forward-outline.f5f68f5c.svg new file mode 100644 index 0000000000..32a9f4f309 --- /dev/null +++ b/frontend-dist/arrow-forward-outline.f5f68f5c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/arrow-redo-circle-outline.dfa899f4.svg b/frontend-dist/arrow-redo-circle-outline.dfa899f4.svg new file mode 100644 index 0000000000..d0d9e1124d --- /dev/null +++ b/frontend-dist/arrow-redo-circle-outline.dfa899f4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/arrow-undo-outline.d8c99108.svg b/frontend-dist/arrow-undo-outline.d8c99108.svg new file mode 100644 index 0000000000..a5d529e729 --- /dev/null +++ b/frontend-dist/arrow-undo-outline.d8c99108.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/arrow-up-circle-outline.3f146ffe.svg b/frontend-dist/arrow-up-circle-outline.3f146ffe.svg new file mode 100644 index 0000000000..ba46f260f7 --- /dev/null +++ b/frontend-dist/arrow-up-circle-outline.3f146ffe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ban-outline.c97da9b4.svg b/frontend-dist/ban-outline.c97da9b4.svg new file mode 100644 index 0000000000..c52ff62277 --- /dev/null +++ b/frontend-dist/ban-outline.c97da9b4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/caret-down-outline.4253a2fe.svg b/frontend-dist/caret-down-outline.4253a2fe.svg new file mode 100644 index 0000000000..c4c15b4722 --- /dev/null +++ b/frontend-dist/caret-down-outline.4253a2fe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/caret-forward-circle-outline.d0bf2b34.svg b/frontend-dist/caret-forward-circle-outline.d0bf2b34.svg new file mode 100644 index 0000000000..093c8e4ca2 --- /dev/null +++ b/frontend-dist/caret-forward-circle-outline.d0bf2b34.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/caret-forward-outline.348a84b6.svg b/frontend-dist/caret-forward-outline.348a84b6.svg new file mode 100644 index 0000000000..888285c953 --- /dev/null +++ b/frontend-dist/caret-forward-outline.348a84b6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/chatbox-ellipses-outline.4334a3a4.svg b/frontend-dist/chatbox-ellipses-outline.4334a3a4.svg new file mode 100644 index 0000000000..4e04a58545 --- /dev/null +++ b/frontend-dist/chatbox-ellipses-outline.4334a3a4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/checkmark-outline.4fb8c646.svg b/frontend-dist/checkmark-outline.4fb8c646.svg new file mode 100644 index 0000000000..f62dcf9212 --- /dev/null +++ b/frontend-dist/checkmark-outline.4fb8c646.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/checkmark-outline.538ded54.svg b/frontend-dist/checkmark-outline.538ded54.svg new file mode 100644 index 0000000000..7ceba660d9 --- /dev/null +++ b/frontend-dist/checkmark-outline.538ded54.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/chevron-down-outline.1efaf1cc.svg b/frontend-dist/chevron-down-outline.1efaf1cc.svg new file mode 100644 index 0000000000..e7a50cd112 --- /dev/null +++ b/frontend-dist/chevron-down-outline.1efaf1cc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/chevron-forward-circle-outline.babf2a99.svg b/frontend-dist/chevron-forward-circle-outline.babf2a99.svg new file mode 100644 index 0000000000..9e63a3c049 --- /dev/null +++ b/frontend-dist/chevron-forward-circle-outline.babf2a99.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/close-circle-outline.4baeedb9.svg b/frontend-dist/close-circle-outline.4baeedb9.svg new file mode 100644 index 0000000000..588e2d4c82 --- /dev/null +++ b/frontend-dist/close-circle-outline.4baeedb9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/close-circle.d0f6eac6.svg b/frontend-dist/close-circle.d0f6eac6.svg new file mode 100644 index 0000000000..cce96081a3 --- /dev/null +++ b/frontend-dist/close-circle.d0f6eac6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/close-outline.9c22a232.svg b/frontend-dist/close-outline.9c22a232.svg new file mode 100644 index 0000000000..17d07818e6 --- /dev/null +++ b/frontend-dist/close-outline.9c22a232.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/cloud-download-outline.8c1ff9bb.svg b/frontend-dist/cloud-download-outline.8c1ff9bb.svg new file mode 100644 index 0000000000..939a8c238e --- /dev/null +++ b/frontend-dist/cloud-download-outline.8c1ff9bb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/cloud-offline-outline.ac2eade9.svg b/frontend-dist/cloud-offline-outline.ac2eade9.svg new file mode 100644 index 0000000000..426ff3b0d9 --- /dev/null +++ b/frontend-dist/cloud-offline-outline.ac2eade9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/copy-outline.0f561529.svg b/frontend-dist/copy-outline.0f561529.svg new file mode 100644 index 0000000000..01e29db632 --- /dev/null +++ b/frontend-dist/copy-outline.0f561529.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/copy-outline.6d5a7927.svg b/frontend-dist/copy-outline.6d5a7927.svg new file mode 100644 index 0000000000..62e0956c31 --- /dev/null +++ b/frontend-dist/copy-outline.6d5a7927.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/document-lock-outline.69d176a4.svg b/frontend-dist/document-lock-outline.69d176a4.svg new file mode 100644 index 0000000000..b602b075c3 --- /dev/null +++ b/frontend-dist/document-lock-outline.69d176a4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/document-text-outline.8d1e2333.svg b/frontend-dist/document-text-outline.8d1e2333.svg new file mode 100644 index 0000000000..dacd264f49 --- /dev/null +++ b/frontend-dist/document-text-outline.8d1e2333.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/download-outline.523a74d8.svg b/frontend-dist/download-outline.523a74d8.svg new file mode 100644 index 0000000000..8f0e680543 --- /dev/null +++ b/frontend-dist/download-outline.523a74d8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/easel-outline.9b064e1f.svg b/frontend-dist/easel-outline.9b064e1f.svg new file mode 100644 index 0000000000..cb8186f590 --- /dev/null +++ b/frontend-dist/easel-outline.9b064e1f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/editor.0dea9d23.css b/frontend-dist/editor.0dea9d23.css new file mode 100644 index 0000000000..7ca4bfa7b6 --- /dev/null +++ b/frontend-dist/editor.0dea9d23.css @@ -0,0 +1 @@ +dialog{background:#fff;border:solid;color:#000;display:block;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;left:0;margin:auto;padding:1em;position:absolute;right:0;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content}dialog:not([open]){display:none}dialog+.backdrop{background:rgba(0,0,0,.1)}._dialog_overlay,dialog+.backdrop{bottom:0;left:0;position:fixed;right:0;top:0}dialog.fixed{position:fixed;top:50%;transform:translateY(-50%)}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-cyrillic-ext-500-normal.d362a132.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-cyrillic-500-normal.8ed3add8.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-greek-500-normal.dd57b097.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-vietnamese-500-normal.1320bb60.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-latin-ext-500-normal.415f7d14.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(roboto-mono-latin-500-normal.98ad1d4e.woff2) format("woff2"),url(roboto-mono-all-500-normal.cc559149.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-cyrillic-700-normal.5e6410cf.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-greek-700-normal.b101f80c.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0370-03ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-vietnamese-700-normal.edb1435b.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-latin-ext-700-normal.c497b002.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Roboto Mono;font-style:normal;font-weight:700;src:url(roboto-mono-latin-700-normal.447ac127.woff2) format("woff2"),url(roboto-mono-all-700-normal.393c796d.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-400-normal.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-400-normal.woff) format("woff");unicode-range:U+0301,U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-400-normal.woff) format("woff");unicode-range:U+1f??}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-400-normal.woff) format("woff");unicode-range:U+0370-0377,U+037a-037f,U+0384-038a,U+038c,U+038e-03a1,U+03a3-03ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-400-normal.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1ea0-1ef9,U+20ab}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-400-normal.woff) format("woff");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-400-normal.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-500-normal.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-500-normal.woff) format("woff");unicode-range:U+0301,U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-500-normal.woff) format("woff");unicode-range:U+1f??}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-500-normal.woff) format("woff");unicode-range:U+0370-0377,U+037a-037f,U+0384-038a,U+038c,U+038e-03a1,U+03a3-03ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-500-normal.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1ea0-1ef9,U+20ab}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-500-normal.woff) format("woff");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-500-normal.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-700-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-700-normal.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-700-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-700-normal.woff) format("woff");unicode-range:U+0301,U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-700-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-700-normal.woff) format("woff");unicode-range:U+1f??}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-700-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-700-normal.woff) format("woff");unicode-range:U+0370-0377,U+037a-037f,U+0384-038a,U+038c,U+038e-03a1,U+03a3-03ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-700-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-700-normal.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1ea0-1ef9,U+20ab}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-700-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-700-normal.woff) format("woff");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:normal;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-700-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-700-normal.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-400-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-400-italic.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-400-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-400-italic.woff) format("woff");unicode-range:U+0301,U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-400-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-400-italic.woff) format("woff");unicode-range:U+1f??}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-400-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-400-italic.woff) format("woff");unicode-range:U+0370-0377,U+037a-037f,U+0384-038a,U+038c,U+038e-03a1,U+03a3-03ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-400-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-400-italic.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1ea0-1ef9,U+20ab}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-400-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-400-italic.woff) format("woff");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:400;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-400-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-400-italic.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-500-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-500-italic.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-500-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-500-italic.woff) format("woff");unicode-range:U+0301,U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-500-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-500-italic.woff) format("woff");unicode-range:U+1f??}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-500-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-500-italic.woff) format("woff");unicode-range:U+0370-0377,U+037a-037f,U+0384-038a,U+038c,U+038e-03a1,U+03a3-03ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-500-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-500-italic.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1ea0-1ef9,U+20ab}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-500-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-500-italic.woff) format("woff");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:500;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-500-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-500-italic.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-700-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-ext-700-italic.woff) format("woff");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-700-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-cyrillic-700-italic.woff) format("woff");unicode-range:U+0301,U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-700-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-ext-700-italic.woff) format("woff");unicode-range:U+1f??}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-700-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-greek-700-italic.woff) format("woff");unicode-range:U+0370-0377,U+037a-037f,U+0384-038a,U+038c,U+038e-03a1,U+03a3-03ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-700-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-vietnamese-700-italic.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1ea0-1ef9,U+20ab}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-700-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-ext-700-italic.woff) format("woff");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{size-adjust:119%;font-display:swap;font-family:Alegreya Sans;font-style:italic;font-weight:700;src:url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-700-italic.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/@fontsource/alegreya-sans@5.0.12/files/alegreya-sans-latin-700-italic.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:400;src:url(lato-latin-ext-400-normal.e1ce8ad3.woff2) format("woff2"),url(lato-all-400-normal.a1a68bdf.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Lato;font-style:normal;font-weight:400;src:url(lato-latin-400-normal.77db3602.woff2) format("woff2"),url(lato-all-400-normal.a1a68bdf.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Lato;font-style:italic;font-weight:400;src:url(lato-latin-ext-400-italic.336aaf51.woff2) format("woff2"),url(lato-all-400-italic.c29c8c6c.woff) format("woff");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Lato;font-style:italic;font-weight:400;src:url(lato-latin-400-italic.6edbc86c.woff2) format("woff2"),url(lato-all-400-italic.c29c8c6c.woff) format("woff");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}:root{--pluto-cell-spacing:17px;--pluto-operator-ligatures:none;--julia-mono-font-stack:JuliaMono,Menlo,"Roboto Mono","Lucida Sans Typewriter","Source Code Pro",monospace;--sans-serif-font-stack:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;--lato-ui-font-stack:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;--roboto-mono-font-stack:"Roboto Mono","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",monospace;--system-ui-font-stack:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;color-scheme:light dark}html{font-size:16px}*{box-sizing:border-box}body{background-color:var(--main-bg-color);margin:0;min-height:100vh;overflow-anchor:none;overflow-x:hidden;position:relative}pluto-editor{align-items:center;display:flex;flex:1 1 auto;flex-direction:column;min-width:0}main{flex:1;max-width:731px;padding:0 6px 4rem 25px;width:100%}body:not(.disable_ui) main{padding-bottom:16rem}body:not(.disable_ui){overscroll-behavior:contain}pluto-editor main{align-self:flex-end;margin-right:max(max(0px,(100% - (700px + 25px + 6px))/2),min((100% - (700px + 25px + 6px)),500px))}pluto-notebook{background:var(--main-bg-color);display:block}pluto-output{color:var(--pluto-output-color);font-family:Alegreya Sans,Trebuchet MS,sans-serif;font-size:14.5px;font-weight:400}pluto-output h1,pluto-output h2,pluto-output h3,pluto-output h4,pluto-output h5,pluto-output h6{font-feature-settings:"lnum","pnum";color:var(--pluto-output-h-color);font-family:Vollkorn,Palatino,Georgia,serif;font-weight:600;line-height:1.25em;margin-block-end:0;margin-block-start:1rem}pluto-output h1,pluto-output h2{font-weight:700;margin-block-start:2rem}pluto-output h1:first-child,pluto-output h2:first-child{margin-block-start:calc(2rem - var(--pluto-cell-spacing))}pluto-output h1{border-bottom:3px solid var(--rule-color);font-size:2.2rem;margin-bottom:.5rem}pluto-output h2{border-bottom:2px dotted var(--rule-color);font-size:1.8rem;margin-bottom:.5rem}pluto-output h1:empty,pluto-output h2:empty{border-bottom:none}pluto-output h3{font-size:1.6rem}pluto-output h4{font-size:1.4rem}pluto-output h5{font-size:1.2rem}pluto-output h6{font-size:1rem}pluto-output h3:first-child,pluto-output h4:first-child,pluto-output h5:first-child,pluto-output h6:first-child{margin-block-start:0}pluto-output br,pluto-output p{line-height:1.6em;margin-block-end:var(--pluto-cell-spacing);margin-block-start:0;word-spacing:.053em}pluto-output br{margin-block-end:0}pluto-output p:first-child{margin-block-start:0}b,strong{font-weight:bolder}pluto-output li p+ol,pluto-output li p+ul{margin-block-start:calc(var(--pluto-cell-spacing)*-1)}pluto-output p:last-child{margin-block-end:0}pluto-output img,pluto-output video{max-width:100%}a{color:var(--black);text-decoration-color:var(--a-underline);text-decoration-thickness:2px}a:hover{text-decoration-color:var(--black)}.cm-cursor{border-left:1.2px solid var(--cursor-color)!important}pluto-output code{font-family:var(--julia-mono-font-stack);font-size:.9em;font-variant-ligatures:none}pluto-output code .cm-editor .cm-line{font-family:var(--julia-mono-font-stack)}pluto-output pre>code{font-size:inherit}pluto-output.rich_output code{background-color:var(--pluto-output-bg-color);border-radius:8px;padding:.18em}pluto-output.rich_output pre>code{background-color:transparent;padding:0}pluto-log-dot pre,pluto-output pre{display:inline-block;font-family:var(--julia-mono-font-stack);font-size:.8rem;font-variant-ligatures:none;margin:0;tab-size:4;-moz-tab-size:4;white-space:pre-wrap;word-break:break-all}pluto-display pre{white-space:pre;word-break:normal}pluto-output hr{border:none;border-top:3px solid var(--rule-color);margin-left:0;margin-right:0}pluto-output blockquote{margin-left:1rem;margin-right:1rem}pluto-output.rich_output pre:not(.no-block),pluto-output blockquote{background-color:var(--blockquote-bg);border-radius:15px;color:var(--blockquote-color);display:block;margin-block-end:var(--pluto-cell-spacing);margin-block-start:0;padding:15px}pluto-output.rich_output pre:not(.no-block):last-child,pluto-output blockquote:last-child{margin-block-end:0}pluto-output div.admonition{border-radius:8px;margin-block-end:1em;margin-block-start:1em}pluto-output div.admonition .admonition-title{font-feature-settings:"lnum","pnum";color:var(--admonition-title-color);font-family:Vollkorn,Palatino,sans-serif;font-size:1.3em;font-weight:600;margin-block-end:0;padding-left:.3em}pluto-output div.admonition .admonition-title~*{margin-block-end:.5em;margin-block-start:.5em;transition:filter .1s linear}pluto-output div.admonition{background:var(--jl-message-color);border:5px solid var(--jl-message-accent-color);padding-left:.5rem;padding-right:.5rem}pluto-output div.admonition .admonition-title{background:var(--jl-message-accent-color);margin:-1px -.55rem}pluto-output div.admonition.hint,pluto-output div.admonition.info,pluto-output div.admonition.note{background:var(--jl-info-color);border:5px solid var(--jl-info-accent-color)}pluto-output div.admonition.hint .admonition-title,pluto-output div.admonition.info .admonition-title,pluto-output div.admonition.note .admonition-title{background:var(--jl-info-accent-color)}pluto-output div.admonition.warning{background:var(--jl-warn-color);border:5px solid var(--jl-warn-accent-color)}pluto-output div.admonition.warning .admonition-title{background:var(--jl-warn-accent-color)}pluto-output div.admonition.danger{background:var(--jl-danger-color);border:5px solid var(--jl-danger-accent-color)}pluto-output div.admonition.danger .admonition-title{background:var(--jl-danger-accent-color)}pluto-output div.admonition.hint .admonition-title~*{filter:blur(.25em)}pluto-output div.admonition.hint:focus-within .admonition-title~*,pluto-output div.admonition.hint:hover .admonition-title~*{filter:blur(0)}pluto-output div.footnote{margin-block-end:1em;margin-block-start:1em}pluto-output div.footnote p.footnote-title:before{content:"["}pluto-output div.footnote p.footnote-title:after{content:"]: "}pluto-output a.footnote,pluto-output div.footnote p.footnote-title{font-family:var(--roboto-mono-font-stack);font-size:.75rem;font-weight:700;letter-spacing:-.05em;margin-block-end:0}pluto-output div.footnote p.footnote-title~*{border-left:5px solid var(--footnote-border-color);margin-block-end:0;margin-left:.1em;padding-bottom:var(--pluto-cell-spacing);padding-left:.4em}pluto-output div.footnote p:last-child{padding-bottom:0}pluto-output.scroll_y{max-height:80vh;max-height:502px;overflow:auto}pluto-output table{border:2px solid var(--table-border-color);border-collapse:collapse;border-left:none;border-right:none;margin:0 auto;margin-block-end:var(--pluto-cell-spacing);margin-block-start:var(--pluto-cell-spacing)}pluto-output table>thead{border-bottom:1px solid var(--table-border-color)}pluto-output table>tbody td{font-family:var(--julia-mono-font-stack);font-size:.75rem;font-variant-ligatures:none}pluto-output table>tbody td code{font-size:.75rem}pluto-output table td,pluto-output table th{padding:.2rem .5rem}pluto-output table>tbody tr:hover{background-color:var(--table-bg-hover-color)}pluto-output table pre{white-space:pre}kbd,pluto-output kbd{border:1px solid var(--kbd-border-color);border-radius:3px;font-family:Space Mono,monospace;font-size:.7rem;letter-spacing:-.7px;padding:0 5px}pluto-output mjx-assistive-mml{height:1px}.raw-html-wrapper>div.markdown{overflow:hidden}pluto-output details{border:1px solid var(--rule-color);border-radius:4px;margin-block-end:var(--pluto-cell-spacing);margin-block-start:0;padding:.5em .5em 0}pluto-output details:first-child{margin-block-start:0}pluto-output details:last-child{margin-block-end:0}pluto-output details summary{background-clip:padding-box;border-radius:3px;cursor:pointer;font-family:var(--system-ui-font-stack);font-weight:700;margin:-.5em -.5em 0;padding:.5em;transition:color .25s ease-in-out,background-color .25s ease-in-out}pluto-output details summary:hover{background-color:var(--blockquote-bg);color:var(--blockquote-color)}pluto-output details[open]{padding:.5em}pluto-output details[open] summary{border-bottom:1px solid var(--rule-color);border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:.5em}header#pluto-nav{background-color:var(--header-bg-color);border-bottom:1px solid var(--header-border-color);font-family:var(--roboto-mono-font-stack);font-size:.8rem;font-weight:400;min-height:60px;transform:translateY(0);transition:background-color .5s ease-in-out,transform .25s cubic-bezier(.18,.89,.49,1.13);width:100%;z-index:60}header#pluto-nav.show_export{position:sticky;top:0;transform:translateY(130px)}dialog#export{background:var(--export-bg-color);border:none;color:var(--export-color);display:block;height:130px;margin:0;max-height:none;max-width:none;overflow:visible;padding:0;position:absolute;top:0;transform:translateY(calc(-100% - 1px));width:100%}dialog#export:before{background:inherit;bottom:100%;content:"";height:100px;left:0;position:absolute;right:0}dialog#export div#container{display:flex;flex-direction:row;margin:0 auto;max-width:1000px;padding-right:10em;position:relative}header dialog#export div#container{overflow-x:hidden}header.show_export dialog#export div#container{overflow-x:auto}a.export_card{background:var(--export-card-bg-color);border:5px solid transparent;box-shadow:0 2px 10px var(--export-card-shadow-color);color:var(--export-card-title-color);margin:20px 5px;text-decoration:none;width:169px}a.export_card,div.export_title{border-radius:8px;flex:0 0 auto;height:90px}div.export_title{font-size:1rem;font-weight:700;margin-top:10px;text-orientation:sideways-right;transform:rotate(180deg);writing-mode:vertical-lr}a.export_card header{font-feature-settings:"lnum","pnum";font-family:Vollkorn,Palatino,sans-serif;font-size:17px;margin-block:0}a.export_card section{color:var(--export-card-text-color);font-weight:500;padding:3px}dialog#export .export_small_btns{background:var(--export-bg-color);border-radius:.9em;display:flex;flex-direction:row;padding:.9em;position:absolute;right:.8em;top:0}body.static_preview button.toggle_export{display:none}nav#at_the_top h1{color:var(--nav-h1-text-color);letter-spacing:2px}nav#at_the_top{display:flex;flex-direction:row;flex-wrap:wrap;margin:0 auto;max-width:1000px;min-height:60px;padding-left:20px;padding-right:20px;z-index:100}nav#at_the_top>*{align-self:center;flex:0 0 auto;margin:10px 0}nav#at_the_top>.flex_grow_1{flex-grow:1}nav#at_the_top>.flex_grow_2{flex-grow:2}nav#at_the_top h1{border-bottom:none;display:inline;font-size:1.8rem;font-weight:700}nav#at_the_top img#logo-big,nav#at_the_top img#logo-small{filter:var(--image-filters);height:39px;margin-bottom:-8px}nav#at_the_top img#logo-small{display:none}@media (max-width:800px){nav#at_the_top img#logo-small{display:unset}nav#at_the_top img#logo-big{display:none}}nav#at_the_top>div.desktop_picker,nav#at_the_top>pluto-filepicker{display:flex;flex-direction:row;flex-grow:1;width:210px}nav#at_the_top>div.desktop_picker span,nav#at_the_top>pluto-filepicker .cm-editor{background:none;border:2px solid var(--footer-input-border-color);border-radius:3px;border-bottom-right-radius:0;border-right:none;border-top-right-radius:0;color:var(--nav-filepicker-color);display:inline-block;font-family:inherit;font-size:.8rem;font-style:normal;font-weight:500;height:calc(1rem + 12px);letter-spacing:1px;min-width:10rem}pluto-filepicker .cm-scroller{scrollbar-width:none}pluto-filepicker .cm-scroller::-webkit-scrollbar{display:none}div.desktop_picker button,pluto-filepicker button{cursor:pointer;height:auto}pluto-filepicker button:disabled{cursor:not-allowed}div.desktop_picker span{cursor:pointer;line-height:1.8;overflow-x:hidden;padding:0 5px;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.export_small_btns button,button.start_stop_recording,button.toggle_export{background:none;border:none;cursor:pointer;opacity:.5}.export_small_btns button span,button.start_stop_recording span,button.toggle_export span{background-size:25px 25px;content:" "!important;display:block;height:25px;width:25px}nav#at_the_top button.start_stop_recording span{background-image:url(radio-button-on-outline.778acac1.svg)}nav#at_the_top button.start_stop_recording.stop span{background-image:url(stop-circle-outline.6623356d.svg)}nav#at_the_top button.toggle_export span{background-image:url(share-outline.50164ded.svg);filter:var(--image-filters)}dialog#export button.toggle_export span{background-image:url(close-outline.9c22a232.svg);filter:invert(1)}dialog#export button.toggle_frontmatter_edit span{background-image:url(newspaper-outline.e481c39c.svg);filter:invert(1)}dialog#export button.toggle_presentation span{background-image:url(easel-outline.9b064e1f.svg);filter:invert(1)}nav#at_the_top:after{align-self:center;margin-left:auto}.cm-tooltip-autocomplete li.file.new:before{color:#000;content:"👉"}.cm-tooltip-autocomplete li.file:before{color:#000;content:"📄"}.cm-tooltip-autocomplete li.dir:before{color:#000;content:"📁"}@media (any-pointer:fine){nav#at_the_top>div.desktop_picker span,nav#at_the_top>pluto-filepicker .cm-editor{border:2px solid transparent;border-right:none;transition:border .15s ease-in-out}nav#at_the_top>div.desktop_picker button,nav#at_the_top>pluto-filepicker button{opacity:0;transition:opacity .15s ease-in-out}header:focus-within>nav#at_the_top>div.desktop_picker span,header:focus-within>nav#at_the_top>pluto-filepicker .cm-editor,header:hover>nav#at_the_top>div.desktop_picker span,header:hover>nav#at_the_top>pluto-filepicker .cm-editor{border:2px solid var(--footer-input-border-color);border-right:none}header:focus-within>nav#at_the_top>div.desktop_picker button,header:focus-within>nav#at_the_top>pluto-filepicker button,header:hover>nav#at_the_top>div.desktop_picker button,header:hover>nav#at_the_top>pluto-filepicker button{opacity:1}}body.binder header#pluto-nav>nav#at_the_top>pluto-filepicker>*{display:none}body.binder header#pluto-nav>nav#at_the_top>pluto-filepicker>a{display:block;font-family:var(--julia-mono-font-stack);font-size:16px;opacity:.8;text-decoration:none}body.binder.loading header#pluto-nav,body.disconnected header#pluto-nav,body.nbpkg_restart_recommended header#pluto-nav,body.nbpkg_restart_required header#pluto-nav,body.process_dead header#pluto-nav,body.process_waiting_for_permission header#pluto-nav{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:sticky;top:0}body.nbpkg_restart_recommended header#pluto-nav{background-color:var(--restart-recc-header-color)}body.nbpkg_restart_required header#pluto-nav{background-color:var(--restart-req-header-color)}body.process_dead header#pluto-nav{background-color:var(--dead-process-header-color)}body.process_waiting_for_permission header#pluto-nav{background-color:var(--restart-recc-header-color)}body.loading header#pluto-nav{background-color:var(--loading-header-color)}body.disconnected header#pluto-nav{background-color:var(--disconnected-header-color)}body.binder.loading header#pluto-nav{background-color:var(--binder-loading-header-color)}nav#at_the_top>#process_status{background:var(--nav-process-status-bg-color);border-radius:10px;color:var(--nav-process-status-color);font-size:1rem;font-weight:500;margin:5px 5px 5px 1em;padding:5px 10px;z-index:10}nav#at_the_top>#process_status:empty{display:none}.statefile-fetch-progress{--w:min(80vw,300px);left:calc(50vw - var(--w)*.5);position:fixed;top:0;width:var(--w);z-index:300000}loading-bar{animation:move-background 2s ease-in-out infinite;background:linear-gradient(90deg,var(--loading-grad-color-1),var(--loading-grad-color-2),var(--loading-grad-color-1));background-size:100vw 100%;display:block;height:6px;left:0;opacity:0;position:fixed;top:0;transition:width 2s cubic-bezier(.14,.71,0,.99),opacity .2s linear;width:10vw;z-index:12000}loading-bar.slow{transition:width 10s cubic-bezier(.14,.71,0,.99),opacity .5s linear}@media (prefers-reduced-motion){loading-bar{transition:none}}body.binder.loading #binder_spinners{opacity:.25}@keyframes move-background{0%{background-position-x:0}to{background-position-x:100vw}}.outline-frame{box-sizing:border-box;height:100vh;left:0;pointer-events:none;position:fixed;top:0;width:100vw;z-index:1500}body.process_waiting_for_permission .outline-frame.safe-preview{border-bottom:12px solid var(--restart-recc-header-color)}body.recording_waiting_to_start .outline-frame.recording{border:12px solid #be6f6fba}body.is_recording .outline-frame.recording{border:12px solid #dc3535ba}.outline-frame.playback{border:12px solid #357ddcba;box-shadow:inset 0 0 20px 20px #919bff2b;opacity:1;position:absolute;transition:top .3s ease-in-out,opacity .3s ease-in-out}body.is_recording header#pluto-nav,body.recording_waiting_to_start header#pluto-nav{display:none}.outline-frame-actions-container{display:flex;flex-direction:row;flex-wrap:wrap;position:fixed;top:3px;z-index:1501}.outline-frame-actions-container.safe-preview{bottom:4px;top:auto}.outline-frame-actions-container>.overlay-button{border-color:#e86f6c;margin:0 3px}.outline-frame-actions-container>.overlay-button.record-no-audio{border-color:#dcc6c6}.outline-frame-actions-container>.overlay-button.playback{border-color:#c6c6dc}span.pluto-icon.stop-recording-icon:after{background-image:url(stop-circle-outline.6623356d.svg)}span.pluto-icon.microphone-icon:after{background-image:url(mic-outline.e10eafe2.svg)}span.pluto-icon.info-icon:after{background-image:url(information-circle-outline.008b2bb9.svg)}span.pluto-icon.offline-icon:after{background-image:url(cloud-offline-outline.ac2eade9.svg)}span.pluto-icon.mute-icon:after{background-image:url(mic-off-outline.251c22b7.svg)}span.pluto-icon.follow-recording-icon:after{background-image:url(arrow-undo-outline.d8c99108.svg)}div.recording-playback{bottom:16px;position:fixed;width:min(500px,90vw);z-index:1501}div.recording-playback audio{width:100%}.safe-preview-info{background:var(--white);border:3px solid var(--restart-recc-accent-color);border-radius:.8em;color:var(--black);font-family:var(--system-ui-font-stack);font-weight:700;padding:.3em .8em}.safe-preview-info>span{display:flex}.safe-preview-info button{background:none;border:none;cursor:pointer}.safe-preview-output{align-items:baseline;background:var(--restart-recc-header-color);border-radius:.4em;color:var(--helpbox-header-color);display:inline-flex;font-family:var(--system-ui-font-stack);font-size:.8rem;font-weight:700;gap:.3em;margin:.7em 0;opacity:.5;padding:.2em .4em}.raw-html-wrapper.preamble{width:100%}main>preamble{display:flex;height:20px;margin-top:5px;padding-right:5px;pointer-events:none;position:sticky;top:5px;z-index:200}.overlay-button{background:var(--overlay-button-bg);border:3px solid var(--overlay-button-border);border-radius:12px;font-family:var(--roboto-mono-font-stack);font-size:.75rem;height:35px;padding:5px 8px;pointer-events:all;white-space:nowrap}.overlay-button,.overlay-button button:not(.asdfdsf){color:var(--overlay-button-color)}main>preamble #saveall-container{margin-left:auto}pluto-editor.fullscreen main>preamble #saveall-container{transform:translateX(max(0px,100vw - 700px - 25px))}@media screen and (min-width:calc(700px + 25px + 6px + 500px)){pluto-editor.fullscreen main>preamble #saveall-container{transform:translateX(500px)}}main>preamble #saveall-container.ask_to_save{border-color:var(--overlay-button-border-save)}main>preamble #saveall-container.saved,main>preamble #saveall-container.saving{border-color:transparent}main>preamble #saveall-container.saved>span,main>preamble #saveall-container.saving>span{opacity:.5}span.pluto-icon:after{background-image:url(sync-circle-outline.65b15d76.svg);background-position-x:right;background-position-y:1px;background-repeat:no-repeat;background-size:1.3em;content:"";display:inline-block;filter:var(--image-filters);height:1.3em;margin-bottom:-.3em;padding-right:1.5em;transform:translateY(-.1em)}.overlay-button span.saved-icon:after,main>preamble span.saved-icon:after{background-image:url(checkmark-outline.4fb8c646.svg);filter:var(--image-filters)}#saveall-container .only-on-hover{display:none}#saveall-container:hover .only-on-hover{display:inline}pluto-cell{display:block;margin-top:var(--pluto-cell-spacing);min-height:25px;position:relative}pluto-output{align-items:baseline;background-color:var(--pluto-output-bg-color);display:block;overflow-x:auto;padding-left:10px;padding-right:10px}.scroll_y{max-height:80vh;overflow-y:auto}pluto-output:focus{outline:none}pluto-output:not(.rich_output){display:flex;flex-wrap:wrap;padding-bottom:3px;padding-top:3px}pluto-output>assignee{font-family:var(--julia-mono-font-stack);font-size:.75rem;font-variant-ligatures:none}pluto-output>assignee:after{content:"\a0=\a0";opacity:.6}.errored pluto-output>assignee,pluto-output>assignee:empty{display:none}pluto-output>div{flex-shrink:0;overflow-y:hidden}pluto-output div.raw-html-wrapper{display:contents}pluto-output:not(.rich_output)>div>pre{display:flex}.bonds_disabled:where(.offer_binder,.offer_local) bond{filter:grayscale(1);opacity:.6}pluto-display,pluto-display>div{display:contents}.isolated-cell>pluto-output{padding:0}.hidden-cell{display:none}pluto-cell.depends_on_disabled_cells>pluto-input .cm-editor,pluto-cell.depends_on_disabled_cells>pluto-logs-container,pluto-cell.depends_on_disabled_cells>pluto-output,pluto-cell.depends_on_disabled_cells>pluto-trafficlight,pluto-cell.running_disabled>pluto-input .cm-editor,pluto-cell.running_disabled>pluto-logs-container,pluto-cell.running_disabled>pluto-output,pluto-cell.running_disabled>pluto-trafficlight{opacity:.3}pluto-cell.running_disabled>pluto-input .cm-editor,pluto-cell.running_disabled>pluto-output{background-color:var(--disabled-cell-bg-color)}pluto-cell.depends_on_skipped_cells .depends_on_skipped_marker,pluto-cell.skip_as_script .skip_as_script_marker{background-color:var(--skip-as-script-background-color);border-radius:0 4px 4px 0;bottom:0;cursor:help;display:block;position:absolute;right:-3px;top:0;width:4px;z-index:20}pluto-cell.depends_on_skipped_cells .depends_on_skipped_marker{background-color:var(--depends-on-skip-as-script-background-color)}pluto-cell.depends_on_skipped_cells pluto-input .cm-editor,pluto-cell.skip_as_script pluto-input .cm-editor{border-bottom-right-radius:0}pluto-cell.selected{background:var(--selected-cell-bg-color);border-radius:0 3px 3px 0}pluto-cell.selected>pluto-input>div.cm-editor,pluto-cell.selected>pluto-output{opacity:.7}main{cursor:vertical-text}pluto-cell{cursor:auto}pluto-output>div{scrollbar-color:transparent transparent;scrollbar-width:thin}pluto-cell:hover>pluto-output>div{scrollbar-color:var(--hover-scrollbar-color-1) var(--hover-scrollbar-color-2)}pluto-output>div::-webkit-scrollbar{background:transparent;height:6px}pluto-output>div::-webkit-scrollbar-thumb{background:transparent}pluto-cell:hover>pluto-output>div::-webkit-scrollbar{background:var(--hover-scrollbar-color-2)}pluto-cell:hover>pluto-output>div::-webkit-scrollbar-thumb{background:var(--hover-scrollbar-color-1)}pluto-input .cm-editor{border:1px solid var(--normal-cell-color);border-bottom-right-radius:4px;border-left:none;min-height:25px;scroll-margin-block:20vh;z-index:20}pluto-input:focus-within .cm-editor{z-index:21}pluto-input .cm-editor .cm-line{transition:background-color .15s ease-in-out}pluto-input .cm-editor .cm-line.cm-highlighted-line,pluto-input .cm-editor span.cm-highlighted-range{background-color:var(--cm-highlighted);border-radius:3px}pluto-cell:not(.show_input)>pluto-input{display:none}pluto-cell.code_differs>pluto-input>.cm-editor{border:1px solid var(--code-differs-cell-color);border-left:none}.overlay-button button,button.floating_back_button,nav#slide_controls>button,pluto-cell>button,pluto-input>button,pluto-runarea>button,pluto-shoulder>button{background:none;border:none;color:var(--ui-button-color);cursor:pointer;font-family:var(--roboto-mono-font-stack);font-size:.75rem;margin:0;opacity:50%;padding:1px;position:absolute;z-index:30}.overlay-button button{position:relative}pluto-shoulder{--invisible-border:calc(var(--pluto-cell-spacing)*0.5);--shoulder-width:calc(28px + var(--invisible-border));--border-radius:calc(5px + var(--invisible-border));align-items:flex-start;border:var(--invisible-border) solid transparent;border-radius:var(--border-radius) 0 0 var(--border-radius);border-right:none;bottom:calc(0px - var(--invisible-border));cursor:move;display:flex;flex-direction:row;justify-content:flex-end;left:calc(0px - var(--shoulder-width));position:absolute;top:calc(0px - var(--invisible-border));width:var(--shoulder-width)}pluto-editor.fullscreen pluto-shoulder{--shoulder-width:2000px}pluto-shoulder:hover{background:var(--shoulder-hover-bg-color);background-clip:padding-box}pluto-shoulder>button{flex:0 0 auto;padding:4px 5px 4px 10px;position:sticky;top:0}pluto-cell:focus-within>pluto-shoulder>button{padding-right:9px}pluto-shoulder>button>span:after{background-image:url(eye-outline.6e6e0f7c.svg);filter:var(--image-filters)}pluto-cell.code_folded>pluto-shoulder>button>span:after{background-image:url(eye-off-outline.a37e03db.svg);filter:var(--image-filters)}pluto-trafficlight{--patternHeight:22.62741699797px;background:var(--normal-cell-color);border-bottom-left-radius:4px;border-left-color:var(--normal-cell-color);border-top-left-radius:4px;bottom:0;box-sizing:content-box;left:-4px;margin-right:-1px;overflow:hidden;pointer-events:none;position:absolute;top:0;width:4px}pluto-trafficlight:after{content:"";height:calc(100% + var(--patternHeight)*10);left:0;opacity:0;position:absolute;top:calc(0px - var(--patternHeight)*10);width:100%}pluto-cell.activate_animation pluto-trafficlight:after{animation:scrollbackground 10s linear 0s infinite running}body:not(.___) pluto-cell.code_folded>pluto-trafficlight{background:none}@media screen and (any-pointer:fine){body:not(.disable_ui) pluto-cell:hover>pluto-trafficlight{background:var(--normal-cell-color)}}body:not(.___) pluto-cell:focus-within>pluto-trafficlight{background-clip:padding-box;background-color:var(--normal-cell-color);border-left-style:solid;border-left-width:4px;margin-left:-4px}body:not(.___) pluto-cell.selected>pluto-trafficlight{background:var(--selected-cell-color);background-clip:padding-box;border-left-color:var(--selected-cell-color)}body:not(.___) pluto-cell.code_differs>pluto-trafficlight{background:var(--code-differs-cell-color);background-clip:padding-box;border-left-color:var(--code-differs-cell-color)}body:not(.___) pluto-cell.errored>pluto-trafficlight{background:var(--error-cell-color);background-clip:padding-box;border-left-color:var(--error-cell-color)}body:not(.___) pluto-cell.queued>pluto-trafficlight:after{animation-duration:20s;background:repeating-linear-gradient(-45deg,transparent,transparent 8px,var(--normal-cell-color) 8px,var(--normal-cell-color) 16px);background-clip:padding-box;background-size:4px var(--patternHeight);opacity:.99}body:not(.___) pluto-cell.running>pluto-trafficlight:after{background:repeating-linear-gradient(-45deg,var(--normal-cell-color),var(--normal-cell-color) 8px,var(--dark-normal-cell-color) 8px,var(--dark-normal-cell-color) 16px);background-clip:content-box;background-size:4px var(--patternHeight);opacity:.99}body:not(.___) pluto-cell.queued.errored>pluto-trafficlight:after,body:not(.___) pluto-cell.running.errored>pluto-trafficlight:after{background:repeating-linear-gradient(-45deg,var(--light-error-cell-color),var(--light-error-cell-color) 8px,var(--bright-error-cell-color) 8px,var(--bright-error-cell-color) 16px);background-clip:content-box;background-size:4px var(--patternHeight);opacity:.99}@keyframes scrollbackground{0%{transform:translate(0)}to{transform:translateY(calc(var(--patternHeight)*10))}}pluto-cell>button>span,pluto-input>button>span{pointer-events:none}@media screen and (any-pointer:fine){pluto-cell>button,pluto-cell>pluto-runarea,pluto-input>button,pluto-runarea>button,pluto-shoulder>button{opacity:0;transition:opacity .25s ease-in-out}.export_small_btns button,button.start_stop_recording,button.toggle_export,pluto-cell:focus-within>button,pluto-cell:focus-within>pluto-input>button,pluto-cell:focus-within>pluto-shoulder>button,pluto-cell:hover>button,pluto-cell:hover>pluto-input>button,pluto-cell:hover>pluto-shoulder>button,pluto-cell>pluto-runarea>button{opacity:.6;transition:opacity .25s ease-in-out}.export_small_btns button:hover,.overlay-button button:hover,button.start_stop_recording:hover,button.toggle_export:hover,pluto-cell:hover>pluto-runarea,pluto-cell>button:hover,pluto-cell>pluto-input>button:hover,pluto-cell>pluto-runarea>button:hover,pluto-cell>pluto-shoulder>button:hover{opacity:1;transition:opacity .05s ease-in-out}}@media screen and (pointer:coarse){pluto-cell>button.add_cell,pluto-input>button,pluto-shoulder>button{opacity:.25;transition:opacity .25s ease-in-out}pluto-cell:not(:first-of-type,:last-of-type)>button.add_cell{opacity:.125}pluto-cell:focus-within>button.add_cell,pluto-cell:focus-within>pluto-input>button,pluto-cell:focus-within>pluto-runarea,pluto-cell:focus-within>pluto-shoulder>button{opacity:.6;transition:opacity .25s ease-in-out}pluto-cell>button:focus-within,pluto-cell>pluto-input>button:focus-within,pluto-cell>pluto-input>button:focus-within pluto-cell>pluto-runarea>button:focus-within,pluto-cell>pluto-runarea,pluto-cell>pluto-shoulder>button:focus-within{opacity:1;transition:opacity .05s ease-in-out}}pluto-cell>button>span:after,pluto-input>button>span:after,pluto-runarea>button>span:after,pluto-shoulder>button>span:after{background-size:17px 17px;content:" "!important;display:block;height:17px;width:17px}pluto-cell>button.add_cell{--hit-box-extend:20px;left:-12px;margin-left:calc(var(--hit-box-extend)*-1);margin-right:calc(var(--hit-box-extend)*-1);padding-left:var(--hit-box-extend);padding-right:var(--hit-box-extend)}pluto-cell>button.add_cell.before{margin-top:calc(-9.5px - var(--pluto-cell-spacing)*.5)!important}pluto-cell>button.add_cell.after{bottom:1px;margin-bottom:calc(-10.5px - var(--pluto-cell-spacing)*.5)}pluto-cell>button.add_cell>span:after{background-image:url(add-outline.e3c93c35.svg);filter:var(--image-filters)}pluto-input>.input_context_menu ul{background-color:var(--input-context-menu-bg-color);border:1px solid var(--input-context-menu-border-color);border-radius:6px;display:grid;grid-template-columns:max-content;margin:0;padding:0}pluto-input{display:block;position:relative}pluto-input>div.input_context_menu{left:100%;position:absolute;top:-8px;z-index:1400}@media screen and (min-width:921px){pluto-input>div.input_context_menu{left:calc(100% - 3px)}}@media screen and (max-width:920px){pluto-input>div.input_context_menu{left:unset;right:0;z-index:1401}}pluto-input>.input_context_menu li{align-items:stretch;display:flex;flex-direction:column;list-style:none;margin-block-end:0}pluto-input>.input_context_menu li button{align-items:center;background:none;border:none;border-radius:2px;color:var(--input-context-menu-li-color);cursor:pointer;display:flex;font-family:Roboto Mono,system-ui;font-size:.8rem;height:32px;justify-content:flex-start;letter-spacing:-.02em;margin-block-end:0;padding:8px;position:relative}.input_context_menu li:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.input_context_menu li:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.input_context_menu li.coming_soon{color:var(--input-context-menu-soon-color)}.input_context_menu li.coming_soon:hover{background-color:var(--input-context-menu-hover-bg-color);cursor:not-allowed}.input_context_menu li:hover{background-color:var(--input-context-menu-hover-bg-color);transition-duration:.2s;transition-property:background-color}.ctx_icon,.icon{--size:17px;background-position:50%;background-size:var(--size) var(--size);height:var(--size);margin-right:calc(var(--size)/3);margin-top:1px;width:var(--size)}.ctx_icon{filter:var(--image-filters)}.ctx_icon.hide_logs,.ctx_icon.show_logs{background-image:url(document-text-outline.8d1e2333.svg)}.ctx_icon.enable_cell{background-image:url(caret-forward-circle-outline.d0bf2b34.svg)}.ctx_icon.disable_cell{background-image:url(ban-outline.c97da9b4.svg);background-repeat:no-repeat;background-size:15px}.ctx_icon.delete{background-image:url(close-circle-outline.4baeedb9.svg)}.ctx_icon.run_as_script{background-image:url(document-lock-outline.69d176a4.svg)}.ctx_icon.skip_as_script{background-image:url(document-text-outline.8d1e2333.svg)}.ctx_icon.copy_output{background-image:url(copy-outline.0f561529.svg)}pluto-input>button.input_context_menu{padding:5px;right:0}pluto-input>.input_context_menu.open{opacity:1}pluto-input>.input_context_menu span.icon:after{background-image:url(ellipsis-horizontal-circle-outline.6279ed30.svg);filter:var(--image-filters)}pluto-input>.preview_hidden_code_info{background:var(--jl-info-color);border-radius:.4rem;bottom:-1.1rem;display:none;font-family:var(--system-ui-font-stack);font-size:.9rem;font-style:italic;height:1.4rem;left:0;margin-left:auto;margin-right:auto;pointer-events:none;position:absolute;right:0;text-align:center;width:19ch;z-index:22}body:not(.process_waiting_for_permission) pluto-cell.code_folded pluto-input>.preview_hidden_code_info,pluto-cell.code_folded:focus-within pluto-input>.preview_hidden_code_info{display:block}pkg-status-mark{display:inline-block;height:1em;margin:0 .6em 0 .2em;width:1em}body.nbpkg_disabled pkg-status-mark:not(.disable_pkg){display:none}pkg-status-mark>button{background:none;border:none;cursor:context-menu;margin:0;padding:0;position:relative;top:-.2em}pkg-status-mark>button>span:after{background-image:url(time-outline.7c1877f0.svg);background-size:1.5em;content:" "!important;display:inline-block;filter:var(--image-filters);height:1.5em;opacity:.3;width:1.5em}pkg-status-mark.installed>button>span:after{background-image:url(checkmark-outline.4fb8c646.svg);filter:var(--image-filters)}pkg-status-mark.busy>button>span:after{animation:loadspin 3s ease-in-out infinite;background-image:url(sync-outline.9a1bd27b.svg);filter:var(--image-filters)}pkg-status-mark.not_found>button>span:after{background-image:url(cloud-offline-outline.ac2eade9.svg);filter:var(--image-filters);opacity:.6}pkg-status-mark.will_be_installed>button>span:after{background-image:url(cloud-download-outline.8c1ff9bb.svg);filter:var(--image-filters);opacity:.6}pkg-status-mark.disable_pkg>button>span:after{background-image:url(chatbox-ellipses-outline.4334a3a4.svg);filter:var(--image-filters);opacity:.6}pluto-popup{--max-size:251px;display:block;font-family:var(--system-ui-font-stack);margin-left:.4rem;margin-top:-1rem;opacity:0;overflow-wrap:break-word;pointer-events:none;position:absolute;transform:scale(.2);transform-origin:left;transition:transform .5s ease-in-out,opacity .1s ease-in-out;width:min(90vw,var(--max-size));z-index:1800}pluto-popup.visible{opacity:1;pointer-events:auto;transform:scale(1);transition:transform .2s ease-in-out,opacity .2s ease-in-out}pluto-popup.big{--max-size:25em}pluto-popup>*{background:var(--overlay-button-bg);border:3px solid var(--overlay-button-border);border-radius:10px;color:var(--black);display:block;max-height:80vh;max-width:100%;overflow-y:auto;padding:8px;position:absolute}pluto-popup>div>:first-child{margin-block-start:0}pluto-popup h1{font-size:1.6em}pluto-popup.warn>*{background:var(--pluto-logs-warn-color);border-color:var(--pluto-logs-warn-accent-color)}pluto-popup code.auto_disabled_variable{font-family:var(--julia-mono-font-stack);font-size:.8rem;font-variant-ligatures:none}pluto-popup>pkg-popup{background:var(--pkg-popup-bg);border:3px solid var(--pkg-popup-border-color)}pkg-popup.busy{border:3px solid #aa80bc}pkg-version{font-family:Space Mono,monospace;font-size:.75rem;opacity:.5}pkg-popup .pkg-buttons{display:inline-flex;flex-direction:row;float:right;height:1em}a.stdout-info img,pkg-popup .pkg-buttons img{filter:var(--image-filters)}a.stdout-info,pkg-popup .pkg-buttons>*{background:var(--pkg-popup-buttons-bg-color);border-radius:10px;box-sizing:content-box;display:block;height:17px;margin-left:-4px;padding:4px;z-index:52}pkg-popup .toggle-terminal{right:20px}.pkg-time-estimate{background:var(--pluto-logs-warn-color);border-radius:.5em;font-size:.8em;margin:.5em 0;padding:.5em}pkg-terminal{background:var(--pkg-terminal-bg-color);border:3px solid var(--pkg-terminal-border-color);border-radius:6px;color:#fff;cursor:text;display:block;margin-top:6px;padding:3px}pkg-terminal>.scroller{max-height:10rem;overflow-y:auto;padding:4px;width:100%}body pkg-terminal:not(.asdf) pre:not(.asdf){background:none;color:inherit;font-family:Space Mono,monospace;font-size:.6rem;font-variant-ligatures:none;margin:0;white-space:pre-wrap;word-break:break-all}pkg-terminal .make-me-spin{animation:identifier-spin 1s linear infinite;animation-delay:var(--animation-delay);display:inline-block;transform-origin:50% 59%}pkg-popup pkg-terminal{display:none}pkg-popup.showterminal pkg-terminal{display:block}@keyframes loadspin{0%{transform:rotate(0deg)}25%{transform:rotate(180deg)}50%{transform:rotate(180deg)}75%{transform:rotate(1turn)}to{transform:rotate(1turn)}}pluto-runarea{background-color:var(--pluto-runarea-bg-color);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:block;height:17px;margin-right:3px;min-width:75px;position:absolute;right:0;z-index:19}pluto-runarea>span{color:var(--pluto-runarea-span-color);display:inline-block;font-family:var(--roboto-mono-font-stack);font-size:.6em;font-style:italic;left:22px;position:absolute;text-align:center;top:1px;width:45px}pluto-runarea>button.runcell{left:1px;top:-1px}pluto-runarea>button.runcell>span:after{background-image:url(caret-forward-circle-outline.d0bf2b34.svg);filter:var(--image-filters)}pluto-runarea.interrupt>button.runcell>span:after{background-image:url(stop-circle-outline.6623356d.svg);filter:var(--image-filters)}pluto-runarea.jump>button.runcell>span:after{background-image:url(arrow-redo-circle-outline.dfa899f4.svg);filter:var(--image-filters)}pluto-runarea.save>button.runcell>span:after{background-image:url(chevron-forward-circle-outline.babf2a99.svg);filter:var(--image-filters)}pluto-cell:not(.show_input)>pluto-runarea{display:none}pluto-cell.code_folded.show_input>pluto-input:not(:focus-within){opacity:.4}pluto-cell.code_differs>pluto-runarea,pluto-cell:focus-within>pluto-runarea{opacity:100%}pluto-cell.code_differs>pluto-runarea>button{animation-duration:4s;animation-iteration-count:infinite;animation-name:👀}@keyframes 👀{0%,80%,to{opacity:50%;transform:scale(1)}90%{opacity:100%;transform:scale(1.2)}}dropruler{background:var(--dropruler-bg-color);display:none;height:4px;left:0;margin-top:calc(-2px - var(--pluto-cell-spacing)*.5);position:absolute;right:0}#helpbox-wrapper{bottom:0;display:none;height:0;position:sticky;width:100%;z-index:50}@media (min-width:500px){#helpbox-wrapper{display:block}}pluto-helpbox{background-color:var(--helpbox-bg-color);border-bottom:none;border-right:none;border-top-left-radius:9px;border-top-right-radius:9px;bottom:0;box-shadow:0 0 11px 0 var(--helpbox-box-shadow-color);color:var(--helpbox-text-color);display:flex;flex-direction:column;height:95vh;height:min(70vh,900px);position:absolute;right:20px;width:calc(100vw - 781px);width:clamp(300px,calc(100vw - 781px),450px)}pluto-helpbox>section{display:flex;flex-direction:column;height:100%;overflow:auto;padding:10px}pluto-helpbox>header{--border-radius:0.4em;background-color:var(--helpbox-header-bg-color);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);color:var(--helpbox-header-color);display:flex;font-family:var(--system-ui-font-stack);font-size:.9rem;font-variant-numeric:tabular-nums;font-weight:500;gap:.5em;padding:.6em}pluto-helpbox>header>button.helpbox-tab-key>.tabicon{--size:1.1em;background-size:var(--size);display:inline-block;filter:var(--image-filters);height:var(--size);margin-bottom:calc(var(--size)*-.15);margin-right:.6em;width:var(--size)}pluto-helpbox>header>button.helpbox-docs>.tabicon{background-image:url(search.1ca5b3b3.svg)}pluto-helpbox>header>button.helpbox-process>.tabicon{background-image:url(terminal.6b804248.svg);background-image:url(pulse.27a877a7.svg)}pluto-helpbox>header>button.helpbox-tab-key:disabled>.tabicon{opacity:.5}pluto-helpbox .live-docs-searchbox{display:flex;margin:1em}pluto-helpbox .live-docs-searchbox input{background-color:inherit;background:var(--helpbox-search-bg-color);border:none;border:3px solid var(--helpbox-search-border-color);border-radius:.3em;color:inherit;flex-grow:1;font-family:var(--julia-mono-font-stack);font-size:.9rem;margin:auto;padding:.5em}pluto-helpbox .live-docs-searchbox.notfound input{color:var(--helpbox-notfound-search-color)}pluto-helpbox .live-docs-searchbox input:focus{outline:none}button.helpbox-tab-key{background:var(--helpbox-header-tab-bg-color);border:none;border-radius:var(--border-radius);cursor:pointer;font-family:inherit;font-size:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;overflow:hidden;padding:.5em .6em;text-overflow:ellipsis;white-space:nowrap}button.helpbox-process.busy{outline:6px solid var(--process-busy)}@media (prefers-reduced-motion:no-preference){button.helpbox-process.busy{animation:outline-heartbeat .8s ease-in infinite;animation-direction:alternate}}@keyframes outline-heartbeat{0%{outline-offset:-1px;outline-width:3px}to{outline-offset:0;outline-width:6px}}button.active.helpbox-tab-key{animation:none;outline:3px solid #99afb9}pluto-helpbox>header>button.helpbox-close{background:none;border:15px solid transparent;cursor:pointer;margin:-15px -15px -15px auto}pluto-helpbox>header>button.helpbox-close>span{background-image:url(chevron-down-outline.1efaf1cc.svg);background-size:1em 1em;content:" "!important;display:block;filter:var(--image-filters);height:1em;width:1em}pluto-helpbox.hidden{height:auto;width:auto}pluto-helpbox.hidden>section{display:none}.helpbox-docs{font-family:var(--lato-ui-font-stack);line-height:1.5}.helpbox-docs .cm-line,.helpbox-docs code,.helpbox-docs pre{font-family:Roboto Mono,SFMono-Regular,Menlo,Consolas,Liberation Mono,DejaVu Sans Mono,monospace;font-size:.95em;line-height:normal}.helpbox-docs pre code{font-size:1em}.helpbox-docs code .cm-editor .cm-content,.helpbox-docs pre code.hljs{padding:0}.helpbox-docs img{max-width:100%}.helpbox-docs>section h1,.helpbox-docs>section h2,.helpbox-docs>section h3,.helpbox-docs>section h4,.helpbox-docs>section h5,.helpbox-docs>section h6{border-bottom:none;font-family:inherit;font-size:1rem}.helpbox-docs>section h1{font-size:1.3rem;overflow-wrap:anywhere}.helpbox-docs>section pre{-webkit-overflow-scrolling:touch;word-wrap:normal;background:var(--code-section-bg-color);border:1px solid var(--code-section-border-color);border-radius:4px;overflow-x:auto;padding:.7rem .5rem;white-space:pre}.helpbox-docs>section hr{border:none;border-top:3px solid var(--rule-color)}.pluto-docs-binding{background:var(--docs-binding-bg);border-radius:1em;color:var(--pluto-output-color);margin:.5em;padding:1em}.pluto-docs-binding>span{background:var(--pluto-output-bg-color);border-radius:.4rem;color:var(--black);display:inline-block;font-family:var(--julia-mono-font-stack);font-size:.9rem;font-weight:700;margin-top:-1em;padding:.235rem;transform:translate(-1.2em,-73%)}.pluto-docs-binding h1{font-size:1.4em}.pluto-docs-binding h2{font-size:1.3em}.pluto-docs-binding h3,.pluto-docs-binding h4,.pluto-docs-binding h5,.pluto-docs-binding h6{font-size:1.1em}pl-status{--status-color:var(--process-undefined);--indent:0.7rem;border-left:3px solid transparent;border-radius:.2em;display:flex;flex:0 0 auto;flex-direction:column;font-family:var(--system-ui-font-stack);font-size:.9rem;margin-left:var(--indent);margin-top:.4em;overflow:hidden}pl-status:before{background:pink;bottom:3px;display:inline-block;flex:1 2 auto;height:10px;left:0;right:0;top:3px;width:3px}pl-status.busy{--status-color:var(--process-busy)}pl-status.finished{--status-color:var(--process-finished)}pl-status.failed{--status-color:var(--process-failed)}pl-status.can_open{border-color:#98989854;cursor:auto}pl-status.can_open>div{border-bottom-left-radius:0;border-top-left-radius:0;cursor:pointer}pl-status.can_open.is_open{border-color:var(--status-color)}pl-status[data-depth="0"],pl-status[data-depth="1"]{margin-left:0}pl-status>div{align-items:center;background:var(--process-item-bg);border-radius:.4em;display:flex;flex-direction:row;padding:.2em}pl-status>div>.status-icon{background-color:var(--status-color);border-radius:50%;content:"";display:inline-block;flex:0 0 auto;height:1em;margin:0 .5em;width:1em}pl-status.busy>div>.status-icon{animation:identifier-spin 1.7s linear infinite;border-color:transparent #7ab881 #7ab881 transparent;border-style:solid;border-width:3px}@keyframes identifier-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.subprogress-counter{font-size:.8em;opacity:.5}pl-status .status-time{font-size:.7rem;font-variant-numeric:tabular-nums;margin-left:auto;opacity:.6;padding-left:.5em;padding-right:.5em}.discrete-progress-bar{align-items:stretch;background:var(--process-item-bg);border-radius:4px;contain:strict;display:flex;flex-direction:row;gap:2px;height:1em;padding:3px}.discrete-progress-bar>div{background:var(--process-undefined);border-radius:2px;flex:1 1 auto}.discrete-progress-bar>div.done{background:var(--process-finished)}.discrete-progress-bar>div.busy{background:var(--process-busy)}.discrete-progress-bar>div.failed{background:var(--process-failed)}.discrete-progress-bar.mid{gap:1px}.discrete-progress-bar.big{gap:0}pl-status pkg-terminal{margin-left:var(--indent)}pluto-helpbox.helpbox-process>section{padding-bottom:3.6rem}.notify-when-done{bottom:.3em;display:flex;font-family:var(--system-ui-font-stack);font-size:.8rem;font-weight:700;justify-content:center;left:0;opacity:0;position:absolute;right:0;transition:opacity .2s;user-select:none}.notify-when-done.visible{opacity:1}.notify-when-done.visible label{cursor:pointer}.notify-when-done label{align-items:center;background:var(--process-notify-bg);border-radius:1000px;box-shadow:0 3px 5px #0000003b;display:flex;padding:.3em .6em}.notify-when-done label:before{background-image:url(notifications-outline.aa91b431.svg);background-size:contain;content:"";display:inline-block;filter:var(--image-filters);height:1em;margin-bottom:-.2em;margin-right:.3em;width:1em}footer{background-color:var(--footer-bg-color);color:var(--footer-color);font-family:var(--roboto-mono-font-stack);font-size:.75rem;min-height:3.5rem;width:100%;z-index:70}footer form{display:flex;flex-wrap:wrap;min-height:1.5rem;opacity:1;transition:opacity 5s}footer form>*{flex:0 0 auto}footer form>a,footer form>label{align-self:center}footer form>a,footer form>label{margin-right:1em}footer a{color:var(--footer-atag-color);font-weight:700;opacity:.6}@media (max-width:650px){footer form>label{display:none}}footer input{background:var(--white);border:2px solid var(--footer-input-border-color);border-radius:3px 0 0 3px;border-right:none;font-family:inherit;font-size:inherit;margin:0;padding:3px}footer button,header#pluto-nav pluto-filepicker button{background:var(--footer-filepicker-focus-color);border:3px solid var(--footer-filepicker-focus-color);border-radius:0 3px 3px 0;color:var(--footer-filepicker-button-color);font-family:inherit;font-size:.75rem;font-weight:600;height:auto;margin:0}footer #info{align-items:center;display:flex;flex-direction:row;justify-content:flex-end;margin:0 auto;max-width:9400px;padding:1rem;text-align:right}nav#undo_delete{background-color:var(--white);border-radius:3px;bottom:0;box-shadow:0 0 10px 2px var(--undo-delete-box-shadow-color);color:var(--black);display:block;font-family:var(--roboto-mono-font-stack);font-size:.75rem;left:0;margin:.75rem;opacity:1;padding:.5rem;position:fixed;transition:box-shadow .2s linear,margin-bottom .2s ease-out,opacity .05s linear;z-index:2000}nav#undo_delete.hidden{box-shadow:0 0 10px -5px var(--undo-delete-box-shadow-color);margin-bottom:0;opacity:0;pointer-events:none}@keyframes shadow-fadeout{0%{box-shadow:0 0 10px 2px var(--undo-delete-box-shadow-color);opacity:1}80%{opacity:1}to{opacity:0}}pluto-logs-container{display:block;margin-right:1.3rem;max-height:50vh;overflow-x:hidden;overflow-y:auto;z-index:25}pluto-logs-container:not(:empty){background:var(--pluto-logs-bg-color);padding:6px}pluto-logs-container>header{font-family:var(--roboto-mono-font-stack);font-size:1.3rem;font-weight:700;opacity:.6;padding:.2em .2em 0}pluto-logs-container pluto-progress-bars pluto-progress:not(:first-child){margin-top:10px}pluto-logs-container pluto-progress-bar{--c:var(--pluto-logs-progress-fill);align-items:center;background:linear-gradient(90deg,var(--c),var(--c));background-repeat:no-repeat;display:grid;padding:.3em .6em;transition:background-size .5s cubic-bezier(.14,.71,0,.99),opacity .2s linear;width:100%}pluto-logs-container pluto-progress-bar.collapsed{height:0}pluto-logs{display:flex;flex-direction:column}pluto-logs:not(:first-child):not(:empty){margin-top:10px}pluto-log-dot{display:flex;flex-direction:column;flex-grow:1;font-family:var(--roboto-mono-font-stack);font-size:.6rem;min-height:18px;min-width:18px;padding:.6em .9em .6em .3em;position:relative}pluto-log-dot-positioner{--bg-color:var(--pluto-logs-info-color);--accent-color:var(--pluto-logs-info-accent-color);--icon-image:unset;background:var(--bg-color);background:linear-gradient(148deg,var(--bg-color),transparent);background-size:200% 100%;border-radius:6px;display:flex;flex-direction:row;margin:2px}pluto-log-dot>pre{color:var(--accent-color)}pluto-log-truncated{display:grid;font-family:var(--system-ui-font-stack);font-style:italic;opacity:.7;padding:.7em;place-items:center}pluto-log-icon:before{background-image:var(--icon-image);background-size:1em;content:"";display:inline-flex;filter:var(--image-filters);height:1em;margin:.3em;width:1em}pluto-log-dot-positioner.Info{--icon-image:url(information-circle-outline.008b2bb9.svg)}pluto-log-dot-positioner.Info pluto-log-icon:before{opacity:.4}pluto-log-dot-positioner.Warn{--bg-color:var(--pluto-logs-warn-color);--accent-color:var(--pluto-logs-warn-accent-color);--icon-image:url(warning-outline.d84ed9e8.svg)}pluto-log-dot-positioner.Error{--bg-color:var(--pluto-logs-danger-color);--accent-color:var(--pluto-logs-danger-accent-color);--icon-image:url(close-circle-outline.4baeedb9.svg)}pluto-log-dot-positioner.Debug{--bg-color:var(--pluto-logs-debug-color);--accent-color:var(--pluto-logs-debug-accent-color);--icon-image:url(information-circle-outline.008b2bb9.svg)}pluto-log-dot-positioner.Stdout{--icon-image:url(terminal-outline.79a23031.svg)}pluto-log-dot-positioner.Stdout pluto-log-icon:before{opacity:.4}pluto-log-dot.Progress{align-items:stretch;align-self:center;background:var(--pluto-logs-progress-bg);border-radius:6px;display:flex;flex:0 1 200px;flex-direction:row;font-size:.7rem;outline:3px solid var(--pluto-logs-progress-border);outline-offset:-2px;overflow:hidden;padding:0}pluto-log-dot.Stdout{--inner:#71624b;--outer:#50483f;background:radial-gradient(var(--inner),var(--inner) 20%,var(--outer));border:6px solid #b7b7b7;border-radius:8px;color:#c0ffab;min-width:18em;text-shadow:1px 1px 2px #0000005e}pluto-log-dot.Stdout:after,pluto-log-dot.Stdout:before{bottom:0;content:" ";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}pluto-log-dot.Stdout:before{background:linear-gradient(349deg,#000,transparent);opacity:.3}pluto-log-dot.Stdout:after{--crt-spacing:7px;animation:scroll-crt 1s linear infinite;animation-play-state:paused;background:linear-gradient(180deg,#534837,transparent,#1a1a1a);background-repeat:repeat;background-size:100% var(--crt-spacing);opacity:.2}pluto-log-dot.Stdout pre:before{content:" ";float:right;width:24px}a.stdout-info{pointer-events:auto;position:absolute;right:2px;top:2px;z-index:unset}@keyframes scroll-crt{0%{background-position:0 0}to{background-position:0 var(--crt-spacing)}}@media (prefers-reduced-motion:no-preference){pluto-log-dot.Stdout:hover:after{animation-play-state:running}}@media (prefers-contrast:more){pluto-log-dot.Stdout:after{display:none!important}}pluto-log-dot jlerror{background:var(--main-bg-color);border-radius:.5rem;display:block;padding:.6rem}pluto-log-dot jlpair,pluto-log-dot jltree{font-size:.6rem}pluto-log-dot>img{max-width:100px}pluto-log-dot-kwarg{display:flex;flex-direction:row;flex-wrap:wrap}pluto-log-dot-kwarg>*{flex:0 1 auto}pluto-log-dot-kwarg>pluto-key{color:var(--pluto-logs-key-color);margin-right:calc(1em - 30px)}pluto-log-dot-kwarg>pluto-key:after{content:": "}pluto-log-dot-kwarg>pluto-value{margin-left:30px;overflow-x:auto}body.presentation pluto-output h1,body.presentation pluto-output h2{margin-top:100vh}body.presentation pluto-notebook{padding-bottom:100vh}body.presentation #helpbox-wrapper{display:none!important}nav#slide_controls{display:none}body.presentation nav#slide_controls{bottom:0;display:flex;position:fixed;right:0;z-index:100}nav#slide_controls>button{padding:5px;position:static}button.floating_back_button>span:after,nav#slide_controls>button>span:after{background-size:30px 30px;content:" "!important;display:block;height:30px;width:30px}button.floating_back_button>span:after,nav#slide_controls>button.prev>span:after{background-image:url(arrow-back-outline.9ae1bed8.svg);filter:var(--image-filters)}nav#slide_controls>button.next>span:after{background-image:url(arrow-forward-outline.f5f68f5c.svg);filter:var(--image-filters)}button.floating_back_button{display:flex;left:1em;position:fixed;top:1em;z-index:1000}.cm-editor .cm-tooltip{border:1px solid var(--cm-editor-tooltip-border-color);border-radius:4px;box-shadow:3px 3px 4px rgb(0 0 0/20%)}.cm-tooltip-lint{font-family:JuliaMono;font-size:.75rem;z-index:100}.cm-tooltip-autocomplete{box-sizing:content-box;max-height:320px;z-index:100}.cm-tooltip.cm-completionInfo.cm-completionInfo-right:empty{display:none}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li{border-radius:3px;height:16px;line-height:16px;overflow-y:hidden}pluto-input .cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li{height:unset}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--cm-editor-li-aria-selected-bg-color);color:var(--cm-editor-li-aria-selected-color)}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li[aria-selected] .cm-completionLabel{border-color:transparent}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li .cm-completionDetail{float:right;font-family:var(--julia-mono-font-stack);font-size:.8em;font-style:normal;margin-right:.5em}.cm-editor .cm-tooltip.cm-tooltip-autocomplete li.c_notexported{color:var(--cm-editor-li-notexported-color)}.cm-editor .cm-completionIcon{opacity:1;transform:translateY(-1.5px);width:1em}.cm-completionIcon:before{color:transparent;content:"⚫";font-family:var(--julia-mono-font-stack)!important;font-size:.75rem;margin-right:.5em;opacity:1}[data-pluto-variable]{font-weight:inherit}.cm-editor .cm-tooltip.cm-tooltip-autocomplete li.c_from_notebook .cm-completionLabel,[data-pluto-variable],[data-pluto-variable]:hover{font-weight:700;text-decoration:underline;text-decoration-color:var(--cm-clickable-underline);text-decoration-skip-ink:none;text-decoration-thickness:3px}body.disable_ui [data-cell-variable],body.disable_ui [data-pluto-variable]{cursor:pointer}body:not(.disable_ui) [data-ctrl-down=true][data-cell-variable],body:not(.disable_ui) [data-ctrl-down=true][data-pluto-variable]{cursor:pointer;text-decoration-color:#d177e6}body:not(.disable_ui) [data-ctrl-down=true][data-pluto-variable]:hover,body:not(.disable_ui) [data-ctrl-down=true][data-pluto-variable]:hover *{color:transparent!important;text-shadow:0 0 #af5bc3}[data-cell-variable]{text-decoration:none}[data-ctrl-down=true][data-cell-variable]:hover *{color:transparent!important;text-shadow:0 0 #af5bc3}.cm-tooltip.cm-tooltip-autocomplete{background:var(--autocomplete-menu-bg-color);margin-left:-1.5em;padding:0}pluto-input .cm-editor .cm-scroller{overflow-y:hidden}.cm-editor .cm-tooltip-autocomplete .cm-completionLabel,pluto-input .cm-editor .cm-content,pluto-input .cm-editor .cm-scroller{font-family:var(--julia-mono-font-stack)!important;font-size:.8rem;font-variant-ligatures:none}pluto-input .cm-editor .cm-content{padding:2px 0}.cm-editor .cm-scroller>.cm-selectionLayer .cm-selectionBackground{background:var(--cm-selection-background-blurred)}.cm-editor.cm-focused .cm-scroller>.cm-selectionLayer .cm-selectionBackground{background:var(--cm-selection-background)}.cm-editor{background:var(--code-background);color:var(--cm-editor-text-color)}.cm-editor.cm-focused:not(.__){outline:unset}.cm-editor .cm-gutter{min-height:23px;min-width:31px}.cm-editor .cm-gutters{background:transparent;border-right:1px solid transparent}pluto-cell.code_differs .cm-editor .cm-gutters{background-color:var(--cm-code-differs-gutters-color)}.cm-editor .cm-lineNumbers .cm-gutterElement{color:transparent}.cm-editor .cm-lineNumbers .cm-gutterElement:after{color:var(--cm-line-numbers-color);content:"⋅";font-size:.75rem;pointer-events:none;position:absolute;right:3px}.cm-editor .cm-lineNumbers .cm-gutterElement:hover{color:var(--cm-line-numbers-color)}.cm-editor .cm-lineNumbers .cm-gutterElement:hover:after{color:transparent}pluto-cell.errored .cm-editor .cm-lineNumbers .cm-gutterElement{color:var(--cm-line-numbers-color)}pluto-cell.errored .cm-editor .cm-lineNumbers .cm-gutterElement:after{color:transparent}@media print{.cm-editor .cm-lineNumbers .cm-gutterElement{color:var(--cm-line-numbers-color)!important}.cm-editor .cm-lineNumbers .cm-gutterElement:after{color:transparent!important}}.cm-completionIcon-c_Number:before{color:var(--cm-number-color)}.cm-completionIcon-c_String:before,.cm-completionIcon-completion_dict:before,.cm-completionIcon-completion_path:before{color:var(--cm-string-color)}.cm-completionIcon-completion_property:before{color:var(--cm-property-color)}.cm-completionIcon-completion_keyword:before{color:var(--cm-keyword-color)}li.completion_keyword_argument .cm-completionLabel{font-style:italic;font-weight:700}.cm-completionIcon-completion_keyword_argument:before{color:var(--cm-number-color)}.cm-completionIcon-c_Any:before,pluto-output>assignee,pluto-popup code.auto_disabled_variable{color:var(--cm-var-color)!important;font-weight:700}.cm-completionIcon-c_Function:before{color:var(--cm-function-color)}.cm-completionIcon-c_Macro:before{color:var(--cm-macro-color)}.cm-completionIcon-c_Array:before{color:var(--cm-bracket-color)}.cm-completionIcon-c_Module:before,.cm-completionIcon-c_package:before{color:var(--cm-link-color)}.cm-editor .cm-activeLine{background:unset}.cm-selectionMatch{background:none!important;text-shadow:0 0 8px rgba(0,0,0,.5)}@media (prefers-color-scheme:dark){.cm-selectionMatch{background:none!important;text-shadow:0 0 8px hsla(0,0%,100%,.5)}}.cm-editor .cm-matchingBracket,.cm-editor .cm-nonmatchingBracket{background-color:unset;color:unset}pluto-input:focus-within .cm-editor .cm-matchingBracket{background-color:var(--cm-matchingBracket-bg-color);border-radius:2px;color:var(--cm-matchingBracket-color)!important;font-weight:700}.cm-editor .cm-placeholder{color:var(--cm-placeholder-text-color);font-style:italic}.cm-completionMatchedText{text-decoration:unset!important}.awesome-wrapping-plugin-the-line{--correction:0px;margin-left:calc(var(--indented));text-indent:calc(var(--indented)*-1)}.awesome-wrapping-plugin-the-line>*{text-indent:0}.awesome-wrapping-plugin-the-tabs{margin-left:-1px;vertical-align:top;white-space:pre}pluto-cell.hooked_up{--pluto-cell-force-color:#00b9ff7a}pluto-cell.hooked_up pluto-trafficlight{background-color:var(--pluto-cell-force-color)!important}pluto-cell.hooked_up pluto-input .cm-editor{border-color:var(--pluto-cell-force-color);border-width:2px;border-left:none;border-top:none}pluto-cell.hooked_up>pluto-runarea{background-color:var(--pluto-cell-force-color);opacity:1}pluto-cell.hooked_up pluto-runarea>span{color:#0000004f}pluto-cell.hooked_up pluto-output{border-bottom:2px solid;border-right:2px solid;border-color:var(--pluto-cell-force-color);border-top:2px solid;border-top-color:var(--pluto-cell-force-color);border-top-right-radius:4px}.fm-table{display:grid;gap:.3em 1em;grid-template-columns:auto 1fr min-content}.pluto-frontmatter{background:var(--export-bg-color);border-radius:1em;color:var(--export-color);font-family:var(--system-ui-font-stack);padding:1em 1.5em;width:min(31rem,90vw)}.pluto-frontmatter .card-preview{background:var(--white);border-radius:1rem;box-shadow:inset 0 0 15px -4px #00000054;margin:1rem 0;padding:1.2rem 1.1rem}.pluto-frontmatter .card-preview>h2{color:var(--black);margin-block-start:0}.pluto-frontmatter button{background-color:var(--frontmatter-button-bg-color);border:2px solid var(--frontmatter-button-bg-color);border-radius:.5em;cursor:pointer;font-weight:500}.pluto-frontmatter button:hover{border-color:var(--frontmatter-input-border-color)}.pluto-frontmatter input{background-color:var(--frontmatter-input-bg-color);border:2px solid var(--frontmatter-input-border-color);border-radius:.5em;padding:.3em .5em}.pluto-frontmatter rbl-tag-input{color:var(--black)}.pluto-frontmatter label{font-weight:500}.pluto-frontmatter .deletefield{align-self:stretch;background-color:transparent;border-width:0;color:var(--export-color);margin-left:-1em}.pluto-frontmatter .addentry{grid-column:1/3;margin-top:.5em}.pluto-frontmatter fieldset{grid-column:1/4}.pluto-frontmatter .final{display:flex;gap:.5em;justify-content:flex-end;margin-top:2rem}.markdown-code-block-button{align-items:center;background:none;border:none;cursor:pointer;display:block;float:right;justify-content:center;padding:0;position:relative}.markdown-code-block-button:before{background-image:url(copy-outline.6d5a7927.svg);content:"";display:block;filter:var(--image-filters);height:14px;width:14px}.markdown-code-block-copied-code-button:before{background-image:url(checkmark-outline.538ded54.svg)} \ No newline at end of file diff --git a/frontend-dist/editor.52bd66ba.css b/frontend-dist/editor.52bd66ba.css new file mode 100644 index 0000000000..f1d61cc1f9 --- /dev/null +++ b/frontend-dist/editor.52bd66ba.css @@ -0,0 +1 @@ +main{cursor:auto;margin-top:20px}#helpbox-wrapper,body header#pluto-nav,footer,pluto-cell>button,pluto-input>button,pluto-runarea,pluto-shoulder,preamble>button{display:none!important}@media print{.edit_or_run,.floating_back_button,.loading-bar,.MJX_HoverRegion,.MJX_LiveRegion,.MJX_ToolTip,.outline-frame,.outline-frame-actions-container,.pluto-frontmatter,nav#undo_delete,pkg-status-mark{display:none!important}main{padding-bottom:0}pluto-input .cm-editor{border-left:1px solid var(--normal-cell-color);border-radius:4px!important}pluto-cell{break-inside:avoid}pluto-cell.code_folded:has(p){break-inside:auto}pluto-output>div>div.markdown>hr,pluto-output>div>div>hr{break-after:page;height:0;margin:0;visibility:hidden}pluto-output h1{break-before:page}pluto-cell:first-of-type pluto-output h1{break-before:avoid}pluto-output :is(.admonition,.pluto-docs-binding,blockquote) h1{break-before:avoid}pluto-output :is(h1,h2,h3,h4){break-after:avoid}}@page{widows:2} \ No newline at end of file diff --git a/frontend-dist/editor.6386bd9d.js b/frontend-dist/editor.6386bd9d.js new file mode 100644 index 0000000000..dd344f6c83 --- /dev/null +++ b/frontend-dist/editor.6386bd9d.js @@ -0,0 +1,8 @@ +/*! iFrame Resizer (iframeSizer.contentWindow.min.js) - v4.2.11 - 2020-06-02 + * Desc: Include this file in any page being loaded into an iframe + * to force the iframe to resize to the content size. + * Requires: iframeResizer.min.js on host page. + * Copyright: (c) 2020 David J. Bradshaw - dave@bradshaw.net + * License: MIT + */ +!function(e){if("undefined"!=typeof window){var t=!0,n=10,o="",i=0,r="",a=null,u="",c=!1,s={resize:1,click:1},d=128,l=!0,f=1,m="bodyOffset",h=m,g=!0,p="",v={},y=32,b=null,w=!1,T="[iFrameSizer]",E=T.length,O="",S={max:1,min:1,bodyScroll:1,documentElementScroll:1},M="child",I=!0,N=window.parent,A="*",C=0,z=!1,k=null,R=16,x=1,L="scroll",F=L,P=window,D=function(){re("onMessage function not defined")},j=function(){},q=function(){},H={height:function(){return re("Custom height calculation function not defined"),document.documentElement.offsetHeight},width:function(){return re("Custom width calculation function not defined"),document.body.scrollWidth}},W={},B=!1;try{var J=Object.create({},{passive:{get:function(){B=!0}}});window.addEventListener("test",ee,J),window.removeEventListener("test",ee,J)}catch(e){}var U,V,K,Q,X,Y,G=Date.now||function(){return(new Date).getTime()},Z={bodyOffset:function(){return document.body.offsetHeight+pe("marginTop")+pe("marginBottom")},offset:function(){return Z.bodyOffset()},bodyScroll:function(){return document.body.scrollHeight},custom:function(){return H.height()},documentElementOffset:function(){return document.documentElement.offsetHeight},documentElementScroll:function(){return document.documentElement.scrollHeight},max:function(){return Math.max.apply(null,ye(Z))},min:function(){return Math.min.apply(null,ye(Z))},grow:function(){return Z.max()},lowestElement:function(){return Math.max(Z.bodyOffset()||Z.documentElementOffset(),ve("bottom",we()))},taggedElement:function(){return be("bottom","data-iframe-height")}},$={bodyScroll:function(){return document.body.scrollWidth},bodyOffset:function(){return document.body.offsetWidth},custom:function(){return H.width()},documentElementScroll:function(){return document.documentElement.scrollWidth},documentElementOffset:function(){return document.documentElement.offsetWidth},scroll:function(){return Math.max($.bodyScroll(),$.documentElementScroll())},max:function(){return Math.max.apply(null,ye($))},min:function(){return Math.min.apply(null,ye($))},rightMostElement:function(){return ve("right",we())},taggedElement:function(){return be("right","data-iframe-width")}},_=(U=Te,X=null,Y=0,function(){var e=G(),t=R-(e-(Y=Y||e));return V=this,K=arguments,t<=0||Rf[g]["max"+e])throw new Error("Value for min"+e+" can not be greater than max"+e)}g in f&&"iFrameResizer"in n?I(g,"Ignored iFrame, already setup."):(l=(l=o)||{},f[g]={firstRun:!0,iframe:n,remoteHost:n.src&&n.src.split("/").slice(0,3).join("/")},function(e){if("object"!=typeof e)throw new TypeError("Options is not an object")}(l),Object.keys(l).forEach((function(e){var n=e.split("Callback");if(2===n.length){var i="on"+n[0].charAt(0).toUpperCase()+n[0].slice(1);this[i]=this[e],delete this[e],I(g,"Deprecated: '"+e+"' has been renamed '"+i+"'. The old method will be removed in the next major version.")}}),l),function(e){for(var n in m)Object.prototype.hasOwnProperty.call(m,n)&&(f[g][n]=Object.prototype.hasOwnProperty.call(e,n)?e[n]:m[n])}(l),f[g]&&(f[g].targetOrigin=!0===f[g].checkOrigin?function(e){return""===e||null!==e.match(/^(about:blank|javascript:|file:\/\/)/)?"*":e}(f[g].remoteHost):"*"),function(){switch(y(g,"IFrame scrolling "+(f[g]&&f[g].scrolling?"enabled":"disabled")+" for "+g),n.style.overflow=!1===(f[g]&&f[g].scrolling)?"hidden":"auto",f[g]&&f[g].scrolling){case"omit":break;case!0:n.scrolling="yes";break;case!1:n.scrolling="no";break;default:n.scrolling=f[g]?f[g].scrolling:"no"}}(),b("Height"),b("Width"),p("maxHeight"),p("minHeight"),p("maxWidth"),p("minWidth"),"number"!=typeof(f[g]&&f[g].bodyMargin)&&"0"!==(f[g]&&f[g].bodyMargin)||(f[g].bodyMarginV1=f[g].bodyMargin,f[g].bodyMargin=f[g].bodyMargin+"px"),s=S(g),(c=h())&&(d=c,n.parentNode&&new d((function(e){e.forEach((function(e){Array.prototype.slice.call(e.removedNodes).forEach((function(e){e===n&&z(n)}))}))})).observe(n.parentNode,{childList:!0})),w(n,"load",(function(){N("iFrame.onload",s,n,e,!0),function(){var e=f[g]&&f[g].firstRun,i=f[g]&&f[g].heightCalculationMethod in u;!e&&i&&E({iframe:n,height:0,width:0,type:"init"})}()})),N("init",s,n,e,!0),f[g]&&(f[g].iframe.iFrameResizer={close:z.bind(null,f[g].iframe),removeListeners:k.bind(null,f[g].iframe),resize:N.bind(null,"Window resize","resize",f[g].iframe),moveToAnchor:function(e){N("Move to anchor","moveToAnchor:"+e,f[g].iframe,g)},sendMessage:function(e){N("Send Message","message:"+(e=JSON.stringify(e)),f[g].iframe,g)}}))}function j(e,n){null===l&&(l=setTimeout((function(){l=null,e()}),n))}function P(){"hidden"!==document.visibilityState&&(y("document","Trigger event: Visiblity change"),j((function(){A("Tab Visable","resize")}),16))}function A(e,n){Object.keys(f).forEach((function(i){!function(e){return f[e]&&"parent"===f[e].resizeFrom&&f[e].autoResize&&!f[e].firstRun}(i)||N(e,n,f[i].iframe,i)}))}function B(){function n(e,n){n&&(function(){if(!n.tagName)throw new TypeError("Object is not a valid DOM element");if("IFRAME"!==n.tagName.toUpperCase())throw new TypeError("Expected `},Ll=async({environment:e,code:t})=>{const n=`"use strict"; return (async () => {${t}})()`;let{this:o,...a}=e,r=Object.keys(a),i=Object.values(a);return await Function(...r,n).bind(o)(...i)},Dl=0,Il=async(e,t)=>{let n=document.createElement("script");for(let t of e.attributes)n.attributes.setNamedItem(t.cloneNode(!0));const o=`____FUNCTION_TO_RUN_INSIDE_SCRIPT_${Dl}`;n.textContent=`{\n window.${o}.result = window.${o}.function_to_run(window.${o}.currentScript)\n }`,window[o]={function_to_run:t,currentScript:n,result:null};const a=e.parentNode;if(null==a)throw"Failed to execute script it has no parent in DOM.";a.replaceChild(n,e);let r=await window[o].result;return window[o]={function_to_run:t,result:null},{node:n,result:r}};const Pl=e=>e instanceof Element&&e.nodeType===Node.ELEMENT_NODE;let jl=e=>e(),Bl=e=>{try{const t=e.getAttribute("shadowroot"),n=e.parentElement.attachShadow({mode:t});n.appendChild(e.content),e.remove();return Array.from(n.querySelectorAll("script, template[shadowroot]")).flatMap((e=>"SCRIPT"===e.nodeName?[e]:"TEMPLATE"===e.nodeName?Bl(e):void 0))}catch(t){return console.error("Couldn't attach declarative shadow dom to",e,"because of",t),[]}},Ul=({body:e,className:t="",persist_js_state:n=!1,last_run_timestamp:o,sanitize_html:a=!0,sanitize_html_message:r=!0})=>{let l=i.useContext(ye),s=i.useContext(we),c=i.useContext(ke),d=i.useRef(new Map),u=i.useRef((()=>{})),p=i.useRef(null);return i.useLayoutEffect((()=>{p.current&&s&&Br(p.current.querySelectorAll("bond"),s)}),[e,n,l,s,a]),i.useLayoutEffect((()=>{const t=p.current;if(null==t)return;let o=new Promise((e=>{u.current=()=>{e(null)}}));document.createElement("p-dumpster").append(...t.childNodes);let m=a?$t.sanitize(e,{FORBID_TAGS:["style"],ADD_ATTR:["target"]}):e;if(t.innerHTML=m,r&&m!==e){const n=new DOMParser,o=n.parseFromString(e,"text/html");if(n.parseFromString(m,"text/html").documentElement.innerHTML!==o.documentElement.innerHTML){console.info("HTML sanitized",{body:e,html_content_to_set:m});let n=document.createElement("div");n.innerHTML='
\nScripts and styles not rendered in Safe preview\n
',t.prepend(n)}}if(a)return;const g=[...Array.from(t.querySelectorAll("template[shadowroot]")).flatMap((e=>Bl(e))),...Array.from(t.querySelectorAll("script"))];return jl((async()=>{try{var e;if(null==c||c.add(t),d.current=await(async({root_node:e,script_nodes:t,previous_results_map:n,invalidation:o,pluto_actions:a})=>{let r=new Map;for(let e of t)if(null!=e.src&&""!==e.src);else{let t=e.id,o=t?n.get(t):null;Pl(o)&&(null===(l=e.parentElement)||void 0===l||l.insertBefore(o,e))}for(let s of t){if(Dl+=1,null!=s.src&&""!==s.src){let e=Array.from(document.head.querySelectorAll("script")).find((e=>e.src===s.src));null==e&&(e=document.createElement("script"),e.referrerPolicy=s.referrerPolicy,e.crossOrigin=s.crossOrigin,e.integrity=s.integrity,e.noModule=s.noModule,e.nonce=s.nonce,e.type=s.type,e.src=s.src,e.pluto_is_loading_me=!0);let t=e;null!=t.pluto_is_loading_me&&(await new Promise((e=>{t.addEventListener("load",e),t.addEventListener("error",e),document.head.appendChild(t)})),t.pluto_is_loading_me=void 0)}else try{let t=s.innerText,c=s.id,d=c?n.get(c):null;if("module"===s.type&&console.warn("We don't (yet) fully support
\ No newline at end of file diff --git a/frontend-dist/ellipsis-horizontal-circle-outline.6279ed30.svg b/frontend-dist/ellipsis-horizontal-circle-outline.6279ed30.svg new file mode 100644 index 0000000000..4b8d05ea8e --- /dev/null +++ b/frontend-dist/ellipsis-horizontal-circle-outline.6279ed30.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ellipsis-horizontal-outline.abb6e818.svg b/frontend-dist/ellipsis-horizontal-outline.abb6e818.svg new file mode 100644 index 0000000000..bf94f28aca --- /dev/null +++ b/frontend-dist/ellipsis-horizontal-outline.abb6e818.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ellipsis-horizontal.c9a6cc29.svg b/frontend-dist/ellipsis-horizontal.c9a6cc29.svg new file mode 100644 index 0000000000..5df322580b --- /dev/null +++ b/frontend-dist/ellipsis-horizontal.c9a6cc29.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/ellipsis-vertical.a30e7430.svg b/frontend-dist/ellipsis-vertical.a30e7430.svg new file mode 100644 index 0000000000..27f793a2cb --- /dev/null +++ b/frontend-dist/ellipsis-vertical.a30e7430.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/error.jl.html b/frontend-dist/error.jl.html new file mode 100644 index 0000000000..7c839e6848 --- /dev/null +++ b/frontend-dist/error.jl.html @@ -0,0 +1 @@ +$TITLE$STYLE

$TITLE

$ADVICE


Go back


$BODYTITLE

$BODY
\ No newline at end of file diff --git a/frontend-dist/eye-off-outline.a37e03db.svg b/frontend-dist/eye-off-outline.a37e03db.svg new file mode 100644 index 0000000000..4a7e915939 --- /dev/null +++ b/frontend-dist/eye-off-outline.a37e03db.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/eye-outline.6e6e0f7c.svg b/frontend-dist/eye-outline.6e6e0f7c.svg new file mode 100644 index 0000000000..6901ef405b --- /dev/null +++ b/frontend-dist/eye-outline.6e6e0f7c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/favicon-16x16.347d2855.png b/frontend-dist/favicon-16x16.347d2855.png new file mode 100644 index 0000000000..bd77b08001 Binary files /dev/null and b/frontend-dist/favicon-16x16.347d2855.png differ diff --git a/frontend-dist/favicon-32x32.8789add4.png b/frontend-dist/favicon-32x32.8789add4.png new file mode 100644 index 0000000000..96580877eb Binary files /dev/null and b/frontend-dist/favicon-32x32.8789add4.png differ diff --git a/frontend-dist/favicon-96x96.48689391.png b/frontend-dist/favicon-96x96.48689391.png new file mode 100644 index 0000000000..1d5d57d5b2 Binary files /dev/null and b/frontend-dist/favicon-96x96.48689391.png differ diff --git a/frontend-dist/favicon_unsaturated.d1387b25.svg b/frontend-dist/favicon_unsaturated.d1387b25.svg new file mode 100644 index 0000000000..ccc316f314 --- /dev/null +++ b/frontend-dist/favicon_unsaturated.d1387b25.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/firebase-app.15ba8989.js b/frontend-dist/firebase-app.15ba8989.js new file mode 100644 index 0000000000..3fd269f442 --- /dev/null +++ b/frontend-dist/firebase-app.15ba8989.js @@ -0,0 +1,279 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r=e.parcelRequire94c2;r.register("8WRsO",(function(n,a){t(n.exports,"FirebaseError",(()=>g)),t(n.exports,"_DEFAULT_ENTRY_NAME",(()=>X)),t(n.exports,"_apps",(()=>Q)),t(n.exports,"_components",(()=>ee)),t(n.exports,"_addComponent",(()=>te)),t(n.exports,"_addOrOverwriteComponent",(()=>re)),t(n.exports,"_registerComponent",(()=>ne)),t(n.exports,"_getProvider",(()=>ae)),t(n.exports,"_removeServiceInstance",(()=>ie)),t(n.exports,"_clearComponents",(()=>se)),t(n.exports,"SDK_VERSION",(()=>he)),t(n.exports,"initializeApp",(()=>le)),t(n.exports,"getApp",(()=>de)),t(n.exports,"getApps",(()=>ue)),t(n.exports,"deleteApp",(()=>fe)),t(n.exports,"registerVersion",(()=>pe)),t(n.exports,"onLog",(()=>ge)),t(n.exports,"setLogLevel",(()=>me));var i=r("fnbc9"); +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const s=function(e){const t=[];let r=0;for(let n=0;n>6|192,t[r++]=63&a|128):55296==(64512&a)&&n+1>18|240,t[r++]=a>>12&63|128,t[r++]=a>>6&63|128,t[r++]=63&a|128):(t[r++]=a>>12|224,t[r++]=a>>6&63|128,t[r++]=63&a|128)}return t},o={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t>2,l=(3&a)<<4|s>>4;let d=(15&s)<<2|c>>6,u=63&c;o||(u=64,i||(d=64)),n.push(r[h],r[l],r[d],r[u])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(s(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let r=0,n=0;for(;r191&&a<224){const i=e[r++];t[n++]=String.fromCharCode((31&a)<<6|63&i)}else if(a>239&&a<365){const i=((7&a)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(i>>10)),t[n++]=String.fromCharCode(56320+(1023&i))}else{const i=e[r++],s=e[r++];t[n++]=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t>4;if(n.push(h),64!==s){const e=i<<4&240|s>>2;if(n.push(e),64!==o){const e=s<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const h=function(e){return function(e){const t=s(e);return o.encodeByteArray(t,!0)}(e).replace(/\./g,"")}; +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const l=()=> +/** + * @license + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==e)return e;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,d=()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&function(e){try{return o.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return t&&JSON.parse(t)},u=()=>{try{return l()||(()=>{if(void 0===i||void 0===i.env)return})()||d()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},f=()=>{var e;return null===(e=u())||void 0===e?void 0:e.config}; +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class p{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,r))}}}class g extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,a=this.errors[e],i=a?function(e,t){return e.replace(b,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(a,r):"Error",s=`${this.serviceName}: ${i} (${n}).`;return new g(n,s,r)}}const b=/\{\$([^}]+)}/g;function v(e,t){if(e===t)return!0;const r=Object.keys(e),n=Object.keys(t);for(const a of r){if(!n.includes(a))return!1;const r=e[a],i=t[a];if(E(r)&&E(i)){if(!v(r,i))return!1}else if(r!==i)return!1}for(const e of n)if(!r.includes(e))return!1;return!0}function E(e){return null!==e&&"object"==typeof e}class _{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const y="[DEFAULT]"; +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class w{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new p;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const r=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),n=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(r)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:r})}catch(e){if(n)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */(e))try{this.getOrInitializeService({instanceIdentifier:y})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const r=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e="[DEFAULT]"){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e="[DEFAULT]"){return this.instances.has(e)}getOptions(e="[DEFAULT]"){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(const[e,t]of this.instancesDeferred.entries()){r===this.normalizeInstanceIdentifier(e)&&t.resolve(n)}return n}onInit(e,t){var r;const n=this.normalizeInstanceIdentifier(t),a=null!==(r=this.onInitCallbacks.get(n))&&void 0!==r?r:new Set;a.add(e),this.onInitCallbacks.set(n,a);const i=this.instances.get(n);return i&&e(i,n),()=>{a.delete(e)}}invokeOnInitCallbacks(e,t){const r=this.onInitCallbacks.get(t);if(r)for(const n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e,n===y?void 0:n),options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(e){}var n;return r||null}normalizeInstanceIdentifier(e="[DEFAULT]"){return this.component?this.component.multipleInstances?e:y:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class I{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new w(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}} +/** + * @license + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const D=[];var S,C;(C=S||(S={}))[C.DEBUG=0]="DEBUG",C[C.VERBOSE=1]="VERBOSE",C[C.INFO=2]="INFO",C[C.WARN=3]="WARN",C[C.ERROR=4]="ERROR",C[C.SILENT=5]="SILENT";const A={debug:S.DEBUG,verbose:S.VERBOSE,info:S.INFO,warn:S.WARN,error:S.ERROR,silent:S.SILENT},O=S.INFO,L={[S.DEBUG]:"log",[S.VERBOSE]:"log",[S.INFO]:"info",[S.WARN]:"warn",[S.ERROR]:"error"},B=(e,t,...r)=>{if(t(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function k(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(N||(N=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(V(this),t),F(M.get(this))}:function(...t){return F(e.apply(V(this),t))}:function(t,...r){const n=e.call(V(this),t,...r);return P.set(n,t.sort?t.sort():[t]),F(n)}}function j(e){return"function"==typeof e?k(e):(e instanceof IDBTransaction&&function(e){if(R.has(e))return;const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",i),e.removeEventListener("abort",i)},a=()=>{t(),n()},i=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",i),e.addEventListener("abort",i)}));R.set(e,t)}(e),t=e,(T||(T=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>t instanceof e))?new Proxy(e,H):e);var t}function F(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",i)},a=()=>{t(F(e.result)),n()},i=()=>{r(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",i)}));return t.then((t=>{t instanceof IDBCursor&&M.set(t,e)})).catch((()=>{})),$.set(t,e),t}(e);if(x.has(e))return x.get(e);const t=j(e);return t!==e&&(x.set(e,t),$.set(t,e)),t}const V=e=>$.get(e);const U=["get","getKey","getAll","getAllKeys","count"],z=["put","add","delete","clear"],W=new Map;function G(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(W.get(t))return W.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,a=z.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!a&&!U.includes(r))return;const i=async function(e,...t){const i=this.transaction(e,a?"readwrite":"readonly");let s=i.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),a&&i.done]))[0]};return W.set(t,i),i}H=(e=>({...e,get:(t,r,n)=>G(t,r)||e.get(t,r,n),has:(t,r)=>!!G(t,r)||e.has(t,r)}))(H); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class J{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const K="https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js",q="0.9.27",Y=new class{constructor(e){this.name=e,this._logLevel=O,this._logHandler=B,this._userLogHandler=null,D.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in S))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?A[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,S.DEBUG,...e),this._logHandler(this,S.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,S.VERBOSE,...e),this._logHandler(this,S.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,S.INFO,...e),this._logHandler(this,S.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,S.WARN,...e),this._logHandler(this,S.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,S.ERROR,...e),this._logHandler(this,S.ERROR,...e)}}("https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js"),X="[DEFAULT]",Z={[K]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},Q=new Map,ee=new Map;function te(e,t){try{e.container.addComponent(t)}catch(r){Y.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function re(e,t){e.container.addOrOverwriteComponent(t)}function ne(e){const t=e.name;if(ee.has(t))return Y.debug(`There were multiple attempts to register component ${t}.`),!1;ee.set(t,e);for(const t of Q.values())te(t,e);return!0}function ae(e,t){const r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function ie(e,t,r=X){ae(e,t).clearInstance(r)}function se(){ee.clear()} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const oe=new m("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}."}); +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ce{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new _("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw oe.create("app-deleted",{appName:this._name})}} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const he="10.8.0";function le(e,t={}){let r=e;if("object"!=typeof t){t={name:t}}const n=Object.assign({name:X,automaticDataCollectionEnabled:!1},t),a=n.name;if("string"!=typeof a||!a)throw oe.create("bad-app-name",{appName:String(a)});if(r||(r=f()),!r)throw oe.create("no-options");const i=Q.get(a);if(i){if(v(r,i.options)&&v(n,i.config))return i;throw oe.create("duplicate-app",{appName:a})}const s=new I(a);for(const e of ee.values())s.addComponent(e);const o=new ce(r,n,s);return Q.set(a,o),o}function de(e=X){const t=Q.get(e);if(!t&&e===X&&f())return le();if(!t)throw oe.create("no-app",{appName:e});return t}function ue(){return Array.from(Q.values())}async function fe(e){const t=e.name;Q.has(t)&&(Q.delete(t),await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function pe(e,t,r){var n;let a=null!==(n=Z[e])&&void 0!==n?n:e;r&&(a+=`-${r}`);const i=a.match(/\s|\//),s=t.match(/\s|\//);if(i||s){const e=[`Unable to register library "${a}" with version "${t}":`];return i&&e.push(`library name "${a}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void Y.warn(e.join(" "))}ne(new _(`${a}-version`,(()=>({library:a,version:t})),"VERSION"))}function ge(e,t){if(null!==e&&"function"!=typeof e)throw oe.create("invalid-log-argument");!function(e,t){for(const r of D){let n=null;t&&t.level&&(n=A[t.level]),r.userLogHandler=null===e?null:(t,r,...a)=>{const i=a.map((e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}})).filter((e=>e)).join(" ");r>=(null!=n?n:t.logLevel)&&e({level:S[r].toLowerCase(),message:i,args:a,type:t.name})}}}(e,t)}function me(e){var t;t=e,D.forEach((e=>{e.setLogLevel(t)}))} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */const be="firebase-heartbeat-store";let ve=null;function Ee(){return ve||(ve=function(e,t,{blocked:r,upgrade:n,blocking:a,terminated:i}={}){const s=indexedDB.open(e,t),o=F(s);return n&&s.addEventListener("upgradeneeded",(e=>{n(F(s.result),e.oldVersion,e.newVersion,F(s.transaction),e)})),r&&s.addEventListener("blocked",(e=>r(e.oldVersion,e.newVersion,e))),o.then((e=>{i&&e.addEventListener("close",(()=>i())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(be)}catch(e){console.warn(e)}}}).catch((e=>{throw oe.create("idb-open",{originalErrorMessage:e.message})}))),ve}async function _e(e,t){try{const r=(await Ee()).transaction(be,"readwrite"),n=r.objectStore(be);await n.put(t,ye(e)),await r.done}catch(e){if(e instanceof g)Y.warn(e.message);else{const t=oe.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});Y.warn(t.message)}}}function ye(e){return`${e.name}!${e.options.appId}`} +/** + * @license + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */class we{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new De(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;const r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=Ie();if((null!=(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))&&this._heartbeatsCache.lastSentHeartbeatDate!==n&&!this._heartbeatsCache.heartbeats.some((e=>e.date===n)))return this._heartbeatsCache.heartbeats.push({date:n,agent:r}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){var e;if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=Ie(),{heartbeatsToSend:r,unsentEntries:n}=function(e,t=1024){const r=[];let n=e.slice();for(const a of e){const e=r.find((e=>e.agent===a.agent));if(e){if(e.dates.push(a.date),Se(r)>t){e.dates.pop();break}}else if(r.push({agent:a.agent,dates:[a.date]}),Se(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}(this._heartbeatsCache.heartbeats),a=h(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}}function Ie(){return(new Date).toISOString().substring(0,10)}class De{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&new Promise(((e,t)=>{try{let r=!0;const n="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(n);a.onsuccess=()=>{a.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},a.onupgradeneeded=()=>{r=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await Ee()).transaction(be),r=await t.objectStore(be).get(ye(e));return await t.done,r}catch(e){if(e instanceof g)Y.warn(e.message);else{const t=oe.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});Y.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return _e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}}function Se(e){return h(JSON.stringify({version:2,heartbeats:e})).length} +/** + * @license + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */var Ce;Ce="",ne(new _("platform-logger",(e=>new J(e)),"PRIVATE")),ne(new _("heartbeat",(e=>new we(e)),"PRIVATE")),pe(K,q,Ce),pe(K,q,"esm2017"),pe("fire-js",""); +/** + * @license + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +pe("firebase","10.8.0","cdn")})); \ No newline at end of file diff --git a/frontend-dist/firebase-firestore.f72d0b8a.js b/frontend-dist/firebase-firestore.f72d0b8a.js new file mode 100644 index 0000000000..cb3c6ee7b3 --- /dev/null +++ b/frontend-dist/firebase-firestore.f72d0b8a.js @@ -0,0 +1 @@ +var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function e(t,e,n,r){Object.defineProperty(t,e,{get:n,set:r,enumerable:!0,configurable:!0})}var n=t.parcelRequire94c2;n.register("4rxkr",(function(r,s){e(r.exports,"setLogLevel",(()=>Gr)),e(r.exports,"_logWarn",(()=>$r)),e(r.exports,"_debugAssert",(()=>Yr)),e(r.exports,"FirestoreError",(()=>Zr)),e(r.exports,"_EmptyAuthCredentialsProvider",(()=>ns)),e(r.exports,"_EmptyAppCheckTokenProvider",(()=>cs)),e(r.exports,"_AutoId",(()=>hs)),e(r.exports,"Timestamp",(()=>ms)),e(r.exports,"_FieldPath",(()=>bs)),e(r.exports,"_DocumentKey",(()=>_s)),e(r.exports,"_isBase64Available",(()=>Vi)),e(r.exports,"_ByteString",(()=>qi)),e(r.exports,"_DatabaseId",(()=>Hi)),e(r.exports,"_validateIsNotUsedTogether",(()=>$f)),e(r.exports,"_cast",(()=>Yf)),e(r.exports,"connectFirestoreEmulator",(()=>tg)),e(r.exports,"Query",(()=>eg)),e(r.exports,"DocumentReference",(()=>ng)),e(r.exports,"CollectionReference",(()=>rg)),e(r.exports,"collection",(()=>sg)),e(r.exports,"collectionGroup",(()=>ig)),e(r.exports,"doc",(()=>og)),e(r.exports,"refEqual",(()=>ag)),e(r.exports,"queryEqual",(()=>ug)),e(r.exports,"LoadBundleTask",(()=>hg)),e(r.exports,"CACHE_SIZE_UNLIMITED",(()=>dg)),e(r.exports,"Firestore",(()=>fg)),e(r.exports,"initializeFirestore",(()=>gg)),e(r.exports,"getFirestore",(()=>mg)),e(r.exports,"ensureFirestoreConfigured",(()=>pg)),e(r.exports,"enableIndexedDbPersistence",(()=>wg)),e(r.exports,"enableMultiTabIndexedDbPersistence",(()=>vg)),e(r.exports,"clearIndexedDbPersistence",(()=>_g)),e(r.exports,"waitForPendingWrites",(()=>Ig)),e(r.exports,"enableNetwork",(()=>Eg)),e(r.exports,"disableNetwork",(()=>Tg)),e(r.exports,"terminate",(()=>Sg)),e(r.exports,"loadBundle",(()=>xg)),e(r.exports,"namedQuery",(()=>Cg)),e(r.exports,"AggregateField",(()=>Ag)),e(r.exports,"AggregateQuerySnapshot",(()=>Ng)),e(r.exports,"Bytes",(()=>kg)),e(r.exports,"FieldPath",(()=>Rg)),e(r.exports,"documentId",(()=>Mg)),e(r.exports,"FieldValue",(()=>Lg)),e(r.exports,"GeoPoint",(()=>Og)),e(r.exports,"QueryConstraint",(()=>fm)),e(r.exports,"query",(()=>gm)),e(r.exports,"QueryCompositeFilterConstraint",(()=>ym)),e(r.exports,"QueryFieldFilterConstraint",(()=>mm)),e(r.exports,"where",(()=>pm)),e(r.exports,"or",(()=>wm)),e(r.exports,"and",(()=>vm)),e(r.exports,"QueryOrderByConstraint",(()=>bm)),e(r.exports,"orderBy",(()=>_m)),e(r.exports,"QueryLimitConstraint",(()=>Im)),e(r.exports,"limit",(()=>Em)),e(r.exports,"limitToLast",(()=>Tm)),e(r.exports,"QueryStartAtConstraint",(()=>Sm)),e(r.exports,"startAt",(()=>xm)),e(r.exports,"startAfter",(()=>Cm)),e(r.exports,"QueryEndAtConstraint",(()=>Dm)),e(r.exports,"endBefore",(()=>Am)),e(r.exports,"endAt",(()=>Nm)),e(r.exports,"AbstractUserDataWriter",(()=>Pm)),e(r.exports,"sum",(()=>qm)),e(r.exports,"average",(()=>Bm)),e(r.exports,"count",(()=>Um)),e(r.exports,"aggregateFieldEqual",(()=>zm)),e(r.exports,"aggregateQuerySnapshotEqual",(()=>Gm)),e(r.exports,"SnapshotMetadata",(()=>jm)),e(r.exports,"DocumentSnapshot",(()=>Km)),e(r.exports,"QueryDocumentSnapshot",(()=>$m)),e(r.exports,"QuerySnapshot",(()=>Qm)),e(r.exports,"snapshotEqual",(()=>Wm)),e(r.exports,"getDoc",(()=>Ym)),e(r.exports,"getDocFromCache",(()=>Jm)),e(r.exports,"getDocFromServer",(()=>Zm)),e(r.exports,"getDocs",(()=>tp)),e(r.exports,"getDocsFromCache",(()=>ep)),e(r.exports,"getDocsFromServer",(()=>np)),e(r.exports,"setDoc",(()=>rp)),e(r.exports,"executeWrite",(()=>cp)),e(r.exports,"updateDoc",(()=>sp)),e(r.exports,"deleteDoc",(()=>ip)),e(r.exports,"addDoc",(()=>op)),e(r.exports,"onSnapshot",(()=>ap)),e(r.exports,"onSnapshotsInSync",(()=>up)),e(r.exports,"getCountFromServer",(()=>hp)),e(r.exports,"getAggregateFromServer",(()=>dp)),e(r.exports,"persistentSingleTabManager",(()=>Ep)),e(r.exports,"memoryEagerGarbageCollector",(()=>yp)),e(r.exports,"memoryLruGarbageCollector",(()=>wp)),e(r.exports,"memoryLocalCache",(()=>vp)),e(r.exports,"persistentLocalCache",(()=>bp)),e(r.exports,"persistentMultipleTabManager",(()=>Tp)),e(r.exports,"WriteBatch",(()=>xp)),e(r.exports,"Transaction",(()=>Dp)),e(r.exports,"runTransaction",(()=>Ap)),e(r.exports,"deleteField",(()=>Np)),e(r.exports,"serverTimestamp",(()=>kp)),e(r.exports,"arrayUnion",(()=>Rp)),e(r.exports,"arrayRemove",(()=>Mp)),e(r.exports,"increment",(()=>Lp)),e(r.exports,"writeBatch",(()=>Op)),e(r.exports,"setIndexConfiguration",(()=>Pp)),e(r.exports,"PersistentCacheIndexManager",(()=>Vp)),e(r.exports,"getPersistentCacheIndexManager",(()=>qp)),e(r.exports,"enablePersistentCacheIndexAutoCreation",(()=>Bp)),e(r.exports,"disablePersistentCacheIndexAutoCreation",(()=>Up)),e(r.exports,"deleteAllPersistentCacheIndexes",(()=>zp)),e(r.exports,"_TestingHooks",(()=>Kp));var i=n("8WRsO"),o=n("fnbc9");const a=function(t){const e=[];let n=0;for(let r=0;r>6|192,e[n++]=63&s|128):55296==(64512&s)&&r+1>18|240,e[n++]=s>>12&63|128,e[n++]=s>>6&63|128,e[n++]=63&s|128):(e[n++]=s>>12|224,e[n++]=s>>6&63|128,e[n++]=63&s|128)}return e},u={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let e=0;e>2,l=(3&s)<<4|o>>4;let h=(15&o)<<2|u>>6,d=63&u;a||(d=64,i||(h=64)),r.push(n[c],n[l],n[h],n[d])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(a(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){const e=[];let n=0,r=0;for(;n191&&s<224){const i=t[n++];e[r++]=String.fromCharCode((31&s)<<6|63&i)}else if(s>239&&s<365){const i=((7&s)<<18|(63&t[n++])<<12|(63&t[n++])<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(i>>10)),e[r++]=String.fromCharCode(56320+(1023&i))}else{const i=t[n++],o=t[n++];e[r++]=String.fromCharCode((15&s)<<12|(63&i)<<6|63&o)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let e=0;e>4;if(r.push(u),64!==o){const t=i<<4&240|o>>2;if(r.push(t),64!==a){const t=o<<6&192|a;r.push(t)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};class c extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const l=function(t){return function(t){const e=a(t);return u.encodeByteArray(e,!0)}(t).replace(/\./g,"")},h=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t)return t;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if(void 0===o||void 0===o.env)return})()||(()=>{if("undefined"==typeof document)return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const e=t&&function(t){try{return u.decodeString(t,!0)}catch(t){console.error("base64Decode failed: ",t)}return null}(t[1]);return e&&JSON.parse(e)})()}catch(t){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`)}};function d(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function f(){return!function(){var e;const n=null===(e=h())||void 0===e?void 0:e.forceEnvironment;if("node"===n)return!0;if("browser"===n)return!1;try{return"[object process]"===Object.prototype.toString.call(t.process)}catch(t){return!1}}()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class g extends Error{constructor(t,e,n){super(e),this.code=t,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,g.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(t,e,n){this.service=t,this.serviceName=e,this.errors=n}create(t,...e){const n=e[0]||{},r=`${this.service}/${t}`,s=this.errors[t],i=s?function(t,e){return t.replace(p,((t,n)=>{const r=e[n];return null!=r?String(r):`<${n}?>`}))}(s,n):"Error",o=`${this.serviceName}: ${i} (${r}).`;return new g(r,o,n)}}const p=/\{\$([^}]+)}/g;function y(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const s of n){if(!r.includes(s))return!1;const n=t[s],i=e[s];if(w(n)&&w(i)){if(!y(n,i))return!1}else if(n!==i)return!1}for(const t of r)if(!n.includes(t))return!1;return!0}function w(t){return null!==t&&"object"==typeof t}function v(t){return t&&t._delegate?t._delegate:t}class b{constructor(t,e,n){this.name=t,this.instanceFactory=e,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(t){return this.instantiationMode=t,this}setMultipleInstances(t){return this.multipleInstances=t,this}setServiceProps(t){return this.serviceProps=t,this}setInstanceCreatedCallback(t){return this.onInstanceCreated=t,this}}var _,I;(I=_||(_={}))[I.DEBUG=0]="DEBUG",I[I.VERBOSE=1]="VERBOSE",I[I.INFO=2]="INFO",I[I.WARN=3]="WARN",I[I.ERROR=4]="ERROR",I[I.SILENT=5]="SILENT";const E={debug:_.DEBUG,verbose:_.VERBOSE,info:_.INFO,warn:_.WARN,error:_.ERROR,silent:_.SILENT},T=_.INFO,S={[_.DEBUG]:"log",[_.VERBOSE]:"log",[_.INFO]:"info",[_.WARN]:"warn",[_.ERROR]:"error"},x=(t,e,...n)=>{if(e{};N.addEventListener("test",t,e),N.removeEventListener("test",t,e)}catch(t){}return t}();function j(t){return/^[\s\xa0]*$/.test(t)}function K(){var t=N.navigator;return t&&(t=t.userAgent)?t:""}function $(t){return-1!=K().indexOf(t)}function Q(t){return Q[" "](t),t}Q[" "]=function(){};var H,W,Y,X=$("Opera"),J=$("Trident")||$("MSIE"),Z=$("Edge"),tt=Z||J,et=$("Gecko")&&!(-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge"))&&!($("Trident")||$("MSIE"))&&!$("Edge"),nt=-1!=K().toLowerCase().indexOf("webkit")&&!$("Edge");function rt(){var t=N.document;return t?t.documentMode:void 0}t:{var st="",it=(W=K(),et?/rv:([^\);]+)(\)|;)/.exec(W):Z?/Edge\/([\d\.]+)/.exec(W):J?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(W):nt?/WebKit\/(\S+)/.exec(W):X?/(?:Version)[ \/]?(\S+)/.exec(W):void 0);if(it&&(st=it?it[1]:""),J){var ot=rt();if(null!=ot&&ot>parseFloat(st)){H=String(ot);break t}}H=st}N.document&&J?Y=rt()||parseInt(H,10)||void 0:Y=void 0;var at=Y;function ut(t,e){if(z.call(this,t?t.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,t){var n=this.type=t.type,r=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:null;if(this.target=t.target||t.srcElement,this.g=e,e=t.relatedTarget){if(et){t:{try{Q(e.nodeName);var s=!0;break t}catch(t){}s=!1}s||(e=null)}}else"mouseover"==n?e=t.fromElement:"mouseout"==n&&(e=t.toElement);this.relatedTarget=e,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==t.clientX?t.clientX:t.pageX,this.clientY=void 0!==t.clientY?t.clientY:t.pageY,this.screenX=t.screenX||0,this.screenY=t.screenY||0),this.button=t.button,this.key=t.key||"",this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.pointerId=t.pointerId||0,this.pointerType="string"==typeof t.pointerType?t.pointerType:ct[t.pointerType]||"",this.state=t.state,this.i=t,t.defaultPrevented&&ut.$.h.call(this)}}F(ut,z);var ct={2:"touch",3:"pen",4:"mouse"};ut.prototype.h=function(){ut.$.h.call(this);var t=this.i;t.preventDefault?t.preventDefault():t.returnValue=!1};var lt="closure_listenable_"+(1e6*Math.random()|0),ht=0;function dt(t,e,n,r,s){this.listener=t,this.proxy=null,this.src=e,this.type=n,this.capture=!!r,this.la=s,this.key=++ht,this.fa=this.ia=!1}function ft(t){t.fa=!0,t.listener=null,t.proxy=null,t.src=null,t.la=null}function gt(t,e,n){for(const r in t)e.call(n,t[r],r,t)}function mt(t){const e={};for(const n in t)e[n]=t[n];return e}const pt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function yt(t,e){let n,r;for(let e=1;e>>0);function Rt(t){return"function"==typeof t?t:(t[kt]||(t[kt]=function(e){return t.handleEvent(e)}),t[kt])}function Mt(){V.call(this),this.i=new wt(this),this.S=this,this.J=null}function Lt(t,e){var n,r=t.J;if(r)for(n=[];r;r=r.J)n.push(r);if(t=t.S,r=e.type||e,"string"==typeof e)e=new z(e,t);else if(e instanceof z)e.target=e.target||t;else{var s=e;yt(e=new z(r,t),s)}if(s=!0,n)for(var i=n.length-1;0<=i;i--){var o=e.g=n[i];s=Ot(o,r,!0,e)&&s}if(s=Ot(o=e.g=t,r,!0,e)&&s,s=Ot(o,r,!1,e)&&s,n)for(i=0;inew qt),(t=>t.reset()));class qt{constructor(){this.next=this.g=this.h=null}set(t,e){this.h=t,this.g=e,this.next=null}reset(){this.next=this.g=this.h=null}}function Bt(t){var e=1;t=t.split(":");const n=[];for(;0{throw t}),0)}let zt,Gt=!1,jt=new class{constructor(){this.h=this.g=null}add(t,e){const n=Vt.get();n.set(t,e),this.h?this.h.next=n:this.g=n,this.h=n}},Kt=()=>{const t=N.Promise.resolve(void 0);zt=()=>{t.then($t)}};var $t=()=>{for(var t;t=Ft();){try{t.h.call(t.g)}catch(t){Ut(t)}var e=Vt;e.j(t),100>e.h&&(e.h++,t.next=e.g,e.g=t)}Gt=!1};function Qt(t,e){Mt.call(this),this.h=t||1,this.g=e||N,this.j=O(this.qb,this),this.l=Date.now()}function Ht(t){t.ga=!1,t.T&&(t.g.clearTimeout(t.T),t.T=null)}function Wt(t,e,n){if("function"==typeof t)n&&(t=O(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=O(t.handleEvent,t)}return 2147483647{t.g=null,t.i&&(t.i=!1,Yt(t))}),t.j);const e=t.h;t.h=null,t.m.apply(null,e)}F(Qt,Mt),(C=Qt.prototype).ga=!1,C.T=null,C.qb=function(){if(this.ga){var t=Date.now()-this.l;0r.length)){var s=r[1];if(Array.isArray(s)&&!(1>s.length)){var i=s[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(var o=1;oe.length?Ce:(e=e.slice(r,r+n),t.o=r+n,e))}function Me(t){t.Y=Date.now()+t.P,Le(t,t.P)}function Le(t,e){if(null!=t.C)throw Error("WatchDog timer not null");t.C=de(O(t.lb,t),e)}function Oe(t){t.C&&(N.clearTimeout(t.C),t.C=null)}function Pe(t){0==t.l.H||t.J||tr(t.l,t)}function Fe(t){Oe(t);var e=t.M;e&&"function"==typeof e.sa&&e.sa(),t.M=null,Ht(t.V),ee(t.U),t.g&&(e=t.g,t.g=null,e.abort(),e.sa())}function Ve(t,e){try{var n=t.l;if(0!=n.H&&(n.g==t||fn(n.i,t)))if(!t.K&&fn(n.i,t)&&3==n.H){try{var r=n.Ja.g.parse(e)}catch(t){r=null}if(Array.isArray(r)&&3==r.length){var s=r;if(0==s[0]){t:if(!n.u){if(n.g){if(!(n.g.G+3e3s[2]&&n.G&&0==n.A&&!n.v&&(n.v=de(O(n.ib,n),6e3));if(1>=dn(n.i)&&n.oa){try{n.oa()}catch(t){}n.oa=void 0}}else nr(n,11)}else if((t.K||n.g==t)&&Zn(n),!j(e))for(s=n.Ja.g.parse(e),e=0;el)&&(3!=l||tt||this.g&&(this.h.h||this.g.ja()||Fn(this.g)))){this.J||4!=l||7==e||ue(),Oe(this);var n=this.g.da();this.ca=n;e:if(Ne(this)){var r=Fn(this.g);t="";var s=r.length,i=4==Pn(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Fe(this),Pe(this);var o="";break e}this.h.i=new N.TextDecoder}for(e=0;ee)throw Error("Bad port number "+e);t.m=e}else t.m=null}function Ke(t,e,n){e instanceof nn?(t.i=e,function(t,e){e&&!t.j&&(rn(t),t.i=null,t.g.forEach((function(t,e){var n=e.toLowerCase();e!=n&&(sn(this,e),an(this,n,t))}),t)),t.j=e}(t.i,t.h)):(n||(e=We(e,tn)),t.i=new nn(e,t.h))}function $e(t,e,n){t.i.set(e,n)}function Qe(t){return $e(t,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),t}function He(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function We(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,Ye),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function Ye(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}Ue.prototype.toString=function(){var t=[],e=this.j;e&&t.push(We(e,Xe,!0),":");var n=this.g;return(n||"file"==e)&&(t.push("//"),(e=this.s)&&t.push(We(e,Xe,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&t.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&t.push("/"),t.push(We(n,"/"==n.charAt(0)?Ze:Je,!0))),(n=this.i.toString())&&t.push("?",n),(n=this.o)&&t.push("#",We(n,en)),t.join("")};var Xe=/[#\/\?@]/g,Je=/[#\?:]/g,Ze=/[#\?]/g,tn=/[#\?@]/g,en=/#/g;function nn(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function rn(t){t.g||(t.g=new Map,t.h=0,t.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n=t.j}function dn(t){return t.h?1:t.g?t.g.size:0}function fn(t,e){return t.h?t.h==e:!!t.g&&t.g.has(e)}function gn(t,e){t.g?t.g.add(e):t.h=e}function mn(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function pn(t){if(null!=t.h)return t.i.concat(t.h.F);if(null!=t.g&&0!==t.g.size){let e=t.i;for(const n of t.g.values())e=e.concat(n.F);return e}return B(t.i)}function yn(){this.g=new class{stringify(t){return N.JSON.stringify(t,void 0)}parse(t){return N.JSON.parse(t,void 0)}}}function wn(t,e,n){const r=n||"";try{qe(t,(function(t,n){let s=t;R(t)&&(s=Pt(t)),e.push(r+n+"="+encodeURIComponent(s))}))}catch(t){throw e.push(r+"type="+encodeURIComponent("_badmap")),t}}function vn(t,e,n,r,s){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,s(r)}catch(t){}}function bn(t){this.l=t.ec||null,this.j=t.ob||!1}function _n(t,e){Mt.call(this),this.F=t,this.u=e,this.m=void 0,this.readyState=In,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}cn.prototype.cancel=function(){if(this.i=pn(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const t of this.g.values())t.cancel();this.g.clear()}},F(bn,me),bn.prototype.g=function(){return new _n(this.l,this.j)},bn.prototype.i=function(t){return function(){return t}}({}),F(_n,Mt);var In=0;function En(t){t.j.read().then(t.Xa.bind(t)).catch(t.ka.bind(t))}function Tn(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Sn(t)}function Sn(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(C=_n.prototype).open=function(t,e){if(this.readyState!=In)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Sn(this)},C.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;const e={headers:this.v,method:this.C,credentials:this.m,cache:void 0};t&&(e.body=t),(this.F||N).fetch(new Request(this.B,e)).then(this.$a.bind(this),this.ka.bind(this))},C.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch((()=>{})),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Tn(this)),this.readyState=In},C.$a=function(t){if(this.g&&(this.l=t,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=t.headers,this.readyState=2,Sn(this)),this.g&&(this.readyState=3,Sn(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ya.bind(this),this.ka.bind(this));else if(void 0!==N.ReadableStream&&"body"in t){if(this.j=t.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;En(this)}else t.text().then(this.Za.bind(this),this.ka.bind(this))},C.Xa=function(t){if(this.g){if(this.u&&t.value)this.response.push(t.value);else if(!this.u){var e=t.value?t.value:new Uint8Array(0);(e=this.A.decode(e,{stream:!t.done}))&&(this.response=this.responseText+=e)}t.done?Tn(this):Sn(this),3==this.readyState&&En(this)}},C.Za=function(t){this.g&&(this.response=this.responseText=t,Tn(this))},C.Ya=function(t){this.g&&(this.response=t,Tn(this))},C.ka=function(){this.g&&Tn(this)},C.setRequestHeader=function(t,e){this.v.append(t,e)},C.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},C.getAllResponseHeaders=function(){if(!this.h)return"";const t=[],e=this.h.entries();for(var n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(_n.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var xn=N.JSON.parse;function Cn(t){Mt.call(this),this.headers=new Map,this.u=t||null,this.h=!1,this.C=this.g=null,this.I="",this.m=0,this.j="",this.l=this.G=this.v=this.F=!1,this.B=0,this.A=null,this.K=Dn,this.L=this.M=!1}F(Cn,Mt);var Dn="",An=/^https?$/i,Nn=["POST","PUT"];function kn(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,Rn(t),Ln(t)}function Rn(t){t.F||(t.F=!0,Lt(t,"complete"),Lt(t,"error"))}function Mn(t){if(t.h&&void 0!==A&&(!t.C[1]||4!=Pn(t)||2!=t.da()))if(t.v&&4==Pn(t))Wt(t.La,0,t);else if(Lt(t,"readystatechange"),4==Pn(t)){t.h=!1;try{const o=t.da();t:switch(o){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var e=!0;break t;default:e=!1}var n;if(!(n=e)){var r;if(r=0===o){var s=String(t.I).match(Be)[1]||null;!s&&N.self&&N.self.location&&(s=N.self.location.protocol.slice(0,-1)),r=!An.test(s?s.toLowerCase():"")}n=r}if(n)Lt(t,"complete"),Lt(t,"success");else{t.m=6;try{var i=2{}:null;t.g=null,t.C=null,e||Lt(t,"ready");try{n.onreadystatechange=r}catch(t){}}}function On(t){t.g&&t.L&&(t.g.ontimeout=null),t.A&&(N.clearTimeout(t.A),t.A=null)}function Pn(t){return t.g?t.g.readyState:0}function Fn(t){try{if(!t.g)return null;if("response"in t.g)return t.g.response;switch(t.K){case Dn:case"text":return t.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in t.g)return t.g.mozResponseArrayBuffer}return null}catch(t){return null}}function Vn(t){let e="";return gt(t,(function(t,n){e+=n,e+=":",e+=t,e+="\r\n"})),e}function qn(t,e,n){t:{for(r in n){var r=!1;break t}r=!0}r||(n=Vn(n),"string"==typeof t?null!=n&&encodeURIComponent(String(n)):$e(t,e,n))}function Bn(t,e,n){return n&&n.internalChannelParams&&n.internalChannelParams[t]||e}function Un(t){this.Ga=0,this.j=[],this.l=new ne,this.pa=this.wa=this.I=this.Y=this.g=this.Da=this.F=this.na=this.o=this.U=this.s=null,this.fb=this.W=0,this.cb=Bn("failFast",!1,t),this.G=this.v=this.u=this.m=this.h=null,this.aa=!0,this.Fa=this.V=-1,this.ba=this.A=this.C=0,this.ab=Bn("baseRetryDelayMs",5e3,t),this.hb=Bn("retryDelaySeedMs",1e4,t),this.eb=Bn("forwardChannelMaxRetries",2,t),this.xa=Bn("forwardChannelRequestTimeoutMs",2e4,t),this.va=t&&t.xmlHttpFactory||void 0,this.Ha=t&&t.useFetchStreams||!1,this.L=void 0,this.J=t&&t.supportsCrossDomainXhr||!1,this.K="",this.i=new cn(t&&t.concurrentRequestLimit),this.Ja=new yn,this.P=t&&t.fastHandshake||!1,this.O=t&&t.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.bb=t&&t.bc||!1,t&&t.Ea&&this.l.Ea(),t&&t.forceLongPolling&&(this.aa=!1),this.ca=!this.P&&this.aa&&t&&t.detectBufferingProxy||!1,this.qa=void 0,t&&t.longPollingTimeout&&0n)e=Math.max(0,s[o].g-100),i=!1;else try{wn(a,t,"req"+n+"_")}catch(t){r&&r(a)}}if(i){r=t.join("&");break t}}}return t=t.j.splice(0,n),e.F=t,r}function Wn(t){if(!t.g&&!t.u){t.ba=1;var e=t.Ma;zt||Kt(),Gt||(zt(),Gt=!0),jt.add(e,t),t.A=0}}function Yn(t){return!(t.g||t.u||3<=t.A||(t.ba++,t.u=de(O(t.Ma,t),er(t,t.A)),t.A++,0))}function Xn(t){null!=t.B&&(N.clearTimeout(t.B),t.B=null)}function Jn(t){t.g=new Ee(t,t.l,"rpc",t.ba),null===t.o&&(t.g.I=t.s),t.g.O=0;var e=ze(t.wa);$e(e,"RID","rpc"),$e(e,"SID",t.K),$e(e,"AID",t.V),$e(e,"CI",t.G?"0":"1"),!t.G&&t.qa&&$e(e,"TO",t.qa),$e(e,"TYPE","xmlhttp"),Qn(t,e),t.o&&t.s&&qn(e,t.o,t.s),t.L&&t.g.setTimeout(t.L);var n=t.g;t=t.pa,n.L=1,n.A=Qe(ze(e)),n.u=null,n.S=!0,Ae(n,t)}function Zn(t){null!=t.v&&(N.clearTimeout(t.v),t.v=null)}function tr(t,e){var n=null;if(t.g==e){Zn(t),Xn(t),t.g=null;var r=2}else{if(!fn(t.i,e))return;n=e.F,mn(t.i,e),r=1}if(0!=t.H)if(e.i)if(1==r){n=e.u?e.u.length:0,e=Date.now()-e.G;var s=t.C;Lt(r=oe(),new he(r,n)),Kn(t)}else Wn(t);else if(3==(s=e.s)||0==s&&0=t.i.j-(t.m?1:0)||(t.m?(t.j=e.F.concat(t.j),0):1==t.H||2==t.H||t.C>=(t.cb?0:t.eb)||(t.m=de(O(t.Na,t,e),er(t,t.C)),t.C++,0)))}(t,e)||2==r&&Yn(t)))switch(n&&0s;++s)r[s]=e.charCodeAt(n++)|e.charCodeAt(n++)<<8|e.charCodeAt(n++)<<16|e.charCodeAt(n++)<<24;else for(s=0;16>s;++s)r[s]=e[n++]|e[n++]<<8|e[n++]<<16|e[n++]<<24;e=t.g[0],n=t.g[1],s=t.g[2];var i=t.g[3],o=e+(i^n&(s^i))+r[0]+3614090360&4294967295;o=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=(n=(s=(i=(e=n+(o<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[1]+3905402710&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[2]+606105819&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[3]+3250441966&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[4]+4118548399&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[5]+1200080426&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[6]+2821735955&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[7]+4249261313&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[8]+1770035416&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[9]+2336552879&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[10]+4294925233&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[11]+2304563134&4294967295)<<22&4294967295|o>>>10))+((o=e+(i^n&(s^i))+r[12]+1804603682&4294967295)<<7&4294967295|o>>>25))+((o=i+(s^e&(n^s))+r[13]+4254626195&4294967295)<<12&4294967295|o>>>20))+((o=s+(n^i&(e^n))+r[14]+2792965006&4294967295)<<17&4294967295|o>>>15))+((o=n+(e^s&(i^e))+r[15]+1236535329&4294967295)<<22&4294967295|o>>>10))+((o=e+(s^i&(n^s))+r[1]+4129170786&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[6]+3225465664&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[11]+643717713&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[0]+3921069994&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[5]+3593408605&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[10]+38016083&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[15]+3634488961&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[4]+3889429448&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[9]+568446438&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[14]+3275163606&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[3]+4107603335&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[8]+1163531501&4294967295)<<20&4294967295|o>>>12))+((o=e+(s^i&(n^s))+r[13]+2850285829&4294967295)<<5&4294967295|o>>>27))+((o=i+(n^s&(e^n))+r[2]+4243563512&4294967295)<<9&4294967295|o>>>23))+((o=s+(e^n&(i^e))+r[7]+1735328473&4294967295)<<14&4294967295|o>>>18))+((o=n+(i^e&(s^i))+r[12]+2368359562&4294967295)<<20&4294967295|o>>>12))+((o=e+(n^s^i)+r[5]+4294588738&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[8]+2272392833&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[11]+1839030562&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[14]+4259657740&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[1]+2763975236&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[4]+1272893353&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[7]+4139469664&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[10]+3200236656&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[13]+681279174&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[0]+3936430074&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[3]+3572445317&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[6]+76029189&4294967295)<<23&4294967295|o>>>9))+((o=e+(n^s^i)+r[9]+3654602809&4294967295)<<4&4294967295|o>>>28))+((o=i+(e^n^s)+r[12]+3873151461&4294967295)<<11&4294967295|o>>>21))+((o=s+(i^e^n)+r[15]+530742520&4294967295)<<16&4294967295|o>>>16))+((o=n+(s^i^e)+r[2]+3299628645&4294967295)<<23&4294967295|o>>>9))+((o=e+(s^(n|~i))+r[0]+4096336452&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[7]+1126891415&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[14]+2878612391&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[5]+4237533241&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[12]+1700485571&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[3]+2399980690&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[10]+4293915773&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[1]+2240044497&4294967295)<<21&4294967295|o>>>11))+((o=e+(s^(n|~i))+r[8]+1873313359&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[15]+4264355552&4294967295)<<10&4294967295|o>>>22))+((o=s+(e^(i|~n))+r[6]+2734768916&4294967295)<<15&4294967295|o>>>17))+((o=n+(i^(s|~e))+r[13]+1309151649&4294967295)<<21&4294967295|o>>>11))+((i=(e=n+((o=e+(s^(n|~i))+r[4]+4149444226&4294967295)<<6&4294967295|o>>>26))+((o=i+(n^(e|~s))+r[11]+3174756917&4294967295)<<10&4294967295|o>>>22))^((s=i+((o=s+(e^(i|~n))+r[2]+718787259&4294967295)<<15&4294967295|o>>>17))|~e))+r[9]+3951481745&4294967295,t.g[0]=t.g[0]+e&4294967295,t.g[1]=t.g[1]+(s+(o<<21&4294967295|o>>>11))&4294967295,t.g[2]=t.g[2]+s&4294967295,t.g[3]=t.g[3]+i&4294967295}function gr(t,e){this.h=e;for(var n=[],r=!0,s=t.length-1;0<=s;s--){var i=0|t[s];r&&i==e||(n[s]=i,r=!1)}this.g=n}(C=Cn.prototype).Oa=function(t){this.M=t},C.ha=function(t,e,n,r){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.I+"; newUri="+t);e=e?e.toUpperCase():"GET",this.I=t,this.j="",this.m=0,this.F=!1,this.h=!0,this.g=this.u?this.u.g():we.g(),this.C=this.u?pe(this.u):pe(we),this.g.onreadystatechange=O(this.La,this);try{this.G=!0,this.g.open(e,String(t),!0),this.G=!1}catch(t){return void kn(this,t)}if(t=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var s in r)n.set(s,r[s]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));for(const t of r.keys())n.set(t,r.get(t))}r=Array.from(n.keys()).find((t=>"content-type"==t.toLowerCase())),s=N.FormData&&t instanceof N.FormData,!(0<=q(Nn,e))||r||s||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[t,e]of n)this.g.setRequestHeader(t,e);this.K&&(this.g.responseType=this.K),"withCredentials"in this.g&&this.g.withCredentials!==this.M&&(this.g.withCredentials=this.M);try{On(this),0=this.S)){var t=2*this.S;this.l.info("BP detection timer enabled: "+t),this.B=de(O(this.jb,this),t)}},C.jb=function(){this.B&&(this.B=null,this.l.info("BP detection timeout reached."),this.l.info("Buffering proxy detected and switch to long-polling!"),this.G=!1,this.M=!0,le(10),Gn(this),Jn(this))},C.ib=function(){null!=this.v&&(this.v=null,Gn(this),Yn(this),le(19))},C.pb=function(t){t?(this.l.info("Successfully pinged google.com"),le(2)):(this.l.info("Failed to ping google.com"),le(1))},C.isActive=function(){return!!this.h&&this.h.isActive(this)},(C=or.prototype).Ba=function(){},C.Aa=function(){},C.za=function(){},C.ya=function(){},C.isActive=function(){return!0},C.Va=function(){},ar.prototype.g=function(t,e){return new ur(t,e)},F(ur,Mt),ur.prototype.m=function(){this.g.h=this.j,this.A&&(this.g.J=!0);var t=this.g,e=this.l,n=this.h||void 0;le(0),t.Y=e,t.na=n||{},t.G=t.aa,t.I=sr(t,null,t.Y),Kn(t)},ur.prototype.close=function(){zn(this.g)},ur.prototype.u=function(t){var e=this.g;if("string"==typeof t){var n={};n.__data__=t,t=n}else this.v&&((n={}).__data__=Pt(t),t=n);e.j.push(new class{constructor(t,e){this.g=t,this.map=e}}(e.fb++,t)),3==e.H&&Kn(e)},ur.prototype.N=function(){this.g.h=null,delete this.j,zn(this.g),delete this.g,ur.$.N.call(this)},F(cr,be),F(lr,_e),F(hr,or),hr.prototype.Ba=function(){Lt(this.g,"a")},hr.prototype.Aa=function(t){Lt(this.g,new cr(t))},hr.prototype.za=function(t){Lt(this.g,new lr)},hr.prototype.ya=function(){Lt(this.g,"b")},F(dr,(function(){this.blockSize=-1})),dr.prototype.reset=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.i=this.h=0},dr.prototype.j=function(t,e){void 0===e&&(e=t.length);for(var n=e-this.blockSize,r=this.m,s=this.h,i=0;ithis.h?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var e=1;ee;++e)for(var r=0;32>r;r+=8)t[n++]=this.g[e]>>>r&255;return t};var mr={};function pr(t){return-128<=t&&128>t?function(t,e){var n=mr;return Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=e(t)}(t,(function(t){return new gr([0|t],0>t?-1:0)})):new gr([0|t],0>t?-1:0)}function yr(t){if(isNaN(t)||!isFinite(t))return vr;if(0>t)return Tr(yr(-t));for(var e=[],n=1,r=0;t>=n;r++)e[r]=t/n|0,n*=wr;return new gr(e,0)}var wr=4294967296,vr=pr(0),br=pr(1),_r=pr(16777216);function Ir(t){if(0!=t.h)return!1;for(var e=0;e>>16,t[e]&=65535,e++}function Cr(t,e){this.g=t,this.h=e}function Dr(t,e){if(Ir(e))throw Error("division by zero");if(Ir(t))return new Cr(vr,vr);if(Er(t))return e=Dr(Tr(t),e),new Cr(Tr(e.g),Tr(e.h));if(Er(e))return e=Dr(t,Tr(e)),new Cr(Tr(e.g),e.h);if(30=r.X(t);)n=Ar(n),r=Ar(r);var s=Nr(n,1),i=Nr(r,1);for(r=Nr(r,2),n=Nr(n,2);!Ir(r);){var o=i.add(r);0>=o.X(t)&&(s=s.add(n),i=o),r=Nr(r,1),n=Nr(n,1)}return e=Sr(t,s.R(e)),new Cr(s,e)}for(s=vr;0<=t.X(e);){for(n=Math.max(1,Math.floor(t.ea()/e.ea())),r=48>=(r=Math.ceil(Math.log(n)/Math.LN2))?1:Math.pow(2,r-48),o=(i=yr(n)).R(e);Er(o)||0>>31;return new gr(n,t.h)}function Nr(t,e){var n=e>>5;e%=32;for(var r=t.g.length-n,s=[],i=0;i>>e|t.D(i+n+1)<<32-e:t.D(i+n);return new gr(s,t.h)}(C=gr.prototype).ea=function(){if(Er(this))return-Tr(this).ea();for(var t=0,e=1,n=0;n(t=t||10)||36>>0).toString(t);if(Ir(n=s))return i+r;for(;6>i.length;)i="0"+i;r=i+r}},C.D=function(t){return 0>t?0:t>>16)+(this.D(s)>>>16)+(t.D(s)>>>16);r=o>>>16,i&=65535,o&=65535,n[s]=o<<16|i}return new gr(n,-2147483648&n[n.length-1]?-1:0)},C.R=function(t){if(Ir(this)||Ir(t))return vr;if(Er(this))return Er(t)?Tr(this).R(Tr(t)):Tr(Tr(this).R(t));if(Er(t))return Tr(this.R(Tr(t)));if(0>this.X(_r)&&0>t.X(_r))return yr(this.ea()*t.ea());for(var e=this.g.length+t.g.length,n=[],r=0;r<2*e;r++)n[r]=0;for(r=0;r>>16,o=65535&this.D(r),a=t.D(s)>>>16,u=65535&t.D(s);n[2*r+2*s]+=o*u,xr(n,2*r+2*s),n[2*r+2*s+1]+=i*u,xr(n,2*r+2*s+1),n[2*r+2*s+1]+=o*a,xr(n,2*r+2*s+1),n[2*r+2*s+2]+=i*a,xr(n,2*r+2*s+2)}for(r=0;r(n=n||10)||36o?(o=yr(Math.pow(n,o)),s=s.R(o).add(yr(a))):s=(s=s.R(r)).add(yr(a))}return s};var kr=fe,Rr=ge,Mr=se,Lr=ye,Or=Cn,Pr=dr,Fr=gr;const Vr="@firebase/firestore";class qr{constructor(t){this.uid=t}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(t){return t.uid===this.uid}}qr.UNAUTHENTICATED=new qr(null),qr.GOOGLE_CREDENTIALS=new qr("google-credentials-uid"),qr.FIRST_PARTY=new qr("first-party-uid"),qr.MOCK_USER=new qr("mock-user");let Br="10.8.0";const Ur=new class{constructor(t){this.name=t,this._logLevel=T,this._logHandler=x,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in _))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?E[t]:t}get logHandler(){return this._logHandler}set logHandler(t){if("function"!=typeof t)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=t}get userLogHandler(){return this._userLogHandler}set userLogHandler(t){this._userLogHandler=t}debug(...t){this._userLogHandler&&this._userLogHandler(this,_.DEBUG,...t),this._logHandler(this,_.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,_.VERBOSE,...t),this._logHandler(this,_.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,_.INFO,...t),this._logHandler(this,_.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,_.WARN,...t),this._logHandler(this,_.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,_.ERROR,...t),this._logHandler(this,_.ERROR,...t)}}("@firebase/firestore");function zr(){return Ur.logLevel}function Gr(t){Ur.setLogLevel(t)}function jr(t,...e){if(Ur.logLevel<=_.DEBUG){const n=e.map(Qr);Ur.debug(`Firestore (${Br}): ${t}`,...n)}}function Kr(t,...e){if(Ur.logLevel<=_.ERROR){const n=e.map(Qr);Ur.error(`Firestore (${Br}): ${t}`,...n)}}function $r(t,...e){if(Ur.logLevel<=_.WARN){const n=e.map(Qr);Ur.warn(`Firestore (${Br}): ${t}`,...n)}}function Qr(t){if("string"==typeof t)return t;try{return function(t){return JSON.stringify(t)}(t)}catch(e){return t}}function Hr(t="Unexpected state"){const e=`FIRESTORE (${Br}) INTERNAL ASSERTION FAILED: `+t;throw Kr(e),new Error(e)}function Wr(t,e){t||Hr()}function Yr(t,e){t||Hr()}function Xr(t,e){return t}const Jr={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class Zr extends g{constructor(t,e){super(t,e),this.code=t,this.message=e,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class ts{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}class es{constructor(t,e){this.user=e,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${t}`)}}class ns{getToken(){return Promise.resolve(null)}invalidateToken(){}start(t,e){t.enqueueRetryable((()=>e(qr.UNAUTHENTICATED)))}shutdown(){}}class rs{constructor(t){this.token=t,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(t,e){this.changeListener=e,t.enqueueRetryable((()=>e(this.token.user)))}shutdown(){this.changeListener=null}}class ss{constructor(t){this.t=t,this.currentUser=qr.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,e){let n=this.i;const r=t=>this.i!==n?(n=this.i,e(t)):Promise.resolve();let s=new ts;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new ts,t.enqueueRetryable((()=>r(this.currentUser)))};const i=()=>{const e=s;t.enqueueRetryable((async()=>{await e.promise,await r(this.currentUser)}))},o=t=>{jr("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=t,this.auth.addAuthTokenListener(this.o),i()};this.t.onInit((t=>o(t))),setTimeout((()=>{if(!this.auth){const t=this.t.getImmediate({optional:!0});t?o(t):(jr("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new ts)}}),0),i()}getToken(){const t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then((e=>this.i!==t?(jr("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(Wr("string"==typeof e.accessToken),new es(e.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.auth.removeAuthTokenListener(this.o)}u(){const t=this.auth&&this.auth.getUid();return Wr(null===t||"string"==typeof t),new qr(t)}}class is{constructor(t,e,n){this.l=t,this.h=e,this.P=n,this.type="FirstParty",this.user=qr.FIRST_PARTY,this.I=new Map}T(){return this.P?this.P():null}get headers(){this.I.set("X-Goog-AuthUser",this.l);const t=this.T();return t&&this.I.set("Authorization",t),this.h&&this.I.set("X-Goog-Iam-Authorization-Token",this.h),this.I}}class os{constructor(t,e,n){this.l=t,this.h=e,this.P=n}getToken(){return Promise.resolve(new is(this.l,this.h,this.P))}start(t,e){t.enqueueRetryable((()=>e(qr.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class as{constructor(t){this.value=t,this.type="AppCheck",this.headers=new Map,t&&t.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class us{constructor(t){this.A=t,this.forceRefresh=!1,this.appCheck=null,this.R=null}start(t,e){const n=t=>{null!=t.error&&jr("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${t.error.message}`);const n=t.token!==this.R;return this.R=t.token,jr("FirebaseAppCheckTokenProvider",`Received ${n?"new":"existing"} token.`),n?e(t.token):Promise.resolve()};this.o=e=>{t.enqueueRetryable((()=>n(e)))};const r=t=>{jr("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=t,this.appCheck.addTokenListener(this.o)};this.A.onInit((t=>r(t))),setTimeout((()=>{if(!this.appCheck){const t=this.A.getImmediate({optional:!0});t?r(t):jr("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){const t=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(t).then((t=>t?(Wr("string"==typeof t.token),this.R=t.token,new as(t.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.appCheck.removeTokenListener(this.o)}}class cs{getToken(){return Promise.resolve(new as(""))}invalidateToken(){}start(t,e){}shutdown(){}}function ls(t){const e="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(n);else for(let e=0;ee?1:0}function fs(t,e,n){return t.length===e.length&&t.every(((t,r)=>n(t,e[r])))}function gs(t){return t+"\0"}class ms{constructor(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new Zr(Jr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}static now(){return ms.fromMillis(Date.now())}static fromDate(t){return ms.fromMillis(t.getTime())}static fromMillis(t){const e=Math.floor(t/1e3),n=Math.floor(1e6*(t-1e3*e));return new ms(e,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(t){return this.seconds===t.seconds?ds(this.nanoseconds,t.nanoseconds):ds(this.seconds,t.seconds)}isEqual(t){return t.seconds===this.seconds&&t.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const t=this.seconds- -62135596800;return String(t).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class ps{constructor(t){this.timestamp=t}static fromTimestamp(t){return new ps(t)}static min(){return new ps(new ms(0,0))}static max(){return new ps(new ms(253402300799,999999999))}compareTo(t){return this.timestamp._compareTo(t.timestamp)}isEqual(t){return this.timestamp.isEqual(t.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class ys{constructor(t,e,n){void 0===e?e=0:e>t.length&&Hr(),void 0===n?n=t.length-e:n>t.length-e&&Hr(),this.segments=t,this.offset=e,this.len=n}get length(){return this.len}isEqual(t){return 0===ys.comparator(this,t)}child(t){const e=this.segments.slice(this.offset,this.limit());return t instanceof ys?t.forEach((t=>{e.push(t)})):e.push(t),this.construct(e)}limit(){return this.offset+this.length}popFirst(t){return t=void 0===t?1:t,this.construct(this.segments,this.offset+t,this.length-t)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(t){return this.segments[this.offset+t]}isEmpty(){return 0===this.length}isPrefixOf(t){if(t.lengths)return 1}return t.lengthe.length?1:0}}class ws extends ys{construct(t,e,n){return new ws(t,e,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...t){const e=[];for(const n of t){if(n.indexOf("//")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);e.push(...n.split("/").filter((t=>t.length>0)))}return new ws(e)}static emptyPath(){return new ws([])}}const vs=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class bs extends ys{construct(t,e,n){return new bs(t,e,n)}static isValidIdentifier(t){return vs.test(t)}canonicalString(){return this.toArray().map((t=>(t=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),bs.isValidIdentifier(t)||(t="`"+t+"`"),t))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new bs(["__name__"])}static fromServerFormat(t){const e=[];let n="",r=0;const s=()=>{if(0===n.length)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(n),n=""};let i=!1;for(;r=2&&this.path.get(this.path.length-2)===t}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(t){return null!==t&&0===ws.comparator(this.path,t.path)}toString(){return this.path.toString()}static comparator(t,e){return ws.comparator(t.path,e.path)}static isDocumentKey(t){return t.length%2==0}static fromSegments(t){return new _s(new ws(t.slice()))}}class Is{constructor(t,e,n,r){this.indexId=t,this.collectionGroup=e,this.fields=n,this.indexState=r}}function Es(t){return t.fields.find((t=>2===t.kind))}function Ts(t){return t.fields.filter((t=>2!==t.kind))}function Ss(t,e){let n=ds(t.collectionGroup,e.collectionGroup);if(0!==n)return n;for(let r=0;rt()))}}async function Os(t){if(t.code!==Jr.FAILED_PRECONDITION||t.message!==Ms)throw t;jr("LocalStore","Unexpectedly lost primary lease")}class Ps{constructor(t){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,t((t=>{this.isDone=!0,this.result=t,this.nextCallback&&this.nextCallback(t)}),(t=>{this.isDone=!0,this.error=t,this.catchCallback&&this.catchCallback(t)}))}catch(t){return this.next(void 0,t)}next(t,e){return this.callbackAttached&&Hr(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(e,this.error):this.wrapSuccess(t,this.result):new Ps(((n,r)=>{this.nextCallback=e=>{this.wrapSuccess(t,e).next(n,r)},this.catchCallback=t=>{this.wrapFailure(e,t).next(n,r)}}))}toPromise(){return new Promise(((t,e)=>{this.next(t,e)}))}wrapUserFunction(t){try{const e=t();return e instanceof Ps?e:Ps.resolve(e)}catch(t){return Ps.reject(t)}}wrapSuccess(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.resolve(e)}wrapFailure(t,e){return t?this.wrapUserFunction((()=>t(e))):Ps.reject(e)}static resolve(t){return new Ps(((e,n)=>{e(t)}))}static reject(t){return new Ps(((e,n)=>{n(t)}))}static waitFor(t){return new Ps(((e,n)=>{let r=0,s=0,i=!1;t.forEach((t=>{++r,t.next((()=>{++s,i&&s===r&&e()}),(t=>n(t)))})),i=!0,s===r&&e()}))}static or(t){let e=Ps.resolve(!1);for(const n of t)e=e.next((t=>t?Ps.resolve(t):n()));return e}static forEach(t,e){const n=[];return t.forEach(((t,r)=>{n.push(e.call(this,t,r))})),this.waitFor(n)}static mapArray(t,e){return new Ps(((n,r)=>{const s=t.length,i=new Array(s);let o=0;for(let a=0;a{i[u]=t,++o,o===s&&n(i)}),(t=>r(t)))}}))}static doWhile(t,e){return new Ps(((n,r)=>{const s=()=>{!0===t()?e().next((()=>{s()}),r):n()};s()}))}}class Fs{constructor(t,e){this.action=t,this.transaction=e,this.aborted=!1,this.V=new ts,this.transaction.oncomplete=()=>{this.V.resolve()},this.transaction.onabort=()=>{e.error?this.V.reject(new Bs(t,e.error)):this.V.resolve()},this.transaction.onerror=e=>{const n=Ks(e.target.error);this.V.reject(new Bs(t,n))}}static open(t,e,n,r){try{return new Fs(e,t.transaction(r,n))}catch(t){throw new Bs(e,t)}}get m(){return this.V.promise}abort(t){t&&this.V.reject(t),this.aborted||(jr("SimpleDb","Aborting transaction:",t?t.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}g(){const t=this.transaction;this.aborted||"function"!=typeof t.commit||t.commit()}store(t){const e=this.transaction.objectStore(t);return new zs(e)}}class Vs{constructor(t,e,n){this.name=t,this.version=e,this.p=n,12.2===Vs.S(d())&&Kr("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}static delete(t){return jr("SimpleDb","Removing database:",t),Gs(window.indexedDB.deleteDatabase(t)).toPromise()}static D(){if(!function(){try{return"object"==typeof indexedDB}catch(t){return!1}}())return!1;if(Vs.C())return!0;const t=d(),e=Vs.S(t),n=00||t.indexOf("Trident/")>0||t.indexOf("Edge/")>0||n||s)}static C(){var t;return void 0!==o&&"YES"===(null===(t=o.__PRIVATE_env)||void 0===t?void 0:t.F)}static M(t,e){return t.store(e)}static S(t){const e=t.match(/i(?:phone|pad|pod) os ([\d_]+)/i),n=e?e[1].split("_").slice(0,2).join("."):"-1";return Number(n)}static v(t){const e=t.match(/Android ([\d.]+)/i),n=e?e[1].split(".").slice(0,2).join("."):"-1";return Number(n)}async O(t){return this.db||(jr("SimpleDb","Opening database:",this.name),this.db=await new Promise(((e,n)=>{const r=indexedDB.open(this.name,this.version);r.onsuccess=t=>{const n=t.target.result;e(n)},r.onblocked=()=>{n(new Bs(t,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},r.onerror=e=>{const r=e.target.error;"VersionError"===r.name?n(new Zr(Jr.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===r.name?n(new Zr(Jr.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+r)):n(new Bs(t,r))},r.onupgradeneeded=t=>{jr("SimpleDb",'Database "'+this.name+'" requires upgrade from version:',t.oldVersion);const e=t.target.result;this.p.N(e,r.transaction,t.oldVersion,this.version).next((()=>{jr("SimpleDb","Database upgrade to version "+this.version+" complete")}))}}))),this.B&&(this.db.onversionchange=t=>this.B(t)),this.db}L(t){this.B=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(t,e,n,r){const s="readonly"===e;let i=0;for(;;){++i;try{this.db=await this.O(t);const e=Fs.open(this.db,t,s?"readonly":"readwrite",n),i=r(e).next((t=>(e.g(),t))).catch((t=>(e.abort(t),Ps.reject(t)))).toPromise();return i.catch((()=>{})),await e.m,i}catch(t){const e=t,n="FirebaseError"!==e.name&&i<3;if(jr("SimpleDb","Transaction failed with error:",e.message,"Retrying:",n),this.close(),!n)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}class qs{constructor(t){this.k=t,this.q=!1,this.K=null}get isDone(){return this.q}get $(){return this.K}set cursor(t){this.k=t}done(){this.q=!0}U(t){this.K=t}delete(){return Gs(this.k.delete())}}class Bs extends Zr{constructor(t,e){super(Jr.UNAVAILABLE,`IndexedDB transaction '${t}' failed: ${e}`),this.name="IndexedDbTransactionError"}}function Us(t){return"IndexedDbTransactionError"===t.name}class zs{constructor(t){this.store=t}put(t,e){let n;return void 0!==e?(jr("SimpleDb","PUT",this.store.name,t,e),n=this.store.put(e,t)):(jr("SimpleDb","PUT",this.store.name,"",t),n=this.store.put(t)),Gs(n)}add(t){return jr("SimpleDb","ADD",this.store.name,t,t),Gs(this.store.add(t))}get(t){return Gs(this.store.get(t)).next((e=>(void 0===e&&(e=null),jr("SimpleDb","GET",this.store.name,t,e),e)))}delete(t){return jr("SimpleDb","DELETE",this.store.name,t),Gs(this.store.delete(t))}count(){return jr("SimpleDb","COUNT",this.store.name),Gs(this.store.count())}W(t,e){const n=this.options(t,e),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){const t=r.getAll(n.range);return new Ps(((e,n)=>{t.onerror=t=>{n(t.target.error)},t.onsuccess=t=>{e(t.target.result)}}))}{const t=this.cursor(n),e=[];return this.G(t,((t,n)=>{e.push(n)})).next((()=>e))}}j(t,e){const n=this.store.getAll(t,null===e?void 0:e);return new Ps(((t,e)=>{n.onerror=t=>{e(t.target.error)},n.onsuccess=e=>{t(e.target.result)}}))}H(t,e){jr("SimpleDb","DELETE ALL",this.store.name);const n=this.options(t,e);n.J=!1;const r=this.cursor(n);return this.G(r,((t,e,n)=>n.delete()))}Y(t,e){let n;e?n=t:(n={},e=t);const r=this.cursor(n);return this.G(r,e)}Z(t){const e=this.cursor({});return new Ps(((n,r)=>{e.onerror=t=>{const e=Ks(t.target.error);r(e)},e.onsuccess=e=>{const r=e.target.result;r?t(r.primaryKey,r.value).next((t=>{t?r.continue():n()})):n()}}))}G(t,e){const n=[];return new Ps(((r,s)=>{t.onerror=t=>{s(t.target.error)},t.onsuccess=t=>{const s=t.target.result;if(!s)return void r();const i=new qs(s),o=e(s.primaryKey,s.value,i);if(o instanceof Ps){const t=o.catch((t=>(i.done(),Ps.reject(t))));n.push(t)}i.isDone?r():null===i.$?s.continue():s.continue(i.$)}})).next((()=>Ps.waitFor(n)))}options(t,e){let n;return void 0!==t&&("string"==typeof t?n=t:e=t),{index:n,range:e}}cursor(t){let e="next";if(t.reverse&&(e="prev"),t.index){const n=this.store.index(t.index);return t.J?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)}}function Gs(t){return new Ps(((e,n)=>{t.onsuccess=t=>{const n=t.target.result;e(n)},t.onerror=t=>{const e=Ks(t.target.error);n(e)}}))}let js=!1;function Ks(t){const e=Vs.S(d());if(e>=12.2&&e<13){const e="An internal error was encountered in the Indexed Database server";if(t.message.indexOf(e)>=0){const t=new Zr("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${e}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return js||(js=!0,setTimeout((()=>{throw t}),0)),t}}return t}class $s{constructor(t,e){this.asyncQueue=t,this.X=e,this.task=null}start(){this.ee(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}ee(t){jr("IndexBackfiller",`Scheduled in ${t}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",t,(async()=>{this.task=null;try{jr("IndexBackfiller",`Documents written: ${await this.X.te()}`)}catch(t){Us(t)?jr("IndexBackfiller","Ignoring IndexedDB error during index backfill: ",t):await Os(t)}await this.ee(6e4)}))}}class Qs{constructor(t,e){this.localStore=t,this.persistence=e}async te(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",(e=>this.ne(e,t)))}ne(t,e){const n=new Set;let r=e,s=!0;return Ps.doWhile((()=>!0===s&&r>0),(()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(t).next((e=>{if(null!==e&&!n.has(e))return jr("IndexBackfiller",`Processing collection: ${e}`),this.re(t,e,r).next((t=>{r-=t,n.add(e)}));s=!1})))).next((()=>e-r))}re(t,e,n){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(t,e).next((r=>this.localStore.localDocuments.getNextDocuments(t,e,r,n).next((n=>{const s=n.changes;return this.localStore.indexManager.updateIndexEntries(t,s).next((()=>this.ie(r,n))).next((n=>(jr("IndexBackfiller",`Updating offset: ${n}`),this.localStore.indexManager.updateCollectionGroup(t,e,n)))).next((()=>s.size))}))))}ie(t,e){let n=t;return e.changes.forEach(((t,e)=>{const r=Ns(e);Rs(r,n)>0&&(n=r)})),new ks(n.readTime,n.documentKey,Math.max(e.batchId,t.largestBatchId))}}class Hs{constructor(t,e){this.previousValue=t,e&&(e.sequenceNumberHandler=t=>this.se(t),this.oe=t=>e.writeSequenceNumber(t))}se(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue}next(){const t=++this.previousValue;return this.oe&&this.oe(t),t}}function Ws(t){return null==t}function Ys(t){return 0===t&&1/t==-1/0}function Xs(t){return"number"==typeof t&&Number.isInteger(t)&&!Ys(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER}function Js(t){let e="";for(let n=0;n0&&(e=ti(e)),e=Zs(t.get(n),e);return ti(e)}function Zs(t,e){let n=e;const r=t.length;for(let e=0;e=2),2===e)return Wr(""===t.charAt(0)&&""===t.charAt(1)),ws.emptyPath();const n=e-2,r=[];let s="";for(let i=0;in)&&Hr(),t.charAt(e+1)){case"":const n=t.substring(i,e);let o;0===s.length?o=n:(s+=n,o=s,s=""),r.push(o);break;case"":s+=t.substring(i,e),s+="\0";break;case"":s+=t.substring(i,e+1);break;default:Hr()}i=e+2}return new ws(r)}Hs._e=-1;const ni=["userId","batchId"];function ri(t,e){return[t,Js(e)]}function si(t,e,n){return[t,Js(e),n]}const ii={},oi=["prefixPath","collectionGroup","readTime","documentId"],ai=["prefixPath","collectionGroup","documentId"],ui=["collectionGroup","readTime","prefixPath","documentId"],ci=["canonicalId","targetId"],li=["targetId","path"],hi=["path","targetId"],di=["collectionId","parent"],fi=["indexId","uid"],gi=["uid","sequenceNumber"],mi=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],pi=["indexId","uid","orderedDocumentKey"],yi=["userId","collectionPath","documentId"],wi=["userId","collectionPath","largestBatchId"],vi=["userId","collectionGroup","largestBatchId"],bi=["mutationQueues","mutations","documentMutations","remoteDocuments","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries"],_i=[...bi,"documentOverlays"],Ii=["mutationQueues","mutations","documentMutations","remoteDocumentsV14","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries","documentOverlays"],Ei=Ii,Ti=[...Ei,"indexConfiguration","indexState","indexEntries"];class Si extends Ls{constructor(t,e){super(),this.ae=t,this.currentSequenceNumber=e}}function xi(t,e){const n=Xr(t);return Vs.M(n.ae,e)}function Ci(t){let e=0;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}function Di(t,e){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function Ai(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}class Ni{constructor(t,e){this.comparator=t,this.root=e||Ri.EMPTY}insert(t,e){return new Ni(this.comparator,this.root.insert(t,e,this.comparator).copy(null,null,Ri.BLACK,null,null))}remove(t){return new Ni(this.comparator,this.root.remove(t,this.comparator).copy(null,null,Ri.BLACK,null,null))}get(t){let e=this.root;for(;!e.isEmpty();){const n=this.comparator(t,e.key);if(0===n)return e.value;n<0?e=e.left:n>0&&(e=e.right)}return null}indexOf(t){let e=0,n=this.root;for(;!n.isEmpty();){const r=this.comparator(t,n.key);if(0===r)return e+n.left.size;r<0?n=n.left:(e+=n.left.size+1,n=n.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(t){return this.root.inorderTraversal(t)}forEach(t){this.inorderTraversal(((e,n)=>(t(e,n),!1)))}toString(){const t=[];return this.inorderTraversal(((e,n)=>(t.push(`${e}:${n}`),!1))),`{${t.join(", ")}}`}reverseTraversal(t){return this.root.reverseTraversal(t)}getIterator(){return new ki(this.root,null,this.comparator,!1)}getIteratorFrom(t){return new ki(this.root,t,this.comparator,!1)}getReverseIterator(){return new ki(this.root,null,this.comparator,!0)}getReverseIteratorFrom(t){return new ki(this.root,t,this.comparator,!0)}}class ki{constructor(t,e,n,r){this.isReverse=r,this.nodeStack=[];let s=1;for(;!t.isEmpty();)if(s=e?n(t.key,e):1,e&&r&&(s*=-1),s<0)t=this.isReverse?t.left:t.right;else{if(0===s){this.nodeStack.push(t);break}this.nodeStack.push(t),t=this.isReverse?t.right:t.left}}getNext(){let t=this.nodeStack.pop();const e={key:t.key,value:t.value};if(this.isReverse)for(t=t.left;!t.isEmpty();)this.nodeStack.push(t),t=t.right;else for(t=t.right;!t.isEmpty();)this.nodeStack.push(t),t=t.left;return e}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const t=this.nodeStack[this.nodeStack.length-1];return{key:t.key,value:t.value}}}class Ri{constructor(t,e,n,r,s){this.key=t,this.value=e,this.color=null!=n?n:Ri.RED,this.left=null!=r?r:Ri.EMPTY,this.right=null!=s?s:Ri.EMPTY,this.size=this.left.size+1+this.right.size}copy(t,e,n,r,s){return new Ri(null!=t?t:this.key,null!=e?e:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=s?s:this.right)}isEmpty(){return!1}inorderTraversal(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)}reverseTraversal(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(t,e,n){let r=this;const s=n(t,r.key);return r=s<0?r.copy(null,null,null,r.left.insert(t,e,n),null):0===s?r.copy(null,e,null,null,null):r.copy(null,null,null,null,r.right.insert(t,e,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return Ri.EMPTY;let t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),t=t.copy(null,null,null,t.left.removeMin(),null),t.fixUp()}remove(t,e){let n,r=this;if(e(t,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(t,e),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===e(t,r.key)){if(r.right.isEmpty())return Ri.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(t,e))}return r.fixUp()}isRed(){return this.color}fixUp(){let t=this;return t.right.isRed()&&!t.left.isRed()&&(t=t.rotateLeft()),t.left.isRed()&&t.left.left.isRed()&&(t=t.rotateRight()),t.left.isRed()&&t.right.isRed()&&(t=t.colorFlip()),t}moveRedLeft(){let t=this.colorFlip();return t.right.left.isRed()&&(t=t.copy(null,null,null,null,t.right.rotateRight()),t=t.rotateLeft(),t=t.colorFlip()),t}moveRedRight(){let t=this.colorFlip();return t.left.left.isRed()&&(t=t.rotateRight(),t=t.colorFlip()),t}rotateLeft(){const t=this.copy(null,null,Ri.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)}rotateRight(){const t=this.copy(null,null,Ri.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)}colorFlip(){const t=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,e)}checkMaxDepth(){const t=this.check();return Math.pow(2,t)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw Hr();if(this.right.isRed())throw Hr();const t=this.left.check();if(t!==this.right.check())throw Hr();return t+(this.isRed()?0:1)}}Ri.EMPTY=null,Ri.RED=!0,Ri.BLACK=!1,Ri.EMPTY=new class{constructor(){this.size=0}get key(){throw Hr()}get value(){throw Hr()}get color(){throw Hr()}get left(){throw Hr()}get right(){throw Hr()}copy(t,e,n,r,s){return this}insert(t,e,n){return new Ri(t,e)}remove(t,e){return this}isEmpty(){return!0}inorderTraversal(t){return!1}reverseTraversal(t){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class Mi{constructor(t){this.comparator=t,this.data=new Ni(this.comparator)}has(t){return null!==this.data.get(t)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(t){return this.data.indexOf(t)}forEach(t){this.data.inorderTraversal(((e,n)=>(t(e),!1)))}forEachInRange(t,e){const n=this.data.getIteratorFrom(t[0]);for(;n.hasNext();){const r=n.getNext();if(this.comparator(r.key,t[1])>=0)return;e(r.key)}}forEachWhile(t,e){let n;for(n=void 0!==e?this.data.getIteratorFrom(e):this.data.getIterator();n.hasNext();)if(!t(n.getNext().key))return}firstAfterOrEqual(t){const e=this.data.getIteratorFrom(t);return e.hasNext()?e.getNext().key:null}getIterator(){return new Li(this.data.getIterator())}getIteratorFrom(t){return new Li(this.data.getIteratorFrom(t))}add(t){return this.copy(this.data.remove(t).insert(t,!0))}delete(t){return this.has(t)?this.copy(this.data.remove(t)):this}isEmpty(){return this.data.isEmpty()}unionWith(t){let e=this;return e.size{e=e.add(t)})),e}isEqual(t){if(!(t instanceof Mi))return!1;if(this.size!==t.size)return!1;const e=this.data.getIterator(),n=t.data.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(0!==this.comparator(t,r))return!1}return!0}toArray(){const t=[];return this.forEach((e=>{t.push(e)})),t}toString(){const t=[];return this.forEach((e=>t.push(e))),"SortedSet("+t.toString()+")"}copy(t){const e=new Mi(this.comparator);return e.data=t,e}}class Li{constructor(t){this.iter=t}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Oi(t){return t.hasNext()?t.getNext():void 0}class Pi{constructor(t){this.fields=t,t.sort(bs.comparator)}static empty(){return new Pi([])}unionWith(t){let e=new Mi(bs.comparator);for(const t of this.fields)e=e.add(t);for(const n of t)e=e.add(n);return new Pi(e.toArray())}covers(t){for(const e of this.fields)if(e.isPrefixOf(t))return!0;return!1}isEqual(t){return fs(this.fields,t.fields,((t,e)=>t.isEqual(e)))}}class Fi extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}function Vi(){return"undefined"!=typeof atob}class qi{constructor(t){this.binaryString=t}static fromBase64String(t){const e=function(t){try{return atob(t)}catch(t){throw"undefined"!=typeof DOMException&&t instanceof DOMException?new Fi("Invalid base64 string: "+t):t}}(t);return new qi(e)}static fromUint8Array(t){const e=function(t){let e="";for(let n=0;ntJi(t,e)))}function to(t,e){if(t===e)return 0;const n=Xi(t),r=Xi(e);if(n!==r)return ds(n,r);switch(n){case 0:case 9007199254740991:return 0;case 1:return ds(t.booleanValue,e.booleanValue);case 2:return function(t,e){const n=zi(t.integerValue||t.doubleValue),r=zi(e.integerValue||e.doubleValue);return nr?1:n===r?0:isNaN(n)?isNaN(r)?0:-1:1}(t,e);case 3:return eo(t.timestampValue,e.timestampValue);case 4:return eo($i(t),$i(e));case 5:return ds(t.stringValue,e.stringValue);case 6:return function(t,e){const n=Gi(t),r=Gi(e);return n.compareTo(r)}(t.bytesValue,e.bytesValue);case 7:return function(t,e){const n=t.split("/"),r=e.split("/");for(let t=0;tt+so(e)),0)}(t.arrayValue);case 10:return function(t){let e=0;return Di(t.fields,((t,n)=>{e+=t.length+so(n)})),e}(t.mapValue);default:throw Hr()}}function io(t,e){return{referenceValue:`projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`}}function oo(t){return!!t&&"integerValue"in t}function ao(t){return!!t&&"arrayValue"in t}function uo(t){return!!t&&"nullValue"in t}function co(t){return!!t&&"doubleValue"in t&&isNaN(Number(t.doubleValue))}function lo(t){return!!t&&"mapValue"in t}function ho(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){const e={mapValue:{fields:{}}};return Di(t.mapValue.fields,((t,n)=>e.mapValue.fields[t]=ho(n))),e}if(t.arrayValue){const e={arrayValue:{values:[]}};for(let n=0;n<(t.arrayValue.values||[]).length;++n)e.arrayValue.values[n]=ho(t.arrayValue.values[n]);return e}return Object.assign({},t)}function fo(t){return"__max__"===(((t.mapValue||{}).fields||{}).__type__||{}).stringValue}function go(t){return"nullValue"in t?Yi:"booleanValue"in t?{booleanValue:!1}:"integerValue"in t||"doubleValue"in t?{doubleValue:NaN}:"timestampValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in t?{stringValue:""}:"bytesValue"in t?{bytesValue:""}:"referenceValue"in t?io(Hi.empty(),_s.empty()):"geoPointValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in t?{arrayValue:{}}:"mapValue"in t?{mapValue:{}}:Hr()}function mo(t){return"nullValue"in t?{booleanValue:!1}:"booleanValue"in t?{doubleValue:NaN}:"integerValue"in t||"doubleValue"in t?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in t?{stringValue:""}:"stringValue"in t?{bytesValue:""}:"bytesValue"in t?io(Hi.empty(),_s.empty()):"referenceValue"in t?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in t?{arrayValue:{}}:"arrayValue"in t?{mapValue:{}}:"mapValue"in t?Wi:Hr()}function po(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?-1:!t.inclusive&&e.inclusive?1:0}function yo(t,e){const n=to(t.value,e.value);return 0!==n?n:t.inclusive&&!e.inclusive?1:!t.inclusive&&e.inclusive?-1:0}class wo{constructor(t){this.value=t}static empty(){return new wo({mapValue:{}})}field(t){if(t.isEmpty())return this.value;{let e=this.value;for(let n=0;n{if(!e.isImmediateParentOf(s)){const t=this.getFieldsMap(e);this.applyChanges(t,n,r),n={},r=[],e=s.popLast()}t?n[s.lastSegment()]=ho(t):r.push(s.lastSegment())}));const s=this.getFieldsMap(e);this.applyChanges(s,n,r)}delete(t){const e=this.field(t.popLast());lo(e)&&e.mapValue.fields&&delete e.mapValue.fields[t.lastSegment()]}isEqual(t){return Ji(this.value,t.value)}getFieldsMap(t){let e=this.value;e.mapValue.fields||(e.mapValue={fields:{}});for(let n=0;nt[e]=n));for(const e of n)delete t[e]}clone(){return new wo(ho(this.value))}}function vo(t){const e=[];return Di(t.fields,((t,n)=>{const r=new bs([t]);if(lo(n)){const t=vo(n.mapValue).fields;if(0===t.length)e.push(r);else for(const n of t)e.push(r.child(n))}else e.push(r)})),new Pi(e)}class bo{constructor(t,e,n,r,s,i,o){this.key=t,this.documentType=e,this.version=n,this.readTime=r,this.createTime=s,this.data=i,this.documentState=o}static newInvalidDocument(t){return new bo(t,0,ps.min(),ps.min(),ps.min(),wo.empty(),0)}static newFoundDocument(t,e,n,r){return new bo(t,1,e,ps.min(),n,r,0)}static newNoDocument(t,e){return new bo(t,2,e,ps.min(),ps.min(),wo.empty(),0)}static newUnknownDocument(t,e){return new bo(t,3,e,ps.min(),ps.min(),wo.empty(),2)}convertToFoundDocument(t,e){return!this.createTime.isEqual(ps.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=t),this.version=t,this.documentType=1,this.data=e,this.documentState=0,this}convertToNoDocument(t){return this.version=t,this.documentType=2,this.data=wo.empty(),this.documentState=0,this}convertToUnknownDocument(t){return this.version=t,this.documentType=3,this.data=wo.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=ps.min(),this}setReadTime(t){return this.readTime=t,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(t){return t instanceof bo&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.documentType===t.documentType&&this.documentState===t.documentState&&this.data.isEqual(t.data)}mutableCopy(){return new bo(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class _o{constructor(t,e){this.position=t,this.inclusive=e}}function Io(t,e,n){let r=0;for(let s=0;s":return t>0;case">=":return t>=0;default:return Hr()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class Do extends xo{constructor(t,e){super(),this.filters=t,this.op=e,this.ue=null}static create(t,e){return new Do(t,e)}matches(t){return Ao(this)?void 0===this.filters.find((e=>!e.matches(t))):void 0!==this.filters.find((e=>e.matches(t)))}getFlattenedFilters(){return null!==this.ue||(this.ue=this.filters.reduce(((t,e)=>t.concat(e.getFlattenedFilters())),[])),this.ue}getFilters(){return Object.assign([],this.filters)}}function Ao(t){return"and"===t.op}function No(t){return"or"===t.op}function ko(t){return Ro(t)&&Ao(t)}function Ro(t){for(const e of t.filters)if(e instanceof Do)return!1;return!0}function Mo(t){if(t instanceof Co)return t.field.canonicalString()+t.op.toString()+no(t.value);if(ko(t))return t.filters.map((t=>Mo(t))).join(",");{const e=t.filters.map((t=>Mo(t))).join(",");return`${t.op}(${e})`}}function Lo(t,e){return t instanceof Co?function(t,e){return e instanceof Co&&t.op===e.op&&t.field.isEqual(e.field)&&Ji(t.value,e.value)}(t,e):t instanceof Do?function(t,e){return e instanceof Do&&t.op===e.op&&t.filters.length===e.filters.length&&t.filters.reduce(((t,n,r)=>t&&Lo(n,e.filters[r])),!0)}(t,e):void Hr()}function Oo(t,e){const n=t.filters.concat(e);return Do.create(n,t.op)}function Po(t){return t instanceof Co?function(t){return`${t.field.canonicalString()} ${t.op} ${no(t.value)}`}(t):t instanceof Do?function(t){return t.op.toString()+" {"+t.getFilters().map(Po).join(" ,")+"}"}(t):"Filter"}class Fo extends Co{constructor(t,e,n){super(t,e,n),this.key=_s.fromName(n.referenceValue)}matches(t){const e=_s.comparator(t.key,this.key);return this.matchesComparison(e)}}class Vo extends Co{constructor(t,e){super(t,"in",e),this.keys=Bo("in",e)}matches(t){return this.keys.some((e=>e.isEqual(t.key)))}}class qo extends Co{constructor(t,e){super(t,"not-in",e),this.keys=Bo("not-in",e)}matches(t){return!this.keys.some((e=>e.isEqual(t.key)))}}function Bo(t,e){var n;return((null===(n=e.arrayValue)||void 0===n?void 0:n.values)||[]).map((t=>_s.fromName(t.referenceValue)))}class Uo extends Co{constructor(t,e){super(t,"array-contains",e)}matches(t){const e=t.data.field(this.field);return ao(e)&&Zi(e.arrayValue,this.value)}}class zo extends Co{constructor(t,e){super(t,"in",e)}matches(t){const e=t.data.field(this.field);return null!==e&&Zi(this.value.arrayValue,e)}}class Go extends Co{constructor(t,e){super(t,"not-in",e)}matches(t){if(Zi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const e=t.data.field(this.field);return null!==e&&!Zi(this.value.arrayValue,e)}}class jo extends Co{constructor(t,e){super(t,"array-contains-any",e)}matches(t){const e=t.data.field(this.field);return!(!ao(e)||!e.arrayValue.values)&&e.arrayValue.values.some((t=>Zi(this.value.arrayValue,t)))}}class Ko{constructor(t,e=null,n=[],r=[],s=null,i=null,o=null){this.path=t,this.collectionGroup=e,this.orderBy=n,this.filters=r,this.limit=s,this.startAt=i,this.endAt=o,this.ce=null}}function $o(t,e=null,n=[],r=[],s=null,i=null,o=null){return new Ko(t,e,n,r,s,i,o)}function Qo(t){const e=Xr(t);if(null===e.ce){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map((t=>Mo(t))).join(","),t+="|ob:",t+=e.orderBy.map((t=>function(t){return t.field.canonicalString()+t.dir}(t))).join(","),Ws(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map((t=>no(t))).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map((t=>no(t))).join(",")),e.ce=t}return e.ce}function Ho(t,e){if(t.limit!==e.limit)return!1;if(t.orderBy.length!==e.orderBy.length)return!1;for(let n=0;nt instanceof Co&&t.field.isEqual(e)))}function Xo(t,e,n){let r=Yi,s=!0;for(const n of Yo(t,e)){let t=Yi,e=!0;switch(n.op){case"<":case"<=":t=go(n.value);break;case"==":case"in":case">=":t=n.value;break;case">":t=n.value,e=!1;break;case"!=":case"not-in":t=Yi}po({value:r,inclusive:s},{value:t,inclusive:e})<0&&(r=t,s=e)}if(null!==n)for(let i=0;i=":case">":t=mo(n.value),e=!1;break;case"==":case"in":case"<=":t=n.value;break;case"<":t=n.value,e=!1;break;case"!=":case"not-in":t=Wi}yo({value:r,inclusive:s},{value:t,inclusive:e})>0&&(r=t,s=e)}if(null!==n)for(let i=0;i0&&(r=t,s=n.inclusive);break}return{value:r,inclusive:s}}class Zo{constructor(t,e=null,n=[],r=[],s=null,i="F",o=null,a=null){this.path=t,this.collectionGroup=e,this.explicitOrderBy=n,this.filters=r,this.limit=s,this.limitType=i,this.startAt=o,this.endAt=a,this.le=null,this.he=null,this.Pe=null,this.startAt,this.endAt}}function ta(t,e,n,r,s,i,o,a){return new Zo(t,e,n,r,s,i,o,a)}function ea(t){return new Zo(t)}function na(t){return 0===t.filters.length&&null===t.limit&&null==t.startAt&&null==t.endAt&&(0===t.explicitOrderBy.length||1===t.explicitOrderBy.length&&t.explicitOrderBy[0].field.isKeyField())}function ra(t){return null!==t.collectionGroup}function sa(t){const e=Xr(t);if(null===e.le){e.le=[];const t=new Set;for(const n of e.explicitOrderBy)e.le.push(n),t.add(n.field.canonicalString());const n=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc",r=function(t){let e=new Mi(bs.comparator);return t.filters.forEach((t=>{t.getFlattenedFilters().forEach((t=>{t.isInequality()&&(e=e.add(t.field))}))})),e}(e);r.forEach((r=>{t.has(r.canonicalString())||r.isKeyField()||e.le.push(new To(r,n))})),t.has(bs.keyField().canonicalString())||e.le.push(new To(bs.keyField(),n))}return e.le}function ia(t){const e=Xr(t);return e.he||(e.he=oa(e,sa(t))),e.he}function oa(t,e){if("F"===t.limitType)return $o(t.path,t.collectionGroup,e,t.filters,t.limit,t.startAt,t.endAt);{e=e.map((t=>{const e="desc"===t.dir?"asc":"desc";return new To(t.field,e)}));const n=t.endAt?new _o(t.endAt.position,t.endAt.inclusive):null,r=t.startAt?new _o(t.startAt.position,t.startAt.inclusive):null;return $o(t.path,t.collectionGroup,e,t.filters,t.limit,n,r)}}function aa(t,e){const n=t.filters.concat([e]);return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),n,t.limit,t.limitType,t.startAt,t.endAt)}function ua(t,e,n){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),e,n,t.startAt,t.endAt)}function ca(t,e){return Ho(ia(t),ia(e))&&t.limitType===e.limitType}function la(t){return`${Qo(ia(t))}|lt:${t.limitType}`}function ha(t){return`Query(target=${function(t){let e=t.path.canonicalString();return null!==t.collectionGroup&&(e+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(e+=`, filters: [${t.filters.map((t=>Po(t))).join(", ")}]`),Ws(t.limit)||(e+=", limit: "+t.limit),t.orderBy.length>0&&(e+=`, orderBy: [${t.orderBy.map((t=>function(t){return`${t.field.canonicalString()} (${t.dir})`}(t))).join(", ")}]`),t.startAt&&(e+=", startAt: ",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map((t=>no(t))).join(",")),t.endAt&&(e+=", endAt: ",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map((t=>no(t))).join(",")),`Target(${e})`}(ia(t))}; limitType=${t.limitType})`}function da(t,e){return e.isFoundDocument()&&function(t,e){const n=e.key.path;return null!==t.collectionGroup?e.key.hasCollectionId(t.collectionGroup)&&t.path.isPrefixOf(n):_s.isDocumentKey(t.path)?t.path.isEqual(n):t.path.isImmediateParentOf(n)}(t,e)&&function(t,e){for(const n of sa(t))if(!n.field.isKeyField()&&null===e.data.field(n.field))return!1;return!0}(t,e)&&function(t,e){for(const n of t.filters)if(!n.matches(e))return!1;return!0}(t,e)&&function(t,e){return!(t.startAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r<=0:r<0}(t.startAt,sa(t),e)||t.endAt&&!function(t,e,n){const r=Io(t,e,n);return t.inclusive?r>=0:r>0}(t.endAt,sa(t),e))}(t,e)}function fa(t){return t.collectionGroup||(t.path.length%2==1?t.path.lastSegment():t.path.get(t.path.length-2))}function ga(t){return(e,n)=>{let r=!1;for(const s of sa(t)){const t=ma(s,e,n);if(0!==t)return t;r=r||s.field.isKeyField()}return 0}}function ma(t,e,n){const r=t.field.isKeyField()?_s.comparator(e.key,n.key):function(t,e,n){const r=e.data.field(t),s=n.data.field(t);return null!==r&&null!==s?to(r,s):Hr()}(t.field,e,n);switch(t.dir){case"asc":return r;case"desc":return-1*r;default:return Hr()}}class pa{constructor(t,e){this.mapKeyFn=t,this.equalsFn=e,this.inner={},this.innerSize=0}get(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(const[e,r]of n)if(this.equalsFn(e,t))return r}has(t){return void 0!==this.get(t)}set(t,e){const n=this.mapKeyFn(t),r=this.inner[n];if(void 0===r)return this.inner[n]=[[t,e]],void this.innerSize++;for(let n=0;n{for(const[e,r]of n)t(e,r)}))}isEmpty(){return Ai(this.inner)}size(){return this.innerSize}}const ya=new Ni(_s.comparator);function wa(){return ya}const va=new Ni(_s.comparator);function ba(...t){let e=va;for(const n of t)e=e.insert(n.key,n);return e}function _a(t){let e=va;return t.forEach(((t,n)=>e=e.insert(t,n.overlayedDocument))),e}function Ia(){return Ta()}function Ea(){return Ta()}function Ta(){return new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}const Sa=new Ni(_s.comparator),xa=new Mi(_s.comparator);function Ca(...t){let e=xa;for(const n of t)e=e.add(n);return e}const Da=new Mi(ds);function Aa(){return Da}function Na(t,e){if(t.useProto3Json){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Ys(e)?"-0":e}}function ka(t){return{integerValue:""+t}}function Ra(t,e){return Xs(e)?ka(e):Na(t,e)}class Ma{constructor(){this._=void 0}}function La(t,e,n){return t instanceof Fa?function(t,e){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:t.seconds,nanos:t.nanoseconds}}}};return e&&ji(e)&&(e=Ki(e)),e&&(n.fields.__previous_value__=e),{mapValue:n}}(n,e):t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):function(t,e){const n=Pa(t,e),r=Ga(n)+Ga(t.Ie);return oo(n)&&oo(t.Ie)?ka(r):Na(t.serializer,r)}(t,e)}function Oa(t,e,n){return t instanceof Va?qa(t,e):t instanceof Ba?Ua(t,e):n}function Pa(t,e){return t instanceof za?function(t){return oo(t)||function(t){return!!t&&"doubleValue"in t}(t)}(e)?e:{integerValue:0}:null}class Fa extends Ma{}class Va extends Ma{constructor(t){super(),this.elements=t}}function qa(t,e){const n=ja(e);for(const e of t.elements)n.some((t=>Ji(t,e)))||n.push(e);return{arrayValue:{values:n}}}class Ba extends Ma{constructor(t){super(),this.elements=t}}function Ua(t,e){let n=ja(e);for(const e of t.elements)n=n.filter((t=>!Ji(t,e)));return{arrayValue:{values:n}}}class za extends Ma{constructor(t,e){super(),this.serializer=t,this.Ie=e}}function Ga(t){return zi(t.integerValue||t.doubleValue)}function ja(t){return ao(t)&&t.arrayValue.values?t.arrayValue.values.slice():[]}class Ka{constructor(t,e){this.field=t,this.transform=e}}class $a{constructor(t,e){this.version=t,this.transformResults=e}}class Qa{constructor(t,e){this.updateTime=t,this.exists=e}static none(){return new Qa}static exists(t){return new Qa(void 0,t)}static updateTime(t){return new Qa(t)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(t){return this.exists===t.exists&&(this.updateTime?!!t.updateTime&&this.updateTime.isEqual(t.updateTime):!t.updateTime)}}function Ha(t,e){return void 0!==t.updateTime?e.isFoundDocument()&&e.version.isEqual(t.updateTime):void 0===t.exists||t.exists===e.isFoundDocument()}class Wa{}function Ya(t,e){if(!t.hasLocalMutations||e&&0===e.fields.length)return null;if(null===e)return t.isNoDocument()?new ou(t.key,Qa.none()):new eu(t.key,t.data,Qa.none());{const n=t.data,r=wo.empty();let s=new Mi(bs.comparator);for(let t of e.fields)if(!s.has(t)){let e=n.field(t);null===e&&t.length>1&&(t=t.popLast(),e=n.field(t)),null===e?r.delete(t):r.set(t,e),s=s.add(t)}return new nu(t.key,r,new Pi(s.toArray()),Qa.none())}}function Xa(t,e,n){t instanceof eu?function(t,e,n){const r=t.value.clone(),s=su(t.fieldTransforms,e,n.transformResults);r.setAll(s),e.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(t,e,n):t instanceof nu?function(t,e,n){if(!Ha(t.precondition,e))return void e.convertToUnknownDocument(n.version);const r=su(t.fieldTransforms,e,n.transformResults),s=e.data;s.setAll(ru(t)),s.setAll(r),e.convertToFoundDocument(n.version,s).setHasCommittedMutations()}(t,e,n):function(t,e,n){e.convertToNoDocument(n.version).setHasCommittedMutations()}(0,e,n)}function Ja(t,e,n,r){return t instanceof eu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=t.value.clone(),i=iu(t.fieldTransforms,r,e);return s.setAll(i),e.convertToFoundDocument(e.version,s).setHasLocalMutations(),null}(t,e,n,r):t instanceof nu?function(t,e,n,r){if(!Ha(t.precondition,e))return n;const s=iu(t.fieldTransforms,r,e),i=e.data;return i.setAll(ru(t)),i.setAll(s),e.convertToFoundDocument(e.version,i).setHasLocalMutations(),null===n?null:n.unionWith(t.fieldMask.fields).unionWith(t.fieldTransforms.map((t=>t.field)))}(t,e,n,r):function(t,e,n){return Ha(t.precondition,e)?(e.convertToNoDocument(e.version).setHasLocalMutations(),null):n}(t,e,n)}function Za(t,e){let n=null;for(const r of t.fieldTransforms){const t=e.data.field(r.field),s=Pa(r.transform,t||null);null!=s&&(null===n&&(n=wo.empty()),n.set(r.field,s))}return n||null}function tu(t,e){return t.type===e.type&&!!t.key.isEqual(e.key)&&!!t.precondition.isEqual(e.precondition)&&!!function(t,e){return void 0===t&&void 0===e||!(!t||!e)&&fs(t,e,((t,e)=>function(t,e){return t.field.isEqual(e.field)&&function(t,e){return t instanceof Va&&e instanceof Va||t instanceof Ba&&e instanceof Ba?fs(t.elements,e.elements,Ji):t instanceof za&&e instanceof za?Ji(t.Ie,e.Ie):t instanceof Fa&&e instanceof Fa}(t.transform,e.transform)}(t,e)))}(t.fieldTransforms,e.fieldTransforms)&&(0===t.type?t.value.isEqual(e.value):1!==t.type||t.data.isEqual(e.data)&&t.fieldMask.isEqual(e.fieldMask))}class eu extends Wa{constructor(t,e,n,r=[]){super(),this.key=t,this.value=e,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class nu extends Wa{constructor(t,e,n,r,s=[]){super(),this.key=t,this.data=e,this.fieldMask=n,this.precondition=r,this.fieldTransforms=s,this.type=1}getFieldMask(){return this.fieldMask}}function ru(t){const e=new Map;return t.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const r=t.data.field(n);e.set(n,r)}})),e}function su(t,e,n){const r=new Map;Wr(t.length===n.length);for(let s=0;s{const s=t.get(r.key),i=s.overlayedDocument;let o=this.applyToLocalView(i,s.mutatedFields);o=e.has(r.key)?null:o;const a=Ya(i,o);null!==a&&n.set(r.key,a),i.isValidDocument()||i.convertToNoDocument(ps.min())})),n}keys(){return this.mutations.reduce(((t,e)=>t.add(e.key)),Ca())}isEqual(t){return this.batchId===t.batchId&&fs(this.mutations,t.mutations,((t,e)=>tu(t,e)))&&fs(this.baseMutations,t.baseMutations,((t,e)=>tu(t,e)))}}class cu{constructor(t,e,n,r){this.batch=t,this.commitVersion=e,this.mutationResults=n,this.docVersions=r}static from(t,e,n){Wr(t.mutations.length===n.length);let r=Sa;const s=t.mutations;for(let t=0;t=8)throw new Eu(`Invalid padding: ${e}`);if(n<0)throw new Eu(`Invalid hash count: ${n}`);if(t.length>0&&0===this.hashCount)throw new Eu(`Invalid hash count: ${n}`);if(0===t.length&&0!==e)throw new Eu(`Invalid padding when bitmap length is 0: ${e}`);this.Te=8*t.length-e,this.Ee=Fr.fromNumber(this.Te)}de(t,e,n){let r=t.add(e.multiply(Fr.fromNumber(n)));return 1===r.compare(vu)&&(r=new Fr([r.getBits(0),r.getBits(1)],0)),r.modulo(this.Ee).toNumber()}Ae(t){return 0!=(this.bitmap[Math.floor(t/8)]&1<i.insert(t))),i}insert(t){if(0===this.Te)return;const e=bu(t),[n,r]=_u(e);for(let t=0;t0&&(this.Se=!0,this.ye=t)}ve(){let t=Ca(),e=Ca(),n=Ca();return this.pe.forEach(((r,s)=>{switch(s){case 0:t=t.add(r);break;case 2:e=e.add(r);break;case 1:n=n.add(r);break;default:Hr()}})),new Su(this.ye,this.we,t,e,n)}Fe(){this.Se=!1,this.pe=Ru()}Me(t,e){this.Se=!0,this.pe=this.pe.insert(t,e)}xe(t){this.Se=!0,this.pe=this.pe.remove(t)}Oe(){this.ge+=1}Ne(){this.ge-=1,Wr(this.ge>=0)}Be(){this.Se=!0,this.we=!0}}class Nu{constructor(t){this.Le=t,this.ke=new Map,this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds)}$e(t){for(const e of t.Ve)t.me&&t.me.isFoundDocument()?this.Ue(e,t.me):this.We(e,t.key,t.me);for(const e of t.removedTargetIds)this.We(e,t.key,t.me)}Ge(t){this.forEachTarget(t,(e=>{const n=this.ze(e);switch(t.state){case 0:this.je(e)&&n.Ce(t.resumeToken);break;case 1:n.Ne(),n.be||n.Fe(),n.Ce(t.resumeToken);break;case 2:n.Ne(),n.be||this.removeTarget(e);break;case 3:this.je(e)&&(n.Be(),n.Ce(t.resumeToken));break;case 4:this.je(e)&&(this.He(e),n.Ce(t.resumeToken));break;default:Hr()}}))}forEachTarget(t,e){t.targetIds.length>0?t.targetIds.forEach(e):this.ke.forEach(((t,n)=>{this.je(n)&&e(n)}))}Je(t){const e=t.targetId,n=t.fe.count,r=this.Ye(e);if(r){const s=r.target;if(Wo(s))if(0===n){const t=new _s(s.path);this.We(e,t,bo.newNoDocument(t,ps.min()))}else Wr(1===n);else{const r=this.Ze(e);if(r!==n){const n=this.Xe(t),s=n?this.et(n,t,r):1;if(0!==s){this.He(e);const t=2===s?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ke=this.Ke.insert(e,t)}null==yu||yu.tt(function(t,e,n,r,s){var i,o,a,u,c,l;const h={localCacheCount:t,existenceFilterCount:e.count,databaseId:n.database,projectId:n.projectId},d=e.unchangedNames;return d&&(h.bloomFilter={applied:0===s,hashCount:null!==(i=null==d?void 0:d.hashCount)&&void 0!==i?i:0,bitmapLength:null!==(u=null===(a=null===(o=null==d?void 0:d.bits)||void 0===o?void 0:o.bitmap)||void 0===a?void 0:a.length)&&void 0!==u?u:0,padding:null!==(l=null===(c=null==d?void 0:d.bits)||void 0===c?void 0:c.padding)&&void 0!==l?l:0,mightContain:t=>{var e;return null!==(e=null==r?void 0:r.mightContain(t))&&void 0!==e&&e}}),h}(r,t.fe,this.Le.nt(),n,s))}}}}Xe(t){const e=t.fe.unchangedNames;if(!e||!e.bits)return null;const{bits:{bitmap:n="",padding:r=0},hashCount:s=0}=e;let i,o;try{i=Gi(n).toUint8Array()}catch(t){if(t instanceof Fi)return $r("Decoding the base64 bloom filter in existence filter failed ("+t.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw t}try{o=new Iu(i,r,s)}catch(t){return $r(t instanceof Eu?"BloomFilter error: ":"Applying bloom filter failed: ",t),null}return 0===o.Te?null:o}et(t,e,n){return e.fe.count===n-this.rt(t,e.targetId)?0:2}rt(t,e){const n=this.Le.getRemoteKeysForTarget(e);let r=0;return n.forEach((n=>{const s=this.Le.nt(),i=`projects/${s.projectId}/databases/${s.database}/documents/${n.path.canonicalString()}`;t.mightContain(i)||(this.We(e,n,null),r++)})),r}it(t){const e=new Map;this.ke.forEach(((n,r)=>{const s=this.Ye(r);if(s){if(n.current&&Wo(s.target)){const e=new _s(s.target.path);null!==this.qe.get(e)||this.st(r,e)||this.We(r,e,bo.newNoDocument(e,t))}n.De&&(e.set(r,n.ve()),n.Fe())}}));let n=Ca();this.Qe.forEach(((t,e)=>{let r=!0;e.forEachWhile((t=>{const e=this.Ye(t);return!e||"TargetPurposeLimboResolution"===e.purpose||(r=!1,!1)})),r&&(n=n.add(t))})),this.qe.forEach(((e,n)=>n.setReadTime(t)));const r=new Tu(t,e,this.Ke,this.qe,n);return this.qe=wa(),this.Qe=ku(),this.Ke=new Ni(ds),r}Ue(t,e){if(!this.je(t))return;const n=this.st(t,e.key)?2:0;this.ze(t).Me(e.key,n),this.qe=this.qe.insert(e.key,e),this.Qe=this.Qe.insert(e.key,this.ot(e.key).add(t))}We(t,e,n){if(!this.je(t))return;const r=this.ze(t);this.st(t,e)?r.Me(e,1):r.xe(e),this.Qe=this.Qe.insert(e,this.ot(e).delete(t)),n&&(this.qe=this.qe.insert(e,n))}removeTarget(t){this.ke.delete(t)}Ze(t){const e=this.ze(t).ve();return this.Le.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size}Oe(t){this.ze(t).Oe()}ze(t){let e=this.ke.get(t);return e||(e=new Au,this.ke.set(t,e)),e}ot(t){let e=this.Qe.get(t);return e||(e=new Mi(ds),this.Qe=this.Qe.insert(t,e)),e}je(t){const e=null!==this.Ye(t);return e||jr("WatchChangeAggregator","Detected inactive target",t),e}Ye(t){const e=this.ke.get(t);return e&&e.be?null:this.Le._t(t)}He(t){this.ke.set(t,new Au),this.Le.getRemoteKeysForTarget(t).forEach((e=>{this.We(t,e,null)}))}st(t,e){return this.Le.getRemoteKeysForTarget(t).has(e)}}function ku(){return new Ni(_s.comparator)}function Ru(){return new Ni(_s.comparator)}const Mu={asc:"ASCENDING",desc:"DESCENDING"},Lu={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},Ou={and:"AND",or:"OR"};class Pu{constructor(t,e){this.databaseId=t,this.useProto3Json=e}}function Fu(t,e){return t.useProto3Json||Ws(e)?e:{value:e}}function Vu(t,e){return t.useProto3Json?`${new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+e.nanoseconds).slice(-9)}Z`:{seconds:""+e.seconds,nanos:e.nanoseconds}}function qu(t,e){return t.useProto3Json?e.toBase64():e.toUint8Array()}function Bu(t,e){return Vu(t,e.toTimestamp())}function Uu(t){return Wr(!!t),ps.fromTimestamp(function(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}(t))}function zu(t,e){return Gu(t,e).canonicalString()}function Gu(t,e){const n=function(t){return new ws(["projects",t.projectId,"databases",t.database])}(t).child("documents");return void 0===e?n:n.child(e)}function ju(t){const e=ws.fromString(t);return Wr(dc(e)),e}function Ku(t,e){return zu(t.databaseId,e.path)}function $u(t,e){const n=ju(e);if(n.get(1)!==t.databaseId.projectId)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+t.databaseId.projectId);if(n.get(3)!==t.databaseId.database)throw new Zr(Jr.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+t.databaseId.database);return new _s(Yu(n))}function Qu(t,e){return zu(t.databaseId,e)}function Hu(t){const e=ju(t);return 4===e.length?ws.emptyPath():Yu(e)}function Wu(t){return new ws(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function Yu(t){return Wr(t.length>4&&"documents"===t.get(4)),t.popFirst(5)}function Xu(t,e,n){return{name:Ku(t,e),fields:n.value.mapValue.fields}}function Ju(t,e,n){const r=$u(t,e.name),s=Uu(e.updateTime),i=e.createTime?Uu(e.createTime):ps.min(),o=new wo({mapValue:{fields:e.fields}}),a=bo.newFoundDocument(r,s,i,o);return n&&a.setHasCommittedMutations(),n?a.setHasCommittedMutations():a}function Zu(t,e){let n;if(e instanceof eu)n={update:Xu(t,e.key,e.value)};else if(e instanceof ou)n={delete:Ku(t,e.key)};else if(e instanceof nu)n={update:Xu(t,e.key,e.data),updateMask:hc(e.fieldMask)};else{if(!(e instanceof au))return Hr();n={verify:Ku(t,e.key)}}return e.fieldTransforms.length>0&&(n.updateTransforms=e.fieldTransforms.map((t=>function(t,e){const n=e.transform;if(n instanceof Fa)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(n instanceof Va)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:n.elements}};if(n instanceof Ba)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:n.elements}};if(n instanceof za)return{fieldPath:e.field.canonicalString(),increment:n.Ie};throw Hr()}(0,t)))),e.precondition.isNone||(n.currentDocument=function(t,e){return void 0!==e.updateTime?{updateTime:Bu(t,e.updateTime)}:void 0!==e.exists?{exists:e.exists}:Hr()}(t,e.precondition)),n}function tc(t,e){const n=e.currentDocument?function(t){return void 0!==t.updateTime?Qa.updateTime(Uu(t.updateTime)):void 0!==t.exists?Qa.exists(t.exists):Qa.none()}(e.currentDocument):Qa.none(),r=e.updateTransforms?e.updateTransforms.map((e=>function(t,e){let n=null;if("setToServerValue"in e)Wr("REQUEST_TIME"===e.setToServerValue),n=new Fa;else if("appendMissingElements"in e){const t=e.appendMissingElements.values||[];n=new Va(t)}else if("removeAllFromArray"in e){const t=e.removeAllFromArray.values||[];n=new Ba(t)}else"increment"in e?n=new za(t,e.increment):Hr();const r=bs.fromServerFormat(e.fieldPath);return new Ka(r,n)}(t,e))):[];if(e.update){e.update.name;const s=$u(t,e.update.name),i=new wo({mapValue:{fields:e.update.fields}});if(e.updateMask){const t=function(t){const e=t.fieldPaths||[];return new Pi(e.map((t=>bs.fromServerFormat(t))))}(e.updateMask);return new nu(s,i,t,n,r)}return new eu(s,i,n,r)}if(e.delete){const r=$u(t,e.delete);return new ou(r,n)}if(e.verify){const r=$u(t,e.verify);return new au(r,n)}return Hr()}function ec(t,e){return{documents:[Qu(t,e.path)]}}function nc(t,e){const n={structuredQuery:{}},r=e.path;let s;null!==e.collectionGroup?(s=r,n.structuredQuery.from=[{collectionId:e.collectionGroup,allDescendants:!0}]):(s=r.popLast(),n.structuredQuery.from=[{collectionId:r.lastSegment()}]),n.parent=Qu(t,s);const i=function(t){if(0!==t.length)return lc(Do.create(t,"and"))}(e.filters);i&&(n.structuredQuery.where=i);const o=function(t){if(0!==t.length)return t.map((t=>function(t){return{field:uc(t.field),direction:ic(t.dir)}}(t)))}(e.orderBy);o&&(n.structuredQuery.orderBy=o);const a=Fu(t,e.limit);return null!==a&&(n.structuredQuery.limit=a),e.startAt&&(n.structuredQuery.startAt=function(t){return{before:t.inclusive,values:t.position}}(e.startAt)),e.endAt&&(n.structuredQuery.endAt=function(t){return{before:!t.inclusive,values:t.position}}(e.endAt)),{ut:n,parent:s}}function rc(t){let e=Hu(t.parent);const n=t.structuredQuery,r=n.from?n.from.length:0;let s=null;if(r>0){Wr(1===r);const t=n.from[0];t.allDescendants?s=t.collectionId:e=e.child(t.collectionId)}let i=[];n.where&&(i=function(t){const e=sc(t);return e instanceof Do&&ko(e)?e.getFilters():[e]}(n.where));let o=[];n.orderBy&&(o=function(t){return t.map((t=>function(t){return new To(cc(t.field),function(t){switch(t){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}(t)))}(n.orderBy));let a=null;n.limit&&(a=function(t){let e;return e="object"==typeof t?t.value:t,Ws(e)?null:e}(n.limit));let u=null;n.startAt&&(u=function(t){const e=!!t.before,n=t.values||[];return new _o(n,e)}(n.startAt));let c=null;return n.endAt&&(c=function(t){const e=!t.before,n=t.values||[];return new _o(n,e)}(n.endAt)),ta(e,s,o,i,a,"F",u,c)}function sc(t){return void 0!==t.unaryFilter?function(t){switch(t.unaryFilter.op){case"IS_NAN":const e=cc(t.unaryFilter.field);return Co.create(e,"==",{doubleValue:NaN});case"IS_NULL":const n=cc(t.unaryFilter.field);return Co.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=cc(t.unaryFilter.field);return Co.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const s=cc(t.unaryFilter.field);return Co.create(s,"!=",{nullValue:"NULL_VALUE"});default:return Hr()}}(t):void 0!==t.fieldFilter?function(t){return Co.create(cc(t.fieldFilter.field),function(t){switch(t){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return Hr()}}(t.fieldFilter.op),t.fieldFilter.value)}(t):void 0!==t.compositeFilter?function(t){return Do.create(t.compositeFilter.filters.map((t=>sc(t))),function(t){switch(t){case"AND":return"and";case"OR":return"or";default:return Hr()}}(t.compositeFilter.op))}(t):Hr()}function ic(t){return Mu[t]}function oc(t){return Lu[t]}function ac(t){return Ou[t]}function uc(t){return{fieldPath:t.canonicalString()}}function cc(t){return bs.fromServerFormat(t.fieldPath)}function lc(t){return t instanceof Co?function(t){if("=="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NULL"}}}else if("!="===t.op){if(co(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NAN"}};if(uo(t.value))return{unaryFilter:{field:uc(t.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:uc(t.field),op:oc(t.op),value:t.value}}}(t):t instanceof Do?function(t){const e=t.getFilters().map((t=>lc(t)));return 1===e.length?e[0]:{compositeFilter:{op:ac(t.op),filters:e}}}(t):Hr()}function hc(t){const e=[];return t.fields.forEach((t=>e.push(t.canonicalString()))),{fieldPaths:e}}function dc(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)}class fc{constructor(t,e,n,r,s=ps.min(),i=ps.min(),o=qi.EMPTY_BYTE_STRING,a=null){this.target=t,this.targetId=e,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=s,this.lastLimboFreeSnapshotVersion=i,this.resumeToken=o,this.expectedCount=a}withSequenceNumber(t){return new fc(this.target,this.targetId,this.purpose,t,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(t,e){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,e,this.lastLimboFreeSnapshotVersion,t,null)}withExpectedCount(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,t)}withLastLimboFreeSnapshotVersion(t){return new fc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,t,this.resumeToken,this.expectedCount)}}class gc{constructor(t){this.ct=t}}function mc(t,e){const n=e.key,r={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:pc(e.readTime),hasCommittedMutations:e.hasCommittedMutations};if(e.isFoundDocument())r.document=function(t,e){return{name:Ku(t,e.key),fields:e.data.value.mapValue.fields,updateTime:Vu(t,e.version.toTimestamp()),createTime:Vu(t,e.createTime.toTimestamp())}}(t.ct,e);else if(e.isNoDocument())r.noDocument={path:n.path.toArray(),readTime:yc(e.version)};else{if(!e.isUnknownDocument())return Hr();r.unknownDocument={path:n.path.toArray(),version:yc(e.version)}}return r}function pc(t){const e=t.toTimestamp();return[e.seconds,e.nanoseconds]}function yc(t){const e=t.toTimestamp();return{seconds:e.seconds,nanoseconds:e.nanoseconds}}function wc(t){const e=new ms(t.seconds,t.nanoseconds);return ps.fromTimestamp(e)}function vc(t,e){const n=(e.baseMutations||[]).map((e=>tc(t.ct,e)));for(let t=0;ttc(t.ct,e))),s=ms.fromMillis(e.localWriteTimeMs);return new uu(e.batchId,s,n,r)}function bc(t){const e=wc(t.readTime),n=void 0!==t.lastLimboFreeSnapshotVersion?wc(t.lastLimboFreeSnapshotVersion):ps.min();let r;return r=function(t){return void 0!==t.documents}(t.query)?function(t){return Wr(1===t.documents.length),ia(ea(Hu(t.documents[0])))}(t.query):function(t){return ia(rc(t))}(t.query),new fc(r,t.targetId,"TargetPurposeListen",t.lastListenSequenceNumber,e,n,qi.fromBase64String(t.resumeToken))}function _c(t,e){const n=yc(e.snapshotVersion),r=yc(e.lastLimboFreeSnapshotVersion);let s;s=Wo(e.target)?ec(t.ct,e.target):nc(t.ct,e.target).ut;const i=e.resumeToken.toBase64();return{targetId:e.targetId,canonicalId:Qo(e.target),readTime:n,resumeToken:i,lastListenSequenceNumber:e.sequenceNumber,lastLimboFreeSnapshotVersion:r,query:s}}function Ic(t){const e=rc({parent:t.parent,structuredQuery:t.structuredQuery});return"LAST"===t.limitType?ua(e,e.limit,"L"):e}function Ec(t,e){return new lu(e.largestBatchId,tc(t.ct,e.overlayMutation))}function Tc(t,e){const n=e.path.lastSegment();return[t,Js(e.path.popLast()),n]}function Sc(t,e,n,r){return{indexId:t,uid:e,sequenceNumber:n,readTime:yc(r.readTime),documentKey:Js(r.documentKey.path),largestBatchId:r.largestBatchId}}class xc{getBundleMetadata(t,e){return Cc(t).get(e).next((t=>{if(t)return function(t){return{id:t.bundleId,createTime:wc(t.createTime),version:t.version}}(t)}))}saveBundleMetadata(t,e){return Cc(t).put(function(t){return{bundleId:t.id,createTime:yc(Uu(t.createTime)),version:t.version}}(e))}getNamedQuery(t,e){return Dc(t).get(e).next((t=>{if(t)return function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:wc(t.readTime)}}(t)}))}saveNamedQuery(t,e){return Dc(t).put(function(t){return{name:t.name,readTime:yc(Uu(t.readTime)),bundledQuery:t.bundledQuery}}(e))}}function Cc(t){return xi(t,"bundles")}function Dc(t){return xi(t,"namedQueries")}class Ac{constructor(t,e){this.serializer=t,this.userId=e}static lt(t,e){const n=e.uid||"";return new Ac(t,n)}getOverlay(t,e){return Nc(t).get(Tc(this.userId,e)).next((t=>t?Ec(this.serializer,t):null))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){const r=[];return n.forEach(((n,s)=>{const i=new lu(e,s);r.push(this.ht(t,i))})),Ps.waitFor(r)}removeOverlaysForBatchId(t,e,n){const r=new Set;e.forEach((t=>r.add(Js(t.getCollectionPath()))));const s=[];return r.forEach((e=>{const r=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);s.push(Nc(t).H("collectionPathOverlayIndex",r))})),Ps.waitFor(s)}getOverlaysForCollection(t,e,n){const r=Ia(),s=Js(e),i=IDBKeyRange.bound([this.userId,s,n],[this.userId,s,Number.POSITIVE_INFINITY],!0);return Nc(t).W("collectionPathOverlayIndex",i).next((t=>{for(const e of t){const t=Ec(this.serializer,e);r.set(t.getKey(),t)}return r}))}getOverlaysForCollectionGroup(t,e,n,r){const s=Ia();let i;const o=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,Number.POSITIVE_INFINITY],!0);return Nc(t).Y({index:"collectionGroupOverlayIndex",range:o},((t,e,n)=>{const o=Ec(this.serializer,e);s.size()s))}ht(t,e){return Nc(t).put(function(t,e,n){const[r,s,i]=Tc(e,n.mutation.key);return{userId:e,collectionPath:s,documentId:i,collectionGroup:n.mutation.key.getCollectionGroup(),largestBatchId:n.largestBatchId,overlayMutation:Zu(t.ct,n.mutation)}}(this.serializer,this.userId,e))}}function Nc(t){return xi(t,"documentOverlays")}class kc{constructor(){}Pt(t,e){this.It(t,e),e.Tt()}It(t,e){if("nullValue"in t)this.Et(e,5);else if("booleanValue"in t)this.Et(e,10),e.dt(t.booleanValue?1:0);else if("integerValue"in t)this.Et(e,15),e.dt(zi(t.integerValue));else if("doubleValue"in t){const n=zi(t.doubleValue);isNaN(n)?this.Et(e,13):(this.Et(e,15),Ys(n)?e.dt(0):e.dt(n))}else if("timestampValue"in t){const n=t.timestampValue;this.Et(e,20),"string"==typeof n?e.At(n):(e.At(`${n.seconds||""}`),e.dt(n.nanos||0))}else if("stringValue"in t)this.Rt(t.stringValue,e),this.Vt(e);else if("bytesValue"in t)this.Et(e,30),e.ft(Gi(t.bytesValue)),this.Vt(e);else if("referenceValue"in t)this.gt(t.referenceValue,e);else if("geoPointValue"in t){const n=t.geoPointValue;this.Et(e,45),e.dt(n.latitude||0),e.dt(n.longitude||0)}else"mapValue"in t?fo(t)?this.Et(e,Number.MAX_SAFE_INTEGER):(this.yt(t.mapValue,e),this.Vt(e)):"arrayValue"in t?(this.wt(t.arrayValue,e),this.Vt(e)):Hr()}Rt(t,e){this.Et(e,25),this.St(t,e)}St(t,e){e.At(t)}yt(t,e){const n=t.fields||{};this.Et(e,55);for(const t of Object.keys(n))this.Rt(t,e),this.It(n[t],e)}wt(t,e){const n=t.values||[];this.Et(e,50);for(const t of n)this.It(t,e)}gt(t,e){this.Et(e,37),_s.fromName(t).path.forEach((t=>{this.Et(e,60),this.St(t,e)}))}Et(t,e){t.dt(e)}Vt(t){t.dt(2)}}function Rc(t){if(0===t)return 8;let e=0;return t>>4==0&&(e+=4,t<<=4),t>>6==0&&(e+=2,t<<=2),t>>7==0&&(e+=1),e}function Mc(t){const e=64-function(t){let e=0;for(let n=0;n<8;++n){const r=Rc(255&t[n]);if(e+=r,8!==r)break}return e}(t);return Math.ceil(e/8)}kc.bt=new kc;class Lc{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Dt(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Ct(n.value),n=e.next();this.vt()}Ft(t){const e=t[Symbol.iterator]();let n=e.next();for(;!n.done;)this.Mt(n.value),n=e.next();this.xt()}Ot(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Ct(t);else if(t<2048)this.Ct(960|t>>>6),this.Ct(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t);else{const t=e.codePointAt(0);this.Ct(240|t>>>18),this.Ct(128|63&t>>>12),this.Ct(128|63&t>>>6),this.Ct(128|63&t)}}this.vt()}Nt(t){for(const e of t){const t=e.charCodeAt(0);if(t<128)this.Mt(t);else if(t<2048)this.Mt(960|t>>>6),this.Mt(128|63&t);else if(e<"\ud800"||"\udbff">>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t);else{const t=e.codePointAt(0);this.Mt(240|t>>>18),this.Mt(128|63&t>>>12),this.Mt(128|63&t>>>6),this.Mt(128|63&t)}}this.xt()}Bt(t){const e=this.Lt(t),n=Mc(e);this.kt(1+n),this.buffer[this.position++]=255&n;for(let t=e.length-n;tbs.comparator(t.field,e.field))),this.collectionId=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment(),this.Zt=t.orderBy,this.Xt=[];for(const e of t.filters){const t=e;t.isInequality()?this.Yt=this.Yt.add(t):this.Xt.push(t)}}get en(){return this.Yt.size>1}tn(t){if(Wr(t.collectionGroup===this.collectionId),this.en)return!1;const e=Es(t);if(void 0!==e&&!this.nn(e))return!1;const n=Ts(t);let r=new Set,s=0,i=0;for(;s0){const t=this.Yt.getIterator().getNext();if(!r.has(t.field.canonicalString())){const e=n[s];if(!this.rn(t,e)||!this.sn(this.Zt[i++],e))return!1}++s}for(;s=this.Zt.length||!this.sn(this.Zt[i++],t))return!1}return!0}on(){if(this.en)return null;let t=new Mi(bs.comparator);const e=[];for(const n of this.Xt)if(!n.field.isKeyField())if("array-contains"===n.op||"array-contains-any"===n.op)e.push(new xs(n.field,2));else{if(t.has(n.field))continue;t=t.add(n.field),e.push(new xs(n.field,0))}for(const n of this.Zt)n.field.isKeyField()||t.has(n.field)||(t=t.add(n.field),e.push(new xs(n.field,"asc"===n.dir?0:1)));return new Is(Is.UNKNOWN_ID,this.collectionId,e,Ds.empty())}nn(t){for(const e of this.Xt)if(this.rn(e,t))return!0;return!1}rn(t,e){if(void 0===t||!t.field.isEqual(e.fieldPath))return!1;const n="array-contains"===t.op||"array-contains-any"===t.op;return 2===e.kind===n}sn(t,e){return!!t.field.isEqual(e.fieldPath)&&(0===e.kind&&"asc"===t.dir||1===e.kind&&"desc"===t.dir)}}function zc(t){var e,n;if(Wr(t instanceof Co||t instanceof Do),t instanceof Co){if(t instanceof zo){const r=(null===(n=null===(e=t.value.arrayValue)||void 0===e?void 0:e.values)||void 0===n?void 0:n.map((e=>Co.create(t.field,"==",e))))||[];return Do.create(r,"or")}return t}const r=t.filters.map((t=>zc(t)));return Do.create(r,t.op)}function Gc(t){if(0===t.getFilters().length)return[];const e=Qc(zc(t));return Wr($c(e)),jc(e)||Kc(e)?[e]:e.getFilters()}function jc(t){return t instanceof Co}function Kc(t){return t instanceof Do&&ko(t)}function $c(t){return jc(t)||Kc(t)||function(t){if(t instanceof Do&&No(t)){for(const e of t.getFilters())if(!jc(e)&&!Kc(e))return!1;return!0}return!1}(t)}function Qc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;if(1===t.filters.length)return Qc(t.filters[0]);const e=t.filters.map((t=>Qc(t)));let n=Do.create(e,t.op);return n=Yc(n),$c(n)?n:(Wr(n instanceof Do),Wr(Ao(n)),Wr(n.filters.length>1),n.filters.reduce(((t,e)=>Hc(t,e))))}function Hc(t,e){let n;return Wr(t instanceof Co||t instanceof Do),Wr(e instanceof Co||e instanceof Do),n=t instanceof Co?e instanceof Co?function(t,e){return Do.create([t,e],"and")}(t,e):Wc(t,e):e instanceof Co?Wc(e,t):function(t,e){if(Wr(t.filters.length>0&&e.filters.length>0),Ao(t)&&Ao(e))return Oo(t,e.getFilters());const n=No(t)?t:e,r=No(t)?e:t,s=n.filters.map((t=>Hc(t,r)));return Do.create(s,"or")}(t,e),Yc(n)}function Wc(t,e){if(Ao(e))return Oo(e,t.getFilters());{const n=e.filters.map((e=>Hc(t,e)));return Do.create(n,"or")}}function Yc(t){if(Wr(t instanceof Co||t instanceof Do),t instanceof Co)return t;const e=t.getFilters();if(1===e.length)return Yc(e[0]);if(Ro(t))return t;const n=e.map((t=>Yc(t))),r=[];return n.forEach((e=>{e instanceof Co?r.push(e):e instanceof Do&&(e.op===t.op?r.push(...e.filters):r.push(e))})),1===r.length?r[0]:Do.create(r,t.op)}class Xc{constructor(){this._n=new Jc}addToCollectionParentIndex(t,e){return this._n.add(e),Ps.resolve()}getCollectionParents(t,e){return Ps.resolve(this._n.getEntries(e))}addFieldIndex(t,e){return Ps.resolve()}deleteFieldIndex(t,e){return Ps.resolve()}deleteAllFieldIndexes(t){return Ps.resolve()}createTargetIndexes(t,e){return Ps.resolve()}getDocumentsMatchingTarget(t,e){return Ps.resolve(null)}getIndexType(t,e){return Ps.resolve(0)}getFieldIndexes(t,e){return Ps.resolve([])}getNextCollectionGroupToUpdate(t){return Ps.resolve(null)}getMinOffset(t,e){return Ps.resolve(ks.min())}getMinOffsetFromCollectionGroup(t,e){return Ps.resolve(ks.min())}updateCollectionGroup(t,e,n){return Ps.resolve()}updateIndexEntries(t,e){return Ps.resolve()}}class Jc{constructor(){this.index={}}add(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e]||new Mi(ws.comparator),s=!r.has(n);return this.index[e]=r.add(n),s}has(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e];return r&&r.has(n)}getEntries(t){return(this.index[t]||new Mi(ws.comparator)).toArray()}}const Zc=new Uint8Array(0);class tl{constructor(t,e){this.databaseId=e,this.an=new Jc,this.un=new pa((t=>Qo(t)),((t,e)=>Ho(t,e))),this.uid=t.uid||""}addToCollectionParentIndex(t,e){if(!this.an.has(e)){const n=e.lastSegment(),r=e.popLast();t.addOnCommittedListener((()=>{this.an.add(e)}));const s={collectionId:n,parent:Js(r)};return el(t).put(s)}return Ps.resolve()}getCollectionParents(t,e){const n=[],r=IDBKeyRange.bound([e,""],[gs(e),""],!1,!0);return el(t).W(r).next((t=>{for(const r of t){if(r.collectionId!==e)break;n.push(ei(r.parent))}return n}))}addFieldIndex(t,e){const n=rl(t),r=function(t){return{indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map((t=>[t.fieldPath.canonicalString(),t.kind]))}}(e);delete r.indexId;const s=n.add(r);if(e.indexState){const n=sl(t);return s.next((t=>{n.put(Sc(t,this.uid,e.indexState.sequenceNumber,e.indexState.offset))}))}return s.next()}deleteFieldIndex(t,e){const n=rl(t),r=sl(t),s=nl(t);return n.delete(e.indexId).next((()=>r.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0)))).next((()=>s.delete(IDBKeyRange.bound([e.indexId],[e.indexId+1],!1,!0))))}deleteAllFieldIndexes(t){const e=rl(t),n=nl(t),r=sl(t);return e.H().next((()=>n.H())).next((()=>r.H()))}createTargetIndexes(t,e){return Ps.forEach(this.cn(e),(e=>this.getIndexType(t,e).next((n=>{if(0===n||1===n){const n=new Uc(e).on();if(null!=n)return this.addFieldIndex(t,n)}}))))}getDocumentsMatchingTarget(t,e){const n=nl(t);let r=!0;const s=new Map;return Ps.forEach(this.cn(e),(e=>this.ln(t,e).next((t=>{r&&(r=!!t),s.set(e,t)})))).next((()=>{if(r){let t=Ca();const r=[];return Ps.forEach(s,((s,i)=>{jr("IndexedDbIndexManager",`Using index ${function(t){return`id=${t.indexId}|cg=${t.collectionGroup}|f=${t.fields.map((t=>`${t.fieldPath}:${t.kind}`)).join(",")}`}(s)} to execute ${Qo(e)}`);const o=function(t,e){const n=Es(e);if(void 0===n)return null;for(const e of Yo(t,n.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null}(i,s),a=function(t,e){const n=new Map;for(const r of Ts(e))for(const e of Yo(t,r.fieldPath))switch(e.op){case"==":case"in":n.set(r.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return n.set(r.fieldPath.canonicalString(),e.value),Array.from(n.values())}return null}(i,s),u=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Xo(t,s.fieldPath,t.startAt):Jo(t,s.fieldPath,t.startAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),c=function(t,e){const n=[];let r=!0;for(const s of Ts(e)){const e=0===s.kind?Jo(t,s.fieldPath,t.endAt):Xo(t,s.fieldPath,t.endAt);n.push(e.value),r&&(r=e.inclusive)}return new _o(n,r)}(i,s),l=this.hn(s,i,u),h=this.hn(s,i,c),d=this.Pn(s,i,a),f=this.In(s.indexId,o,l,u.inclusive,h,c.inclusive,d);return Ps.forEach(f,(s=>n.j(s,e.limit).next((e=>{e.forEach((e=>{const n=_s.fromSegments(e.documentKey);t.has(n)||(t=t.add(n),r.push(n))}))}))))})).next((()=>r))}return Ps.resolve(null)}))}cn(t){let e=this.un.get(t);return e||(e=0===t.filters.length?[t]:Gc(Do.create(t.filters,"and")).map((e=>$o(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt))),this.un.set(t,e),e)}In(t,e,n,r,s,i,o){const a=(null!=e?e.length:1)*Math.max(n.length,s.length),u=a/(null!=e?e.length:1),c=[];for(let l=0;lthis.En(t,a,e,!0)));c.push(...this.createRange(h,d,f))}return c}En(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s:s.Jt()}dn(t,e,n,r){const s=new Vc(t,_s.empty(),e,n);return r?s.Jt():s}ln(t,e){const n=new Uc(e),r=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment();return this.getFieldIndexes(t,r).next((t=>{let e=null;for(const r of t)n.tn(r)&&(!e||r.fields.length>e.fields.length)&&(e=r);return e}))}getIndexType(t,e){let n=2;const r=this.cn(e);return Ps.forEach(r,(e=>this.ln(t,e).next((t=>{t?0!==n&&t.fields.lengthfunction(t){return null!==t.limit}(e)&&r.length>1&&2===n?1:n))}An(t,e){const n=new Fc;for(const r of Ts(t)){const t=e.data.field(r.fieldPath);if(null==t)return null;const s=n.Ht(r.kind);kc.bt.Pt(t,s)}return n.Wt()}Tn(t){const e=new Fc;return kc.bt.Pt(t,e.Ht(0)),e.Wt()}Rn(t,e){const n=new Fc;return kc.bt.Pt(io(this.databaseId,e),n.Ht(function(t){const e=Ts(t);return 0===e.length?0:e[e.length-1].kind}(t))),n.Wt()}Pn(t,e,n){if(null===n)return[];let r=[];r.push(new Fc);let s=0;for(const i of Ts(t)){const t=n[s++];for(const n of r)if(this.Vn(e,i.fieldPath)&&ao(t))r=this.mn(r,i,t);else{const e=n.Ht(i.kind);kc.bt.Pt(t,e)}}return this.fn(r)}hn(t,e,n){return this.Pn(t,e,n.position)}fn(t){const e=[];for(let n=0;nt instanceof Co&&t.field.isEqual(e)&&("in"===t.op||"not-in"===t.op)))}getFieldIndexes(t,e){const n=rl(t),r=sl(t);return(e?n.W("collectionGroupIndex",IDBKeyRange.bound(e,e)):n.W()).next((t=>{const e=[];return Ps.forEach(t,(t=>r.get([t.indexId,this.uid]).next((n=>{e.push(function(t,e){const n=e?new Ds(e.sequenceNumber,new ks(wc(e.readTime),new _s(ei(e.documentKey)),e.largestBatchId)):Ds.empty(),r=t.fields.map((([t,e])=>new xs(bs.fromServerFormat(t),e)));return new Is(t.indexId,t.collectionGroup,r,n)}(t,n))})))).next((()=>e))}))}getNextCollectionGroupToUpdate(t){return this.getFieldIndexes(t).next((t=>0===t.length?null:(t.sort(((t,e)=>{const n=t.indexState.sequenceNumber-e.indexState.sequenceNumber;return 0!==n?n:ds(t.collectionGroup,e.collectionGroup)})),t[0].collectionGroup)))}updateCollectionGroup(t,e,n){const r=rl(t),s=sl(t);return this.gn(t).next((t=>r.W("collectionGroupIndex",IDBKeyRange.bound(e,e)).next((e=>Ps.forEach(e,(e=>s.put(Sc(e.indexId,this.uid,t,n))))))))}updateIndexEntries(t,e){const n=new Map;return Ps.forEach(e,((e,r)=>{const s=n.get(e.collectionGroup);return(s?Ps.resolve(s):this.getFieldIndexes(t,e.collectionGroup)).next((s=>(n.set(e.collectionGroup,s),Ps.forEach(s,(n=>this.pn(t,e,n).next((e=>{const s=this.yn(r,n);return e.isEqual(s)?Ps.resolve():this.wn(t,r,n,e,s)})))))))}))}Sn(t,e,n,r){return nl(t).put({indexId:r.indexId,uid:this.uid,arrayValue:r.arrayValue,directionalValue:r.directionalValue,orderedDocumentKey:this.Rn(n,e.key),documentKey:e.key.path.toArray()})}bn(t,e,n,r){return nl(t).delete([r.indexId,this.uid,r.arrayValue,r.directionalValue,this.Rn(n,e.key),e.key.path.toArray()])}pn(t,e,n){const r=nl(t);let s=new Mi(qc);return r.Y({index:"documentKeyIndex",range:IDBKeyRange.only([n.indexId,this.uid,this.Rn(n,e)])},((t,r)=>{s=s.add(new Vc(n.indexId,e,r.arrayValue,r.directionalValue))})).next((()=>s))}yn(t,e){let n=new Mi(qc);const r=this.An(e,t);if(null==r)return n;const s=Es(e);if(null!=s){const i=t.data.field(s.fieldPath);if(ao(i))for(const s of i.arrayValue.values||[])n=n.add(new Vc(e.indexId,t.key,this.Tn(s),r))}else n=n.add(new Vc(e.indexId,t.key,Zc,r));return n}wn(t,e,n,r,s){jr("IndexedDbIndexManager","Updating index entries for document '%s'",e.key);const i=[];return function(t,e,n,r,s){const i=t.getIterator(),o=e.getIterator();let a=Oi(i),u=Oi(o);for(;a||u;){let t=!1,e=!1;if(a&&u){const r=n(a,u);r<0?e=!0:r>0&&(t=!0)}else null!=a?e=!0:t=!0;t?(r(u),u=Oi(o)):e?(s(a),a=Oi(i)):(a=Oi(i),u=Oi(o))}}(r,s,qc,(r=>{i.push(this.Sn(t,e,n,r))}),(r=>{i.push(this.bn(t,e,n,r))})),Ps.waitFor(i)}gn(t){let e=1;return sl(t).Y({index:"sequenceNumberIndex",reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},((t,n,r)=>{r.done(),e=n.sequenceNumber+1})).next((()=>e))}createRange(t,e,n){n=n.sort(((t,e)=>qc(t,e))).filter(((t,e,n)=>!e||0!==qc(t,n[e-1])));const r=[];r.push(t);for(const s of n){const n=qc(s,t),i=qc(s,e);if(0===n)r[0]=t.Jt();else if(n>0&&i<0)r.push(s),r.push(s.Jt());else if(i>0)break}r.push(e);const s=[];for(let t=0;t0}getMinOffsetFromCollectionGroup(t,e){return this.getFieldIndexes(t,e).next(il)}getMinOffset(t,e){return Ps.mapArray(this.cn(e),(e=>this.ln(t,e).next((t=>t||Hr())))).next(il)}}function el(t){return xi(t,"collectionParents")}function nl(t){return xi(t,"indexEntries")}function rl(t){return xi(t,"indexConfiguration")}function sl(t){return xi(t,"indexState")}function il(t){Wr(0!==t.length);let e=t[0].indexState.offset,n=e.largestBatchId;for(let r=1;r(a++,n.delete())));i.push(u.next((()=>{Wr(1===a)})));const c=[];for(const t of n.mutations){const r=si(e,t.key.path,n.batchId);i.push(s.delete(r)),c.push(t.key)}return Ps.waitFor(i).next((()=>c))}function cl(t){if(!t)return 0;let e;if(t.document)e=t.document;else if(t.unknownDocument)e=t.unknownDocument;else{if(!t.noDocument)throw Hr();e=t.noDocument}return JSON.stringify(e).length}al.DEFAULT_COLLECTION_PERCENTILE=10,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,al.DEFAULT=new al(41943040,al.DEFAULT_COLLECTION_PERCENTILE,al.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),al.DISABLED=new al(-1,0,0);class ll{constructor(t,e,n,r){this.userId=t,this.serializer=e,this.indexManager=n,this.referenceDelegate=r,this.Cn={}}static lt(t,e,n,r){Wr(""!==t.uid);const s=t.isAuthenticated()?t.uid:"";return new ll(s,e,n,r)}checkEmpty(t){let e=!0;const n=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).Y({index:"userMutationsIndex",range:n},((t,n,r)=>{e=!1,r.done()})).next((()=>e))}addMutationBatch(t,e,n,r){const s=fl(t),i=dl(t);return i.add({}).next((o=>{Wr("number"==typeof o);const a=new uu(o,e,n,r),u=function(t,e,n){const r=n.baseMutations.map((e=>Zu(t.ct,e))),s=n.mutations.map((e=>Zu(t.ct,e)));return{userId:e,batchId:n.batchId,localWriteTimeMs:n.localWriteTime.toMillis(),baseMutations:r,mutations:s}}(this.serializer,this.userId,a),c=[];let l=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));for(const t of r){const e=si(this.userId,t.key.path,o);l=l.add(t.key.path.popLast()),c.push(i.put(u)),c.push(s.put(e,ii))}return l.forEach((e=>{c.push(this.indexManager.addToCollectionParentIndex(t,e))})),t.addOnCommittedListener((()=>{this.Cn[o]=a.keys()})),Ps.waitFor(c).next((()=>a))}))}lookupMutationBatch(t,e){return dl(t).get(e).next((t=>t?(Wr(t.userId===this.userId),vc(this.serializer,t)):null))}vn(t,e){return this.Cn[e]?Ps.resolve(this.Cn[e]):this.lookupMutationBatch(t,e).next((t=>{if(t){const n=t.keys();return this.Cn[e]=n,n}return null}))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=IDBKeyRange.lowerBound([this.userId,n]);let s=null;return dl(t).Y({index:"userMutationsIndex",range:r},((t,e,r)=>{e.userId===this.userId&&(Wr(e.batchId>=n),s=vc(this.serializer,e)),r.done()})).next((()=>s))}getHighestUnacknowledgedBatchId(t){const e=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=-1;return dl(t).Y({index:"userMutationsIndex",range:e,reverse:!0},((t,e,r)=>{n=e.batchId,r.done()})).next((()=>n))}getAllMutationBatches(t){const e=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return dl(t).W("userMutationsIndex",e).next((t=>t.map((t=>vc(this.serializer,t)))))}getAllMutationBatchesAffectingDocumentKey(t,e){const n=ri(this.userId,e.path),r=IDBKeyRange.lowerBound(n),s=[];return fl(t).Y({range:r},((n,r,i)=>{const[o,a,u]=n,c=ei(a);if(o===this.userId&&e.path.isEqual(c))return dl(t).get(u).next((t=>{if(!t)throw Hr();Wr(t.userId===this.userId),s.push(vc(this.serializer,t))}));i.done()})).next((()=>s))}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);const r=[];return e.forEach((e=>{const s=ri(this.userId,e.path),i=IDBKeyRange.lowerBound(s),o=fl(t).Y({range:i},((t,r,s)=>{const[i,o,a]=t,u=ei(o);i===this.userId&&e.path.isEqual(u)?n=n.add(a):s.done()}));r.push(o)})),Ps.waitFor(r).next((()=>this.Fn(t,n)))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1,s=ri(this.userId,n),i=IDBKeyRange.lowerBound(s);let o=new Mi(ds);return fl(t).Y({range:i},((t,e,s)=>{const[i,a,u]=t,c=ei(a);i===this.userId&&n.isPrefixOf(c)?c.length===r&&(o=o.add(u)):s.done()})).next((()=>this.Fn(t,o)))}Fn(t,e){const n=[],r=[];return e.forEach((e=>{r.push(dl(t).get(e).next((t=>{if(null===t)throw Hr();Wr(t.userId===this.userId),n.push(vc(this.serializer,t))})))})),Ps.waitFor(r).next((()=>n))}removeMutationBatch(t,e){return ul(t.ae,this.userId,e).next((n=>(t.addOnCommittedListener((()=>{this.Mn(e.batchId)})),Ps.forEach(n,(e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))))}Mn(t){delete this.Cn[t]}performConsistencyCheck(t){return this.checkEmpty(t).next((e=>{if(!e)return Ps.resolve();const n=IDBKeyRange.lowerBound(function(t){return[t]}(this.userId)),r=[];return fl(t).Y({range:n},((t,e,n)=>{if(t[0]===this.userId){const e=ei(t[1]);r.push(e)}else n.done()})).next((()=>{Wr(0===r.length)}))}))}containsKey(t,e){return hl(t,this.userId,e)}xn(t){return gl(t).get(this.userId).next((t=>t||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""}))}}function hl(t,e,n){const r=ri(e,n.path),s=r[1],i=IDBKeyRange.lowerBound(r);let o=!1;return fl(t).Y({range:i,J:!0},((t,n,r)=>{const[i,a,u]=t;i===e&&a===s&&(o=!0),r.done()})).next((()=>o))}function dl(t){return xi(t,"mutations")}function fl(t){return xi(t,"documentMutations")}function gl(t){return xi(t,"mutationQueues")}class ml{constructor(t){this.On=t}next(){return this.On+=2,this.On}static Nn(){return new ml(0)}static Bn(){return new ml(-1)}}class pl{constructor(t,e){this.referenceDelegate=t,this.serializer=e}allocateTargetId(t){return this.Ln(t).next((e=>{const n=new ml(e.highestTargetId);return e.highestTargetId=n.next(),this.kn(t,e).next((()=>e.highestTargetId))}))}getLastRemoteSnapshotVersion(t){return this.Ln(t).next((t=>ps.fromTimestamp(new ms(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))))}getHighestSequenceNumber(t){return this.Ln(t).next((t=>t.highestListenSequenceNumber))}setTargetsMetadata(t,e,n){return this.Ln(t).next((r=>(r.highestListenSequenceNumber=e,n&&(r.lastRemoteSnapshotVersion=n.toTimestamp()),e>r.highestListenSequenceNumber&&(r.highestListenSequenceNumber=e),this.kn(t,r))))}addTargetData(t,e){return this.qn(t,e).next((()=>this.Ln(t).next((n=>(n.targetCount+=1,this.Qn(e,n),this.kn(t,n))))))}updateTargetData(t,e){return this.qn(t,e)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next((()=>yl(t).delete(e.targetId))).next((()=>this.Ln(t))).next((e=>(Wr(e.targetCount>0),e.targetCount-=1,this.kn(t,e))))}removeTargets(t,e,n){let r=0;const s=[];return yl(t).Y(((i,o)=>{const a=bc(o);a.sequenceNumber<=e&&null===n.get(a.targetId)&&(r++,s.push(this.removeTargetData(t,a)))})).next((()=>Ps.waitFor(s))).next((()=>r))}forEachTarget(t,e){return yl(t).Y(((t,n)=>{const r=bc(n);e(r)}))}Ln(t){return wl(t).get("targetGlobalKey").next((t=>(Wr(null!==t),t)))}kn(t,e){return wl(t).put("targetGlobalKey",e)}qn(t,e){return yl(t).put(_c(this.serializer,e))}Qn(t,e){let n=!1;return t.targetId>e.highestTargetId&&(e.highestTargetId=t.targetId,n=!0),t.sequenceNumber>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=t.sequenceNumber,n=!0),n}getTargetCount(t){return this.Ln(t).next((t=>t.targetCount))}getTargetData(t,e){const n=Qo(e),r=IDBKeyRange.bound([n,Number.NEGATIVE_INFINITY],[n,Number.POSITIVE_INFINITY]);let s=null;return yl(t).Y({range:r,index:"queryTargetsIndex"},((t,n,r)=>{const i=bc(n);Ho(e,i.target)&&(s=i,r.done())})).next((()=>s))}addMatchingKeys(t,e,n){const r=[],s=vl(t);return e.forEach((e=>{const i=Js(e.path);r.push(s.put({targetId:n,path:i})),r.push(this.referenceDelegate.addReference(t,n,e))})),Ps.waitFor(r)}removeMatchingKeys(t,e,n){const r=vl(t);return Ps.forEach(e,(e=>{const s=Js(e.path);return Ps.waitFor([r.delete([n,s]),this.referenceDelegate.removeReference(t,n,e)])}))}removeMatchingKeysForTargetId(t,e){const n=vl(t),r=IDBKeyRange.bound([e],[e+1],!1,!0);return n.delete(r)}getMatchingKeysForTargetId(t,e){const n=IDBKeyRange.bound([e],[e+1],!1,!0),r=vl(t);let s=Ca();return r.Y({range:n,J:!0},((t,e,n)=>{const r=ei(t[1]),i=new _s(r);s=s.add(i)})).next((()=>s))}containsKey(t,e){const n=Js(e.path),r=IDBKeyRange.bound([n],[gs(n)],!1,!0);let s=0;return vl(t).Y({index:"documentTargetsIndex",J:!0,range:r},(([t,e],n,r)=>{0!==t&&(s++,r.done())})).next((()=>s>0))}_t(t,e){return yl(t).get(e).next((t=>t?bc(t):null))}}function yl(t){return xi(t,"targets")}function wl(t){return xi(t,"targetGlobal")}function vl(t){return xi(t,"targetDocuments")}function bl([t,e],[n,r]){const s=ds(t,n);return 0===s?ds(e,r):s}class _l{constructor(t){this.Kn=t,this.buffer=new Mi(bl),this.$n=0}Un(){return++this.$n}Wn(t){const e=[t,this.Un()];if(this.buffer.size{this.Gn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(t){Us(t)?jr("LruGarbageCollector","Ignoring IndexedDB error during garbage collection: ",t):await Os(t)}await this.zn(3e5)}))}}class El{constructor(t,e){this.jn=t,this.params=e}calculateTargetCount(t,e){return this.jn.Hn(t).next((t=>Math.floor(e/100*t)))}nthSequenceNumber(t,e){if(0===e)return Ps.resolve(Hs._e);const n=new _l(e);return this.jn.forEachTarget(t,(t=>n.Wn(t.sequenceNumber))).next((()=>this.jn.Jn(t,(t=>n.Wn(t))))).next((()=>n.maxValue))}removeTargets(t,e,n){return this.jn.removeTargets(t,e,n)}removeOrphanedDocuments(t,e){return this.jn.removeOrphanedDocuments(t,e)}collect(t,e){return-1===this.params.cacheSizeCollectionThreshold?(jr("LruGarbageCollector","Garbage collection skipped; disabled"),Ps.resolve(ol)):this.getCacheSize(t).next((n=>n(e>this.params.maximumSequenceNumbersToCollect?(jr("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${e}`),r=this.params.maximumSequenceNumbersToCollect):r=e,i=Date.now(),this.nthSequenceNumber(t,r)))).next((r=>(n=r,o=Date.now(),this.removeTargets(t,n,e)))).next((e=>(s=e,a=Date.now(),this.removeOrphanedDocuments(t,n)))).next((t=>(u=Date.now(),zr()<=_.DEBUG&&jr("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${i-c}ms\n\tDetermined least recently used ${r} in `+(o-i)+"ms\n"+`\tRemoved ${s} targets in `+(a-o)+"ms\n"+`\tRemoved ${t} documents in `+(u-a)+"ms\n"+`Total Duration: ${u-c}ms`),Ps.resolve({didRun:!0,sequenceNumbersCollected:r,targetsRemoved:s,documentsRemoved:t}))))}}function Tl(t,e){return new El(t,e)}class Sl{constructor(t,e){this.db=t,this.garbageCollector=Tl(this,e)}Hn(t){const e=this.Zn(t);return this.db.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}forEachTarget(t,e){return this.db.getTargetCache().forEachTarget(t,e)}Jn(t,e){return this.Xn(t,((t,n)=>e(n)))}addReference(t,e,n){return xl(t,n)}removeReference(t,e,n){return xl(t,n)}removeTargets(t,e,n){return this.db.getTargetCache().removeTargets(t,e,n)}markPotentiallyOrphaned(t,e){return xl(t,e)}er(t,e){return function(t,e){let n=!1;return gl(t).Z((r=>hl(t,r,e).next((t=>(t&&(n=!0),Ps.resolve(!t)))))).next((()=>n))}(t,e)}removeOrphanedDocuments(t,e){const n=this.db.getRemoteDocumentCache().newChangeBuffer(),r=[];let s=0;return this.Xn(t,((i,o)=>{if(o<=e){const e=this.er(t,i).next((e=>{if(!e)return s++,n.getEntry(t,i).next((()=>(n.removeEntry(i,ps.min()),vl(t).delete(function(t){return[0,Js(t.path)]}(i)))))}));r.push(e)}})).next((()=>Ps.waitFor(r))).next((()=>n.apply(t))).next((()=>s))}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,n)}updateLimboDocument(t,e){return xl(t,e)}Xn(t,e){const n=vl(t);let r,s=Hs._e;return n.Y({index:"documentTargetsIndex"},(([t,n],{path:i,sequenceNumber:o})=>{0===t?(s!==Hs._e&&e(new _s(ei(r)),s),s=o,r=i):s=Hs._e})).next((()=>{s!==Hs._e&&e(new _s(ei(r)),s)}))}getCacheSize(t){return this.db.getRemoteDocumentCache().getSize(t)}}function xl(t,e){return vl(t).put(function(t,e){return{targetId:0,path:Js(t.path),sequenceNumber:e}}(e,t.currentSequenceNumber))}class Cl{constructor(){this.changes=new pa((t=>t.toString()),((t,e)=>t.isEqual(e))),this.changesApplied=!1}addEntry(t){this.assertNotApplied(),this.changes.set(t.key,t)}removeEntry(t,e){this.assertNotApplied(),this.changes.set(t,bo.newInvalidDocument(t).setReadTime(e))}getEntry(t,e){this.assertNotApplied();const n=this.changes.get(e);return void 0!==n?Ps.resolve(n):this.getFromCache(t,e)}getEntries(t,e){return this.getAllFromCache(t,e)}apply(t){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(t)}assertNotApplied(){}}class Dl{constructor(t){this.serializer=t}setIndexManager(t){this.indexManager=t}addEntry(t,e,n){return Rl(t).put(n)}removeEntry(t,e,n){return Rl(t).delete(function(t,e){const n=t.path.toArray();return[n.slice(0,n.length-2),n[n.length-2],pc(e),n[n.length-1]]}(e,n))}updateMetadata(t,e){return this.getMetadata(t).next((n=>(n.byteSize+=e,this.tr(t,n))))}getEntry(t,e){let n=bo.newInvalidDocument(e);return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n=this.nr(e,r)})).next((()=>n))}rr(t,e){let n={size:0,document:bo.newInvalidDocument(e)};return Rl(t).Y({index:"documentKeyIndex",range:IDBKeyRange.only(Ml(e))},((t,r)=>{n={document:this.nr(e,r),size:cl(r)}})).next((()=>n))}getEntries(t,e){let n=wa();return this.ir(t,e,((t,e)=>{const r=this.nr(t,e);n=n.insert(t,r)})).next((()=>n))}sr(t,e){let n=wa(),r=new Ni(_s.comparator);return this.ir(t,e,((t,e)=>{const s=this.nr(t,e);n=n.insert(t,s),r=r.insert(t,cl(e))})).next((()=>({documents:n,_r:r})))}ir(t,e,n){if(e.isEmpty())return Ps.resolve();let r=new Mi(Ol);e.forEach((t=>r=r.add(t)));const s=IDBKeyRange.bound(Ml(r.first()),Ml(r.last())),i=r.getIterator();let o=i.getNext();return Rl(t).Y({index:"documentKeyIndex",range:s},((t,e,r)=>{const s=_s.fromSegments([...e.prefixPath,e.collectionGroup,e.documentId]);for(;o&&Ol(o,s)<0;)n(o,null),o=i.getNext();o&&o.isEqual(s)&&(n(o,e),o=i.hasNext()?i.getNext():null),o?r.U(Ml(o)):r.done()})).next((()=>{for(;o;)n(o,null),o=i.hasNext()?i.getNext():null}))}getDocumentsMatchingQuery(t,e,n,r,s){const i=e.path,o=[i.popLast().toArray(),i.lastSegment(),pc(n.readTime),n.documentKey.path.isEmpty()?"":n.documentKey.path.lastSegment()],a=[i.popLast().toArray(),i.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return Rl(t).W(IDBKeyRange.bound(o,a,!0)).next((t=>{null==s||s.incrementDocumentReadCount(t.length);let n=wa();for(const s of t){const t=this.nr(_s.fromSegments(s.prefixPath.concat(s.collectionGroup,s.documentId)),s);t.isFoundDocument()&&(da(e,t)||r.has(t.key))&&(n=n.insert(t.key,t))}return n}))}getAllFromCollectionGroup(t,e,n,r){let s=wa();const i=Ll(e,n),o=Ll(e,ks.max());return Rl(t).Y({index:"collectionGroupIndex",range:IDBKeyRange.bound(i,o,!0)},((t,e,n)=>{const i=this.nr(_s.fromSegments(e.prefixPath.concat(e.collectionGroup,e.documentId)),e);s=s.insert(i.key,i),s.size===r&&n.done()})).next((()=>s))}newChangeBuffer(t){return new Nl(this,!!t&&t.trackRemovals)}getSize(t){return this.getMetadata(t).next((t=>t.byteSize))}getMetadata(t){return kl(t).get("remoteDocumentGlobalKey").next((t=>(Wr(!!t),t)))}tr(t,e){return kl(t).put("remoteDocumentGlobalKey",e)}nr(t,e){if(e){const t=function(t,e){let n;if(e.document)n=Ju(t.ct,e.document,!!e.hasCommittedMutations);else if(e.noDocument){const t=_s.fromSegments(e.noDocument.path),r=wc(e.noDocument.readTime);n=bo.newNoDocument(t,r),e.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!e.unknownDocument)return Hr();{const t=_s.fromSegments(e.unknownDocument.path),r=wc(e.unknownDocument.version);n=bo.newUnknownDocument(t,r)}}return e.readTime&&n.setReadTime(function(t){const e=new ms(t[0],t[1]);return ps.fromTimestamp(e)}(e.readTime)),n}(this.serializer,e);if(!t.isNoDocument()||!t.version.isEqual(ps.min()))return t}return bo.newInvalidDocument(t)}}function Al(t){return new Dl(t)}class Nl extends Cl{constructor(t,e){super(),this.ar=t,this.trackRemovals=e,this.ur=new pa((t=>t.toString()),((t,e)=>t.isEqual(e)))}applyChanges(t){const e=[];let n=0,r=new Mi(((t,e)=>ds(t.canonicalString(),e.canonicalString())));return this.changes.forEach(((s,i)=>{const o=this.ur.get(s);if(e.push(this.ar.removeEntry(t,s,o.readTime)),i.isValidDocument()){const a=mc(this.ar.serializer,i);r=r.add(s.path.popLast());const u=cl(a);n+=u-o.size,e.push(this.ar.addEntry(t,s,a))}else if(n-=o.size,this.trackRemovals){const n=mc(this.ar.serializer,i.convertToNoDocument(ps.min()));e.push(this.ar.addEntry(t,s,n))}})),r.forEach((n=>{e.push(this.ar.indexManager.addToCollectionParentIndex(t,n))})),e.push(this.ar.updateMetadata(t,n)),Ps.waitFor(e)}getFromCache(t,e){return this.ar.rr(t,e).next((t=>(this.ur.set(e,{size:t.size,readTime:t.document.readTime}),t.document)))}getAllFromCache(t,e){return this.ar.sr(t,e).next((({documents:t,_r:e})=>(e.forEach(((e,n)=>{this.ur.set(e,{size:n,readTime:t.get(e).readTime})})),t)))}}function kl(t){return xi(t,"remoteDocumentGlobal")}function Rl(t){return xi(t,"remoteDocumentsV14")}function Ml(t){const e=t.path.toArray();return[e.slice(0,e.length-2),e[e.length-2],e[e.length-1]]}function Ll(t,e){const n=e.documentKey.path.toArray();return[t,pc(e.readTime),n.slice(0,n.length-2),n.length>0?n[n.length-1]:""]}function Ol(t,e){const n=t.path.toArray(),r=e.path.toArray();let s=0;for(let t=0;t(n=r,this.remoteDocumentCache.getEntry(t,e)))).next((t=>(null!==n&&Ja(n.mutation,t,Pi.empty(),ms.now()),t)))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.getLocalViewOfDocuments(t,e,Ca()).next((()=>e))))}getLocalViewOfDocuments(t,e,n=Ca()){const r=Ia();return this.populateOverlays(t,r,e).next((()=>this.computeViews(t,e,r,n).next((t=>{let e=ba();return t.forEach(((t,n)=>{e=e.insert(t,n.overlayedDocument)})),e}))))}getOverlayedDocuments(t,e){const n=Ia();return this.populateOverlays(t,n,e).next((()=>this.computeViews(t,e,n,Ca())))}populateOverlays(t,e,n){const r=[];return n.forEach((t=>{e.has(t)||r.push(t)})),this.documentOverlayCache.getOverlays(t,r).next((t=>{t.forEach(((t,n)=>{e.set(t,n)}))}))}computeViews(t,e,n,r){let s=wa();const i=Ta(),o=Ta();return e.forEach(((t,e)=>{const o=n.get(e.key);r.has(e.key)&&(void 0===o||o.mutation instanceof nu)?s=s.insert(e.key,e):void 0!==o?(i.set(e.key,o.mutation.getFieldMask()),Ja(o.mutation,e,o.mutation.getFieldMask(),ms.now())):i.set(e.key,Pi.empty())})),this.recalculateAndSaveOverlays(t,s).next((t=>(t.forEach(((t,e)=>i.set(t,e))),e.forEach(((t,e)=>{var n;return o.set(t,new Pl(e,null!==(n=i.get(t))&&void 0!==n?n:null))})),o)))}recalculateAndSaveOverlays(t,e){const n=Ta();let r=new Ni(((t,e)=>t-e)),s=Ca();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t,e).next((t=>{for(const s of t)s.keys().forEach((t=>{const i=e.get(t);if(null===i)return;let o=n.get(t)||Pi.empty();o=s.applyToLocalView(i,o),n.set(t,o);const a=(r.get(s.batchId)||Ca()).add(t);r=r.insert(s.batchId,a)}))})).next((()=>{const i=[],o=r.getReverseIterator();for(;o.hasNext();){const r=o.getNext(),a=r.key,u=r.value,c=Ea();u.forEach((t=>{if(!s.has(t)){const r=Ya(e.get(t),n.get(t));null!==r&&c.set(t,r),s=s.add(t)}})),i.push(this.documentOverlayCache.saveOverlays(t,a,c))}return Ps.waitFor(i)})).next((()=>n))}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.recalculateAndSaveOverlays(t,e)))}getDocumentsMatchingQuery(t,e,n,r){return function(t){return _s.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}(e)?this.getDocumentsMatchingDocumentQuery(t,e.path):ra(e)?this.getDocumentsMatchingCollectionGroupQuery(t,e,n,r):this.getDocumentsMatchingCollectionQuery(t,e,n,r)}getNextDocuments(t,e,n,r){return this.remoteDocumentCache.getAllFromCollectionGroup(t,e,n,r).next((s=>{const i=r-s.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(t,e,n.largestBatchId,r-s.size):Ps.resolve(Ia());let o=-1,a=s;return i.next((e=>Ps.forEach(e,((e,n)=>(o{a=a.insert(e,t)}))))).next((()=>this.populateOverlays(t,e,s))).next((()=>this.computeViews(t,a,e,Ca()))).next((t=>({batchId:o,changes:_a(t)})))))}))}getDocumentsMatchingDocumentQuery(t,e){return this.getDocument(t,new _s(e)).next((t=>{let e=ba();return t.isFoundDocument()&&(e=e.insert(t.key,t)),e}))}getDocumentsMatchingCollectionGroupQuery(t,e,n,r){const s=e.collectionGroup;let i=ba();return this.indexManager.getCollectionParents(t,s).next((o=>Ps.forEach(o,(o=>{const a=function(t,e){return new Zo(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(e,o.child(s));return this.getDocumentsMatchingCollectionQuery(t,a,n,r).next((t=>{t.forEach(((t,e)=>{i=i.insert(t,e)}))}))})).next((()=>i))))}getDocumentsMatchingCollectionQuery(t,e,n,r){let s;return this.documentOverlayCache.getOverlaysForCollection(t,e.path,n.largestBatchId).next((i=>(s=i,this.remoteDocumentCache.getDocumentsMatchingQuery(t,e,n,s,r)))).next((t=>{s.forEach(((e,n)=>{const r=n.getKey();null===t.get(r)&&(t=t.insert(r,bo.newInvalidDocument(r)))}));let n=ba();return t.forEach(((t,r)=>{const i=s.get(t);void 0!==i&&Ja(i.mutation,r,Pi.empty(),ms.now()),da(e,r)&&(n=n.insert(t,r))})),n}))}}class Vl{constructor(t){this.serializer=t,this.cr=new Map,this.lr=new Map}getBundleMetadata(t,e){return Ps.resolve(this.cr.get(e))}saveBundleMetadata(t,e){return this.cr.set(e.id,function(t){return{id:t.id,version:t.version,createTime:Uu(t.createTime)}}(e)),Ps.resolve()}getNamedQuery(t,e){return Ps.resolve(this.lr.get(e))}saveNamedQuery(t,e){return this.lr.set(e.name,function(t){return{name:t.name,query:Ic(t.bundledQuery),readTime:Uu(t.readTime)}}(e)),Ps.resolve()}}class ql{constructor(){this.overlays=new Ni(_s.comparator),this.hr=new Map}getOverlay(t,e){return Ps.resolve(this.overlays.get(e))}getOverlays(t,e){const n=Ia();return Ps.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){return n.forEach(((n,r)=>{this.ht(t,e,r)})),Ps.resolve()}removeOverlaysForBatchId(t,e,n){const r=this.hr.get(n);return void 0!==r&&(r.forEach((t=>this.overlays=this.overlays.remove(t))),this.hr.delete(n)),Ps.resolve()}getOverlaysForCollection(t,e,n){const r=Ia(),s=e.length+1,i=new _s(e.child("")),o=this.overlays.getIteratorFrom(i);for(;o.hasNext();){const t=o.getNext().value,i=t.getKey();if(!e.isPrefixOf(i.path))break;i.path.length===s&&t.largestBatchId>n&&r.set(t.getKey(),t)}return Ps.resolve(r)}getOverlaysForCollectionGroup(t,e,n,r){let s=new Ni(((t,e)=>t-e));const i=this.overlays.getIterator();for(;i.hasNext();){const t=i.getNext().value;if(t.getKey().getCollectionGroup()===e&&t.largestBatchId>n){let e=s.get(t.largestBatchId);null===e&&(e=Ia(),s=s.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}const o=Ia(),a=s.getIterator();for(;a.hasNext()&&(a.getNext().value.forEach(((t,e)=>o.set(t,e))),!(o.size()>=r)););return Ps.resolve(o)}ht(t,e,n){const r=this.overlays.get(n.key);if(null!==r){const t=this.hr.get(r.largestBatchId).delete(n.key);this.hr.set(r.largestBatchId,t)}this.overlays=this.overlays.insert(n.key,new lu(e,n));let s=this.hr.get(e);void 0===s&&(s=Ca(),this.hr.set(e,s)),this.hr.set(e,s.add(n.key))}}class Bl{constructor(){this.Pr=new Mi(Ul.Ir),this.Tr=new Mi(Ul.Er)}isEmpty(){return this.Pr.isEmpty()}addReference(t,e){const n=new Ul(t,e);this.Pr=this.Pr.add(n),this.Tr=this.Tr.add(n)}dr(t,e){t.forEach((t=>this.addReference(t,e)))}removeReference(t,e){this.Ar(new Ul(t,e))}Rr(t,e){t.forEach((t=>this.removeReference(t,e)))}Vr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1),s=[];return this.Tr.forEachInRange([n,r],(t=>{this.Ar(t),s.push(t.key)})),s}mr(){this.Pr.forEach((t=>this.Ar(t)))}Ar(t){this.Pr=this.Pr.delete(t),this.Tr=this.Tr.delete(t)}gr(t){const e=new _s(new ws([])),n=new Ul(e,t),r=new Ul(e,t+1);let s=Ca();return this.Tr.forEachInRange([n,r],(t=>{s=s.add(t.key)})),s}containsKey(t){const e=new Ul(t,0),n=this.Pr.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)}}class Ul{constructor(t,e){this.key=t,this.pr=e}static Ir(t,e){return _s.comparator(t.key,e.key)||ds(t.pr,e.pr)}static Er(t,e){return ds(t.pr,e.pr)||_s.comparator(t.key,e.key)}}class zl{constructor(t,e){this.indexManager=t,this.referenceDelegate=e,this.mutationQueue=[],this.yr=1,this.wr=new Mi(Ul.Ir)}checkEmpty(t){return Ps.resolve(0===this.mutationQueue.length)}addMutationBatch(t,e,n,r){const s=this.yr;this.yr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const i=new uu(s,e,n,r);this.mutationQueue.push(i);for(const e of r)this.wr=this.wr.add(new Ul(e.key,s)),this.indexManager.addToCollectionParentIndex(t,e.key.path.popLast());return Ps.resolve(i)}lookupMutationBatch(t,e){return Ps.resolve(this.Sr(e))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=this.br(n),s=r<0?0:r;return Ps.resolve(this.mutationQueue.length>s?this.mutationQueue[s]:null)}getHighestUnacknowledgedBatchId(){return Ps.resolve(0===this.mutationQueue.length?-1:this.yr-1)}getAllMutationBatches(t){return Ps.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(t,e){const n=new Ul(e,0),r=new Ul(e,Number.POSITIVE_INFINITY),s=[];return this.wr.forEachInRange([n,r],(t=>{const e=this.Sr(t.pr);s.push(e)})),Ps.resolve(s)}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new Mi(ds);return e.forEach((t=>{const e=new Ul(t,0),r=new Ul(t,Number.POSITIVE_INFINITY);this.wr.forEachInRange([e,r],(t=>{n=n.add(t.pr)}))})),Ps.resolve(this.Dr(n))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1;let s=n;_s.isDocumentKey(s)||(s=s.child(""));const i=new Ul(new _s(s),0);let o=new Mi(ds);return this.wr.forEachWhile((t=>{const e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(o=o.add(t.pr)),!0)}),i),Ps.resolve(this.Dr(o))}Dr(t){const e=[];return t.forEach((t=>{const n=this.Sr(t);null!==n&&e.push(n)})),e}removeMutationBatch(t,e){Wr(0===this.Cr(e.batchId,"removed")),this.mutationQueue.shift();let n=this.wr;return Ps.forEach(e.mutations,(r=>{const s=new Ul(r.key,e.batchId);return n=n.delete(s),this.referenceDelegate.markPotentiallyOrphaned(t,r.key)})).next((()=>{this.wr=n}))}Mn(t){}containsKey(t,e){const n=new Ul(e,0),r=this.wr.firstAfterOrEqual(n);return Ps.resolve(e.isEqual(r&&r.key))}performConsistencyCheck(t){return this.mutationQueue.length,Ps.resolve()}Cr(t,e){return this.br(t)}br(t){return 0===this.mutationQueue.length?0:t-this.mutationQueue[0].batchId}Sr(t){const e=this.br(t);return e<0||e>=this.mutationQueue.length?null:this.mutationQueue[e]}}class Gl{constructor(t){this.vr=t,this.docs=new Ni(_s.comparator),this.size=0}setIndexManager(t){this.indexManager=t}addEntry(t,e){const n=e.key,r=this.docs.get(n),s=r?r.size:0,i=this.vr(e);return this.docs=this.docs.insert(n,{document:e.mutableCopy(),size:i}),this.size+=i-s,this.indexManager.addToCollectionParentIndex(t,n.path.popLast())}removeEntry(t){const e=this.docs.get(t);e&&(this.docs=this.docs.remove(t),this.size-=e.size)}getEntry(t,e){const n=this.docs.get(e);return Ps.resolve(n?n.document.mutableCopy():bo.newInvalidDocument(e))}getEntries(t,e){let n=wa();return e.forEach((t=>{const e=this.docs.get(t);n=n.insert(t,e?e.document.mutableCopy():bo.newInvalidDocument(t))})),Ps.resolve(n)}getDocumentsMatchingQuery(t,e,n,r){let s=wa();const i=e.path,o=new _s(i.child("")),a=this.docs.getIteratorFrom(o);for(;a.hasNext();){const{key:t,value:{document:o}}=a.getNext();if(!i.isPrefixOf(t.path))break;t.path.length>i.length+1||Rs(Ns(o),n)<=0||(r.has(o.key)||da(e,o))&&(s=s.insert(o.key,o.mutableCopy()))}return Ps.resolve(s)}getAllFromCollectionGroup(t,e,n,r){Hr()}Fr(t,e){return Ps.forEach(this.docs,(t=>e(t)))}newChangeBuffer(t){return new jl(this)}getSize(t){return Ps.resolve(this.size)}}class jl extends Cl{constructor(t){super(),this.ar=t}applyChanges(t){const e=[];return this.changes.forEach(((n,r)=>{r.isValidDocument()?e.push(this.ar.addEntry(t,r)):this.ar.removeEntry(n)})),Ps.waitFor(e)}getFromCache(t,e){return this.ar.getEntry(t,e)}getAllFromCache(t,e){return this.ar.getEntries(t,e)}}class Kl{constructor(t){this.persistence=t,this.Mr=new pa((t=>Qo(t)),Ho),this.lastRemoteSnapshotVersion=ps.min(),this.highestTargetId=0,this.Or=0,this.Nr=new Bl,this.targetCount=0,this.Br=ml.Nn()}forEachTarget(t,e){return this.Mr.forEach(((t,n)=>e(n))),Ps.resolve()}getLastRemoteSnapshotVersion(t){return Ps.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(t){return Ps.resolve(this.Or)}allocateTargetId(t){return this.highestTargetId=this.Br.next(),Ps.resolve(this.highestTargetId)}setTargetsMetadata(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.Or&&(this.Or=e),Ps.resolve()}qn(t){this.Mr.set(t.target,t);const e=t.targetId;e>this.highestTargetId&&(this.Br=new ml(e),this.highestTargetId=e),t.sequenceNumber>this.Or&&(this.Or=t.sequenceNumber)}addTargetData(t,e){return this.qn(e),this.targetCount+=1,Ps.resolve()}updateTargetData(t,e){return this.qn(e),Ps.resolve()}removeTargetData(t,e){return this.Mr.delete(e.target),this.Nr.Vr(e.targetId),this.targetCount-=1,Ps.resolve()}removeTargets(t,e,n){let r=0;const s=[];return this.Mr.forEach(((i,o)=>{o.sequenceNumber<=e&&null===n.get(o.targetId)&&(this.Mr.delete(i),s.push(this.removeMatchingKeysForTargetId(t,o.targetId)),r++)})),Ps.waitFor(s).next((()=>r))}getTargetCount(t){return Ps.resolve(this.targetCount)}getTargetData(t,e){const n=this.Mr.get(e)||null;return Ps.resolve(n)}addMatchingKeys(t,e,n){return this.Nr.dr(e,n),Ps.resolve()}removeMatchingKeys(t,e,n){this.Nr.Rr(e,n);const r=this.persistence.referenceDelegate,s=[];return r&&e.forEach((e=>{s.push(r.markPotentiallyOrphaned(t,e))})),Ps.waitFor(s)}removeMatchingKeysForTargetId(t,e){return this.Nr.Vr(e),Ps.resolve()}getMatchingKeysForTargetId(t,e){const n=this.Nr.gr(e);return Ps.resolve(n)}containsKey(t,e){return Ps.resolve(this.Nr.containsKey(e))}}class $l{constructor(t,e){this.Lr={},this.overlays={},this.kr=new Hs(0),this.qr=!1,this.qr=!0,this.referenceDelegate=t(this),this.Qr=new Kl(this),this.indexManager=new Xc,this.remoteDocumentCache=function(t){return new Gl(t)}((t=>this.referenceDelegate.Kr(t))),this.serializer=new gc(e),this.$r=new Vl(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.qr=!1,Promise.resolve()}get started(){return this.qr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(t){return this.indexManager}getDocumentOverlayCache(t){let e=this.overlays[t.toKey()];return e||(e=new ql,this.overlays[t.toKey()]=e),e}getMutationQueue(t,e){let n=this.Lr[t.toKey()];return n||(n=new zl(e,this.referenceDelegate),this.Lr[t.toKey()]=n),n}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("MemoryPersistence","Starting transaction:",t);const r=new Ql(this.kr.next());return this.referenceDelegate.Ur(),n(r).next((t=>this.referenceDelegate.Wr(r).next((()=>t)))).toPromise().then((t=>(r.raiseOnCommittedEvent(),t)))}Gr(t,e){return Ps.or(Object.values(this.Lr).map((n=>()=>n.containsKey(t,e))))}}class Ql extends Ls{constructor(t){super(),this.currentSequenceNumber=t}}class Hl{constructor(t){this.persistence=t,this.zr=new Bl,this.jr=null}static Hr(t){return new Hl(t)}get Jr(){if(this.jr)return this.jr;throw Hr()}addReference(t,e,n){return this.zr.addReference(n,e),this.Jr.delete(n.toString()),Ps.resolve()}removeReference(t,e,n){return this.zr.removeReference(n,e),this.Jr.add(n.toString()),Ps.resolve()}markPotentiallyOrphaned(t,e){return this.Jr.add(e.toString()),Ps.resolve()}removeTarget(t,e){this.zr.Vr(e.targetId).forEach((t=>this.Jr.add(t.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(t,e.targetId).next((t=>{t.forEach((t=>this.Jr.add(t.toString())))})).next((()=>n.removeTargetData(t,e)))}Ur(){this.jr=new Set}Wr(t){const e=this.persistence.getRemoteDocumentCache().newChangeBuffer();return Ps.forEach(this.Jr,(n=>{const r=_s.fromPath(n);return this.Yr(t,r).next((t=>{t||e.removeEntry(r,ps.min())}))})).next((()=>(this.jr=null,e.apply(t))))}updateLimboDocument(t,e){return this.Yr(t,e).next((t=>{t?this.Jr.delete(e.toString()):this.Jr.add(e.toString())}))}Kr(t){return 0}Yr(t,e){return Ps.or([()=>Ps.resolve(this.zr.containsKey(e)),()=>this.persistence.getTargetCache().containsKey(t,e),()=>this.persistence.Gr(t,e)])}}class Wl{constructor(t,e){this.persistence=t,this.Zr=new pa((t=>Js(t.path)),((t,e)=>t.isEqual(e))),this.garbageCollector=Tl(this,e)}static Hr(t,e){return new Wl(t,e)}Ur(){}Wr(t){return Ps.resolve()}forEachTarget(t,e){return this.persistence.getTargetCache().forEachTarget(t,e)}Hn(t){const e=this.Zn(t);return this.persistence.getTargetCache().getTargetCount(t).next((t=>e.next((e=>t+e))))}Zn(t){let e=0;return this.Jn(t,(t=>{e++})).next((()=>e))}Jn(t,e){return Ps.forEach(this.Zr,((n,r)=>this.er(t,n,r).next((t=>t?Ps.resolve():e(r)))))}removeTargets(t,e,n){return this.persistence.getTargetCache().removeTargets(t,e,n)}removeOrphanedDocuments(t,e){let n=0;const r=this.persistence.getRemoteDocumentCache(),s=r.newChangeBuffer();return r.Fr(t,(r=>this.er(t,r,e).next((t=>{t||(n++,s.removeEntry(r,ps.min()))})))).next((()=>s.apply(t))).next((()=>n))}markPotentiallyOrphaned(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}removeTarget(t,e){const n=e.withSequenceNumber(t.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(t,n)}addReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}removeReference(t,e,n){return this.Zr.set(n,t.currentSequenceNumber),Ps.resolve()}updateLimboDocument(t,e){return this.Zr.set(e,t.currentSequenceNumber),Ps.resolve()}Kr(t){let e=t.key.toString().length;return t.isFoundDocument()&&(e+=so(t.data.value)),e}er(t,e,n){return Ps.or([()=>this.persistence.Gr(t,e),()=>this.persistence.getTargetCache().containsKey(t,e),()=>{const t=this.Zr.get(e);return Ps.resolve(void 0!==t&&t>n)}])}getCacheSize(t){return this.persistence.getRemoteDocumentCache().getSize(t)}}class Yl{constructor(t){this.serializer=t}N(t,e,n,r){const s=new Fs("createOrUpgrade",e);n<1&&r>=1&&(function(t){t.createObjectStore("owner")}(t),function(t){t.createObjectStore("mutationQueues",{keyPath:"userId"}),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0}),t.createObjectStore("documentMutations")}(t),Xl(t),function(t){t.createObjectStore("remoteDocuments")}(t));let i=Ps.resolve();return n<3&&r>=3&&(0!==n&&(function(t){t.deleteObjectStore("targetDocuments"),t.deleteObjectStore("targets"),t.deleteObjectStore("targetGlobal")}(t),Xl(t)),i=i.next((()=>function(t){const e=t.store("targetGlobal"),n={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:ps.min().toTimestamp(),targetCount:0};return e.put("targetGlobalKey",n)}(s)))),n<4&&r>=4&&(0!==n&&(i=i.next((()=>function(t,e){return e.store("mutations").W().next((n=>{t.deleteObjectStore("mutations"),t.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",ni,{unique:!0});const r=e.store("mutations"),s=n.map((t=>r.put(t)));return Ps.waitFor(s)}))}(t,s)))),i=i.next((()=>{!function(t){t.createObjectStore("clientMetadata",{keyPath:"clientId"})}(t)}))),n<5&&r>=5&&(i=i.next((()=>this.Xr(s)))),n<6&&r>=6&&(i=i.next((()=>(function(t){t.createObjectStore("remoteDocumentGlobal")}(t),this.ei(s))))),n<7&&r>=7&&(i=i.next((()=>this.ti(s)))),n<8&&r>=8&&(i=i.next((()=>this.ni(t,s)))),n<9&&r>=9&&(i=i.next((()=>{!function(t){t.objectStoreNames.contains("remoteDocumentChanges")&&t.deleteObjectStore("remoteDocumentChanges")}(t)}))),n<10&&r>=10&&(i=i.next((()=>this.ri(s)))),n<11&&r>=11&&(i=i.next((()=>{!function(t){t.createObjectStore("bundles",{keyPath:"bundleId"})}(t),function(t){t.createObjectStore("namedQueries",{keyPath:"name"})}(t)}))),n<12&&r>=12&&(i=i.next((()=>{!function(t){const e=t.createObjectStore("documentOverlays",{keyPath:yi});e.createIndex("collectionPathOverlayIndex",wi,{unique:!1}),e.createIndex("collectionGroupOverlayIndex",vi,{unique:!1})}(t)}))),n<13&&r>=13&&(i=i.next((()=>function(t){const e=t.createObjectStore("remoteDocumentsV14",{keyPath:oi});e.createIndex("documentKeyIndex",ai),e.createIndex("collectionGroupIndex",ui)}(t))).next((()=>this.ii(t,s))).next((()=>t.deleteObjectStore("remoteDocuments")))),n<14&&r>=14&&(i=i.next((()=>this.si(t,s)))),n<15&&r>=15&&(i=i.next((()=>function(t){t.createObjectStore("indexConfiguration",{keyPath:"indexId",autoIncrement:!0}).createIndex("collectionGroupIndex","collectionGroup",{unique:!1}),t.createObjectStore("indexState",{keyPath:fi}).createIndex("sequenceNumberIndex",gi,{unique:!1}),t.createObjectStore("indexEntries",{keyPath:mi}).createIndex("documentKeyIndex",pi,{unique:!1})}(t)))),i}ei(t){let e=0;return t.store("remoteDocuments").Y(((t,n)=>{e+=cl(n)})).next((()=>{const n={byteSize:e};return t.store("remoteDocumentGlobal").put("remoteDocumentGlobalKey",n)}))}Xr(t){const e=t.store("mutationQueues"),n=t.store("mutations");return e.W().next((e=>Ps.forEach(e,(e=>{const r=IDBKeyRange.bound([e.userId,-1],[e.userId,e.lastAcknowledgedBatchId]);return n.W("userMutationsIndex",r).next((n=>Ps.forEach(n,(n=>{Wr(n.userId===e.userId);const r=vc(this.serializer,n);return ul(t,e.userId,r).next((()=>{}))}))))}))))}ti(t){const e=t.store("targetDocuments"),n=t.store("remoteDocuments");return t.store("targetGlobal").get("targetGlobalKey").next((t=>{const r=[];return n.Y(((n,s)=>{const i=new ws(n),o=function(t){return[0,Js(t)]}(i);r.push(e.get(o).next((n=>n?Ps.resolve():(n=>e.put({targetId:0,path:Js(n),sequenceNumber:t.highestListenSequenceNumber}))(i))))})).next((()=>Ps.waitFor(r)))}))}ni(t,e){t.createObjectStore("collectionParents",{keyPath:di});const n=e.store("collectionParents"),r=new Jc,s=t=>{if(r.add(t)){const e=t.lastSegment(),r=t.popLast();return n.put({collectionId:e,parent:Js(r)})}};return e.store("remoteDocuments").Y({J:!0},((t,e)=>{const n=new ws(t);return s(n.popLast())})).next((()=>e.store("documentMutations").Y({J:!0},(([t,e,n],r)=>{const i=ei(e);return s(i.popLast())}))))}ri(t){const e=t.store("targets");return e.Y(((t,n)=>{const r=bc(n),s=_c(this.serializer,r);return e.put(s)}))}ii(t,e){const n=e.store("remoteDocuments"),r=[];return n.Y(((t,n)=>{const s=e.store("remoteDocumentsV14"),i=function(t){return t.document?new _s(ws.fromString(t.document.name).popFirst(5)):t.noDocument?_s.fromSegments(t.noDocument.path):t.unknownDocument?_s.fromSegments(t.unknownDocument.path):Hr()}(n).path.toArray(),o={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:n.readTime||[0,0],unknownDocument:n.unknownDocument,noDocument:n.noDocument,document:n.document,hasCommittedMutations:!!n.hasCommittedMutations};r.push(s.put(o))})).next((()=>Ps.waitFor(r)))}si(t,e){const n=e.store("mutations"),r=Al(this.serializer),s=new $l(Hl.Hr,this.serializer.ct);return n.W().next((t=>{const n=new Map;return t.forEach((t=>{var e;let r=null!==(e=n.get(t.userId))&&void 0!==e?e:Ca();vc(this.serializer,t).keys().forEach((t=>r=r.add(t))),n.set(t.userId,r)})),Ps.forEach(n,((t,n)=>{const i=new qr(n),o=Ac.lt(this.serializer,i),a=s.getIndexManager(i),u=ll.lt(i,this.serializer,a,s.referenceDelegate);return new Fl(r,u,o,a).recalculateAndSaveOverlaysForDocumentKeys(new Si(e,Hs._e),t).next()}))}))}}function Xl(t){t.createObjectStore("targetDocuments",{keyPath:li}).createIndex("documentTargetsIndex",hi,{unique:!0}),t.createObjectStore("targets",{keyPath:"targetId"}).createIndex("queryTargetsIndex",ci,{unique:!0}),t.createObjectStore("targetGlobal")}const Jl="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class Zl{constructor(t,e,n,r,s,i,o,a,u,c,l=15){if(this.allowTabSynchronization=t,this.persistenceKey=e,this.clientId=n,this.oi=s,this.window=i,this.document=o,this._i=u,this.ai=c,this.ui=l,this.kr=null,this.qr=!1,this.isPrimary=!1,this.networkEnabled=!0,this.ci=null,this.inForeground=!1,this.li=null,this.hi=null,this.Pi=Number.NEGATIVE_INFINITY,this.Ii=t=>Promise.resolve(),!Zl.D())throw new Zr(Jr.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new Sl(this,r),this.Ti=e+"main",this.serializer=new gc(a),this.Ei=new Vs(this.Ti,this.ui,new Yl(this.serializer)),this.Qr=new pl(this.referenceDelegate,this.serializer),this.remoteDocumentCache=Al(this.serializer),this.$r=new xc,this.window&&this.window.localStorage?this.di=this.window.localStorage:(this.di=null,!1===c&&Kr("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Ai().then((()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return this.Ri(),this.Vi(),this.mi(),this.runTransaction("getHighestListenSequenceNumber","readonly",(t=>this.Qr.getHighestSequenceNumber(t)))})).then((t=>{this.kr=new Hs(t,this._i)})).then((()=>{this.qr=!0})).catch((t=>(this.Ei&&this.Ei.close(),Promise.reject(t))))}fi(t){return this.Ii=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ei.L((async e=>{null===e.newVersion&&await t()}))}setNetworkEnabled(t){this.networkEnabled!==t&&(this.networkEnabled=t,this.oi.enqueueAndForget((async()=>{this.started&&await this.Ai()})))}Ai(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",(t=>eh(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next((()=>{if(this.isPrimary)return this.gi(t).next((t=>{t||(this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))))}))})).next((()=>this.pi(t))).next((e=>this.isPrimary&&!e?this.yi(t).next((()=>!1)):!!e&&this.wi(t).next((()=>!0)))))).catch((t=>{if(Us(t))return jr("IndexedDbPersistence","Failed to extend owner lease: ",t),this.isPrimary;if(!this.allowTabSynchronization)throw t;return jr("IndexedDbPersistence","Releasing owner lease after error during lease refresh",t),!1})).then((t=>{this.isPrimary!==t&&this.oi.enqueueRetryable((()=>this.Ii(t))),this.isPrimary=t}))}gi(t){return th(t).get("owner").next((t=>Ps.resolve(this.Si(t))))}bi(t){return eh(t).delete(this.clientId)}async Di(){if(this.isPrimary&&!this.Ci(this.Pi,18e5)){this.Pi=Date.now();const t=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",(t=>{const e=xi(t,"clientMetadata");return e.W().next((t=>{const n=this.vi(t,18e5),r=t.filter((t=>-1===n.indexOf(t)));return Ps.forEach(r,(t=>e.delete(t.clientId))).next((()=>r))}))})).catch((()=>[]));if(this.di)for(const e of t)this.di.removeItem(this.Fi(e.clientId))}}mi(){this.hi=this.oi.enqueueAfterDelay("client_metadata_refresh",4e3,(()=>this.Ai().then((()=>this.Di())).then((()=>this.mi()))))}Si(t){return!!t&&t.ownerId===this.clientId}pi(t){return this.ai?Ps.resolve(!0):th(t).get("owner").next((e=>{if(null!==e&&this.Ci(e.leaseTimestampMs,5e3)&&!this.Mi(e.ownerId)){if(this.Si(e)&&this.networkEnabled)return!0;if(!this.Si(e)){if(!e.allowTabSynchronization)throw new Zr(Jr.FAILED_PRECONDITION,Jl);return!1}}return!(!this.networkEnabled||!this.inForeground)||eh(t).W().next((t=>void 0===this.vi(t,5e3).find((t=>{if(this.clientId!==t.clientId){const e=!this.networkEnabled&&t.networkEnabled,n=!this.inForeground&&t.inForeground,r=this.networkEnabled===t.networkEnabled;if(e||n&&r)return!0}return!1}))))})).next((t=>(this.isPrimary!==t&&jr("IndexedDbPersistence",`Client ${t?"is":"is not"} eligible for a primary lease.`),t)))}async shutdown(){this.qr=!1,this.xi(),this.hi&&(this.hi.cancel(),this.hi=null),this.Oi(),this.Ni(),await this.Ei.runTransaction("shutdown","readwrite",["owner","clientMetadata"],(t=>{const e=new Si(t,Hs._e);return this.yi(e).next((()=>this.bi(e)))})),this.Ei.close(),this.Bi()}vi(t,e){return t.filter((t=>this.Ci(t.updateTimeMs,e)&&!this.Mi(t.clientId)))}Li(){return this.runTransaction("getActiveClients","readonly",(t=>eh(t).W().next((t=>this.vi(t,18e5).map((t=>t.clientId))))))}get started(){return this.qr}getMutationQueue(t,e){return ll.lt(t,this.serializer,e,this.referenceDelegate)}getTargetCache(){return this.Qr}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(t){return new tl(t,this.serializer.ct.databaseId)}getDocumentOverlayCache(t){return Ac.lt(this.serializer,t)}getBundleCache(){return this.$r}runTransaction(t,e,n){jr("IndexedDbPersistence","Starting transaction:",t);const r="readonly"===e?"readonly":"readwrite",s=function(t){return 15===t?Ti:14===t?Ei:13===t?Ii:12===t?_i:11===t?bi:void Hr()}(this.ui);let i;return this.Ei.runTransaction(t,r,s,(r=>(i=new Si(r,this.kr?this.kr.next():Hs._e),"readwrite-primary"===e?this.gi(i).next((t=>!!t||this.pi(i))).next((e=>{if(!e)throw Kr(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.oi.enqueueRetryable((()=>this.Ii(!1))),new Zr(Jr.FAILED_PRECONDITION,Ms);return n(i)})).next((t=>this.wi(i).next((()=>t)))):this.ki(i).next((()=>n(i)))))).then((t=>(i.raiseOnCommittedEvent(),t)))}ki(t){return th(t).get("owner").next((t=>{if(null!==t&&this.Ci(t.leaseTimestampMs,5e3)&&!this.Mi(t.ownerId)&&!this.Si(t)&&!(this.ai||this.allowTabSynchronization&&t.allowTabSynchronization))throw new Zr(Jr.FAILED_PRECONDITION,Jl)}))}wi(t){const e={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return th(t).put("owner",e)}static D(){return Vs.D()}yi(t){const e=th(t);return e.get("owner").next((t=>this.Si(t)?(jr("IndexedDbPersistence","Releasing primary lease."),e.delete("owner")):Ps.resolve()))}Ci(t,e){const n=Date.now();return!(tn&&(Kr(`Detected an update time that is in the future: ${t} > ${n}`),1))}Ri(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.li=()=>{this.oi.enqueueAndForget((()=>(this.inForeground="visible"===this.document.visibilityState,this.Ai())))},this.document.addEventListener("visibilitychange",this.li),this.inForeground="visible"===this.document.visibilityState)}Oi(){this.li&&(this.document.removeEventListener("visibilitychange",this.li),this.li=null)}Vi(){var t;"function"==typeof(null===(t=this.window)||void 0===t?void 0:t.addEventListener)&&(this.ci=()=>{this.xi();const t=/(?:Version|Mobile)\/1[456]/;f()&&(navigator.appVersion.match(t)||navigator.userAgent.match(t))&&this.oi.enterRestrictedMode(!0),this.oi.enqueueAndForget((()=>this.shutdown()))},this.window.addEventListener("pagehide",this.ci))}Ni(){this.ci&&(this.window.removeEventListener("pagehide",this.ci),this.ci=null)}Mi(t){var e;try{const n=null!==(null===(e=this.di)||void 0===e?void 0:e.getItem(this.Fi(t)));return jr("IndexedDbPersistence",`Client '${t}' ${n?"is":"is not"} zombied in LocalStorage`),n}catch(t){return Kr("IndexedDbPersistence","Failed to get zombied client id.",t),!1}}xi(){if(this.di)try{this.di.setItem(this.Fi(this.clientId),String(Date.now()))}catch(t){Kr("Failed to set zombie client id.",t)}}Bi(){if(this.di)try{this.di.removeItem(this.Fi(this.clientId))}catch(t){}}Fi(t){return`firestore_zombie_${this.persistenceKey}_${t}`}}function th(t){return xi(t,"owner")}function eh(t){return xi(t,"clientMetadata")}function nh(t,e){let n=t.projectId;return t.isDefaultDatabase||(n+="."+t.database),"firestore/"+e+"/"+n+"/"}class rh{constructor(t,e,n,r){this.targetId=t,this.fromCache=e,this.qi=n,this.Qi=r}static Ki(t,e){let n=Ca(),r=Ca();for(const t of e.docChanges)switch(t.type){case 0:n=n.add(t.doc.key);break;case 1:r=r.add(t.doc.key)}return new rh(t,e.fromCache,n,r)}}class sh{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(t){this._documentReadCount+=t}}class ih{constructor(){this.$i=!1,this.Ui=!1,this.Wi=100,this.Gi=f()?8:Vs.v(d())>0?6:4}initialize(t,e){this.zi=t,this.indexManager=e,this.$i=!0}getDocumentsMatchingQuery(t,e,n,r){const s={result:null};return this.ji(t,e).next((t=>{s.result=t})).next((()=>{if(!s.result)return this.Hi(t,e,r,n).next((t=>{s.result=t}))})).next((()=>{if(s.result)return;const n=new sh;return this.Ji(t,e,n).next((r=>{if(s.result=r,this.Ui)return this.Yi(t,e,n,r.size)}))})).next((()=>s.result))}Yi(t,e,n,r){return n.documentReadCountthis.Gi*r?(zr()<=_.DEBUG&&jr("QueryEngine","The SDK decides to create cache indexes for query:",ha(e),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(t,ia(e))):Ps.resolve())}ji(t,e){if(na(e))return Ps.resolve(null);let n=ia(e);return this.indexManager.getIndexType(t,n).next((r=>0===r?null:(null!==e.limit&&1===r&&(e=ua(e,null,"F"),n=ia(e)),this.indexManager.getDocumentsMatchingTarget(t,n).next((r=>{const s=Ca(...r);return this.zi.getDocuments(t,s).next((r=>this.indexManager.getMinOffset(t,n).next((n=>{const i=this.Zi(e,r);return this.Xi(e,i,s,n.readTime)?this.ji(t,ua(e,null,"F")):this.es(t,i,e,n)}))))})))))}Hi(t,e,n,r){return na(e)||r.isEqual(ps.min())?Ps.resolve(null):this.zi.getDocuments(t,n).next((s=>{const i=this.Zi(e,s);return this.Xi(e,i,n,r)?Ps.resolve(null):(zr()<=_.DEBUG&&jr("QueryEngine","Re-using previous result from %s to execute query: %s",r.toString(),ha(e)),this.es(t,i,e,As(r,-1)).next((t=>t)))}))}Zi(t,e){let n=new Mi(ga(t));return e.forEach(((e,r)=>{da(t,r)&&(n=n.add(r))})),n}Xi(t,e,n,r){if(null===t.limit)return!1;if(n.size!==e.size)return!0;const s="F"===t.limitType?e.last():e.first();return!!s&&(s.hasPendingWrites||s.version.compareTo(r)>0)}Ji(t,e,n){return zr()<=_.DEBUG&&jr("QueryEngine","Using full collection scan to execute query:",ha(e)),this.zi.getDocumentsMatchingQuery(t,e,ks.min(),n)}es(t,e,n,r){return this.zi.getDocumentsMatchingQuery(t,n,r).next((t=>(e.forEach((e=>{t=t.insert(e.key,e)})),t)))}}class oh{constructor(t,e,n,r){this.persistence=t,this.ts=e,this.serializer=r,this.ns=new Ni(ds),this.rs=new pa((t=>Qo(t)),Ho),this.ss=new Map,this.os=t.getRemoteDocumentCache(),this.Qr=t.getTargetCache(),this.$r=t.getBundleCache(),this._s(n)}_s(t){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(t),this.indexManager=this.persistence.getIndexManager(t),this.mutationQueue=this.persistence.getMutationQueue(t,this.indexManager),this.localDocuments=new Fl(this.os,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.os.setIndexManager(this.indexManager),this.ts.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(e=>t.collect(e,this.ns)))}}function ah(t,e,n,r){return new oh(t,e,n,r)}async function uh(t,e){const n=Xr(t);return await n.persistence.runTransaction("Handle user change","readonly",(t=>{let r;return n.mutationQueue.getAllMutationBatches(t).next((s=>(r=s,n._s(e),n.mutationQueue.getAllMutationBatches(t)))).next((e=>{const s=[],i=[];let o=Ca();for(const t of r){s.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}for(const t of e){i.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}return n.localDocuments.getDocuments(t,o).next((t=>({us:t,removedBatchIds:s,addedBatchIds:i})))}))}))}function ch(t){const e=Xr(t);return e.persistence.runTransaction("Get last remote snapshot version","readonly",(t=>e.Qr.getLastRemoteSnapshotVersion(t)))}function lh(t,e,n){let r=Ca(),s=Ca();return n.forEach((t=>r=r.add(t))),e.getEntries(t,r).next((t=>{let r=wa();return n.forEach(((n,i)=>{const o=t.get(n);i.isFoundDocument()!==o.isFoundDocument()&&(s=s.add(n)),i.isNoDocument()&&i.version.isEqual(ps.min())?(e.removeEntry(n,i.readTime),r=r.insert(n,i)):!o.isValidDocument()||i.version.compareTo(o.version)>0||0===i.version.compareTo(o.version)&&o.hasPendingWrites?(e.addEntry(i),r=r.insert(n,i)):jr("LocalStore","Ignoring outdated watch update for ",n,". Current version:",o.version," Watch version:",i.version)})),{cs:r,ls:s}}))}function hh(t,e){const n=Xr(t);return n.persistence.runTransaction("Get next mutation batch","readonly",(t=>(void 0===e&&(e=-1),n.mutationQueue.getNextMutationBatchAfterBatchId(t,e))))}function dh(t,e){const n=Xr(t);return n.persistence.runTransaction("Allocate target","readwrite",(t=>{let r;return n.Qr.getTargetData(t,e).next((s=>s?(r=s,Ps.resolve(r)):n.Qr.allocateTargetId(t).next((s=>(r=new fc(e,s,"TargetPurposeListen",t.currentSequenceNumber),n.Qr.addTargetData(t,r).next((()=>r)))))))})).then((t=>{const r=n.ns.get(t.targetId);return(null===r||t.snapshotVersion.compareTo(r.snapshotVersion)>0)&&(n.ns=n.ns.insert(t.targetId,t),n.rs.set(e,t.targetId)),t}))}async function fh(t,e,n){const r=Xr(t),s=r.ns.get(e),i=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",i,(t=>r.persistence.referenceDelegate.removeTarget(t,s)))}catch(t){if(!Us(t))throw t;jr("LocalStore",`Failed to update sequence numbers for target ${e}: ${t}`)}r.ns=r.ns.remove(e),r.rs.delete(s.target)}function gh(t,e,n){const r=Xr(t);let s=ps.min(),i=Ca();return r.persistence.runTransaction("Execute query","readwrite",(t=>function(t,e,n){const r=Xr(t),s=r.rs.get(n);return void 0!==s?Ps.resolve(r.ns.get(s)):r.Qr.getTargetData(e,n)}(r,t,ia(e)).next((e=>{if(e)return s=e.lastLimboFreeSnapshotVersion,r.Qr.getMatchingKeysForTargetId(t,e.targetId).next((t=>{i=t}))})).next((()=>r.ts.getDocumentsMatchingQuery(t,e,n?s:ps.min(),n?i:Ca()))).next((t=>(yh(r,fa(e),t),{documents:t,hs:i})))))}function mh(t,e){const n=Xr(t),r=Xr(n.Qr),s=n.ns.get(e);return s?Promise.resolve(s.target):n.persistence.runTransaction("Get target data","readonly",(t=>r._t(t,e).next((t=>t?t.target:null))))}function ph(t,e){const n=Xr(t),r=n.ss.get(e)||ps.min();return n.persistence.runTransaction("Get new document changes","readonly",(t=>n.os.getAllFromCollectionGroup(t,e,As(r,-1),Number.MAX_SAFE_INTEGER))).then((t=>(yh(n,e,t),t)))}function yh(t,e,n){let r=t.ss.get(e)||ps.min();n.forEach(((t,e)=>{e.readTime.compareTo(r)>0&&(r=e.readTime)})),t.ss.set(e,r)}async function wh(t,e,n=Ca()){const r=await dh(t,ia(Ic(e.bundledQuery))),s=Xr(t);return s.persistence.runTransaction("Save named query","readwrite",(t=>{const i=Uu(e.readTime);if(r.snapshotVersion.compareTo(i)>=0)return s.$r.saveNamedQuery(t,e);const o=r.withResumeToken(qi.EMPTY_BYTE_STRING,i);return s.ns=s.ns.insert(o.targetId,o),s.Qr.updateTargetData(t,o).next((()=>s.Qr.removeMatchingKeysForTargetId(t,r.targetId))).next((()=>s.Qr.addMatchingKeys(t,n,r.targetId))).next((()=>s.$r.saveNamedQuery(t,e)))}))}function vh(t,e){return`firestore_clients_${t}_${e}`}function bh(t,e,n){let r=`firestore_mutations_${t}_${n}`;return e.isAuthenticated()&&(r+=`_${e.uid}`),r}function _h(t,e){return`firestore_targets_${t}_${e}`}class Ih{constructor(t,e,n,r){this.user=t,this.batchId=e,this.state=n,this.error=r}static Es(t,e,n){const r=JSON.parse(n);let s,i="object"==typeof r&&-1!==["pending","acknowledged","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code,i&&(s=new Zr(r.error.code,r.error.message))),i?new Ih(t,e,r.state,s):(Kr("SharedClientState",`Failed to parse mutation state for ID '${e}': ${n}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Eh{constructor(t,e,n){this.targetId=t,this.state=e,this.error=n}static Es(t,e){const n=JSON.parse(e);let r,s="object"==typeof n&&-1!==["not-current","current","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code,s&&(r=new Zr(n.error.code,n.error.message))),s?new Eh(t,n.state,r):(Kr("SharedClientState",`Failed to parse target state for ID '${t}': ${e}`),null)}ds(){const t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)}}class Th{constructor(t,e){this.clientId=t,this.activeTargetIds=e}static Es(t,e){const n=JSON.parse(e);let r="object"==typeof n&&n.activeTargetIds instanceof Array,s=Aa();for(let t=0;r&&tthis.shutdown())),this.started=!0}writeSequenceNumber(t){this.setItem(this.Ss,JSON.stringify(t))}getAllActiveQueryTargets(){return this.Ns(this.ps)}isActiveQueryTarget(t){let e=!1;return this.ps.forEach(((n,r)=>{r.activeTargetIds.has(t)&&(e=!0)})),e}addPendingMutation(t){this.Bs(t,"pending")}updateMutationState(t,e,n){this.Bs(t,e,n),this.Ls(t)}addLocalQueryTarget(t){let e="not-current";if(this.isActiveQueryTarget(t)){const n=this.storage.getItem(_h(this.persistenceKey,t));if(n){const r=Eh.Es(t,n);r&&(e=r.state)}}return this.ks.As(t),this.Ms(),e}removeLocalQueryTarget(t){this.ks.Rs(t),this.Ms()}isLocalQueryTarget(t){return this.ks.activeTargetIds.has(t)}clearQueryState(t){this.removeItem(_h(this.persistenceKey,t))}updateQueryState(t,e,n){this.qs(t,e,n)}handleUserChange(t,e,n){e.forEach((t=>{this.Ls(t)})),this.currentUser=t,n.forEach((t=>{this.addPendingMutation(t)}))}setOnlineState(t){this.Qs(t)}notifyBundleLoaded(t){this.Ks(t)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.fs),this.removeItem(this.ws),this.started=!1)}getItem(t){const e=this.storage.getItem(t);return jr("SharedClientState","READ",t,e),e}setItem(t,e){jr("SharedClientState","SET",t,e),this.storage.setItem(t,e)}removeItem(t){jr("SharedClientState","REMOVE",t),this.storage.removeItem(t)}gs(t){const e=t;if(e.storageArea===this.storage){if(jr("SharedClientState","EVENT",e.key,e.newValue),e.key===this.ws)return void Kr("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.oi.enqueueRetryable((async()=>{if(this.started){if(null!==e.key)if(this.bs.test(e.key)){if(null==e.newValue){const t=this.$s(e.key);return this.Us(t,null)}{const t=this.Ws(e.key,e.newValue);if(t)return this.Us(t.clientId,t)}}else if(this.Ds.test(e.key)){if(null!==e.newValue){const t=this.Gs(e.key,e.newValue);if(t)return this.zs(t)}}else if(this.Cs.test(e.key)){if(null!==e.newValue){const t=this.js(e.key,e.newValue);if(t)return this.Hs(t)}}else if(e.key===this.vs){if(null!==e.newValue){const t=this.xs(e.newValue);if(t)return this.Os(t)}}else if(e.key===this.Ss){const t=function(t){let e=Hs._e;if(null!=t)try{const n=JSON.parse(t);Wr("number"==typeof n),e=n}catch(t){Kr("SharedClientState","Failed to read sequence number from WebStorage",t)}return e}(e.newValue);t!==Hs._e&&this.sequenceNumberHandler(t)}else if(e.key===this.Fs){const t=this.Js(e.newValue);await Promise.all(t.map((t=>this.syncEngine.Ys(t))))}}else this.ys.push(e)}))}}get ks(){return this.ps.get(this.Vs)}Ms(){this.setItem(this.ws,this.ks.ds())}Bs(t,e,n){const r=new Ih(this.currentUser,t,e,n),s=bh(this.persistenceKey,this.currentUser,t);this.setItem(s,r.ds())}Ls(t){const e=bh(this.persistenceKey,this.currentUser,t);this.removeItem(e)}Qs(t){const e={clientId:this.Vs,onlineState:t};this.storage.setItem(this.vs,JSON.stringify(e))}qs(t,e,n){const r=_h(this.persistenceKey,t),s=new Eh(t,e,n);this.setItem(r,s.ds())}Ks(t){const e=JSON.stringify(Array.from(t));this.setItem(this.Fs,e)}$s(t){const e=this.bs.exec(t);return e?e[1]:null}Ws(t,e){const n=this.$s(t);return Th.Es(n,e)}Gs(t,e){const n=this.Ds.exec(t),r=Number(n[1]),s=void 0!==n[2]?n[2]:null;return Ih.Es(new qr(s),r,e)}js(t,e){const n=this.Cs.exec(t),r=Number(n[1]);return Eh.Es(r,e)}xs(t){return Sh.Es(t)}Js(t){return JSON.parse(t)}async zs(t){if(t.user.uid===this.currentUser.uid)return this.syncEngine.Zs(t.batchId,t.state,t.error);jr("SharedClientState",`Ignoring mutation for non-active user ${t.user.uid}`)}Hs(t){return this.syncEngine.Xs(t.targetId,t.state,t.error)}Us(t,e){const n=e?this.ps.insert(t,e):this.ps.remove(t),r=this.Ns(this.ps),s=this.Ns(n),i=[],o=[];return s.forEach((t=>{r.has(t)||i.push(t)})),r.forEach((t=>{s.has(t)||o.push(t)})),this.syncEngine.eo(i,o).then((()=>{this.ps=n}))}Os(t){this.ps.get(t.clientId)&&this.onlineStateHandler(t.onlineState)}Ns(t){let e=Aa();return t.forEach(((t,n)=>{e=e.unionWith(n.activeTargetIds)})),e}}class Dh{constructor(){this.no=new xh,this.ro={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(t){}updateMutationState(t,e,n){}addLocalQueryTarget(t){return this.no.As(t),this.ro[t]||"not-current"}updateQueryState(t,e,n){this.ro[t]=e}removeLocalQueryTarget(t){this.no.Rs(t)}isLocalQueryTarget(t){return this.no.activeTargetIds.has(t)}clearQueryState(t){delete this.ro[t]}getAllActiveQueryTargets(){return this.no.activeTargetIds}isActiveQueryTarget(t){return this.no.activeTargetIds.has(t)}start(){return this.no=new xh,Promise.resolve()}handleUserChange(t,e,n){}setOnlineState(t){}shutdown(){}writeSequenceNumber(t){}notifyBundleLoaded(t){}}class Ah{io(t){}shutdown(){}}class Nh{constructor(){this.so=()=>this.oo(),this._o=()=>this.ao(),this.uo=[],this.co()}io(t){this.uo.push(t)}shutdown(){window.removeEventListener("online",this.so),window.removeEventListener("offline",this._o)}co(){window.addEventListener("online",this.so),window.addEventListener("offline",this._o)}oo(){jr("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const t of this.uo)t(0)}ao(){jr("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const t of this.uo)t(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let kh=null;function Rh(){return null===kh?kh=268435456+Math.round(2147483648*Math.random()):kh++,"0x"+kh.toString(16)}const Mh={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class Lh{constructor(t){this.lo=t.lo,this.ho=t.ho}Po(t){this.Io=t}To(t){this.Eo=t}onMessage(t){this.Ao=t}close(){this.ho()}send(t){this.lo(t)}Ro(){this.Io()}Vo(t){this.Eo(t)}mo(t){this.Ao(t)}}const Oh="WebChannelConnection";class Ph extends class{constructor(t){this.databaseInfo=t,this.databaseId=t.databaseId;const e=t.ssl?"https":"http",n=encodeURIComponent(this.databaseId.projectId),r=encodeURIComponent(this.databaseId.database);this.fo=e+"://"+t.host,this.po=`projects/${n}/databases/${r}`,this.yo="(default)"===this.databaseId.database?`project_id=${n}`:`project_id=${n}&database_id=${r}`}get wo(){return!1}So(t,e,n,r,s){const i=Rh(),o=this.bo(t,e.toUriEncodedString());jr("RestConnection",`Sending RPC '${t}' ${i}:`,o,n);const a={"google-cloud-resource-prefix":this.po,"x-goog-request-params":this.yo};return this.Do(a,r,s),this.Co(t,o,a,n).then((e=>(jr("RestConnection",`Received RPC '${t}' ${i}: `,e),e)),(e=>{throw $r("RestConnection",`RPC '${t}' ${i} failed with error: `,e,"url: ",o,"request:",n),e}))}vo(t,e,n,r,s,i){return this.So(t,e,n,r,s)}Do(t,e,n){t["X-Goog-Api-Client"]="gl-js/ fire/"+Br,t["Content-Type"]="text/plain",this.databaseInfo.appId&&(t["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach(((e,n)=>t[n]=e)),n&&n.headers.forEach(((e,n)=>t[n]=e))}bo(t,e){const n=Mh[t];return`${this.fo}/v1/${e}:${n}`}terminate(){}}{constructor(t){super(t),this.forceLongPolling=t.forceLongPolling,this.autoDetectLongPolling=t.autoDetectLongPolling,this.useFetchStreams=t.useFetchStreams,this.longPollingOptions=t.longPollingOptions}Co(t,e,n,r){const s=Rh();return new Promise(((i,o)=>{const a=new Or;a.setWithCredentials(!0),a.listenOnce(Rr.COMPLETE,(()=>{try{switch(a.getLastErrorCode()){case kr.NO_ERROR:const e=a.getResponseJson();jr(Oh,`XHR for RPC '${t}' ${s} received:`,JSON.stringify(e)),i(e);break;case kr.TIMEOUT:jr(Oh,`RPC '${t}' ${s} timed out`),o(new Zr(Jr.DEADLINE_EXCEEDED,"Request time out"));break;case kr.HTTP_ERROR:const n=a.getStatus();if(jr(Oh,`RPC '${t}' ${s} failed with status:`,n,"response text:",a.getResponseText()),n>0){let t=a.getResponseJson();Array.isArray(t)&&(t=t[0]);const e=null==t?void 0:t.error;if(e&&e.status&&e.message){const t=function(t){const e=t.toLowerCase().replace(/_/g,"-");return Object.values(Jr).indexOf(e)>=0?e:Jr.UNKNOWN}(e.status);o(new Zr(t,e.message))}else o(new Zr(Jr.UNKNOWN,"Server responded with status "+a.getStatus()))}else o(new Zr(Jr.UNAVAILABLE,"Connection failed."));break;default:Hr()}}finally{jr(Oh,`RPC '${t}' ${s} completed.`)}}));const u=JSON.stringify(r);jr(Oh,`RPC '${t}' ${s} sending request:`,r),a.send(e,"POST",u,n,15)}))}Fo(t,e,n){const r=Rh(),s=[this.fo,"/","google.firestore.v1.Firestore","/",t,"/channel"],i=new ar,o=oe(),a={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},u=this.longPollingOptions.timeoutSeconds;void 0!==u&&(a.longPollingTimeout=Math.round(1e3*u)),this.useFetchStreams&&(a.useFetchStreams=!0),this.Do(a.initMessageHeaders,e,n),a.encodeInitMessageHeaders=!0;const c=s.join("");jr(Oh,`Creating RPC '${t}' stream ${r}: ${c}`,a);const l=i.createWebChannel(c,a);let h=!1,d=!1;const f=new Lh({lo:e=>{d?jr(Oh,`Not sending because RPC '${t}' stream ${r} is closed:`,e):(h||(jr(Oh,`Opening RPC '${t}' stream ${r} transport.`),l.open(),h=!0),jr(Oh,`RPC '${t}' stream ${r} sending:`,e),l.send(e))},ho:()=>l.close()}),g=(t,e,n)=>{t.listen(e,(t=>{try{n(t)}catch(t){setTimeout((()=>{throw t}),0)}}))};return g(l,Lr.EventType.OPEN,(()=>{d||jr(Oh,`RPC '${t}' stream ${r} transport opened.`)})),g(l,Lr.EventType.CLOSE,(()=>{d||(d=!0,jr(Oh,`RPC '${t}' stream ${r} transport closed`),f.Vo())})),g(l,Lr.EventType.ERROR,(e=>{d||(d=!0,$r(Oh,`RPC '${t}' stream ${r} transport errored:`,e),f.Vo(new Zr(Jr.UNAVAILABLE,"The operation could not be completed")))})),g(l,Lr.EventType.MESSAGE,(e=>{var n;if(!d){const s=e.data[0];Wr(!!s);const i=s,o=i.error||(null===(n=i[0])||void 0===n?void 0:n.error);if(o){jr(Oh,`RPC '${t}' stream ${r} received error:`,o);const e=o.status;let n=function(t){const e=fu[t];if(void 0!==e)return pu(e)}(e),s=o.message;void 0===n&&(n=Jr.INTERNAL,s="Unknown error status: "+e+" with message "+o.message),d=!0,f.Vo(new Zr(n,s)),l.close()}else jr(Oh,`RPC '${t}' stream ${r} received:`,s),f.mo(s)}})),g(o,Mr.STAT_EVENT,(e=>{10===e.stat?jr(Oh,`RPC '${t}' stream ${r} detected buffering proxy`):11===e.stat&&jr(Oh,`RPC '${t}' stream ${r} detected no buffering proxy`)})),setTimeout((()=>{f.Ro()}),0),f}}function Fh(){return"undefined"!=typeof window?window:null}function Vh(){return"undefined"!=typeof document?document:null}function qh(t){return new Pu(t,!0)}class Bh{constructor(t,e,n=1e3,r=1.5,s=6e4){this.oi=t,this.timerId=e,this.Mo=n,this.xo=r,this.Oo=s,this.No=0,this.Bo=null,this.Lo=Date.now(),this.reset()}reset(){this.No=0}ko(){this.No=this.Oo}qo(t){this.cancel();const e=Math.floor(this.No+this.Qo()),n=Math.max(0,Date.now()-this.Lo),r=Math.max(0,e-n);r>0&&jr("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.No} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`),this.Bo=this.oi.enqueueAfterDelay(this.timerId,r,(()=>(this.Lo=Date.now(),t()))),this.No*=this.xo,this.Nothis.Oo&&(this.No=this.Oo)}Ko(){null!==this.Bo&&(this.Bo.skipDelay(),this.Bo=null)}cancel(){null!==this.Bo&&(this.Bo.cancel(),this.Bo=null)}Qo(){return(Math.random()-.5)*this.No}}class Uh{constructor(t,e,n,r,s,i,o,a){this.oi=t,this.$o=n,this.Uo=r,this.connection=s,this.authCredentialsProvider=i,this.appCheckCredentialsProvider=o,this.listener=a,this.state=0,this.Wo=0,this.Go=null,this.zo=null,this.stream=null,this.jo=new Bh(t,e)}Ho(){return 1===this.state||5===this.state||this.Jo()}Jo(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.Yo()}async stop(){this.Ho()&&await this.close(0)}Zo(){this.state=0,this.jo.reset()}Xo(){this.Jo()&&null===this.Go&&(this.Go=this.oi.enqueueAfterDelay(this.$o,6e4,(()=>this.e_())))}t_(t){this.n_(),this.stream.send(t)}async e_(){if(this.Jo())return this.close(0)}n_(){this.Go&&(this.Go.cancel(),this.Go=null)}r_(){this.zo&&(this.zo.cancel(),this.zo=null)}async close(t,e){this.n_(),this.r_(),this.jo.cancel(),this.Wo++,4!==t?this.jo.reset():e&&e.code===Jr.RESOURCE_EXHAUSTED?(Kr(e.toString()),Kr("Using maximum backoff delay to prevent overloading the backend."),this.jo.ko()):e&&e.code===Jr.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.i_(),this.stream.close(),this.stream=null),this.state=t,await this.listener.To(e)}i_(){}auth(){this.state=1;const t=this.s_(this.Wo),e=this.Wo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((([t,n])=>{this.Wo===e&&this.o_(t,n)}),(e=>{t((()=>{const t=new Zr(Jr.UNKNOWN,"Fetching auth token failed: "+e.message);return this.__(t)}))}))}o_(t,e){const n=this.s_(this.Wo);this.stream=this.a_(t,e),this.stream.Po((()=>{n((()=>(this.state=2,this.zo=this.oi.enqueueAfterDelay(this.Uo,1e4,(()=>(this.Jo()&&(this.state=3),Promise.resolve()))),this.listener.Po())))})),this.stream.To((t=>{n((()=>this.__(t)))})),this.stream.onMessage((t=>{n((()=>this.onMessage(t)))}))}Yo(){this.state=5,this.jo.qo((async()=>{this.state=0,this.start()}))}__(t){return jr("PersistentStream",`close with error: ${t}`),this.stream=null,this.close(4,t)}s_(t){return e=>{this.oi.enqueueAndForget((()=>this.Wo===t?e():(jr("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class zh extends Uh{constructor(t,e,n,r,s,i){super(t,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s}a_(t,e){return this.connection.Fo("Listen",t,e)}onMessage(t){this.jo.reset();const e=function(t,e){let n;if("targetChange"in e){e.targetChange;const r=function(t){return"NO_CHANGE"===t?0:"ADD"===t?1:"REMOVE"===t?2:"CURRENT"===t?3:"RESET"===t?4:Hr()}(e.targetChange.targetChangeType||"NO_CHANGE"),s=e.targetChange.targetIds||[],i=function(t,e){return t.useProto3Json?(Wr(void 0===e||"string"==typeof e),qi.fromBase64String(e||"")):(Wr(void 0===e||e instanceof Uint8Array),qi.fromUint8Array(e||new Uint8Array))}(t,e.targetChange.resumeToken),o=e.targetChange.cause,a=o&&function(t){const e=void 0===t.code?Jr.UNKNOWN:pu(t.code);return new Zr(e,t.message||"")}(o);n=new Du(r,s,i,a||null)}else if("documentChange"in e){e.documentChange;const r=e.documentChange;r.document,r.document.name,r.document.updateTime;const s=$u(t,r.document.name),i=Uu(r.document.updateTime),o=r.document.createTime?Uu(r.document.createTime):ps.min(),a=new wo({mapValue:{fields:r.document.fields}}),u=bo.newFoundDocument(s,i,o,a),c=r.targetIds||[],l=r.removedTargetIds||[];n=new xu(c,l,u.key,u)}else if("documentDelete"in e){e.documentDelete;const r=e.documentDelete;r.document;const s=$u(t,r.document),i=r.readTime?Uu(r.readTime):ps.min(),o=bo.newNoDocument(s,i),a=r.removedTargetIds||[];n=new xu([],a,o.key,o)}else if("documentRemove"in e){e.documentRemove;const r=e.documentRemove;r.document;const s=$u(t,r.document),i=r.removedTargetIds||[];n=new xu([],i,s,null)}else{if(!("filter"in e))return Hr();{e.filter;const t=e.filter;t.targetId;const{count:r=0,unchangedNames:s}=t,i=new du(r,s),o=t.targetId;n=new Cu(o,i)}}return n}(this.serializer,t),n=function(t){if(!("targetChange"in t))return ps.min();const e=t.targetChange;return e.targetIds&&e.targetIds.length?ps.min():e.readTime?Uu(e.readTime):ps.min()}(t);return this.listener.u_(e,n)}c_(t){const e={};e.database=Wu(this.serializer),e.addTarget=function(t,e){let n;const r=e.target;if(n=Wo(r)?{documents:ec(t,r)}:{query:nc(t,r).ut},n.targetId=e.targetId,e.resumeToken.approximateByteSize()>0){n.resumeToken=qu(t,e.resumeToken);const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}else if(e.snapshotVersion.compareTo(ps.min())>0){n.readTime=Vu(t,e.snapshotVersion.toTimestamp());const r=Fu(t,e.expectedCount);null!==r&&(n.expectedCount=r)}return n}(this.serializer,t);const n=function(t,e){const n=function(t){switch(t){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return Hr()}}(e.purpose);return null==n?null:{"goog-listen-tags":n}}(this.serializer,t);n&&(e.labels=n),this.t_(e)}l_(t){const e={};e.database=Wu(this.serializer),e.removeTarget=t,this.t_(e)}}class Gh extends Uh{constructor(t,e,n,r,s,i){super(t,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",e,n,r,i),this.serializer=s,this.h_=!1}get P_(){return this.h_}start(){this.h_=!1,this.lastStreamToken=void 0,super.start()}i_(){this.h_&&this.I_([])}a_(t,e){return this.connection.Fo("Write",t,e)}onMessage(t){if(Wr(!!t.streamToken),this.lastStreamToken=t.streamToken,this.h_){this.jo.reset();const e=function(t,e){return t&&t.length>0?(Wr(void 0!==e),t.map((t=>function(t,e){let n=t.updateTime?Uu(t.updateTime):Uu(e);return n.isEqual(ps.min())&&(n=Uu(e)),new $a(n,t.transformResults||[])}(t,e)))):[]}(t.writeResults,t.commitTime),n=Uu(t.commitTime);return this.listener.T_(n,e)}return Wr(!t.writeResults||0===t.writeResults.length),this.h_=!0,this.listener.E_()}d_(){const t={};t.database=Wu(this.serializer),this.t_(t)}I_(t){const e={streamToken:this.lastStreamToken,writes:t.map((t=>Zu(this.serializer,t)))};this.t_(e)}}class jh extends class{}{constructor(t,e,n,r){super(),this.authCredentials=t,this.appCheckCredentials=e,this.connection=n,this.serializer=r,this.A_=!1}R_(){if(this.A_)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}So(t,e,n,r){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([s,i])=>this.connection.So(t,Gu(e,n),r,s,i))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}vo(t,e,n,r,s){return this.R_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([i,o])=>this.connection.vo(t,Gu(e,n),r,i,o,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===Jr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new Zr(Jr.UNKNOWN,t.toString())}))}terminate(){this.A_=!0,this.connection.terminate()}}class Kh{constructor(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state="Unknown",this.m_=0,this.f_=null,this.g_=!0}p_(){0===this.m_&&(this.y_("Unknown"),this.f_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.f_=null,this.w_("Backend didn't respond within 10 seconds."),this.y_("Offline"),Promise.resolve()))))}S_(t){"Online"===this.state?this.y_("Unknown"):(this.m_++,this.m_>=1&&(this.b_(),this.w_(`Connection failed 1 times. Most recent error: ${t.toString()}`),this.y_("Offline")))}set(t){this.b_(),this.m_=0,"Online"===t&&(this.g_=!1),this.y_(t)}y_(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))}w_(t){const e=`Could not reach Cloud Firestore backend. ${t}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.g_?(Kr(e),this.g_=!1):jr("OnlineStateTracker",e)}b_(){null!==this.f_&&(this.f_.cancel(),this.f_=null)}}class $h{constructor(t,e,n,r,s){this.localStore=t,this.datastore=e,this.asyncQueue=n,this.remoteSyncer={},this.D_=[],this.C_=new Map,this.v_=new Set,this.F_=[],this.M_=s,this.M_.io((t=>{n.enqueueAndForget((async()=>{ed(this)&&(jr("RemoteStore","Restarting streams for network reachability change."),await async function(t){const e=Xr(t);e.v_.add(4),await Hh(e),e.x_.set("Unknown"),e.v_.delete(4),await Qh(e)}(this))}))})),this.x_=new Kh(n,r)}}async function Qh(t){if(ed(t))for(const e of t.F_)await e(!0)}async function Hh(t){for(const e of t.F_)await e(!1)}function Wh(t,e){const n=Xr(t);n.C_.has(e.targetId)||(n.C_.set(e.targetId,e),td(n)?Zh(n):vd(n).Jo()&&Xh(n,e))}function Yh(t,e){const n=Xr(t),r=vd(n);n.C_.delete(e),r.Jo()&&Jh(n,e),0===n.C_.size&&(r.Jo()?r.Xo():ed(n)&&n.x_.set("Unknown"))}function Xh(t,e){if(t.O_.Oe(e.targetId),e.resumeToken.approximateByteSize()>0||e.snapshotVersion.compareTo(ps.min())>0){const n=t.remoteSyncer.getRemoteKeysForTarget(e.targetId).size;e=e.withExpectedCount(n)}vd(t).c_(e)}function Jh(t,e){t.O_.Oe(e),vd(t).l_(e)}function Zh(t){t.O_=new Nu({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),_t:e=>t.C_.get(e)||null,nt:()=>t.datastore.serializer.databaseId}),vd(t).start(),t.x_.p_()}function td(t){return ed(t)&&!vd(t).Ho()&&t.C_.size>0}function ed(t){return 0===Xr(t).v_.size}function nd(t){t.O_=void 0}async function rd(t){t.C_.forEach(((e,n)=>{Xh(t,e)}))}async function sd(t,e){nd(t),td(t)?(t.x_.S_(e),Zh(t)):t.x_.set("Unknown")}async function id(t,e,n){if(t.x_.set("Online"),e instanceof Du&&2===e.state&&e.cause)try{await async function(t,e){const n=e.cause;for(const r of e.targetIds)t.C_.has(r)&&(await t.remoteSyncer.rejectListen(r,n),t.C_.delete(r),t.O_.removeTarget(r))}(t,e)}catch(n){jr("RemoteStore","Failed to remove targets %s: %s ",e.targetIds.join(","),n),await od(t,n)}else if(e instanceof xu?t.O_.$e(e):e instanceof Cu?t.O_.Je(e):t.O_.Ge(e),!n.isEqual(ps.min()))try{const e=await ch(t.localStore);n.compareTo(e)>=0&&await function(t,e){const n=t.O_.it(e);return n.targetChanges.forEach(((n,r)=>{if(n.resumeToken.approximateByteSize()>0){const s=t.C_.get(r);s&&t.C_.set(r,s.withResumeToken(n.resumeToken,e))}})),n.targetMismatches.forEach(((e,n)=>{const r=t.C_.get(e);if(!r)return;t.C_.set(e,r.withResumeToken(qi.EMPTY_BYTE_STRING,r.snapshotVersion)),Jh(t,e);const s=new fc(r.target,e,n,r.sequenceNumber);Xh(t,s)})),t.remoteSyncer.applyRemoteEvent(n)}(t,n)}catch(e){jr("RemoteStore","Failed to raise snapshot:",e),await od(t,e)}}async function od(t,e,n){if(!Us(e))throw e;t.v_.add(1),await Hh(t),t.x_.set("Offline"),n||(n=()=>ch(t.localStore)),t.asyncQueue.enqueueRetryable((async()=>{jr("RemoteStore","Retrying IndexedDB access"),await n(),t.v_.delete(1),await Qh(t)}))}function ad(t,e){return e().catch((n=>od(t,n,e)))}async function ud(t){const e=Xr(t),n=bd(e);let r=e.D_.length>0?e.D_[e.D_.length-1].batchId:-1;for(;cd(e);)try{const t=await hh(e.localStore,r);if(null===t){0===e.D_.length&&n.Xo();break}r=t.batchId,ld(e,t)}catch(t){await od(e,t)}hd(e)&&dd(e)}function cd(t){return ed(t)&&t.D_.length<10}function ld(t,e){t.D_.push(e);const n=bd(t);n.Jo()&&n.P_&&n.I_(e.mutations)}function hd(t){return ed(t)&&!bd(t).Ho()&&t.D_.length>0}function dd(t){bd(t).start()}async function fd(t){bd(t).d_()}async function gd(t){const e=bd(t);for(const n of t.D_)e.I_(n.mutations)}async function md(t,e,n){const r=t.D_.shift(),s=cu.from(r,e,n);await ad(t,(()=>t.remoteSyncer.applySuccessfulWrite(s))),await ud(t)}async function pd(t,e){e&&bd(t).P_&&await async function(t,e){if(function(t){return mu(t)&&t!==Jr.ABORTED}(e.code)){const n=t.D_.shift();bd(t).Zo(),await ad(t,(()=>t.remoteSyncer.rejectFailedWrite(n.batchId,e))),await ud(t)}}(t,e),hd(t)&&dd(t)}async function yd(t,e){const n=Xr(t);n.asyncQueue.verifyOperationInProgress(),jr("RemoteStore","RemoteStore received new credentials");const r=ed(n);n.v_.add(3),await Hh(n),r&&n.x_.set("Unknown"),await n.remoteSyncer.handleCredentialChange(e),n.v_.delete(3),await Qh(n)}async function wd(t,e){const n=Xr(t);e?(n.v_.delete(2),await Qh(n)):e||(n.v_.add(2),await Hh(n),n.x_.set("Unknown"))}function vd(t){return t.N_||(t.N_=function(t,e,n){const r=Xr(t);return r.R_(),new zh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:rd.bind(null,t),To:sd.bind(null,t),u_:id.bind(null,t)}),t.F_.push((async e=>{e?(t.N_.Zo(),td(t)?Zh(t):t.x_.set("Unknown")):(await t.N_.stop(),nd(t))}))),t.N_}function bd(t){return t.B_||(t.B_=function(t,e,n){const r=Xr(t);return r.R_(),new Gh(e,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Po:fd.bind(null,t),To:pd.bind(null,t),E_:gd.bind(null,t),T_:md.bind(null,t)}),t.F_.push((async e=>{e?(t.B_.Zo(),await ud(t)):(await t.B_.stop(),t.D_.length>0&&(jr("RemoteStore",`Stopping write stream with ${t.D_.length} pending writes`),t.D_=[]))}))),t.B_}class _d{constructor(t,e,n,r,s){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=r,this.removalCallback=s,this.deferred=new ts,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((t=>{}))}get promise(){return this.deferred.promise}static createAndSchedule(t,e,n,r,s){const i=Date.now()+n,o=new _d(t,e,i,r,s);return o.start(n),o}start(t){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),t)}skipDelay(){return this.handleDelayElapsed()}cancel(t){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new Zr(Jr.CANCELLED,"Operation cancelled"+(t?": "+t:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((t=>this.deferred.resolve(t)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Id(t,e){if(Kr("AsyncQueue",`${e}: ${t}`),Us(t))return new Zr(Jr.UNAVAILABLE,`${e}: ${t}`);throw t}class Ed{constructor(t){this.comparator=t?(e,n)=>t(e,n)||_s.comparator(e.key,n.key):(t,e)=>_s.comparator(t.key,e.key),this.keyedMap=ba(),this.sortedSet=new Ni(this.comparator)}static emptySet(t){return new Ed(t.comparator)}has(t){return null!=this.keyedMap.get(t)}get(t){return this.keyedMap.get(t)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(t){const e=this.keyedMap.get(t);return e?this.sortedSet.indexOf(e):-1}get size(){return this.sortedSet.size}forEach(t){this.sortedSet.inorderTraversal(((e,n)=>(t(e),!1)))}add(t){const e=this.delete(t.key);return e.copy(e.keyedMap.insert(t.key,t),e.sortedSet.insert(t,null))}delete(t){const e=this.get(t);return e?this.copy(this.keyedMap.remove(t),this.sortedSet.remove(e)):this}isEqual(t){if(!(t instanceof Ed))return!1;if(this.size!==t.size)return!1;const e=this.sortedSet.getIterator(),n=t.sortedSet.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(!t.isEqual(r))return!1}return!0}toString(){const t=[];return this.forEach((e=>{t.push(e.toString())})),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(t,e){const n=new Ed;return n.comparator=this.comparator,n.keyedMap=t,n.sortedSet=e,n}}class Td{constructor(){this.L_=new Ni(_s.comparator)}track(t){const e=t.doc.key,n=this.L_.get(e);n?0!==t.type&&3===n.type?this.L_=this.L_.insert(e,t):3===t.type&&1!==n.type?this.L_=this.L_.insert(e,{type:n.type,doc:t.doc}):2===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):2===t.type&&0===n.type?this.L_=this.L_.insert(e,{type:0,doc:t.doc}):1===t.type&&0===n.type?this.L_=this.L_.remove(e):1===t.type&&2===n.type?this.L_=this.L_.insert(e,{type:1,doc:n.doc}):0===t.type&&1===n.type?this.L_=this.L_.insert(e,{type:2,doc:t.doc}):Hr():this.L_=this.L_.insert(e,t)}k_(){const t=[];return this.L_.inorderTraversal(((e,n)=>{t.push(n)})),t}}class Sd{constructor(t,e,n,r,s,i,o,a,u){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=s,this.fromCache=i,this.syncStateChanged=o,this.excludesMetadataChanges=a,this.hasCachedResults=u}static fromInitialDocuments(t,e,n,r,s){const i=[];return e.forEach((t=>{i.push({type:0,doc:t})})),new Sd(t,e,Ed.emptySet(e),i,n,r,!0,!1,s)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(t){if(!(this.fromCache===t.fromCache&&this.hasCachedResults===t.hasCachedResults&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&ca(this.query,t.query)&&this.docs.isEqual(t.docs)&&this.oldDocs.isEqual(t.oldDocs)))return!1;const e=this.docChanges,n=t.docChanges;if(e.length!==n.length)return!1;for(let t=0;tla(t)),ca),this.onlineState="Unknown",this.K_=new Set}}async function Dd(t,e){const n=Xr(t),r=e.query;let s=!1,i=n.queries.get(r);if(i||(s=!0,i=new xd),s)try{i.q_=await n.onListen(r)}catch(t){const n=Id(t,`Initialization of query '${ha(e.query)}' failed`);return void e.onError(n)}n.queries.set(r,i),i.Q_.push(e),e.U_(n.onlineState),i.q_&&e.W_(i.q_)&&Rd(n)}async function Ad(t,e){const n=Xr(t),r=e.query;let s=!1;const i=n.queries.get(r);if(i){const t=i.Q_.indexOf(e);t>=0&&(i.Q_.splice(t,1),s=0===i.Q_.length)}if(s)return n.queries.delete(r),n.onUnlisten(r)}function Nd(t,e){const n=Xr(t);let r=!1;for(const t of e){const e=t.query,s=n.queries.get(e);if(s){for(const e of s.Q_)e.W_(t)&&(r=!0);s.q_=t}}r&&Rd(n)}function kd(t,e,n){const r=Xr(t),s=r.queries.get(e);if(s)for(const t of s.Q_)t.onError(n);r.queries.delete(e)}function Rd(t){t.K_.forEach((t=>{t.next()}))}class Md{constructor(t,e,n){this.query=t,this.G_=e,this.z_=!1,this.j_=null,this.onlineState="Unknown",this.options=n||{}}W_(t){if(!this.options.includeMetadataChanges){const e=[];for(const n of t.docChanges)3!==n.type&&e.push(n);t=new Sd(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.z_?this.H_(t)&&(this.G_.next(t),e=!0):this.J_(t,this.onlineState)&&(this.Y_(t),e=!0),this.j_=t,e}onError(t){this.G_.error(t)}U_(t){this.onlineState=t;let e=!1;return this.j_&&!this.z_&&this.J_(this.j_,t)&&(this.Y_(this.j_),e=!0),e}J_(t,e){if(!t.fromCache)return!0;const n="Offline"!==e;return(!this.options.Z_||!n)&&(!t.docs.isEmpty()||t.hasCachedResults||"Offline"===e)}H_(t){if(t.docChanges.length>0)return!0;const e=this.j_&&this.j_.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!e)&&!0===this.options.includeMetadataChanges}Y_(t){t=Sd.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache,t.hasCachedResults),this.z_=!0,this.G_.next(t)}}class Ld{constructor(t,e){this.X_=t,this.byteLength=e}ea(){return"metadata"in this.X_}}class Od{constructor(t){this.serializer=t}Ps(t){return $u(this.serializer,t)}Is(t){return t.metadata.exists?Ju(this.serializer,t.document,!1):bo.newNoDocument(this.Ps(t.metadata.name),this.Ts(t.metadata.readTime))}Ts(t){return Uu(t)}}class Pd{constructor(t,e,n){this.ta=t,this.localStore=e,this.serializer=n,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=Fd(t)}na(t){this.progress.bytesLoaded+=t.byteLength;let e=this.progress.documentsLoaded;if(t.X_.namedQuery)this.queries.push(t.X_.namedQuery);else if(t.X_.documentMetadata){this.documents.push({metadata:t.X_.documentMetadata}),t.X_.documentMetadata.exists||++e;const n=ws.fromString(t.X_.documentMetadata.name);this.collectionGroups.add(n.get(n.length-2))}else t.X_.document&&(this.documents[this.documents.length-1].document=t.X_.document,++e);return e!==this.progress.documentsLoaded?(this.progress.documentsLoaded=e,Object.assign({},this.progress)):null}ra(t){const e=new Map,n=new Od(this.serializer);for(const r of t)if(r.metadata.queries){const t=n.Ps(r.metadata.name);for(const n of r.metadata.queries){const r=(e.get(n)||Ca()).add(t);e.set(n,r)}}return e}async complete(){const t=await async function(t,e,n,r){const s=Xr(t);let i=Ca(),o=wa();for(const t of n){const n=e.Ps(t.metadata.name);t.document&&(i=i.add(n));const r=e.Is(t);r.setReadTime(e.Ts(t.metadata.readTime)),o=o.insert(n,r)}const a=s.os.newChangeBuffer({trackRemovals:!0}),u=await dh(s,function(t){return ia(ea(ws.fromString(`__bundle__/docs/${t}`)))}(r));return s.persistence.runTransaction("Apply bundle documents","readwrite",(t=>lh(t,a,o).next((e=>(a.apply(t),e))).next((e=>s.Qr.removeMatchingKeysForTargetId(t,u.targetId).next((()=>s.Qr.addMatchingKeys(t,i,u.targetId))).next((()=>s.localDocuments.getLocalViewOfDocuments(t,e.cs,e.ls))).next((()=>e.cs))))))}(this.localStore,new Od(this.serializer),this.documents,this.ta.id),e=this.ra(this.documents);for(const t of this.queries)await wh(this.localStore,t,e.get(t.name));return this.progress.taskState="Success",{progress:this.progress,ia:this.collectionGroups,sa:t}}}function Fd(t){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}class Vd{constructor(t){this.key=t}}class qd{constructor(t){this.key=t}}class Bd{constructor(t,e){this.query=t,this.oa=e,this._a=null,this.hasCachedResults=!1,this.current=!1,this.aa=Ca(),this.mutatedKeys=Ca(),this.ua=ga(t),this.ca=new Ed(this.ua)}get la(){return this.oa}ha(t,e){const n=e?e.Pa:new Td,r=e?e.ca:this.ca;let s=e?e.mutatedKeys:this.mutatedKeys,i=r,o=!1;const a="F"===this.query.limitType&&r.size===this.query.limit?r.last():null,u="L"===this.query.limitType&&r.size===this.query.limit?r.first():null;if(t.inorderTraversal(((t,e)=>{const c=r.get(t),l=da(this.query,e)?e:null,h=!!c&&this.mutatedKeys.has(c.key),d=!!l&&(l.hasLocalMutations||this.mutatedKeys.has(l.key)&&l.hasCommittedMutations);let f=!1;c&&l?c.data.isEqual(l.data)?h!==d&&(n.track({type:3,doc:l}),f=!0):this.Ia(c,l)||(n.track({type:2,doc:l}),f=!0,(a&&this.ua(l,a)>0||u&&this.ua(l,u)<0)&&(o=!0)):!c&&l?(n.track({type:0,doc:l}),f=!0):c&&!l&&(n.track({type:1,doc:c}),f=!0,(a||u)&&(o=!0)),f&&(l?(i=i.add(l),s=d?s.add(t):s.delete(t)):(i=i.delete(t),s=s.delete(t)))})),null!==this.query.limit)for(;i.size>this.query.limit;){const t="F"===this.query.limitType?i.last():i.first();i=i.delete(t.key),s=s.delete(t.key),n.track({type:1,doc:t})}return{ca:i,Pa:n,Xi:o,mutatedKeys:s}}Ia(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations}applyChanges(t,e,n,r){const s=this.ca;this.ca=t.ca,this.mutatedKeys=t.mutatedKeys;const i=t.Pa.k_();i.sort(((t,e)=>function(t,e){const n=t=>{switch(t){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return Hr()}};return n(t)-n(e)}(t.type,e.type)||this.ua(t.doc,e.doc))),this.Ta(n),r=null!=r&&r;const o=e&&!r?this.Ea():[],a=0===this.aa.size&&this.current&&!r?1:0,u=a!==this._a;return this._a=a,0!==i.length||u?{snapshot:new Sd(this.query,t.ca,s,i,t.mutatedKeys,0===a,u,!1,!!n&&n.resumeToken.approximateByteSize()>0),da:o}:{da:o}}U_(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({ca:this.ca,Pa:new Td,mutatedKeys:this.mutatedKeys,Xi:!1},!1)):{da:[]}}Aa(t){return!this.oa.has(t)&&!!this.ca.has(t)&&!this.ca.get(t).hasLocalMutations}Ta(t){t&&(t.addedDocuments.forEach((t=>this.oa=this.oa.add(t))),t.modifiedDocuments.forEach((t=>{})),t.removedDocuments.forEach((t=>this.oa=this.oa.delete(t))),this.current=t.current)}Ea(){if(!this.current)return[];const t=this.aa;this.aa=Ca(),this.ca.forEach((t=>{this.Aa(t.key)&&(this.aa=this.aa.add(t.key))}));const e=[];return t.forEach((t=>{this.aa.has(t)||e.push(new qd(t))})),this.aa.forEach((n=>{t.has(n)||e.push(new Vd(n))})),e}Ra(t){this.oa=t.hs,this.aa=Ca();const e=this.ha(t.documents);return this.applyChanges(e,!0)}Va(){return Sd.fromInitialDocuments(this.query,this.ca,this.mutatedKeys,0===this._a,this.hasCachedResults)}}class Ud{constructor(t,e,n){this.query=t,this.targetId=e,this.view=n}}class zd{constructor(t){this.key=t,this.ma=!1}}class Gd{constructor(t,e,n,r,s,i){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=r,this.currentUser=s,this.maxConcurrentLimboResolutions=i,this.fa={},this.ga=new pa((t=>la(t)),ca),this.pa=new Map,this.ya=new Set,this.wa=new Ni(_s.comparator),this.Sa=new Map,this.ba=new Bl,this.Da={},this.Ca=new Map,this.va=ml.Bn(),this.onlineState="Unknown",this.Fa=void 0}get isPrimaryClient(){return!0===this.Fa}}async function jd(t,e){const n=yf(t);let r,s;const i=n.ga.get(e);if(i)r=i.targetId,n.sharedClientState.addLocalQueryTarget(r),s=i.view.Va();else{const t=await dh(n.localStore,ia(e)),i=n.sharedClientState.addLocalQueryTarget(t.targetId);r=t.targetId,s=await Kd(n,e,r,"current"===i,t.resumeToken),n.isPrimaryClient&&Wh(n.remoteStore,t)}return s}async function Kd(t,e,n,r,s){t.Ma=(e,n,r)=>async function(t,e,n,r){let s=e.view.ha(n);s.Xi&&(s=await gh(t.localStore,e.query,!1).then((({documents:t})=>e.view.ha(t,s))));const i=r&&r.targetChanges.get(e.targetId),o=r&&null!=r.targetMismatches.get(e.targetId),a=e.view.applyChanges(s,t.isPrimaryClient,i,o);return nf(t,e.targetId,a.da),a.snapshot}(t,e,n,r);const i=await gh(t.localStore,e,!0),o=new Bd(e,i.hs),a=o.ha(i.documents),u=Su.createSynthesizedTargetChangeForCurrentChange(n,r&&"Offline"!==t.onlineState,s),c=o.applyChanges(a,t.isPrimaryClient,u);nf(t,n,c.da);const l=new Ud(e,n,o);return t.ga.set(e,l),t.pa.has(n)?t.pa.get(n).push(e):t.pa.set(n,[e]),c.snapshot}async function $d(t,e){const n=Xr(t),r=n.ga.get(e),s=n.pa.get(r.targetId);if(s.length>1)return n.pa.set(r.targetId,s.filter((t=>!ca(t,e)))),void n.ga.delete(e);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(r.targetId),n.sharedClientState.isActiveQueryTarget(r.targetId)||await fh(n.localStore,r.targetId,!1).then((()=>{n.sharedClientState.clearQueryState(r.targetId),Yh(n.remoteStore,r.targetId),tf(n,r.targetId)})).catch(Os)):(tf(n,r.targetId),await fh(n.localStore,r.targetId,!0))}async function Qd(t,e){const n=Xr(t);try{const t=await function(t,e){const n=Xr(t),r=e.snapshotVersion;let s=n.ns;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(t=>{const i=n.os.newChangeBuffer({trackRemovals:!0});s=n.ns;const o=[];e.targetChanges.forEach(((i,a)=>{const u=s.get(a);if(!u)return;o.push(n.Qr.removeMatchingKeys(t,i.removedDocuments,a).next((()=>n.Qr.addMatchingKeys(t,i.addedDocuments,a))));let c=u.withSequenceNumber(t.currentSequenceNumber);null!==e.targetMismatches.get(a)?c=c.withResumeToken(qi.EMPTY_BYTE_STRING,ps.min()).withLastLimboFreeSnapshotVersion(ps.min()):i.resumeToken.approximateByteSize()>0&&(c=c.withResumeToken(i.resumeToken,r)),s=s.insert(a,c),function(t,e,n){return 0===t.resumeToken.approximateByteSize()||e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0}(u,c,i)&&o.push(n.Qr.updateTargetData(t,c))}));let a=wa(),u=Ca();if(e.documentUpdates.forEach((r=>{e.resolvedLimboDocuments.has(r)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(t,r))})),o.push(lh(t,i,e.documentUpdates).next((t=>{a=t.cs,u=t.ls}))),!r.isEqual(ps.min())){const e=n.Qr.getLastRemoteSnapshotVersion(t).next((e=>n.Qr.setTargetsMetadata(t,t.currentSequenceNumber,r)));o.push(e)}return Ps.waitFor(o).next((()=>i.apply(t))).next((()=>n.localDocuments.getLocalViewOfDocuments(t,a,u))).next((()=>a))})).then((t=>(n.ns=s,t)))}(n.localStore,e);e.targetChanges.forEach(((t,e)=>{const r=n.Sa.get(e);r&&(Wr(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1),t.addedDocuments.size>0?r.ma=!0:t.modifiedDocuments.size>0?Wr(r.ma):t.removedDocuments.size>0&&(Wr(r.ma),r.ma=!1))})),await of(n,t,e)}catch(t){await Os(t)}}function Hd(t,e,n){const r=Xr(t);if(r.isPrimaryClient&&0===n||!r.isPrimaryClient&&1===n){const t=[];r.ga.forEach(((n,r)=>{const s=r.view.U_(e);s.snapshot&&t.push(s.snapshot)})),function(t,e){const n=Xr(t);n.onlineState=e;let r=!1;n.queries.forEach(((t,n)=>{for(const t of n.Q_)t.U_(e)&&(r=!0)})),r&&Rd(n)}(r.eventManager,e),t.length&&r.fa.u_(t),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}async function Wd(t,e,n){const r=Xr(t);r.sharedClientState.updateQueryState(e,"rejected",n);const s=r.Sa.get(e),i=s&&s.key;if(i){let t=new Ni(_s.comparator);t=t.insert(i,bo.newNoDocument(i,ps.min()));const n=Ca().add(i),s=new Tu(ps.min(),new Map,new Ni(ds),t,n);await Qd(r,s),r.wa=r.wa.remove(i),r.Sa.delete(e),sf(r)}else await fh(r.localStore,e,!1).then((()=>tf(r,e,n))).catch(Os)}async function Yd(t,e){const n=Xr(t),r=e.batch.batchId;try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Acknowledge batch","readwrite-primary",(t=>{const r=e.batch.keys(),s=n.os.newChangeBuffer({trackRemovals:!0});return function(t,e,n,r){const s=n.batch,i=s.keys();let o=Ps.resolve();return i.forEach((t=>{o=o.next((()=>r.getEntry(e,t))).next((e=>{const i=n.docVersions.get(t);Wr(null!==i),e.version.compareTo(i)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument()&&(e.setReadTime(n.commitVersion),r.addEntry(e)))}))})),o.next((()=>t.mutationQueue.removeMutationBatch(e,s)))}(n,t,e,s).next((()=>s.apply(t))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e.batch.batchId))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,function(t){let e=Ca();for(let n=0;n0&&(e=e.add(t.batch.mutations[n].key));return e}(e)))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(n.localStore,e);Zd(n,r,null),Jd(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),await of(n,t)}catch(t){await Os(t)}}async function Xd(t,e,n){const r=Xr(t);try{const t=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Reject batch","readwrite-primary",(t=>{let r;return n.mutationQueue.lookupMutationBatch(t,e).next((e=>(Wr(null!==e),r=e.keys(),n.mutationQueue.removeMutationBatch(t,e)))).next((()=>n.mutationQueue.performConsistencyCheck(t))).next((()=>n.documentOverlayCache.removeOverlaysForBatchId(t,r,e))).next((()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r))).next((()=>n.localDocuments.getDocuments(t,r)))}))}(r.localStore,e);Zd(r,e,n),Jd(r,e),r.sharedClientState.updateMutationState(e,"rejected",n),await of(r,t)}catch(t){await Os(t)}}function Jd(t,e){(t.Ca.get(e)||[]).forEach((t=>{t.resolve()})),t.Ca.delete(e)}function Zd(t,e,n){const r=Xr(t);let s=r.Da[r.currentUser.toKey()];if(s){const t=s.get(e);t&&(n?t.reject(n):t.resolve(),s=s.remove(e)),r.Da[r.currentUser.toKey()]=s}}function tf(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const r of t.pa.get(e))t.ga.delete(r),n&&t.fa.xa(r,n);t.pa.delete(e),t.isPrimaryClient&&t.ba.Vr(e).forEach((e=>{t.ba.containsKey(e)||ef(t,e)}))}function ef(t,e){t.ya.delete(e.path.canonicalString());const n=t.wa.get(e);null!==n&&(Yh(t.remoteStore,n),t.wa=t.wa.remove(e),t.Sa.delete(n),sf(t))}function nf(t,e,n){for(const r of n)r instanceof Vd?(t.ba.addReference(r.key,e),rf(t,r)):r instanceof qd?(jr("SyncEngine","Document no longer in limbo: "+r.key),t.ba.removeReference(r.key,e),t.ba.containsKey(r.key)||ef(t,r.key)):Hr()}function rf(t,e){const n=e.key,r=n.path.canonicalString();t.wa.get(n)||t.ya.has(r)||(jr("SyncEngine","New document in limbo: "+n),t.ya.add(r),sf(t))}function sf(t){for(;t.ya.size>0&&t.wa.size{o.push(r.Ma(a,e,n).then((t=>{if((t||n)&&r.isPrimaryClient&&r.sharedClientState.updateQueryState(a.targetId,(null==t?void 0:t.fromCache)?"not-current":"current"),t){s.push(t);const e=rh.Ki(a.targetId,t);i.push(e)}})))})),await Promise.all(o),r.fa.u_(s),await async function(t,e){const n=Xr(t);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(t=>Ps.forEach(e,(e=>Ps.forEach(e.qi,(r=>n.persistence.referenceDelegate.addReference(t,e.targetId,r))).next((()=>Ps.forEach(e.Qi,(r=>n.persistence.referenceDelegate.removeReference(t,e.targetId,r)))))))))}catch(t){if(!Us(t))throw t;jr("LocalStore","Failed to update sequence numbers: "+t)}for(const t of e){const e=t.targetId;if(!t.fromCache){const t=n.ns.get(e),r=t.snapshotVersion,s=t.withLastLimboFreeSnapshotVersion(r);n.ns=n.ns.insert(e,s)}}}(r.localStore,i))}async function af(t,e){const n=Xr(t);if(!n.currentUser.isEqual(e)){jr("SyncEngine","User change. New user:",e.toKey());const t=await uh(n.localStore,e);n.currentUser=e,function(t,e){t.Ca.forEach((t=>{t.forEach((t=>{t.reject(new Zr(Jr.CANCELLED,e))}))})),t.Ca.clear()}(n,"'waitForPendingWrites' promise is rejected due to a user change."),n.sharedClientState.handleUserChange(e,t.removedBatchIds,t.addedBatchIds),await of(n,t.us)}}function uf(t,e){const n=Xr(t),r=n.Sa.get(e);if(r&&r.ma)return Ca().add(r.key);{let t=Ca();const r=n.pa.get(e);if(!r)return t;for(const e of r){const r=n.ga.get(e);t=t.unionWith(r.view.la)}return t}}async function cf(t,e){const n=Xr(t),r=await gh(n.localStore,e.query,!0),s=e.view.Ra(r);return n.isPrimaryClient&&nf(n,e.targetId,s.da),s}async function lf(t,e){const n=Xr(t);return ph(n.localStore,e).then((t=>of(n,t)))}async function hf(t,e,n,r){const s=Xr(t),i=await function(t,e){const n=Xr(t),r=Xr(n.mutationQueue);return n.persistence.runTransaction("Lookup mutation documents","readonly",(t=>r.vn(t,e).next((e=>e?n.localDocuments.getDocuments(t,e):Ps.resolve(null)))))}(s.localStore,e);null!==i?("pending"===n?await ud(s.remoteStore):"acknowledged"===n||"rejected"===n?(Zd(s,e,r||null),Jd(s,e),function(t,e){Xr(Xr(t).mutationQueue).Mn(e)}(s.localStore,e)):Hr(),await of(s,i)):jr("SyncEngine","Cannot apply mutation batch with id: "+e)}async function df(t,e,n){const r=Xr(t),s=[],i=[];for(const t of e){let e;const n=r.pa.get(t);if(n&&0!==n.length){e=await dh(r.localStore,ia(n[0]));for(const t of n){const e=r.ga.get(t),n=await cf(r,e);n.snapshot&&i.push(n.snapshot)}}else{const n=await mh(r.localStore,t);e=await dh(r.localStore,n),await Kd(r,ff(n),t,!1,e.resumeToken)}s.push(e)}return r.fa.u_(i),s}function ff(t){return ta(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function gf(t){return function(t){return Xr(Xr(t).persistence).Li()}(Xr(t).localStore)}async function mf(t,e,n,r){const s=Xr(t);if(s.Fa)return void jr("SyncEngine","Ignoring unexpected query state notification.");const i=s.pa.get(e);if(i&&i.length>0)switch(n){case"current":case"not-current":{const t=await ph(s.localStore,fa(i[0])),r=Tu.createSynthesizedRemoteEventForCurrentChange(e,"current"===n,qi.EMPTY_BYTE_STRING);await of(s,t,r);break}case"rejected":await fh(s.localStore,e,!0),tf(s,e,r);break;default:Hr()}}async function pf(t,e,n){const r=yf(t);if(r.Fa){for(const t of e){if(r.pa.has(t)){jr("SyncEngine","Adding an already active target "+t);continue}const e=await mh(r.localStore,t),n=await dh(r.localStore,e);await Kd(r,ff(e),n.targetId,!1,n.resumeToken),Wh(r.remoteStore,n)}for(const t of n)r.pa.has(t)&&await fh(r.localStore,t,!1).then((()=>{Yh(r.remoteStore,t),tf(r,t)})).catch(Os)}}function yf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=Qd.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=uf.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Wd.bind(null,e),e.fa.u_=Nd.bind(null,e.eventManager),e.fa.xa=kd.bind(null,e.eventManager),e}function wf(t){const e=Xr(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=Yd.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=Xd.bind(null,e),e}class vf{constructor(){this.synchronizeTabs=!1}async initialize(t){this.serializer=qh(t.databaseInfo.databaseId),this.sharedClientState=this.createSharedClientState(t),this.persistence=this.createPersistence(t),await this.persistence.start(),this.localStore=this.createLocalStore(t),this.gcScheduler=this.createGarbageCollectionScheduler(t,this.localStore),this.indexBackfillerScheduler=this.createIndexBackfillerScheduler(t,this.localStore)}createGarbageCollectionScheduler(t,e){return null}createIndexBackfillerScheduler(t,e){return null}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createPersistence(t){return new $l(Hl.Hr,this.serializer)}createSharedClientState(t){return new Dh}async terminate(){var t,e;null===(t=this.gcScheduler)||void 0===t||t.stop(),null===(e=this.indexBackfillerScheduler)||void 0===e||e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class bf extends vf{constructor(t){super(),this.cacheSizeBytes=t}createGarbageCollectionScheduler(t,e){Wr(this.persistence.referenceDelegate instanceof Wl);const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createPersistence(t){const e=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new $l((t=>Wl.Hr(t,e)),this.serializer)}}class _f extends vf{constructor(t,e,n){super(),this.Na=t,this.cacheSizeBytes=e,this.forceOwnership=n,this.synchronizeTabs=!1}async initialize(t){await super.initialize(t),await this.Na.initialize(this,t),await wf(this.Na.syncEngine),await ud(this.Na.remoteStore),await this.persistence.fi((()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve())))}createLocalStore(t){return ah(this.persistence,new ih,t.initialUser,this.serializer)}createGarbageCollectionScheduler(t,e){const n=this.persistence.referenceDelegate.garbageCollector;return new Il(n,t.asyncQueue,e)}createIndexBackfillerScheduler(t,e){const n=new Qs(e,this.persistence);return new $s(t.asyncQueue,n)}createPersistence(t){const e=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey),n=void 0!==this.cacheSizeBytes?al.withCacheSize(this.cacheSizeBytes):al.DEFAULT;return new Zl(this.synchronizeTabs,e,t.clientId,n,t.asyncQueue,Fh(),Vh(),this.serializer,this.sharedClientState,!!this.forceOwnership)}createSharedClientState(t){return new Dh}}class If extends _f{constructor(t,e){super(t,e,!1),this.Na=t,this.cacheSizeBytes=e,this.synchronizeTabs=!0}async initialize(t){await super.initialize(t);const e=this.Na.syncEngine;this.sharedClientState instanceof Ch&&(this.sharedClientState.syncEngine={Zs:hf.bind(null,e),Xs:mf.bind(null,e),eo:pf.bind(null,e),Li:gf.bind(null,e),Ys:lf.bind(null,e)},await this.sharedClientState.start()),await this.persistence.fi((async t=>{await async function(t,e){const n=Xr(t);if(yf(n),wf(n),!0===e&&!0!==n.Fa){const t=n.sharedClientState.getAllActiveQueryTargets(),e=await df(n,t.toArray());n.Fa=!0,await wd(n.remoteStore,!0);for(const t of e)Wh(n.remoteStore,t)}else if(!1===e&&!1!==n.Fa){const t=[];let e=Promise.resolve();n.pa.forEach(((r,s)=>{n.sharedClientState.isLocalQueryTarget(s)?t.push(s):e=e.then((()=>(tf(n,s),fh(n.localStore,s,!0)))),Yh(n.remoteStore,s)})),await e,await df(n,t),function(t){const e=Xr(t);e.Sa.forEach(((t,n)=>{Yh(e.remoteStore,n)})),e.ba.mr(),e.Sa=new Map,e.wa=new Ni(_s.comparator)}(n),n.Fa=!1,await wd(n.remoteStore,!1)}}(this.Na.syncEngine,t),this.gcScheduler&&(t&&!this.gcScheduler.started?this.gcScheduler.start():t||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(t&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():t||this.indexBackfillerScheduler.stop())}))}createSharedClientState(t){const e=Fh();if(!Ch.D(e))throw new Zr(Jr.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");const n=nh(t.databaseInfo.databaseId,t.databaseInfo.persistenceKey);return new Ch(e,t.asyncQueue,n,t.clientId,t.initialUser)}}class Ef{async initialize(t,e){this.localStore||(this.localStore=t.localStore,this.sharedClientState=t.sharedClientState,this.datastore=this.createDatastore(e),this.remoteStore=this.createRemoteStore(e),this.eventManager=this.createEventManager(e),this.syncEngine=this.createSyncEngine(e,!t.synchronizeTabs),this.sharedClientState.onlineStateHandler=t=>Hd(this.syncEngine,t,1),this.remoteStore.remoteSyncer.handleCredentialChange=af.bind(null,this.syncEngine),await wd(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(t){return new Cd}createDatastore(t){const e=qh(t.databaseInfo.databaseId),n=function(t){return new Ph(t)}(t.databaseInfo);return function(t,e,n,r){return new jh(t,e,n,r)}(t.authCredentials,t.appCheckCredentials,n,e)}createRemoteStore(t){return function(t,e,n,r,s){return new $h(t,e,n,r,s)}(this.localStore,this.datastore,t.asyncQueue,(t=>Hd(this.syncEngine,t,0)),Nh.D()?new Nh:new Ah)}createSyncEngine(t,e){return function(t,e,n,r,s,i,o){const a=new Gd(t,e,n,r,s,i);return o&&(a.Fa=!0),a}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,t.initialUser,t.maxConcurrentLimboResolutions,e)}async terminate(){var t;await async function(t){const e=Xr(t);jr("RemoteStore","RemoteStore shutting down."),e.v_.add(5),await Hh(e),e.M_.shutdown(),e.x_.set("Unknown")}(this.remoteStore),null===(t=this.datastore)||void 0===t||t.terminate()}}function Tf(t,e=10240){let n=0;return{async read(){if(n{this.muted||t(e)}),0)}}class xf{constructor(t,e){this.ka=t,this.serializer=e,this.metadata=new ts,this.buffer=new Uint8Array,this.qa=new TextDecoder("utf-8"),this.Qa().then((t=>{t&&t.ea()?this.metadata.resolve(t.X_.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\n ${JSON.stringify(null==t?void 0:t.X_)}`))}),(t=>this.metadata.reject(t)))}close(){return this.ka.cancel()}async getMetadata(){return this.metadata.promise}async Oa(){return await this.getMetadata(),this.Qa()}async Qa(){const t=await this.Ka();if(null===t)return null;const e=this.qa.decode(t),n=Number(e);isNaN(n)&&this.$a(`length string (${e}) is not valid number`);const r=await this.Ua(n);return new Ld(JSON.parse(r),t.length+n)}Wa(){return this.buffer.findIndex((t=>t==="{".charCodeAt(0)))}async Ka(){for(;this.Wa()<0&&!await this.Ga(););if(0===this.buffer.length)return null;const t=this.Wa();t<0&&this.$a("Reached the end of bundle when a length string is expected.");const e=this.buffer.slice(0,t);return this.buffer=this.buffer.slice(t),e}async Ua(t){for(;this.buffer.length0)throw this.lastTransactionError=new Zr(Jr.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const e=await async function(t,e){const n=Xr(t),r={documents:e.map((t=>Ku(n.serializer,t)))},s=await n.vo("BatchGetDocuments",n.serializer.databaseId,ws.emptyPath(),r,e.length),i=new Map;s.forEach((t=>{const e=function(t,e){return"found"in e?function(t,e){Wr(!!e.found),e.found.name,e.found.updateTime;const n=$u(t,e.found.name),r=Uu(e.found.updateTime),s=e.found.createTime?Uu(e.found.createTime):ps.min(),i=new wo({mapValue:{fields:e.found.fields}});return bo.newFoundDocument(n,r,s,i)}(t,e):"missing"in e?function(t,e){Wr(!!e.missing),Wr(!!e.readTime);const n=$u(t,e.missing),r=Uu(e.readTime);return bo.newNoDocument(n,r)}(t,e):Hr()}(n.serializer,t);i.set(e.key.toString(),e)}));const o=[];return e.forEach((t=>{const e=i.get(t.toString());Wr(!!e),o.push(e)})),o}(this.datastore,t);return e.forEach((t=>this.recordVersion(t))),e}set(t,e){this.write(e.toMutation(t,this.precondition(t))),this.writtenDocs.add(t.toString())}update(t,e){try{this.write(e.toMutation(t,this.preconditionForUpdate(t)))}catch(t){this.lastTransactionError=t}this.writtenDocs.add(t.toString())}delete(t){this.write(new ou(t,this.precondition(t))),this.writtenDocs.add(t.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const t=this.readVersions;this.mutations.forEach((e=>{t.delete(e.key.toString())})),t.forEach(((t,e)=>{const n=_s.fromPath(e);this.mutations.push(new au(n,this.precondition(n)))})),await async function(t,e){const n=Xr(t),r={writes:e.map((t=>Zu(n.serializer,t)))};await n.So("Commit",n.serializer.databaseId,ws.emptyPath(),r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(t){let e;if(t.isFoundDocument())e=t.version;else{if(!t.isNoDocument())throw Hr();e=ps.min()}const n=this.readVersions.get(t.key.toString());if(n){if(!e.isEqual(n))throw new Zr(Jr.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(t.key.toString(),e)}precondition(t){const e=this.readVersions.get(t.toString());return!this.writtenDocs.has(t.toString())&&e?e.isEqual(ps.min())?Qa.exists(!1):Qa.updateTime(e):Qa.none()}preconditionForUpdate(t){const e=this.readVersions.get(t.toString());if(!this.writtenDocs.has(t.toString())&&e){if(e.isEqual(ps.min()))throw new Zr(Jr.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return Qa.updateTime(e)}return Qa.exists(!0)}write(t){this.ensureCommitNotCalled(),this.mutations.push(t)}ensureCommitNotCalled(){}}class Df{constructor(t,e,n,r,s){this.asyncQueue=t,this.datastore=e,this.options=n,this.updateFunction=r,this.deferred=s,this.za=n.maxAttempts,this.jo=new Bh(this.asyncQueue,"transaction_retry")}ja(){this.za-=1,this.Ha()}Ha(){this.jo.qo((async()=>{const t=new Cf(this.datastore),e=this.Ja(t);e&&e.then((e=>{this.asyncQueue.enqueueAndForget((()=>t.commit().then((()=>{this.deferred.resolve(e)})).catch((t=>{this.Ya(t)}))))})).catch((t=>{this.Ya(t)}))}))}Ja(t){try{const e=this.updateFunction(t);return!Ws(e)&&e.catch&&e.then?e:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(t){return this.deferred.reject(t),null}}Ya(t){this.za>0&&this.Za(t)?(this.za-=1,this.asyncQueue.enqueueAndForget((()=>(this.Ha(),Promise.resolve())))):this.deferred.reject(t)}Za(t){if("FirebaseError"===t.name){const e=t.code;return"aborted"===e||"failed-precondition"===e||"already-exists"===e||!mu(e)}return!1}}class Af{constructor(t,e,n,r){this.authCredentials=t,this.appCheckCredentials=e,this.asyncQueue=n,this.databaseInfo=r,this.user=qr.UNAUTHENTICATED,this.clientId=hs.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this.authCredentials.start(n,(async t=>{jr("FirestoreClient","Received user=",t.uid),await this.authCredentialListener(t),this.user=t})),this.appCheckCredentials.start(n,(t=>(jr("FirestoreClient","Received new app check token=",t),this.appCheckCredentialListener(t,this.user))))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(t){this.authCredentialListener=t}setAppCheckTokenChangeListener(t){this.appCheckCredentialListener=t}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new Zr(Jr.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const t=new ts;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),t.resolve()}catch(e){const n=Id(e,"Failed to shutdown persistence");t.reject(n)}})),t.promise}}async function Nf(t,e){t.asyncQueue.verifyOperationInProgress(),jr("FirestoreClient","Initializing OfflineComponentProvider");const n=t.configuration;await e.initialize(n);let r=n.initialUser;t.setCredentialChangeListener((async t=>{r.isEqual(t)||(await uh(e.localStore,t),r=t)})),e.persistence.setDatabaseDeletedListener((()=>t.terminate())),t._offlineComponents=e}async function kf(t,e){t.asyncQueue.verifyOperationInProgress();const n=await Mf(t);jr("FirestoreClient","Initializing OnlineComponentProvider"),await e.initialize(n,t.configuration),t.setCredentialChangeListener((t=>yd(e.remoteStore,t))),t.setAppCheckTokenChangeListener(((t,n)=>yd(e.remoteStore,n))),t._onlineComponents=e}function Rf(t){return"FirebaseError"===t.name?t.code===Jr.FAILED_PRECONDITION||t.code===Jr.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code}async function Mf(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){jr("FirestoreClient","Using user provided OfflineComponentProvider");try{await Nf(t,t._uninitializedComponentsProvider._offline)}catch(e){const n=e;if(!Rf(n))throw n;$r("Error using user provided cache. Falling back to memory cache: "+n),await Nf(t,new vf)}}else jr("FirestoreClient","Using default OfflineComponentProvider"),await Nf(t,new vf);return t._offlineComponents}async function Lf(t){return t._onlineComponents||(t._uninitializedComponentsProvider?(jr("FirestoreClient","Using user provided OnlineComponentProvider"),await kf(t,t._uninitializedComponentsProvider._online)):(jr("FirestoreClient","Using default OnlineComponentProvider"),await kf(t,new Ef))),t._onlineComponents}function Of(t){return Mf(t).then((t=>t.persistence))}function Pf(t){return Mf(t).then((t=>t.localStore))}function Ff(t){return Lf(t).then((t=>t.remoteStore))}function Vf(t){return Lf(t).then((t=>t.syncEngine))}function qf(t){return Lf(t).then((t=>t.datastore))}async function Bf(t){const e=await Lf(t),n=e.eventManager;return n.onListen=jd.bind(null,e.syncEngine),n.onUnlisten=$d.bind(null,e.syncEngine),n}function Uf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:i=>{e.enqueueAndForget((()=>Ad(t,o)));const a=i.docs.has(n);!a&&i.fromCache?s.reject(new Zr(Jr.UNAVAILABLE,"Failed to get document because the client is offline.")):a&&i.fromCache&&r&&"server"===r.source?s.reject(new Zr(Jr.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):s.resolve(i)},error:t=>s.reject(t)}),o=new Md(ea(n.path),i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function zf(t,e,n={}){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new Sf({next:n=>{e.enqueueAndForget((()=>Ad(t,o))),n.fromCache&&"server"===r.source?s.reject(new Zr(Jr.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):s.resolve(n)},error:t=>s.reject(t)}),o=new Md(n,i,{includeMetadataChanges:!0,Z_:!0});return Dd(t,o)}(await Bf(t),t.asyncQueue,e,n,r))),r.promise}function Gf(t){const e={};return void 0!==t.timeoutSeconds&&(e.timeoutSeconds=t.timeoutSeconds),e}const jf=new Map;function Kf(t,e,n){if(!n)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() cannot be called with an empty ${e}.`)}function $f(t,e,n,r){if(!0===e&&!0===r)throw new Zr(Jr.INVALID_ARGUMENT,`${t} and ${n} cannot be used together.`)}function Qf(t){if(!_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`)}function Hf(t){if(_s.isDocumentKey(t))throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`)}function Wf(t){if(void 0===t)return"undefined";if(null===t)return"null";if("string"==typeof t)return t.length>20&&(t=`${t.substring(0,20)}...`),JSON.stringify(t);if("number"==typeof t||"boolean"==typeof t)return""+t;if("object"==typeof t){if(t instanceof Array)return"an array";{const e=function(t){return t.constructor?t.constructor.name:null}(t);return e?`a custom ${e} object`:"an object"}}return"function"==typeof t?"a function":Hr()}function Yf(t,e){if("_delegate"in t&&(t=t._delegate),!(t instanceof e)){if(e.name===t.constructor.name)throw new Zr(Jr.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=Wf(t);throw new Zr(Jr.INVALID_ARGUMENT,`Expected type '${e.name}', but it was: ${n}`)}}return t}function Xf(t,e){if(e<=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires a positive number, but it was: ${e}.`)}class Jf{constructor(t){var e,n;if(void 0===t.host){if(void 0!==t.ssl)throw new Zr(Jr.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=t.host,this.ssl=null===(e=t.ssl)||void 0===e||e;if(this.credentials=t.credentials,this.ignoreUndefinedProperties=!!t.ignoreUndefinedProperties,this.localCache=t.localCache,void 0===t.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==t.cacheSizeBytes&&t.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}$f("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===t.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=Gf(null!==(n=t.experimentalLongPollingOptions)&&void 0!==n?n:{}),function(t){if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(t.timeoutSeconds>30)throw new Zr(Jr.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!t.useFetchStreams}isEqual(t){return this.host===t.host&&this.ssl===t.ssl&&this.credentials===t.credentials&&this.cacheSizeBytes===t.cacheSizeBytes&&this.experimentalForceLongPolling===t.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===t.experimentalAutoDetectLongPolling&&function(t,e){return t.timeoutSeconds===e.timeoutSeconds}(this.experimentalLongPollingOptions,t.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties&&this.useFetchStreams===t.useFetchStreams}}class Zf{constructor(t,e,n,r){this._authCredentials=t,this._appCheckCredentials=e,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Jf({}),this._settingsFrozen=!1}get app(){if(!this._app)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return void 0!==this._terminateTask}_setSettings(t){if(this._settingsFrozen)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new Jf(t),void 0!==t.credentials&&(this._authCredentials=function(t){if(!t)return new ns;switch(t.type){case"firstParty":return new os(t.sessionIndex||"0",t.iamToken||null,t.authTokenFactory||null);case"provider":return t.client;default:throw new Zr(Jr.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(t.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return this._terminateTask||(this._terminateTask=this._terminate()),this._terminateTask}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(t){const e=jf.get(t);e&&(jr("ComponentProvider","Removing Datastore"),jf.delete(t),e.terminate())}(this),Promise.resolve()}}function tg(t,e,n,r={}){var s;const i=(t=Yf(t,Zf))._getSettings(),o=`${e}:${n}`;if("firestore.googleapis.com"!==i.host&&i.host!==o&&$r("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),t._setSettings(Object.assign(Object.assign({},i),{host:o,ssl:!1})),r.mockUserToken){let e,n;if("string"==typeof r.mockUserToken)e=r.mockUserToken,n=qr.MOCK_USER;else{e=function(t,e){if(t.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=e||"demo-project",r=t.iat||0,s=t.sub||t.user_id;if(!s)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:s,user_id:s,firebase:{sign_in_provider:"custom",identities:{}}},t);return[l(JSON.stringify({alg:"none",type:"JWT"})),l(JSON.stringify(i)),""].join(".")}(r.mockUserToken,null===(s=t._app)||void 0===s?void 0:s.options.projectId);const i=r.mockUserToken.sub||r.mockUserToken.user_id;if(!i)throw new Zr(Jr.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new qr(i)}t._authCredentials=new rs(new es(e,n))}}class eg{constructor(t,e,n){this.converter=e,this._query=n,this.type="query",this.firestore=t}withConverter(t){return new eg(this.firestore,t,this._query)}}class ng{constructor(t,e,n){this.converter=e,this._key=n,this.type="document",this.firestore=t}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new rg(this.firestore,this.converter,this._key.path.popLast())}withConverter(t){return new ng(this.firestore,t,this._key)}}class rg extends eg{constructor(t,e,n){super(t,e,ea(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const t=this._path.popLast();return t.isEmpty()?null:new ng(this.firestore,null,new _s(t))}withConverter(t){return new rg(this.firestore,t,this._path)}}function sg(t,e,...n){if(t=v(t),Kf("collection","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Hf(r),new rg(t,null,r)}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Hf(r),new rg(t.firestore,null,r)}}function ig(t,e){if(t=Yf(t,Zf),Kf("collectionGroup","collection id",e),e.indexOf("/")>=0)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new eg(t,null,function(t){return new Zo(ws.emptyPath(),t)}(e))}function og(t,e,...n){if(t=v(t),1===arguments.length&&(e=hs.newId()),Kf("doc","path",e),t instanceof Zf){const r=ws.fromString(e,...n);return Qf(r),new ng(t,null,new _s(r))}{if(!(t instanceof ng||t instanceof rg))throw new Zr(Jr.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(ws.fromString(e,...n));return Qf(r),new ng(t.firestore,t instanceof rg?t.converter:null,new _s(r))}}function ag(t,e){return t=v(t),e=v(e),(t instanceof ng||t instanceof rg)&&(e instanceof ng||e instanceof rg)&&t.firestore===e.firestore&&t.path===e.path&&t.converter===e.converter}function ug(t,e){return t=v(t),e=v(e),t instanceof eg&&e instanceof eg&&t.firestore===e.firestore&&ca(t._query,e._query)&&t.converter===e.converter}class cg{constructor(){this.Xa=Promise.resolve(),this.eu=[],this.tu=!1,this.nu=[],this.ru=null,this.iu=!1,this.su=!1,this.ou=[],this.jo=new Bh(this,"async_queue_retry"),this._u=()=>{const t=Vh();t&&jr("AsyncQueue","Visibility state changed to "+t.visibilityState),this.jo.Ko()};const t=Vh();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._u)}get isShuttingDown(){return this.tu}enqueueAndForget(t){this.enqueue(t)}enqueueAndForgetEvenWhileRestricted(t){this.au(),this.uu(t)}enterRestrictedMode(t){if(!this.tu){this.tu=!0,this.su=t||!1;const e=Vh();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("visibilitychange",this._u)}}enqueue(t){if(this.au(),this.tu)return new Promise((()=>{}));const e=new ts;return this.uu((()=>this.tu&&this.su?Promise.resolve():(t().then(e.resolve,e.reject),e.promise))).then((()=>e.promise))}enqueueRetryable(t){this.enqueueAndForget((()=>(this.eu.push(t),this.cu())))}async cu(){if(0!==this.eu.length){try{await this.eu[0](),this.eu.shift(),this.jo.reset()}catch(t){if(!Us(t))throw t;jr("AsyncQueue","Operation failed with retryable error: "+t)}this.eu.length>0&&this.jo.qo((()=>this.cu()))}}uu(t){const e=this.Xa.then((()=>(this.iu=!0,t().catch((t=>{this.ru=t,this.iu=!1;const e=function(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+"\n"+t.stack),e}(t);throw Kr("INTERNAL UNHANDLED ERROR: ",e),t})).then((t=>(this.iu=!1,t))))));return this.Xa=e,e}enqueueAfterDelay(t,e,n){this.au(),this.ou.indexOf(t)>-1&&(e=0);const r=_d.createAndSchedule(this,t,e,n,(t=>this.lu(t)));return this.nu.push(r),r}au(){this.ru&&Hr()}verifyOperationInProgress(){}async hu(){let t;do{t=this.Xa,await t}while(t!==this.Xa)}Pu(t){for(const e of this.nu)if(e.timerId===t)return!0;return!1}Iu(t){return this.hu().then((()=>{this.nu.sort(((t,e)=>t.targetTimeMs-e.targetTimeMs));for(const e of this.nu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.hu()}))}Tu(t){this.ou.push(t)}lu(t){const e=this.nu.indexOf(t);this.nu.splice(e,1)}}function lg(t){return function(t,e){if("object"!=typeof t||null===t)return!1;const n=t;for(const t of e)if(t in n&&"function"==typeof n[t])return!0;return!1}(t,["next","error","complete"])}class hg{constructor(){this._progressObserver={},this._taskCompletionResolver=new ts,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(t,e,n){this._progressObserver={next:t,error:e,complete:n}}catch(t){return this._taskCompletionResolver.promise.catch(t)}then(t,e){return this._taskCompletionResolver.promise.then(t,e)}_completeWith(t){this._updateProgress(t),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(t)}_failWith(t){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(t),this._taskCompletionResolver.reject(t)}_updateProgress(t){this._lastProgress=t,this._progressObserver.next&&this._progressObserver.next(t)}}const dg=-1;class fg extends Zf{constructor(t,e,n,r){super(t,e,n,r),this.type="firestore",this._queue=new cg,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}_terminate(){return this._firestoreClient||yg(this),this._firestoreClient.terminate()}}function gg(t,e,n){n||(n="(default)");const r=i._getProvider(t,"firestore");if(r.isInitialized(n)){const t=r.getImmediate({identifier:n});if(y(r.getOptions(n),e))return t;throw new Zr(Jr.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(void 0!==e.cacheSizeBytes&&void 0!==e.localCache)throw new Zr(Jr.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(void 0!==e.cacheSizeBytes&&-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new Zr(Jr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return r.initialize({options:e,instanceIdentifier:n})}function mg(t,e){const n="object"==typeof t?t:i.getApp(),r="string"==typeof t?t:e||"(default)",s=i._getProvider(n,"firestore").getImmediate({identifier:r});if(!s._initialized){const t=(t=>{const e=(t=>{var e,n;return null===(n=null===(e=h())||void 0===e?void 0:e.emulatorHosts)||void 0===n?void 0:n[t]})(t);if(!e)return;const n=e.lastIndexOf(":");if(n<=0||n+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);const r=parseInt(e.substring(n+1),10);return"["===e[0]?[e.substring(1,n-1),r]:[e.substring(0,n),r]})("firestore");t&&tg(s,...t)}return s}function pg(t){return t._firestoreClient||yg(t),t._firestoreClient.verifyNotTerminated(),t._firestoreClient}function yg(t){var e,n,r;const s=t._freezeSettings(),i=function(t,e,n,r){return new Qi(t,e,n,r.host,r.ssl,r.experimentalForceLongPolling,r.experimentalAutoDetectLongPolling,Gf(r.experimentalLongPollingOptions),r.useFetchStreams)}(t._databaseId,(null===(e=t._app)||void 0===e?void 0:e.options.appId)||"",t._persistenceKey,s);t._firestoreClient=new Af(t._authCredentials,t._appCheckCredentials,t._queue,i),(null===(n=s.localCache)||void 0===n?void 0:n._offlineComponentProvider)&&(null===(r=s.localCache)||void 0===r?void 0:r._onlineComponentProvider)&&(t._firestoreClient._uninitializedComponentsProvider={_offlineKind:s.localCache.kind,_offline:s.localCache._offlineComponentProvider,_online:s.localCache._onlineComponentProvider})}function wg(t,e){Dg(t=Yf(t,fg));const n=pg(t);if(n._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const r=t._freezeSettings(),s=new Ef;return bg(n,s,new _f(s,r.cacheSizeBytes,null==e?void 0:e.forceOwnership))}function vg(t){Dg(t=Yf(t,fg));const e=pg(t);if(e._uninitializedComponentsProvider)throw new Zr(Jr.FAILED_PRECONDITION,"SDK cache is already specified.");$r("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const n=t._freezeSettings(),r=new Ef;return bg(e,r,new If(r,n.cacheSizeBytes))}function bg(t,e,n){const r=new ts;return t.asyncQueue.enqueue((async()=>{try{await Nf(t,n),await kf(t,e),r.resolve()}catch(t){const e=t;if(!Rf(e))throw e;$r("Error enabling indexeddb cache. Falling back to memory cache: "+e),r.reject(e)}})).then((()=>r.promise))}function _g(t){if(t._initialized&&!t._terminated)throw new Zr(Jr.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const e=new ts;return t._queue.enqueueAndForgetEvenWhileRestricted((async()=>{try{await async function(t){if(!Vs.D())return Promise.resolve();const e=t+"main";await Vs.delete(e)}(nh(t._databaseId,t._persistenceKey)),e.resolve()}catch(t){e.reject(t)}})),e.promise}function Ig(t){return function(t){const e=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e){const n=Xr(t);ed(n.remoteStore)||jr("SyncEngine","The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{const t=await function(t){const e=Xr(t);return e.persistence.runTransaction("Get highest unacknowledged batch id","readonly",(t=>e.mutationQueue.getHighestUnacknowledgedBatchId(t)))}(n.localStore);if(-1===t)return void e.resolve();const r=n.Ca.get(t)||[];r.push(e),n.Ca.set(t,r)}catch(t){const n=Id(t,"Initialization of waitForPendingWrites() operation failed");e.reject(n)}}(await Vf(t),e))),e.promise}(pg(t=Yf(t,fg)))}function Eg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!0),function(t){const e=Xr(t);return e.v_.delete(0),Qh(e)}(n)}))}(pg(t=Yf(t,fg)))}function Tg(t){return function(t){return t.asyncQueue.enqueue((async()=>{const e=await Of(t),n=await Ff(t);return e.setNetworkEnabled(!1),async function(t){const e=Xr(t);e.v_.add(0),await Hh(e),e.x_.set("Offline")}(n)}))}(pg(t=Yf(t,fg)))}function Sg(t){return i._removeServiceInstance(t.app,"firestore",t._databaseId.database),t._delete()}function xg(t,e){const n=pg(t=Yf(t,fg)),r=new hg;return function(t,e,n,r){const s=function(t,e){let n;return n="string"==typeof t?wu().encode(t):t,function(t,e){return new xf(t,e)}(function(t,e){if(t instanceof Uint8Array)return Tf(t,e);if(t instanceof ArrayBuffer)return Tf(new Uint8Array(t),e);if(t instanceof ReadableStream)return t.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}(n),e)}(n,qh(e));t.asyncQueue.enqueueAndForget((async()=>{!function(t,e,n){const r=Xr(t);(async function(t,e,n){try{const r=await e.getMetadata();if(await function(t,e){const n=Xr(t),r=Uu(e.createTime);return n.persistence.runTransaction("hasNewerBundle","readonly",(t=>n.$r.getBundleMetadata(t,e.id))).then((t=>!!t&&t.createTime.compareTo(r)>=0))}(t.localStore,r))return await e.close(),n._completeWith(function(t){return{taskState:"Success",documentsLoaded:t.totalDocuments,bytesLoaded:t.totalBytes,totalDocuments:t.totalDocuments,totalBytes:t.totalBytes}}(r)),Promise.resolve(new Set);n._updateProgress(Fd(r));const s=new Pd(r,t.localStore,e.serializer);let i=await e.Oa();for(;i;){const t=await s.na(i);t&&n._updateProgress(t),i=await e.Oa()}const o=await s.complete();return await of(t,o.sa,void 0),await function(t,e){const n=Xr(t);return n.persistence.runTransaction("Save bundle","readwrite",(t=>n.$r.saveBundleMetadata(t,e)))}(t.localStore,r),n._completeWith(o.progress),Promise.resolve(o.ia)}catch(t){return $r("SyncEngine",`Loading bundle failed with ${t}`),n._failWith(t),Promise.resolve(new Set)}})(r,e,n).then((t=>{r.sharedClientState.notifyBundleLoaded(t)}))}(await Vf(t),s,r)}))}(n,t._databaseId,e,r),r}function Cg(t,e){return function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){const n=Xr(t);return n.persistence.runTransaction("Get named query","readonly",(t=>n.$r.getNamedQuery(t,e)))}(await Pf(t),e)))}(pg(t=Yf(t,fg)),e).then((e=>e?new eg(t,null,e.query):null))}function Dg(t){if(t._initialized||t._terminated)throw new Zr(Jr.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.")}class Ag{constructor(t="count",e){this._internalFieldPath=e,this.type="AggregateField",this.aggregateType=t}}class Ng{constructor(t,e,n){this._userDataWriter=e,this._data=n,this.type="AggregateQuerySnapshot",this.query=t}data(){return this._userDataWriter.convertObjectMap(this._data)}}class kg{constructor(t){this._byteString=t}static fromBase64String(t){try{return new kg(qi.fromBase64String(t))}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+t)}}static fromUint8Array(t){return new kg(qi.fromUint8Array(t))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(t){return this._byteString.isEqual(t._byteString)}}class Rg{constructor(...t){for(let e=0;e90)throw new Zr(Jr.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new Zr(Jr.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+e);this._lat=t,this._long=e}get latitude(){return this._lat}get longitude(){return this._long}isEqual(t){return this._lat===t._lat&&this._long===t._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(t){return ds(this._lat,t._lat)||ds(this._long,t._long)}}const Pg=/^__.*__$/;class Fg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return null!==this.fieldMask?new nu(t,this.data,this.fieldMask,e,this.fieldTransforms):new eu(t,this.data,e,this.fieldTransforms)}}class Vg{constructor(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}toMutation(t,e){return new nu(t,this.data,this.fieldMask,e,this.fieldTransforms)}}function qg(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw Hr()}}class Bg{constructor(t,e,n,r,s,i){this.settings=t,this.databaseId=e,this.serializer=n,this.ignoreUndefinedProperties=r,void 0===s&&this.Eu(),this.fieldTransforms=s||[],this.fieldMask=i||[]}get path(){return this.settings.path}get du(){return this.settings.du}Au(t){return new Bg(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Ru(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.mu(t),r}fu(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.Au({path:n,Vu:!1});return r.Eu(),r}gu(t){return this.Au({path:void 0,Vu:!0})}pu(t){return om(t,this.settings.methodName,this.settings.yu||!1,this.path,this.settings.wu)}contains(t){return void 0!==this.fieldMask.find((e=>t.isPrefixOf(e)))||void 0!==this.fieldTransforms.find((e=>t.isPrefixOf(e.field)))}Eu(){if(this.path)for(let t=0;tu.covers(t.field)))}else u=null,c=o.fieldTransforms;return new Fg(new wo(a),u,c)}class jg extends Lg{_toFieldTransform(t){if(2!==t.du)throw 1===t.du?t.pu(`${this._methodName}() can only appear at the top level of your update data`):t.pu(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return t.fieldMask.push(t.path),null}isEqual(t){return t instanceof jg}}function Kg(t,e,n){return new Bg({du:3,wu:e.settings.wu,methodName:t._methodName,Vu:n},e.databaseId,e.serializer,e.ignoreUndefinedProperties)}class $g extends Lg{_toFieldTransform(t){return new Ka(t.path,new Fa)}isEqual(t){return t instanceof $g}}class Qg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Va(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Qg&&y(this.bu,t.bu)}}class Hg extends Lg{constructor(t,e){super(t),this.bu=e}_toFieldTransform(t){const e=Kg(this,t,!0),n=this.bu.map((t=>Zg(t,e))),r=new Ba(n);return new Ka(t.path,r)}isEqual(t){return t instanceof Hg&&y(this.bu,t.bu)}}class Wg extends Lg{constructor(t,e){super(t),this.Du=e}_toFieldTransform(t){const e=new za(t.serializer,Ra(t.serializer,this.Du));return new Ka(t.path,e)}isEqual(t){return t instanceof Wg&&this.Du===t.Du}}function Yg(t,e,n,r){const s=t.Su(1,e,n);nm("Data must be an object, but it was:",s,r);const i=[],o=wo.empty();Di(r,((t,r)=>{const a=im(e,t,n);r=v(r);const u=s.fu(a);if(r instanceof jg)i.push(a);else{const t=Zg(r,u);null!=t&&(i.push(a),o.set(a,t))}}));const a=new Pi(i);return new Vg(o,a,s.fieldTransforms)}function Xg(t,e,n,r,s,i){const o=t.Su(1,e,n),a=[rm(e,r,n)],u=[s];if(i.length%2!=0)throw new Zr(Jr.INVALID_ARGUMENT,`Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let t=0;t=0;--t)if(!am(c,a[t])){const e=a[t];let n=u[t];n=v(n);const r=o.fu(e);if(n instanceof jg)c.push(e);else{const t=Zg(n,r);null!=t&&(c.push(e),l.set(e,t))}}const h=new Pi(c);return new Vg(l,h,o.fieldTransforms)}function Jg(t,e,n,r=!1){return Zg(n,t.Su(r?4:3,e))}function Zg(t,e){if(em(t=v(t)))return nm("Unsupported field value:",e,t),tm(t,e);if(t instanceof Lg)return function(t,e){if(!qg(e.du))throw e.pu(`${t._methodName}() can only be used with update() and set()`);if(!e.path)throw e.pu(`${t._methodName}() is not currently supported inside arrays`);const n=t._toFieldTransform(e);n&&e.fieldTransforms.push(n)}(t,e),null;if(void 0===t&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.Vu&&4!==e.du)throw e.pu("Nested arrays are not supported");return function(t,e){const n=[];let r=0;for(const s of t){let t=Zg(s,e.gu(r));null==t&&(t={nullValue:"NULL_VALUE"}),n.push(t),r++}return{arrayValue:{values:n}}}(t,e)}return function(t,e){if(null===(t=v(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ra(e.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date){const n=ms.fromDate(t);return{timestampValue:Vu(e.serializer,n)}}if(t instanceof ms){const n=new ms(t.seconds,1e3*Math.floor(t.nanoseconds/1e3));return{timestampValue:Vu(e.serializer,n)}}if(t instanceof Og)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof kg)return{bytesValue:qu(e.serializer,t._byteString)};if(t instanceof ng){const n=e.databaseId,r=t.firestore._databaseId;if(!r.isEqual(n))throw e.pu(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:zu(t.firestore._databaseId||e.databaseId,t._key.path)}}throw e.pu(`Unsupported field value: ${Wf(t)}`)}(t,e)}function tm(t,e){const n={};return Ai(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):Di(t,((t,r)=>{const s=Zg(r,e.Ru(t));null!=s&&(n[t]=s)})),{mapValue:{fields:n}}}function em(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof ms||t instanceof Og||t instanceof kg||t instanceof ng||t instanceof Lg)}function nm(t,e,n){if(!em(n)||!function(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}(n)){const r=Wf(n);throw"an object"===r?e.pu(t+" a custom object"):e.pu(t+" "+r)}}function rm(t,e,n){if((e=v(e))instanceof Rg)return e._internalPath;if("string"==typeof e)return im(t,e);throw om("Field path arguments must be of type string or ",t,!1,void 0,n)}const sm=new RegExp("[~\\*/\\[\\]]");function im(t,e,n){if(e.search(sm)>=0)throw om(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Rg(...e.split("."))._internalPath}catch(r){throw om(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function om(t,e,n,r,s){const i=r&&!r.isEmpty(),o=void 0!==s;let a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let u="";return(i||o)&&(u+=" (found",i&&(u+=` in field ${r}`),o&&(u+=` in document ${s}`),u+=")"),new Zr(Jr.INVALID_ARGUMENT,a+t+u)}function am(t,e){return t.some((t=>t.isEqual(e)))}class um{constructor(t,e,n,r,s){this._firestore=t,this._userDataWriter=e,this._key=n,this._document=r,this._converter=s}get id(){return this._key.path.lastSegment()}get ref(){return new ng(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const t=new cm(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(t)}return this._userDataWriter.convertValue(this._document.data.value)}}get(t){if(this._document){const e=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==e)return this._userDataWriter.convertValue(e)}}}class cm extends um{data(){return super.data()}}function lm(t,e){return"string"==typeof e?im(t,e):e instanceof Rg?e._internalPath:e._delegate._internalPath}function hm(t){if("L"===t.limitType&&0===t.explicitOrderBy.length)throw new Zr(Jr.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class dm{}class fm extends dm{}function gm(t,e,...n){let r=[];e instanceof dm&&r.push(e),r=r.concat(n),function(t){const e=t.filter((t=>t instanceof ym)).length,n=t.filter((t=>t instanceof mm)).length;if(e>1||e>0&&n>0)throw new Zr(Jr.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(r);for(const e of r)t=e._apply(t);return t}class mm extends fm{constructor(t,e,n){super(),this._field=t,this._op=e,this._value=n,this.type="where"}static _create(t,e,n){return new mm(t,e,n)}_apply(t){const e=this._parse(t);return Lm(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e))}_parse(t){const e=zg(t.firestore),n=function(t,e,n,r,s,i,o){let a;if(s.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new Zr(Jr.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on documentId().`);if("in"===i||"not-in"===i){Mm(o,i);const e=[];for(const n of o)e.push(Rm(r,t,n));a={arrayValue:{values:e}}}else a=Rm(r,t,o)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||Mm(o,i),a=Jg(n,e,o,"in"===i||"not-in"===i);return Co.create(s,i,a)}(t._query,"where",e,t.firestore._databaseId,this._field,this._op,this._value);return n}}function pm(t,e,n){const r=e,s=lm("where",t);return mm._create(s,r,n)}class ym extends dm{constructor(t,e){super(),this.type=t,this._queryConstraints=e}static _create(t,e){return new ym(t,e)}_parse(t){const e=this._queryConstraints.map((e=>e._parse(t))).filter((t=>t.getFilters().length>0));return 1===e.length?e[0]:Do.create(e,this._getOperator())}_apply(t){const e=this._parse(t);return 0===e.getFilters().length?t:(function(t,e){let n=t;const r=e.getFlattenedFilters();for(const t of r)Lm(n,t),n=aa(n,t)}(t._query,e),new eg(t.firestore,t.converter,aa(t._query,e)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function wm(...t){return t.forEach((t=>Om("or",t))),ym._create("or",t)}function vm(...t){return t.forEach((t=>Om("and",t))),ym._create("and",t)}class bm extends fm{constructor(t,e){super(),this._field=t,this._direction=e,this.type="orderBy"}static _create(t,e){return new bm(t,e)}_apply(t){const e=function(t,e,n){if(null!==t.startAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==t.endAt)throw new Zr(Jr.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new To(e,n)}(t._query,this._field,this._direction);return new eg(t.firestore,t.converter,function(t,e){const n=t.explicitOrderBy.concat([e]);return new Zo(t.path,t.collectionGroup,n,t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(t._query,e))}}function _m(t,e="asc"){const n=e,r=lm("orderBy",t);return bm._create(r,n)}class Im extends fm{constructor(t,e,n){super(),this.type=t,this._limit=e,this._limitType=n}static _create(t,e,n){return new Im(t,e,n)}_apply(t){return new eg(t.firestore,t.converter,ua(t._query,this._limit,this._limitType))}}function Em(t){return Xf("limit",t),Im._create("limit",t,"F")}function Tm(t){return Xf("limitToLast",t),Im._create("limitToLast",t,"L")}class Sm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Sm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,e,t.endAt)}(t._query,e))}}function xm(...t){return Sm._create("startAt",t,!0)}function Cm(...t){return Sm._create("startAfter",t,!1)}class Dm extends fm{constructor(t,e,n){super(),this.type=t,this._docOrFields=e,this._inclusive=n}static _create(t,e,n){return new Dm(t,e,n)}_apply(t){const e=km(t,this.type,this._docOrFields,this._inclusive);return new eg(t.firestore,t.converter,function(t,e){return new Zo(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,e)}(t._query,e))}}function Am(...t){return Dm._create("endBefore",t,!1)}function Nm(...t){return Dm._create("endAt",t,!0)}function km(t,e,n,r){if(n[0]=v(n[0]),n[0]instanceof um)return function(t,e,n,r,s){if(!r)throw new Zr(Jr.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${n}().`);const i=[];for(const n of sa(t))if(n.field.isKeyField())i.push(io(e,r.key));else{const t=r.data.field(n.field);if(ji(t))throw new Zr(Jr.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+n.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===t){const t=n.field.canonicalString();throw new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${t}' (used as the orderBy) does not exist.`)}i.push(t)}return new _o(i,s)}(t._query,t.firestore._databaseId,e,n[0]._document,r);{const s=zg(t.firestore);return function(t,e,n,r,s,i){const o=t.explicitOrderBy;if(s.length>o.length)throw new Zr(Jr.INVALID_ARGUMENT,`Too many arguments provided to ${r}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const a=[];for(let i=0;i=0)return t.op;return null}(t.filters,function(t){switch(t){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}}(e.op));if(null!==n)throw n===e.op?new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new Zr(Jr.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}function Om(t,e){if(!(e instanceof mm||e instanceof ym))throw new Zr(Jr.INVALID_ARGUMENT,`Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}class Pm{convertValue(t,e="none"){switch(Xi(t)){case 0:return null;case 1:return t.booleanValue;case 2:return zi(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,e);case 5:return t.stringValue;case 6:return this.convertBytes(Gi(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,e);case 10:return this.convertObject(t.mapValue,e);default:throw Hr()}}convertObject(t,e){return this.convertObjectMap(t.fields,e)}convertObjectMap(t,e="none"){const n={};return Di(t,((t,r)=>{n[t]=this.convertValue(r,e)})),n}convertGeoPoint(t){return new Og(zi(t.latitude),zi(t.longitude))}convertArray(t,e){return(t.values||[]).map((t=>this.convertValue(t,e)))}convertServerTimestamp(t,e){switch(e){case"previous":const n=Ki(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp($i(t));default:return null}}convertTimestamp(t){const e=Ui(t);return new ms(e.seconds,e.nanos)}convertDocumentKey(t,e){const n=ws.fromString(t);Wr(dc(n));const r=new Hi(n.get(1),n.get(3)),s=new _s(n.popFirst(5));return r.isEqual(e)||Kr(`Document ${s} contains a document reference within a different database (${r.projectId}/${r.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`),s}}function Fm(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}class Vm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function qm(t){return new Ag("sum",rm("sum",t))}function Bm(t){return new Ag("avg",rm("average",t))}function Um(){return new Ag("count")}function zm(t,e){var n,r;return t instanceof Ag&&e instanceof Ag&&t.aggregateType===e.aggregateType&&(null===(n=t._internalFieldPath)||void 0===n?void 0:n.canonicalString())===(null===(r=e._internalFieldPath)||void 0===r?void 0:r.canonicalString())}function Gm(t,e){return ug(t.query,e.query)&&y(t.data(),e.data())}class jm{constructor(t,e){this.hasPendingWrites=t,this.fromCache=e}isEqual(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache}}class Km extends um{constructor(t,e,n,r,s,i){super(t,e,n,r,i),this._firestore=t,this._firestoreImpl=t,this.metadata=s}exists(){return super.exists()}data(t={}){if(this._document){if(this._converter){const e=new $m(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(e,t)}return this._userDataWriter.convertValue(this._document.data.value,t.serverTimestamps)}}get(t,e={}){if(this._document){const n=this._document.data.field(lm("DocumentSnapshot.get",t));if(null!==n)return this._userDataWriter.convertValue(n,e.serverTimestamps)}}}class $m extends Km{data(t={}){return super.data(t)}}class Qm{constructor(t,e,n,r){this._firestore=t,this._userDataWriter=e,this._snapshot=r,this.metadata=new jm(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const t=[];return this.forEach((e=>t.push(e))),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,e){this._snapshot.docs.forEach((n=>{t.call(e,new $m(this._firestore,this._userDataWriter,n.key,n,new jm(this._snapshot.mutatedKeys.has(n.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(t={}){const e=!!t.includeMetadataChanges;if(e&&this._snapshot.excludesMetadataChanges)throw new Zr(Jr.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===e||(this._cachedChanges=function(t,e){if(t._snapshot.oldDocs.isEmpty()){let e=0;return t._snapshot.docChanges.map((n=>{const r=new $m(t._firestore,t._userDataWriter,n.doc.key,n.doc,new jm(t._snapshot.mutatedKeys.has(n.doc.key),t._snapshot.fromCache),t.query.converter);return n.doc,{type:"added",doc:r,oldIndex:-1,newIndex:e++}}))}{let n=t._snapshot.oldDocs;return t._snapshot.docChanges.filter((t=>e||3!==t.type)).map((e=>{const r=new $m(t._firestore,t._userDataWriter,e.doc.key,e.doc,new jm(t._snapshot.mutatedKeys.has(e.doc.key),t._snapshot.fromCache),t.query.converter);let s=-1,i=-1;return 0!==e.type&&(s=n.indexOf(e.doc.key),n=n.delete(e.doc.key)),1!==e.type&&(n=n.add(e.doc),i=n.indexOf(e.doc.key)),{type:Hm(e.type),doc:r,oldIndex:s,newIndex:i}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function Hm(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return Hr()}}function Wm(t,e){return t instanceof Km&&e instanceof Km?t._firestore===e._firestore&&t._key.isEqual(e._key)&&(null===t._document?null===e._document:t._document.isEqual(e._document))&&t._converter===e._converter:t instanceof Qm&&e instanceof Qm&&t._firestore===e._firestore&&ug(t.query,e.query)&&t.metadata.isEqual(e.metadata)&&t._snapshot.isEqual(e._snapshot)}function Ym(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key).then((n=>lp(e,t,n)))}class Xm extends Pm{constructor(t){super(),this.firestore=t}convertBytes(t){return new kg(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ng(this.firestore,null,e)}}function Jm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await function(t,e){const n=Xr(t);return n.persistence.runTransaction("read document","readonly",(t=>n.localDocuments.getDocument(t,e)))}(t,e);r.isFoundDocument()?n.resolve(r):r.isNoDocument()?n.resolve(null):n.reject(new Zr(Jr.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(t){const r=Id(t,`Failed to get document '${e} from cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._key).then((n=>new Km(e,r,t._key,n,new jm(null!==n&&n.hasLocalMutations,!0),t.converter)))}function Zm(t){t=Yf(t,ng);const e=Yf(t.firestore,fg);return Uf(pg(e),t._key,{source:"server"}).then((n=>lp(e,t,n)))}function tp(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return hm(t._query),zf(n,t._query).then((n=>new Qm(e,r,t,n)))}function ep(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){try{const r=await gh(t,e,!0),s=new Bd(e,r.hs),i=s.ha(r.documents),o=s.applyChanges(i,!1);n.resolve(o.snapshot)}catch(t){const r=Id(t,`Failed to execute query '${e} against cache`);n.reject(r)}}(await Pf(t),e,n))),n.promise}(n,t._query).then((n=>new Qm(e,r,t,n)))}function np(t){t=Yf(t,eg);const e=Yf(t.firestore,fg),n=pg(e),r=new Xm(e);return zf(n,t._query,{source:"server"}).then((n=>new Qm(e,r,t,n)))}function rp(t,e,n){t=Yf(t,ng);const r=Yf(t.firestore,fg),s=Fm(t.converter,e,n);return cp(r,[Gg(zg(r),"setDoc",t._key,s,null!==t.converter,n).toMutation(t._key,Qa.none())])}function sp(t,e,n,...r){t=Yf(t,ng);const s=Yf(t.firestore,fg),i=zg(s);let o;return o="string"==typeof(e=v(e))||e instanceof Rg?Xg(i,"updateDoc",t._key,e,n,r):Yg(i,"updateDoc",t._key,e),cp(s,[o.toMutation(t._key,Qa.exists(!0))])}function ip(t){return cp(Yf(t.firestore,fg),[new ou(t._key,Qa.none())])}function op(t,e){const n=Yf(t.firestore,fg),r=og(t),s=Fm(t.converter,e);return cp(n,[Gg(zg(t.firestore),"addDoc",r._key,s,null!==t.converter,{}).toMutation(r._key,Qa.exists(!1))]).then((()=>r))}function ap(t,...e){var n,r,s;t=v(t);let i={includeMetadataChanges:!1},o=0;"object"!=typeof e[o]||lg(e[o])||(i=e[o],o++);const a={includeMetadataChanges:i.includeMetadataChanges};if(lg(e[o])){const t=e[o];e[o]=null===(n=t.next)||void 0===n?void 0:n.bind(t),e[o+1]=null===(r=t.error)||void 0===r?void 0:r.bind(t),e[o+2]=null===(s=t.complete)||void 0===s?void 0:s.bind(t)}let u,c,l;if(t instanceof ng)c=Yf(t.firestore,fg),l=ea(t._key.path),u={next:n=>{e[o]&&e[o](lp(c,t,n))},error:e[o+1],complete:e[o+2]};else{const n=Yf(t,eg);c=Yf(n.firestore,fg),l=n._query;const r=new Xm(c);u={next:t=>{e[o]&&e[o](new Qm(c,r,n,t))},error:e[o+1],complete:e[o+2]},hm(t._query)}return function(t,e,n,r){const s=new Sf(r),i=new Md(e,s,n);return t.asyncQueue.enqueueAndForget((async()=>Dd(await Bf(t),i))),()=>{s.La(),t.asyncQueue.enqueueAndForget((async()=>Ad(await Bf(t),i)))}}(pg(c),l,a,u)}function up(t,e){return function(t,e){const n=new Sf(e);return t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.add(e),e.next()}(await Bf(t),n))),()=>{n.La(),t.asyncQueue.enqueueAndForget((async()=>function(t,e){Xr(t).K_.delete(e)}(await Bf(t),n)))}}(pg(t=Yf(t,fg)),lg(e)?e:{next:e})}function cp(t,e){return function(t,e){const n=new ts;return t.asyncQueue.enqueueAndForget((async()=>async function(t,e,n){const r=wf(t);try{const t=await function(t,e){const n=Xr(t),r=ms.now(),s=e.reduce(((t,e)=>t.add(e.key)),Ca());let i,o;return n.persistence.runTransaction("Locally write mutations","readwrite",(t=>{let a=wa(),u=Ca();return n.os.getEntries(t,s).next((t=>{a=t,a.forEach(((t,e)=>{e.isValidDocument()||(u=u.add(t))}))})).next((()=>n.localDocuments.getOverlayedDocuments(t,a))).next((s=>{i=s;const o=[];for(const t of e){const e=Za(t,i.get(t.key).overlayedDocument);null!=e&&o.push(new nu(t.key,e,vo(e.value.mapValue),Qa.exists(!0)))}return n.mutationQueue.addMutationBatch(t,r,o,e)})).next((e=>{o=e;const r=e.applyToLocalDocumentSet(i,u);return n.documentOverlayCache.saveOverlays(t,e.batchId,r)}))})).then((()=>({batchId:o.batchId,changes:_a(i)})))}(r.localStore,e);r.sharedClientState.addPendingMutation(t.batchId),function(t,e,n){let r=t.Da[t.currentUser.toKey()];r||(r=new Ni(ds)),r=r.insert(e,n),t.Da[t.currentUser.toKey()]=r}(r,t.batchId,n),await of(r,t.changes),await ud(r.remoteStore)}catch(t){const e=Id(t,"Failed to persist write");n.reject(e)}}(await Vf(t),e,n))),n.promise}(pg(t),e)}function lp(t,e,n){const r=n.docs.get(e._key),s=new Xm(t);return new Km(t,s,e._key,r,new jm(n.hasPendingWrites,n.fromCache),e.converter)}function hp(t){return dp(t,{count:Um()})}function dp(t,e){const n=Yf(t.firestore,fg),r=pg(n),s=function(t,e){const n=[];for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&n.push(e(t[r],r,t));return n}(e,((t,e)=>new hu(e,t.aggregateType,t._internalFieldPath)));return function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{try{const s=await qf(t);r.resolve(async function(t,e,n){var r;const s=Xr(t),{request:i,V_:o,parent:a}=function(t,e,n){const{ut:r,parent:s}=nc(t,e),i={},o=[];let a=0;return n.forEach((t=>{const e="aggregate_"+a++;i[e]=t.alias,"count"===t.aggregateType?o.push({alias:e,count:{}}):"avg"===t.aggregateType?o.push({alias:e,avg:{field:uc(t.fieldPath)}}):"sum"===t.aggregateType&&o.push({alias:e,sum:{field:uc(t.fieldPath)}})})),{request:{structuredAggregationQuery:{aggregations:o,structuredQuery:r.structuredQuery},parent:r.parent},V_:i,parent:s}}(s.serializer,function(t){const e=Xr(t);return e.Pe||(e.Pe=oa(e,t.explicitOrderBy)),e.Pe}(e),n);s.connection.wo||delete i.parent;const u=(await s.vo("RunAggregationQuery",s.serializer.databaseId,a,i,1)).filter((t=>!!t.result));Wr(1===u.length);const c=null===(r=u[0].result)||void 0===r?void 0:r.aggregateFields;return Object.keys(c).reduce(((t,e)=>(t[o[e]]=c[e],t)),{})}(s,e,n))}catch(t){r.reject(t)}})),r.promise}(r,t._query,s).then((e=>function(t,e,n){const r=new Xm(t);return new Ng(e,r,n)}(n,t,e)))}class fp{constructor(t){this.kind="memory",this._onlineComponentProvider=new Ef,(null==t?void 0:t.garbageCollector)?this._offlineComponentProvider=t.garbageCollector._offlineComponentProvider:this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class gp{constructor(t){let e;this.kind="persistent",(null==t?void 0:t.tabManager)?(t.tabManager._initialize(t),e=t.tabManager):(e=Ep(void 0),e._initialize(t)),this._onlineComponentProvider=e._onlineComponentProvider,this._offlineComponentProvider=e._offlineComponentProvider}toJSON(){return{kind:this.kind}}}class mp{constructor(){this.kind="memoryEager",this._offlineComponentProvider=new vf}toJSON(){return{kind:this.kind}}}class pp{constructor(t){this.kind="memoryLru",this._offlineComponentProvider=new bf(t)}toJSON(){return{kind:this.kind}}}function yp(){return new mp}function wp(t){return new pp(null==t?void 0:t.cacheSizeBytes)}function vp(t){return new fp(t)}function bp(t){return new gp(t)}class _p{constructor(t){this.forceOwnership=t,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new _f(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes,this.forceOwnership)}}class Ip{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(t){this._onlineComponentProvider=new Ef,this._offlineComponentProvider=new If(this._onlineComponentProvider,null==t?void 0:t.cacheSizeBytes)}}function Ep(t){return new _p(null==t?void 0:t.forceOwnership)}function Tp(){return new Ip}const Sp={maxAttempts:5};class xp{constructor(t,e){this._firestore=t,this._commitHandler=e,this._mutations=[],this._committed=!1,this._dataReader=zg(t)}set(t,e,n){this._verifyNotCommitted();const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"WriteBatch.set",r._key,s,null!==r.converter,n);return this._mutations.push(i.toMutation(r._key,Qa.none())),this}update(t,e,n,...r){this._verifyNotCommitted();const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"WriteBatch.update",s._key,e,n,r):Yg(this._dataReader,"WriteBatch.update",s._key,e),this._mutations.push(i.toMutation(s._key,Qa.exists(!0))),this}delete(t){this._verifyNotCommitted();const e=Cp(t,this._firestore);return this._mutations=this._mutations.concat(new ou(e._key,Qa.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,this._mutations.length>0?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new Zr(Jr.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function Cp(t,e){if((t=v(t)).firestore!==e)throw new Zr(Jr.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t}class Dp extends class{constructor(t,e){this._firestore=t,this._transaction=e,this._dataReader=zg(t)}get(t){const e=Cp(t,this._firestore),n=new Vm(this._firestore);return this._transaction.lookup([e._key]).then((t=>{if(!t||1!==t.length)return Hr();const r=t[0];if(r.isFoundDocument())return new um(this._firestore,n,r.key,r,e.converter);if(r.isNoDocument())return new um(this._firestore,n,e._key,null,e.converter);throw Hr()}))}set(t,e,n){const r=Cp(t,this._firestore),s=Fm(r.converter,e,n),i=Gg(this._dataReader,"Transaction.set",r._key,s,null!==r.converter,n);return this._transaction.set(r._key,i),this}update(t,e,n,...r){const s=Cp(t,this._firestore);let i;return i="string"==typeof(e=v(e))||e instanceof Rg?Xg(this._dataReader,"Transaction.update",s._key,e,n,r):Yg(this._dataReader,"Transaction.update",s._key,e),this._transaction.update(s._key,i),this}delete(t){const e=Cp(t,this._firestore);return this._transaction.delete(e._key),this}}{constructor(t,e){super(t,e),this._firestore=t}get(t){const e=Cp(t,this._firestore),n=new Xm(this._firestore);return super.get(t).then((t=>new Km(this._firestore,n,e._key,t._document,new jm(!1,!1),e.converter)))}}function Ap(t,e,n){t=Yf(t,fg);const r=Object.assign(Object.assign({},Sp),n);return function(t){if(t.maxAttempts<1)throw new Zr(Jr.INVALID_ARGUMENT,"Max attempts must be at least 1")}(r),function(t,e,n){const r=new ts;return t.asyncQueue.enqueueAndForget((async()=>{const s=await qf(t);new Df(t.asyncQueue,s,n,e,r).ja()})),r.promise}(pg(t),(n=>e(new Dp(t,n))),r)}function Np(){return new jg("deleteField")}function kp(){return new $g("serverTimestamp")}function Rp(...t){return new Qg("arrayUnion",t)}function Mp(...t){return new Hg("arrayRemove",t)}function Lp(t){return new Wg("increment",t)}function Op(t){return pg(t=Yf(t,fg)),new xp(t,(e=>cp(t,e)))}function Pp(t,e){var n;const r=pg(t=Yf(t,fg));if(!r._uninitializedComponentsProvider||"memory"===(null===(n=r._uninitializedComponentsProvider)||void 0===n?void 0:n._offlineKind))return $r("Cannot enable indexes when persistence is disabled"),Promise.resolve();const s=function(t){const e="string"==typeof t?function(t){try{return JSON.parse(t)}catch(t){throw new Zr(Jr.INVALID_ARGUMENT,"Failed to parse JSON: "+(null==t?void 0:t.message))}}(t):t,n=[];if(Array.isArray(e.indexes))for(const t of e.indexes){const e=Fp(t,"collectionGroup"),r=[];if(Array.isArray(t.fields))for(const e of t.fields){const t=im("setIndexConfiguration",Fp(e,"fieldPath"));"CONTAINS"===e.arrayConfig?r.push(new xs(t,2)):"ASCENDING"===e.order?r.push(new xs(t,0)):"DESCENDING"===e.order&&r.push(new xs(t,1))}n.push(new Is(Is.UNKNOWN_ID,e,r,Ds.empty()))}return n}(e);return function(t,e){return t.asyncQueue.enqueue((async()=>async function(t,e){const n=Xr(t),r=n.indexManager,s=[];return n.persistence.runTransaction("Configure indexes","readwrite",(t=>r.getFieldIndexes(t).next((n=>function(t,e,n,r,s){t=[...t],e=[...e],t.sort(n),e.sort(n);const i=t.length,o=e.length;let a=0,u=0;for(;a0?r(e[a++]):(a++,u++)}for(;a{s.push(r.addFieldIndex(t,e))}),(e=>{s.push(r.deleteFieldIndex(t,e))})))).next((()=>Ps.waitFor(s)))))}(await Pf(t),e)))}(r,s)}function Fp(t,e){if("string"!=typeof t[e])throw new Zr(Jr.INVALID_ARGUMENT,"Missing string value for: "+e);return t[e]}class Vp{constructor(t){this._client=t,this.type="PersistentCacheIndexManager"}}function qp(t){var e;t=Yf(t,fg);const n=jp.get(t);if(n)return n;const r=pg(t);if("persistent"!==(null===(e=r._uninitializedComponentsProvider)||void 0===e?void 0:e._offlineKind))return null;const s=new Vp(r);return jp.set(t,s),s}function Bp(t){Gp(t,!0)}function Up(t){Gp(t,!1)}function zp(t){t._client.verifyNotTerminated(),function(t){return t.asyncQueue.enqueue((async()=>function(t){const e=Xr(t),n=e.indexManager;return e.persistence.runTransaction("Delete All Indexes","readwrite",(t=>n.deleteAllFieldIndexes(t)))}(await Pf(t))))}(t._client).then((t=>jr("deleting all persistent cache indexes succeeded"))).catch((t=>$r("deleting all persistent cache indexes failed",t)))}function Gp(t,e){t._client.verifyNotTerminated(),function(t,e){return t.asyncQueue.enqueue((async()=>function(t,e){Xr(t).ts.Ui=e}(await Pf(t),e)))}(t._client,e).then((t=>jr(`setting persistent cache index auto creation isEnabled=${e} succeeded`))).catch((t=>$r(`setting persistent cache index auto creation isEnabled=${e} failed`,t)))}const jp=new WeakMap;class Kp{constructor(){throw new Error("instances of this class should not be created")}static onExistenceFilterMismatch(t){return $p.instance.onExistenceFilterMismatch(t)}}class $p{constructor(){this.Cu=new Map}static get instance(){return Qp||(Qp=new $p,function(t){if(yu)throw new Error("a TestingHooksSpi instance is already set");yu=t}(Qp)),Qp}tt(t){this.Cu.forEach((e=>e(t)))}onExistenceFilterMismatch(t){const e=Symbol(),n=this.Cu;return n.set(e,t),()=>n.delete(e)}}let Qp=null;!function(t,e=!0){!function(t){Br=t}(i.SDK_VERSION),i._registerComponent(new b("firestore",((t,{instanceIdentifier:n,options:r})=>{const s=t.getProvider("app").getImmediate(),i=new fg(new ss(t.getProvider("auth-internal")),new us(t.getProvider("app-check-internal")),function(t,e){if(!Object.prototype.hasOwnProperty.apply(t.options,["projectId"]))throw new Zr(Jr.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new Hi(t.options.projectId,e)}(s,n),s);return r=Object.assign({useFetchStreams:e},r),i._setSettings(r),i}),"PUBLIC").setMultipleInstances(!0)),i.registerVersion(Vr,"4.4.2",t),i.registerVersion(Vr,"4.4.2","esm2017")}()})); \ No newline at end of file diff --git a/frontend-dist/help-circle-outline.a023036a.svg b/frontend-dist/help-circle-outline.a023036a.svg new file mode 100644 index 0000000000..17ce1e0bc9 --- /dev/null +++ b/frontend-dist/help-circle-outline.a023036a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/index.7e5e6cea.css b/frontend-dist/index.7e5e6cea.css new file mode 100644 index 0000000000..f146bcdc3c --- /dev/null +++ b/frontend-dist/index.7e5e6cea.css @@ -0,0 +1 @@ +*{box-sizing:border-box}html{font-size:17px}#title h1{color:var(--pluto-output-h-color);font-family:Vollkorn,Palatino,serif;font-size:2em;font-style:italic;font-weight:500;letter-spacing:.08em;margin:0;padding:4rem 1rem 3rem;text-align:center}#title h1 img{filter:var(--image-filters);height:1.2em;margin-bottom:-.27em;margin-left:.1em;width:4.9em}body{background:var(--main-bg-color);margin:0;min-height:100%;position:absolute;width:100%}p{color:var(--index-text-color)}ul{list-style:none;padding-left:0}li{border-bottom:1px solid var(--welcome-recentnotebook-border);padding:.4em;white-space:nowrap}a{color:inherit;color:var(--index-clickable-text-color)}pluto-filepicker{background:var(--white);display:flex;flex-direction:row}.desktop_picker{display:flex;flex-direction:row;margin-left:5px}pluto-filepicker .cm-editor{background:none;border:2px solid var(--footer-filepicker-focus-color);border-radius:3px;border-bottom-right-radius:0;border-right:none;border-top-right-radius:0;color:var(--nav-filepicker-color);display:inline-block;flex:1 1 auto;font-family:var(--inter-ui-font-stack);font-size:.75rem;font-style:normal;font-weight:500;height:calc(1rem + 12px);letter-spacing:1px;width:100%;width:0}pluto-filepicker .cm-scroller{scrollbar-width:none}pluto-filepicker .cm-scroller::-webkit-scrollbar{display:none}.desktop_picker button,pluto-filepicker button{background:var(--footer-filepicker-focus-color);border:2px solid var(--nav-filepicker-focus-color);border-radius:3px;color:var(--white);font-family:Roboto Mono,monospace;font-size:.75rem;font-weight:600;margin:0}.desktop_picker_group{display:inline-flex}.desktop_picker_group>input{margin-left:1em}.desktop_picker>button{cursor:pointer}.desktop_picker>button.full_width{width:100%}pluto-filepicker button{border-bottom-left-radius:0;border-top-left-radius:0;cursor:pointer;flex:0 1 auto}pluto-filepicker button:disabled{cursor:not-allowed;opacity:.7}.cm-editor .cm-tooltip{border:1px solid var(--cm-editor-tooltip-border-color);border-radius:4px;box-shadow:3px 3px 4px rgb(0 0 0/20%)}.cm-tooltip-autocomplete{box-sizing:content-box;z-index:100}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul{max-height:max(3em,min(50dvh,20em))}.cm-tooltip.cm-completionInfo.cm-completionInfo-right:empty{display:none}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li{border-radius:3px;height:18px;margin-bottom:unset;overflow-y:hidden}.cm-editor .cm-tooltip.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--cm-editor-li-aria-selected-bg-color);color:var(--cm-editor-li-aria-selected-color)}.cm-editor .cm-completionIcon{display:none}.cm-completionIcon:before{color:transparent;content:"⚫";margin-right:.5em;opacity:1}.cm-tooltip.cm-tooltip-autocomplete{background:var(--autocomplete-menu-bg-color);margin-left:-1.5em;padding:0}.cm-tooltip-autocomplete li.file.new:before{content:"👉 "}.cm-tooltip-autocomplete li.file:before{content:"📄 "}.cm-tooltip-autocomplete li.dir:before{content:"📁 "}.cm-tooltip-autocomplete>ul{padding:0}.cm-editor .cm-tooltip-autocomplete .cm-completionLabel{font-family:var(--inter-ui-font-stack);font-size:.8rem;font-variant-ligatures:none;font-weight:400}body.nosessions ul#new~*{display:none}#recent{scrollbar-gutter:stable;background:var(--welcome-recentnotebook-bg);border:.2rem solid #d5d5d5;border-radius:.4rem;box-shadow:-2px 4px 9px 0 #00000012;max-height:16em;overflow-x:hidden;overflow-y:auto}#recent>li.recent{opacity:.8}#recent button{background:none;border:none;color:var(--ui-button-color);cursor:pointer;margin:0 .2em 0 0;opacity:.6;padding:1px}span.ionicon:after{background-size:1rem 1rem;content:" ";display:inline-block;filter:var(--image-filters);height:1rem;margin-bottom:-.17rem;width:1rem}#recent li.running button>span:after{background-image:url(close-circle.d0f6eac6.svg)}#recent li.recent button>span:after{background-image:url(caret-forward-circle-outline.d0bf2b34.svg)}#recent li.transitioning button>span:after{background-image:url(ellipsis-horizontal-outline.abb6e818.svg)}#recent li.new span:after{background-image:url(add-outline.e3c93c35.svg)}loading-bar{background-color:var(--loading-grad-color-1);display:none;height:6px;position:fixed;top:0;width:100vw}body.loading loading-bar{animation:load 16s ease-in-out;display:block}@keyframes load{0%{right:100vw}20%{right:30vw}to{right:0}}.card-list{display:grid;place-items:center;align-items:stretch;gap:0;grid-template-columns:repeat(auto-fit,minmax(var(--card-width),1fr));justify-items:stretch}.navigating-away-banner{display:grid;min-height:70vh;padding:3em;place-content:center;width:100vw}.navigating-away-banner h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} \ No newline at end of file diff --git a/frontend-dist/index.b7b0b461.js b/frontend-dist/index.b7b0b461.js new file mode 100644 index 0000000000..0d6ce1771c --- /dev/null +++ b/frontend-dist/index.b7b0b461.js @@ -0,0 +1,122 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},t={},o={},n=e.parcelRequire94c2;null==n&&((n=function(e){if(e in t)return t[e].exports;if(e in o){var n=o[e];delete o[e];var r={id:e,exports:{}};return t[e]=r,n.call(r.exports,r,r.exports),r.exports}var l=new Error("Cannot find module '"+e+"'");throw l.code="MODULE_NOT_FOUND",l}).register=function(e,t){o[e]=t},e.parcelRequire94c2=n);var r=n("cNaMA");n("eS9BV");var l,i,a,s,c={};l=c,i="Welcome",a=()=>B,s=e=>B=e,Object.defineProperty(l,i,{get:a,set:s,enumerable:!0,configurable:!0}),n("9Ta4i");r=n("cNaMA"),r=n("cNaMA");var u=n("4zMEb");const d=async()=>{let e=await fetch("https://api.github.com/repos/fonsp/Pluto.jl/releases",{method:"GET",mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});return(await e.json()).reverse()};n("9Ta4i");r=n("cNaMA");var p=n("2ZZ1r"),h=n("hrGZZ");r=n("cNaMA");const f=e=>{const t=`${e}\n`.replace("\r\n","\n"),o=t.indexOf("### A Pluto.jl notebook ###"),n=t.match(/# ... ........-....-....-....-............/g),r=(null==n?void 0:n.length)??0;let l=t.indexOf("# ╔═╡ Cell order:")+17+1;for(let e=1;e<=r;e++)l=t.indexOf("\n",l+1)+1;return t.slice(o,l)},m=({on_start_navigation:e})=>{const t=async t=>{var o;let n;if(console.log(t),(null===(o=((null==t?void 0:t.path)??(null==t?void 0:t.composedPath())).filter((e=>{var t;return null==e||null===(t=e.classList)||void 0===t?void 0:t.contains(".cm-editor")})))||void 0===o?void 0:o.length)>0)return;switch(t.type){case"paste":n=f(t.clipboardData.getData("text/plain"));break;case"dragstart":return void(t.dataTransfer.dropEffect="move");case"dragover":return void t.preventDefault();case"drop":t.preventDefault(),n=t.dataTransfer.types.includes("Files")?await(l=t.dataTransfer.files[0],new Promise(((e,t)=>{const{name:o,type:n}=l,r=new FileReader;r.onerror=()=>t("Failed to read file!"),r.onloadstart=()=>{},r.onprogress=({loaded:e,total:t})=>{},r.onload=()=>{},r.onloadend=()=>e({file:r.result,name:o,type:n}),r.readAsText(l)}))).then((({file:e})=>e)):f(await(r=t.dataTransfer.items[0],new Promise(((e,t)=>{try{r.getAsString((t=>{console.log(t),e(t)}))}catch(e){t(e)}}))))}var r,l;if(!n)return;e("notebook from clipboard",!1),document.body.classList.add("loading");const i=await fetch("./notebookupload",{method:"POST",body:n});if(i.ok)window.location.href=b(await i.text());else{let e=await i.blob();window.location.href=URL.createObjectURL(e)}};return h.useEventListener(document,"paste",t,[t]),h.useEventListener(document,"drop",t,[t]),h.useEventListener(document,"dragstart",t,[t]),h.useEventListener(document,"dragover",t,[t]),r.html``};var _=n("1xJnC");const v=({client:e,connected:t,CustomPicker:o,show_samples:n,on_start_navigation:l})=>{const i=o??{text:"Open a notebook",placeholder:"Enter path or URL..."};return r.html`<${m} on_start_navigation=${l} /> +

${i.text}

+
+ <${p.FilePicker} + key=${i.placeholder} + client=${e} + value="" + on_submit=${async e=>{const t=await _.guess_notebook_location(e);l(t.path_or_url),window.location.href=("path"===t.type?g:w)(t.path_or_url)}} + on_desktop_submit=${async e=>{var t;null===(t=window.plutoDesktop)||void 0===t||t.fileSystem.openNotebook("path")}} + button_label=${window.plutoDesktop?"Open File":"Open"} + placeholder=${i.placeholder} + /> + ${window.plutoDesktop&&r.html`<${p.FilePicker} + key=${i.placeholder} + client=${e} + value="" + on_desktop_submit=${async e=>{var t;null===(t=window.plutoDesktop)||void 0===t||t.fileSystem.openNotebook("url",e)}} + button_label="Open from URL" + placeholder=${i.placeholder} + />`} +
`},g=(e,t=!1)=>"open?"+new URLSearchParams({path:e}).toString(),w=e=>"open?"+new URLSearchParams({url:e}).toString(),b=e=>"edit?id="+e;var k=n("9Ta4i"),y=(r=n("cNaMA"),r=n("cNaMA"),n("aN0pg")),$=n("dYd4C");const j=e=>({transitioning:!1,entry:void 0,path:e}),P=e=>({transitioning:!1,entry:e,path:e.path}),S=(e,t)=>e.split(/\/|\\/).slice(-t).join("/"),E=(e,t)=>{let o=1;for(const n of t)if(n!==e)for(;S(e,o)===S(n,o);)o++;return S(e,o)},x=({client:e,connected:t,remote_notebooks:o,CustomRecent:n,on_start_navigation:l})=>{const[i,a]=r.useState(null),s=r.useRef(i);s.current=i;const c=(e,t)=>{a((o=>(null==o?void 0:o.map((o=>o.path==e?{...o,...t}:o)))??null))};r.useEffect((()=>{null!=e&&t&&e.send("get_all_notebooks",{},{}).then((({message:e})=>{const t=e.notebooks.map((e=>P(e))),o=L(),n=[...k.default.sortBy(t,[e=>k.default.findIndex([...o,...t],(t=>t.path===e.path))]),...k.default.differenceBy(o,t,(e=>e.path))];a(n),document.body.classList.remove("loading")}))}),[null!=e&&t]),r.useEffect((()=>{const e=o;if(null!=s.current){const t=[],o=s.current.map((o=>{let n=null;if(n=null!=o.entry?e.find((e=>{var t;return e.notebook_id===(null===(t=o.entry)||void 0===t?void 0:t.notebook_id)})):e.find((e=>e.path===o.path)),null==n)return j(o.path);{const e=P(n);return t.push(n),e}})),n=e.filter((e=>!t.includes(e))).map(P);a([...n,...o])}}),[o]);r.useEffect((()=>{document.body.classList.toggle("nosessions",!(null==i||i.length>0))}),[i]);const u=null==i?void 0:i.map((e=>e.path));let d=null==i?r.html`
  • Loading...
  • `:i.map((t=>{var o,n;const i=null!=t.entry;return r.html`
  • + + {i||(l(E(t.path,u)),c(t.path,{transitioning:!0}))}} + >${E(t.path,u)} +
  • `}));return null==n?r.html` +

    My work

    + + `:r.html`<${n} cl=${y.cl} combined=${i} client=${e} recents=${d} />`},L=()=>{const e=localStorage.getItem("recent notebooks"),t=null!=e?JSON.parse(e):[];return(t instanceof Array?t:[]).map(j)};k=n("9Ta4i"),r=n("cNaMA");var C=n("h2NGW"),N=n("1Mxs0");const T=[{title:"Featured Notebooks",description:"These notebooks from the Julia community show off what you can do with Pluto. Give it a try, you might learn something new!",collections:[{title:"Loading...",tags:[]}],notebooks:{}}],A=r.html` + +`,O=[{title:"Notebooks",tags:"everything"}],R=e=>(null==e?void 0:e.id)??e.url,M=({sources:e,direct_html_links:t})=>{const[o,n]=r.useState({});r.useEffect((()=>{if(null!=e){i(!1),n({});const t=Array.from(new Set(e.map(R))).map((t=>{const o=e.filter((e=>R(e)===t));return I(o.map((async e=>{const{url:o,integrity:n,valid_until:r}=e;if(null!=r&&new Date(r){n((n=>({...n,[t]:{...e,source_url:o}})))}))}));Promise.any(t).catch((e=>{console.error("All featured sources failed to load: ",e),((null==e?void 0:e.errors)??[]).forEach((e=>console.error(e))),i(!0)}))}}),[e]),r.useEffect((()=>{Object.entries(o).length>0&&console.log("Sources:",o)}),[o]);const[l,i]=r.useState(!1);r.useEffect((()=>{setTimeout((()=>{i(!0)}),8e3)}),[]);const a=0===Object.entries(o).length,s=Array.from(new Set((null==e?void 0:e.map(R))??[])).map((e=>o[e])).filter((e=>null!=e));return a&&l?A:r.html` + ${(a?T:s).map((e=>{let o=(null==e?void 0:e.collections)??O;return r.html` + + `}))} + `};C.default(M,"pluto-featured",["sources","direct_html_links"]);const D=(e,t)=>{const o="everything"===t?e:e.filter((e=>t.some((t=>{var o;return((null===(o=e.frontmatter)||void 0===o?void 0:o.tags)??[]).includes(t)}))));return k.default.sortBy(o,[e=>{var t;return(e=>isNaN(e)?e:Number(e))(null==e||null===(t=e.frontmatter)||void 0===t?void 0:t.order)},"id"])},I=(e,t=[])=>e.length<=1?Promise.any([...e,...t]):e[0].catch((()=>I(e.slice(1),[...t,e[0]])));var U,F=n("cpCG6"),G={sources:[{url:"https://featured.plutojl.org/pluto_export.json",valid_until:"2025-10",id:"featured pluto"},{id:"featured pluto",url:"https://cdn.jsdelivr.net/gh/JuliaPluto/featured@v5/pluto_export.json",integrity:"sha256-+zI9b/gHEIJGV/DrckBY85hkxNWGIewgYffkAkEq4/w="},{url:"https://plutojl.org/pluto_export.json",valid_until:"2025-10",id:"pluto website"}]};const q=(null===(U=document.head.querySelector("link[rel='pluto-logo-big']"))||void 0===U?void 0:U.getAttribute("href"))??"",B=({launch_params:e})=>{const[t,o]=r.useState([]),[n,l]=r.useState(!1),[i,a]=r.useState({show_samples:!0,CustomPicker:null,CustomRecent:null}),s=r.useRef({});r.useEffect((()=>{const t=l;u.create_pluto_connection({on_unrequested_update:({message:e,type:t})=>{"notebook_list"===t&&o(e.notebooks)},on_connection_status:t,on_reconnect:()=>!0,ws_address:e.pluto_server_url?u.ws_address_from_base(e.pluto_server_url):void 0}).then((async e=>{Object.assign(s.current,e),l(!0);try{const t=await F.get_environment(e),{custom_recent:o,custom_filepicker:n,show_samples:l=!0}=t({client:e,editor:void 0,imports:{preact:r}});a((e=>({...e,CustomRecent:o,CustomPicker:n,show_samples:l})))}catch(e){}(e=>{d().then((t=>{const o=e.version_info.pluto,n=t[t.length-1].tag_name;console.log(`Pluto version ${o}`);const r=t.findIndex((e=>e.tag_name===o));-1!==r&&t.slice(r+1).filter((e=>e.body.toLowerCase().includes("recommended update"))).length>0&&(console.log(`Newer version ${n} is available`),e.version_info.dismiss_update_notification||alert("A new version of Pluto.jl is available! 🎉\n\n You have "+o+", the latest is "+n+'.\n\nYou can update Pluto.jl using the julia package manager:\n import Pkg; Pkg.update("Pluto")\nAfterwards, exit Pluto.jl and restart julia.'))})).catch((()=>{}))})(e),e.send("current_time"),e.send("completepath",{query:""},{})}))}),[]);const{show_samples:c,CustomRecent:p,CustomPicker:h}=i,[f,m]=r.useState(null),_=(e,t=!0)=>{if(t){const t=t=>{m(e)};window.addEventListener("beforeunload",t),setTimeout((()=>window.removeEventListener("beforeunload",t)),1e3)}else m(e)},g=r.useMemo((()=>e.featured_sources??(e.featured_source_url?[{url:e.featured_source_url,integrity:e.featured_source_integrity}]:G.sources)),[e]);return null!=f?r.html` + + `:r.html` +
    +

    welcome to

    +
    +
    +
    + <${x} + client=${s.current} + connected=${n} + remote_notebooks=${t} + CustomRecent=${p} + on_start_navigation=${_} + /> +
    +
    +
    +
    + <${v} + client=${s.current} + connected=${n} + CustomPicker=${h} + show_samples=${c} + on_start_navigation=${_} + /> +
    +
    + + `},J=new URLSearchParams(window.location.search),Y={featured_direct_html_links:!!(J.get("featured_direct_html_links")??window.pluto_featured_direct_html_links),featured_sources:window.pluto_featured_sources,featured_source_url:J.get("featured_source_url")??window.pluto_featured_source_url,featured_source_integrity:J.get("featured_source_integrity")??window.pluto_featured_source_integrity,pluto_server_url:J.get("pluto_server_url")??window.pluto_server_url};console.log("Launch parameters: ",Y),r.render(r.html`<${c.Welcome} launch_params=${Y} />`,document.querySelector("#app")); \ No newline at end of file diff --git a/frontend-dist/index.dbc7264b.css b/frontend-dist/index.dbc7264b.css new file mode 100644 index 0000000000..17a18c7ef8 --- /dev/null +++ b/frontend-dist/index.dbc7264b.css @@ -0,0 +1 @@ +@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:100;src:url(Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2) format("woff2"),url(Inter-Thin.woff.a3efb88f6f.832f7e9d.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:100;src:url(Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2) format("woff2"),url(Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:200;src:url(Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2) format("woff2"),url(Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:200;src:url(Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2) format("woff2"),url(Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:300;src:url(Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2) format("woff2"),url(Inter-Light.woff.a3efb88f6f.0cf765a1.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:300;src:url(Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2) format("woff2"),url(Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2) format("woff2"),url(Inter-Regular.woff.a3efb88f6f.d9325c13.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:400;src:url(Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2) format("woff2"),url(Inter-Italic.woff.a3efb88f6f.d9effa31.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2) format("woff2"),url(Inter-Medium.woff.a3efb88f6f.cb391d89.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:500;src:url(Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2) format("woff2"),url(Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2) format("woff2"),url(Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:600;src:url(Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2) format("woff2"),url(Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2) format("woff2"),url(Inter-Bold.woff.a3efb88f6f.d92ed350.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:700;src:url(Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2) format("woff2"),url(Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2) format("woff2"),url(Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:800;src:url(Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2) format("woff2"),url(Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2) format("woff2"),url(Inter-Black.woff.a3efb88f6f.efe3f25b.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:900;src:url(Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2) format("woff2"),url(Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff) format("woff")}@font-face{font-named-instance:"Regular";font-display:swap;font-family:Inter var;font-style:normal;font-weight:100 900;src:url(Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2) format("woff2 supports variations(gvar)"),url(Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2) format("woff2-variations"),url(Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2) format("woff2")}@font-face{font-named-instance:"Italic";font-display:swap;font-family:Inter var;font-style:italic;font-weight:100 900;src:url(Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2) format("woff2 supports variations(gvar)"),url(Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2) format("woff2-variations"),url(Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter var experimental;font-style:oblique 0deg 10deg;font-weight:100 900;src:url(Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2) format("woff2-variations"),url(Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2) format("woff2")}:root{--pluto-cell-spacing:17px;--pluto-operator-ligatures:none;--julia-mono-font-stack:JuliaMono,Menlo,"Roboto Mono","Lucida Sans Typewriter","Source Code Pro",monospace;--sans-serif-font-stack:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;--lato-ui-font-stack:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;--inter-ui-font-stack:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",system-ui,sans-serif;color-scheme:light dark}html{font-family:var(--inter-ui-font-stack);font-size:17px}main{display:block;margin:0 auto;max-width:1200px;padding:1rem}header{background-color:#f5efd2;background-size:cover;display:flex;justify-content:center;padding:1.3rem}header h1{font-weight:500;text-align:center}section#mywork,section#open{background:var(--welcome-mywork-bg);position:relative}.pluto-logo{align-items:center;color:inherit;flex-direction:row;font-family:var(--inter-ui-font-stack);font-style:normal;font-weight:800;gap:.5ch;padding:.5em;transform:translateY(.23em)}.pluto-logo img{height:1.2em;width:1.2em}#new{background:var(--welcome-open-bg);border-radius:.6rem;box-shadow:-2px 4px 9px 0 #00000012;margin:1rem;padding:1.3rem}#new.desktop_opener{align-content:center;box-shadow:none;display:flex;flex-direction:row;justify-content:space-around;position:relative}#new.desktop_opener .desktop_picker{width:100%}section{display:flex;flex-direction:row;justify-content:center}section>div{flex:1 1 auto;margin:1rem;max-width:614px;min-width:0}.pluto-logo{background:#fff;border-radius:.4em;display:flex;flex:0 1 auto;font-size:1.6rem;transform:none}section#open{position:relative}section#featured>div{max-width:900px}header>div{display:flex;flex:1 1 auto;max-width:62rem;z-index:1}section#mywork:before,section#open:after{--c:rgba(53,72,80,0.06);background:linear-gradient(0deg,transparent,var(--c));content:"";display:block;height:50px;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:0}:where(#mywork,#open) h2{--off:4px;--offm:-4px;--oc:#fff;border-radius:.4em;display:inline-block;margin:2rem 0 0}section#open:after{background:linear-gradient(0deg,var(--c),transparent);bottom:0;top:unset}div#app{background-position:0 77%;background-size:cover}.new a{font-style:italic;font-weight:500;text-decoration:none}li.new{background:var(--welcome-newnotebook-bg);position:sticky;top:0;z-index:2}h1{font-size:2.8rem;margin-block-end:0}.collection{margin:6em 0}.collection h2{font-size:2.5rem;font-weight:600;margin:0}#featured p{max-width:54ch}#github img{aspect-ratio:1;filter:var(--image-filters);width:2rem}a#github{display:block;position:absolute;right:.5rem;top:.5rem}.show_scrollbar::-webkit-scrollbar{opacity:.1;width:10px}.show_scrollbar::-webkit-scrollbar-thumb{background-color:var(--black);border-radius:1000px;opacity:.6}.show_scrollbar::-webkit-scrollbar-thumb:hover{opacity:1} \ No newline at end of file diff --git a/frontend-dist/index.html b/frontend-dist/index.html new file mode 100644 index 0000000000..f8d0e45f4c --- /dev/null +++ b/frontend-dist/index.html @@ -0,0 +1 @@ +Pluto.jl

    welcome to

    My work

    Open a notebook

    Loading...

    \ No newline at end of file diff --git a/frontend-dist/information-circle-outline.008b2bb9.svg b/frontend-dist/information-circle-outline.008b2bb9.svg new file mode 100644 index 0000000000..163c7e4d5a --- /dev/null +++ b/frontend-dist/information-circle-outline.008b2bb9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/lato-all-400-italic.c29c8c6c.woff b/frontend-dist/lato-all-400-italic.c29c8c6c.woff new file mode 100644 index 0000000000..6131624555 Binary files /dev/null and b/frontend-dist/lato-all-400-italic.c29c8c6c.woff differ diff --git a/frontend-dist/lato-all-400-normal.a1a68bdf.woff b/frontend-dist/lato-all-400-normal.a1a68bdf.woff new file mode 100644 index 0000000000..1f1fd49a12 Binary files /dev/null and b/frontend-dist/lato-all-400-normal.a1a68bdf.woff differ diff --git a/frontend-dist/lato-latin-400-italic.6edbc86c.woff2 b/frontend-dist/lato-latin-400-italic.6edbc86c.woff2 new file mode 100644 index 0000000000..3246c1286f Binary files /dev/null and b/frontend-dist/lato-latin-400-italic.6edbc86c.woff2 differ diff --git a/frontend-dist/lato-latin-400-normal.77db3602.woff2 b/frontend-dist/lato-latin-400-normal.77db3602.woff2 new file mode 100644 index 0000000000..6904b6649f Binary files /dev/null and b/frontend-dist/lato-latin-400-normal.77db3602.woff2 differ diff --git a/frontend-dist/lato-latin-ext-400-italic.336aaf51.woff2 b/frontend-dist/lato-latin-ext-400-italic.336aaf51.woff2 new file mode 100644 index 0000000000..69af6c080d Binary files /dev/null and b/frontend-dist/lato-latin-ext-400-italic.336aaf51.woff2 differ diff --git a/frontend-dist/lato-latin-ext-400-normal.e1ce8ad3.woff2 b/frontend-dist/lato-latin-ext-400-normal.e1ce8ad3.woff2 new file mode 100644 index 0000000000..0a0ee5eaed Binary files /dev/null and b/frontend-dist/lato-latin-ext-400-normal.e1ce8ad3.woff2 differ diff --git a/frontend-dist/logo.004c1d7c.svg b/frontend-dist/logo.004c1d7c.svg new file mode 100644 index 0000000000..cec701dc07 --- /dev/null +++ b/frontend-dist/logo.004c1d7c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/mic-off-outline.251c22b7.svg b/frontend-dist/mic-off-outline.251c22b7.svg new file mode 100644 index 0000000000..5ff2a050d0 --- /dev/null +++ b/frontend-dist/mic-off-outline.251c22b7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/mic-outline.e10eafe2.svg b/frontend-dist/mic-outline.e10eafe2.svg new file mode 100644 index 0000000000..96d55c507f --- /dev/null +++ b/frontend-dist/mic-outline.e10eafe2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/newspaper-outline.e481c39c.svg b/frontend-dist/newspaper-outline.e481c39c.svg new file mode 100644 index 0000000000..c142efa0f1 --- /dev/null +++ b/frontend-dist/newspaper-outline.e481c39c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/notifications-outline.aa91b431.svg b/frontend-dist/notifications-outline.aa91b431.svg new file mode 100644 index 0000000000..f284fa8886 --- /dev/null +++ b/frontend-dist/notifications-outline.aa91b431.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/parcel-manifest.json b/frontend-dist/parcel-manifest.json new file mode 100644 index 0000000000..2cce628226 --- /dev/null +++ b/frontend-dist/parcel-manifest.json @@ -0,0 +1 @@ +{"editor.html":"./editor.html","img/favicon-16x16.png":"./favicon-16x16.347d2855.png","img/favicon-32x32.png":"./favicon-32x32.8789add4.png","img/favicon-96x96.png":"./favicon-96x96.48689391.png","img/logo.svg":"./logo.004c1d7c.svg","img/favicon_unsaturated.svg":"./favicon_unsaturated.d1387b25.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js":"./editor.b8733d72.js",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@observablehq/stdlib@3.3.1/dist/stdlib.js":"./editor.9f9dc874.js",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/iframe-resizer@4.2.11/js/iframeResizer.min.js":"./editor.90ede145.js",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/ansi_up@5.1.0/ansi_up.min.js":"./editor.912b6bfb.js",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/iframe-resizer@4.2.11/js/iframeResizer.contentWindow.min.js":"./editor.6386bd9d.js","editor.css":"./editor.0dea9d23.css",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-500-normal.woff2":"./roboto-mono-cyrillic-ext-500-normal.d362a132.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-500-normal.woff":"./roboto-mono-all-500-normal.cc559149.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-500-normal.woff2":"./roboto-mono-cyrillic-500-normal.8ed3add8.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-500-normal.woff2":"./roboto-mono-greek-500-normal.dd57b097.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-500-normal.woff2":"./roboto-mono-vietnamese-500-normal.1320bb60.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-500-normal.woff2":"./roboto-mono-latin-ext-500-normal.415f7d14.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-500-normal.woff2":"./roboto-mono-latin-500-normal.98ad1d4e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-700-normal.woff2":"./roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-700-normal.woff":"./roboto-mono-all-700-normal.393c796d.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-700-normal.woff2":"./roboto-mono-cyrillic-700-normal.5e6410cf.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-700-normal.woff2":"./roboto-mono-greek-700-normal.b101f80c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-700-normal.woff2":"./roboto-mono-vietnamese-700-normal.edb1435b.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-700-normal.woff2":"./roboto-mono-latin-ext-700-normal.c497b002.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-700-normal.woff2":"./roboto-mono-latin-700-normal.447ac127.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-ext-400-normal.woff2":"./lato-latin-ext-400-normal.e1ce8ad3.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-all-400-normal.woff":"./lato-all-400-normal.a1a68bdf.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-400-normal.woff2":"./lato-latin-400-normal.77db3602.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-ext-400-italic.woff2":"./lato-latin-ext-400-italic.336aaf51.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-all-400-italic.woff":"./lato-all-400-italic.c29c8c6c.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/lato@4.4.5/files/lato-latin-400-italic.woff2":"./lato-latin-400-italic.6edbc86c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/radio-button-on-outline.svg":"./radio-button-on-outline.778acac1.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/stop-circle-outline.svg":"./stop-circle-outline.6623356d.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/share-outline.svg":"./share-outline.50164ded.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/close-outline.svg":"./close-outline.9c22a232.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/newspaper-outline.svg":"./newspaper-outline.e481c39c.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/easel-outline.svg":"./easel-outline.9b064e1f.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/mic-outline.svg":"./mic-outline.e10eafe2.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/information-circle-outline.svg":"./information-circle-outline.008b2bb9.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/cloud-offline-outline.svg":"./cloud-offline-outline.ac2eade9.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/mic-off-outline.svg":"./mic-off-outline.251c22b7.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-undo-outline.svg":"./arrow-undo-outline.d8c99108.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/sync-circle-outline.svg":"./sync-circle-outline.65b15d76.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/checkmark-outline.svg":"./checkmark-outline.4fb8c646.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/eye-outline.svg":"./eye-outline.6e6e0f7c.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/eye-off-outline.svg":"./eye-off-outline.a37e03db.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/add-outline.svg":"./add-outline.e3c93c35.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/document-text-outline.svg":"./document-text-outline.8d1e2333.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/caret-forward-circle-outline.svg":"./caret-forward-circle-outline.d0bf2b34.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ban-outline.svg":"./ban-outline.c97da9b4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/close-circle-outline.svg":"./close-circle-outline.4baeedb9.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/document-lock-outline.svg":"./document-lock-outline.69d176a4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/copy-outline.svg":"./copy-outline.0f561529.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-horizontal-circle-outline.svg":"./ellipsis-horizontal-circle-outline.6279ed30.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/time-outline.svg":"./time-outline.7c1877f0.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/sync-outline.svg":"./sync-outline.9a1bd27b.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/cloud-download-outline.svg":"./cloud-download-outline.8c1ff9bb.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/chatbox-ellipses-outline.svg":"./chatbox-ellipses-outline.4334a3a4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-redo-circle-outline.svg":"./arrow-redo-circle-outline.dfa899f4.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/chevron-forward-circle-outline.svg":"./chevron-forward-circle-outline.babf2a99.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/search.svg":"./search.1ca5b3b3.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/terminal.svg":"./terminal.6b804248.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/pulse.svg":"./pulse.27a877a7.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/chevron-down-outline.svg":"./chevron-down-outline.1efaf1cc.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/notifications-outline.svg":"./notifications-outline.aa91b431.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/warning-outline.svg":"./warning-outline.d84ed9e8.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/terminal-outline.svg":"./terminal-outline.79a23031.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-back-outline.svg":"./arrow-back-outline.9ae1bed8.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-forward-outline.svg":"./arrow-forward-outline.f5f68f5c.svg",".parcel-cache/.net/https/unpkg.com/ionicons@7.1.0/dist/svg/copy-outline.svg":"./copy-outline.6d5a7927.svg",".parcel-cache/.net/https/unpkg.com/ionicons@7.1.0/dist/svg/checkmark-outline.svg":"./checkmark-outline.538ded54.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-400-normal.woff2":"./roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-400-normal.woff":"./roboto-mono-all-400-normal.364ec368.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-400-normal.woff2":"./roboto-mono-cyrillic-400-normal.638e826e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-400-normal.woff2":"./roboto-mono-greek-400-normal.dd843e41.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-400-normal.woff2":"./roboto-mono-vietnamese-400-normal.306e7635.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-400-normal.woff2":"./roboto-mono-latin-ext-400-normal.d9409874.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-400-normal.woff2":"./roboto-mono-latin-400-normal.cf1eee5f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-ext-400-italic.woff2":"./roboto-mono-cyrillic-ext-400-italic.db052448.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-all-400-italic.woff":"./roboto-mono-all-400-italic.31a14f53.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-cyrillic-400-italic.woff2":"./roboto-mono-cyrillic-400-italic.e399ed93.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-greek-400-italic.woff2":"./roboto-mono-greek-400-italic.6f7e0b2f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-vietnamese-400-italic.woff2":"./roboto-mono-vietnamese-400-italic.d8e0a32a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-ext-400-italic.woff2":"./roboto-mono-latin-ext-400-italic.aaa9a959.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/@fontsource/roboto-mono@4.4.5/files/roboto-mono-latin-400-italic.woff2":"./roboto-mono-latin-400-italic.ef82d48f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-RegularLatin.woff2":"./JuliaMono-RegularLatin.26c56b70.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-BoldLatin.woff2":"./JuliaMono-BoldLatin.7ec5c608.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-Regular.woff2":"./JuliaMono-Regular.e0106c6f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-Bold.woff2":"./JuliaMono-Bold.24b57d33.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/cormullion/juliamono@0.047/webfonts/JuliaMono-RegularItalic.woff2":"./JuliaMono-RegularItalic.3159f647.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-SemiBold.woff2":"./Vollkorn-SemiBold.8072eb6c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-SemiBoldItalic.woff2":"./Vollkorn-SemiBoldItalic.5c3cd265.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-Bold.woff2":"./Vollkorn-Bold.6e1feb70.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-BoldItalic.woff2":"./Vollkorn-BoldItalic.a48ab300.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-Black.woff2":"./Vollkorn-Black.0ebdfbf5.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/fonsp/Vollkorn-Typeface@1/fonts/woff2/Vollkorn-BlackItalic.woff2":"./Vollkorn-BlackItalic.4095acfe.woff2","hide-ui.css":"./editor.52bd66ba.css","binder.css":"./editor.d0a5b1f0.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/download-outline.svg":"./download-outline.523a74d8.svg","treeview.css":"./editor.db21a487.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/caret-down-outline.svg":"./caret-down-outline.4253a2fe.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/caret-forward-outline.svg":"./caret-forward-outline.348a84b6.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-vertical.svg":"./ellipsis-vertical.a30e7430.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-horizontal.svg":"./ellipsis-horizontal.c9a6cc29.svg","highlightjs.css":"./editor.e82e08bd.css","editor.js":"./editor.fe15171c.js",".parcel-cache/.net/https/www.gstatic.com/firebasejs/10.8.0/firebase-app.js":"./firebase-app.15ba8989.js",".parcel-cache/.net/https/www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js":"./firebase-firestore.f72d0b8a.js",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-up-circle-outline.svg":"./arrow-up-circle-outline.3f146ffe.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/help-circle-outline.svg":"./help-circle-outline.a023036a.svg",".parcel-cache/.net/https/unpkg.com/vmsg@0.4.0/vmsg.wasm":"./vmsg.56bb9389.wasm","warn_old_browsers.js":"./editor.8a3292da.js","index.html":"./index.html","welcome.css":"./index.dbc7264b.css",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Thin.woff2.a3efb88f6f.woff2":"./Inter-Thin.woff2.a3efb88f6f.099a7dc1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Thin.woff.a3efb88f6f.woff":"./Inter-Thin.woff.a3efb88f6f.832f7e9d.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ThinItalic.woff2.a3efb88f6f.woff2":"./Inter-ThinItalic.woff2.a3efb88f6f.f5b32cfe.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ThinItalic.woff.a3efb88f6f.woff":"./Inter-ThinItalic.woff.a3efb88f6f.9a9e646f.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLight.woff2.a3efb88f6f.woff2":"./Inter-ExtraLight.woff2.a3efb88f6f.735b820a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLight.woff.a3efb88f6f.woff":"./Inter-ExtraLight.woff.a3efb88f6f.018d6d24.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLightItalic.woff2.a3efb88f6f.woff2":"./Inter-ExtraLightItalic.woff2.a3efb88f6f.75944d4e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraLightItalic.woff.a3efb88f6f.woff":"./Inter-ExtraLightItalic.woff.a3efb88f6f.c051c5b4.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Light.woff2.a3efb88f6f.woff2":"./Inter-Light.woff2.a3efb88f6f.f86a8a97.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Light.woff.a3efb88f6f.woff":"./Inter-Light.woff.a3efb88f6f.0cf765a1.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-LightItalic.woff2.a3efb88f6f.woff2":"./Inter-LightItalic.woff2.a3efb88f6f.cb22faff.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-LightItalic.woff.a3efb88f6f.woff":"./Inter-LightItalic.woff.a3efb88f6f.6c91af65.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Regular.woff2.a3efb88f6f.woff2":"./Inter-Regular.woff2.a3efb88f6f.c52a047f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Regular.woff.a3efb88f6f.woff":"./Inter-Regular.woff.a3efb88f6f.d9325c13.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Italic.woff2.a3efb88f6f.woff2":"./Inter-Italic.woff2.a3efb88f6f.85eee0c1.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Italic.woff.a3efb88f6f.woff":"./Inter-Italic.woff.a3efb88f6f.d9effa31.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Medium.woff2.a3efb88f6f.woff2":"./Inter-Medium.woff2.a3efb88f6f.4f0ea984.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Medium.woff.a3efb88f6f.woff":"./Inter-Medium.woff.a3efb88f6f.cb391d89.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-MediumItalic.woff2.a3efb88f6f.woff2":"./Inter-MediumItalic.woff2.a3efb88f6f.2b734b7a.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-MediumItalic.woff.a3efb88f6f.woff":"./Inter-MediumItalic.woff.a3efb88f6f.1f636c25.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBold.woff2.a3efb88f6f.woff2":"./Inter-SemiBold.woff2.a3efb88f6f.08366574.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBold.woff.a3efb88f6f.woff":"./Inter-SemiBold.woff.a3efb88f6f.c6670c13.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBoldItalic.woff2.a3efb88f6f.woff2":"./Inter-SemiBoldItalic.woff2.a3efb88f6f.5c7db07d.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-SemiBoldItalic.woff.a3efb88f6f.woff":"./Inter-SemiBoldItalic.woff.a3efb88f6f.13394743.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Bold.woff2.a3efb88f6f.woff2":"./Inter-Bold.woff2.a3efb88f6f.e8bd971d.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Bold.woff.a3efb88f6f.woff":"./Inter-Bold.woff.a3efb88f6f.d92ed350.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BoldItalic.woff2.a3efb88f6f.woff2":"./Inter-BoldItalic.woff2.a3efb88f6f.cd6e580e.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BoldItalic.woff.a3efb88f6f.woff":"./Inter-BoldItalic.woff.a3efb88f6f.39f68e5f.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBold.woff2.a3efb88f6f.woff2":"./Inter-ExtraBold.woff2.a3efb88f6f.ffc04ff0.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBold.woff.a3efb88f6f.woff":"./Inter-ExtraBold.woff.a3efb88f6f.cd51bf91.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBoldItalic.woff2.a3efb88f6f.woff2":"./Inter-ExtraBoldItalic.woff2.a3efb88f6f.de4f3979.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-ExtraBoldItalic.woff.a3efb88f6f.woff":"./Inter-ExtraBoldItalic.woff.a3efb88f6f.122106d3.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Black.woff2.a3efb88f6f.woff2":"./Inter-Black.woff2.a3efb88f6f.1f333c9f.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-Black.woff.a3efb88f6f.woff":"./Inter-Black.woff.a3efb88f6f.efe3f25b.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BlackItalic.woff2.a3efb88f6f.woff2":"./Inter-BlackItalic.woff2.a3efb88f6f.89710fff.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-BlackItalic.woff.a3efb88f6f.woff":"./Inter-BlackItalic.woff.a3efb88f6f.f6e2e726.woff",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-roman.var.woff2.a3efb88f6f.woff2":"./Inter-roman.var.woff2.a3efb88f6f.8120837c.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter-italic.var.woff2.a3efb88f6f.woff2":"./Inter-italic.var.woff2.a3efb88f6f.e62a3bb2.woff2",".parcel-cache/.net/https/cdn.jsdelivr.net/npm/inter-ui@3.19.3/Inter%20(web%20latin)/Inter.var.woff2.a3efb88f6f.woff2":"./Inter.var.woff2.a3efb88f6f.ca82f9aa.woff2","index.css":"./index.7e5e6cea.css",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/close-circle.svg":"./close-circle.d0f6eac6.svg",".parcel-cache/.net/https/cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/ellipsis-horizontal-outline.svg":"./ellipsis-horizontal-outline.abb6e818.svg","index.js":"./index.b7b0b461.js","error.jl.html":"./error.jl.html"} \ No newline at end of file diff --git a/frontend-dist/pulse.27a877a7.svg b/frontend-dist/pulse.27a877a7.svg new file mode 100644 index 0000000000..3251eb43e8 --- /dev/null +++ b/frontend-dist/pulse.27a877a7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/radio-button-on-outline.778acac1.svg b/frontend-dist/radio-button-on-outline.778acac1.svg new file mode 100644 index 0000000000..061b534687 --- /dev/null +++ b/frontend-dist/radio-button-on-outline.778acac1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/roboto-mono-all-400-italic.31a14f53.woff b/frontend-dist/roboto-mono-all-400-italic.31a14f53.woff new file mode 100644 index 0000000000..723ffe83fc Binary files /dev/null and b/frontend-dist/roboto-mono-all-400-italic.31a14f53.woff differ diff --git a/frontend-dist/roboto-mono-all-400-normal.364ec368.woff b/frontend-dist/roboto-mono-all-400-normal.364ec368.woff new file mode 100644 index 0000000000..379f9ae197 Binary files /dev/null and b/frontend-dist/roboto-mono-all-400-normal.364ec368.woff differ diff --git a/frontend-dist/roboto-mono-all-500-normal.cc559149.woff b/frontend-dist/roboto-mono-all-500-normal.cc559149.woff new file mode 100644 index 0000000000..6fc0cbe59e Binary files /dev/null and b/frontend-dist/roboto-mono-all-500-normal.cc559149.woff differ diff --git a/frontend-dist/roboto-mono-all-700-normal.393c796d.woff b/frontend-dist/roboto-mono-all-700-normal.393c796d.woff new file mode 100644 index 0000000000..bd2a43d0aa Binary files /dev/null and b/frontend-dist/roboto-mono-all-700-normal.393c796d.woff differ diff --git a/frontend-dist/roboto-mono-cyrillic-400-italic.e399ed93.woff2 b/frontend-dist/roboto-mono-cyrillic-400-italic.e399ed93.woff2 new file mode 100644 index 0000000000..8695ed91d2 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-400-italic.e399ed93.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-400-normal.638e826e.woff2 b/frontend-dist/roboto-mono-cyrillic-400-normal.638e826e.woff2 new file mode 100644 index 0000000000..68b8a8dc8c Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-400-normal.638e826e.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-500-normal.8ed3add8.woff2 b/frontend-dist/roboto-mono-cyrillic-500-normal.8ed3add8.woff2 new file mode 100644 index 0000000000..c307876e05 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-500-normal.8ed3add8.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-700-normal.5e6410cf.woff2 b/frontend-dist/roboto-mono-cyrillic-700-normal.5e6410cf.woff2 new file mode 100644 index 0000000000..1967932dfe Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-700-normal.5e6410cf.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-400-italic.db052448.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-400-italic.db052448.woff2 new file mode 100644 index 0000000000..85a9f5b370 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-400-italic.db052448.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2 new file mode 100644 index 0000000000..1630ec9c56 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-400-normal.dcb520ee.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-500-normal.d362a132.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-500-normal.d362a132.woff2 new file mode 100644 index 0000000000..b34eed9747 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-500-normal.d362a132.woff2 differ diff --git a/frontend-dist/roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2 b/frontend-dist/roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2 new file mode 100644 index 0000000000..a89f2e8413 Binary files /dev/null and b/frontend-dist/roboto-mono-cyrillic-ext-700-normal.5c7aabac.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-400-italic.6f7e0b2f.woff2 b/frontend-dist/roboto-mono-greek-400-italic.6f7e0b2f.woff2 new file mode 100644 index 0000000000..7bab226ca5 Binary files /dev/null and b/frontend-dist/roboto-mono-greek-400-italic.6f7e0b2f.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-400-normal.dd843e41.woff2 b/frontend-dist/roboto-mono-greek-400-normal.dd843e41.woff2 new file mode 100644 index 0000000000..466f9ec13f Binary files /dev/null and b/frontend-dist/roboto-mono-greek-400-normal.dd843e41.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-500-normal.dd57b097.woff2 b/frontend-dist/roboto-mono-greek-500-normal.dd57b097.woff2 new file mode 100644 index 0000000000..72f600238f Binary files /dev/null and b/frontend-dist/roboto-mono-greek-500-normal.dd57b097.woff2 differ diff --git a/frontend-dist/roboto-mono-greek-700-normal.b101f80c.woff2 b/frontend-dist/roboto-mono-greek-700-normal.b101f80c.woff2 new file mode 100644 index 0000000000..9ab1293a88 Binary files /dev/null and b/frontend-dist/roboto-mono-greek-700-normal.b101f80c.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-400-italic.ef82d48f.woff2 b/frontend-dist/roboto-mono-latin-400-italic.ef82d48f.woff2 new file mode 100644 index 0000000000..721ca2e93a Binary files /dev/null and b/frontend-dist/roboto-mono-latin-400-italic.ef82d48f.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-400-normal.cf1eee5f.woff2 b/frontend-dist/roboto-mono-latin-400-normal.cf1eee5f.woff2 new file mode 100644 index 0000000000..ed384d22fd Binary files /dev/null and b/frontend-dist/roboto-mono-latin-400-normal.cf1eee5f.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-500-normal.98ad1d4e.woff2 b/frontend-dist/roboto-mono-latin-500-normal.98ad1d4e.woff2 new file mode 100644 index 0000000000..01b58ed2c5 Binary files /dev/null and b/frontend-dist/roboto-mono-latin-500-normal.98ad1d4e.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-700-normal.447ac127.woff2 b/frontend-dist/roboto-mono-latin-700-normal.447ac127.woff2 new file mode 100644 index 0000000000..c89a6eb38c Binary files /dev/null and b/frontend-dist/roboto-mono-latin-700-normal.447ac127.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-400-italic.aaa9a959.woff2 b/frontend-dist/roboto-mono-latin-ext-400-italic.aaa9a959.woff2 new file mode 100644 index 0000000000..9831c28b9e Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-400-italic.aaa9a959.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-400-normal.d9409874.woff2 b/frontend-dist/roboto-mono-latin-ext-400-normal.d9409874.woff2 new file mode 100644 index 0000000000..d4f9a09cca Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-400-normal.d9409874.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-500-normal.415f7d14.woff2 b/frontend-dist/roboto-mono-latin-ext-500-normal.415f7d14.woff2 new file mode 100644 index 0000000000..77a97cf73e Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-500-normal.415f7d14.woff2 differ diff --git a/frontend-dist/roboto-mono-latin-ext-700-normal.c497b002.woff2 b/frontend-dist/roboto-mono-latin-ext-700-normal.c497b002.woff2 new file mode 100644 index 0000000000..9b733dd3cc Binary files /dev/null and b/frontend-dist/roboto-mono-latin-ext-700-normal.c497b002.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-400-italic.d8e0a32a.woff2 b/frontend-dist/roboto-mono-vietnamese-400-italic.d8e0a32a.woff2 new file mode 100644 index 0000000000..2ec55df09d Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-400-italic.d8e0a32a.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-400-normal.306e7635.woff2 b/frontend-dist/roboto-mono-vietnamese-400-normal.306e7635.woff2 new file mode 100644 index 0000000000..2cf6dfc420 Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-400-normal.306e7635.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-500-normal.1320bb60.woff2 b/frontend-dist/roboto-mono-vietnamese-500-normal.1320bb60.woff2 new file mode 100644 index 0000000000..3ab766e250 Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-500-normal.1320bb60.woff2 differ diff --git a/frontend-dist/roboto-mono-vietnamese-700-normal.edb1435b.woff2 b/frontend-dist/roboto-mono-vietnamese-700-normal.edb1435b.woff2 new file mode 100644 index 0000000000..12357bd521 Binary files /dev/null and b/frontend-dist/roboto-mono-vietnamese-700-normal.edb1435b.woff2 differ diff --git a/frontend-dist/search.1ca5b3b3.svg b/frontend-dist/search.1ca5b3b3.svg new file mode 100644 index 0000000000..c6b864ae91 --- /dev/null +++ b/frontend-dist/search.1ca5b3b3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/share-outline.50164ded.svg b/frontend-dist/share-outline.50164ded.svg new file mode 100644 index 0000000000..601cb684ac --- /dev/null +++ b/frontend-dist/share-outline.50164ded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/stop-circle-outline.6623356d.svg b/frontend-dist/stop-circle-outline.6623356d.svg new file mode 100644 index 0000000000..30addb7f98 --- /dev/null +++ b/frontend-dist/stop-circle-outline.6623356d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/sync-circle-outline.65b15d76.svg b/frontend-dist/sync-circle-outline.65b15d76.svg new file mode 100644 index 0000000000..3b41a36e9b --- /dev/null +++ b/frontend-dist/sync-circle-outline.65b15d76.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/sync-outline.9a1bd27b.svg b/frontend-dist/sync-outline.9a1bd27b.svg new file mode 100644 index 0000000000..9f69e76f35 --- /dev/null +++ b/frontend-dist/sync-outline.9a1bd27b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/terminal-outline.79a23031.svg b/frontend-dist/terminal-outline.79a23031.svg new file mode 100644 index 0000000000..99c52751a3 --- /dev/null +++ b/frontend-dist/terminal-outline.79a23031.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/terminal.6b804248.svg b/frontend-dist/terminal.6b804248.svg new file mode 100644 index 0000000000..030b7bb4ef --- /dev/null +++ b/frontend-dist/terminal.6b804248.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/time-outline.7c1877f0.svg b/frontend-dist/time-outline.7c1877f0.svg new file mode 100644 index 0000000000..b4d1371332 --- /dev/null +++ b/frontend-dist/time-outline.7c1877f0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-dist/vmsg.56bb9389.wasm b/frontend-dist/vmsg.56bb9389.wasm new file mode 100644 index 0000000000..224bcc7fd1 Binary files /dev/null and b/frontend-dist/vmsg.56bb9389.wasm differ diff --git a/frontend-dist/warning-outline.d84ed9e8.svg b/frontend-dist/warning-outline.d84ed9e8.svg new file mode 100644 index 0000000000..df490bfa15 --- /dev/null +++ b/frontend-dist/warning-outline.d84ed9e8.svg @@ -0,0 +1 @@ + \ No newline at end of file